diff --git a/ChangeLog b/ChangeLog
index 3f6fa84af70..356ac165782 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,3 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
-
-	This is the 2.41 release.
-	* src-release.sh: Add Changelog.git.
-	* ChangeLog.git: New file.
-
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
 	2.41 Branch Point.
diff --git a/ChangeLog.git b/ChangeLog.git
deleted file mode 100644
index 41394cc56f0..00000000000
--- a/ChangeLog.git
+++ /dev/null
@@ -1,142648 +0,0 @@
-2023-07-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-28  Jan Beulich  <jbeulich@suse.com>
-
-	gas: amend X_unsigned uses
-	PR gas/30688
-
-	X_unsigned being clear does not indicate a negative number; it merely
-	indicates a signed one (whose sign may still be clear). Amend two uses
-	by an actual value check.
-
-2023-07-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add actual 'Zvkt' extension support
-	The 'Zvkt' extension is listed on the added extensions in the GNU Binutils
-	version 2.41 (see binutils/NEWS).  However, the support of this extension
-	was actually missing.
-
-	This commit adds actual support of this extension and adds implications
-	from 'Zvkn' and 'Zvks' superset extensions.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_implicit_subsets) Add implications from
-		'Zvkn' and 'Zvks'.  (riscv_supported_std_z_ext): Add 'Zvkt' to
-		the supported extension list.
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: Support `-gnuabi64' target triplet suffix for 64-bit Linux targets
-	Make the n64 ABI the default for 64-bit Linux targets specified with
-	`-gnuabi64' suffix included in the target triplet, for configurations
-	such as the Debian mips64el and mips64r6el ports.  Adjust testsuite
-	configuration accordingly.
-
-	There are the following regressions with the new target triplet:
-
-	mips64-linux-gnuabi64  +FAIL: readelf -S bintest
-	mips64-linux-gnuabi64  +FAIL: MIPS reloc estimation 1
-	mips64el-linux-gnuabi64  +FAIL: readelf -S bintest
-	mips64el-linux-gnuabi64  +FAIL: MIPS reloc estimation 1
-
-	The `readelf' issue comes from a difference in section headers produced
-	that the `binutils/testsuite/binutils-all/readelf.s-64' pattern template
-	does not match.  While there has been a precedent it does not appear to
-	me that there is a clear advantage from adding more and more variations
-	to the template rather than forking the existing template into multiple
-	ones for a more exact match.  So this is best deferred to a separate
-	discussion.
-
-	The MIPS reloc estimation issue is an actual bug in `objdump', which
-	discards a number of trailing entries from output here for n64 composed
-	relocations:
-
-	DYNAMIC RELOCATION RECORDS
-	OFFSET           TYPE              VALUE
-	0000000000000000 R_MIPS_NONE       *ABS*
-	0000000000000000 R_MIPS_NONE       *ABS*
-
-	and consequently `ld/testsuite/ld-mips-elf/reloc-estimate-1.d' does not
-	match even though ELF output produced is correct according to `readelf':
-
-	Relocation section '.rel.dyn' at offset 0x10400 contains 2 entries:
-	  Offset          Info           Type           Sym. Value    Sym. Name
-	000000000000  000000000000 R_MIPS_NONE
-	                    Type2: R_MIPS_NONE
-	                    Type3: R_MIPS_NONE
-	000000010000  000300001203 R_MIPS_REL32      0000000000010010 foo@@V2
-	                    Type2: R_MIPS_64
-	                    Type3: R_MIPS_NONE
-
-	As a genuine bug this has to be handled separately.
-
-	Co-Authored by: Maciej W. Rozycki <macro@orcam.me.uk>
-
-		bfd/
-		* config.bfd: Add `mips64*el-*-linux*-gnuabi64' and
-		`mips64*-*-linux*-gnuabi64' targets.
-
-		binutils/
-		* testsuite/binutils-all/mips/mips.exp: Handle `*-*-*-gnuabi64'
-		targets.
-		* testsuite/binutils-all/objcopy.exp: Handle
-		`mips64*-*-*-gnuabi64' targets.
-		* testsuite/binutils-all/remove-relocs-01.d: Likewise.
-		* testsuite/binutils-all/remove-relocs-04.d: Likewise.
-		* testsuite/binutils-all/remove-relocs-05.d: Likewise.
-		* testsuite/binutils-all/remove-relocs-06.d: Likewise.
-
-		gas/
-		* configure.ac: Handle `mips64*-linux-gnuabi64' targets.
-		* configure: Regenerate.
-		* testsuite/gas/mips/compact-eh-eb-7.d: Handle
-		`mips64*-*-*-gnuabi64' targets.
-		* testsuite/gas/mips/compact-eh-el-7.d: Likewise.
-
-		ld/
-		* configure.tgt: Add `mips64*el-*-linux-gnuabi64' and
-		`mips64*-*-linux-gnuabi64' targets.
-		* testsuite/ld-undefined/undefined.exp: Handle
-		`mips64*-*-*-gnuabi64' targets.
-		* testsuite/ld-mips-elf/attr-gnu-4-10.d: Likewise.
-		* testsuite/ld-mips-elf/compact-eh6.d: Likewise.
-		* testsuite/ld-mips-elf/mips-elf.exp: Handle `*-*-*-gnuabi64'
-		targets.
-
-	(cherry picked from commit 29c108c9610640439daa5244a573348b7c47d994)
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS/GAS/testsuite: Fix n64 compact EH failures
-	Expect a `.MIPS.options' section alternatively to `.reginfo' and ignore
-	contents of either as irrelevant for all the affected compact EH tests,
-	removing these regressions:
-
-	mips64-openbsd  -FAIL: Compact EH EB #1 with personality ID and FDE data
-	mips64-openbsd  -FAIL: Compact EH EB #2 with personality routine and FDE data
-	mips64-openbsd  -FAIL: Compact EH EB #3 with personality id and large FDE data
-	mips64-openbsd  -FAIL: Compact EH EB #4 with personality id, FDE data and LSDA
-	mips64-openbsd  -FAIL: Compact EH EB #5 with personality routine, FDE data and LSDA
-	mips64-openbsd  -FAIL: Compact EH EB #6 with personality id, LSDA and large FDE data
-	mips64-openbsd  -FAIL: Compact EH EL #1 with personality ID and FDE data
-	mips64-openbsd  -FAIL: Compact EH EL #2 with personality routine and FDE data
-	mips64-openbsd  -FAIL: Compact EH EL #3 with personality id and large FDE data
-	mips64-openbsd  -FAIL: Compact EH EL #4 with personality id, FDE data and LSDA
-	mips64-openbsd  -FAIL: Compact EH EL #5 with personality routine, FDE data and LSDA
-	mips64-openbsd  -FAIL: Compact EH EL #6 with personality id, LSDA and large FDE data
-	mips64el-openbsd  -FAIL: Compact EH EB #1 with personality ID and FDE data
-	mips64el-openbsd  -FAIL: Compact EH EB #2 with personality routine and FDE data
-	mips64el-openbsd  -FAIL: Compact EH EB #3 with personality id and large FDE data
-	mips64el-openbsd  -FAIL: Compact EH EB #4 with personality id, FDE data and LSDA
-	mips64el-openbsd  -FAIL: Compact EH EB #5 with personality routine, FDE data and LSDA
-	mips64el-openbsd  -FAIL: Compact EH EB #6 with personality id, LSDA and large FDE data
-	mips64el-openbsd  -FAIL: Compact EH EL #1 with personality ID and FDE data
-	mips64el-openbsd  -FAIL: Compact EH EL #2 with personality routine and FDE data
-	mips64el-openbsd  -FAIL: Compact EH EL #3 with personality id and large FDE data
-	mips64el-openbsd  -FAIL: Compact EH EL #4 with personality id, FDE data and LSDA
-	mips64el-openbsd  -FAIL: Compact EH EL #5 with personality routine, FDE data and LSDA
-	mips64el-openbsd  -FAIL: Compact EH EL #6 with personality id, LSDA and large FDE data
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-		gas/
-		* testsuite/gas/mips/compact-eh-eb-1.d: Accept `.MIPS.options'
-		section as an alternative to `.reginfo' and ignore contents of
-		either.
-		* testsuite/gas/mips/compact-eh-eb-2.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-3.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-4.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-5.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-6.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-1.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-2.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-3.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-4.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-5.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-6.d: Likewise.
-
-	(cherry picked from commit 316be2b229f5bd07ebef48fd1d7b8cb103e4d815)
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	testsuite: Handle composed R_MIPS_NONE relocations
-	MIPS n64 ABI has a peculiarity where all relocations are composed of
-	three, with subsequent relocation types set to R_MIPS_NONE if further
-	calculation is not required.  Example output produced by `readelf' and
-	`objdump' for such relocations is:
-
-	  Offset          Info           Type           Sym. Value    Sym. Name + Addend
-	000000000000  000800000002 R_MIPS_32         0000000000000000 foo + 0
-	                    Type2: R_MIPS_NONE
-	                    Type3: R_MIPS_NONE
-
-	and:
-
-	OFFSET           TYPE              VALUE
-	0000000000000000 R_MIPS_32         foo
-	0000000000000000 R_MIPS_NONE       *ABS*
-	0000000000000000 R_MIPS_NONE       *ABS*
-
-	respectively.  The presence of these extra R_MIPS_NONE entries is not
-	relevant for generic or even some MIPS tests, so optionally match them
-	with the respective dump patterns, also discarding `xfail' annotation
-	for MIPS/OpenBSD targets from gas/elf/missing-build-notes.d, removing
-	these regressions:
-
-	mips64-openbsd  -FAIL: readelf -r bintest
-	mips64-openbsd  -FAIL: forward expression
-	mips64-openbsd  -FAIL: assignment tests
-	mips64-openbsd  -FAIL: gas/all/none
-	mips64-openbsd  -XFAIL: gas/elf/missing-build-notes
-	mips64-openbsd  -FAIL: macro test 2
-	mips64-openbsd  -FAIL: macro irp
-	mips64-openbsd  -FAIL: macro rept
-	mips64-openbsd  -FAIL: nested irp/irpc/rept
-	mips64-openbsd  -FAIL: macro vararg
-	mips64-openbsd  -FAIL: mips jalx
-	mips64-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of Jump Instruction issue
-	mips64el-openbsd  -FAIL: readelf -r bintest
-	mips64el-openbsd  -FAIL: forward expression
-	mips64el-openbsd  -FAIL: assignment tests
-	mips64el-openbsd  -FAIL: gas/all/none
-	mips64el-openbsd  -XFAIL: gas/elf/missing-build-notes
-	mips64el-openbsd  -FAIL: macro test 2
-	mips64el-openbsd  -FAIL: macro irp
-	mips64el-openbsd  -FAIL: macro rept
-	mips64el-openbsd  -FAIL: nested irp/irpc/rept
-	mips64el-openbsd  -FAIL: macro vararg
-	mips64el-openbsd  -FAIL: mips jalx
-	mips64el-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of Jump Instruction issue
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-		binutils/
-		* testsuite/binutils-all/readelf.r-64: Optionally match extra
-		R_MIPS_NONE pairs.
-
-		gas/
-		* testsuite/gas/all/assign.d: Optionally match extra
-		R_MIPS_NONE pairs.
-		* testsuite/gas/all/fwdexp.d: Likewise.
-		* testsuite/gas/all/none.d: Likewise.
-		* testsuite/gas/macros/irp.d: Likewise.
-		* testsuite/gas/macros/repeat.d: Likewise.
-		* testsuite/gas/macros/rept.d: Likewise.
-		* testsuite/gas/macros/test2.d: Likewise.
-		* testsuite/gas/macros/vararg.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-1.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-2.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-3.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-4.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-5.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-6.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-1.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-2.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-3.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-4.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-5.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-6.d: Likewise.
-		* testsuite/gas/mips/loongson-2f-3.d: Likewise.
-		* testsuite/gas/mips/mips-jalx.d: Likewise.
-		* testsuite/gas/elf/missing-build-notes.d: Likewise.  Remove
-		the `xfail' tag.
-
-		ld/
-		* testsuite/ld-mips-elf/reloc-estimate-1.d: Optionally match
-		extra R_MIPS_NONE pairs.
-
-	(cherry picked from commit ed4dca900c0dbc1317917cb289255d2f8d03f732)
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS/testsuite: Handle 64-bit addresses
-	Several MIPS test cases are suitable for the n64 ABI if not for the
-	extra leading zeros or spaces in addresses not handled by dump patterns.
-	Match the characters then, removing these regressions:
-
-	mips64-openbsd  -FAIL: .set arch=FOO
-	mips64-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of nop issue
-	mips64-openbsd  -FAIL: MIPS DSP ASE for MIPS64
-	mips64-openbsd  -FAIL: gas/mips/align2
-	mips64-openbsd  -FAIL: gas/mips/align2-el
-	mips64-openbsd  -FAIL: Locally-resolvable PC-relative code references
-	mips64-openbsd  -FAIL: MIPS jalx-1
-	mips64-openbsd  -FAIL: JAL overflow 2
-	mips64el-openbsd  -FAIL: .set arch=FOO
-	mips64el-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of nop issue
-	mips64el-openbsd  -FAIL: MIPS DSP ASE for MIPS64
-	mips64el-openbsd  -FAIL: gas/mips/align2
-	mips64el-openbsd  -FAIL: gas/mips/align2-el
-	mips64el-openbsd  -FAIL: Locally-resolvable PC-relative code references
-	mips64el-openbsd  -FAIL: MIPS jalx-1
-	mips64el-openbsd  -FAIL: JAL overflow 2
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-		gas/
-		* testsuite/gas/mips/align2-el.d: Match extra leading zeros
-		with addresses.
-		* testsuite/gas/mips/align2.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-1.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-2.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-3.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-4.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-5.d: Likewise.
-		* testsuite/gas/mips/compact-eh-eb-6.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-1.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-2.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-3.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-4.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-5.d: Likewise.
-		* testsuite/gas/mips/compact-eh-el-6.d: Likewise.
-		* testsuite/gas/mips/loongson-2f-2.d: Likewise.
-		* testsuite/gas/mips/loongson-2f-3.d: Likewise.
-		* testsuite/gas/mips/mips-jalx.d: Likewise.
-		* testsuite/gas/mips/mips64-dsp.d: Likewise.
-		* testsuite/gas/mips/pcrel-1.d: Likewise.
-		* testsuite/gas/mips/set-arch.d: Likewise.
-
-		ld/
-		* testsuite/ld-mips-elf/jaloverflow-2.d: Match extra leading
-		zeros and spaces with addresses as appropriate.
-		* testsuite/ld-mips-elf/jalx-1.d: Likewise.
-		* testsuite/ld-mips-elf/reloc-estimate-1.d: Likewise.
-
-	(cherry picked from commit ec76a6172f7b6d61f7d76c2bcf766122132116b8)
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	testsuite: Also discard the `.MIPS.options' section
-	Also discard the `.MIPS.options' section, used with n64 MIPS binaries,
-	along with similar other MIPS sections (`.reginfo', `.MIPS.abiflags')
-	not relevant for the test cases concerned, fixing these regressions:
-
-	mips64-openbsd  -FAIL: ld-elf/group3a
-	mips64-openbsd  -FAIL: ld-elf/group3b
-	mips64-openbsd  -FAIL: Place orphan sections (map file check)
-	mips64-openbsd  -FAIL: ld-elf/orphan-region
-	mips64-openbsd  -FAIL: ld-elf/orphan
-	mips64-openbsd  -FAIL: overlay size (map file check)
-	mips64-openbsd  -FAIL: overlay size
-	mips64el-openbsd  -FAIL: ld-elf/group3a
-	mips64el-openbsd  -FAIL: ld-elf/group3b
-	mips64el-openbsd  -FAIL: Place orphan sections (map file check)
-	mips64el-openbsd  -FAIL: ld-elf/orphan-region
-	mips64el-openbsd  -FAIL: ld-elf/orphan
-	mips64el-openbsd  -FAIL: overlay size (map file check)
-	mips64el-openbsd  -FAIL: overlay size
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-		binutils/
-		* testsuite/binutils-all/strip-3.d: Add `-R .MIPS.options' to
-		the `strip' tag.
-
-		ld/
-		* testsuite/ld-elf/group.ld: Also discard `.MIPS.options'.
-		* testsuite/ld-elf/orphan-region.ld: Likewise.
-		* testsuite/ld-elf/orphan.ld: Likewise.
-		* testsuite/ld-mips-elf/got-page-1.ld: Likewise.
-		* testsuite/ld-scripts/overlay-size.t: Likewise.
-
-	(cherry picked from commit 60ec8306db150e687fc05870949056bae6c8d635)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/LD/testsuite: Fix MIPS16 interlinking test IRIX 6 regressions
-	IRIX 6 does not have MIPS16 stub section support in its n32 linker
-	scripts, causing such input sections to be propagated to the respective
-	output sections rather than `.text', causing dump pattern mismatches.
-
-	Expect IRIX 6 to fail with n32 testing then, removing this regression:
-
-	mips-sgi-irix6  -FAIL: MIPS16 interlinking for local functions 1 (n32)
-
-	We may choose to update IRIX 6 n32 linker scripts sometime, as it seems
-	a harmless change.
-
-		ld/
-		* testsuite/ld-mips-elf/mips-elf.exp: Expect IRIX 6 to fail with
-		n32 `mips16-local-stubs-1' testing.
-
-	(cherry picked from commit ec3205bbc6f2018c9907bfd6e6c6ae51a2e01432)
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS/LD/testsuite: Fix MIPS16 interlinking test n64 regressions
-	The MIPS16 interlinking test for local functions expects to be assembled
-	with 32-bit addressing, otherwise causing assembly warnings:
-
-	.../ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s: Assembler messages:
-	.../ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s:16: Warning: la used to load 64-bit address; recommend using dla instead
-
-	Use the per-ABI framework then to run the test explicitly for o32 and
-	n32 ABIs only, replacing the `-mips4' option from the `as' tag with
-	`.module mips4' pseudo-op within the source itself so as to avoid
-	assembly errors:
-
-	Assembler messages:
-	Error: -mips4 conflicts with the other architecture options, which imply -mips3
-
-	with n32 testing for some targets, and ultimately removing these
-	regressions:
-
-	mips64-openbsd  -FAIL: MIPS16 interlinking for local functions 1
-	mips64el-openbsd  -FAIL: MIPS16 interlinking for local functions 1
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-		ld/
-		* testsuite/ld-mips-elf/mips16-local-stubs-1.d: Remove `-mips4'
-		from the `as' tag.
-		* testsuite/ld-mips-elf/mips16-local-stubs-1.s: Add `.module
-		mips4'.
-		* testsuite/ld-mips-elf/mips-elf.exp: Run `mips16-local-stubs-1'
-		for o32 and n32 ABIs only.
-
-	(cherry picked from commit 3c8ed624caf3317b2155a8c00a7af6a8bb6a3c10)
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS/GAS/testsuite: Force o32 for tests expecting 32-bit addressing
-	A few GAS tests expect to be assembled with 32-bit addressing, otherwise
-	causing an assembly warning:
-
-	.../gas/testsuite/gas/mips/fix-rm7000-2.s:11: Warning: la used to load 64-bit address; recommend using dla instead
-
-	or pattern dump mismatches against 32-bit address calculations, however
-	these tests do not enforce their expectation in any.  For none of them
-	the specific ABI used is of any relevance however, so select the o32 ABI
-	unconditionally, removing these failures with OpenBSD targets:
-
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (micromips)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips3)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips4)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips5)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r2)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r3)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r5)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon2)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon3)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeonp)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (r4000)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (sb1)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (vr5400)
-	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (xlr)
-	mips64-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon2)
-	mips64-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon3)
-	mips64-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeonp)
-	mips64-openbsd  -FAIL: Full MIPS R5900
-	mips64-openbsd  -FAIL: MIPS R5900 VU0
-	mips64-openbsd  -FAIL: Paired LL/SC for mips64r6 (mips64r6)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (micromips)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips3)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips4)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips5)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r2)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r3)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r5)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon2)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon3)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeonp)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (r4000)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (sb1)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (vr5400)
-	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (xlr)
-	mips64el-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon2)
-	mips64el-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon3)
-	mips64el-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeonp)
-	mips64el-openbsd  -FAIL: Full MIPS R5900
-	mips64el-openbsd  -FAIL: MIPS R5900 VU0
-	mips64el-openbsd  -FAIL: Paired LL/SC for mips64r6 (mips64r6)
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-		gas/
-		* testsuite/gas/mips/fix-rm7000-2.d: Add `-32' to the `as' tag.
-		* testsuite/gas/mips/micromips@fix-rm7000-2.d: Likewise.
-		* testsuite/gas/mips/r5900-full.d: Likewise.
-		* testsuite/gas/mips/r5900-vu0.d: Likewise.
-		* testsuite/gas/mips/llpscp-64.d: Add `as' tag with `-32'.
-		* testsuite/gas/mips/octeon-saa-saad.d: Likewise.
-
-	(cherry picked from commit ce0077a2e724146285c282037a41c68de6c0608d)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/LD/testsuite: Run `got-dump-1' for o32/n32 ABIs
-	The `got-dump-1' test case uses 32-bit addressing, so it makes no sense
-	to run it with the n64 ABI.  And there is a corresponding `got-dump-2'
-	test already for the n64 ABI.
-
-	Use the per-ABI framework then to run the `got-dump-1' test explicitly
-	for o32 and n32 ABIs only.
-
-		ld/
-		* testsuite/ld-mips-elf/mips-elf.exp: Run `got-dump-1' for o32
-		and n32 ABIs only.
-
-	(cherry picked from commit 70116eb5e6c74f9b526b1fec4e39f11238cb6a34)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/LD/testsuite: Fix `attr-gnu-4-10' failures with OpenBSD targets
-	OpenBSD targets produce ELF64 files while the pattern dump expects ELF32
-	output and specific header sizes.  Disable it for `mips64*-*-openbsd*'
-	for these targets then, removing these failures:
-
-	mips64-openbsd  -FAIL: ld-mips-elf/attr-gnu-4-10
-	mips64el-openbsd  -FAIL: ld-mips-elf/attr-gnu-4-10
-
-		ld/
-		* testsuite/ld-mips-elf/attr-gnu-4-10.d: Add `notarget' tag with
-		`mips64*-*-openbsd*'.
-
-	(cherry picked from commit b50c220d179d239eacd7d7e120f7466e2ea47170)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/LD/testsuite: Fix `attr-gnu-4-10' failures with IRIX targets
-	IRIX targets do not enable the production of a `.pdr' section in GAS by
-	default, which causes a failure with the `attr-gnu-4-10' test case due
-	to a difference resulting in the number and indices of sections produced
-	in linker output.
-
-	As the presence or absence of this section is not relevant to this test
-	case, just enable it unconditionally, fixing these regressions:
-
-	mips-sgi-irix5  -FAIL: ld-mips-elf/attr-gnu-4-10
-	mips-sgi-irix6  -FAIL: ld-mips-elf/attr-gnu-4-10
-
-		ld/
-		* testsuite/ld-mips-elf/attr-gnu-4-10.d: Add `as' tag with
-		`-mpdr'.
-
-	(cherry picked from commit d4e5281f03764a985b1229e9417a4fd1bebcea17)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/LD/testsuite: Fix JALR relaxation test failure with IRIX 6
-	The `mips-sgi-irix6' target only supports IRIX linker emulations, but
-	most JALR relaxation tests request the relevant traditional emulation
-	instead, causing a link failure:
-
-	./ld-new: unrecognised emulation mode: elf32btsmipn32
-	Supported emulations: elf32bmipn32 elf32bsmip elf64bmip
-
-	This is clearly an omission from the conversion to use the per-ABI
-	framework made with commit 78da84f99405 ("MIPS/LD/testsuite: Correct
-	mips-elf.exp test ABI/emul/endian arrangement").  These tests are also
-	endianness agnostic, which was missed in the conversion as well.
-
-	Remove the unnecessary explicit ABI and endianness options then and rely
-	on the per-ABI framework to get things right, removing this regression:
-
-	mips-sgi-irix6  -FAIL: MIPS relax-jalr-shared n32
-
-		ld/
-		* testsuite/ld-mips-elf/relax-jalr-n32-shared.d: Remove flags
-		related to ABI and endianness selection from the `as' and `ld'
-		tags.
-		* testsuite/ld-mips-elf/relax-jalr-n64.d: Likewise.
-		* testsuite/ld-mips-elf/relax-jalr-n64-shared.d: Likewise.
-		* testsuite/ld-mips-elf/mips-elf.exp: Remove `as' and `ld' tag
-		additions from the invocation of JALR relaxation tests.
-
-	(cherry picked from commit 94052ee4ccf0ac64b5f55da59878f13d567ef3cf)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/LD/testsuite: Fix unaligned JALX failures with OpenBSD targets
-	There are only n64 linker emulations included with `mips64*-*-openbsd*'
-	targets, however the unaligned JALX tests insist on running across all
-	targets and force the n32 ABI, causing link errors with the targets
-	concerned, e.g.:
-
-	./ld-new: tmpdir/unaligned-jalx-0.o: ABI is incompatible with that of the selected emulation
-	./ld-new: failed to merge target specific data of file tmpdir/unaligned-jalx-0.o
-	./ld-new: tmpdir/unaligned-insn.o: ABI is incompatible with that of the selected emulation
-	./ld-new: failed to merge target specific data of file tmpdir/unaligned-insn.o
-
-	Convert the tests then to use the per-ABI framework and run them for the
-	o32 and n32 ABIs, removing these regressions:
-
-	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 0
-	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 1
-	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 2
-	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 3
-	mips64-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 0
-	mips64-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 1
-	mips64-openbsd  -FAIL: microMIPS JALX to unaligned symbol 0
-	mips64-openbsd  -FAIL: microMIPS JALX to unaligned symbol 1
-	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 0
-	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 1
-	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 2
-	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 3
-	mips64el-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 0
-	mips64el-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 1
-	mips64el-openbsd  -FAIL: microMIPS JALX to unaligned symbol 0
-	mips64el-openbsd  -FAIL: microMIPS JALX to unaligned symbol 1
-
-	Similar tests for the n64 ABI can be added separately, using suitable
-	dump patterns.
-
-		ld/
-		* testsuite/ld-mips-elf/unaligned-jalx-0.d: Remove `-32' from
-		the `as' tag.
-		* testsuite/ld-mips-elf/unaligned-jalx-1.d: Likewise.
-		* testsuite/ld-mips-elf/unaligned-jalx-2.d: Likewise.
-		* testsuite/ld-mips-elf/unaligned-jalx-3.d: Likewise.
-		* testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d: Likewise.
-		* testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d: Likewise.
-		* testsuite/ld-mips-elf/unaligned-jalx-micromips-0.d: Likewise.
-		* testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d: Likewise.
-		* testsuite/ld-mips-elf/mips-elf.exp: Run unaligned JALX tests
-		with `run_dump_test_o32' and `run_dump_test_n32' rather than
-		`run_dump_test'.
-
-	(cherry picked from commit 67e789ae32fadc540c10839f08ad53ff01e2d732)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/GAS/testsuite: Disable compact EH #7 tests with OpenBSD targets
-	Compact EH #7 tests use output templates that are not suitable for the
-	n64 ABI, which `mips64*-*-openbsd*' targets use by default, because the
-	contents of the sections examined are expected to be differnt.  Disable
-	the tests then, removing these regressions:
-
-	mips64-openbsd  -FAIL: Compact EH EB #7 with personality id and fallback FDE
-	mips64-openbsd  -FAIL: Compact EH EL #7 with personality id and fallback FDE
-	mips64el-openbsd  -FAIL: Compact EH EB #7 with personality id and fallback FDE
-	mips64el-openbsd  -FAIL: Compact EH EL #7 with personality id and fallback FDE
-
-	Suitable corresponding tests for the n64 ABI can be added separately.
-
-		gas/
-		* testsuite/gas/mips/compact-eh-eb-7.d: Exclude for
-		`mips64*-*-openbsd*'.
-		* testsuite/gas/mips/compact-eh-el-7.d: Likewise.
-
-	(cherry picked from commit 2b4a60ab59f14a8fc1039c0cea41d22674447c1e)
-
-2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS/LD: Include n64 `.interp' with INITIAL_READONLY_SECTIONS
-	In ld/emulparams/elf64bmip-defs.sh there is no explicit handling of the
-	`.interp' section, which causes it to be positioned in output at an odd
-	place.
-
-	Let's include it with INITIAL_READONLY_SECTIONS, just like o32/n32 do,
-	fixing a regression from commit 5a8e7be242f3 ("INITIAL_READONLY_SECTIONS
-	in elf.sc"), where the handling of n64 was missed due to an unfortunate
-	sequence of events where ld/emulparams/elf64bmip-defs.sh was only added
-	with commit 94bb04b3c611 ("Use .reginfo rather than .MIPS.options in n32
-	linker scripts") the day before.
-
-	Add test cases covering section ordering across the three ABIs.  This
-	change also fixes ld/pr23658-2:
-
-	FAIL: Build pr23658-2
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-	ld/ChangeLog:
-		* emulparams/elf64bmip-defs.sh: Include `.interp' with
-		INITIAL_READONLY_SECTIONS.
-		* testsuite/ld-mips-elf/pie-n64.d: Adjust addresses.
-		* testsuite/ld-mips-elf/sections-1-o32.rd: New test.
-		* testsuite/ld-mips-elf/sections-1-o32t.rd: New test.
-		* testsuite/ld-mips-elf/sections-1-n32.rd: New test.
-		* testsuite/ld-mips-elf/sections-1-n32t.rd: New test.
-		* testsuite/ld-mips-elf/sections-1-n32p.rd: New test.
-		* testsuite/ld-mips-elf/sections-1-n64.rd: New test.
-		* testsuite/ld-mips-elf/sections-1-n64t.rd: New test.
-		* testsuite/ld-mips-elf/sections-2-o32.rd: New test.
-		* testsuite/ld-mips-elf/sections-2-o32t.rd: New test.
-		* testsuite/ld-mips-elf/sections-2-n32.rd: New test.
-		* testsuite/ld-mips-elf/sections-2-n32t.rd: New test.
-		* testsuite/ld-mips-elf/sections-2-n32p.rd: New test.
-		* testsuite/ld-mips-elf/sections-2-n64.rd: New test.
-		* testsuite/ld-mips-elf/sections-2-n64t.rd: New test.
-		* testsuite/ld-mips-elf/sections.s: New test source.
-		* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
-
-	(cherry picked from commit f625926792da741ab196ef71c16e481331965b6f)
-
-2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	Revert "MIPS: support mips*64 as CPU and gnuabi64 as ABI"
-	This reverts commit 32f1c80375ebe8ad25d9805ee5889f0006c51e59.  It had
-	two unrelated changes lumped together, one of which changed the meaning
-	of the `mipsisa64*-*-linux*' target triplets, which was not properly
-	evaluated.
-
-	(cherry picked from commit cc66ad2d2a63cec2eaafd7bbc6a9204490816c0b)
-
-2023-07-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-24  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: Fix immediate overflow check bug
-	  * elfnn-loongarch.c (RELOCATE_CALC_PC32_HI20): Redefined.
-	  (RELOCATE_CALC_PC64_HI32): Redefined.
-	  * elfxx-loongarch.c (reloc_bits_pcrel20_s2): Delete.
-	  (reloc_bits_b16): Delete.
-	  (reloc_bits_b21): Delete.
-	  (reloc_bits_b26): Delete.
-	  (reloc_sign_bits): New.
-
-2023-07-24  Nick Clifton  <nickc@redhat.com>
-
-	Updated Serbian translations for bfd, gold and opcodes
-
-2023-07-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-21  Alan Modra  <amodra@gmail.com>
-
-	MIPS: Don't move __gnu_lto_slim to .scommon
-		* elfxx-mips.c (_bfd_mips_elf_symbol_processing): Don't treat
-		__gnu_lto_slim as SHN_MIPS_SCOMMON.
-		(_bfd_mips_elf_add_symbol_hook): Likewise.
-
-2023-07-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-19  Nick Clifton  <nickc@redhat.com>
-
-	merged
-
-	Updated Romanian translation for the opcodes directory
-
-	Updated Romainian translation for the opcodes directory
-
-2023-07-19  Alan Modra  <amodra@gmail.com>
-
-	[GOLD, PowerPC64] Debug info relocation overflow
-	It is possible to build huge binaries on powerpc64, where 32-bit
-	addresses in debug info are insufficient to descibe locations in the
-	binary.  Help out the user, and only warn about debug overflows.
-
-		* powerpc.cc (Target_powerpc::Relocate::relocate): Warn on
-		relocation overflows in debug info.
-
-	(cherry picked from commit 03c02b696e90714a0ae2c0200d3c65cfffcaa1ee)
-
-2023-07-19  Alan Modra  <amodra@gmail.com>
-
-	PR10957, Missing option to really print section+offset
-	Many of the reloc error messages have already been converted from
-	using %C to using %H in ld.bfd, to print section+offset as well as
-	file/line/function.  This catches a few remaining, and changes gold to
-	do the same.
-
-		PR 10957
-	bfd/
-		* elf32-sh.c (sh_elf_relocate_section): Use %H in error messages.
-	gold/
-		* object.cc (Relocate_info::location): Always report section+offset.
-		* testsuite/debug_msg.sh: Adjust to suit.
-		* testsuite/x32_overflow_pc32.sh: Likewise.
-		* testsuite/x86_64_overflow_pc32.sh: Likewise.
-	ld/
-		* emultempl/pe.em (read_addend): Use %H in error message.
-		* emultempl/pep.em (read_addend): Likewise.
-		* ldcref.c (check_reloc_refs): Likewise.
-		* ldmain.c (warning_find_reloc, undefined_symbol): Likewise.
-		* pe-dll.c (pe_create_import_fixup): Likewise.
-		* testsuite/ld-cris/undef2.d: Adjust expected output to suit.
-		* testsuite/ld-cris/undef3.d: Likewise.
-		* testsuite/ld-elf/shared.exp: Likewise.
-		* testsuite/ld-i386/compressed1.d: Likewise.
-		* testsuite/ld-ia64/line.exp: Likewise.
-		* testsuite/ld-plugin/lto.exp: Likewise.
-		* testsuite/ld-undefined/undefined.exp: Likewise.
-		* testsuite/ld-x86-64/compressed1.d: Likewise.
-		* testsuite/ld-x86-64/line.exp: Likewise.
-		* testsuite/ld-x86-64/pr27587.err: Likewise.
-
-	(cherry picked from commit 02d2a36902c7b0fefe05e8d9bdbf11e846ac71fe)
-
-2023-07-19  Alan Modra  <amodra@gmail.com>
-
-	Fix loongarch build with gcc-4.5
-		* loongarch-opc.c (loongarch_alias_opcodes): Don't trigger
-		gcc-4.5 bug in handling of struct initialisation.
-
-	(cherry picked from commit 4993e5cc1e2e1e192f56f5788453c1b6f9cca894)
-
-2023-07-19  Alan Modra  <amodra@gmail.com>
-
-	elf_object_p load of dynamic symbols
-	This fixes an uninitialised memory access on a fuzzed file:
-	0 0xf22e9b in offset_from_vma /src/binutils-gdb/bfd/elf.c:1899:2
-	1 0xf1e90f in _bfd_elf_get_dynamic_symbols /src/binutils-gdb/bfd/elf.c:2099:13
-	2 0x10e6a54 in bfd_elf32_object_p /src/binutils-gdb/bfd/elfcode.h:851:9
-
-	Hopefully it will also stop any attempt to load dynamic symbols from
-	eu-strip debug files.
-
-		* elfcode.h (elf_object_p): Do not attempt to load dynamic
-		symbols for a file with no section headers until all the
-		program headers are swapped in.  Do not fail on eu-strip debug
-		files.
-
-	(cherry picked from commit 22e90ac5af46c01ee4972cf04e835266862bbb35)
-
-2023-07-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-18  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: 30602 [2.41] gprofng test hangs on i686-linux-gnu
-	There were several problems in the gprofng testing:
-	 - we did not catch a timeout for each test.
-	 - we used exit() to stop a failed test. But this stops all other tests.
-	 - we used a time_t (long) type in smalltest.c instead of a long long type.
-
-		PR gprofng/30602
-		* configure.ac: Launch only native testing.
-		* configure: Rebuild.
-		* testsuite/config/default.exp: Set TEST_TIMEOUT.
-		* testsuite/gprofng.display/setpath_map.exp: Use return instead of exit.
-		* testsuite/gprofng.display/gp-archive.exp: Likewise.
-		* testsuite/gprofng.display/gp-collect-app_F.exp: Likewise.
-		* testsuite/gprofng.display/display.exp: Delete an unnecessary test
-		for native testing.
-		* testsuite/lib/display-lib.exp (run_native_host_cmd): Add timeout.
-		* testsuite/lib/smalltest.c: Use a long long type instead of time_t.
-
-2023-07-18  Nick Clifton  <nickc@redhat.com>
-
-	Updated Swedish translation for the binutils subdirectory
-
-2023-07-18  Pter Chubb  <peter.chubb@unsw.edu.au>
-
-	PR 30632 - ld segfaults if linker script includes a STARTUP line.
-
-2023-07-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-17  Mark Harmstone  <mark@harmstone.com>
-
-	ld/PDB: fix off-by-1 in add_globals_ref()
-
-2023-07-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-12  Alan Modra  <amodra@gmail.com>
-
-	Re: Keeping track of rs6000-coff archive element pointers
-	bfd/
-		* coff-rs6000.c (add_range): Revise comment, noting possible fail.
-		(_bfd_xcoff_openr_next_archived_file): Start with clean ranges.
-	binutils/
-		* bfdtest1.c: Enhance to catch errors on second scan.
-
-	(cherry picked from commit 1052fb3ecb1ae46bcf22634c48739c12e585196a)
-
-2023-07-12  Alan Modra  <amodra@gmail.com>
-
-	Use run_host_cmd to run $CC and other no-section-header test fixes
-	We should be using run_host_cmd everywhere we invoke a compiler in the
-	ld testsuite, if we want to use ld/ld-new just built.  run_host_cmd
-	properly inserts $gcc_B_opt in cases where a user wants to test
-	binutils with a newly built compiler, ie. when $CC specifies -B itself.
-
-	Also, it is not good practice to exclude tests when non-native except
-	of course those tests that run a target binary.  Compiling and linking
-	often shows up problems.
-
-		* testsuite/ld-elf/no-section-header.exp (binutils_run_test):
-		Use run_host_cmd to invoke $CC_FOR_TARGET.  Run all tests
-		non-native too, except for attempting to run the binaries.
-		Run tests for ELF in general, not just linux.
-		* testsuite/ld-elf/pr25617-1-no-sec-hdr.rd: Allow localentry
-		symbol decoration, and support either sorting of symbols.
-		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.rd: Likewise.
-		* testsuite/ld-elf/pr25617-1a-sec-hdr.rd: Likewise.
-		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.nd: Accept D function syms.
-		* testsuite/ld-elf/start-shared-noheader-sysv.rd: Accept
-		mips-sgi-irix symbol output.
-		* testsuite/ld-elf/start-shared-noheader.nd: Likewise.
-
-	(cherry picked from commit 46f51ac38b81df4bf890e13824427c69285fdcaa)
-
-2023-07-12  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	ld: Use run_host_cmd_yesno in indirect.exp instead of catch exec
-	Catch "exec $CC_FOR_TARGET" won't use the gas/ld that we just build,
-	and in fact run_host_cmd_yesno is a better choice for it.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/indirect.exp: use run_host_cmd_yesno
-		instead of handwrite catch exec $CC_FOR_TARGET.
-
-	(cherry picked from commit 0f5cb49f68ae1be4b9702e71c3a9b80ee46b310a)
-
-2023-07-12  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	ld: Use [list ] syntax to define run_tests in indirect.exp
-	Currently, the var run_tests is defined by syntax {{}},
-	while in this case, variables cannot be used.
-	Thus $NOPIE_CFLAGS and $NOPIE_LDFLAGS are passed to cmd as names
-	instead of values:
-	  gcc ... $NOPIE_CFLAGS -c .../indirect5a.c -o tmpdir/indirect5a.o
-
-	Let's use [list [list ]] syntax instead.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/indirect.exp(run_tests): use [list [list]]
-		syntax instead of {{}}.
-
-	(cherry picked from commit 96a73f2cb2a1b4c47e49ff194a94f7394308956b)
-
-2023-07-12  Alan Modra  <amodra@gmail.com>
-
-	Re: Stop the linker's --dependency-file option from including temporary lto files.
-		PR 30568
-		* ldfile.c (ldfile_try_open_bfd): Fix build failure when
-		!BFD_SUPPORTS_PLUGINS.
-
-	(cherry picked from commit 5f60df9974516867c02562b56c3a98cf4714a915)
-
-2023-07-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-07  Nick Clifton  <nickc@redhat.com>
-
-	Replace local variable called 'rename' with 'renamed'
-
-	Udated Freach and Romainian translations for various sub-directories
-
-2023-07-07  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	ld: fix plugin tests for MIPS PIC
-	On MIPS, for PIC objects, symbols may reference 2 times:
-	once from the caller, and once from GOT.
-	Thus ld may complains 2 times about "undefined reference".
-
-	So we add a new "#?" line to every effected testsuite.
-
-2023-07-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-04  Nick Clifton  <nickc@redhat.com>
-
-	Updated Ukranian, Romanian and German translations for various sub-directories
-
-2023-07-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-03  Nick Clifton  <nickc@redhat.com>
-
-	Change version number to 2.40.90 and regenerate files
-
-	Add markers for the 2.41 branch
-
-2023-07-03  WANG Xuerui  <git@xen0n.name>
-
-	gas: NEWS: Announce LoongArch changes in the 2.41 cycle
-	gas/ChangeLog:
-
-		* NEWS: Mention LoongArch changes for 2.41.
-
-2023-07-03  WANG Xuerui  <git@xen0n.name>
-
-	binutils: NEWS: Announce LoongArch changes in the 2.41 cycle
-	binutils/ChangeLog:
-
-		* NEWS: Mention LoongArch changes for 2.41.
-
-2023-07-03  WANG Xuerui  <git@xen0n.name>
-
-	LoongArch: gas: Fix shared builds
-	Formerly an include of libbfd.h was added in commit 56576f4a722
-	("LoongArch: gas: Add support for linker relaxation."), in order to
-	allow calling _bfd_read_unsigned_leb128 from gas, but doing so broke
-	shared builds. Commit d2fddb6d783 fixed this reference but did not
-	remove the now unnecessary inclusion of libbfd.h. The gas_assert macro
-	expands into a conditional call to abort(), but "abort" is re-defined to
-	_bfd_abort in libbfd.h, so the extra include breaks any gas_assert
-	usage, and should be removed.
-
-	gas/ChangeLog:
-
-		* config/tc-loongarch.c: Don't include libbfd.h.
-
-	Fixes: d2fddb6d783 ("LoongArch: Fix ld "undefined reference" error with --enable-shared")
-
-2023-07-03  WANG Xuerui  <git@xen0n.name>
-
-	opcodes/loongarch: Mark address offset operands of LVZ/LBT insns as such
-	opcodes/ChangeLog:
-
-		* loongarch-opc.c: Mark the offset operands as "so" for
-		{,x}v{ld,st}, {,x}v{ldrepl,stelm}.[bhwd], and {ld,st}[lr].[wd].
-
-2023-07-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-07-01  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix data race
-	In our GUI project (https://savannah.gnu.org/projects/gprofng-gui), we use
-	the output of gprofng to display the data. Sometimes this data is corrupted.
-
-	gprofng/ChangeLog
-	2023-06-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* src/ipc.cc (ipc_doWork): Fix data race.
-		* src/ipcio.cc (IPCresponse::print): Fix data race.
-		Remove unused variables and functions.
-		* src/ipcio.h: Declare two variables.
-		* src/StringBuilder.cc (StringBuilder::write): New function.
-		* src/StringBuilder.h: Likewise.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	binutils: NEWS: Announce new RISC-V vector crypto extensions
-	This commit adds the recently added support of the RISC-V vector crypto
-	extensions to the NEWS file.
-
-	binutils/ChangeLog:
-
-		* NEWS: Announce new RISC-V vector crypto extensions.
-
-2023-07-01  Nathan Huckleberry  <nhuck@google.com>
-
-	RISC-V: Add support for the Zvksc ISA extension
-	Zvksc is part of the vector crypto extensions.
-
-	Zvksc is shorthand for the following set of extensions:
-	- Zvks
-	- Zvbc
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c: Define Zvksc extension.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvksc.d: New test.
-		* testsuite/gas/riscv/zvksc.s: New test.
-
-2023-07-01  Nathan Huckleberry  <nhuck@google.com>
-
-	RISC-V: Add support for the Zvknc ISA extension
-	Zvknc is part of the vector crypto extensions.
-
-	Zvknc is shorthand for the following set of extensxions:
-	- Zvkn
-	- Zvbc
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c: Define Zvknc extension.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvknc.d: New test.
-		* testsuite/gas/riscv/zvknc.s: New test.
-
-2023-07-01  Nathan Huckleberry  <nhuck@google.com>
-
-	RISC-V: Add support for the Zvksg ISA extension
-	Zvksg is part of the vector crypto extensions.
-
-	Zvksg is shorthand for the following set of extensions:
-	- Zvks
-	- Zvkg
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c: Define Zvksg extension.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvksg.d: New test.
-		* testsuite/gas/riscv/zvksg.s: New test.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvks ISA extension
-	Zvks is part of the vector crypto extensions.
-
-	Zvks is shorthand for the following set of extensions:
-	- Zvksed
-	- Zvksh
-	- Zvbb
-	- Zvkt
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c: Define Zvks extension.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvks.d: New test.
-		* testsuite/gas/riscv/zvks.s: New test.
-
-2023-07-01  Nathan Huckleberry  <nhuck@google.com>
-
-	RISC-V: Add support for the Zvkng ISA extension
-	Zvkng is part of the vector crypto extensions.
-
-	Zvkng is shorthand for the following set of extensions:
-	- Zvkn
-	- Zvkg
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c: Define Zvkng extension.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvkng.d: New test.
-		* testsuite/gas/riscv/zvkng.s: New test.
-
-2023-07-01  Nathan Huckleberry  <nhuck@google.com>
-
-	RISC-V: Allow nested implications for extensions
-	Certain extensions require two levels of implications.  For example,
-	zvkng implies zvkn and zvkn implies zvkned.  Enabling zvkng should also
-	enable zvkned.
-
-	This patch fixes this behavior.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_parse_add_implicit_subsets): Allow nested
-		implications for extensions.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvkn ISA extension
-	Zvkn is part of the vector crypto extensions.
-
-	Zvkn is shorthand for the following set of extensions:
-	- Zvkned
-	- Zvknhb
-	- Zvbb
-	- Zvkt
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c: Define Zvkn extension.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvkn.d: New test.
-		* testsuite/gas/riscv/zvkn.s: New test.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvksh ISA extension
-	Zvksh is part of the vector crypto extensions.
-
-	This extension adds the following instructions:
-	- vsm3me.vv
-	- vsm3c.vi
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for Zvksh.
-		(riscv_multi_subset_supports_ext): Likewise.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvksh.d: New test.
-		* testsuite/gas/riscv/zvksh.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_VSM3C_VI): New.
-		(MASK_VSM3C_VI): New.
-		(MATCH_VSM3ME_VV): New.
-		(MASK_VSM3ME_VV): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
-		support for Zvksh.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c: Add Zvksh instructions.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvksed ISA extension
-	Zvksed is part of the vector crypto extensions.
-
-	This extension adds the following instructions:
-	- vsm4k.vi
-	- vsm4r.[vv,vs]
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for Zvksed.
-		(riscv_multi_subset_supports_ext): Likewise.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvksed.d: New test.
-		* testsuite/gas/riscv/zvksed.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_VSM4K_VI): New.
-		(MASK_VSM4K_VI): New.
-		(MATCH_VSM4R_VS): New.
-		(MASK_VSM4R_VS): New.
-		(MATCH_VSM4R_VV): New.
-		(MASK_VSM4R_VV): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
-		support for Zvksed.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c: Add Zvksed instructions.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvknh[a,b] ISA extensions
-	Zvknh[a,b] are parts of the vector crypto extensions.
-
-	This extension adds the following instructions:
-	- vsha2ms.vv
-	- vsha2c[hl].vv
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for Zvknh[a,b].
-		(riscv_multi_subset_supports_ext): Likewise.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvknha.d: New test.
-		* testsuite/gas/riscv/zvknha_zvknhb.s: New test.
-		* testsuite/gas/riscv/zvknhb.d: New test.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_VSHA2CH_VV): New.
-		(MASK_VSHA2CH_VV): New.
-		(MATCH_VSHA2CL_VV): New.
-		(MASK_VSHA2CL_VV): New.
-		(MATCH_VSHA2MS_VV): New.
-		(MASK_VSHA2MS_VV): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
-		support for Zvknh[a,b].
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c: Add Zvknh[a,b] instructions.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvkned ISA extension
-	Zvkned is part of the vector crypto extensions.
-
-	This extension adds the following instructions:
-	- vaesef.[vv,vs]
-	- vaesem.[vv,vs]
-	- vaesdf.[vv,vs]
-	- vaesdm.[vv,vs]
-	- vaeskf1.vi
-	- vaeskf2.vi
-	- vaesz.vs
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for Zvkned.
-		(riscv_multi_subset_supports_ext): Likewise.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvkned.d: New test.
-		* testsuite/gas/riscv/zvkned.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_VAESDF_VS): New.
-		(MASK_VAESDF_VS): New.
-		(MATCH_VAESDF_VV): New.
-		(MASK_VAESDF_VV): New.
-		(MATCH_VAESDM_VS): New.
-		(MASK_VAESDM_VS): New.
-		(MATCH_VAESDM_VV): New.
-		(MASK_VAESDM_VV): New.
-		(MATCH_VAESEF_VS): New.
-		(MASK_VAESEF_VS): New.
-		(MATCH_VAESEF_VV): New.
-		(MASK_VAESEF_VV): New.
-		(MATCH_VAESEM_VS): New.
-		(MASK_VAESEM_VS): New.
-		(MATCH_VAESEM_VV): New.
-		(MASK_VAESEM_VV): New.
-		(MATCH_VAESKF1_VI): New.
-		(MASK_VAESKF1_VI): New.
-		(MATCH_VAESKF2_VI): New.
-		(MASK_VAESKF2_VI): New.
-		(MATCH_VAESZ_VS): New.
-		(MASK_VAESZ_VS): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
-		support for Zvkned.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c: Add Zvkned instructions.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvkg ISA extension
-	Zvkg is part of the vector crypto extensions.
-
-	This extension adds the following instructions:
-	- vghsh.vv
-	- vgmul.vv
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for Zvkg.
-		(riscv_multi_subset_supports_ext): Likewise.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvkg.d: New test.
-		* testsuite/gas/riscv/zvkg.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_VGHSH_VV): New.
-		(MASK_VGHSH_VV): New.
-		(MATCH_VGMUL_VV): New.
-		(MASK_VGMUL_VV): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
-		support for Zvkg.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c: Add Zvkg instructions.
-
-2023-07-01  Nathan Huckleberry  <nhuck@google.com>
-
-	RISC-V: Add support for the Zvbc extension
-	Zvbc is part of the crypto vector extensions.
-
-	This extension adds the following instructions:
-	- vclmul.[vv,vx]
-	- vclmulh.[vv,vx]
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for Zvbc.
-		(riscv_multi_subset_supports_ext): Likewise.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zvbc.d: New test.
-		* testsuite/gas/riscv/zvbc.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_VCLMUL_VV): New.
-		(MASK_VCLMUL_VV): New.
-		(MATCH_VCLMUL_VX): New.
-		(MASK_VCLMUL_VX): New.
-		(MATCH_VCLMULH_VV): New.
-		(MASK_VCLMULH_VV): New.
-		(MATCH_VCLMULH_VX): New.
-		(MASK_VCLMULH_VX): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
-		  support for Zvbc.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c: Add Zvbc instruction.
-
-2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zvbb ISA extension
-	Zvbb is part of the vector crypto extensions.
-
-	This extension adds the following instructions:
-	- vandn.[vv,vx]
-	- vbrev.v
-	- vbrev8.v
-	- vrev8.v
-	- vclz.v
-	- vctz.v
-	- vcpop.v
-	- vrol.[vv,vx]
-	- vror.[vv,vx,vi]
-	- vwsll.[vv,vx,vi]
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for Zvbb.
-		(riscv_multi_subset_supports_ext): Likewise.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (validate_riscv_insn): Add 'l' as new format
-		string directive.
-		(riscv_ip): Likewise.
-		* testsuite/gas/riscv/zvbb.d: New test.
-		* testsuite/gas/riscv/zvbb.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_VANDN_VV): New.
-		(MASK_VANDN_VV): New.
-		(MATCH_VANDN_VX): New.
-		(MASK_VANDN_VX): New.
-		(MATCH_VBREV8_V): New.
-		(MASK_VBREV8_V): New.
-		(MATCH_VBREV_V): New.
-		(MASK_VBREV_V): New.
-		(MATCH_VCLZ_V): New.
-		(MASK_VCLZ_V): New.
-		(MATCH_VCPOP_V): New.
-		(MASK_VCPOP_V): New.
-		(MATCH_VCTZ_V): New.
-		(MASK_VCTZ_V): New.
-		(MATCH_VREV8_V): New.
-		(MASK_VREV8_V): New.
-		(MATCH_VROL_VV): New.
-		(MASK_VROL_VV): New.
-		(MATCH_VROL_VX): New.
-		(MASK_VROL_VX): New.
-		(MATCH_VROR_VI): New.
-		(MASK_VROR_VI): New.
-		(MATCH_VROR_VV): New.
-		(MASK_VROR_VV): New.
-		(MATCH_VROR_VX): New.
-		(MASK_VROR_VX): New.
-		(MATCH_VWSLL_VI): New.
-		(MASK_VWSLL_VI): New.
-		(MATCH_VWSLL_VV): New.
-		(MASK_VWSLL_VV): New.
-		(MATCH_VWSLL_VX): New.
-		(MASK_VWSLL_VX): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (EXTRACT_RVV_VI_UIMM6): New.
-		(ENCODE_RVV_VI_UIMM6): New.
-		(enum riscv_insn_class): Add instruction class for Zvbb.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Add 'l' as new format string
-		directive.
-		* riscv-opc.c: Add Zvbb instructions.
-
-2023-07-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-30  Tom Tromey  <tom@tromey.com>
-
-	Fix regressions caused by agent expression C++-ification
-	Simon pointed out that my agent expression C++-ification patches
-	caused a regression with the native-gdbserver target board.  The bug
-	is that append_const is supposed to write in big-endian order, but I
-	switched this by mistake.
-
-2023-06-30  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	binutils: NEWS: announce new RISC-V extensions
-	We picked up support for a few new extensions over the last weeks
-	(this may need further updating prior to the next release), list them
-	in the NEWS file.
-
-	binutils/ChangeLog:
-
-		* binutils/NEWS: announce suuport for the new RISC-V
-	          extensions (Zicond, Zfa, XVentanaCondOps).
-
-2023-06-30  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for the Zfa extension
-	This patch adds support for the RISC-V Zfa extension,
-	which introduces additional floating-point instructions:
-	* fli (load-immediate) with pre-defined immediates
-	* fminm/fmaxm (like fmin/fmax but with different NaN behaviour)
-	* fround/froundmx (round to integer)
-	* fcvtmod.w.d (Modular Convert-to-Integer)
-	* fmv* to access high bits of FP registers in case XLEN < FLEN
-	* fleq/fltq (quiet comparison instructions)
-
-	Zfa defines its instructions in combination with the following
-	extensions:
-	* single-precision floating-point (F)
-	* double-precision floating-point (D)
-	* quad-precision floating-point (Q)
-	* half-precision floating-point (Zfh)
-
-	This patch is based on an earlier version from Tsukasa OI:
-	  https://sourceware.org/pipermail/binutils/2022-September/122939.html
-	Most significant change to that commit is the switch from the rs1-field
-	value to the actual floating-point value in the last operand of the fli*
-	instructions. Everything that strtof() can parse is accepted and
-	the '%a' printf specifier is used to output hex floating-point literals
-	in the disassembly.
-
-	The Zfa specification is frozen (and has passed public review).  It is
-	available as a chapter in "The RISC-V Instruction Set Manual: Volume 1":
-	  https://github.com/riscv/riscv-isa-manual/releases
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
-		class support for 'Zfa' extension.
-		(riscv_multi_subset_supports_ext): Likewise.
-		(riscv_implicit_subsets): Add 'Zfa' -> 'F' dependency.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (flt_lookup): New helper to lookup a float value
-		in an array.
-		(validate_riscv_insn): Add 'Wfv' as new format string directive.
-		(riscv_ip): Likewise.
-		* doc/c-riscv.texi: Add floating-point chapter and describe
-		limiations of the Zfa FP literal parsing.
-		* testsuite/gas/riscv/zfa-32.d: New test.
-		* testsuite/gas/riscv/zfa-32.s: New test.
-		* testsuite/gas/riscv/zfa-64.d: New test.
-		* testsuite/gas/riscv/zfa-64.s: New test.
-		* testsuite/gas/riscv/zfa-fail.d: New test.
-		* testsuite/gas/riscv/zfa-fail.l: New test.
-		* testsuite/gas/riscv/zfa-fail.s: New test.
-		* testsuite/gas/riscv/zfa.d: New test.
-		* testsuite/gas/riscv/zfa.s: New test.
-		* testsuite/gas/riscv/zfa.s: New test.
-
-		* opcode/riscv-opc.h (MATCH_FLI_H): New.
-		(MASK_FLI_H): New.
-		(MATCH_FMINM_H): New.
-		(MASK_FMINM_H): New.
-		(MATCH_FMAXM_H): New.
-		(MASK_FMAXM_H): New.
-		(MATCH_FROUND_H): New.
-		(MASK_FROUND_H): New.
-		(MATCH_FROUNDNX_H): New.
-		(MASK_FROUNDNX_H): New.
-		(MATCH_FLTQ_H): New.
-		(MASK_FLTQ_H): New.
-		(MATCH_FLEQ_H): New.
-		(MASK_FLEQ_H): New.
-		(MATCH_FLI_S): New.
-		(MASK_FLI_S): New.
-		(MATCH_FMINM_S): New.
-		(MASK_FMINM_S): New.
-		(MATCH_FMAXM_S): New.
-		(MASK_FMAXM_S): New.
-		(MATCH_FROUND_S): New.
-		(MASK_FROUND_S): New.
-		(MATCH_FROUNDNX_S): New.
-		(MASK_FROUNDNX_S): New.
-		(MATCH_FLTQ_S): New.
-		(MASK_FLTQ_S): New.
-		(MATCH_FLEQ_S): New.
-		(MASK_FLEQ_S): New.
-		(MATCH_FLI_D): New.
-		(MASK_FLI_D): New.
-		(MATCH_FMINM_D): New.
-		(MASK_FMINM_D): New.
-		(MATCH_FMAXM_D): New.
-		(MASK_FMAXM_D): New.
-		(MATCH_FROUND_D): New.
-		(MASK_FROUND_D): New.
-		(MATCH_FROUNDNX_D): New.
-		(MASK_FROUNDNX_D): New.
-		(MATCH_FLTQ_D): New.
-		(MASK_FLTQ_D): New.
-		(MATCH_FLEQ_D): New.
-		(MASK_FLEQ_D): New.
-		(MATCH_FLI_Q): New.
-		(MASK_FLI_Q): New.
-		(MATCH_FMINM_Q): New.
-		(MASK_FMINM_Q): New.
-		(MATCH_FMAXM_Q): New.
-		(MASK_FMAXM_Q): New.
-		(MATCH_FROUND_Q): New.
-		(MASK_FROUND_Q): New.
-		(MATCH_FROUNDNX_Q): New.
-		(MASK_FROUNDNX_Q): New.
-		(MATCH_FLTQ_Q): New.
-		(MASK_FLTQ_Q): New.
-		(MATCH_FLEQ_Q): New.
-		(MASK_FLEQ_Q): New.
-		(MATCH_FCVTMOD_W_D): New.
-		(MASK_FCVTMOD_W_D): New.
-		(MATCH_FMVH_X_D): New.
-		(MASK_FMVH_X_D): New.
-		(MATCH_FMVH_X_Q): New.
-		(MASK_FMVH_X_Q): New.
-		(MATCH_FMVP_D_X): New.
-		(MASK_FMVP_D_X): New.
-		(MATCH_FMVP_Q_X): New.
-		(MASK_FMVP_Q_X): New.
-		(DECLARE_INSN): New.
-		* opcode/riscv.h (enum riscv_insn_class): Add instruction
-		classes for the Zfa extension.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Add support for
-		new format string directive 'Wfv'.
-		* riscv-opc.c: Add Zfa instructions.
-
-	Co-Developed-by: Tsukasa OI <research_trasio@irq.a4lg.com>
-	Co-Developed-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
-	Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
-
-2023-06-30  Nick Clifton  <nickc@redhat.com>
-
-	strings: Improve code to detect excessively large minimum string lengths.
-	  PR 30598
-	  * strings.c (set_string_min): New function. (main): Use it. (print_unicode_stream): Calculate buffer size using a size_t.
-
-	Prevent an illegal memory access when running the strings program with an excessively lerge minimum string length.
-	  PR 30595
-	  * strings.c (main): Check for an excessively large minimum string length.
-
-	Fix used-before-initialized warnings when compiling elf.c with Clang-16.
-
-2023-06-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: gas: Fix code style issues
-	  Blocks of 8 spaces be replaced with tabs.
-	  Fix alignment issues.
-
-2023-06-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: gas: Add LVZ and LBT instructions support
-	gas/ChangeLog:
-		* config/tc-loongarch.c (md_parse_option): Add LARCH_opts.ase_lvz and
-		LARCH_opts.ase_lbt.
-		* testsuite/gas/loongarch/uleb128.d: Regenerated.
-		* testsuite/gas/loongarch/lvz-lbt.d: New test.
-		* testsuite/gas/loongarch/lvz-lbt.s: New test.
-
-	include/ChangeLog:
-		* opcode/loongarch.h (ase_lvz): New.
-		(ase_lbt): New.
-
-	opcodes/ChangeLog:
-		* loongarch-dis.c (set_default_loongarch_dis_options): Add
-		LARCH_opts.ase_lvz and LARCH_opts.ase_lbt.
-		* loongarch-opc.c (struct loongarch_ase): Add LVZ and LBT instructions.
-
-2023-06-30  WANG Xuerui  <git@xen0n.name>
-
-	LoongArch: Deprecate $v[01], $fv[01] and $x names per spec
-	As outlined in the LoongArch ELF psABI spec [1], it is actually already
-	2 versions after the initial LoongArch support, and the $v[01] and
-	$fv[01] names should really get sunset by now.
-
-	In addition, the "$x" name for $r21 was never included in any released
-	version of the ABI spec, and such usages are all fixed to say just $r21
-	for every project I could think of that accepted a LoongArch port.
-
-	Plus, the upcoming LSX/LASX support makes use of registers named
-	"$vrNN" and "$xrNN", so having "$vN" and "$x" alongside would almost
-	certainly create confusion for developers.
-
-	Issue warnings for such usages per the deprecation procedure detailed
-	in the spec, so we can finally remove support in the next release cycle
-	after this.
-
-	[1]: https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html
-
-	gas/ChangeLog:
-
-		* config/tc-loongarch.c: Init canonical register ABI name
-		mappings and deprecated register names.
-		(loongarch_args_parser_can_match_arg_helper): Warn in case of
-		deprecated register name usage.
-		* testsuite/gas/loongarch/deprecated_reg_aliases.d: New test.
-		* testsuite/gas/loongarch/deprecated_reg_aliases.l: Likewise.
-		* testsuite/gas/loongarch/deprecated_reg_aliases.s: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/loongarch.h: Rename global variables.
-
-	opcodes/ChangeLog:
-
-		* loongarch-opc.c: Rename the alternate/deprecated register name
-		mappings, and move $x to the deprecated name map.
-
-2023-06-30  WANG Xuerui  <git@xen0n.name>
-
-	opcodes/loongarch: print unrecognized insn words with the .word directive
-	For better round-trip fidelity and readability in general.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/loongarch/uleb128.d: Update test case.
-		* testsuite/gas/loongarch/raw-insn.d: New test.
-		* testsuite/gas/loongarch/raw-insn.s: Likewise.
-
-	opcodes/ChangeLog:
-
-		* loongarch-dis.c (disassemble_one): Print ".word" if !opc.
-
-2023-06-30  WANG Xuerui  <git@xen0n.name>
-
-	opcodes/loongarch: do not print hex notation for signed immediates
-	The additional hex notation was minimally useful when one had to
-	inspect code with heavy bit manipulation, or of unclear signedness, but
-	it clutters the output, and the style is not regular assembly language
-	syntax either.
-
-	Precisely how one approaches the original use case is not taken care of
-	in this patch (maybe we want a disassembler option forcing a certain
-	style for immediates, like for example printing every immediate in
-	decimal or hexadecimal notation), but at least let's stop the current
-	practice.
-
-	ChangeLog:
-
-		* testsuite/gas/loongarch/imm_ins.d: Update test case.
-		* testsuite/gas/loongarch/imm_ins_32.d: Likewise.
-		* testsuite/gas/loongarch/imm_op.d: Likewise.
-		* testsuite/gas/loongarch/jmp_op.d: Likewise.
-		* testsuite/gas/loongarch/load_store_op.d: Likewise.
-		* testsuite/gas/loongarch/macro_op.d: Likewise.
-		* testsuite/gas/loongarch/macro_op_32.d: Likewise.
-		* testsuite/gas/loongarch/privilege_op.d: Likewise.
-		* testsuite/gas/loongarch/uleb128.d: Likewise.
-		* testsuite/gas/loongarch/vector.d: Likewise.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-loongarch-elf/jmp_op.d: Update test case.
-		* testsuite/ld-loongarch-elf/macro_op.d: Likewise.
-		* testsuite/ld-loongarch-elf/macro_op_32.d: Likewise.
-
-	opcodes/ChangeLog:
-
-		* loongarch-dis.c (dis_one_arg): Remove the "(0x%x)" part from
-		disassembly output of signed immediate operands.
-
-2023-06-30  WANG Xuerui  <git@xen0n.name>
-
-	opcodes/loongarch: style disassembled address offsets as such
-	Add a modifier char 'o' telling the disassembler to print the immediate
-	using the address offset style, and mark the memory access instructions'
-	offset operands as such.
-
-	opcodes/ChangeLog:
-
-		* loongarch-dis.c (dis_one_arg): Style disassembled address
-		offsets as such when the operand has a modifier char 'o'.
-		* loongarch-opc.c: Add 'o' to operands that represent address
-		offsets.
-
-2023-06-30  WANG Xuerui  <git@xen0n.name>
-
-	opcodes/loongarch: implement style support in the disassembler
-	Update the LoongArch disassembler to supply style information to the
-	disassembler output. The output formatting remains unchanged.
-
-	opcodes/ChangeLog:
-
-		* disassemble.c: Mark LoongArch as created_styled_output=true.
-		* loongarch-dis.c (dis_one_arg): Use fprintf_styled_func
-		throughout with proper styles.
-
-2023-06-30  WANG Xuerui  <git@xen0n.name>
-
-	opcodes/loongarch: remove unused code
-	Remove some unused declarations and code.
-
-	include/ChangeLog:
-
-		* opcode/loongarch.h: Remove unused declarations.
-
-	opcodes/ChangeLog:
-
-		* loongarch-dis.c (loongarch_parse_dis_options): Remove.
-		(my_print_address_func): Likewise.
-		(loongarch_disassemble_one): Likewise.
-
-2023-06-30  WANG Xuerui  <git@xen0n.name>
-
-	LoongArch: support disassembling certain pseudo-instructions
-	Add a flag in the pinfo field for being able to mark certain specialized
-	matchers as disassembler-only, so some degree of isolation between
-	assembler-side and disassembler-side can be achieved.
-
-	This isolation is necessary, firstly because some pseudo-instructions
-	cannot be fully described in the opcode table, like `li.[wd]`, so the
-	corresponding opcode entry cannot have meaningful match/mask values.
-	Secondly, some of these pseudo-instructions can be realized in more than
-	one plausible ways; e.g. `li.w rd, <something between 0 and 0x7ff>` can
-	be realized on LA64 with any of `addi.w`, `addi.d` or `ori`. If we tie
-	disassembly of such aliases with the corresponding GAS support, only one
-	canonical form among the above would be recognized as `li.w`, and it
-	would mildly impact the readability of disassembly output.
-	People wanting the exact disassembly can always set `-M no-aliases` to
-	get the original behavior back.
-
-	In addition, in certain cases, information is irreversibly lost after
-	assembling, so perfect round-trip would not be possible in such cases.
-	For example, `li.w` and `li.d` of immediates within int32_t range
-	produce the same code; in this patch, `addi.d rd, $zero, imm` is treated
-	as `li.d`, while `addi.w` and `ori` immediate loads are shown as `li.w`,
-	due to the expressible value range well within 32 bits.
-
-	gas/ChangeLog:
-
-		* config/tc-loongarch.c (get_loongarch_opcode): Ignore
-		disassembler-only aliases.
-		* testsuite/gas/loongarch/64_pcrel.d: Update test case.
-		* testsuite/gas/loongarch/imm_ins.d: Likewise.
-		* testsuite/gas/loongarch/imm_ins_32.d: Likewise.
-		* testsuite/gas/loongarch/jmp_op.d: Likewise.
-		* testsuite/gas/loongarch/li.d: Likewise.
-		* testsuite/gas/loongarch/macro_op.d: Likewise.
-		* testsuite/gas/loongarch/macro_op_32.d: Likewise.
-		* testsuite/gas/loongarch/macro_op_large_abs.d: Likewise.
-		* testsuite/gas/loongarch/macro_op_large_pc.d: Likewise.
-		* testsuite/gas/loongarch/nop.d: Likewise.
-		* testsuite/gas/loongarch/relax_align.d: Likewise.
-		* testsuite/gas/loongarch/reloc.d: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/loongarch.h (INSN_DIS_ALIAS): Add.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-loongarch-elf/jmp_op.d: Update test case.
-		* testsuite/ld-loongarch-elf/macro_op.d: Likewise.
-		* testsuite/ld-loongarch-elf/macro_op_32.d: Likewise.
-		* testsuite/ld-loongarch-elf/relax-align.dd: Likewise.
-
-	opcodes/ChangeLog:
-
-		* loongarch-dis.c: Move register name map declarations to top.
-		(get_loongarch_opcode_by_binfmt): Consider aliases when
-		disassembling without the no-aliases option.
-		(parse_loongarch_dis_option): Support the no-aliases option.
-		* loongarch-opc.c: Collect pseudo instructions into a new
-		dedicated table.
-
-2023-06-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	binutils/NEWS: announce SFrame version 2 as the new default
-
-2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	doc: sframe: update specification for SFRAME_VERSION_2
-	Add details for the changes made from Version 1 to Version 2 of the format.
-
-	Also add details about alignment in the SFrame format.  A portion of the
-	SFrame stack trace format has an unaligned on-disk representation.  Add
-	description at relevant points in the specificatin to clarify the
-	alignment related details.
-
-2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe: bfd: gas: ld: format bump to SFrame version 2
-	SFrame version 2 encodes the size of repetitive insn block explicitly
-	in the format.  Add information in the SFrame FDE to convey the size
-	of the block of repeating instructions.  This information is used only
-	for SFrame FDEs of type SFRAME_FDE_TYPE_PCMASK.
-
-	Introduce two extra bytes for padding: this ensures that the memory
-	accesses to the members of the SFrame Frame Descriptor Entry (FDE) are
-	naturally aligned.
-
-	gas generates SFrame section with version SFRAME_VERSION_2 by default.
-
-	libsframe provides two new APIs to:
-	  - get an SFrame FDE data from the decoder context, and
-	  - add an SFrame FDE to the encoder context.
-	The additional argument (for rep_block_size) is useful for SFrame FDEs
-	where FDE type is SFRAME_FDE_TYPE_PCMASK.
-
-	The linker will generate the output SFrame sections in the
-	SFRAME_VERSION_2 format.  If the input sections offered to the linker
-	are not all in the SFRAME_VERSION_2 format, the linker issues an error
-	to the user.
-
-	objdump/readelf will show the following message to the user if .sframe
-	section in SFRAME_VERSION_1 format is seen:
-
-	 "No further information can be displayed.  SFrame version not
-	 supported."
-
-	In other words, like the rest of the binutils, only the current SFrame
-	format version, i.e., SFRAME_VERSION_2 is supported by the textual dump
-	facilities.
-
-	bfd/
-		* elf-sframe.c (_bfd_elf_merge_section_sframe): Generate an
-		output SFrame section with version SFRAME_VERSION_2.  Also,
-		error out if the SFrame sections do not all have
-		SFRAME_VERSION_2.
-		* elfxx-x86.c (_bfd_x86_elf_create_sframe_plt): Generate SFrame
-		section for plt entries with version SFRAME_VERSION_2.
-	gas/
-		* gen-sframe.c (sframe_set_version): Update to SFRAME_VERSION_2.
-		(output_sframe): Likewise.
-	gas/testsuite/
-		* gas/cfi-sframe/cfi-sframe-aarch64-1.d: Use SFRAME_VERSION_2.
-		* gas/cfi-sframe/cfi-sframe-aarch64-2.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-1.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-2.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-3.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-4.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-5.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-6.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-7.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-common-8.d: Likewise.
-		* gas/cfi-sframe/cfi-sframe-x86_64-1.d: Likewise.
-		* gas/cfi-sframe/common-empty-1.d: Likewise.
-		* gas/cfi-sframe/common-empty-2.d: Likewise.
-		* gas/cfi-sframe/common-empty-3.d: Likewise.
-	ld/testsuite/
-		* ld-aarch64/sframe-simple-1.d: Adjust for SFRAME_VERSION_2.
-		* ld-x86-64/sframe-plt-1.d: Likewise.
-		* ld-x86-64/sframe-simple-1.d: Likewise.
-	libsframe/
-		* libsframe.ver: Add the new APIs.
-		* sframe.c (sframe_decoder_get_funcdesc_v2): New definition.
-		(sframe_encoder_add_funcdesc_v2): Likewise.
-		(sframe_header_sanity_check_p): Include SFRAME_VERSION_2.
-		(sframe_fre_check_range_p): Get rep_block_size info from SFrame
-		FDE.
-		* sframe-dump.c (dump_sframe_header): Add support for
-		SFRAME_VERSION_2.
-		(dump_sframe): Inform user if SFrame section in SFRAME_VERSION_1
-		format is seen.
-	libsframe/testsuite/
-		* libsframe.decode/DATA-BE: Regenerated data file.
-		* libsframe.decode/DATA1: Likewise.
-		* libsframe.decode/DATA2: Likewise.
-		* libsframe.find/plt-findfre-1.c: Use new API in the testcase.
-	include/
-		* sframe.h: Add member to encode size of the code block of
-		repeating instructions.  Add 2 bytes of padding.
-		* sframe-api.h (sframe_decoder_get_funcdesc_v2): New
-		declaration.
-		(sframe_encoder_add_funcdesc_v2): Likewise.
-
-2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: add new APIs to get SFrame version
-	While the SFrame preamble is guaranteed to not change between versions,
-	providing these access APIs from the SFrame decoder and encoder APIs is
-	for convenience only.  The linker may want to use these APIs as the
-	format evolves.
-
-	include/
-		* sframe-api.h (sframe_decoder_get_version): New declaration.
-		(sframe_encoder_get_version): Likewise.
-
-	libsframe/
-		* libsframe/libsframe.ver: Add new APIs.
-		* libsframe/sframe.c (sframe_decoder_get_version): New
-		definition.
-		(sframe_encoder_get_version): Likewise.
-
-2023-06-29  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: fix sframe_find_fre for pltN entries
-	For a toy application on x86_64, for example, following is the SFrame
-	stack trace information for the 3 pltN entries of 16 bytes each:
-
-	   func idx [1]: pc = 0x401030, size = 48 bytes
-	   STARTPC[m]      CFA       FP        RA
-	   0000000000000000  sp+8      u         u
-	   000000000000000b  sp+16     u         u
-
-	The data in first column is the start_ip_offset.  Also note that the FDE
-	is of type SFRAME_FDE_TYPE_PCMASK (denoted by the [m] on LHS).
-
-	Where each pltN (note: excluding plt0 entry) entry looks like:
-
-	  401030: jmp    *0x2fca(%rip)
-	  401036: push   $0x0
-	  40103b: jmp    401020<_init+0x20>
-
-	  401040: jmp    *0x2fc2(%rip)
-	  401046: push   $0x1
-	  40104b: jmp    401020<_init+0x20>
-
-	  401050: jmp    *0x2fba(%rip)
-	  401056: push   $0x2
-	  40105b: jmp    401020<_init+0x20>
-
-	Now, to find SFrame stack trace information from an FDE of type
-	SFRAME_FDE_TYPE_PCMASK, sframe_find_fre () was doing an operation
-	like,
-	  (start_ip_offset & 0xf) >= (pc & 0xf)
-
-	This works for pltN entry of size, say, less than 16 bytes.  But if the
-	pltN entries or similar code stubs (for which SFrame FDE of type
-	SFRAME_FDE_TYPE_PCMASK may be used), evolve to be of size > 16 bytes,
-	this will cease to work.
-
-	To match the range covered by the SFrame FRE, one should instead perform
-	a modulo operation.  The constant for the modulo operation must be the
-	size of the pltN entry.  Further, this constant should ideally be
-	encoded in the format, as it may be different for each ABI.
-
-	In SFrame Version 2 of the format, we will move towards encoding it
-	explicitly in the SFrame FDE.  For now, fix up the logic to at least
-	move towards modulo operation.
-
-	libsframe/
-		* sframe.c (sframe_fre_check_range_p): New definition.
-		(sframe_find_fre): Refactor a bit and use the new definition
-		above.
-	include/
-		* sframe.h (SFRAME_FDE_TYPE_PCMASK): Update comment.
-	libsframe/doc/
-		* sframe-spec.texi: Fix the text for SFRAME_FDE_TYPE_PCMASK FDE
-		type.
-
-2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Add -z nosectionheader test to bootstrap.exp
-		PR ld/25617
-		* testsuite/ld-bootstrap/bootstrap.exp: Add -z nosectionheader
-		test.
-
-2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Add tests for -z nosectionheader and --strip-section-headers
-	Add tests to verify that the linker option, -z nosectionheader and
-	objcopy and strip option, --strip-section-headers, work correctly as well
-	as linker issues an error when dynamic symbol table from PT_DYNAMIC
-	segment is used.
-
-		PR ld/25617
-		* testsuite/ld-elf/hash-2.d: New file.
-		* testsuite/ld-elf/no-section-header.exp: Likewise.
-		* testsuite/ld-elf/pr25617-1-no-sec-hdr.nd: Likewise.
-		* testsuite/ld-elf/pr25617-1-no-sec-hdr.rd: Likewise.
-		* testsuite/ld-elf/pr25617-1-static-no-sec-hdr.rd: Likewise.
-		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.nd: Likewise.
-		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.rd: Likewise.
-		* testsuite/ld-elf/pr25617-1a-sec-hdr.rd: Likewise.
-		* testsuite/ld-elf/pr25617-1a.c: Likewise.
-		* testsuite/ld-elf/pr25617-1b.c: Likewise.
-		* testsuite/ld-elf/start-noheader.rd: Likewise.
-		* testsuite/ld-elf/start-shared-noheader-gnu.rd: Likewise.
-		* testsuite/ld-elf/start-shared-noheader-sysv.rd: Likewise.
-		* testsuite/ld-elf/start-shared-noheader.nd: Likewise.
-
-2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
-
-	binutils: Add a --strip-section-headers test
-		PR ld/25617
-		* testsuite/binutils-all/objcopy.exp: Run strip-section-headers-1.
-		* testsuite/binutils-all/strip-section-headers-1.d: New file.
-
-2023-06-29  Kaylee Blake  <klkblake@gmail.com>
-
-	ld: Add simple tests for -z nosectionheader
-	2020-06-06  Kaylee Blake  <klkblake@gmail.com>
-		    H.J. Lu  <hongjiu.lu@intel.com>
-
-		PR ld/25617
-		* testsuite/ld-elf/nosectionheader-1.d: New file.
-		* testsuite/ld-elf/nosectionheader-2.d: Likewise.
-
-2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Improve nm and objdump without section header
-	When there is no section header in an executable or shared library, we
-	reconstruct dynamic symbol table from the PT_DYNAMIC segment, which
-	contains DT_HASH/DT_GNU_HASH/DT_MIPS_XHASH, DT_STRTAB, DT_SYMTAB,
-	DT_STRSZ, and DT_SYMENT entries, to improve nm and objdump.  For DT_HASH,
-	the number of dynamic symbol table entries equals the number of chains.
-	For DT_GNU_HASH/DT_MIPS_XHASH, only defined symbols with non-STB_LOCAL
-	indings are in hash table.  Since DT_GNU_HASH/DT_MIPS_XHASH place all
-	symbols with STB_LOCAL binding before symbols with other bindings and
-	all undefined symbols defined ones in dynamic symbol table, the highest
-	symbol index in DT_GNU_HASH/DT_MIPS_XHASH is the highest dynamic symbol
-	table index.  We can also get symbol version from DT_VERSYM, DT_VERDEF
-	and DT_VERNEED entries.
-
-	dt_symtab, dt_versym, dt_verdef, dt_verneed, dt_symtab_count,
-	dt_verdef_count, dt_verneed_count and dt_strtab are added to
-	elf_obj_tdata to store dynamic symbol table information.
-
-		PR ld/25617
-		* elf-bfd.h (elf_obj_tdata): Add dt_symtab, dt_verdef, dt_verneed,
-		dt_symtab_count, dt_verdef_count, dt_verneed_count and dt_strtab.
-		(elf_use_dt_symtab_p): New.
-		(_bfd_elf_get_dynamic_symbols): Likewise.
-		(_bfd_elf_get_section_from_dynamic_symbol): Likewise.
-		* elf.c (bfd_elf_get_elf_syms): Use dynamic symbol table if
-		neeeded.
-		(_bfd_elf_get_dynamic_symtab_upper_bound): Likewise.
-		(_bfd_elf_slurp_version_tables): Likewise.
-		(offset_from_vma): New function.
-		(get_hash_table_data): Likewise.
-		(_bfd_elf_get_dynamic_symbols): Likewise.
-		(_bfd_elf_get_section_from_dynamic_symbol): Likewise.
-		(_bfd_elf_get_symbol_version_name): Likewise.
-		* elfcode.h (elf_object_p): Call _bfd_elf_get_dynamic_symbols
-		to reconstruct dynamic symbol table from PT_DYNAMIC segment if
-		there is no section header.
-		(elf_slurp_symbol_table): Use dynamic symbol table if neeeded.
-		Don't free isymbuf when dynamic symbol table is used.
-		* elflink.c (elf_link_is_defined_archive_symbol): Return wrong
-		format error when dynamic symbol table is used.
-		(elf_link_add_object_symbols): Likewise.
-
-2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
-
-	ELF: Discard non-alloc sections without section header
-	Discard non-alloc sections when section headers are stripped.
-
-	bfd/
-
-		PR ld/25617
-		* elf.c (_bfd_elf_assign_file_positions_for_non_load): Skip
-		non-load sections without section header.
-		(_bfd_elf_write_object_contents): Don't set the sh_name field
-		without section header.  Write out the .shstrtab section only
-		if its sh_offset field isn't -1.
-
-	binutils/
-
-		PR ld/25617
-		* objcopy.c (is_strip_section_1): Remove non-alloc sections for
-		--strip-section-headers.
-
-	ld/
-
-		PR ld/25617
-		* ldlang.c (lang_discard_section_p): Discard non-alloc sections
-		if we are stripping section headers.
-
-2023-06-29  Kaylee Blake  <klkblake@gmail.com>
-
-	ELF: Strip section header in ELF objects
-	Section header isn't mandatory on ELF executable nor shared library.
-	This patch adds a new linker option, -z nosectionheader, to omit ELF
-	section header, a new objcopy and strip option, --strip-section-headers,
-	to remove ELF section headers.
-
-	bfd/
-
-	2023-06-06  H.J. Lu  <hongjiu.lu@intel.com>
-		    Kaylee Blake  <klkblake@gmail.com>
-
-		PR ld/25617
-		* bfd.c (BFD_NO_SECTION_HEADER): New.
-		(BFD_FLAGS_SAVED): Add BFD_NO_SECTION_HEADER.
-		(BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
-		* elfcode.h (elf_swap_ehdr_out): Omit section header with
-		BFD_NO_SECTION_HEADER.
-		(elf_write_shdrs_and_ehdr): Likewise.
-		* elfxx-target.h (TARGET_BIG_SYM): Add BFD_NO_SECTION_HEADER
-		to object_flags.
-		(TARGET_LITTLE_SYM): Likewise.
-		* bfd-in2.h: Regenerated.
-
-	binutils/
-
-	2023-06-06  H.J. Lu  <hongjiu.lu@intel.com>
-
-		PR ld/25617
-		* NEWS: Mention --strip-section-headers for objcopy and strip.
-		* objcopy.c (strip_section_headers): New.
-		(command_line_switch): Add OPTION_STRIP_SECTION_HEADERS.
-		(strip_options): Add --strip-section-headers.
-		(copy_options): Likewise.
-		(copy_usage): Add --strip-section-headers.
-		(strip_usage): Likewise.
-		(copy_object): Handle --strip-section-headers for ELF files.
-		(strip_main): Handle OPTION_STRIP_SECTION_HEADERS.
-		(copy_main): Likewise.
-		* doc/binutils.texi: Document --strip-section-headers for objcopy
-		and strip.
-
-	ld/
-
-	2023-06-06  H.J. Lu  <hongjiu.lu@intel.com>
-		    Kaylee Blake  <klkblake@gmail.com>
-
-		PR ld/25617
-		* NEWS: Mention -z nosectionheader.
-		* emultempl/elf.em: Support -z sectionheader and
-		-z nosectionheader.
-		* ld.h (ld_config_type): Add no_section_header.
-		* ld.texi: Document -z sectionheader and -z nosectionheader.
-		* ldlang.c (ldlang_open_output): Handle
-		config.no_section_header.
-		* lexsup.c (parse_args): Enable --strip-all with
-		-z nosectionheader.  Disallow -r with -z nosectionheader.
-		(elf_static_list_options): Add -z sectionheader and
-		-z nosectionheader.
-
-2023-06-29  Matthias Klose  <doko@debian.org>
-
-	Ignore --prefix-file-map compiler option whist running testsuite.
-
-	ignore lto-wrapper warnings for lto builds.
-	  I see these warnings from time to time, when configuring a build with  --enable-pgo-build=lto, I haven't yet found out why I see these sometime, and  why not. E.g. https://gcc.gnu.org/PR109241. Just ignore these when they appear  in test cases. lto-wrapper: warning: using serial compilation of N LTRANS jobs
-
-2023-06-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: Add new tests
-	gprofng/ChangeLog
-	2023-06-26  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* Makefile.am: Pass CLOCK_GETTIME_LINK to the testsuite
-		* Makefile.in: Rebuild.
-		* testsuite/gprofng.display/gp-archive.exp: New file.
-		* testsuite/gprofng.display/gp-collect-app_F.exp: New file.
-		* testsuite/gprofng.display/setpath_map.exp: New file.
-		* testsuite/lib/smalltest.c: New file.
-
-2023-06-28  Andrew Carlotti  <andrew.carlotti@arm.com>
-
-	aarch64: Remove version dependencies from features
-	Many instructions were enabled only when both a feature flag and a minimum
-	architecture version are specified.  This behaviour differs from GCC, which (in
-	most cases) allows features to be enabled at any architecture version.
-
-	There is no need for the toolchain to restrict combinations of unrelated
-	features in this way, so this patch removes the unnecessary dependencies.
-
-2023-06-28  Tom Tromey  <tromey@adacore.com>
-
-	Remove Python 2 from gdb documentation
-	GDB can't be built using Python 2 any more, so remove the remaining
-	vestiges of this from the documentation.
-
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-06-28  Michael Matz  <matz@suse.de>
-
-	section-match: Check parent archive name as well
-	rewriting the section matching routines lost a special case
-	of matching: section statements of the form
-
-	    NAME(section-glob)
-
-	normally match against NAME being an object file, but like in
-	the exclude list we happened to accept archive names as NAME
-	(undocumented).  The documented way to specify (all) archive members
-	is by using e.g.
-
-	    lib.a:(section-glob)
-
-	(that does work also with the prefix tree matcher).
-
-	But I intended to not actually change behaviour with the prefix
-	tree implementation.  So, let's also implement checking against
-	archive names with a similar FIXME comment we already have in
-	walk_wild_file_in_exclude_list.
-
-		PR 30590
-
-		ld/
-		* ldlang.c (walk_wild_section_match): Also look at archive
-		parents for a name match.
-
-2023-06-28  Tom Tromey  <tromey@adacore.com>
-
-	Fix handling of DW_TAG_unspecified_type for Ada
-	Commit 80eaec735e ("[gdb/symtab] Handle named DW_TAG_unspecified_type
-	DIE") changed the handling of DW_TAG_unspecified_type.  Before this
-	change, such types were not entered into the symbol table.
-
-	It turns out that, when such a type is in the symtab, it can cause
-	failures in Ada.  In particular, a private type in another package may
-	be seen locally as "void".
-
-	Now, it would probably be better to fix this via check_typedef.
-	However, that is somewhat difficult given the state of the DWARF
-	reader -- in particular with gdb_index, this would require expanding
-	potentially many CUs to find the correct type.
-
-	Instead, this patch changes gdb to not enter a symbol for an
-	unspecified type -- but only for Ada.
-
-2023-06-28  Tom Tromey  <tromey@adacore.com>
-
-	Remove some Python 2 code
-	I found some Python 2 compatibility code in gdb's Python library.
-	There's no need for this any more, so this removes it.  There is still
-	a bit more of this remaining in __init__.py, but I haven't tried
-	removing that yet.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-06-28  Nick Clifton  <nickc@redhat.com>
-
-	Stop the linker's --dependency-file option from including temporary lto files.
-	  PR 30568
-	  * ldfile.c (ldfile_try_open_bfd): Do not track lto generated temporary files.
-
-	Updated French translation for the gold sub-directory
-
-2023-06-28  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: gas: Add LSX and LASX instructions test
-	gas/ChangeLog:
-
-		* testsuite/gas/loongarch/vector.d: New test.
-		* testsuite/gas/loongarch/vector.s: New test.
-
-2023-06-28  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: gas: Add lsx and lasx instructions support
-	gas/ChangeLog:
-
-		* config/tc-loongarch.c (md_parse_option): Add lsx and lasx option.
-		(loongarch_after_parse_args): Add lsx and lasx option.
-
-	opcodes/ChangeLog:
-
-		* loongarch-opc.c (struct loongarch_ase): Add lsx and lasx
-		instructions.
-
-2023-06-28  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: Add R_LARCH_64_PCREL relocation support
-	  Gas defaults to emit R_LARCH_ADD64/R_LARCH_SUB64 unless explcitly declared
-	  to emit R_LARCH_64_PCREL.
-
-	  The LoongArch ABI at here:
-	    https://github.com/loongson/la-abi-specs/blob/release/la-abi.adoc
-
-	bfd/ChangeLog:
-
-		* bfd-in2.h (not): Add R_LARCH_64_PCREL
-		* elfnn-loongarch.c (perform_relocation): Likewise.
-		* elfxx-loongarch.c: Likewise.
-		* libbfd.h: Likewise.
-		* reloc.c: Likewise.
-
-	gas/ChangeLog:
-
-		* config/tc-loongarch.c (loongarch_args_parser_can_match_arg_helper):
-		(md_apply_fix): Add R_LARCH_64_PCREL.
-		* testsuite/gas/loongarch/64_pcrel.d: New test.
-		* testsuite/gas/loongarch/64_pcrel.s: New test.
-
-	include/ChangeLog:
-
-		* elf/loongarch.h (RELOC_NUMBER): Add R_LARCH_64_PCREL.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-loongarch-elf/ld-loongarch-elf.exp: Add test.
-		* testsuite/ld-loongarch-elf/64_pcrel.d: New test.
-		* testsuite/ld-loongarch-elf/64_pcrel.s: New test.
-
-2023-06-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	binutils/NEWS: add note about upcoming libsframe changes
-	Some of these changes update the ABI in an incompatible way.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: bfd: use uint32_t for return type of get_num_fidx APIs
-	Keep the data types usage in libsframe look consistent.
-
-	bfd/
-		* elf-sframe.c (_bfd_elf_merge_section_sframe): Use uint32_t
-		type alias.
-		* libsframe/sframe.c (sframe_decoder_get_funcdesc_at_index):
-		Likewise.
-		(sframe_decoder_get_num_fidx): Likewise.
-		(sframe_encoder_get_num_fidx): Likewise.
-	include/
-		* sframe-api.h (sframe_decoder_get_num_fidx): Likewise.
-		(sframe_encoder_get_num_fidx): Likewise.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: use appropriate data types for args of sframe_encode
-	include/
-		* sframe-api.h (sframe_encode): Use of uint8_t is more
-		appropriate.
-	libsframe/
-		* sframe.c (sframe_encode): Likewise.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: use uint8_t for return type of sframe_fre_get_base_reg_id
-	Use a more appropriate data type.
-
-	include/
-		* sframe-api.h (sframe_fre_get_base_reg_id): Use uint8_t as
-		return type.
-	libsframe/
-		* sframe-dump.c (dump_sframe_func_with_fres): Use uint8_t type
-		for base reg id.
-		* sframe.c (sframe_fre_get_base_reg_id): Use uin8_t as return
-		type.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: use uint8_t instead of unsigned char for abi_arch
-	Use uint8_t consistently for identifying ABI/arch in SFrame format.
-
-	bfd/
-		* elf-sframe.c (_bfd_elf_merge_section_sframe):
-	libsframe/
-		* sframe-dump.c (is_sframe_abi_arch_aarch64): Use uint8_t for
-		local variable.
-		* sframe.c (sframe_decoder_get_abi_arch): Update return type to
-		uint8_t.
-		(sframe_encoder_get_abi_arch): Likewise.
-	include/
-		* sframe-api.h (sframe_decoder_get_abi_arch): Likewise.
-		(sframe_encoder_get_abi_arch): Likewise.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: bfd: use uint32_t for return type of sframe_calc_fre_type
-	Use uint32_t type alias consistently for all APIs in libsframe.
-
-	bfd/
-		* elfxx-x86.c (_bfd_x86_elf_create_sframe_plt): Adjust for the
-		changed return type.
-	libsframe/
-		* sframe.c (sframe_calc_fre_type): Use uint32_t for return type.
-	include/
-		* sframe-api.h (sframe_calc_fre_type): Likewise.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: use uint32_t for fre_type and fde_type function args
-	The API sframe_fde_create_func_info is provided by libsframe.  Current
-	users are the bfd linker.  Adjust the argument type for the variables
-	carrying the SFrame FRE type and SFrame FDE type to consistenly use
-	uint32_t type alias.
-
-	include/
-		* sframe-api.h (sframe_fde_create_func_info): Use uint32_t
-		instead of unsigned int.
-	libsframe/
-		* sframe.c (sframe_get_fre_type): Likewise.
-		(sframe_get_fde_type): Likewise.
-		(flip_fre_start_address): Likewise.
-		(sframe_fre_start_addr_size): Likewise.
-		(sframe_fre_entry_size): Likewise.
-		(flip_fre): Likewise.
-		(flip_sframe): Likewise.
-		(sframe_fde_create_func_info): Likewise.
-		(sframe_calc_fre_type): Likewise.
-		(sframe_decode_fre_start_address): Likewise.
-		(sframe_decode_fre): Likewise.
-		(sframe_find_fre): Likewise.
-		(sframe_decoder_get_fre): Likewise.
-		(sframe_encoder_add_fre): Likewise.
-		(sframe_encoder_write_fre_start_addr): Likewise.
-		(sframe_encoder_write_fre): Likewise.
-		(sframe_encoder_write_sframe): Likewise.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: update the semantics of sframe_fre_get_fp_offset
-	Until now, sframe_fre_get_fp_offset () would return
-	SFRAME_ERR_FREOFFSET_NOPRESENT if the ABI uses fixed FP offset.  A stack
-	tracer, then, would call an explicit sframe_decoder_get_fixed_fp_offset ()
-	to get the FP offset.
-
-	On second look, it appears to make sense to hide these details of
-	whether the FP offset is fixed or not in an ABI from the consumer.  Now,
-	with the changed semantics, the call to sframe_fre_get_fp_offset () will
-	fetch the fixed FP offset if applicable, or get the FP offset from FRE
-	when there is no fixed FP offset.
-
-	This patch changes the behavior of sframe_fre_get_fp_offset (): it turns
-	an error into non-error.  This change will be included with the next
-	release of libsframe, where all the exposed symbols will be versioned
-	with version node LIBSFRAME_1.0 for the first time.
-
-	libsframe/
-		* sframe.c (sframe_fre_get_fp_offset): Return the fixed offset, if
-		applicable. Else return the FP offset from the FRE.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: update the semantics of sframe_fre_get_ra_offset
-	Until now, sframe_fre_get_ra_offset () would return
-	SFRAME_ERR_FREOFFSET_NOPRESENT if the ABI uses fixed RA offset (e.g.,
-	AMD64).  A stack tracer, then, will call an explicit
-	sframe_decoder_get_fixed_ra_offset () to get the RA offset.
-
-	On second look, it appears to make sense to hide these details of
-	whether the RA offset is fixed or not from the consumer.  Now, with the
-	changed semantics, the call to sframe_fre_get_ra_offset () will fetch
-	the fixed RA offset if applicable, or get the RA offset from FRE when
-	there is no fixed RA offset.
-
-	Adjustments need to be made to ensure the textual dump remains the same
-	as preivous.  Currently, e.g., if RA is not being tracked per FRE,
-	following is seen with objdump --sframe:
-
-	    STARTPC         CFA       FP        RA
-	    000000000000NNNN  sp+X      u         u
-
-	This patch changes the behavior of sframe_fre_get_ra_offset: it turns an
-	error into non-error.  This change will be included with the next
-	release of libsframe, where all exposed symbols will be versioned for
-	the first time.
-
-	libsframe/
-		* sframe.c (sframe_fre_get_ra_offset): Return the fixed offset,
-		if applicable.  Else return the RA offset from the FRE.
-		* sframe-dump.c (dump_sframe_func_with_fres): Make adjustments
-		to keep the textual dump same as previous.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: add symbol versioning
-	Define an empty base version LIBSFRAME_0.0 and add all symbols to
-	version LIBSFRAME_1.0.
-
-	The previous release of libsframe (libsframe.so.0) did not have
-	versioned symbols.  Adding a libsframe.ver file so that future releases
-	of the library (and its consumers) can manage the changes better.
-
-	For Solaris ld, use -M mapfile command line option.  libsframe does not
-	restrict the set of exported symbols, so at this time there is no need
-	to fall back on the libtool's -export-symbols option for platforms where
-	some other linker (with a different command line option for symbol
-	versioning) may be used.
-
-	libsframe/
-		* Makefile.am: Use symbol versioning for libsframe.
-		* Makefile.in: Regenerated.
-		* configure: Check for Solaris ld.
-		* configure.ac: Regenerated.
-		* libsframe.ver: New file.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: remove sframe_get_funcdesc_with_addr API
-	This is an incompatible ABI change in libsframe.
-
-	The interface provided by this function is not a healthy abstraction to
-	expose: the return type sframe_func_desc_entry, which is defined in
-	include/sframe.h (the SFrame binary format definition).  This ties up
-	the library in a undesirable way.  Most importantly, this function
-	should technically not be directly necessary for a stack tracer.  A
-	stack tracer will likely only need to do a sframe_find_fre ().
-
-	Rename the API to continue to use the functionality internally in the
-	library.  bfd/linker does not use this function.
-
-	Change the return type of the previous definition and make a note about
-	its planned deprecation.
-
-	include/
-		* sframe-api.h:  Change return type of sframe_get_funcdesc_with_addr.
-		Add comment for intention to deprecate.
-	libsframe/
-		*sframe.c (sframe_get_funcdesc_with_addr): Change return type
-		and set error code. This API is deprecated.
-	        (sframe_get_funcdesc_with_addr_internal): New definition for
-		internal use.
-		(sframe_find_fre): Use sframe_get_funcdesc_with_addr_internal
-		instead.
-
-2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: add library versioning
-	lisbframe was first released with Bintuils 2.40.  As the library
-	evolves, some changes will break the ABI.  Add library versioning for
-	users to manage these changes.
-
-	For the next release of the library (libsframe.so.1), incompatible ABI
-	changes are planned. These will include:
-	 - Deprecation of some APIs, like sframe_get_funcdesc_with_addr (), and
-	 - Change in the contract of some APIs (e.g., return type, behavior).
-
-	In libtool-version, set the current to 1 to prepare for the upcoming
-	release.  Reset revision and age to 0.
-
-	Add libtool-version file to EXTRA_DIST.
-
-	libsframe/
-		* Makefile.am: Use libtool versioning.
-		* Makefile.in: Regenerated.
-		* libtool-version: New file.
-
-2023-06-27  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	    RISC-V: Support Zicond extension
-	    This implements the Zicond (conditional integer operations) extension,
-	    as of version 1.0-rc2.
-
-	    The Zicond extension acts as a building block for branchless sequences
-	    including conditional-arithmetic, conditional-logic and
-	    conditional-select/move.
-	    The following instructions constitute Zicond:
-	      - czero.eqz rd, rs1, rs2  =>  rd = (rs2 == 0) ? 0 : rs1
-	      - czero.nez rd, rs1, rs2  =>  rd = (rs2 != 0) ? 0 : rs1
-
-	    See
-	      https://github.com/riscv/riscv-zicond/releases/download/v1.0-rc2/riscv-zicond-v1.0-rc2.pdf
-	    for the proposed specification and usage details.
-
-	    bfd/ChangeLog:
-
-	            * elfxx-riscv.c (riscv_multi_subset_supports): Recognize
-	            INSN_CLASS_ZICOND.
-	            (riscv_multi_subset_supports_ext): Recognize INSN_CLASS_ZICOND.
-
-	    gas/ChangeLog:
-
-	            * testsuite/gas/riscv/zicond.d: New test.
-	            * testsuite/gas/riscv/zicond.s: New test.
-
-	    include/ChangeLog:
-
-	            * opcode/riscv-opc.h (MATCH_CZERO_EQZ): Define.
-	            (MASK_CZERO_EQZ): Define.
-	            (MATCH_CZERO_NEZ): Define,
-	            (MASK_CZERO_NEZ): Define.
-	            (DECLARE_INSN): Add czero.eqz and czero.nez.
-	            * opcode/riscv.h (enum riscv_insn_class): Add
-	            INSN_CLASS_ZICOND.
-
-	    opcodes/ChangeLog:
-
-	            * riscv-opc.c: Add czero.eqz and czero.nez.
-
-	    Signed-off-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
-
-2023-06-27  Nick Clifton  <nickc@redhat.com>
-
-	Add note about adding ChangeLog.git to src-release.sh
-
-2023-06-27  Cui, Lili  <lili.cui@intel.com>
-
-	gprofng: Update intel url
-	Since the old software.intel.com has been removed, update a new one.
-
-	gprofng/ChangeLog
-	2023-06-27  Lili Cui  <lili.cui@intel.com>
-
-		* gp-display-html/gp-display-html.in: Update intel url.
-
-2023-06-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-26  Nick Clifton  <nickc@redhat.com>
-
-	Fix gas tests for aarch64-pe
-
-	Synchromize libiberty sources with master version in gcc repository
-
-	Sync config.guess and config.sub with upstream master versions.
-
-	Updated French translation for the gprof sub-directory
-
-2023-06-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-25  Feiyang Chen  <chenfeiyang@loongson.cn>
-
-	LoongArch: Support referring to FCSRs as $fcsrX
-	Previously, FCSRs were referred to as $rX, which seemed strange.
-	We refer to FCSRs as $fcsrX, which ensures compatibility with LLVM
-	IAS as well.
-
-	gas/ChangeLog:
-
-	        * config/tc-loongarch.c:
-	        (loongarch_fc_normal_name): New definition.
-	        (loongarch_fc_numeric_name): New definition.
-	        (loongarch_single_float_opcodes): Modify `movgr2fcsr` and
-	        `movfcsr2gr`.
-	        testsuite/gas/loongarch/float_op.d: Likewise.
-	        testsuite/gas/loongarch/float_op.s: Likewise.
-
-	include/ChangeLog:
-
-	        * opcode/loongarch.h:
-	        (loongarch_fc_normal_name): New extern.
-	        (loongarch_fc_numeric_name): New extern.
-
-	opcodes/ChangeLog:
-
-	        * opcodes/loongarch-dis.c (loongarch_after_parse_args): Support
-	        referring to FCSRs as $fcsrX.
-	        * opcodes/loongarch-opc.c (loongarch_args_parser_can_match_arg_helper):
-	        Likewise.
-
-2023-06-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-23  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdb/testsuite: Avoid infinite loop in gdb.reverse/step-reverse.exp
-	This testcase sometimes gets stuck in a loop for hours when running in our
-	CI.  The problem is that due to an issue unrelated to reverse debugging the
-	inferior exits early, and because of the overly generic ".*" pattern the
-	testcase keeps sending the "next" command without noticing that the
-	inferior is gone.
-
-	gdb_test_multiple has a pattern to detect that "The program is not being
-	run.", but since it is placed after the patterns from the caller it won't
-	be triggered.  It also has a timeout pattern but because it is triggered
-	between successful matches, each time the test matches the '-re -wrap ".*"'
-	this counts as a successful match and the timeout is reset.
-
-	Since the test binary is compiled with debug information, fix by changing
-	one of the generic patterns to match entering the main function and the
-	other one to match the source code line number that is shown by GDB right
-	after the "step" command.
-
-	Also, as a precaution add a maximum number of times the "next" command will
-	be sent.
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Approved-By: Tom de Vries <tdevries@suse.de>
-
-2023-06-23  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] PowerPC64 huge branch dynamic relocs
-	PowerPC64 gold and ld.bfd implement an indirect branch trampoline,
-	used when the destination of a branch exceeds a bounce through another
-	"b" instruction.  When generating PIEs or shared libraries, the
-	addresses need dynamic relocations.  This was implemented in gold
-	using a dedicated relocation section, but this means the relative
-	relocations for these addresses are not sorted properly with other
-	dynamic relative relocations: gold doesn't support merging relocation
-	sections, then sorting.  Instead we need to use a single .rela.dyn
-	section.
-
-	This is done by increasing the size of rela_dyn_ during do_relax to
-	account for needed dynamic relocations, delaying adding the actual
-	relocations until the end of relaxation once the layout has
-	stabilised.
-
-		* powerpc.cc (Target_powerpc): Add rela_dyn_size_;
-		(update_current_size): New function.
-		(Target_powerpc::do_relax): Capture the size of rela_dyn_ at
-		the start of relaxation.  Artifically increase its size during
-		relaxation to account for needed indirect branches, and add
-		those relocations at the end.
-		(Output_data_brlt_powerpc::rel_, reset_brlt_sizes),
-		(finalize_brlt_sizes, add_reloc, set_current_size): Delete.
-		(Target_powerpc::make_brlt_section): Don't make reloc section.
-
-2023-06-23  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Support setting DT_RELACOUNT late
-	PowerPC gold adds relative dynamic relocs in do_relax.  These aren't
-	accounted for in the value set in add_target_dynamic_tags, which is
-	called before do_relax.  Provide a way of setting DT_RELCOUNT and
-	DT_RELACOUNT at the point where .dynamic is written.
-
-		* layout.cc (Layout::add_target_dynamic_tags): Add custom_relcount
-		parameter.  Emit DT_RELCOUNT/RELACOUNT as a custom target handled
-		dynamic tag if set.
-		* layout.h(Layout::add_target_dynamic_tags): Update prototype.
-		* aarch64.cc (Target_aarch64::do_finalize_sections): Adjust
-		add_target_dynamic_tags call.
-		* arm.cc (Target_arm::do_finalize_sections): Likewise.
-		* i386.cc (Target_i386::do_finalize_sections): Likewise.
-		* mips.cc (Target_mips::do_finalize_sections): Likewise.
-		* s390.cc (Target_s390::do_finalize_sections): Likewise.
-		* sparc.cc (Target_sparc::do_finalize_sections): Likewise.
-		* tilegx.cc (Target_tilegx::do_finalize_sections): Likewise.
-		* x86_64.cc (Target_x86_64::do_finalize_sections): Likewise.
-		* powerpc.cc (Target_powerpc::do_finalize_sections): Likewise.
-		(Target_powerpc::do_dynamic_tag_custom_value): New function.
-
-2023-06-23  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] powerpc DT_RELACOUNT
-	DT_RELACOUNT was calculated incorrectly, and relative relocs not
-	sorted as they should be to the start of .rela.dyn, due to adding one
-	particular class of dynamic reloc using the wrong "add" method.
-
-		* powerpc.cc (Target_powerpc::Scan::global): Add relative
-		dyn relocs for ADDR64 and similar using add_global_relative.
-
-2023-06-23  Alan Modra  <amodra@gmail.com>
-
-	lto test fails with -fno-inline in CFLAGS
-	Putting -fno-inline in CFLAGS results in these failures.
-	FAIL: Build liblto-17b.so 1
-	FAIL: PR ld/12365
-	FAIL: PR ld/13183
-
-		* ld-plugin/lto.exp: Add -finline to compiler flags in some tests.
-
-2023-06-23  Tom Tromey  <tom@tromey.com>
-
-	Fix off-by-one error
-	Simon pointed out that commit a2bbca9fa5e ("Use std::vector<bool> for
-	agent_expr::reg_mask") caused a regression in libstdc++ debug mode.
-	This was due to an off-by-one error in a vector resize.  This patch
-	fixes the problem.
-
-2023-06-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-22  Ilya Leoshkevich  <iii@linux.ibm.com>
-
-	gdb/testsuite: fix gdb.python/py-unwind.exp with python >= 3.11
-	Python 3.11 changed the AttributeError message - see commit
-	0cb765b2cec9 ("bpo-46730: Add more info to @property AttributeError
-	messages (GH-31311)").  Add the new message to the expectations.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Link: https://sourceware.org/pipermail/gdb-patches/2023-June/200433.html
-
-2023-06-22  H.J. Lu  <hjl.tools@gmail.com>
-
-	Revert "x86: Don't check if AVX512 template requires AVX512VL"
-	This reverts commit c7face14225296a2f5d3ebeb8ace88c166d80c3e.
-
-2023-06-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Clean or check standard_output_file dir in gdb_init
-	In commit e2adba909e7 ("[gdb/testsuite] Clean up before compilation in
-	gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some
-	files at the start of the test-case:
-	...
-	remote_file host delete [standard_output_file prog.o]
-	remote_file host delete [standard_output_file prog.ali]
-	...
-
-	Then in commit b7b77500dc5 ("[gdb/testsuite] Clean standard_output_file dir in
-	gdb_init") I tried to do this more structurally, by cleaning up the entire
-	standard_output_file directory, for all test-cases.
-
-	This caused a regression when using "make check -j 2", due to the cleanup
-	removing the active gdb.log, so I reverted the commit.
-
-	Try again, this time handling the two cases separately.
-
-	If the standard_output_file directory contains an active gdb.log, check that
-	the directory contains no files other than gdb.log and gdb.sum.  This puts
-	the reponsibility for the cleanup at the callers in gdb/testsuite/Makefile.in
-	which use --outdir.
-
-	If the standard_output_file directory doesn't contain an active gdb.log, clean
-	it by removing the entire directory.
-
-	An exception is made for performance tests, where cleaning up the
-	standard_output_file dir is the wrong thing to do, because an invocation with
-	GDB_PERFTEST_MODE == run is intended to reuse binaries left there by an
-	earlier invocation with GDB_PERFTEST_MODE == compile.
-
-	Tested on x86_64-linux.
-
-	Suggested-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Tested-By: Luis Machado <luis.machado@arm.com>
-
-2023-06-22  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP "hover" context
-	A DAP client can request that an expression be evaluated in "hover"
-	context, meaning that it should not cause side effects.  In gdb, this
-	can be implemented by temporarily setting a few "may-" parameters to
-	"off".
-
-	In order to make this work, I had to also change "may-write-registers"
-	so that it can be changed while the program is running.  I don't think
-	there was any reason for this prohibition in the first place.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30476
-
-2023-06-22  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP logging breakpoints
-	DAP allows a source breakpoint to specify a log message.  When this is
-	done, the breakpoint acts more like gdb's dprintf: it logs a message
-	but does not cause a stop.
-
-	I looked into implement this using dprintf with the new %V printf
-	format.  However, my initial attempt at this did not work, because
-	when the inferior is continued, the dprintf output is captured by the
-	gdb.execute call.  Maybe this could be fixed by having all
-	inferior-continuation commands use the "&" form; the main benefit of
-	this would be that expressions are only parsed a single time.
-
-2023-06-22  Tom Tromey  <tromey@adacore.com>
-
-	Handle supportsVariablePaging in DAP
-	A bug report about the supportsVariablePaging capability in DAP
-	resulted in a clarification: when this capability is not present, DAP
-	implementations should ignore the paging parameters to the "variables"
-	request.  This patch implements this clarification.
-
-	Implement type checking for DAP breakpoint requests
-	I realized that with a small refactoring, it is possible to type-check
-	the parameters to the various DAP breakpoint requests.  This would
-	have caught the earlier bug involving hitCondition.
-
-	Handle exceptions when creating DAP breakpoints
-	When creating a DAP breakpoint, a failure should be returned by
-	setting "verified" to False.  gdb didn't properly implement this, and
-	there was a FIXME comment to this effect.  This patch fixes the
-	problem.
-
-	Reuse breakpoints more frequently in DAP
-	The DAP breakpoint code tries to reuse a breakpoint when possible.
-	Currently it uses the condition and the hit condition (aka ignore
-	count) when making this determination.  However, these attributes are
-	just going to be reset anyway, so this patch changes the code to
-	exclude these from the reuse decision.
-
-	Fix type of DAP hitCondition
-	DAP specifies a breakpoint's hitCondition as a string, meaning it is
-	an expression to be evaluated.  However, gdb implemented this as if it
-	were an integer instead.  This patch fixes this oversight.
-
-2023-06-22  Simon Farre  <simon.farre.cx@gmail.com>
-
-	gdb/DAP Few bug fixes & Evaluate Array Watch vars
-	v2.
-
-	EvaluateResult does not need a name, just as what Tom pointed out in
-	previous review. It's only the *children* that need to be made sure that
-	their names are valid. An identifier for a variable, can't ever have an
-	integer as a name, anyhow (not as far as I am aware, no programming
-	languages allow for that).
-
-	Removed the f-strings and use str() instead as pointed out that
-	f-strings might not be supported fully.
-
-	v1.
-
-	This patch fixes a few bugs.
-
-	First of all, name of VariableReferences must always be of string type.
-	This patch makes sure that this is the case by formatting the name. If
-	(when) the name is an integer, this will cause clients to fail or throw
-	errors.
-
-	Fixes a bug in NoOpArrayPrinter that calculated children to be N, but
-	only ever retrieves N-1 children, which makes Python at some time later
-	(during fetch_children -> fetch_one_child(N) ) raise an exception (out
-	of list index) which makes the entire request go bad.
-
-	The result[self.result_name] also f-strings the printer.to_string()
-	value, because this can potentially be a LazyString (which is a Python
-	object, not a string) and is not serializable by json.dumps.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-06-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-21  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Free the symbol buffer and the relocation buffer after use
-	When --no-keep-memory is used, the symbol buffer and the relocation
-	buffer aren't cached.  When packing relative relocations, we may
-	allocate a new symbol buffer and a new relocation buffer for each
-	eligible section in an object file.  If there are many sections,
-	memory may be exhausted.  In this case, we should free the symbol
-	buffer and the relocation buffer after use.  If symbol buffer entries
-	are used to track relative relocations against local symbols for later
-	use, the symbol buffer should be cached.
-
-		PR ld/30566
-		* elfxx-x86.c (elf_x86_relative_reloc_record_add): Add an
-		argument to inform caller if the symbol buffer should be kept.
-		(_bfd_x86_elf_link_relax_section): Call
-		_bfd_elf_link_info_read_relocs instead of
-		_bfd_elf_link_read_relocs.  Free the symbol buffer and the
-		relocation buffer after use.  Cache the symbol buffer if it
-		is used.
-
-2023-06-21  Tom Tromey  <tromey@adacore.com>
-
-	Add missing backslash to update-gnulib.sh
-	A user on irc noticed a missing backslash on one line in
-	update-gnulib.sh.  This patch adds it.
-
-	Re-running update-gnulib.sh causes a few copyright notices to change.
-	Presumably these are from upstream gnulib and shouldn't be touched by
-	our yearly update.  I've updated the script to account for this, but I
-	did not want to try testing it...
-
-2023-06-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add have_host_locale
-	With test-case gdb.tui/pr30056.exp, I run into:
-	...
-	sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)^M
-	...
-	and then subsequently into:
-	...
-	WARNING: timeout in accept_gdb_output
-	FAIL: gdb.tui/pr30056.exp: Control-C
-	...
-
-	This is on a CentOS 7 distro for powerpc64le.
-
-	Either it has no C.UTF-8 support, or it's not installed:
-	...
-	$ locale -a | grep ^C
-	C
-	$
-	...
-
-	Fix this by:
-	- adding a new proc have_host_locale, and
-	- using it in all test-cases using setenv LC_ALL.
-
-	Tested on powerpc64le-linux and x86_64-linux.
-
-2023-06-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/wrap-line.exp
-	PR testsuite/30458 reports the following FAIL:
-	...
-	PASS: gdb.tui/wrap-line.exp: width-auto-detected: cli: wrap
-	^CQuit
-	(gdb) WARNING: timeout in accept_gdb_output
-	Screen Dump (size 50 columns x 24 rows, cursor at column 6, row 3):
-	    0 Quit
-	    1 (gdb) 7890123456789012345678901234567890123456789
-	    2 W^CQuit
-	    3 (gdb)
-	  ...
-	FAIL: gdb.tui/wrap-line.exp: width-auto-detected: cli: prompt after wrap
-	...
-
-	The problem is that the regexp doesn't account for the ^C:
-	...
-	    gdb_assert { [Term::wait_for "^WQuit"] } "prompt after wrap"
-	...
-
-	The ^C occurs occasionally.  This is something we'd like to fix.  It's
-	reported as a readline problem here (
-	https://lists.gnu.org/archive/html/bug-readline/2023-06/msg00000.html ).
-
-	For now, fix this by updating the regexp, and likewise in another place in the
-	test-case where we use ^C.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30458
-
-2023-06-21  Alan Modra  <amodra@gmail.com>
-
-	PR30536, ppc64el gold linker produces unusable clang-16 binary
-	In commit 0961e631575b, the fix for PR30217, make_lplt_section and
-	make_brlt_section were changed to use rela_dyn_ rather than their own
-	separate dynamic reloc sections.  This fails miserably whenever brlt_
-	is needed for long branches, due to needing to iterate sizing and thus
-	reset brlt_ sizes.
-
-		PR 30536
-		PR 30217
-		* powerpc.cc (Target_powerpc::make_brlt_section): Don't use
-		rela_dyn_.
-
-2023-06-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Reimplement Term::command_no_prompt_prefix
-	Say we run test-case gdb.tui/basic.exp.  It calls Term::enter_tui, which does:
-	...
-		command_no_prompt_prefix "tui enable"
-	...
-
-	The proc command_no_prompt_prefix is documented as:
-	...
-	    # As proc command, but don't wait for an initial prompt.  This is used for
-	    # initial terminal commands, where there's no prompt yet.
-	...
-
-	Indeed, before the "tui enable" command, the tuiterm is empty, so there is no
-	prompt and just before switching to TUI we have in the tuiterm:
-	...
-	tui enable
-	...
-
-	The reason that there is no prompt, is that:
-	- in order for tuiterm to show something, its input processing procs need to
-	  be called, and
-	- the initial gdb prompt, and subsequent prompts generated by gdb_test-style
-	  procs, are all consumed by those procs instead.
-
-	This is in principle not a problem, but the absence of a prompt makes a
-	tuiterm session look less like a session on an actual xterm.
-
-	Add a new proc gen_prompt, that:
-	- generates a prompt using echo
-	- consumes the response before the prompt using gdb_expect
-	- consumes the prompt using Term::wait_for "".
-
-	This allows us to reimplement Term::command_no_prompt_prefix using
-	Term::command, and just before switching to TUI we have in the tuiterm:
-	...
-	(gdb) tui enable
-	...
-
-	Tested on x86_64-linux.
-
-2023-06-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Make Term::wait_for "" match only a prompt
-	The semantics of Term::wait_for is:
-	...
-	    # Accept some output from gdb and update the screen.  WAIT_FOR is
-	    # a regexp matching the line to wait for.  Return 0 on timeout, 1
-	    # on success.
-	    proc wait_for {wait_for} {
-	...
-
-	Note that besides the regexp, also a subsequent gdb prompt is matched.
-
-	I recently used wait_for "" in a few test-cases, thinking that this would
-	match just a prompt, but in fact that's not the case.
-
-	Fix this in wait_for, and add a corresponding test in gdb.tui/tuiterm-2.exp.
-
-	Tested on x86_64-linux.
-
-2023-06-21  Nick Clifton  <nickc@redhat.com>
-
-	Prune linker warnings about an executable stack being created with the -z execstack option.
-	  * testsuite/lib/binutils-common.exp (prune_warnings_extra): Prune warnings about -z execstack creating an executable stack.
-
-	For test for PR 29072 when the linker is configured with --enable-default-execstack=no.
-	  PR 29072
-	  * testsuite/ld-elf/elf.exp (target_defaults_to_execstack): Always return false for linkers configured with the --enable-default-execstack=no option.
-
-2023-06-21  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdbserver: use target_waitstatus::to_string in 'prepare_resume_reply'
-	Use the to_string method of target_waitstatus in
-	'prepare_resume_reply' for a more readable log message.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-06-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fix expansion of %XV
-	Only %LV should continue on to S handling; avoid emitting a stray 'l'
-	(typically) in suffix-always mode.
-
-2023-06-21  Alan Modra  <amodra@gmail.com>
-
-	elf32_arm_get_synthetic_symtab memory leak
-	ARM get_synthetic_symtab reads .plt and caches that data.  Caching the
-	data doesn't make a lot of sense since get_synthetic_symtab is only
-	called once per bfd, and the memory might be put to better use.  It
-	also leaks on closing the bfd.
-
-		* elf32-arm.c (elf32_arm_get_synthetic_symtab): Don't cache
-		plt contents.  Free plt data before returning.
-
-2023-06-21  Alan Modra  <amodra@gmail.com>
-
-	macho-o.c don't leak strtab
-		* mach-o.c (bfd_mach_o_write_symtab_content): Free strtab on
-		success path.
-
-2023-06-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Use ARRAY_SIZE in ax-general.c
-	This changes a couple of spots in ax-general.c to use ARRAY_SIZE.
-	While making this change, I noticed that one of the bounds checks was
-	incorrect.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Remove aop_last
-	aop_last is only used for an assertion.  However, due to the '.def'
-	construct in the sources, this assert could never plausibly trigger
-	(the assert predates the use of a .def file here).  This patch removes
-	the constant and the assert.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Make aop_map 'static'
-	This changes aop_map to be 'static'.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Use bool for agent_expr::tracing
-	This changese agent_expr::tracing to have type bool, allowing inline
-	initialization and cleaning up the code a little.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Simplify agent_expr constructor
-	This simplifies the agent_expr constructor a bit, and removes the
-	destructor entirely.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Use std::vector<bool> for agent_expr::reg_mask
-	agent_expr::reg_mask implements its own packed boolean vector.  This
-	patch replaces it with a std::vector<bool>, simplifying the code.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Use gdb::byte_vector in agent_expr
-	This changes agent_expr to use gdb::byte_vector rather than manually
-	reimplementing a vector.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Remove mem2hex
-	tracepoint.c has a 'mem2hex' function that is functionally equivalent
-	to bin2hex.  This patch removes the redundancy.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Don't check if AVX512 template requires AVX512VL
-	If the ZMM operand in an AVX12 template also allows XMM or ZMM, this
-	template must require AVX512VL.  Drop the AVX512VL requirement check
-	on such AVX512 templates.
-
-		* config/tc-i386.c (check_VecOperands): Don't check if AVX512
-		template requires AVX512VL.
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Use std::string in do_set_command
-	do_set_command manually updates a string, only to copy it to a
-	std::string and free the working copy.  This patch changes this code
-	to use std::string for everything, simplifying the code and removing a
-	copy.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Use byte_vector in remote.c:readahead_cache
-	This patch changes the remote.c readahead_cache to use
-	gdb::byte_vector.  This simplifies the code by removing manual memory
-	management.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tom@tromey.com>
-
-	Use std::string in linux-osdata.c
-	I found some code in linux-osdata that manually managed a string.
-	Replacing this with std::string simplifies it.
-
-	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
-
-2023-06-20  Tom Tromey  <tromey@adacore.com>
-
-	Use unique_xmalloc_ptr for mi_parse::command
-	This changes mi_parse::command to be a unique_xmalloc_ptr and fixes up
-	all the uses.  This avoids some manual memory management.  std::string
-	is not used here due to how the Python API works -- this approach
-	avoids an extra copy there.
-
-	Reviewed-by: Keith Seitz <keiths@redhat.com>
-
-2023-06-20  Tom Tromey  <tromey@adacore.com>
-
-	Use std::string for MI token
-	This changes the MI "token" to be a std::string, removing some manual
-	memory management.  It also makes current_token 'const' in order to
-	support this change.
-
-	Reviewed-by: Keith Seitz <keiths@redhat.com>
-
-2023-06-20  Alan Modra  <amodra@gmail.com>
-
-	Don't segfault in mips reloc special_functions
-	A symbol defined in a section from a shared library will have a NULL
-	section->output_section during linking.
-
-		* elf32-mips.c (gprel32_with_gp): Don't segfault on NULL
-		symbol->section->output_section.
-		* elf64-mips.c (mips_elf64_gprel32_reloc): Likewise.
-		* elfn32-mips.c (mips_elf_gprel16_reloc): Likewise.
-		(mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise.
-		(gprel32_with_gp, mips16_gprel_reloc): Likewise.
-		* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Likewise.
-		(_bfd_mips_elf_generic_reloc): Likewise.
-
-2023-06-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-19  Tom de Vries  <tdevries@suse.de>
-
-	Revert "[gdb/testsuite] Clean standard_output_file dir in gdb_init"
-	This reverts commit b7b77500dc56e5bc21473dd4f3dde2543d894557.
-
-2023-06-19  Simon Farre  <simon.farre.cx@gmail.com>
-
-	Fixes 28ab59607ef40b9571c0702ffba8f6aa6fb1b033
-	Python formatting errors fixed, introduced by this commit.
-
-	Fixes f1a614dc8f015743e9fe7fe5f3f019303f8db718
-	Fixes failure reported by buildbot regarding ill-formatted Python code.
-
-2023-06-19  Simon Farre  <simon.farre.cx@gmail.com>
-
-	gdb/Python: Added ThreadExitedEvent
-	v6:
-	Fix comments.
-	Fix copyright
-	Remove unnecessary test suite stuff. save_var had to stay, as it mutates
-	some test suite state that otherwise fails.
-
-	v5:
-	Did what Tom Tromey requested in v4; which can be found here: https://pi.simark.ca/gdb-patches/87pmjm0xar.fsf@tromey.com/
-
-	v4:
-	Doc formatting fixed.
-
-	v3:
-	Eli:
-	Updated docs & NEWS to reflect new changes. Added
-	a reference from the .ptid attribute of the ThreadExitedEvent
-	to the ptid attribute of InferiorThread. To do this,
-	I've added an anchor to that attribute.
-
-	Tom:
-	Tom requested that I should probably just emit the thread object;
-	I ran into two issues for this, which I could not resolve in this patch;
-
-	1 - The Thread Object (the python type) checks it's own validity
-	by doing a comparison of it's `thread_info* thread` to nullptr. This
-	means that any access of it's attributes may (probably, since we are
-	in "async" land) throw Python exceptions because the thread has been
-	removed from the thread object. Therefore I've decided in v3 of this
-	patch to just emit most of the same fields that gdb.InferiorThread has, namely
-	global_num, name, num and ptid (the 3-attribute tuple provided by
-	gdb.InferiorThread.ptid).
-
-	2 - A python user can hold a global reference to an exiting thread. Thus
-	in order to have a ThreadExit event that can provide attribute access
-	reliably (both as a global reference, but also inside the thread exit
-	handler, as we can never guarantee that it's executed _before_ the
-	thread_info pointer is removed from the gdbpy thread object),
-	the `thread_info *` thread pointer must not be null. However, this
-	comes at the cost of gdb.InferiorThread believing it is "valid" - which means,
-	that if a user holds takes a global reference to that
-	exiting event thread object, they can some time later do `t.switch()` at which
-	point GDB will 'explode' so to speak.
-
-	v2:
-	Fixed white space issues and NULL/nullptr stuff,
-	as requested by Tom Tromey.
-
-	v1:
-	Currently no event is emitted for a thread exit.
-
-	This adds this functionality by emitting a new gdb.ThreadExitedEvent.
-
-	It currently provides four attributes:
-	- global_num: The GDB assigned global thread number
-	- num: the per-inferior thread number
-	- name: name of the thread or none if not set
-	- ptid: the PTID of the thread, a 3-attribute tuple, identical to
-	InferiorThread.ptid attribute
-
-	Added info to docs & the NEWS file as well.
-
-	Added test to test suite.
-
-	Fixed formatting.
-
-	Feedback wanted and appreciated.
-
-2023-06-19  Simon Farre  <simon.farre.cx@gmail.com>
-
-	gdb/dap - Getting thread names
-	Renamed thread_name according to convention (_ first)
-
-	When testing firefox tests, it is apparent that
-	_get_threads returns threads with name field = None.
-
-	I had initially thought that this was due to Firefox setting the names
-	using /proc/pid/task/tid/comm, by writing directly to the proc fs the
-	names, but apparently GDB seems to catch this, because I re-wrote
-	the basic-dap.exp/c to do this specifically and it saw the changes.
-
-	So I couldn't determine right now, what operation of name change that
-	GDB does not pick up, but with this patch, GDB will pick up the thread
-	names for an applications that set the name of a thread in ways that
-	aren't obvious.
-
-2023-06-19  Nick Clifton  <nickc@redhat.com>
-
-	Fix illegal memory access implementing relocs in a fuzzed x86_64 object file.
-	  PR 30560
-	  * elf64-x86-64.c (elf_x86_64_relocate_section): Add more checks for a valid relocation offset.
-
-2023-06-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add shared_gnat_runtime_has_debug_info
-	Test-case gdb.ada/catch_ex_std.exp passes for me with package
-	libada7-debuginfo installed, but after removing it I get:
-	...
-	(gdb) catch exception some_kind_of_error^M
-	Your Ada runtime appears to be missing some debugging information.^M
-	Cannot insert Ada exception catchpoint in this configuration.^M
-	(gdb) FAIL: gdb.ada/catch_ex_std.exp: catch exception some_kind_of_error
-	...
-
-	The test-case contains a require gnat_runtime_has_debug_info to deal with
-	this, but the problem is that this checks the static gnat runtime, while this
-	test-case uses the shared one.
-
-	Fix this by introducing shared_gnat_runtime_has_debug_info, and requiring that
-	one instead.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30094
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30094
-
-2023-06-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Simplify tui_update_variables
-	Simplify tui_update_variables by using template function
-	assign_return_if_changed.
-
-	Tested on x86_64-linux.
-
-2023-06-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Add template functions assign_return/set_if_changed
-	Add template functions assign_return_if_changed and assign_set_if_changed in
-	gdb/utils.h:
-	...
-	template<typename T> void assign_set_if_changed (T &lval, const T &val, bool &changed)
-	{ ... }
-	template<typename T> bool assign_return_if_changed (T &lval, const T &val)
-	{ ... }
-	...
-
-	This allows us to rewrite code like this:
-	...
-	  if (tui_border_attrs != entry->value)
-	    {
-	      tui_border_attrs = entry->value;
-	      need_redraw = true;
-	    }
-	...
-	into this:
-	...
-	  need_redraw |= assign_return_if_changed<int> (tui_border_attrs, entry->value);
-	...
-	or:
-	...
-	  assign_set_if_changed<int> (tui_border_attrs, entry->value, need_redraw);
-	...
-
-	The names are a composition of the functionality.  The functions:
-	- assign VAL to LVAL, and either
-	- return true if the assignment changed LVAL, or
-	- set CHANGED to true if the assignment changed LVAL.
-
-	Tested on x86_64-linux.
-
-2023-06-19  Andreas Schwab  <schwab@suse.de>
-
-	riscv: Use run-time endianess for floating point literals
-	gas/
-		PR binutils/30551
-		* config/tc-riscv.c (md_atof): Use target_big_endian instead of
-		TARGET_BYTES_BIG_ENDIAN.
-		* testsuite/gas/riscv/float-be.d: New file.
-		* testsuite/gas/riscv/float-le.d: New file.
-		* testsuite/gas/riscv/float.s: New file.
-
-2023-06-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Clean standard_output_file dir in gdb_init
-	In commit e2adba909e7 ("[gdb/testsuite] Clean up before compilation in
-	gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some
-	files at the start of the test-case:
-	...
-	remote_file host delete [standard_output_file prog.o]
-	remote_file host delete [standard_output_file prog.ali]
-	...
-
-	Replace this with cleaning up the entire directory instead, for all
-	test-cases.
-
-	Tested on x86_64-linux.
-
-	Suggested-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove f-string in gdb.python/py-unwind.py
-	on openSUSE Leap 42.3, with python 3.4, I run into a
-	"SyntaxError: invalid syntax" due to usage of an f-string in test-case
-	gdb.python/py-unwind.py.
-
-	Fix this by using string concatenation using '+' instead.
-
-	Tested on x86_64-linux.
-
-2023-06-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add nopie in a few test-cases
-	When running test-case gdb.arch/i386-disp-step.exp with target board
-	unix/-m32/-fPIE/-pie we run into:
-	...
-	gdb compile failed, ld: i386-disp-step0.o: warning: relocation in read-only section `.text'
-	ld: warning: creating DT_TEXTREL in a PIE
-	...
-
-	Fix this by adding nopie in the compilation flags.
-
-	Likewise in a few other test-cases.
-
-	Tested on x86_64-linux.
-
-2023-06-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use require in gdb.dwarf2/implptr.exp
-	In test-case gdb.dwarf2/implptr.exp I noticed:
-	...
-	} elseif {![is_x86_like_target]} {
-	    # This test can only be run on x86 targets.
-	    unsupported "needs x86-like target"
-	    return 0
-	}
-	...
-
-	Use instead "require is_x86_like_target".
-
-	Tested on x86_64-linux.
-
-2023-06-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Clean up before compilation in gdb.ada/call-no-debug.exp
-	Running test-case gdb.ada/call-no-debug.exp with target board unix/-m64 works
-	fine, but if we run it again with target board unix-m32, we run into:
-	...
-	gnatlink prog.ali -m32 -g -o prog^M
-	ld: i386:x86-64 architecture of input file `b~prog.o' is incompatible with \
-	  i386 output^M
-	...
-
-	This is due to compiling with no-force.
-
-	The test-case:
-	- first compiles pck.adb into pck.o (without debug info), and
-	- then compiles prog.adb and pck.o into prog (with debug info).
-
-	Using no-force in the second compilation make sure that pck.adb is not
-	compiled again, with debug info.
-
-	But it also means it will pick up intermediate files related to prog.adb from
-	a previous compilation.
-
-	Fix this by removing prog.o and prog.ali before compilation.
-
-	Tested on x86_64-linux.
-
-2023-06-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use %progbits in gdb.arch/thumb*.S
-	In commit 0f2cd53cf4f ("[gdb/testsuite] Handle missing .note.GNU-stack") I
-	updated a gdb.arch/arm*.S test-case to use %progbits rather than @progbits,
-	but failed to do so for gdb.arch/thumb*.S.  Fix this oversight.
-
-	Tested on arm-linux-gnueabihf.
-
-2023-06-16  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: Fix ld "undefined reference" error with --enable-shared
-	  Because _bfd_read_unsigned_leb128 is hidden visibility, so it can't
-	  be referenced out of shared object.
-
-	  The new function loongarch_get_uleb128_length just used to call
-	  _bfd_read_unsigned_leb128.
-
-	bfd/ChangeLog:
-
-		* elfxx-loongarch.c (loongarch_get_uleb128_length): New function.
-		* elfxx-loongarch.h (loongarch_get_uleb128_length): New function.
-
-	gas/ChangeLog:
-
-		* config/tc-loongarch.c (md_apply_fix): Use
-		loongarch_get_uleb128_length.
-
-2023-06-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: update IRC reference from Freenode to Libera.Chat
-	It's been some time since the switch from Freenode to Libera.Chat,
-	however, there's still a reference to Freenode in the 'gdb --help'
-	output.  Lets update that.
-
-2023-06-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86: shrink Masking insn attribute to a single bit (boolean)
-	The logic can actually be expressed with less code that way, utilizing
-	that there are common patterns of when which form of masking is
-	permitted. This then also eliminates the large set of open-codings of
-	BOTH_MASKING in the opcode table.
-
-2023-06-16  Alan Modra  <amodra@gmail.com>
-
-	Correct ld-elf/eh5 test for hppa64
-	Commit 3c0afdb78988 regressed this test for hppa64, because the test
-	had been enabled for hppa64 in the time between the mips changes and
-	their reversion.  This patch isn't just a simple reapply, I recreated
-	the testsuite change by hand for hppa64: Two lines in eh5.d might need
-	further changes for mips.
-
-2023-06-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	binutils/NEWS: Mention Sony Allegrex MIPS CPU support
-	Mention the addition of Sony Allegrex processor support to the MIPS port.
-
-		binutils/
-		* NEWS: Mention Sony Allegrex MIPS CPU support.
-
-2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/GAS/testsuite: Fix `-modd-spreg'/`-mno-odd-spreg' test invocations
-	Reformat `-modd-spreg'/`-mno-odd-spreg' test invocations in mips.exp to
-	fit in 79 columns
-
-		gas/
-		* testsuite/gas/mips/mips.exp: Reformat
-		`-modd-spreg'/`-mno-odd-spreg' test invocations.
-
-2023-06-15  David Guillen Fandos  <david@davidgf.net>
-
-	Add additional missing Allegrex CPU instructions
-	Allegrex supports some MIPS32 and MIPS32r2 instructions (albeit with
-	some encoding differences) such as bit manipulation (ins/ext) and MLA
-	(madd/msub).  It also features some new instructions like wsbw and
-	min/max or device-specific ones such as mfic.
-
-	Add rotation instructions to MIPS Allegrex CPU
-	The Allegrex CPU supports bit rotation instructions as described in the
-	MIPS32 release 2 CPU (even though it is a MIPS-2 based CPU).
-
-	Add MIPS Allegrex CPU as a MIPS2-based CPU
-	The Allegrex CPU was created by Sony Interactive Entertainment to power
-	their portable console, the PlayStation Portable.
-	The pspdev organization maintains all sorts of tools to create software
-	for said device including documentation.
-
-2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	GAS/doc: Correct Tag_GNU_MIPS_ABI_MSA attribute description
-	Rewrite the paragraph to match the style of Tag_GNU_MIPS_ABI_FP text
-	immediately above, correcting grammar and formatting at the same time.
-
-		gas/
-		* doc/as.texi (MIPS Attributes): Correct Tag_GNU_MIPS_ABI_MSA
-		attribute description.
-
-2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	Revert "MIPS: gas: alter 64 or 32 for mipsisa triples if march is implicit"
-	This reverts commit 094025a30bb2da19df3990e0c0ff8167af823aa1.  It was
-	applied unapproved.
-
-	Revert "MIPS: default r6 if vendor is img"
-	This reverts commit be0d391f22fe6009c3be907753975a984cbbcc23.  It was
-	applied unapproved.
-
-	Revert "MIPS: fix r6 testsuites"
-	This reverts commit ffc528aed56b9e2c171137da28690a9bb6861b0b.  It was
-	applied unapproved.
-
-	Revert "MIPS: fix -gnuabi64 testsuite"
-	This reverts commit cb81e84c72933a7fad10b75b7e270d92d8d65251.  It was
-	applied unapproved.
-
-	Revert "MIPS: fix some ld testcases with compiler"
-	This reverts commit a0631c1501c113c04891c9a24a9ff5276257f28d.  It was
-	applied unapproved.
-
-	Revert "MIPS: add MT ASE support for micromips32"
-	This reverts commit acce83dacff0ce43677410c67aaae32817afe991.  It was
-	applied unapproved.
-
-	Revert "MIPS: sync oprand char usage between mips and micromips"
-	This reverts commit 5b207b919483f67311a73dfc1de8897ecfd8e776.  It was
-	applied unapproved.
-
-2023-06-15  Alan Modra  <amodra@gmail.com>
-
-	Re: Add some expected failures for bfin linker tests
-	After commit 7ade0f1582c4 I was seeing bfin-elf +XPASS: weak symbols,
-	and on looking into the bfin targets a little, discovered we have two
-	bfin-linux targets.  One, bfin-uclinux, is like bfin-elf in that
-	ld -m elf32bfin is the default, and the other, bfin-linux-uclibc where
-	ld -m elf32bfinfd is the default.  So putting bfin-*-*linux* in test
-	xfails or elsewhere is wrong.  We want bfin-*-linux* instead to just
-	select the fdpic bfin target.
-
-	This patch corrects wrong bfin target triples in the ld testsuite,
-	not just the recent change but others I'd added to xfails too.
-	It also fixes the bfin-linux-uclibc ld-elf/64ksec fail
-
-2023-06-15  Alan Modra  <amodra@gmail.com>
-
-	vms write_archive memory leaks
-	This fixes two memory leaks in the vms archive handling.
-
-		* vms-lib.c (_bfd_vms_lib_build_map): Free input symbols.
-		(_bfd_vms_lib_write_archive_contents): Free archive map symbols.
-
-2023-06-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/step-over-exit.exp with glibc debuginfo
-	In test-case gdb.base/step-over-exit.exp, we set a breakpoint on _exit and
-	continue, expecting to hit the breakpoint.
-
-	Without glibc debug info installed, we have with target board unix/-m64:
-	...
-	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, 0x00007ffff7d46aee in \
-	  _exit () from /lib64/libc.so.6^M
-	(gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
-	...
-	and with target board unix/-m32:
-	...
-	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, 0xf7d84c25 in _exit () from \
-	  /lib/libc.so.6^M
-	(gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
-	...
-
-	However after installing debug info (packages glibc-debuginfo and
-	glibc-32bit-debuginfo), we have for -m64 (note: __GI__exit instead of _exit):
-	...
-	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, \
-	  __GI__exit (status=<optimized out>) at \
-	  ../sysdeps/unix/sysv/linux/_exit.c:27^M
-	27      {^M
-	(gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
-	...
-	and -m32 (note: _Exit instead of _exit):
-	...
-	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, _Exit () at \
-	  ../sysdeps/unix/sysv/linux/i386/_exit.S:24^M
-	24      ../sysdeps/unix/sysv/linux/i386/_exit.S: No such file or directory.^M
-	(gdb) FAIL: gdb.base/step-over-exit.exp: continue to exit
-	...
-
-	The gdb_test allows for both _exit and __GI__exit, but not _Exit:
-	...
-	gdb_test "continue" \
-	    "Continuing\\..*Breakpoint $decimal.*_exit \\(.*\\).*" \
-	    "continue to exit"
-	...
-
-	Fix this by allowing _Exit as well.
-
-	Tested on x86_64-linux.
-
-2023-06-14  Nick Clifton  <nickc@redhat.com>
-
-	Add some expected failures for bfin linker tests
-
-	Add --remap-inputs option to the BFD linker.
-	  PR 30374
-	  * ldfile.c (struct input_remap): New structure. (ldfile_add_remap): New function. (ldfile_remap_input_free): New function. (ldfile_add_remap_file): New function. (ldfile_possibly_remap_input): New function. (ldfile_print_input_remaps): New function. * ldfile.h: Add prototypes for new functions.
-	  * ldlang.c (new_afile): Call ldfile_possibly_remap_input. (lang_finish): Call ldfile_remap_input_free. (lang_map): Call ldfile_print_input_remaps.
-	  * ldlex.h (OPTION_REMAP_INPUTS, OPTION_REMAP_INPUTS_FILE): Define.
-	  * lexsup.c (ld_options): Add --remap-inputs-file and --remap-inputs. (parse_args): Handle new options.
-	  * NEWS: Mention the new feature.
-	  * ld.texi: Document the new options.
-	  * testsuite/ld-misc/input-remap.exp: New test driver.
-	  * testsuite/ld-misc/remaps.r: New file: Expected linker output.
-	  * testsuite/ld-misc/remaps.txt: New file.  Input remaps file.
-
-2023-06-14  Alan Modra  <amodra@gmail.com>
-
-	asprintf memory leaks
-	A number of backends want to return bfd_reloc_dangerous messaqes from
-	relocation special_function, and construct the message using asprintf.
-	Such messages are not freed anywhere, leading to small memory leaks
-	inside libbfd.  To limit the leaks, I'd implemented a static buffer in
-	the ppc backends that was freed before use in asprintf output.  This
-	patch extends that scheme to other backends using a shared static
-	buffer and goes further in freeing the buffer on any bfd_close.
-
-	The patch also fixes a few other cases where asprintf output was not
-	freed after use.
-
-	bfd/
-		* bfd.c (_input_error_msg): Make global and rename to..
-		(_bfd_error_buf): ..this.
-		(bfd_asprintf): New function.
-		(bfd_errmsg): Use bfd_asprintf.
-		* opncls.c (bfd_close_all_done): Free _buf_error_buf.
-		* elf32-arm.c (find_thumb_glue, find_arm_glue): Use bfd_asprintf.
-		* elf32-nios2.c (nios2_elf32_relocate_section): Likewise.
-		* elf32-ppc.c (ppc_elf_unhandled_reloc): Likewise.
-		* elf64-ppc.c (ppc64_elf_unhandled_reloc): Likewise.
-		* elfnn-riscv.c (riscv_resolve_pcrel_lo_relocs): Likewise.
-		(riscv_elf_relocate_section): Likewise.
-		* libbfd.h: Regenerate.
-	gas/
-		* read.c (read_end): Free current_name and current_label.
-		(do_s_func): Likewise on error path.  strdup label.
-	ld/
-		* pe-dll.c (make_head, make_tail, make_one),
-		(make_singleton_name_thunk, make_import_fixup_entry),
-		(make_runtime_pseudo_reloc),
-		(pe_create_runtime_relocator_reference: Free oname after use.
-
-2023-06-14  Alan Modra  <amodra@gmail.com>
-
-	Re: bfd/elf.c strtab memory leak
-	There are other places that leak the strtab.
-
-		* elf.c (_bfd_elf_compute_section_file_positions): Free strtab
-		on error paths.
-
-2023-06-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/long-prompt.exp with read1
-	When running test-case gdb.tui/long-prompt.exp with check-read1, we get:
-	...
-	(gdb) FAIL: gdb.tui/long-prompt.exp: prompt size == width + 1: \
-	  end of screen: at last line
-	...
-
-	The problem is in these commands:
-	...
-	    Term::command "echo \\n"
-	    Term::command "echo \\n"
-	    Term::command "echo \\n"
-	    Term::command "echo \\n"
-	...
-
-	The last one makes the terminal scroll, and the scrolling makes the expected
-	output match on a different line.
-
-	Fix this by replacing the sequence with a single command:
-	...
-	    Term::command "echo \\n\\n\\n\\n\\n\\n"
-	...
-	which avoids scrolling.
-
-	Tested on x86_64-linux.
-
-2023-06-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix and add prompt anchoring in tuiterm
-	There is a test-case that contains a unit test for tuiterm:
-	gdb.tui/tuiterm.exp.
-
-	However, this only excercises the tuiterm itself, and not the functions that
-	interact with it, like Term::command.
-
-	Add a new test-case gdb.tui/tuiterm-2.exp that:
-	- overrides proc accept_gdb_output (to be able simulate incorrect responses
-	  while avoiding the timeout),
-	- overrides proc send_gdb (to be able to call Term::command without a gdb
-	  instance, such that all tuiterm input is generated by the test-case).
-	- issues Term::command calls, and
-	- checks whether they behave correctly.
-
-	This exposes a problem in Term::command.  The "prompt before command" regexp
-	starts with a bit that is supposed to anchor the prompt to the border:
-	...
-		set str "(^|\|)$gdb_prompt $str"
-	...
-	but that doesn't work due to insufficient escaping.  Fix this by adding the
-	missing escape:
-	...
-		set str "(^|\\|)$gdb_prompt $str"
-	...
-
-	Futhermore, the "prompt after command" regexp in Term::wait_for has no
-	anchoring at all:
-	...
-		set prompt_wait_for "$gdb_prompt \$"
-	...
-	so add that as well.
-
-	Tested on x86_64-linux.
-
-2023-06-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Allow procs with default value args in with_override
-	Currently proc with_override does not work with procs with default value args.
-
-	Fix this, and add a test-case excercising this scenario.
-
-	Tested on x86_64-linux.
-
-2023-06-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dap/type_check.exp with older python
-	On openSUSE Leap 15.4 with system python 3.6, I run into:
-	...
-	(gdb) python check_everything()^M
-	(gdb) FAIL: gdb.dap/type_check.exp: type checker
-	...
-
-	In check_everything, the hasattr test fails silently:
-	...
-	def check_everything():
-	    # Older versions of Python can't really implement this.
-	    if hasattr(typing, "get_origin"):
-	...
-	and that makes the gdb_test in the test-case fail.
-
-	Fix this by emitting UNSUPPORTED instead in check_everything, and detecting
-	this in the test-case.
-
-	Tested on x86_64-linux.
-
-2023-06-13  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: use proper int size for gdb.dwarf2/symbol_needs_eval*.exp
-	We recently realized that symbol_needs_eval_fail.exp and
-	symbol_needs_eval_timeout.exp invalidly dereference an int (4 bytes on
-	x86_64) by reading 8 bytes (the size of a pointer).
-
-	Here how it goes:
-
-	In gdb/testsuite/gdb.dwarf2/symbol_needs_eval.c a global variable is
-	defined:
-
-	    int exec_mask = 1;
-
-	and later both tests build some DWARF using the assembler doing:
-
-	    set exec_mask_var [gdb_target_symbol exec_mask]
-	    ...
-	        DW_TAG_variable {
-	          {DW_AT_name a}
-	          {DW_AT_type :$int_type_label}
-	          {DW_AT_location {
-	            DW_OP_addr $exec_mask_var
-	            DW_OP_deref
-	            ...
-	          }
-	        }
-
-	The definition of the DW_OP_deref (from Dwarf5 2.5.1.3 Stack Operations)
-	says that "The size of the data retrieved from the dereferenced address
-	is the size of an address on the target machine."
-
-	On x86_64, the size of an int is 4 while the size of an address is 8.
-	The result is that when evaluating this expression, the debugger reads
-	outside of the `a` variable.
-
-	Fix this by using `DW_OP_deref_size $int_size` instead.  To achieve
-	this, this patch adds the necessary steps so we can figure out what
-	`sizeof(int)` evaluates to for the current target.
-
-	While at it, also change the definition of the int type in the assembled
-	DWARF information so we use the actual target's size for an int instead
-	of the literal 4.
-
-	Tested on x86_64 Linux.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-06-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-13  Kevin Buettner  <kevinb@redhat.com>
-
-	Simplify case DW_OP_GNU_uninit in dwarf_expr_context::execute_stack_op
-	Tom Tromey pointed out that the test and call to error() for the
-	DW_OP_GNU_uninit case in dwarf_expr_context::execute_stack_op (in
-	gdb/dwarf2/expr.c)...
-
-		  if (op_ptr != op_end && *op_ptr != DW_OP_piece
-		      && *op_ptr != DW_OP_bit_piece)
-		    error (_("DWARF-2 expression error: DW_OP_GNU_uninit must always "
-			   "be the very last op in a DWARF expression or "
-			   "DW_OP_piece/DW_OP_bit_piece piece."));
-
-	...could be replaced by a call to dwarf_expr_require_composition which
-	performs a similar check and outputs a suitable error message.
-
-2023-06-12  Simon Farre  <simon.farre.cx@gmail.com>
-
-	Added self to W.A.A. maintainers
-
-2023-06-12  Richard Bunt  <richard.bunt@linaro.org>
-
-	gdb/testsuite: Testing with the armflang compiler
-	Currently the Fortran test suite does not run with armflang because the
-	compiler detection fails. This in turn means fortran_runto_main does not
-	know which main method to use to start a test case.
-
-	Fortran compiler detection was added in 44d469c5f85; however, the commit
-	message notes that it was not tested with armflang.
-
-	This commit tests and fixes up a minor issue to get the detection
-	working.
-
-	The goal here is to get the tests running and preventing further
-	regressions during future work. This change does not do anything to fix
-	existing failures.
-
-	>From what I can understand, the auto detection leverages the
-	preprocessor to extract the Fortran compiler identity from the defines.
-	This preprocessor output is then evaluated by the test suite to import
-	these defines.
-
-	In the case of armflang, this evaluation step is disrupted by the
-	presence of the following warning:
-
-	    $ armflang -E -fdiagnostics-color=never testsuite/lib/compiler.F90 -o compiler.exp
-	    $ clang-13: warning: argument unused during compilation: '-fdiagnostics-color=never' [-Wunused-command-line-argument]
-
-	The evaluation logic is already set up to filter this warning, but the
-	prefix differs.
-
-	This commit fixes the issue by updating the filter to exclude the
-	armflang flavour of warning.
-
-	gdb.fortran regression tests run with GNU, Intel and Intel LLVM. No
-	regressions detected.
-
-	The gdb.fortran test results with ACfL 23.04.1 are as follows.
-
-	Before:
-
-	 # of expected passes		560
-	 # of unexpected failures	113
-	 # of unresolved testcases	2
-	 # of untested testcases	5
-	 # of duplicate test names	2
-
-	After:
-
-	 # of expected passes		5388
-	 # of unexpected failures	628
-	 # of known failures		10
-	 # of untested testcases	8
-	 # of unsupported tests		5
-	 # of duplicate test names	5
-
-	As can be seen from the above, there are now considerably more passing
-	assertions.
-
-	Reviewed-By: Luis Machado <luis.machado@arm.com>
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Remove f-strings from DAP
-	Kévin pointed out that gdb claims a minimum Python version of 3.2, but
-	the DAP code uses f-strings, which were added in 3.6.
-
-	This patch removes the uses of f-strings from the DAP code.  I can't
-	test an older version of Python, but I did confirm that this still
-	works with the version I have.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP conditional breakpoints
-	I realized that I had only implemented DAP breakpoint conditions for
-	exception breakpoints, and not other kinds of breakpoints.  This patch
-	corrects the oversight.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Do not report totalFrames from DAP stackTrace request
-	Currently, gdb will unwind the entire stack in response to the
-	stackTrace request.  I had erroneously thought that the totalFrames
-	attribute was required in the response.  However, the spec says:
-
-	    If omitted or if `totalFrames` is larger than the available
-	    frames, a client is expected to request frames until a request
-	    returns less frames than requested (which indicates the end of the
-	    stack).
-
-	This patch removes this from the response in order to improve
-	performance when the stack trace is very long.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP breakpointLocations request
-	This implements the DAP breakpointLocations request.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Add "stop at main" extension to DAP launch request
-	Co-workers who work on a program that uses DAP asked for the ability
-	to have gdb stop at the main subprogram when launching.  This patch
-	implements this extension.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Add "target" parameter to DAP attach request
-	This adds a new "target" to the DAP attach request.  This is passed to
-	"target remote".  I thought "attach" made the most sense for this,
-	because in some sense gdb is attaching to a running process.  It's
-	worth noting that all DAP "attach" parameters are defined by the
-	implementation.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Handle DAP supportsVariableType capability
-	A DAP client can report the supportsVariableType capability in the
-	initialize request.  In this case, gdb can include the type of a
-	variable or expression in various results.
-
-	Implement DAP setExpression request
-	This implements the DAP setExpression request.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Add gdb.Value.assign method
-	This adds an 'assign' method to gdb.Value.  This allows for assignment
-	without requiring the use of parse_and_eval.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Add type-checking to DAP requests
-	It occurred to me recently that gdb's DAP implementation should
-	probably check the types of objects coming from the client.  This
-	patch implements this idea by reusing Python's existing type
-	annotations, and supplying a decorator that verifies these at runtime.
-
-	Python doesn't make it very easy to do runtime type-checking, so the
-	core of the checker is written by hand.  I haven't tried to make a
-	fully generic runtime type checker.  Instead, this only checks the
-	subset that is needed by DAP.  For example, only keyword-only
-	functions are handled.
-
-	Furthermore, in a few spots, it wasn't convenient to spell out the
-	type that is accepted.  I've added a couple of comments to this effect
-	in breakpoint.py.
-
-	I've tried to make this code compatible with older versions of Python,
-	but I've only been able to try it with 3.9 and 3.10.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Use tuples for default arguments in DAP
-	My co-worker Kévin taught me that using a mutable object as a default
-	argument in Python is somewhat dangerous, because the object is
-	created a single time (when the function is defined), and so if it is
-	mutated in the body of the function, the changes will stick around.
-
-	This patch changes the cases like this in DAP to use () rather than []
-	as the default.  This patch is merely preventative, as no bugs like
-	this are in the code.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Fix a latent bug in DAP request decorator
-	The 'request' decorator is intended to also ensure that the request
-	function runs in the DAP thread.  However, the unwrapped function is
-	installed in the global request map, so the wrapped version is never
-	called.  This patch fixes the bug.
-
-	Add test for DAP pause request
-	I neglected to write a test for the DAP "pause" request.  This patch
-	adds one.
-
-	Rename one DAP function
-	When I first started implementing DAP, I had some vague plan of having
-	the implementation functions use the same name as the request.  I
-	abandoned this idea, but one vestige remained.  This patch renames the
-	one remaining function to be gdb-ish.
-
-	Add singleThread support to some DAP requests
-	A few DAP requests support a "singleThread" parameter, which is
-	somewhat similar to scheduler-locking.  This patch implements support
-	for this.
-
-	Implement DAP stepOut request
-	This implements the DAP "stepOut" request.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP attach request
-	This implements the DAP "attach" request.
-
-	Note that the copyright dates on the new test source file are not
-	incorrect -- this was copied verbatim from another directory.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP setExceptionBreakpoints request
-	This implements the DAP setExceptionBreakpoints request for Ada.  This
-	is a somewhat minimal implementation, in that "exceptionOptions" are
-	not implemented (or advertised) -- I wasn't completely sure how this
-	feature is supposed to work.
-
-	I haven't added C++ exception handling here, but it's easy to do if
-	needed.
-
-	This patch relies on the new MI command execution support to do its
-	work.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Don't require inferior execution for Ada catchpoints
-	Currently, Ada catchpoints require that the inferior be running.
-	However, there's no deep reason for this -- for example, C++ exception
-	catchpoints do not have this requirement.  Instead, those work like
-	ordinary breakpoints: they are pending until the needed runtime
-	locations are seen.
-
-	This patch changes Ada catchpoints to work the same way.
-
-2023-06-12  Tom Tromey  <tromey@adacore.com>
-
-	Mark members of ada_catchpoint "private"
-	This changes the members of ada_catchpoint to be private.
-
-	Turn should_stop_exception into a method of ada_catchpoint
-	This turns the should_stop_exception function in ada-lang.c into a
-	method of ada_catchpoint.
-
-	Combine create_excep_cond_exprs and ada_catchpoint::re_set
-	This patch merges create_excep_cond_exprs into ada_catchpoint::re_set.
-	This is less verbose and is also a step toward making ada_catchpoint
-	work more like the other code_breakpoint-based exception catchpoints.
-
-	Transfer ownership of exception string to ada_catchpoint
-	This changes the ada_catchpoint to require an rvalue ref, so that
-	ownership of the exception string can be transferred to the catchpoint
-	object.
-
-	Pass tempflag to ada_catchpoint constructor
-	This is a minor cleanup to pass tempflag to the ada_catchpoint
-	constructor.
-
-	Use gnat_runtime_has_debug_info in Ada catchpoint tests
-	This changes the Ada catchpoint tests to use
-	gnat_runtime_has_debug_info.  This simplifies the code.
-
-	Stop gdb in gnat_runtime_has_debug_info
-	gnat_runtime_has_debug_info starts a new gdb to do its work.  However,
-	it also leaves this gdb running, which can potentially confuse the
-	calling test -- I encountered this when writing a new DAP test.  This
-	patch changes the proc to shut down gdb.
-
-2023-06-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Relax breakpoint count check in gdb.python/py-rbreak.exp
-	With a gdb 13.2 based package on SLE-15 aarch64,  I run into:
-	...
-	(gdb) PASS: gdb.python/py-rbreak.exp: nosharedlibrary
-	py sl = gdb.rbreak("^[^_]",minsyms=False)^M
-	Breakpoint 2 at 0x4004ac: file ../sysdeps/aarch64/crti.S, line 63.^M
-	  ...
-	(gdb) py print(len(sl))^M
-	12^M
-	(gdb) FAIL: gdb.python/py-rbreak.exp: check number of returned breakpoints is 11
-	...
-
-	The FAIL is due to:
-	- the glibc object crti.o containing debug information for function
-	  call_weak_fn, and
-	- the test-case not expecting this.
-
-	The debug information is there due to compiling glibc using a binutils which
-	contains commit 591cc9fbbfd ("gas/Dwarf: record functions").
-
-	I've run into a similar issue before, see commit 3fbbcf473a5 ("[gdb/testsuite]
-	Fix regexp in py-rbreak.exp").
-
-	The fix I applied there was to use a regexp "^[^_]" to filter out
-	__libc_csu_fini and __libc_csu_init, but that doesn't work for call_weak_fn.
-
-	Fix this by:
-	- reverting the regexp to "", and
-	- rewriting the check to require at least 11 functions, rather than a precise
-	  match.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30538
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30538
-
-2023-06-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix breakpoint regexp in gdb.ada/out_of_line_in_inlined.exp
-	With a gdb 13.2 based package on openSUSE Tumbleweed i586, I ran into:
-	...
-	(gdb) run ^M
-	Starting program: out_of_line_in_inlined/foo_o224_021-all ^M
-	[Thread debugging using libthread_db enabled]^M
-	Using host libthread_db library "/lib/libthread_db.so.1".^M
-	^M
-	Breakpoint 1.1, foo_o224_021.child1.child2 (s=...) at foo_o224_021.adb:26^M
-	26                  for C of S loop^M
-	(gdb) FAIL: gdb.ada/out_of_line_in_inlined.exp: scenario=all: \
-	  run to foo_o224_021.child1.child2
-	...
-
-	I can reproduce the same issue with gdb trunk on x86_64, by using optimize=-O3
-	instead of optimize=-O2.
-
-	Fix this by using $bkptno_num_re.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30539
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30539
-
-2023-06-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Replace macro HELP_ATTRIBUTE_MODE with std::string
-	Replace macro HELP_ATTRIBUTE_MODE with a std::string.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-12  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: gas: Relocations simplification when -mno-relax
-	  Gas does not emit ADD/SUB relocation pairs for label differences
-	  when -mno-relax.
-
-2023-06-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-11  Kevin Buettner  <kevinb@redhat.com>
-
-	Permit DW_OP_GNU_uninit to be used with DW_OP_piece
-	This commit implements a fix for a bug reported against GDB on
-	Fedora bugzilla...
-
-	https://bugzilla.redhat.com/show_bug.cgi?id=2166796
-
-	The test case in that bug report involved running gdb against the 'jq'
-	program (which is a command-line JSON processor) on Fedora 37.  Since
-	the debug info is compiler (and compile-time option) dependent, it
-	won't necessarily show up in other distributions or even past or
-	future versions of Fedora.  (E.g. when trying the example shown below
-	on Fedora 38, GDB says that the value of 'value' has been optimized
-	out.  I.e. it does not demonstrate the same DWARF error that can be
-	see when using Fedora 37.)
-
-	That said, on Fedora 37, the bug could be reproduced as follows:
-
-	[kev@f37-1 ~]$ gdb jq -q -ex 'b src/util.c:415' -ex 'r </dev/null'
-	Reading symbols from jq...
-
-	This GDB supports auto-downloading debuginfo from the following URLs:
-	  <https://debuginfod.fedoraproject.org/>
-	Enable debuginfod for this session? (y or [n]) y
-	Debuginfod has been enabled.
-	To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
-	Reading symbols from /home/kev/.cache/debuginfod_client/9d3c8b4197350a190a74972d481de32abf641aa4/debuginfo...
-	No source file named src/util.c.
-	Make breakpoint pending on future shared library load? (y or [n]) y
-	Breakpoint 1 (src/util.c:415) pending.
-	Starting program: /usr/bin/jq </dev/null
-	[Thread debugging using libthread_db enabled]
-	Using host libthread_db library "/lib64/libthread_db.so.1".
-
-	Breakpoint 1, jq_util_input_next_input (state=0x55555555d7f0) at src/util.c:416
-	416	    if (state->parser == NULL) {
-	(gdb) p value
-	DWARF-2 expression error: DW_OP_GNU_uninit must always be the very last op.
-
-	This is undesirable - rather than output an error about the DWARF
-	info, we'd prefer to see a value, even if it is uninitialized.
-
-	Examination of the debuginfo showed the following:
-
-	 <1><468f1>: Abbrev Number: 112 (DW_TAG_subprogram)
-	    <468f2>   DW_AT_external    : 1
-	    <468f2>   DW_AT_name        : (indirect string, offset: 0x4781): jq_util_input_next_input
-	    <468f6>   DW_AT_decl_file   : 10
-	    <468f6>   DW_AT_decl_line   : 411
-	    <468f8>   DW_AT_decl_column : 4
-	    <468f9>   DW_AT_prototyped  : 1
-	    <468f9>   DW_AT_type        : <0x3f2>
-	    <468fd>   DW_AT_sibling     : <0x4692e>
-	...
-	 <2><46921>: Abbrev Number: 102 (DW_TAG_variable)
-	    <46922>   DW_AT_name        : (indirect string, offset: 0x8cb): value
-	    <46926>   DW_AT_decl_file   : 10
-	    <46926>   DW_AT_decl_line   : 414
-	    <46928>   DW_AT_decl_column : 6
-	    <46929>   DW_AT_type        : <0x3f2>
-
-	Note that there's no DW_AT_location, so I looked for an abstract origin entry:
-
-	 <2><2dfa0>: Abbrev Number: 90 (DW_TAG_variable)
-	    <2dfa1>   DW_AT_abstract_origin: <0x46921>
-	    <2dfa5>   DW_AT_location    : 0x27cf1 (location list)
-	    <2dfa9>   DW_AT_GNU_locviews: 0x27ce1
-
-	(Note that the DW_AT_abstract_origin attribute's value is 0x46921 which
-	is the DIE for the local variable "value".)
-
-	Looking at the location list, I see:
-
-	    00027cf1 v000000000000000 v000000000000000 views at 00027ce1 for:
-	             000000000002f8fe 000000000002f92e (DW_OP_reg13 (r13); DW_OP_GNU_uninit; DW_OP_piece: 8; DW_OP_reg12 (r12); DW_OP_GNU_uninit; DW_OP_piece: 8)
-
-	While DW_OP_GNU_uninit is not the very last op, it is the last op
-	prior to DW_OP_piece.  The fix involved changing the DW_OP_GNU_uninit
-	case in dwarf_expr_context::execute_stack_op in gdb/dwarf2/expr.c so
-	that DW_OP_GNU_uninit may appear just before DW_OP_piece.
-
-	With the fix in place, attempting to print 'value' now looks like
-	this:
-
-	(gdb) p value
-	$1 =  [uninitialized] {kind_flags = 0 '\000', pad_ = 0 '\000', offset = 0,
-	  size = 0, u = {ptr = 0x0, number = 0}}
-
-	Note that "[uninitialized]" is part of the output.  (But also note
-	that there's an extra space character.)
-
-	I've made a new test case,
-	gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp, by adapting an
-	existing one, gdb.dwarf2/opt-out-not-implptr.exp.  Since it uses the
-	DWARF assembler, the test case does not depend on a specific compiler
-	version or compiler options.
-
-	Tested on Fedora 37 and Fedora 38.
-
-2023-06-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: testsuite: add sframe_find_fre tests for pltN entries
-	Add a new test plt-findfre-1 to ensure lookup of SFrame stack trace
-	information for pltN entries is correct.
-
-	In this test, a dummy SFrame FDE of type SFRAME_FDE_TYPE_PCMASK is
-	created.  The size of the 'function code block' covered by the SFrame
-	FDE is equivalent to 5 pltN entries of 16 bytes each.
-
-	The test first looks up SFrame FREs for some addresses in the first pltN
-	entry, followed by lookups for some addresses in the fourth pltN entry.
-
-	libsframe/
-		* Makefile.in: Regenerated.
-		* testsuite/libsframe.find/find.exp: Add new test.
-		* testsuite/libsframe.find/local.mk: Likewise.
-		* testsuite/libsframe.find/plt-findfre-1.c: New test.
-
-2023-06-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: fix sframe_find_fre for pltN entries
-	To find SFrame stack trace information from an FDE of type
-	SFRAME_FDE_TYPE_PCMASK, sframe_find_fre () was doing an operation
-	like,
-	  (start_ip_offset & 0xff) >= (pc & 0xff), etc.
-
-	This is buggy and needs correction.  The mask 0xff should be 0xf (to
-	work for a pltN entry of size say, 16 bytes).
-
-	At this time, the size of the pltN entry is implicitly assumed to be 16
-	bytes by libsframe.  In next version of the SFrame format, we can encode
-	this information explicitly in the SFrame FDE.
-
-	For now, we should fix the code to at least behave correctly for the
-	generated code and the generated SFrame stack trace information for the
-	pltN entries on x86_64.
-
-	libsframe/
-		* sframe.c (sframe_find_fre): Correct the bitmask used for
-		SFrame FDEs of type SFRAME_FDE_TYPE_PCMASK.
-
-2023-06-09  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64,arm] Fix some formatting issues in the aarch64/arm codebase
-	As noted by Tom Tromey, there are some formatting issues with the ternary
-	operator in the aarch64/arm codebase.  This patch fixes those.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Simplify tui_puts_internal
-	Simplify tui_puts_internal by using continue, as per this [1] coding standard
-	rule, making the function more readable and easier to understand.
-
-	No functional changes.
-
-	Tested on x86_64-linux.
-
-	[1] https://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Delete line buffer when switching to singlekey
-	Say we're in TUI mode, and type "sun":
-	...
-	(gdb) sun
-	...
-
-	After switching to SingleKey mode using C-x s, we have just:
-	...
-	sun
-	...
-
-	After typing "d", we get:
-	...
-	sun
-	Undefined command: "sundown".  Try "help".
-	...
-
-	The SingleKey "d" is supposed run the "down" command.
-
-	Fix this by clearing the readline line buffer when switching to SingleKey
-	mode.
-
-	Tested on x86_64-linux.
-
-	PR tui/30522
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30522
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add test-case gdb.tui/single-key.exp
-	I noticed that there's no test-case excercising SingleKey mode, so add a test-case.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/debuginfod: cleanup debuginfod earlier
-	A GDB crash was discovered on Fedora GDB that was tracked back to an
-	issue with the way that debuginfod is cleaned up.
-
-	The bug was reported on Fedora 37, 38, and 39.  Here are the steps to
-	reproduce:
-
-	1. The file /etc/ssl/openssl.cnf contains the following lines:
-
-	   [provider_sect]
-	   default = default_sect
-	   ##legacy = legacy_sect
-	   ##
-	   [default_sect]
-	   activate = 1
-
-	   ##[legacy_sect]
-	   ##activate = 1
-
-	   The bug will occur when the '##' characters are removed so that the
-	   lines in question look like this:
-
-	   [provider_sect]
-	   default = default_sect
-	   legacy = legacy_sect
-
-	   [default_sect]
-	   activate = 1
-
-	   [legacy_sect]
-	   activate = 1
-
-	2. Clean up any existing debuginfod cache data:
-
-	   > rm -rf $HOME/.cache/debuginfod_client
-
-	3. Run GDB:
-
-	   > gdb -nx -q -iex 'set trace-commands on' \
-	                -iex 'set debuginfod enabled on' \
-	                -iex 'set confirm off' \
-			-ex 'start' -ex 'quit' /bin/ls
-	   +set debuginfod enabled on
-	   +set confirm off
-	   Reading symbols from /bin/ls...
-	   Downloading separate debug info for /usr/bin/ls
-	   ... snip ...
-	   Temporary breakpoint 1, main (argc=1, argv=0x7fffffffde38) at ../src/ls.c:1646
-	   1646    {
-	   +quit
-
-	   Fatal signal: Segmentation fault
-	   ----- Backtrace -----
-	   ... snip ...
-
-	So GDB ends up crashing during exit.
-
-	What's happening is that when debuginfod is initialised
-	debuginfod_begin is called (this is in the debuginfod library), this
-	in turn sets up libcurl, which makes use of openssl.  Somewhere during
-	this setup process an at_exit function is registered to cleanup some
-	state.
-
-	Back in GDB the debuginfod_client object is managed using this code:
-
-	  /* Deleter for a debuginfod_client.  */
-
-	  struct debuginfod_client_deleter
-	  {
-	    void operator() (debuginfod_client *c)
-	    {
-	      debuginfod_end (c);
-	    }
-	  };
-
-	  using debuginfod_client_up
-	    = std::unique_ptr<debuginfod_client, debuginfod_client_deleter>;
-
-	And then a global debuginfod_client_up is created to hold a pointer to
-	the debuginfod_client object.  As a global this will be cleaned up
-	using the standard C++ global object destructor mechanism, which is
-	run after the at_exit handlers.
-
-	However, it is expected that when debuginfod_end is called the
-	debuginfod_client object will still be in a usable state, that is, we
-	don't expect the at_exit handlers to have run and started cleaning up
-	the library state.
-
-	To fix this issue we need to ensure that debuginfod_end is called
-	before the at_exit handlers have a chance to run.
-
-	This commit removes the debuginfod_client_up type, and instead has GDB
-	hold a raw pointer to the debuginfod_client object.  We then make use
-	of GDB's make_final_cleanup to register a function that will call
-	debuginfod_end.
-
-	As GDB's final cleanups are called before exit is called, this means
-	that debuginfod_end will be called before the at_exit handlers are
-	called, and the crash identified above is resolved.
-
-	It's not obvious how this issue can easily be tested for. The bug does
-	not appear to manifest when using a local debuginfod server, so we'd
-	need to setup something more involved.  For now I'm proposing this
-	patch without any associated tests.
-
-	Co-Authored-By: Mark Wielaard <mark@klomp.org>
-	Co-Authored-By: Simon Marchi <simark@simark.ca>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Aaron Merey <amerey@redhat.com>
-
-2023-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix ASan failure after recent string changes
-	After this commit:
-
-	  commit baab375361c365afee2577c94cbbd3fdd443d6da
-	  Date:   Tue Jul 13 14:44:27 2021 -0400
-
-	      gdb: building inferior strings from within GDB
-
-	It was pointed out that a new ASan failure had been introduced which
-	was triggered by gdb.base/internal-string-values.exp:
-
-	  (gdb) PASS: gdb.base/internal-string-values.exp: test_setting: all langs: lang=ada: ptype "foo"
-	  print $_gdb_maint_setting("test-settings string")
-	  =================================================================
-	  ==80377==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000068034 at pc 0x564785cba682 bp 0x7ffd20644620 sp 0x7ffd20644610
-	  READ of size 1 at 0x603000068034 thread T0
-	      #0 0x564785cba681 in find_command_name_length(char const*) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2129
-	      #1 0x564785cbacb2 in lookup_cmd_1(char const**, cmd_list_element*, cmd_list_element**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int, bool) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2186
-	      #2 0x564785cbb539 in lookup_cmd_1(char const**, cmd_list_element*, cmd_list_element**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int, bool) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2248
-	      #3 0x564785cbbcf3 in lookup_cmd(char const**, cmd_list_element*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int, int) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2339
-	      #4 0x564785c82df2 in setting_cmd /tmp/src/binutils-gdb/gdb/cli/cli-cmds.c:2219
-	      #5 0x564785c84274 in gdb_maint_setting_internal_fn /tmp/src/binutils-gdb/gdb/cli/cli-cmds.c:2348
-	      #6 0x564788167b3b in call_internal_function(gdbarch*, language_defn const*, value*, int, value**) /tmp/src/binutils-gdb/gdb/value.c:2321
-	      #7 0x5647854b6ebd in expr::ada_funcall_operation::evaluate(type*, expression*, noside) /tmp/src/binutils-gdb/gdb/ada-lang.c:11254
-	      #8 0x564786658266 in expression::evaluate(type*, noside) /tmp/src/binutils-gdb/gdb/eval.c:111
-	      #9 0x5647871242d6 in process_print_command_args /tmp/src/binutils-gdb/gdb/printcmd.c:1322
-	      #10 0x5647871244b3 in print_command_1 /tmp/src/binutils-gdb/gdb/printcmd.c:1335
-	      #11 0x564787125384 in print_command /tmp/src/binutils-gdb/gdb/printcmd.c:1468
-	      #12 0x564785caac44 in do_simple_func /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:95
-	      #13 0x564785cc18f0 in cmd_func(cmd_list_element*, char const*, int) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2735
-	      #14 0x564787c70c68 in execute_command(char const*, int) /tmp/src/binutils-gdb/gdb/top.c:574
-	      #15 0x564786686180 in command_handler(char const*) /tmp/src/binutils-gdb/gdb/event-top.c:543
-	      #16 0x56478668752f in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /tmp/src/binutils-gdb/gdb/event-top.c:779
-	      #17 0x564787dcb29a in tui_command_line_handler /tmp/src/binutils-gdb/gdb/tui/tui-interp.c:104
-	      #18 0x56478668443d in gdb_rl_callback_handler /tmp/src/binutils-gdb/gdb/event-top.c:250
-	      #19 0x7f4efd506246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
-	      #20 0x564786683dea in gdb_rl_callback_read_char_wrapper_noexcept /tmp/src/binutils-gdb/gdb/event-top.c:192
-	      #21 0x564786684042 in gdb_rl_callback_read_char_wrapper /tmp/src/binutils-gdb/gdb/event-top.c:225
-	      #22 0x564787f1b119 in stdin_event_handler /tmp/src/binutils-gdb/gdb/ui.c:155
-	      #23 0x56478862438d in handle_file_event /tmp/src/binutils-gdb/gdbsupport/event-loop.cc:573
-	      #24 0x564788624d23 in gdb_wait_for_event /tmp/src/binutils-gdb/gdbsupport/event-loop.cc:694
-	      #25 0x56478862297c in gdb_do_one_event(int) /tmp/src/binutils-gdb/gdbsupport/event-loop.cc:264
-	      #26 0x564786df99f0 in start_event_loop /tmp/src/binutils-gdb/gdb/main.c:412
-	      #27 0x564786dfa069 in captured_command_loop /tmp/src/binutils-gdb/gdb/main.c:476
-	      #28 0x564786dff61f in captured_main /tmp/src/binutils-gdb/gdb/main.c:1320
-	      #29 0x564786dff75c in gdb_main(captured_main_args*) /tmp/src/binutils-gdb/gdb/main.c:1339
-	      #30 0x564785381b6d in main /tmp/src/binutils-gdb/gdb/gdb.c:32
-	      #31 0x7f4efbc3984f  (/usr/lib/libc.so.6+0x2384f) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
-	      #32 0x7f4efbc39909 in __libc_start_main (/usr/lib/libc.so.6+0x23909) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
-	      #33 0x564785381934 in _start (/tmp/build/binutils-gdb/gdb/gdb+0xabc5934) (BuildId: 90de353ac158646e7dab501b76a18a76628fca33)
-
-	  0x603000068034 is located 0 bytes after 20-byte region [0x603000068020,0x603000068034) allocated by thread T0 here:
-	      #0 0x7f4efcee0cd1 in __interceptor_calloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:77
-	      #1 0x5647856265d8 in xcalloc /tmp/src/binutils-gdb/gdb/alloc.c:97
-	      #2 0x564788610c6b in xzalloc(unsigned long) /tmp/src/binutils-gdb/gdbsupport/common-utils.cc:29
-	      #3 0x56478815721a in value::allocate_contents(bool) /tmp/src/binutils-gdb/gdb/value.c:929
-	      #4 0x564788157285 in value::allocate(type*, bool) /tmp/src/binutils-gdb/gdb/value.c:941
-	      #5 0x56478815733a in value::allocate(type*) /tmp/src/binutils-gdb/gdb/value.c:951
-	      #6 0x5647854ae81c in expr::ada_string_operation::evaluate(type*, expression*, noside) /tmp/src/binutils-gdb/gdb/ada-lang.c:10675
-	      #7 0x5647854b63b8 in expr::ada_funcall_operation::evaluate(type*, expression*, noside) /tmp/src/binutils-gdb/gdb/ada-lang.c:11184
-	      #8 0x564786658266 in expression::evaluate(type*, noside) /tmp/src/binutils-gdb/gdb/eval.c:111
-	      #9 0x5647871242d6 in process_print_command_args /tmp/src/binutils-gdb/gdb/printcmd.c:1322
-	      #10 0x5647871244b3 in print_command_1 /tmp/src/binutils-gdb/gdb/printcmd.c:1335
-	      #11 0x564787125384 in print_command /tmp/src/binutils-gdb/gdb/printcmd.c:1468
-	      #12 0x564785caac44 in do_simple_func /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:95
-	      #13 0x564785cc18f0 in cmd_func(cmd_list_element*, char const*, int) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2735
-	      #14 0x564787c70c68 in execute_command(char const*, int) /tmp/src/binutils-gdb/gdb/top.c:574
-	      #15 0x564786686180 in command_handler(char const*) /tmp/src/binutils-gdb/gdb/event-top.c:543
-	      #16 0x56478668752f in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /tmp/src/binutils-gdb/gdb/event-top.c:779
-	      #17 0x564787dcb29a in tui_command_line_handler /tmp/src/binutils-gdb/gdb/tui/tui-interp.c:104
-	      #18 0x56478668443d in gdb_rl_callback_handler /tmp/src/binutils-gdb/gdb/event-top.c:250
-	      #19 0x7f4efd506246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
-
-	The problem is in cli/cli-cmds.c, in the function setting_cmd, where
-	we do this:
-
-	  const char *a0 = (const char *) argv[0]->contents ().data ();
-
-	Here argv[0] is a value* which we know is either a TYPE_CODE_ARRAY or
-	a TYPE_CODE_STRING.  The problem is that the above line is casting the
-	value contents directly to a C-string, i.e. one that is assumed to
-	have a null-terminator at the end.
-
-	After the above commit this can no longer be assumed to be true.  A
-	string value will be represented just as it would be in the current
-	language, so for Ada and Fortran the string will be an array of
-	characters with no null-terminator at the end.
-
-	My proposed solution is to copy the string contents into a std::string
-	object, and then use the std::string::c_str() value, this will ensure
-	that a null-terminator has been added.
-
-	I had a check through GDB at places TYPE_CODE_STRING was used and
-	couldn't see any other obvious places where this type of assumption
-	was being made, so hopefully this is the only offender.
-
-	Running the above test with ASan compiled in no longer gives an error.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-09  Tom Tromey  <tromey@adacore.com>
-
-	Use scoped_value_mark in two more places
-	I found a couple of spots that could use scoped_value_mark.  One of
-	them is a spot that didn't consider the possibility that value_mark
-	can return NULL.  I tend to doubt this can be seen in this context,
-	but nevertheless this is safer.
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-06-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix typos
-	Fix typos:
-	- reponse -> response
-	- inital -> initial
-	- a -> an
-
-2023-06-09  Alan Modra  <amodra@gmail.com>
-
-	readelf/objdump remember_state memory leaks
-		* dwarf.c (display_debug_frames <DW_CFA_restore_state>): Do free
-		invalid remember_state.
-
-2023-06-09  Alan Modra  <amodra@gmail.com>
-
-	ecoff find_nearest_line and final link leaks
-	Freeing ecoff_debug_info "pointers to the unswapped symbolic info"
-	isn't a simple matter, due to differing allocation strategies.  In
-	_bfd_ecoff_slurp_symbolic_info the pointers are to objalloc memory.
-	In the ecoff linker they are to separately malloc'd memory.  In gas we
-	have most (obj-elf) or all (obj-ecoff) into a single malloc'd buffer.
-
-	This patch fixes the leaks for binutils and ld, leaving the gas leaks
-	for another day.  The mips elf backend already had this covered, and
-	the ecoff backend had a pointer, raw_syments used as a flag, so most
-	of the patch is moving these around a little so they are accessible
-	for both ecoff and elf.
-
-	include/
-		* coff/ecoff.h (struct ecoff_debug_info): Add alloc_syments.
-	bfd/
-		* libecoff.h (struct ecoff_tdata): Delete raw_syments.
-		* elfxx-mips.c (free_ecoff_debug): Delete.  Replace uses with
-		_bfd_ecoff_free_ecoff_debug_info.
-		(_bfd_mips_elf_final_link): Init debug.alloc_syments.
-		* ecofflink.c (_bfd_ecoff_free_ecoff_debug_info): New function.
-		* ecoff.c (_bfd_ecoff_bfd_free_cached_info): Call
-		_bfd_ecoff_free_ecoff_debug_info.
-		(_bfd_ecoff_slurp_symbolic_info): Replace uses of raw_syments
-		with alloc_syments.
-		(ecoff_final_link_debug_accumulate): Likewise.  Use
-		_bfd_ecoff_free_ecoff_debug_info.
-		(_bfd_ecoff_bfd_copy_private_bfd_data): Set alloc_syments for
-		copied output.
-		* elf64-alpha.c (elf64_alpha_read_ecoff_info): Use
-		_bfd_ecoff_free_ecoff_debug_info.
-		* libbfd-in.h (_bfd_ecoff_free_ecoff_debug_info): Declare.
-		* libbfd.h: Regenerate.
-	gas/
-		* config/obj-ecoff.c (ecoff_frob_file): Set alloc_syments.
-		* config/obj-elf.c (elf_frob_file_after_relocs): Likewise.
-
-2023-06-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add test-case gdb.tui/long-prompt.exp
-	I noticed that the test-suite doesn't excercise the case in
-	tui_redisplay_readline that height (initially 1) is changed by this call:
-	...
-	    tui_puts_internal (w, prompt, &height);
-	...
-
-	Add a test-case that excercises this.
-
-	Tested on x86_64-linux.
-
-2023-06-08  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/corelow.c: do not try to reopen a file if open failed once
-	In the current implementation, core_target::build_file_mappings will try
-	to locate and open files which were mapped in the process for which the
-	core dump was produced.  If the file cannot be found or cannot be
-	opened, GDB will re-try to open it once for each time it was mapped in
-	the process's address space.
-
-	This patch makes it so GDB recognizes that it has already failed to open
-	a given file once and does not re-try the process for each mapping.
-
-	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-06-08  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/corelow.c: avoid repeated warnings in build_file_mappings
-	When GDB opens a coredump it tries to locate and then open all files
-	which were mapped in the process.
-
-	If a file is found but cannot be opened with BFD (bfd_open /
-	bfd_check_format fails), then a warning is printed to the user.  If the
-	same file was mapped multiple times in the process's address space, the
-	warning is printed once for each time the file was mapped.  I find this
-	un-necessarily noisy.
-
-	This patch makes it so the warning message is printed only once per
-	file.
-
-	There was a comment in the code assuming that if the file was found on
-	the system, opening it (bfd_open + bfd_check_format) should always
-	succeed.  A recent change in BFD (014a602b86f "Don't optimise bfd_seek
-	to same position") showed that this assumption is not valid.  For
-	example, it is possible to have a core dump of a process which had
-	mmaped an IO page from a DRI render node (/dev/dri/runderD$NUM).  In
-	such case the core dump does contain the information that portions of
-	this special file were mapped in the host process, but trying to seek to
-	position 0 will fail, making bfd_check_format fail.  This patch removes
-	this comment.
-
-	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-06-08  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/corelow.c: fix use-after-free in build_file_mappings
-	In core_target::build_file_mappings, GDB tries to open files referenced
-	in the core dump.
-
-	The process goes like this:
-
-	    struct bfd *bfd = bfd_map[filename];
-	    if (bfd == nullptr)
-	      {
-	        bfd = bfd_map[filename]
-	          = bfd_openr (expanded_fname.get (), "binary");
-	        if (bfd == nullptr || !bfd_check_format (bfd, bfd_object))
-	          {
-	            if (bfd != nullptr)
-	              bfd_close (bfd);
-	            return;
-	          }
-	      }
-	    asection *sec = bfd_make_section_anyway (bfd, "load");
-	    ...
-
-	The problem is that if bfd_check_format fails, we close the bfd but keep
-	a reference to it in the bfd_map.
-
-	If the same filename appears another time in the NT_FILE note, we enter
-	this code again.  The second time, bfd_map[filename] is not nullptr and
-	we try to call bfd_make_section_anyway on an already closed BFD, which
-	is a use-after-free error.
-
-	This patch makes sure that the bfd is only saved in the bfd_map if it
-	got opened successfully.
-
-	This error got exposed by a recent change in BFD (014a602b86f "Don't
-	optimise bfd_seek to same position").  Since this change, opening a
-	coredump which contains mapping to some special files such as a DRI
-	render node (/dev/dri/renderD$NUM) exposes the issue.  This happens for
-	example for processes using AMDGPU devices to offload compute tasks.
-
-	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-06-08  Alan Modra  <amodra@gmail.com>
-
-	Re: _bfd_free_cached_info
-	Oops, another leak caused by not defining the correct macro.
-
-		* elf32-mips.c: Define bfd_elf32_bfd_free_cached_info.
-		* elfn32-mips.c: Likewise.
-		* elf64-mips.c: Define bfd_elf64_bfd_free_cached_info.
-
-2023-06-08  Alan Modra  <amodra@gmail.com>
-
-	Re: _bfd_free_cached_info
-	ELF targets with target-specific free_cache_info functions need to
-	call _bfd_elf_free_cached_info, not _bfd_generic_bfd_free_cached_info.
-
-		* elf64-ppc.c (ppc64_elf_free_cached_info): Call
-		_bfd_elf_free_cached_info.
-		* elfnn-aarch64.c (elfNN_aarch64_bfd_free_cached_info): Likewise.
-
-2023-06-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-07  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: reuse static function sframe_decoder_get_funcdesc_at_index
-	sframe_decoder_get_funcdesc_at_index () is the function to access SFrame
-	FDEs in the SFrame decoder context.  Use it consistently.
-
-	Avoid unnecessary type cast and include minor enhancements as the code
-	is moved around.
-
-	libsframe/
-		* sframe.c (sframe_decoder_get_funcdesc_at_index): Move some
-		checks here.  Move the static function definition before the new
-		use.
-		(sframe_decoder_get_funcdesc): Use
-		sframe_decoder_get_funcdesc_at_index instead.
-
-2023-06-07  Tom Tromey  <tromey@adacore.com>
-
-	Simplify ada_lookup_struct_elt_type
-	This patch simplifies ada_lookup_struct_elt_type by changing it to
-	call find_struct_field.  The two functions were substantially similar,
-	even to the point of having identical comments.
-
-	I tested this using both the gdb test suite and the internal AdaCore
-	test suite.  Given this and the fact that it is Ada-specific, I am
-	checking it in.
-
-2023-06-07  Nick Clifton  <nickc@redhat.com>
-
-	Add extra linker warning message about discrepancies between normal and common symbols.
-	  PR 30499
-	  bfd * elflink.c (elf_link_add_object_symbols): Add a message indicating that alignment and size discrepancies between the definition of common symbols and normal symbols are serious and should be investigated.
-	  ld  * testsuite/ld-elfcomm/elfcomm.exp: Update regexps to match new output from the linker.
-
-2023-06-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Factor out border-mode help text
-	I noticed that the help texts for tui border-mode and tui active-border-mode
-	are similar.
-
-	Factor out the common part into macro HELP_ATTRIBUTE_MODE.
-
-	Tested on x86_64-linux.
-
-2023-06-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Handle pending ^C after rl_callback_read_char for readline 7
-	In commit faf01aee1d0 ("[gdb] Handle pending ^C after rl_callback_read_char")
-	we handled a problem (described in detail in that commit) for readline >= 8
-	using public readline functions rl_pending_signal and rl_check_signals.
-
-	For readline 7 (note that we require at least readline 7 so there's no need to
-	worry about readline 6), there was no fix though, because rl_check_signals was
-	not available.
-
-	Fix this by instead using the private readline function _rl_signal_handler.
-
-	There is precedent for using private readline variables and functions, but
-	it's something we want to get rid of (PR build/10723).  Nevertheless, I think
-	we can allow this specific instance because it's not used when building
-	against readline >= 8.
-
-	[ In the meanwhile, a fix was committed in the devel branch of the readline
-	repo, contained in commit 8d0c439 ("rollup of changes since readline-8.2"),
-	first proposed here (
-	https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00008.html ). ]
-
-	Tested on x86_64-linux, against system readline 7.0 on openSUSE Leap 15.4.
-
-	PR cli/27813
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27813
-
-2023-06-07  Tom de Vries  <tdevries@suse.de>
-
-	Fix PR30369 regression on aarch64/arm (PR30506)
-	The gdb.dwarf2/dw2-prologue-end-2.exp test was failing for both AArch64 and
-	Arm.
-
-	As Tom pointed out here (https://inbox.sourceware.org/gdb-patches/6663707c-4297-c2f2-a0bd-f3e84fc62aad@suse.de/),
-	there are issues with both the prologue skipper for AArch64 and Arm and an
-	incorrect assumption by the testcase.
-
-	This patch fixes both of AArch64's and Arm's prologue skippers to not skip past
-	the end of a function.  It also incorporates a fix to the testcase so it
-	doesn't assume the prologue skipper will stop at the first instruction of the
-	functions/labels.
-
-	Regression-tested on aarch64-linux/arm-linux Ubuntu 20.04/22.04 and
-	x86_64-linux Ubuntu 20.04.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30506
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-	Co-Authored-By: Luis Machado <luis.machado@arm.com>
-
-2023-06-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add missing wait in gdb.python/tui-window-disabled.exp
-	While working on PR tui/30526, I noticed a bug in test-case
-	gdb.python/tui-window-disabled.exp.
-
-	Here we send "tui enable" to gdb, but don't wait for it to arrive before
-	checking for a window box:
-	...
-	    send_gdb "tui enable\n"
-	    Term::check_box "check for python window" 0 0 80 16
-	...
-
-	Fix this by waiting for the prompt to be issued in TUI before doing the check.
-
-	Tested on x86_64-linux.
-
-2023-06-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix two typos in gdb.python/tui-window-disabled.exp
-	Fix two typos in test-case gdb.python/tui-window-disabled.exp.
-
-2023-06-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle output after prompt in gdb.threads/step-N-all-progress.exp
-	Using "taskset -c 0" I run into this timeout:
-	...
-	(gdb) PASS: gdb.threads/step-N-all-progress.exp: non-stop=on: \
-	  target-non-stop=on: continue to breakpoint: break here
-	next 3^M
-	[New Thread 0x7ffff7dbd6c0 (LWP 10202)]^M
-	50        return 0;^M
-	(gdb) [Thread 0x7ffff7dbd6c0 (LWP 10202) exited]^M
-	FAIL: gdb.threads/step-N-all-progress.exp: non-stop=on: target-non-stop=on: \
-	  next 3 (timeout)
-	...
-
-	The problem is that this test:
-	...
-	    gdb_test "next 3" "return 0;"
-	...
-	expects no output after the prompt.
-
-	Fix this by using -no-prompt-anchor.
-
-	Tested on x86_64-linux.
-
-2023-06-07  Alan Modra  <amodra@gmail.com>
-
-	ld-elf/eh5 remove xfail hppa64
-	Commit cb81e84c72 resulted in an xpass for hppa64-hp-hpux11, but the
-	test still fails on hpp64-linux.  Let's make it pass for hppa64-linux
-	too, by accepting pcrel sdata8 encoding in the augmentation data.
-
-2023-06-07  Luis Machado  <luis.machado@arm.com>
-
-	Fix gdb.base/memtag.exp failure
-	While running this test on an emulator, I noticed we're failing to match the
-	output message when "memory-tag check" is issued with no arguments.  That's
-	because I coded the message using "error" and missed a period at the end.  Other
-	similar messages are issued with error_no_arg.
-
-	This patch changes that call to use error_no_arg.
-
-	Tested on aarch64-linux Ubuntu 20.04/22.04.
-
-2023-06-07  Alan Modra  <amodra@gmail.com>
-
-	_bfd_free_cached_info
-	doc/bfdint.texi and comments in the aout and som code about this
-	function are just wrong, and its name is not very apt.  Better would
-	be _bfd_mostly_destroy, and we certainly should not be saying anything
-	about the possibility of later recreating anything lost by this
-	function.  What's more, if _bfd_free_cached_info is called when
-	creating an archive map to reduce memory usage by throwing away
-	symbols, the target _close_and_cleanup function won't have access to
-	tdata or section bfd_user_data to tidy memory.  This means most of the
-	target _close_and_cleanup function won't do anything, and therefore
-	sometimes will result in memory leaks.
-
-	This patch fixes the documentation problems and moves most of the
-	target _close_and_cleanup code to target _bfd_free_cached_info.
-	Another notable change is that bfd_generic_bfd_free_cached_info is now
-	defined as _bfd_free_cached_info rather than _bfd_bool_bfd_true,
-	ie. the default now frees objalloc memory.
-
-2023-06-07  Alan Modra  <amodra@gmail.com>
-
-	Memory leaks in bfd/vms-lib.c
-		* vms-lib.c (vms_lib_read_index): Free malloc'd memory on error
-		return paths.
-		(vms_write_index, _bfd_vms_lib_write_archive_contents): Likewise.
-
-	bfd/elf.c strtab memory leak
-		* elf.c (_bfd_elf_compute_section_file_positions): Free strtab
-		on set_group_contents failure return path.
-
-2023-06-07  Alan Modra  <amodra@gmail.com>
-
-	objcopy memory leaks after errors
-	These aren't important at all, but tidy them in case they obscure
-	other more important leaks.
-
-		* objcopy (copy_file): Close input bfd after errors.
-
-2023-06-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-06  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: fix cosmetic issues and typos
-	include/
-		* sframe-api.h (sframe_decoder_get_num_fidx): Use extern.
-	libsframe/
-		* sframe-dump.c (dump_sframe_func_with_fres): Fix line length.
-		* sframe.c (sframe_frame_row_entry_copy): Likewise.
-		(sframe_decode_fre_start_address): Use the intended type uint32_t.
-
-2023-06-06  Alan Modra  <amodra@gmail.com>
-
-	Re: loongarch readelf support
-	Commit 89c70cd358b8 apparently results in a bogus "value may be used
-	uninitialized" warning with some combination of compiler and
-	optimisation options.
-
-		* readelf.c (target_specific_reloc_handling): Init value.
-
-2023-06-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-05  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: avoid unnecessary type casts
-	Change the data type of some of the members of the sframe_decoder_ctx
-	and sframe_encoder_ctx data structures to use the applicable data types
-	explicitly. Current implementation in libsframe does type casts, which
-	seem unnecessary.
-
-	libsframe/
-		* libsframe/sframe-impl.h (struct sframe_decoder_ctx): Use
-		applicable data type explicitly.
-		(struct sframe_encoder_ctx): Likewise. Use same style of
-		comments consistently.
-		* libsframe/sframe.c (struct sf_fde_tbl): Define without
-		typedef.
-		(struct sf_fre_tbl): Likewise.
-		(sframe_decode): Remove unnecessary type casts.
-		(sframe_encoder_get_funcdesc_at_index): Likewise.
-		(sframe_encoder_add_fre): Likewise.
-		(sframe_encoder_add_funcdesc): Likewise.
-		(sframe_sort_funcdesc): Likewise.
-		(sframe_encoder_write_sframe): Likewise.
-
-2023-06-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	ELF: Add "#pass" to ld-elf/pr30508.d
-	Add "#pass" to ld-elf/pr30508.d to allow extra segments.
-
-		PR binutils/30508
-		* testsuite/ld-elf/pr30508.d: Add "#pass".
-
-2023-06-05  Tom Tromey  <tromey@adacore.com>
-
-	Use unrelocated_addr in dwarf2_fde
-	This changes dwarf2_fde to use the unrelocated_addr type.  This
-	pointed out a latent bug in dwarf2_frame_cache, where a relocated
-	address is compared to an unrelocated address.
-
-2023-06-05  Tom Tromey  <tromey@adacore.com>
-
-	Use local "text offset" variable in dwarf2_frame_cache
-	A few spots in dwarf2_frame_cache use:
-
-	    cache->per_objfile->objfile->text_section_offset ()
-
-	... and a subsequent patch will add more, so move this into a local
-	variable.
-
-2023-06-05  Tom Tromey  <tromey@adacore.com>
-
-	Constify dwarf2_cie::augmentation
-	I noticed that dwarf2_cie::augmentation could be 'const'.
-
-	Use "unrelocated" terminology in linetable_entry
-	I forgot to convert struct linetable_entry to use the "unrelocated"
-	(as opposed to "raw") terminology.  This patch corrects the oversight.
-
-	Fix comment in address_class
-	enum address_class has a stale comment referring to
-	MSYMBOL_VALUE_RAW_ADDRESS, which no longer exists.  This patch updates
-	the comment.
-
-	Use unrelocated_addr in dwarf_decode_lines
-	This changes dwarf_decode_lines to accept an unrelocated_addr and
-	fixes up the fallout.
-
-	Use unrelocated_addr in the DWARF reader
-	This changes various spots in the DWARF reader to use
-	unrelocated_addr.
-
-	Move unrelocated_addr to common-types.h
-	unrelocated_addr is currently defined in symtab.h, but in order to
-	avoid having to include that in more places, I wanted to move the type
-	elsewhere.  I considered defs.h, but it seemed reasonable to have it
-	next to CORE_ADDR, which is what this patch does.
-
-	Minor cleanup in loclist_describe_location
-	loclist_describe_location already has a per_objfile local variable, so
-	use it consistently.
-
-	Remove baseaddr parameter from dwarf2_record_block_ranges
-	dwarf2_record_block_ranges is only ever called with the text section
-	offset, so this patch removes the parameter entirely.  This makes a
-	subsequent patch a little simpler.
-
-2023-06-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	ELF: Don't warn an empty PT_LOAD with the program headers
-	When rewriting the program headers, don't warn an empty PT_LOAD with the
-	program headers.
-
-	bfd/
-
-		PR binutils/30508
-		* elf.c (rewrite_elf_program_header): Don't warn if an empty
-		PT_LOAD contains the program headers.
-
-	ld/
-
-		PR binutils/30508
-		* testsuite/ld-elf/pr30508.d: New file.
-		* testsuite/ld-elf/pr30508.s: Likewise.
-
-2023-06-05  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: building inferior strings from within GDB
-	History Of This Patch
-	=====================
-
-	This commit aims to address PR gdb/21699.  There have now been a
-	couple of attempts to fix this issue.  Simon originally posted two
-	patches back in 2021:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-July/180894.html
-	  https://sourceware.org/pipermail/gdb-patches/2021-July/180896.html
-
-	Before Pedro then posted a version of his own:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-July/180970.html
-
-	After this the conversation halted.  Then in 2023 I (Andrew) also took
-	a look at this bug and posted two versions:
-
-	  https://sourceware.org/pipermail/gdb-patches/2023-April/198570.html
-	  https://sourceware.org/pipermail/gdb-patches/2023-April/198680.html
-
-	The approach taken in my first patch was pretty similar to what Simon
-	originally posted back in 2021.  My second attempt was only a slight
-	variation on the first.
-
-	Pedro then pointed out his older patch, and so we arrive at this
-	patch.  The GDB changes here are mostly Pedro's work, but updated by
-	me (Andrew), any mistakes are mine.
-
-	The tests here are a combinations of everyone's work, and the commit
-	message is new, but copies bits from everyone's earlier work.
-
-	Problem Description
-	===================
-
-	Bug PR gdb/21699 makes the observation that using $_as_string with
-	GDB's printf can cause GDB to print unexpected data from the
-	inferior.  The reproducer is pretty simple:
-
-	  #include <stddef.h>
-	  static char arena[100];
-
-	  /* Override malloc() so value_coerce_to_target() gets a known
-	     pointer, and we know we"ll see an error if $_as_string() gives
-	     a string that isn't null terminated. */
-	  void
-	  *malloc (size_t size)
-	  {
-	      memset (arena, 'x', sizeof (arena));
-	      if (size > sizeof (arena))
-	          return NULL;
-	      return arena;
-	  }
-
-	  int
-	  main ()
-	  {
-	    return 0;
-	  }
-
-	And then in a GDB session:
-
-	  $ gdb -q test
-	  Reading symbols from /tmp/test...
-	  (gdb) start
-	  Temporary breakpoint 1 at 0x4004c8: file test.c, line 17.
-	  Starting program: /tmp/test
-
-	  Temporary breakpoint 1, main () at test.c:17
-	  17        return 0;
-	  (gdb) printf "%s\n", $_as_string("hello")
-	  "hello"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-	  (gdb) quit
-
-	The problem above is caused by how value_cstring is used within
-	py-value.c, but once we understand the issue then it turns out that
-	value_cstring is used in an unexpected way in many places within GDB.
-
-	Within py-value.c we have a null-terminated C-style string.  We then
-	pass a pointer to this string, along with the length of this
-	string (so not including the null-character) to value_cstring.
-
-	In value_cstring GDB allocates an array value of the given character
-	type, and copies in requested number of characters.  However
-	value_cstring does not add a null-character of its own.  This means
-	that the value created by calling value_cstring is only
-	null-terminated if the null-character is included in the passed in
-	length.  In py-value.c this is not the case, and indeed, in most uses
-	of value_cstring, this is not the case.
-
-	When GDB tries to print one of these strings the value contents are
-	pushed to the inferior, and then read back as a C-style string, that
-	is, GDB reads inferior memory until it finds a null-terminator.  For
-	the py-value.c case, no null-terminator is pushed into the inferior,
-	so GDB will continue reading inferior memory until a null-terminator
-	is found, with unpredictable results.
-
-	Patch Description
-	=================
-
-	The first thing this patch does is better define what the arguments
-	for the two function value_cstring and value_string should represent.
-	The comments in the header file are updated to describe whether the
-	length argument should, or should not, include a null-character.
-	Also, the data argument is changed to type gdb_byte.  The functions as
-	they currently exist will handle wide-characters, in which case more
-	than one 'char' would be needed for each character.  As such using
-	gdb_byte seems to make more sense.
-
-	To avoid adding casts throughout GDB, I've also added an overload that
-	still takes a 'char *', but asserts that the character type being used
-	is of size '1'.
-
-	The value_cstring function is now responsible for adding a null
-	character at the end of the string value it creates.
-
-	However, once we start looking at how value_cstring is used, we
-	realise there's another, related, problem.  Not every language's
-	strings are null terminated.  Fortran and Ada strings, for example,
-	are just an array of characters, GDB already has the function
-	value_string which can be used to create such values.
-
-	Consider this example using current GDB:
-
-	  (gdb) set language ada
-	  (gdb) p $_gdb_setting("arch")
-	  $1 = (97, 117, 116, 111)
-	  (gdb) ptype $
-	  type = array (1 .. 4) of char
-	  (gdb) p $_gdb_maint_setting("test-settings string")
-	  $2 = (0)
-	  (gdb) ptype $
-	  type = array (1 .. 1) of char
-
-	This shows two problems, first, the $_gdb_setting and
-	$_gdb_maint_setting functions are calling value_cstring using the
-	builtin_char character, rather than a language appropriate type.  In
-	the first call, the 'arch' case, the value_cstring call doesn't
-	include the null character, so the returned array only contains the
-	expected characters.  But, in the $_gdb_maint_setting example we do
-	end up including the null-character, even though this is not expected
-	for Ada strings.
-
-	This commit adds a new language method language_defn::value_string,
-	this function takes a pointer and length and creates a language
-	appropriate value that represents the string.  For C, C++, etc this
-	will be a null-terminated string (by calling value_cstring), and for
-	Fortran and Ada this can be a bounded array of characters with no null
-	terminator.  Additionally, this new language_defn::value_string
-	function is responsible for selecting a language appropriate character
-	type.
-
-	After this commit the only calls to value_cstring are from the C
-	expression evaluator and from the default language_defn::value_string.
-
-	And the only calls to value_string are from Fortan, Ada, and ObjectC
-	related code.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=21699
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-06-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix grammar in comments and docs
-	Fix grammar in some comments and docs:
-	- machines that doesn't -> machines that don't
-	- its a -> it's a
-	- its the -> it's the
-	- if does its not -> if it does it's not
-	- one more instructions if doesn't match ->
-	  one more instruction if it doesn't match
-	- it's own -> its own
-	- it's first -> its first
-	- it's pointer -> its pointer
-
-	I also came across "it's performance" in gdb/stubs/*-stub.c in the HP public
-	domain notice, I've left that alone.
-
-	Tested on x86_64-linux.
-
-2023-06-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix more typos
-	Fix some more typos:
-	- distinquish -> distinguish
-	- actualy -> actually
-	- singe -> single
-	- frash -> frame
-	- chid -> child
-	- dissassembler -> disassembler
-	- uninitalized -> uninitialized
-	- precontidion -> precondition
-	- regsiters -> registers
-	- marge -> merge
-	- sate -> state
-	- garanteed -> guaranteed
-	- explictly -> explicitly
-	- prefices (nonstandard plural) -> prefixes
-	- bondary -> boundary
-	- formated -> formatted
-	- ithe -> the
-	- arrav -> array
-	- coresponding -> corresponding
-	- owend -> owned
-	- fials -> fails
-	- diasm -> disasm
-	- ture -> true
-	- tpye -> type
-
-	There's one code change, the name of macro SIG_CODE_BONDARY_FAULT changed to
-	SIG_CODE_BOUNDARY_FAULT.
-
-	Tested on x86_64-linux.
-
-2023-06-05  Alan Modra  <amodra@gmail.com>
-
-	bfd_error_on_input messages
-	bfd_errmsg uses asprintf for bfd_error_on_input, which means we
-	currently leak memory.  Keep a static pointer to the message and free
-	it in various places to minimise the leaks.
-	bfd_set_input_error (NULL, bfd_error_no_error) is a way to free up the
-	last string if that matters.
-
-		* bfd.c (input_error_msg): New static var.
-		(bfd_set_input_error): Free it here..
-		(bfd_init): ..and here..
-		(bfd_errmsg): ..and here.  Use it for asprintf output.
-
-2023-06-05  Alan Modra  <amodra@gmail.com>
-
-	Yet another ecoff fuzzed object fix
-		* ecoff.c (_bfd_ecoff_slurp_symbol_table): Sanity check fdr_ptr
-		csym against remaining space for symbols.  Error on out of bounds
-		fdr_ptr fields.
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: sync oprand char usage between mips and micromips
-	We should try our best to make mips32 using the same
-	oprand char with micromips. So for mips32, we use:
-
-	  ^  is added for 5bit sa oprand for some new DSPr2 instructions:
-		APPEND, PREPEND, PRECR_SRA[_R].PH.W
-		the LSB bit is 11, like RD.
-	  +t is removed for coprocessor 0 destination register.
-		'E' does the samething.
-	  +t is now used for RX oprand for MFTR/MTTR (MT ASE)
-	  ?  is added for sel oprand for MFTR/MTTR (MT ASE)
-		For mips32, the position of sel in MFTR/MTTR is same with mfc0 etc,
-		while for micromips, they are different.
-
-	We also add an extesion format of cftc2/cttc2/mftc2/mfthc2/mttc2/mtthc2:
-		concatenating rs with rx as the index of control or data.
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: add MT ASE support for micromips32
-	These instructions are descripted in MD00768.
-
-	MIPS® Architecture for Programmers
-	Volume IV-f: The MIPS® MT Module for
-	the microMIPS32™ Architecture
-
-	Document Number: MD00768
-	Revision 1.12
-	July 16, 2013
-
-	https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00768-1C-microMIPS32MT-AFP-01.12.pdf
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	Revert "MIPS: add MT ASE support for micromips32"
-	This reverts commit 783a5f46b0583e9ed3a63acd3361009f46de5c17.
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: add MT ASE support for micromips32
-	These instructions are descripted in MD00768.
-
-	MIPS® Architecture for Programmers
-	Volume IV-f: The MIPS® MT Module for
-	the microMIPS32™ Architecture
-
-	Document Number: MD00768
-	Revision 1.12
-	July 16, 2013
-
-	https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00768-1C-microMIPS32MT-AFP-01.12.pdf
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: fix some ld testcases with compiler
-	1. config/default.exp:
-		use -mabi=32 not for -gnuabi64
-		xfail_from_runlist: remove an element and mark it xfail.
-	2. ld-elf/indirect.exp: xfail
-		indirect5a indirect5b indirect6a indirect6b
-		indirect5c indirect5d indirect6c indirect6d
-	3. ld-elf/pr23658-2: mips output is not common
-	4. ld-elf/shared.exp: non-run on mips: Build libpr16496b.so
-	5. ld-elfvers/vers.exp:
-		xfail vers4, vers4b
-		no-run on mips: vers24a, vers24b, vers24c
-	6. ld-gc/gc.exp: add -KPIC into asflags for pr13683, pr14265, pr19161
-	7. ld-mips-elf/mips-elf.exp:
-		use noarch for mips16-local-stubs-1, since it use -mips4
-	8. ld-plugin/lto.exp:
-		no-run on mips/linux: PR ld/12982
-		add -KPIC into asflags for lto-3r, lto-5r, PR ld/19317 (2)
-		xfail PR ld/15323 (4), PR ld/19317 (3)
-	9. ld-plugin/plugin.exp: xfail
-		plugin claimfile lost symbol
-		plugin claimfile replace symbol
-		plugin claimfile replace symbol
-		plugin claimfile lost symbol with source
-		plugin claimfile replace symbol with source
-		plugin claimfile resolve symbol with source
-		plugin 2 with source lib
-		load plugin 2 with source
-		plugin 3 with source lib
-		load plugin 3 with source
-	11. ld-selective/selective.exp: add -fno-PIC, which is needed for -mno-abicalls
-	12. ld-shared/shared.exp: xfail shared (non PIC), shared (PIC main, non PIC so)
-
-	MIPS: fix -gnuabi64 testsuite
-	Test on:
-		mips64-linux-gnuabi64
-		mips64el-linux-gnuabi64
-		mipsisa64-linux-gnuabi64
-		mipsisa64el-linux-gnuabi64
-		mipsisa64r2-linux-gnuabi64
-		mipsisa64r2el-linux-gnuabi64
-		mipsisa64r6-linux-gnuabi64
-		mipsisa64r6el-linux-gnuabi64
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: fix r6 testsuites
-	Introduce
-		run_dump_test_o32l
-		run_dump_test_n32l
-		run_dump_test_n64l
-	Which use `-march=from-abi` for pre-R6 testcases,
-	like micromips/mips16e etc.
-
-	For cases doesn't use run_dump_test_*, we use
-		-mips32r2 for micromips32
-		-mips1 for mips16-32
-		-march=from-abi for testcases to o32/n32/n64 both/all.
-
-	Replace `addi` with `addiu` for some cases for both r6 and pre-R6.
-
-	Introduce some new testcases for r6 with FPXX/FP64.
-	Introduce new testcase: comdat-reloc-r6.
-
-	Skip `default` in mips_arch_list_matching if triple is mipsisa*, due to:
-	  1)it will cannot match mipsr6@*.d: since mips32rN/mips64rN
-	    will always be used, it won't be a problem.
-	  2)some test think -march=mips64rN will alway true for mipsisa64rN,
-	    which is not true now.
-
-	This patch fix testsuite for all r6-default gnu triples:
-	  mipsisa32r6-linux-gnu
-	  mipsisa32r6el-linux-gnu
-	  mips-img-linux-gnu
-	  mipsel-img-linux-gnu
-	  mipsisa64r6-linux-gnu
-	  mipsisa64r6el-linux-gnu
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: default r6 if vendor is img
-	This behavior is used by downstream toolchain since 2014.
-	We also set the default ABI for mips*-img-elf to O32.
-	The previous value is NO_ABI, which is not good default ABI.
-
-	We don't support mips64*-img* due to GCC doesn't support it,
-	and We believe that the multilib should be used for this case.
-
-2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: gas: alter 64 or 32 for mipsisa triples if march is implicit
-	When configure with triples mipsisa[32,64]rN[el,], the march value
-	is pinned to a fix value if not given explicitly. for example
-	   1) mipsisa32r6-linux-gnu -n32 xx.s will complains that:
-	      -march=mips32r6 is not compatible with the selected ABI
-	   2) mipsisa64r2el-linux-gnu -o32 generates objects with 64bit CPU:
-	      ELF 32-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV)
-	They are not good default behaviors: Let's alter the CPU info
-
-	Since we are using these triples as a regular linux distributions,
-	let's alter march according to ABI.
-
-2023-06-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix typos
-	Fix a few typos:
-	- implemention -> implementation
-	- convertion(s) -> conversion(s)
-	- backlashes -> backslashes
-	- signoring -> ignoring
-	- (un)ambigious -> (un)ambiguous
-	- occured -> occurred
-	- hidding -> hiding
-	- temporarilly -> temporarily
-	- immediatelly -> immediately
-	- sillyness -> silliness
-	- similiar -> similar
-	- porkuser -> pokeuser
-	- thats -> that
-	- alway -> always
-	- supercede -> supersede
-	- accomodate -> accommodate
-	- aquire -> acquire
-	- priveleged -> privileged
-	- priviliged -> privileged
-	- priviledges -> privileges
-	- privilige -> privilege
-	- recieve -> receive
-	- (p)refered -> (p)referred
-	- succesfully -> successfully
-	- successfuly -> successfully
-	- responsability -> responsibility
-	- wether -> whether
-	- wich -> which
-	- disasbleable -> disableable
-	- descriminant -> discriminant
-	- construcstor -> constructor
-	- underlaying -> underlying
-	- underyling -> underlying
-	- structureal -> structural
-	- appearences -> appearances
-	- terciarily -> tertiarily
-	- resgisters -> registers
-	- reacheable -> reachable
-	- likelyhood -> likelihood
-	- intepreter -> interpreter
-	- disassemly -> disassembly
-	- covnersion -> conversion
-	- conviently -> conveniently
-	- atttribute -> attribute
-	- struction -> struct
-	- resonable -> reasonable
-	- popupated -> populated
-	- namespaxe -> namespace
-	- intialize -> initialize
-	- identifer(s) -> identifier(s)
-	- expection -> exception
-	- exectuted -> executed
-	- dungerous -> dangerous
-	- dissapear -> disappear
-	- completly -> completely
-	- (inter)changable -> (inter)changeable
-	- beakpoint -> breakpoint
-	- automativ -> automatic
-	- alocating -> allocating
-	- agressive -> aggressive
-	- writting -> writing
-	- reguires -> requires
-	- registed -> registered
-	- recuding -> reducing
-	- opeartor -> operator
-	- ommitted -> omitted
-	- modifing -> modifying
-	- intances -> instances
-	- imbedded -> embedded
-	- gdbaarch -> gdbarch
-	- exection -> execution
-	- direcive -> directive
-	- demanged -> demangled
-	- decidely -> decidedly
-	- argments -> arguments
-	- agrument -> argument
-	- amespace -> namespace
-	- targtet -> target
-	- supress(ed) -> suppress(ed)
-	- startum -> stratum
-	- squence -> sequence
-	- prompty -> prompt
-	- overlow -> overflow
-	- memember -> member
-	- languge -> language
-	- geneate -> generate
-	- funcion -> function
-	- exising -> existing
-	- dinking -> syncing
-	- destroh -> destroy
-	- clenaed -> cleaned
-	- changep -> changedp (name of variable)
-	- arround -> around
-	- aproach -> approach
-	- whould -> would
-	- symobl -> symbol
-	- recuse -> recurse
-	- outter -> outer
-	- freeds -> frees
-	- contex -> context
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix typo in debug message
-	In microblaze_analyze_prologue in gdb/microblaze-tdep.c I came across:
-	...
-		  microblaze_debug ("got addi r1,r1,%d; contnuing\n", imm);
-	...
-
-	Fix this by using "continuing".
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/python] Fix doc string of valpy_const_value
-	In gdb/python/py-value.c, in the value_object_methods array I noticed:
-	...
-	  { "const_value", valpy_const_value, METH_NOARGS,
-	    "Return a 'const' qualied version of the same value." },
-	...
-
-	Fix the qualied -> qualified typo.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/guile] Fix doc string for value-optimized-out?
-	In gdb/guile/scm-value.c, I noticed in the value_functions array initializer:
-	...
-	  { "value-optimized-out?", 1, 0, 0,
-	    as_a_scm_t_subr (gdbscm_value_optimized_out_p),
-	    "\
-	Return #t if the value has been optimizd out." },
-	...
-	There's a typo in the doc string.
-
-	Fix this by using "optimized".
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix help text of show tui tab-width
-	I noticed:
-	...
-	(gdb) help show tui tab-width
-	Show the tab witdh, in characters, for the TUI.
-	This variable controls how many spaces are used to display a tab character.
-	...
-	a typo: "witdh".
-
-	Fix this by using "width" instead.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Fix help text of maint info target-sections
-	I noticed a typo:
-	...
-	(gdb) help maint info target-sections
-	List GDB's internal section table.
-
-	Print the current targets section list.  This is a sub-set of all
-	sections, from all objects currently loaded.  Usually the ALLOC
-	sectoins.
-	...
-
-	Fix this by using "sections".
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Fix help text of maint set ignore-prologue-end-flag
-	I noticed here:
-	...
-	(gdb) help maint set ignore-prologue-end-flag
-	Set if the PROLOGUE-END flag is ignored.
-	The PROLOGUE-END flag from the line-table entries is used to place \
-	  breakpoints past the prologue of functions.  Disabeling its use use forces \
-	  the use of prologue scanners.
-	...
-	a typo in "Disabeling" and accidental word repetition "use use".
-
-	Fix by replacing with "Disabling" and "use".
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/compile] Fix typo in debug message
-	In compile_object_load in gdb/compile/compile-object-load.c I came across:
-	...
-				"Connectiong ELF symbol \"%s\" to the .toc section (%s)\n",
-	...
-
-	Fix this typo by using "Connecting" instead.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdbserver] Fix typo in debug message
-	I noticed in emit_ops_insns in gdbserver/linux-aarch64-low.cc:
-	...
-	  threads_debug_printf ("Adding %d instrucions at %s",
-	...
-
-	Fix the typo by using "instructions" instead.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/ada] Fix argument name misspelling
-	Two functions use the argument name bounds_prefered_p.
-
-	This misspells "preferred".
-
-	Fix this by using bounds_preferred_p instead.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-06-03  Alan Modra  <amodra@gmail.com>
-
-	Re: loongarch readelf support
-	Another segfault.
-
-		* readelf.c (target_specific_reloc_handling): Sanity check
-		loongarch reloc r_offset.
-
-2023-06-03  Alan Modra  <amodra@gmail.com>
-
-	Re: More ecoff sanity checks
-	Yet another fuzzer fix.
-
-		* ecoff.c (ecoff_slurp_symbolic_header <FIX>): Zero counts when
-		associated pointer is zero.
-		(_bfd_ecoff_slurp_symbolic_info): Remove now unnecessary check.
-
-2023-06-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-02  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64] Fix architecture debug version constant thinkos
-	Caught this during emulator testing.
-
-	Fix the constants. They should be 0xa and 0xb as opposed to 0x10 and
-	0x11.  There was a thinko while defining them.
-
-	Obvious enough.
-
-	Tested on aarch64-linux Ubuntu 20.04/22.04.
-
-2023-06-02  Alan Modra  <amodra@gmail.com>
-
-	Re: bfd_close and target free_cached_memory
-	_bfd_delete_bfd can be called early, before the target xvec is set up.
-
-		* opncls.c (_bfd_delete_bfd): Don't segfault on NULL xvec.
-
-2023-06-02  Alan Modra  <amodra@gmail.com>
-
-	Re: More ecoff sanity checks
-	Another fix for fuzzed object files, exhibiting as a segfault in
-	nm.c filter_symbols when accessing a symbol name.
-
-		* ecoff.c (_bfd_ecoff_slurp_symbol_table): Sanity check
-		fdr_ptr->issBase, and tighten sym.iss check.
-
-2023-06-02  Alan Modra  <amodra@gmail.com>
-
-	loongarch readelf support
-	This fixes two buffer overflows found by fuzzers.
-
-		* readelf.c (target_specific_reloc_handling): Sanity check
-		loongarch reloc symbol index.  Don't apply reloc after errors.
-		Reduce translation work of "invalid symbol index" error message.
-
-2023-06-02  Alan Modra  <amodra@gmail.com>
-
-	Minor objcopy optimisation for copy_relocations_in_section
-		* objcopy (copy_relocations_in_section): Don't read the relocs
-		for STRIP_ALL if keep_specific_htab is empty.
-
-2023-06-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-06-01  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: avoid using magic number
-	Define a new constant for the maximum number of stack offsets handled in
-	libsframe, and use it.  Note that the SFrame format does not define such
-	a constant (limit).  This is an implmentation-defined constant in
-	libsframe.
-
-	include/
-		* sframe-api.h (MAX_NUM_STACK_OFFSETS): New definition.
-	libsframe/
-		* sframe.c (sframe_fre_sanity_check_p): Use it.
-
-2023-06-01  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: minor fixups in flip_fre related functions
-	libsframe/
-		* sframe.c (flip_fre_start_address): Remove unnecessary type
-		cast.  Use uint16_t instead of unsigned short.
-		(flip_fre_stack_offsets): Likewise.
-
-2023-06-01  Jim Wilson  <jimw@sifive.com>
-
-	RISC-V: PR30449, Add lga assembler macro support.
-	Originally discussion, https://github.com/riscv/riscv-isa-manual/pull/539
-
-	Added new load address pseudo instruction which is always expanded to GOT
-	access, no matter the .option rvc is set or not.
-
-	gas/
-		PR 30449
-		* config/tc-riscv.c (macro): Add M_LGA support.
-		* testsuite/gas/riscv/la-variants.d: New.
-		* testsuite/gas/riscv/la-variants.s: New.
-	include/
-		PR 30449
-		* opcode/riscv.h (M_LGA): New.
-	opcodes/
-		PR 30449
-		* riscv-opc.c (riscv_opcodes): Add lga support.
-
-2023-06-01  Nelson Chu  <nelson@rivosinc.com>
-
-	[PR ld/22263][PR ld/24676] RISC-V: Avoid spurious R_RISCV_NONE for TLS GD/IE.
-	For TLS GD/IE, add the same condition with the relocate_section in the
-	allocate_dynrelocs, to make sure we won't reserve redundant spaces
-	for dynamic relocations since the conservative estimatation.
-
-	After applying this patch, ld seems no longer generate the spurious
-	R_RISCV_NONE for pr22263-1 test, and the test in pr24676.
-
-	bfd/
-		PR ld/22263
-		PR ld/24676
-		* elfnn-riscv.c (RISCV_TLS_GD_IE_NEED_DYN_RELOC): New defined.
-		Set NEED_RELOC to true if TLS GD/IE needs dynamic relocations,
-		and INDX will be the dynamic index.
-		(allocate_dynrelocs): Don't reserve extra spaces in the rela.got
-		if RISCV_TLS_GD_IE_NEED_DYN_RELOC set need_reloc to false.  This
-		condition needs to be same as relocate_section.
-		(relocate_section): Likewise, use the same condition as
-		allocate_dynrelocs.
-
-2023-06-01  Alan Modra  <amodra@gmail.com>
-
-	Harden PowerPC64 OPD handling against fuzzers
-	PowerPC64 ELFv1 object files should have at most one .opd section, and
-	OPD handling in elf64-ppc.c makes use of this fact by caching some
-	.opd section info in the per-object bfd.tdata.  This was done to avoid
-	another word in the target specific section data.  Of course, fuzzers
-	don't respect the ABI, and even non-malicious users can accidentally
-	create multiple .opd sections.  So it is better to avoid possible
-	buffer overflows and other confusion when OPD handling for a second
-	.opd section references data for the first .opd section, by keeping
-	the data per-section.
-
-	The patch also fixes a memory leak, and a corner case where I think we
-	could hit an assertion in opd_entry_value or read out of bounds in
-	ppc64_elf_branch_reloc doing a final link producing non-ppc64 output.
-	(It's a really rare corner case because not only would you need to be
-	linking ppc64 objects to non-ppc64 output, you'd also need a branch
-	reloc symbol to be defined in a .opd section of a non-ppc64 input.)
-
-		* elf64-ppc.c (is_ppc64_elf): Move earlier in file.
-		(ppc64_elf_branch_reloc): Check symbol bfd before accessing
-		ppc64 elf specific data structures.
-		(struct ppc64_elf_obj_tdata): Move opd union..
-		(struct _ppc64_elf_section_data): ..to here.
-		(ppc64_elf_before_check_relocs): Allow for opd sec_type
-		already set to sec_opd.
-		(ppc64_elf_check_relocs): Only set sec_type to sec_toc when
-		unset.  Error for unexpected toc relocs.
-		(opd_entry_value): Return -1 when non-ppc64 rather than
-		asserting.  Check and set sec_type too.  Adjust for changed
-		location of contents and relocs.
-		(ppc64_elf_relocate_section): Adjust for changed location of
-		cached .opd relocs.
-		(ppc64_elf_free_cached_info): New function.
-		(bfd_elf64_bfd_free_cached_info): Define.
-
-2023-06-01  Alan Modra  <amodra@gmail.com>
-
-	bfd_close and target free_cached_memory
-	bfd_free_cached_info is used in just one place in archive.c, which
-	means most times we reach bfd_close the function isn't called.  On the
-	other hand, if bfd_free_cached_info is called we can't do much on the
-	bfd since it loses all its obj_alloc memory.  This restricts what can
-	be done in a target _close_and_cleanup.  In particular you can't look
-	at sections, which leads to duplication of code in target
-	close_and_cleanup and free_cached_info, eg. elfnn-aarch64.c.
-
-		* opncls.c (_bfd_delete_bfd): Call bfd_free_cached_info.
-		* elfnn-aarch64.c (elfNN_aarch64_close_and_cleanup): Delete.
-		(bfd_elfNN_close_and_cleanup): Don't define.
-		* som.c (som_bfd_free_cached_info): Don't call
-		_bfd_generic_close_and_cleanup here.
-		(som_close_and_cleanup): Define as _bfd_generic_close_and_cleanup.
-
-2023-06-01  Alan Modra  <amodra@gmail.com>
-
-	section_by_target_index memory leak
-	The rs6000 backend can call coff_section_from_bfd_index from its
-	object_p function via coff_set_alignment_hook.  If the object doesn't
-	match, or another target matches too, then the hash table needs to be
-	freed via a cleanup.
-
-		* coffgen.c (coff_object_cleanup): New function.
-		(coff_real_object_p): Return coff_object_cleanup, and call on
-		failure path.  Move declaration to..
-		* libcoff-in.h: ..here.
-		(coff_object_cleanup): Declare.
-		* coff-stgo32.c (go32exe_cleanup): Call coff_object_cleanup.
-		(go32exe_check_format): Adjust assertion.
-		* libcoff.h: Regenerate.
-
-2023-06-01  Alan Modra  <amodra@gmail.com>
-
-	Remove BFD_FAIL in cpu-sh.c
-	The assertions in cpu-sh.c can be triggered by passing bogus values
-	in disassemble_info.mach.  This doesn't cause any bfd misbehaviour.
-
-		* cpu-sh.c (sh_get_arch_from_bfd_mach): Remove BFD_FAIL.
-		(sh_get_arch_up_from_bfd_mach): Likewise.
-
-2023-06-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-31  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: Fix -Wsign-compare warning
-	gprofng/ChangeLog
-	2023-05-25  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30490
-		* src/LoadObject.cc: Fix -Wsign-compare warning.
-
-2023-05-31  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: 29470 The test suite should be made more flexible
-	I add two new targets (check-extra, check-install) for gprofng testing:
-	  `make check` runs sanity testing for gprofng and takes ~30 secunds.
-	  `make check-extra` runs all gprofng tests and takes ~20 minutus.
-	  `make check-install` runs all gprofng tests and uses gprofng installation.
-
-	On aarch64, there are unwind problems in libgp-collector.so.
-	I set ACCT_FILTER to temporarily ignore problematic functions.
-
-	gprofng/ChangeLog
-	2023-05-25  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29470
-		* Makefile.am: Add check-extra, check-install.
-		* Makefile.in: Rebuild
-		* testsuite/config/default.exp: Set the GPROFNG variable.
-		* testsuite/gprofng.display/display.exp: Updated the test list.
-		* testsuite/gprofng.display/jsynprog/Intface.java: Correct copyright.
-		* testsuite/gprofng.display/jsynprog/Launcher.java: Likewise.
-		* testsuite/gprofng.display/jsynprog/Makefile: Likewise.
-		* testsuite/gprofng.display/jsynprog/Routine.java: Likewise.
-		* testsuite/gprofng.display/jsynprog/Sub_Routine.java: Likewise.
-		* testsuite/gprofng.display/jsynprog/cloop.cc: Likewise.
-		* testsuite/gprofng.display/jsynprog/jsynprog.h: Likewise.
-		* testsuite/gprofng.display/jsynprog/jsynprog.java: Correct copyright.
-		Add the -j option to run the selected functions.
-		* testsuite/gprofng.display/synprog/check_results.pl:
-		Remove unused environment variable.
-		* testsuite/gprofng.display/synprog/synprog.c: Updated DEFAULT_COMMAND.
-		* testsuite/lib/Makefile.skel: Apply $(ACCT_FILTER).
-		* testsuite/lib/acct.pm: Ignore errors when $(ACCT_FILTER) is set.
-		* testsuite/lib/display-lib.exp: Add TARGET_FLAGS in make_args.
-
-2023-05-31  Tom Tromey  <tromey@adacore.com>
-
-	Improve MI -dprintf-insert documentation
-	I found the documentation for -dprintf-insert a bit unclear.  It
-	didn't mention the possibility of multiple arguments, and I also
-	noticed that it implied that the format parameter is optional, which
-	it is not.
-
-	While looking into this I also noticed a few comments in the
-	implementation that could also be improved.
-
-	Then, I noticed a repeated call to strlen in a loop condition, so I
-	fixed this up as well.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-31  Tom Tromey  <tromey@adacore.com>
-
-	Pass correct name to @value in gdb.texinfo
-	I noticed a couple instance of this warning when rebuilding the gdb
-	info files:
-
-	    warning: undefined flag: GDB
-
-	The problem is that the wrong argument was passed to @value.  This
-	patch fixes the problem.
-
-2023-05-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/wrap-line.exp with --disable-tui
-	When running the test-case gdb.tui/wrap-line.exp with a build configured with
-	--disable-tui, we run into:
-	...
-	(gdb) PASS: gdb.tui/wrap-line.exp: width-hard-coded: set width 50
-	tui new-layout command-layout cmd 1^M
-	Undefined command: "tui".  Try "help".^M
-	(gdb) ERROR: Undefined command "tui new-layout command-layout cmd 1".
-	...
-
-	Fix this by guarding the command with allow_tui_tests.
-
-	Tested on x86_64-linux.
-
-2023-05-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/pr30056.exp for native-extended-gdbserver
-	When running test-case gdb.tui/pr30056.exp with target board
-	native-extended-gdbserver, I run into:
-	...
-	Quit^[[K^M^[[B(gdb) PASS: gdb.tui/pr30056.exp: Control-C
-	Remote debugging from host ::1, port 38810^M
-	^M(failed reverse-i-search)`xyz': ^M(gdb) target extended-remote \
-	  localhost:2346^[[7GWARNING: Timed out waiting for EOF in server after \
-	  monitor exit
-	...
-
-	This is due to the fact that ^C doesn't abort the reverse-i-search.  This
-	appears to be due to a readline problem.  A PR is open about this: PR
-	cli/30498.
-
-	Add a KFAIL for the PR, and ensure that the isearch is aborted by using ^G,
-	such that we have a responsive prompt to handle the "monitor exit" command
-	that native-extended-gdbserver issues.
-
-	Tested on x86_64-linux.
-
-2023-05-31  Tristan Gingold  <tgingold@free.fr>
-
-	pe/coff - add support for base64 encoded long section names
-	  PR 30444
-	  * coffcode.h (coff_write_object_contents): Handle base64 encoding on PE.  Also check for too large string table.
-	  * coffgen.c (extract_long_section_name): New function extracted from ... (make_a_section_from_file): ... here.  Add support for base64 long section names. (decode_base64): New function.
-
-2023-05-31  Nick Clifton  <nickc@redhat.com>
-
-	Fix printf formating issues in elfxx-loongarch64.c
-
-2023-05-31  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	python, btrace: Fix some small formatting issues.
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix fingerprint for cmd-only layout
-	I added a cmd-only layout:
-	...
-	(gdb) tui new-layout cmd cmd 1
-	...
-	and set it:
-	...
-	(gdb) layout cmd
-	...
-	which gave me the expect result: only the cmd window in the screen.
-
-	However, after going back to layout src:
-	...
-	(gdb) layout src
-	...
-	I got a source window with only one line in it, and the cmd window taking most
-	of the screen.
-
-	I traced this back to tui_set_layout, where for both the old and the new
-	layout the fingerprint of the cmd window in the layout is taken.  If the
-	fingerprint is the same, an effort will be done to preserve the command
-	window size.
-
-	The fingerprint is "VC" for both the old (cmd) and new (src) layouts, which
-	explains the behaviour.
-
-	I think this is essentially a bug in the finger print calculation, and it
-	should be "C" for the cmd layout.
-
-	Fix this by not adding a V or H in the fingerprint if the list size is one.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add support for %V to printf command
-	This commit adds a new format for the printf and dprintf commands:
-	'%V'.  This new format takes any GDB expression and formats it as a
-	string, just as GDB would for a 'print' command, e.g.:
-
-	  (gdb) print a1
-	  $a = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
-	  (gdb) printf "%V\n", a1
-	  {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
-	  (gdb)
-
-	It is also possible to pass the same options to %V as you might pass
-	to the print command, e.g.:
-
-	  (gdb) print -elements 3 -- a1
-	  $4 = {2, 4, 6...}
-	  (gdb) printf "%V[-elements 3]\n", a1
-	  {2, 4, 6...}
-	  (gdb)
-
-	This new feature would effectively replace an existing feature of GDB,
-	the $_as_string builtin convenience function.  However, the
-	$_as_string function has a few problems which this new feature solves:
-
-	1. $_as_string doesn't currently work when the inferior is not
-	running, e.g:
-
-	  (gdb) printf "%s", $_as_string(a1)
-	  You can't do that without a process to debug.
-	  (gdb)
-
-	The reason for this is that $_as_string returns a value object with
-	string type.  When we try to print this we call value_as_address,
-	which ends up trying to push the string into the inferior's address
-	space.
-
-	Clearly we could solve this problem, the string data exists in GDB, so
-	there's no reason why we have to push it into the inferior, but this
-	is an existing problem that would need solving.
-
-	2. $_as_string suffers from the fact that C degrades arrays to
-	pointers, e.g.:
-
-	  (gdb) printf "%s\n", $_as_string(a1)
-	  0x404260 <a1>
-	  (gdb)
-
-	The implementation of $_as_string is passed a gdb.Value object that is
-	a pointer, it doesn't understand that it's actually an array.  Solving
-	this would be harder than issue #1 I think.  The whole array to
-	pointer transformation is part of our expression evaluation.  And in
-	most cases this is exactly what we want.  It's not clear to me how
-	we'd (easily) tell GDB that we didn't want this reduction in _some_
-	cases.  But I'm sure this is solvable if we really wanted to.
-
-	3. $_as_string is a gdb.Function sub-class, and as such is passed
-	gdb.Value objects.  There's no super convenient way to pass formatting
-	options to $_as_string.  By this I mean that the new %V feature
-	supports print formatting options.  Ideally, we might want to add this
-	feature to $_as_string, we might imagine it working something like:
-
-	  (gdb) printf "%s\n", $_as_string(a1,
-	                                   elements = 3,
-	                                   array_indexes = True)
-
-	where the first item is the value to print, while the remaining
-	options are the print formatting options.  However, this relies on
-	Python calling syntax, which isn't something that convenience
-	functions handle.  We could possibly rely on strictly positional
-	arguments, like:
-
-	  (gdb) printf "%s\n", $_as_string(a1, 3, 1)
-
-	But that's clearly terrible as there's far more print formatting
-	options, and if you needed to set the 9th option you'd need to fill in
-	all the previous options.
-
-	And right now, the only way to pass these options to a gdb.Function is
-	to have GDB first convert them all into gdb.Value objects, which is
-	really overkill for what we want.
-
-	The new %V format solves all these problems: the string is computed
-	and printed entirely on the GDB side, we are able to print arrays as
-	actual arrays rather than pointers, and we can pass named format
-	arguments.
-
-	Finally, the $_as_string is sold in the manual as allowing users to
-	print the string representation of flag enums, so given:
-
-	  enum flags
-	    {
-	      FLAG_A = (1 << 0),
-	      FLAG_B = (1 << 1),
-	      FLAG_C = (1 << 1)
-	    };
-
-	  enum flags ff = FLAG_B;
-
-	We can:
-
-	  (gdb) printf "%s\n", $_as_string(ff)
-	  FLAG_B
-
-	This works just fine with %V too:
-
-	  (gdb) printf "%V\n", ff
-	  FLAG_B
-
-	So all functionality of $_as_string is replaced by %V.  I'm not
-	proposing to remove $_as_string, there might be users currently
-	depending on it, but I am proposing that we don't push $_as_string in
-	the documentation.
-
-	As %V is a feature of printf, GDB's dprintf breakpoints naturally gain
-	access to this feature too.  dprintf breakpoints can be operated in
-	three different styles 'gdb' (use GDB's printf), 'call' (call a
-	function in the inferior), or 'agent' (perform the dprintf on the
-	remote).
-
-	The use of '%V' will work just fine when dprintf-style is 'gdb'.
-
-	When dprintf-style is 'call' the format string and arguments are
-	passed to an inferior function (printf by default).  In this case GDB
-	doesn't prevent use of '%V', but the documentation makes it clear that
-	support for '%V' will depend on the inferior function being called.
-
-	I chose this approach because the current implementation doesn't place
-	any restrictions on the format string when operating in 'call' style.
-	That is, the user might already be calling a function that supports
-	custom print format specifiers (maybe including '%V') so, I claim, it
-	would be wrong to block use of '%V' in this case.  The documentation
-	does make it clear that users shouldn't expect this to "just work"
-	though.
-
-	When dprintf-style is 'agent' then GDB does no support the use of
-	'%V' (right now).  This is handled at the point when GDB tries to
-	process the format string and send the dprintf command to the remote,
-	here's an example:
-
-	  Reading symbols from /tmp/hello.x...
-	  (gdb) dprintf call_me, "%V", a1
-	  Dprintf 1 at 0x401152: file /tmp/hello.c, line 8.
-	  (gdb) set sysroot /
-	  (gdb) target remote | gdbserver --once - /tmp/hello.x
-	  Remote debugging using | gdbserver --once - /tmp/hello.x
-	  stdin/stdout redirected
-	  Process /tmp/hello.x created; pid = 3088822
-	  Remote debugging using stdio
-	  Reading symbols from /lib64/ld-linux-x86-64.so.2...
-	  (No debugging symbols found in /lib64/ld-linux-x86-64.so.2)
-	  0x00007ffff7fd3110 in _start () from /lib64/ld-linux-x86-64.so.2
-	  (gdb) set dprintf-style agent
-	  (gdb) c
-	  Continuing.
-	  Unrecognized format specifier 'V' in printf
-	  Command aborted.
-	  (gdb)
-
-	This is exactly how GDB would handle any other invalid format
-	specifier, for example:
-
-	  Reading symbols from /tmp/hello.x...
-	  (gdb) dprintf call_me, "%Q", a1
-	  Dprintf 1 at 0x401152: file /tmp/hello.c, line 8.
-	  (gdb) set sysroot /
-	  (gdb) target remote | gdbserver --once - /tmp/hello.x
-	  Remote debugging using | gdbserver --once - /tmp/hello.x
-	  stdin/stdout redirected
-	  Process /tmp/hello.x created; pid = 3089193
-	  Remote debugging using stdio
-	  Reading symbols from /lib64/ld-linux-x86-64.so.2...
-	  (No debugging symbols found in /lib64/ld-linux-x86-64.so.2)
-	  0x00007ffff7fd3110 in _start () from /lib64/ld-linux-x86-64.so.2
-	  (gdb) set dprintf-style agent
-	  (gdb) c
-	  Continuing.
-	  Unrecognized format specifier 'Q' in printf
-	  Command aborted.
-	  (gdb)
-
-	The error message isn't the greatest, but improving that can be put
-	off for another day I hope.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Acked-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_memory_changed method
-	Same idea as previous patches, but for memory_changed.
-
-	Change-Id: Ic19f20c24d8a6431d4a89c5625e8ef4898f76e82
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_param_changed method
-	Same idea as previous patches, but for command_param_changed.
-
-	Change-Id: I7c2196343423360da05f016f8ffa871c064092bb
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_breakpoint_modified method
-	Same idea as previous patches, but for breakpoint_modified.
-
-	Change-Id: I4f0a9edea912de431e32451d74224b2022a7c328
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_breakpoint_deleted method
-	Same idea as previous patches, but for breakpoint_deleted.
-
-	Change-Id: I59c231ce963491bb1eee1432ee1090138f09e19c
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_breakpoint_created method
-	Same idea as previous patches, but for breakpoint_created.
-
-	Change-Id: I614113c924edc243590018b8fb3bf69cb62215ef
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_tsv_modified method
-	Same idea as previous patches, but for tsv_modified.
-
-	Change-Id: I55454a2386d5450040b3a353909b26f389a43682
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_tsv_deleted method
-	Same idea as previous patches, but for tsv_deleted.
-
-	Change-Id: I71b0502b493da7b6e293bee02aeca98de83d4b75
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_tsv_created method
-	Same idea as previous patches, but for tsv_created.
-
-	Change-Id: I9c30ecfdbd78ca015d613f43a0c0aef6c7eb32b5
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_traceframe_changed method
-	Same idea as previous patches, but for traceframe_changed.
-
-	Change-Id: Ia473f07d70d57b30aca0094d0e0585d7e0d95637
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_about_to_proceed method
-	Same idea as previous patches, but for about_to_proceed.  We only need
-	(and want, as far as the mi_interp implementation is concerned) to
-	notify the interpreter that caused the proceed.
-
-	Change-Id: Id259bca10dbc3d43d46607ff7b95243a9cbe2f89
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_solib_unloaded method
-	Same idea as previous patches, but for solib_unloaded.
-
-	Change-Id: Iad847de93f0b38b5c90679a173d3beeaed7af6c5
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_solib_loaded method
-	Same idea as previous patches, but for solib_loaded
-
-	Change-Id: I85edb0a4b377f4b2c39ffccf31cb75f38bae0f55
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_target_resumed method
-	Same idea as previous patches, but for target_resumed.
-
-	Change-Id: I66fa28d1d41a1f3c4fb0d6a470137d493eac3c8c
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_record_changed method
-	Same idea as previous patches, but for record_changed
-
-	Change-Id: I5eeeacd703af8401c315060514c94e8e6439cc40
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_inferior_removed method
-	Same idea as previous patches, but for inferior_removed.
-
-	Change-Id: I7971840bbbdcfabf77e2ded7584830c9dfdd10d0
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_inferior_disappeared method
-	Same idea as previous patches, but for inferior_disappeared.
-
-	For symmetry with on_inferior_appeared, I named this one
-	on_inferior_disappeared, despite the observer being called
-	inferior_exit.  This is called when detaching an inferior, so I think
-	that calling it "disappeared" is a bit less misleading (the observer
-	should probably be renamed later).
-
-	Change-Id: I372101586bc9454997953c1e540a2a6685f53ef6
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_inferior_appeared method
-	Same idea as previous patches, but for inferior_appeared.
-
-	Change-Id: Ibe4feba34274549a886b1dfb5b3f8d59ae79e1b5
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_inferior_added method
-	Same idea as previous patches, but for inferior_added.
-
-	mi_interp::init avoided using mi_inferior_added, since, as the comment
-	used to say, it would notify all MI interpreters.  Now, it's easy to
-	only notify the new interpreter, so it's possible to just call the
-	on_inferior_added method in mi_interp::init.
-
-	Change-Id: I0eddbd5367217d1c982516982089913019ef309f
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_thread_exited method
-	Same idea as previous patches, but for thread_exited.
-
-	Change-Id: I4be974cbe58cf635453fef503c2d77c82522cbd9
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_new_thread method
-	Same idea as previous patches, but for new_thread.
-
-	Change-Id: Ib70ae3421b736fd69d86c4e7c708bec349aa256c
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_user_selected_context_changed method
-	Same as previous patches, but for user_selected_context_changed.
-
-	Change-Id: I40de15be897671227d4bcf3e747f0fd595f0d5be
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_command_error method
-	Same idea as the previous patches, but for command_error.
-
-	Change-Id: If6098225dd72fad8be13b3023b35bc8bc48efb9d
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_sync_execution_done method
-	Same as previous patches, but for sync_execution_done.  Except that
-	here, we only want to notify the interpreter that is executing the
-	command, not all interpreters.
-
-	Change-Id: I729c719447b5c5f29af65dbf6fed9132e2cd308b
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_no_history method
-	Same as previous patches, but for no_history.
-
-	Change-Id: I06930fe7cb4082138c6c5496c5118fe4951c10da
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_exited method
-	Same as previous patch, but for exited.  Remove the exited observable,
-	since nothing uses it anymore, and we don't have anything coming that
-	will use it.
-
-	Change-Id: I358cbea0159af56752dfee7510d6a86191e722bb
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_signal_exited method
-	Same as previous patch, but for signal_exited.  Remove the signal_exited
-	observable, since nothing uses it anymore, and we don't have anything
-	coming that will use it.
-
-	Change-Id: I0dca1eab76338bf27be755786e3dad3241698b10
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_normal_stop method
-	Same idea as the previous patch, but for the normal_stop event.
-
-	Change-Id: I4fc8ca8a51c63829dea390a2b6ce30b77f9fb863
-
-2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add interp::on_signal_received method
-	Instead of having the interpreter code registering observers for the
-	signal_received observable, add a "signal_received" virtual method to
-	struct interp.  Add a interps_notify_signal_received function that loops
-	over all UIs and calls the signal_received method on the interpreter.
-	Finally, add a notify_signal_received function that calls
-	interps_notify_signal_received and then notifies the observers.  Replace
-	all existing notifications to the signal_received observers with calls
-	to notify_signal_received.
-
-	Before this patch, the CLI and MI code both register a signal_received
-	observer.  These observer go over all UIs, and, for those that have a
-	interpreter of the right kind, print the stop notifiation.
-
-	After this patch, we have just one "loop over all UIs", inside
-	interps_notify_signal_received.  Since the interp::on_signal_received
-	method gets called once for each interpreter, the implementations only
-	need to deal with the current interpreter (the "this" pointer).
-
-	The motivation for this patch comes from a future patch, that makes the
-	amdgpu code register an observer to print a warning after the CLI's
-	signal stop message.  Since the amdgpu and the CLI code both use
-	observers, the order of the two messages is not stable, unless we define
-	the priority using the observer dependency system.  However, the
-	approach of using virtual methods on the interpreters seems like a good
-	change anyway, I think it's more straightforward and simple to
-	understand than the current solution that uses observers.  We are sure
-	that the amdgpu message gets printed after the CLI message, since
-	observers are notified after interpreters.
-
-	Keep the signal_received, even if nothing uses if, because we will be
-	using it in the upcoming amdgpu patch implementing the warning described
-	above.
-
-	Change-Id: I4d8614bb8f6e0717f4bfc2a59abded3702f23ac4
-
-2023-05-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Mention --with/without-system-readline for --configuration
-	Simon reported that the new test-case gdb.tui/pr30056.exp fails with system
-	readline.
-
-	This is because the test-case requires a fix in readline that's present in our
-	in-repo copy of readline, but most likely not in any system readline yet.
-
-	Fix this by:
-	- mentioning --with-system-readline or --without-system-readline in the
-	  configuration string.
-	- adding a new proc with_system_readline that makes this information available
-	  in the testsuite.
-	- using this in test-case gdb.tui/pr30056.exp to declare it unsupported for
-	  --with-system-readline.
-
-	Tested on x86_64-linux.
-
-	Reported-By: Simon Marchi <simon.marchi@efficios.com>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-05-30  Nick Clifton  <nickc@redhat.com>
-
-	Slight wording improvement for the -Ur documentation
-
-	Improve header information displayed with objdump -P for PE binaries.
-	  * od-pe.c (targ_info): New array.
-	  (get_target_specific_info): New function.
-	  (decode_machine_number): Retire.  Use get_target_specific_info instead.
-	  (is_pe_object_magic): Likewise.
-	  (dump_pe_file_header): Display more information.
-	  Rework layout to be similar to that from 'objdump -p'.
-	  Add code to handle larger than normnal AOUT headers.
-
-2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: ld: Add support for linker relaxation.
-	Add ld relax support and testsuits.
-
-	ld/ChangeLog:
-
-		* emultempl/loongarchelf.em: Regenerated.
-		* testsuite/ld-elf/compressed1d.d: Xfail loongarch*-*.
-		* testsuite/ld-elf/pr26936.d: Likewise.
-		* testsuite/ld-loongarch-elf/disas-jirl.d: Regenerated.
-		* testsuite/ld-loongarch-elf/disas-jirl-32.d: Regenerated.
-		* testsuite/ld-loongarch-elf/jmp_op.d: Likewise.
-		* testsuite/ld-loongarch-elf/macro_op.d: Likewise.
-		* testsuite/ld-loongarch-elf/macro_op_32.d: Likewise.
-		* testsuite/ld-loongarch-elf/relax-align.dd: New test.
-		* testsuite/ld-loongarch-elf/relax-align.s: New test.
-		* testsuite/ld-loongarch-elf/relax.exp: New test.
-		* testsuite/ld-loongarch-elf/relax.s: New test.
-		* testsuite/ld-loongarch-elf/uleb128.dd: New test.
-		* testsuite/ld-loongarch-elf/uleb128.s: New test.
-
-2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: gas: Add support for linker relaxation.
-	Add gas -mrelax and -mno-relax option.
-	Add R_LARCH_RELAX reloc for instrction if it can be relaxed.
-	ADD R_LARCH_ALIGN reloc for align pseudo instruction because relax.
-	Add ADD/SUB reloc pair for debug and exception data to calculate symbol
-	substraction because relax.
-
-	gas/ChangeLog:
-
-		* config/tc-loongarch.c:
-		(struct loongarch_cl_insn): New macro_id member.
-		(enum options): New OPTION_RELAX and OPTION_NO_RELAX.
-		(struct option): New mrelax and mno-relax.
-		(md_parse_option): Likewise.
-		(get_internal_label):
-		(loongarch_args_parser_can_match_arg_helper): Generate relax reloc.
-		(move_insn): Set fx_frag and fx_where if exist.
-		(append_fixp_and_insn): Call frag_wane and frag_new for linker relax
-		relocs.
-		(loongarch_assemble_INSNs): New loongarch_cl_insn pointer parameter.
-		(md_assemble): Fix function call.
-		(fix_reloc_insn): Likewise.
-		(md_apply_fix): Generate ADD/SUB reloc pair for debug and exception
-		data.
-		(loongarch_fix_adjustable): Delete.
-		(md_convert_frag): Generate new fix.
-		(loongarch_pre_output_hook): New function.
-		(loongarch_make_nops): Likewise.
-		(loongarch_frag_align_code): Likewise.
-		(loongarch_insert_uleb128_fixes): Likewise.
-		(loongarch_md_finish): Likewise.
-		* config/tc-loongarch.h
-		(md_allow_local_subtract): New macro define.
-		(loongarch_frag_align_code): New declare.
-		(md_do_align): Likewise.
-		(loongarch_fix_adjustable): Delete.
-		(tc_fix_adjustable): New macro define.
-		(TC_FORCE_RELOCATION_SUB_SAME): Likewise.
-		(TC_LINKRELAX_FIXUP): Likewise.
-		(TC_FORCE_RELOCATION_LOCAL): Likewise.
-		(DWARF2_USE_FIXED_ADVANCE_PC): Likewise.
-		(MD_APPLY_SYM_VALUE): Likewise.
-		(tc_symbol_new_hook): New extern.
-		(NOP_OPCODE): Delete.
-		(loongarch_pre_output_hook): New macro define.
-		(md_pre_output_hook): Likewise.
-		(md_finish): Likewise.
-		(loongarch_md_finish): New extern.
-		* testsuite/gas/all/align.d: Mark as unsupported on LoongArch.
-		* testsuite/gas/all/gas.exp: Xfail loongarch*-*.
-		* testsuite/gas/all/relax.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-irp.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-loc0.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-macro-include.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-macro.d: Likewise.
-		* testsuite/gas/elf/dwarf2-11.d: Likewise.
-		* testsuite/gas/elf/dwarf2-15.d: Likewise.
-		* testsuite/gas/elf/dwarf2-16.d: Likewise.
-		* testsuite/gas/elf/dwarf2-17.d: Likewise.
-		* testsuite/gas/elf/dwarf2-18.d: Likewise.
-		* testsuite/gas/elf/dwarf2-19.d: Likewise.
-		* testsuite/gas/elf/dwarf2-5.d: Likewise.
-		* testsuite/gas/elf/ehopt0.d: Likewise.
-		* testsuite/gas/elf/elf.exp: Likewise.
-		* testsuite/gas/elf/section11.d: Likewise.
-		* testsuite/gas/lns/lns.exp: Likewise.
-		* testsuite/gas/loongarch/jmp_op.d: Regenerated.
-		* testsuite/gas/loongarch/li.d: Likewise.
-		* testsuite/gas/loongarch/macro_op.d: Likewise.
-		* testsuite/gas/loongarch/macro_op_32.d: Likewise.
-		* testsuite/gas/loongarch/macro_op_large_abs.d: Likewise.
-		* testsuite/gas/loongarch/macro_op_large_pc.d: Likewise.
-		* testsuite/gas/loongarch/relax_align.d: New test.
-		* testsuite/gas/loongarch/relax_align.s: New test.
-		* testsuite/gas/loongarch/uleb128.d: New test.
-		* testsuite/gas/loongarch/uleb128.s: New test.
-
-2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: binutils: Add support for linker relaxation.
-	Add support for relocs related to relax to readelf.
-
-	binutils/ChangeLog:
-
-		* readelf.c (target_specific_reloc_handling): Handle ULEB128 reloc.
-		(is_32bit_inplace_add_reloc): Handle new reloc.
-		(is_32bit_inplace_sub_reloc): Likewise.
-		(is_64bit_inplace_add_reloc): Likewise.
-		(is_64bit_inplace_sub_reloc): Likewise.
-		(is_16bit_inplace_add_reloc): Likewise.
-		(is_16bit_inplace_sub_reloc): Likewise.
-		(is_8bit_inplace_add_reloc): Likewise.
-		(is_8bit_inplace_sub_reloc): Likewise.
-		(is_6bit_inplace_sub_reloc): Likewise.
-		(is_6bit_inplace_add_reloc): New function.
-		(apply_relocations): Handle new reloc.
-		* testsuite/binutils-all/readelf.exp: Add -mno-relax option
-		for LoongArch.
-
-2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: opcodes: Add support for linker relaxation.
-	Set gas default to enable relax.
-
-	opcodes/ChangeLog:
-
-		* loongarch-opc.c (struct loongarch_ASEs_option): New member relax
-		with the default value 1.
-
-2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: bfd: Add support for linker relaxation.
-	Add relax support and related relocs in bfd.
-
-	bfd/ChangeLog:
-
-		* bfd-in2.h: Add relocs related to relax.
-		* elfnn-loongarch.c (struct loongarch_elf_link_hash_table): New integer
-		pointer (data_segment_phase) to monitor the data segment phase.
-		(loongarch_elf_check_relocs): Swap B21/B26 reloc sequence.
-		(loongarch_elf_adjust_dynamic_symbol): Fix code format.
-		(loongarch_reloc_rewrite_imm_insn): Fix function call.
-		(perform_relocation): Handle new relocs related to relax.
-		(RELOCATE_CALC_PC32_HI20): Fix code format.
-		(RELOCATE_CALC_PC64_HI32): Likewise.
-		(loongarch_elf_relocate_section): Handle new relocs related to relax.
-		(loongarch_relax_delete_bytes): New function.
-		(loongarch_relax_pcala_addi): Likewise.
-		(loongarch_relax_pcala_ld): Likewise.
-		(bfd_elfNN_loongarch_set_data_segment_info): Likewise.
-		(loongarch_relax_align): Likewise.
-		(loongarch_elf_relax_section): Likewise.
-		(bfd_elfNN_bfd_relax_section): New macro define.
-		* elfxx-loongarch.c (reloc_bits): New bfd point parameter.
-		(reloc_bits_b16): Likewise.
-		(reloc_bits_b21): Likewise.
-		(reloc_bits_b26): Likewise.
-		(loongarch_adjust_reloc_bitsfield): Likewise.
-		(reloc_bits_pcrel20_s2): New function.
-		(loongarch_elf_add_sub_reloc): Likewise.
-		(loongarch_elf_add_sub_reloc_uleb128): Likewise.
-		(loongarch_write_unsigned_leb128): New function.
-		* elfxx-loongarch.h (loongarch_adjust_reloc_bitsfield): New bfd point
-		parameter.
-		(bfd_elf32_loongarch_set_data_segment_info): New declare.
-		(bfd_elf64_loongarch_set_data_segment_info): Likewise.
-		(loongarch_write_unsigned_leb128): Likewise.
-		* libbfd.h: Add relocs related to relax.
-		* reloc.c: Add relocs related to relax.
-
-2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: include: Add support for linker relaxation.
-	Add relocs and gas LARCH_opts.relax option.
-
-	include/ChangeLog:
-
-		* elf/loongarch.h: Add relocs.
-		* opcode/loongarch.h: Add LARCH_opts.relax and macro LARCH_NOP.
-
-2023-05-30  Nick Clifton  <nickc@redhat.com>
-
-	Add support for an ARMMAGIC value of 0xa00 to the PE dumper.
-
-2023-05-30  Alan Modra  <amodra@gmail.com>
-
-	arm-pe objdump -P
-	arm-pe looks to be a very old PE implementation, incompatible with
-	current arm-wince-pe.  arm-pe has different relocations and uses
-	ARMMAGIC which has this comment: "I just made this up".  Well, OK, I
-	don't know the history but it was probably before Microsoft "just made
-	up" their constants for ARM windows CE.
-
-	This patch supports objdump -P for arm-pe, and another magic constant
-	that may appear in object files.  (I don't think binutils generates
-	files using ARMV7PEMAGIC aka IMAGE_FILE_MACHINE_ARMNT.)
-
-		* od-pe.c (is_pe_object_magic): Handle IMAGE_FILE_MACHINE_ARMNT
-		and ARMMAGIC.
-
-2023-05-30  Alan Modra  <amodra@gmail.com>
-
-	Define IMAGE_FILE_MACHINE_ARMNT
-	Same value as ARMV7PEMAGIC.
-	https://learn.microsoft.com/en-us/windows/win32/sysinfo/image-file-machine-constants
-
-		* coff/pe.h (IMAGE_FILE_MACHINE_ARMNT): Define.
-
-2023-05-30  Alan Modra  <amodra@gmail.com>
-
-	Don't define COFF_MAGIC
-	This macro was unused apart from aout/encap.h, which has been deleted.
-
-		* config/tc-arm.h (COFF_MAGIC): Don't define.
-		* config/tc-sh.h (COFF_MAGIC): Don't define.
-		* config/tc-z80.h (COFF_MAGIC): Don't define.
-		* config/tc-z8k.h (COFF_MAGIC): Don't define.
-
-2023-05-30  Alan Modra  <amodra@gmail.com>
-
-	Delete include/aout/encap.h
-	This file is unused and as the header comment says, obsolete.
-
-	Regen binutils POTFILES.in
-	for od-pe.c
-
-2023-05-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix linefeed scrolling in tuiterm
-	I came across a bug in the implementation of line feed in tuiterm, and added a
-	unit test that exposes it.
-
-	Before sending the line feed we have:
-	...
-	Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 3):
-	    0 abcdefgh
-	    1 ijklmnop
-	    2 qrstuvwx
-	    3 yz01234
-	...
-	and after it we have:
-	...
-	Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 1):
-	    0 ijklmnop
-	    1 qrstuvwx
-	    2 yz01234
-	    3 yz01234
-	...
-
-	Note how the cursor started at row 3 and after the line feed ended up at
-	row 1, while it should have stayed in row 3.
-
-	Fix this by moving "incr _cur_row -1" one level up in the loop nest in
-	proc _ctl_0x0a.
-
-	Tested on x86_64-linux.
-
-2023-05-29  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/mi: fix ^running record with multiple MI interpreters
-	I stumbled on the mi_proceeded and running_result_record_printed
-	globals, which are shared by all MI interpreter instances (it's unlikely
-	that people use multiple MI interpreter instances, but it's possible).
-	After poking at it, I found this bug:
-
-	1. Start GDB in MI mode
-	2. Add a second MI interpreter with the new-ui command
-	3. Use -exec-run on the second interpreter
-
-	This is the output I get on the first interpreter:
-
-	    =thread-group-added,id="i1"
-	    ~"Reading symbols from a.out...\n"
-	    ~"New UI allocated\n"
-	    (gdb)
-	    =thread-group-started,id="i1",pid="94718"
-	    =thread-created,id="1",group-id="i1"
-	    ^running
-	    *running,thread-id="all"
-
-	And this is the output I get on the second intepreter:
-
-	    =thread-group-added,id="i1"
-	    (gdb)
-	    -exec-run
-	    =thread-group-started,id="i1",pid="94718"
-	    =thread-created,id="1",group-id="i1"
-	    *running,thread-id="all"
-
-	The problem here is that the `^running` reply to the -exec-run command
-	is printed on the wrong UI.  It is printed on the first one, it should
-	be printed on the second (the one on which we sent the -exec-run).
-
-	What happens under the hood is that captured_mi_execute_command, while
-	executing a command for the second intepreter, clears the
-	running_result_record_printed and mi_proceeded globals.
-	mi_about_to_proceed then sets mi_proceeded.  Then, mi_on_resume_1 gets
-	called for the first intepreter first.  Since the
-
-	    !running_result_record_printed && mi_proceeded
-
-	condition is true, it prints a ^running, and sets
-	running_result_record_printed.  When mi_on_resume_1 gets called for the
-	second interpreter, running_result_record_printed is already set, so
-	^running is not printed there.
-
-	It took me a while to understand the relationship between these two
-	variables.  I think that in the end, this is what we want to track:
-
-	 1. When executing an MI command, take note if that command causes a
-	    "proceed".  This is done in mi_about_to_proceed.
-	 2. In mi_on_resume_1, if the command indeed caused a "proceed", we want
-	    to output a ^running record.  And we want to remember that we did,
-	    because...
-	 3. Back in captured_mi_execute_command, if we did not output a
-	    ^running, we want to output a ^done.
-
-	Moving those two variables to the mi_interp struture appears to fix it.
-	Only for the interpreter doing the -exec-run command does the
-	running_result_record_printed flag get cleared, and therefore only or
-	that one does the ^running record get printed.
-
-	Add a new test for this, that does pretty much what the reproducer above
-	shows.  Without the fix, the test fails because
-	mi_send_resuming_command_raw never sees the ^running record.
-
-	Change-Id: I63ea30e6cb61a8e1dd5ef03377e6003381a9209b
-	Tested-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
-
-2023-05-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-28  Tom de Vries  <tdevries@suse.de>
-
-	[readline] Fix double free in _rl_scxt_dispose
-	Consider the following scenario.  We start gdb in TUI mode:
-	...
-	$ gdb -q -tui
-	...
-	and type ^R which gives us the reverse-isearch prompt in the cmd window:
-	...
-	(reverse-i-search)`':
-	...
-	and then type "foo", right-arrow-key, and ^C.
-
-	In TUI mode, gdb uses a custom rl_getc_function tui_getc.
-
-	When pressing the right-arrow-key, tui_getc:
-	- attempts to scroll the TUI src window, without any effect, and
-	- returns 0.
-
-	The intention of returning 0 is mentioned here in tui_dispatch_ctrl_char:
-	...
-	  /* We intercepted the control character, so return 0 (which readline
-	     will interpret as a no-op).  */
-	  return 0;
-	...
-
-	However, after this 0 is returned by the rl_read_key () call in
-	_rl_search_getchar, _rl_read_mbstring is called, which incorrectly interprets
-	0 as the first part of an utf-8 multibyte char, and tries to read the next
-	char.
-
-	In this state, the ^C takes effect and we run into a double free because
-	_rl_isearch_cleanup is called twice.
-
-	Both these issues need fixing independently, though after fixing the first we
-	no longer trigger the second.
-
-	The first issue is caused by the subtle difference between:
-	- a char array containing 0 chars, which is zero-terminated, and
-	- a char array containing 1 char, which is zero.
-
-	In mbrtowc terms, this is the difference between:
-	...
-	  mbrtowc (&wc, "", 0, &ps);
-	...
-	which returns -2, and:
-	...
-	  mbrtowc (&wc, "", 1, &ps);
-	...
-	which returns 0.
-
-	Note that _rl_read_mbstring calls _rl_get_char_len without passing it an
-	explicit length parameter, and consequently it cannot distinguish between the
-	two, and defaults to the "0 chars" choice.
-
-	Note that the same problem doesn't exist in _rl_read_mbchar.
-
-	Fix this by defaulting to the "1 char" choice in _rl_get_char_len:
-	...
-	-  if (_rl_utf8locale && l > 0 && UTF8_SINGLEBYTE(*src))
-	+  if (_rl_utf8locale && l >= 0 && UTF8_SINGLEBYTE(*src))
-	...
-
-	The second problem happens when the call to _rl_search_getchar in
-	_rl_isearch_callback returns.  At that point _rl_isearch_cleanup has already
-	been called from the signal handler, but we proceed regardless, using a cxt
-	pointer that has been freed.
-
-	Fix this by checking for "RL_ISSTATE (RL_STATE_ISEARCH)" after the call to
-	_rl_search_getchar:
-	...
-	   c = _rl_search_getchar (cxt);
-	+  if (!RL_ISSTATE (RL_STATE_ISEARCH))
-	+    return 1;
-	...
-
-	Tested on x86_64-linux.
-
-	Approved-By: Chet Ramey <chet.ramey@case.edu>
-
-	PR tui/30056
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30056
-
-2023-05-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-27  Nelson Chu  <nelson@nelson.ba.rivosinc.com>
-
-	[PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE.
-	Lots of targets already fixed the TEXTREL problem for TLS in PIE.
-
-	* For PR ld/25694,
-	In the check_reloc, refer to spare and loongarch, they don't need to reserve
-	any local dynamic reloc for TLS LE in pie/pde, and similar to other targets.
-	So it seems like riscv was too conservative to estimate the TLS LE before.
-	Just break and don't goto static_reloc for TLS LE in pie/pde can fix the
-	TEXTREL problem.
-
-	* For PR ld/22263,
-	The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port.
-	So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems
-	also the right way to do the same thing for risc-v.
-
-	On risc-v, fixes
-	FAIL: Build pr22263-1
-
-	RISC-V haven't supported the TLS transitions, so will need the same fix (use
-	bfd_link_dll) in the future.
-
-	bfd/
-		PR ld/22263
-		PR ld/25694
-		* elfnn-riscv.c (riscv_elf_check_relocs): Replace bfd_link_pic with
-		bfd_link_dll for TLS IE.  Don't need to reserve the local dynamic
-		relocation for TLS LE in pie/pde, and report error in pic just like
-		before.
-		(riscv_elf_relocate_section): For TLS GD/IE, use bfd_link_dll rather
-		than !bfd_link_pic in determining the dynamic symbol index.  Avoid
-		the index of -1.
-
-2023-05-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-26  Nick Clifton  <nickc@redhat.com>
-
-	Enhance objdump's --private option so that it can display the contents of PE format files.
-	  * od-pe.c: New file: Dumps fields in PE format headers.
-	  * configure.ac (od_vectors): Add objdump_private_desc_pe for PE format targets. (od_files): Add od-pe for PE format targets.
-	  * configure: Regenerate.
-	  * Makefile.am (CFILES): Add od-pe.c (EXTRA_objdump_SOURCE): Likewise.
-	  * Makefile.in: Generate.
-	  * NEWS: Mention the new feature.
-	  * doc/binutils.texi: Document the new support.
-	  * objdump.c (wide_output): Change from local to global.
-	  * objdump.h (wide_output): Prototype. (objdump_private_desc_pe): Prototype.
-	  * testsuite/binutils-all/objdump.exp: Add a test of the new feature.
-
-2023-05-26  Andreas Schwab  <schwab@linux-m68k.org>
-
-	Remove duplicate definition
-		* coff/pe.h (IMAGE_FILE_MACHINE_AMD64): Remove duplicate
-		definition.  Alphabetize.
-
-2023-05-26  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fix disassembler build after 1a3b4f90bc5f
-	In commit 1a3b4f90bc5f ("x86: convert two pointers to (indexing)
-	integers") I neglected the fact that compilers may warn about comparing
-	ptrdiff_t (signed long) with size_t (unsigned long) values. Since just
-	before we've checked that the value is positive, simply add a cast
-	(despite my dislike for casts).
-
-2023-05-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add test-case gdb.tui/color-prompt.exp
-	Add a test-case that sets a prompt with color in TUI.
-
-	The line containing the prompt is shown by get_line_with_attrs as follows:
-	...
-	<fg:31>(gdb) <fg:default>
-	...
-
-	The 31 means red, but only for foreground colors, for background colors 41
-	means red.
-
-	Make this more readable by using color names for both foreground and
-	background, such that we have instead:
-	....
-	<fg:red>(gdb) <fg:default>
-	...
-
-	Tested on x86_64-linux.
-
-2023-05-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add invisible and blinking attributes in tuiterm
-	I noticed curses using the invisible and blinking attributes.
-
-	Add these in tuiterm.
-
-	Tested on x86_64-linux.
-
-2023-05-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix reverse attribute in tuiterm
-	I noticed in proc Term::_csi_m arguments that while parameters 7 and 27 are
-	supposed to set the reverse attribute to 1 and 0, in fact it's set to 1 in
-	both cases:
-	...
-	 		    7 {
-				set _attrs(reverse) 1
-			    }
-	  ...
-			    27 {
-				set _attrs(reverse) 1
-	 		    }
-	...
-
-	Fix this and add a regression test in gdb.tui/tuiterm.exp.
-
-	Tested on x86_64-linux.
-
-2023-05-26  Jan Beulich  <jbeulich@suse.com>
-
-	iamcu: suppress tests which can't possibly work
-	With neither --32 nor --64 passed to gas, advanced features like AVX
-	aren't available without explicitly enabling them.
-
-	x86-64: improve gas diagnostic when no 32-bit target is configured
-	Make this similar to --64 and --x32: Check whether a suitable target
-	exists.
-
-	x86-64: conditionalize tests using --32
-	Using this option doesn't really work when no support for any 32-bit
-	target was configured in (as is the case for at least cloudabi and
-	rdos).
-
-	x86: split gas testsuite .exp file
-	The set of 32-bit-only and 64-bit-only tests has grown quite large. In
-	particular when one's after only the results for the 64-bit set, having
-	them live in a separate .exp file is easier / faster.
-
-	x86: convert two pointers to (indexing) integers
-	This in particular reduces the number of pointers to non-const that we
-	have (and that could potentially be used for undue modification of
-	state). As a result, fetch_code()'s 2nd parameter can then also become
-	pointer-to-const.
-
-2023-05-26  Jan Beulich  <jbeulich@suse.com>
-
-	x86: disassembling over-long insns
-	The present way of dealing with them - misusing MAX_MNEM_SIZE, which has
-	nothing to do with insn length - leads to inconsistent results. Since we
-	allow for up to MAX_CODE_LENGTH - 1 prefix bytes (which then could be
-	followed by another MAX_CODE_LENGTH "normal" insn bytes until we're done
-	decoding), size the_buffer[] accordingly.
-
-	Move struct dis_private down to be able to use MAX_CODE_LENGTH without
-	moving its #define. While doing this also alter the order to have the
-	potentially large array last.
-
-2023-05-26  Jan Beulich  <jbeulich@suse.com>
-
-	x86: use fixed-width type for codep and friends
-	This first of all removes a dependency on bfd_byte and unsigned char
-	being the same types. It further eliminates the need to mask by 0xff
-	when fetching values (which wasn't done fully consistently anyway),
-	improving code legibility.
-
-	While there, where possible add const.
-
-2023-05-26  Jan Beulich  <jbeulich@suse.com>
-
-	x86: figure braces aren't really part of mnemonics
-	Instead they're separators for pseudo-prefixes. Don't insert them in
-	mnemonic_chars[], handling them explicitly in parse_insn() instead. Note
-	that this eliminates the need for another separator after a pseudo-
-	prefix. While maybe not overly interesting for a following real
-	mnemonic, I view this as quite desirable between multiple successive
-	pseudo-prefixes (bringing things in line with the other use of figure
-	braces in AVX512's zeroing-masking).
-
-	Drop the unused is_mnemonic_char() at this occasion.
-
-2023-05-26  Jan Beulich  <jbeulich@suse.com>
-
-	x86: de-duplicate operand_special_chars[] wrt extra_symbol_chars[]
-	Having to add characters to both arrays can easily lead to oversights.
-	Consuming extra_symbol_chars[] when populating operand_chars[] also
-	allows to drop two special cases in md_begin().
-
-	Constify operand_special_chars[] at this occasion.
-
-2023-05-26  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe/doc: minor improvements for readability
-	libsframe/
-		* sframe-spec.texi: Cosmetic fixes.
-
-2023-05-26  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: revisit sframe_find_fre API
-	Inspite of implementing a rather simple functionality, this function was
-	relatively difficult to follow, and maintain.  Some changes are done now
-	to address that - refactor the function and use better names to make it
-	more readable.
-
-	The changes to the implementation do not cause any change in the
-	contract of the API.
-
-	libsframe/
-	        * sframe.c (sframe_fre_get_end_ip_offset): to here...
-	        (sframe_find_fre): Refactor some bits from...
-
-2023-05-26  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: use const char * consistently for immutable FRE buffers
-	libsframe/
-	        * sframe.c (sframe_decode_fre): Use const char * datatype when
-		handling buffer containing the FREs.
-		(sframe_fre_get_end_ip_offset): Likewise.
-		(sframe_find_fre): Likewise.
-		(sframe_decoder_get_fre): Likewise.
-
-	libsframe: use uint8_t data type for FRE info related stubs
-	libsframe/
-		* sframe.c: Use uint8_t for FRE offset count and FRE offset
-		size.  Use uint8_t for FRE info word as well.
-
-2023-05-26  Alan Modra  <amodra@gmail.com>
-
-	PR22263 ld test
-	A number of targets that I test regularly fail the "Build pr22263-1"
-	test for various reasons.
-
-	arm-linux-gnueabi: "undefined reference to `__aeabi_read_tp'"
-	ia64-linux-gnu: "Explicit stops are ignored in auto mode"
-	m68k-linux-gnu: "undefined reference to `__m68k_read_tp'"
-	microblaze-linux-gnu: "undefined reference to `__tls_get_addr'"
-	nios2-linux-gnu, s390-linux-gnu and sh4-linux-gnu have a tprel reloc in .got
-	riscv64-linux-gnu has a dynamic relocation in text
-
-	So only riscv really fails the pr.  The rest fail due to test issues
-	or lack of a linker optimisation.  Lack of an optimisation isn't
-	really a fail, but it's worth keeping the test to ensure those
-	optimisations don't regress.  The xfail targets may not be an
-	exhaustive list.  This just tidies test results for those for which I
-	have cross compilers installed.
-
-		PR 22263
-		* testsuite/ld-elf/tls.exp: Split pr22263 test into two parts,
-		one to check for -z text errors, the other to check tprel
-		linker optimisation.  Supply needed symbols and assembler flags.
-		xfail the linker optimisation on targets known to fail.
-
-2023-05-26  Tom Tromey  <tom@tromey.com>
-
-	Make MI commands const-correct
-	I've had this patch for a while now and figured I'd update it and send
-	it.  It changes MI commands to use a "const char * const" for their
-	argv parameter.
-
-	Regression tested on x86-64 Fedora 36.
-
-	Acked-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-05-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-25  Ciaran Woodward  <ciaranwoodward@xmos.com>
-
-	Fix scoped_value_mark not working with empty value chain
-	The scoped_value_mark helper class was setting its internal
-	mark value to NULL to indicate that the value chain had already
-	been freed to mark.
-
-	However, value_mark() also returns NULL if the value chain is
-	empty at the time of call.
-
-	This lead to the situation that if the value chain was empty
-	at the time the scoped_value_mark was created, the class
-	would not correctly clean up the state when it was destroyed,
-	because it believed it had already been freed.
-
-	I noticed this because I was setting a watchpoint very early
-	in my debug session, and it was becoming a software watchpoint
-	rather than hardware. Running any command that called evaluate()
-	beforehand (such as 'x 0') would mean that a hardware watchpoint
-	was correctly used. After some careful examination of the
-	differences in execution, I noticed that values were being freed
-	later in the 'bad case', which lead me to notice the issue with
-	scoped_value_mark.
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove breakpoint_pointer_iterator
-	Remove the breakpoint_pointer_iterator layer.  Adjust all users of
-	all_breakpoints and all_tracepoints to use references instead of
-	pointers.
-
-	Change-Id: I376826f812117cee1e6b199c384a10376973af5d
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: make filtered_iterator::operator* return the same thing as underlying iterator
-	This is the same idea as the previous patch, but for filtered_iterator.
-	Without this patch, I would see this when applying the patch that
-	removes reference_to_pointer_iterator from breakpoint_range:
-
-	      CXX    breakpoint.o
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c: In function ‘void download_tracepoint_locations()’:
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:11007:41: error: cannot allocate an object of abstract type ‘breakpoint’
-	    11007 |   for (breakpoint &b : all_tracepoints ())
-	          |                                         ^
-	    In file included from /home/smarchi/src/binutils-gdb/gdb/gdbthread.h:26,
-	                     from /home/smarchi/src/binutils-gdb/gdb/infrun.h:21,
-	                     from /home/smarchi/src/binutils-gdb/gdb/gdbarch.h:28,
-	                     from /home/smarchi/src/binutils-gdb/gdb/arch-utils.h:23,
-	                     from /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:21:
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.h:619:8: note:   because the following virtual functions are pure within ‘breakpoint’:
-	      619 | struct breakpoint : public intrusive_list_node<breakpoint>
-	          |        ^~~~~~~~~~
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:250:1: note:     ‘virtual breakpoint::~breakpoint()’
-	      250 | breakpoint::~breakpoint ()
-	          | ^~~~~~~~~~
-
-	Change-Id: I05285ff27d21cb0ab80cba392ec4e959167e3cd7
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: make basic_safe_iterator::operator* return the same thing as underlying iterator
-	Using the following patch that removes the reference_to_pointer_iterator
-	from breakpoint_range, I would get:
-
-	      CXX    breakpoint.o
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c: In function ‘void breakpoint_program_space_exit(program_space*)’:
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:3030:46: error: cannot allocate an object of abstract type ‘breakpoint’
-	     3030 |   for (breakpoint &b : all_breakpoints_safe ())
-	          |                                              ^
-	    In file included from /home/smarchi/src/binutils-gdb/gdb/gdbthread.h:26,
-	                     from /home/smarchi/src/binutils-gdb/gdb/infrun.h:21,
-	                     from /home/smarchi/src/binutils-gdb/gdb/gdbarch.h:28,
-	                     from /home/smarchi/src/binutils-gdb/gdb/arch-utils.h:23,
-	                     from /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:21:
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.h:619:8: note:   because the following virtual functions are pure within ‘breakpoint’:
-	      619 | struct breakpoint : public intrusive_list_node<breakpoint>
-	          |        ^~~~~~~~~~
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:250:1: note:     ‘virtual breakpoint::~breakpoint()’
-	      250 | breakpoint::~breakpoint ()
-	          | ^~~~~~~~~~
-
-	This is because the operator* method of the basic_safe_iterator iterator
-	wrapper returns a value_type.  So, even if the method of the underlying
-	iterator (breakpoint_iterator, an intrusive_list iterator) returns a
-	`breakpoint &`, the method of the wrapper returns a `breakpoint`.
-
-	I think it would make sense for iterator wrappers such as
-	basic_safe_iterator to return the exact same thing as the iterator they
-	wrap.  At least, it fixes my problem.
-
-	Change-Id: Ibbcd390ac03d2fb6ae4854923750c8d7c3c04e8a
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: link breakpoints with intrusive_list
-	Change-Id: I043d8d6f3dd864d80d5088f6ffc2c098337249ea
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove bp_location_pointer_iterator
-	Remove the bp_location_pointer_iterator layer.  Adjust all users of
-	breakpoint::locations to use references instead of pointers.
-
-	Change-Id: Iceed34f5e0f5790a9cf44736aa658be6d1ba1afa
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: use intrusive_list for breakpoint locations
-	Replace the hand-maintained linked lists of breakpoint locations with
-	and intrusive list.
-
-	 - Remove breakpoint::loc, add breakpoint::m_locations.
-
-	 - Add methods for the various manipulations that need to be done on the
-	   location list, while maintaining reasonably good encapsulation.
-
-	 - bp_location currently has a default constructor because of one use
-	   in hoist_existing_locations.  hoist_existing_locations now returns a
-	   bp_location_list, and doesn't need the default-constructor
-	   bp_location anymore, so remove the bp_location default constructor.
-
-	 - I needed to add a call to clear_locations in delete_breakpoint to
-	   avoid a use-after-free.
-
-	 - Add a breakpoint::last_loc method, for use in
-	   set_breakpoint_condition.
-
-	bp_location_range uses reference_to_pointer_iterator, so that all
-	existing callers of breakpoint::locations don't need to change right
-	now.  It will be removed in the next patch.
-
-	The rest of the changes are to adapt the call sites to use the new
-	methods, of breakpoint::locations, rather than breakpoint::loc directly.
-
-	Change-Id: I25f7ee3d66a4e914a0540589ac414b3b820b6e70
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: add missing increment/decrement operators to reference_to_pointer_iterator
-	Using the following patch, I would get this build failure:
-
-	      CXX    breakpoint.o
-	    In file included from /usr/include/c++/13.1.1/bits/stl_algobase.h:66,
-	                     from /usr/include/c++/13.1.1/bits/hashtable_policy.h:36,
-	                     from /usr/include/c++/13.1.1/bits/hashtable.h:35,
-	                     from /usr/include/c++/13.1.1/bits/unordered_map.h:33,
-	                     from /usr/include/c++/13.1.1/unordered_map:41,
-	                     from /usr/include/c++/13.1.1/functional:63,
-	                     from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/ptid.h:35,
-	                     from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/common-defs.h:206,
-	                     from /home/smarchi/src/binutils-gdb/gdb/defs.h:26,
-	                     from /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:20:
-	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h: In instantiation of ‘constexpr void std::__advance(_BidirectionalIterator&, _Distance, bidirectional_iterator_tag) [with _BidirectionalIterator = reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >; _Distance = long int]’:
-	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h:224:21:   required from ‘constexpr void std::advance(_InputIterator&, _Distance) [with _InputIterator = reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >; _Distance = long int]’
-	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h:237:19:   required from ‘constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type) [with _InputIterator = reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >; typename iterator_traits<_Iter>::difference_type = long int]’
-	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:1073:19:   required from here
-	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h:179:11: error: no match for ‘operator--’ (operand type is ‘reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >’)
-	      179 |           --__i;
-	          |           ^~~~~
-
-	This points out that while intrusive_list_iterator has an operator--,
-	the reference_to_pointer_iterator wrapper does not.  I'm not to sure why
-	the compiler chooses the overload of __advance that accepts a
-	_BidirectionalIterator, given that reference_to_pointer_iterator can't
-	be decremented, but adding those operators seems like the right thing to
-	do in any case, for completeness.
-
-	Change-Id: I8e2044b6734fadf0f21093047cf35bb7080dbdc3
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add breakpoint::first_loc methods
-	Add convenience first_loc methods to struct breakpoint (const and
-	non-const overloads).  A subsequent patch changes the list of locations
-	to be an intrusive_list and makes the actual list private, so these
-	spots would need to change from:
-
-	    b->loc
-
-	to something ugly like:
-
-	    *b->locations ().begin ()
-
-	That would make the code much heavier and not readable.  There is a
-	surprisingly big number of places that access the first location of
-	breakpoints.  Whether this is correct, or these spots fail to consider
-	the possibility of multi-location breakpoints, I don't know.  But
-	anyhow, I think that using this instead:
-
-	 b->first_loc ()
-
-	conveys the intention better than the other two forms.
-
-	Change-Id: Ibbefe3e4ca6cdfe570351fe7e2725f2ce11d1e95
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add breakpoint "has locations" methods
-	Add three convenience methods to struct breakpoint:
-
-	 - has_locations: returns true if the breakpoint has at least one
-	   location
-	 - has_single_location: returns true if the breakpoint has exactly one
-	   location
-	 - has_multiple_locations: returns true if the breakpoint has more than
-	   one location
-
-	A subsequent patch changes the list of breakpoints to be an
-	intrusive_list, so all these spots would need to change.  But in any
-	case, I think that this:
-
-	  if (b->has_multiple_locations ())
-
-	conveys the intention better than:
-
-	  if (b->loc != nullptr && b->loc->next != nullptr)
-
-	Change-Id: Ib18c3605fd35d425ef9df82cb7aacff1606c6747
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: constify breakpoint::print_it parameter
-	The print_it method itself is const.  In a subsequent patch, the
-	locations that come out of a const breakpoint will be const as well.  It
-	will therefore be needed to make the last_loc output parameter const as
-	well.  Make that change now to reduce the size of the following patches.
-
-	Change-Id: I7ed962950bc9582646e31e2e42beca2a1c9c5105
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make some breakpoint methods use `this`
-	Some implementations of breakpoint::check_status and
-	breakpoint::print_it do this:
-
-	    struct breakpoint *b = bs->breakpoint_at;
-
-	bs->breakpoint_at is always the same as `this` (we can get convinced by
-	looking at the call sites of check_status and print_it), so it would
-	just be clearer to access fields through `this` instead.
-
-	Change-Id: Ic542a64fcd88e31ae2aad6feff1da278c7086891
-	Reviewed-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: get gdbarch from syscall_catchpoint instead of location
-	I noticed some methods of syscall_catchpoint doing this:
-
-	  struct gdbarch *gdbarch = loc->owner->gdbarch;
-
-	`loc` is the list of locations of this catchpoint.  Logically, the owner
-	the locations are this catchpoint.  So this just ends up getting
-	this->gdbarch.  Remove the unnecessary indirection through the loc.
-
-	syscall_catchpoint::print_recreate does something slightly different,
-	getting its arch from the loc:
-
-	  struct gdbarch *gdbarch = loc->gdbarch;
-
-	I suppose it's always going to be the same arch, so get it from the
-	catchpoint there too.
-
-	Change-Id: I6f6a6f8e0cd7cfb754cecfb6249e71ec12ba4855
-	Reviewed-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-25  Alan Modra  <amodra@gmail.com>
-
-	PR29189, dlltool delaylibs corrupt float/double arguments
-		PR 29189
-		* dlltool.c (i386_x64_trampoline): Save and restore xmm0-5.  Make
-		use of parameter save area for integer arg regs.  Comment.
-
-2023-05-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-24  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: add support for references to checked_static_cast
-	Add a checked_static_cast overload that works with references.  A bad
-	dynamic cast with references throws std::bad_cast, it would be possible
-	to implement the new overload based on that, but it seemed simpler to
-	just piggy back off the existing function.
-
-	I found some potential uses of this new overload in amd-dbgapi-target.c,
-	update them to illustrate the use of the new overload.  To build
-	amd-dbgapi-target.c, on needs the amd-dbgapi library, which I don't
-	expect many people to have.  But I have it, and it builds fine here.  I
-	did test the new overload by making a purposely bad cast and it did
-	catch it.
-
-	Change-Id: Id6b6a7db09fe3b4aa43cddb60575ff5f46761e96
-	Reviewed-By: Lancelot SIX <lsix@lancelotsix.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix race in gdb.server/multi-ui-errors.exp
-	After this commit:
-
-	  commit ed32754a8c7919feffc6ddb66ff1c532e4a4d1cd
-	  Date:   Thu Mar 9 10:45:03 2023 +0100
-
-	      [gdb/testsuite] Fix gdb.server/multi-ui-errors.exp for remote target
-
-	I noticed the occasional failure in gdb.server/multi-ui-errors.exp,
-	which looked like this:
-
-	  (gdb) PASS: gdb.server/multi-ui-errors.exp: interact with GDB's main UI
-	  interrupt
-	  (gdb)
-	  Program received signal SIGINT, Interrupt.
-	  0x00007ffff7d501e7 in nanosleep () from /lib64/libc.so.6
-	  FAIL: gdb.server/multi-ui-errors.exp: interrupt (timeout)
-	  PASS: gdb.server/multi-ui-errors.exp: interrupt arrived
-	  p server_pid
-	  $1 = 718174
-	  (gdb) PASS: gdb.server/multi-ui-errors.exp: p server_pid
-
-	This is triggered by this code in gdb.server/multi-ui-errors.exp:
-
-	    gdb_test "interrupt"
-
-	    gdb_test_multiple "" "interrupt arrived" {
-		-re "Program received signal SIGINT, Interrupt\\.\r\n" {
-		    pass $gdb_test_name
-		}
-	    }
-
-	The problem here is that the first interrupt will trigger the prompt
-	to be printed, and then, after some time the inferior will be
-	interrupted.
-
-	However the default pattern for gdb_test includes a '$' end anchor.
-	If expect sees the prompt with nothing following it then everything is
-	fine, and the test passes.
-
-	However, if the interrupt is quick and so what expect sees is this:
-
-	  (gdb)
-	  Program received signal SIGINT, Interrupt.
-	  0x00007ffff7d501e7 in nanosleep () from /lib64/libc.so.6
-
-	In this case the end anchor means that the gdb_test fails to match,
-	and eventually times out.
-
-	Fix this by passing -no-prompt-anchor to gdb_test.
-
-	Reviewed-By: Tom de Vries <tdevries@suse.de>
-
-2023-05-24  Matti Puputti  <matti.puputti@intel.com>
-
-	gdb, infcmd: Support jump command with same line in multiple symtabs
-	If a header file defining a static function is included in multiple source
-	files, each calling the function, and GDB is asked to jump to a line inside
-	that function, there would be multiple locations matching the target.  The
-	solution in this commit is to select the location in the current symtab.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-24  Tom Tromey  <tromey@adacore.com>
-
-	Add "args" and "env" parameters to DAP launch request
-	This patch augments the DAP launch request with some optional new
-	parameters that let the client control the command-line arguments and
-	the environment of the inferior.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-24  Tom Tromey  <tromey@adacore.com>
-
-	Add attributes and methods to gdb.Inferior
-	This adds two new attributes and three new methods to gdb.Inferior.
-
-	The attributes let Python code see the command-line arguments and the
-	name of "main".  Argument setting is also supported.
-
-	The methods let Python code manipulate the inferior's environment
-	variables.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-24  Andreas Schwab  <schwab@suse.de>
-
-	Remove accidentally added file
-
-2023-05-24  Alan Modra  <amodra@gmail.com>
-
-	Don't optimise bfd_seek to same position
-	It's not worth avoiding an fseek to the same position, and can cause
-	problems if the linker's output file (which is opened "w+") is read,
-	because that can result in writing, reading, then writing again.
-
-	POSIX.1-2017 (IEEE Std 1003.1) says of fopen:
-	"When a file is opened with update mode ('+' as the second or third
-	character in the mode argument), both input and output may be
-	performed on the associated stream. However, the application shall
-	ensure that output is not directly followed by input without an
-	intervening call to fflush() or to a file positioning function
-	(fseek(), fsetpos(), or rewind()), and input is not directly followed
-	by output without an intervening call to a file positioning function,
-	unless the input operation encounters end-of-file."
-
-		* bfdio.c (bfd_seek): Always call iovec->bseek.
-
-2023-05-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-23  Tom Tromey  <tromey@adacore.com>
-
-	Handle DAP evaluate request without a frame ID
-	DAP specifies that if an evaluate request does not have a frameID
-	parameter, then the expression is evaluated in the global scope.
-
-2023-05-23  Tom Tromey  <tromey@adacore.com>
-
-	Add global_context parameter to gdb.parse_and_eval
-	This adds a 'global_context' parse_and_eval to gdb.parse_and_eval.
-	This lets users request a parse that is done at "global scope".
-
-	I considered letting callers pass in a block instead, with None
-	meaning "global" -- but then there didn't seem to be a clean way to
-	express the default for this parameter.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-23  Tom Tromey  <tromey@adacore.com>
-
-	Add flags to parse_and_eval
-	This adds a flags parameter to parse_and_eval.
-
-	Add PARSER_LEAVE_BLOCK_ALONE flag
-	This adds a PARSER_LEAVE_BLOCK_ALONE flag, and changes the parse API
-	to respect it.  This flag lets callers avoid any change to the
-	passed-in block and expression PC, letting them specify the context
-	exactly.  In particular, now nullptr can be used to indicate that the
-	parse should not examine any local variables.
-
-	Add PARSER_DEBUG flag
-	This adds a new PARSER_DEBUG constant and changes the parser code to
-	use it.  This lets us make the 'parser_debug' global 'static'.
-
-	Rearrange parser_state
-	This patch mildly rearranges parser_state, moving all the bool fields
-	together.
-
-	Boolify parser_state::comma_terminates
-	parser_state::comma_terminates ought to be boolean, and changing it
-	does not require any other changes.
-
-	Simplify parser_state constructor
-	This simplifies the parser_state constructor by having it accept a
-	parser_flags parameter.
-
-	Introduce and use parser flags
-	This patch adds a new parser_flags type and changes the parser APIs to
-	use it rather than a collection of 'int' and 'bool'.  More flags will
-	be added in subsquent patches.
-
-	Move innermost_block_tracker to expression.h
-	I think parser-defs.h should hold declarations that can be used by
-	parser implementations, whereas expression.h should hold declarations
-	that are used by code that wants to call a parser.  Following this
-	logic, this patch moves innermost_block_tracker to expression.h.
-
-	Avoid forward declaration in parse.c
-	This minorly rearranges parse.c to avoid the need for a forward
-	declaration.
-
-	Implement DAP loadedSources request
-	This implements the DAP loadedSources request, using gdb.execute_mi to
-	avoid having to write another custom Python API.
-
-2023-05-23  Tom Tromey  <tromey@adacore.com>
-
-	Implement gdb.execute_mi
-	This adds a new Python function, gdb.execute_mi, that can be used to
-	invoke an MI command but get the output as a Python object, rather
-	than a string.  This is done by implementing a new ui_out subclass
-	that builds a Python object.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11688
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-23  Tom Tromey  <tromey@adacore.com>
-
-	Add second mi_parse constructor
-	This adds a second mi_parse constructor.  This constructor takes a
-	command name and vector of arguments, and does not do any escape
-	processing.  This also changes mi_parse::args to handle parse objects
-	created this new way.
-
-	Introduce mi_parse helper methods
-	This introduces some helper methods for mi_parse that handle some of
-	the details of parsing.  This approach lets us reuse them later.
-
-	Introduce "static constructor" for mi_parse
-	Change the mi_parse function to be a static method of mi_parse.  This
-	lets us remove the 'set_args' setter function.
-
-	Change mi_parse_argv to a method
-	This changes mi_parse_argv to be a method of mi_parse.  This is just a
-	minor cleanup.
-
-	Use accessor for mi_parse::args
-	This changes mi_parse::args to be a private member, retrieved via
-	accessor.  It also changes this member to be a std::string.  This
-	makes it simpler for a subsequent patch to implement different
-	behavior for argument parsing.
-
-	Use member initializers in mi_parse
-	This changes mi_parse to use member initializers rather than a
-	constructor.  This is easier to follow.
-
-	Use field_signed from Python MI commands
-	If an MI command written in Python includes a number in its output,
-	currently that is simply emitted as a string.  However, it's
-	convenient for a later patch if these are emitted using field_signed.
-	This does not make a difference to ordinary MI clients.
-
-2023-05-23  Aaron Merey  <amerey@redhat.com>
-
-	gdb/cli-out.c: clear_current_line shouldn't trigger pagination prompt
-	clear_current_line overwrites the current line with chars_per_line
-	blank spaces.  Printing the final space triggers a condition in
-	pager_file::puts that causes lines_printed to be incremented.  If
-	lines_printed becomes greater than or equal to lines_allowed, the
-	pagination prompt will appear if enabled.
-
-	In this case the prompt is unnecessary since after printing the final
-	space clear_current_line immediately moves the cursor to the beginning
-	of the line with '\r'.  A new line isn't actually started, so the prompt
-	ends up being spurious.
-
-	Additionally it's possible for gdb to crash during this pagination prompt.
-	Answering the prompt with 'q' throws an exception intended to bring gdb
-	back to the main event loop.  But since commit 0fea10f32746,
-	clear_current_line may be called under the progress_update destructor.
-	The exception will try to propagate through the destructor, causing an abort.
-
-	To fix this, pagination is disabled for the duration for clear_current_line.
-	clear_current_line is also renamed to clear_progress_notify to help
-	indicate that it is a special purpose function intended for use with
-	do_progress_notify.
-
-	Acked-by: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-23  Michael Matz  <matz@suse.de>
-
-	PR30437 aarch64: make RELA relocs idempotent
-	normally RELA relocs in BFD should not consider the contents of the
-	relocated place.  The aarch64 psABI is even stricter, it specifies
-	(section 5.7.16) that all RELA relocs _must_ be idempotent.
-
-	Since the inception of the aarch64 BFD backend all the relocs have a
-	non-zero src_mask, and hence break this invariant.  It's normally not
-	a very visible problem as one can see it only when the relocated place
-	already contains a non-zero value, which usually only happens sometimes
-	when using 'ld -r' (or as in the testcase when jumping through hoops to
-	generate the relocations).  Or with alternative toolchains that do encode
-	stuff in the relocated places with the assumption that a relocation
-	to that place ignores whatever is there (as they can according to
-	the psABI).
-
-	Golang is such a toolchain and https://github.com/golang/go/issues/39927
-	is ultimately caused by this problem: the testcase testGCData failing
-	is caused by the garbage collection data-structure to describe a type
-	containing pointers to be wrong.  It's wrong because a field that's
-	supposed to contain a file-relative offset (to some gcbits) has a
-	relocation applied and that relocation has an addend which also is
-	already part of the go-produced object file (so the addend is
-	implicitely applied twice).
-
-	bfd/
-		PR ld/30437
-		* elfnn-aarch64.c (elfNN_aarch64_howto_table): Clear src_mask
-		if all relocation descriptors.
-
-	ld/
-		* testsuite/ld-aarch64/rela-idempotent.s: New testcase.
-		* testsuite/ld-aarch64/rela-idempotent.d: New.
-		* testsuite/ld-aarch64/aarch64-elf.exp: Run it.
-
-2023-05-23  Nick Clifton  <nickc@redhat.com>
-
-	Updated Swedish translation for the opcodes directory
-
-2023-05-23  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: change hardcoded assembly in gdb.arch/disp-step-insn-reloc.exp
-	When testing gdb.arch/disp-step-insn-reloc.exp with clang in an x86_64
-	machine, the compiled test case would segfault when returning from
-	the function can_relocate_call, with a suggestion of a broken stack.
-	The example assembly in the commment was the following:
-
-	   f:
-	     MOV $1, %[ok]
-	     JMP end
-	   set_point0:
-	     CALL f ; tracepoint here.
-	   end:
-
-	And the segmentation fault happening at the final "ret" instruction of
-	can_relocate_call.  Looking at the disassembled version of the later
-	half of the important function, we see:
-
-	Clang version (f starting at 11a4):
-	  00000000000011ae <set_point0>:
-	      11ae:       e8 f1 ff ff ff          callq  11a4 <can_relocate_call+0x14>
-	      11b3:       89 45 fc                mov    %eax,-0x4(%rbp)
-	      11b6:       83 7d fc 01             cmpl   $0x1,-0x4(%rbp)
-	      11ba:       0f 85 0a 00 00 00       jne    11ca <set_point0+0x1c>
-	      11c0:       e8 5b 00 00 00          callq  1220 <pass>
-	      11c5:       e9 05 00 00 00          jmpq   11cf <set_point0+0x21>
-	      11ca:       e8 61 00 00 00          callq  1230 <fail>
-	      11cf:       48 83 c4 10             add    $0x10,%rsp
-	      11d3:       5d                      pop    %rbp
-	      11d4:       c3                      retq
-	      11d5:       66 66 2e 0f 1f 84 00    data16 nopw %cs:0x0(%rax,%rax,1)
-	      11dc:       00 00 00 00
-
-	gcc version (f starting at 401125):
-	  000000000040112c <set_point0>:
-	    40112c:       e8 f4 ff ff ff          callq  401125 <can_relocate_call+0x11>
-	    401131:       89 45 fc                mov    %eax,-0x4(%rbp)
-	    401134:       83 7d fc 01             cmpl   $0x1,-0x4(%rbp)
-	    401138:       75 07                   jne    401141 <set_point0+0x15>
-	    40113a:       e8 c7 ff ff ff          callq  401106 <pass>
-	    40113f:       eb 05                   jmp    401146 <set_point0+0x1a>
-	    401141:       e8 c7 ff ff ff          callq  40110d <fail>
-	    401146:       90                      nop
-	    401147:       c9                      leaveq
-	    401148:       c3                      retq
-
-	The epilogue of set_point0 (11cf for clang, 401146 for gcc) is the main
-	difference: GCC's version uses the leaveq instruction, which resets rsp
-	based on rbp, while clang adds the same constant to rsp that it
-	subtracted in the prologue.  Clang fails because the return address that
-	is added by the "call f" instruction isn't accounted for.
-
-	This commit fixes that by adding a return instruction to f, which leaves
-	the rsp as the compilers would expect.
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-23  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: address quoted-symbol related FIXMEs
-	If in a "word ptr <address>" or alike construct the "ptr" part is
-	double-quoted, it shouldn't be recognized as the specific keyword we're
-	looking for (just like we don't recognize double-quoted operator or
-	register names anymore). Be careful though to tell closing from opening
-	double-quotes, as a quoted symbol may follow right afterwards.
-
-2023-05-23  Jan Beulich  <jbeulich@suse.com>
-
-	x86: don't recognize quoted symbol names as registers or operators
-	The concept of quoted symbols names was introduced pretty late. Utilize
-	it to allow access to symbols with names matching that of a register (or,
-	in Intel syntax, also an identifier-like operator).
-
-	This is primarily to aid gcc when generating Intel syntax output; see
-	their bug target/53929.
-
-2023-05-23  Zhang, Jun  <jun.zhang@intel.com>
-
-	Support Intel FRED LKGS
-	gas/ChangeLog:
-
-		* NEWS: Support Intel FRED LKGS.
-		* config/tc-i386.c: Add fred lkgs
-		* doc/c-i386.texi: Document .fred, .lkgs.
-		* testsuite/gas/i386/i386.exp: Add FRED LKGS tests
-		* testsuite/gas/i386/x86-64-fred-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-fred.d: Ditto.
-		* testsuite/gas/i386/x86-64-fred.s: Ditto.
-		* testsuite/gas/i386/x86-64-lkgs-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-lkgs-inval.l: Ditto.
-		* testsuite/gas/i386/x86-64-lkgs-inval.s: Ditto.
-		* testsuite/gas/i386/x86-64-lkgs.d: Ditto.
-		* testsuite/gas/i386/x86-64-lkgs.s: Ditto.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c: New entry for fred, lkgs.
-		* i386-gen.c: Add CPU_FRED CPU_LKGS.
-		* i386-init.h : Regenerated.
-		* i386-mnem.h : Regenerated.
-		* i386-opc.h: Add fred, lkgs.
-		* i386-opc.tbl: Add FRED, LKGS instructions.
-		* i386-tbl.h: Regenerated.
-
-2023-05-23  liuhongt  <hongtao.liu@intel.com>
-
-	Revert "Support Intel FRED LKGS"
-	This reverts commit e5a497fe38e0ab19e16bdd9e4b4ed5e4d0056478.
-
-2023-05-23  Zhang, Jun  <jun.zhang@intel.com>
-
-	Support Intel FRED LKGS
-	gas/ChangeLog:
-
-	        * NEWS: Support Intel FRED LKGS.
-	        * config/tc-i386.c: Add fred lkgs
-	        * doc/c-i386.texi: Document .fred, .lkgs.
-	        * testsuite/gas/i386/i386.exp: Add FRED LKGS tests
-	        * testsuite/gas/i386/x86-64-fred-intel.d: Ditto.
-	        * testsuite/gas/i386/x86-64-fred.d: Ditto.
-	        * testsuite/gas/i386/x86-64-fred.s: Ditto.
-	        * testsuite/gas/i386/x86-64-lkgs-intel.d: Ditto.
-	        * testsuite/gas/i386/x86-64-lkgs-inval.l: Ditto.
-	        * testsuite/gas/i386/x86-64-lkgs-inval.s: Ditto.
-	        * testsuite/gas/i386/x86-64-lkgs.d: Ditto.
-	        * testsuite/gas/i386/x86-64-lkgs.s: Ditto.
-
-	opcodes/ChangeLog:
-
-	        * i386-dis.c: New entry for fred, lkgs.
-	        * i386-gen.c: Add CPU_FRED CPU_LKGS.
-	        * i386-init.h : Regenerated.
-	        * i386-mnem.h : Regenerated.
-	        * i386-opc.h: Add fred, lkgs.
-	        * i386-opc.tbl: Add FRED, LKGS instructions.
-	        * i386-tbl.h: Regenerated.
-
-2023-05-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix buglet in tui_update_variables
-	I noticed a buglet in tui_update_variables:
-	...
-	   entry = translate (tui_border_kind, tui_border_kind_translate_lrcorner);
-	   if (tui_border_lrcorner != (chtype) entry->value)
-	    {
-	      tui_border_lrcorner = (entry->value < 0) ? ACS_LRCORNER : entry->value;
-	...
-
-	When assigning the new value to tui_border_lrcorner, an entry->value of -1 is
-	taken into account, but not when comparing to the current value of
-	tui_border_lrcorner.
-
-	Fix this by introducing:
-	...
-	  int val = (entry->value < 0) ? ACS_LRCORNER : entry->value;
-	...
-	and using this in both comparison and assignment.
-
-	Tested on x86_64-linux.
-
-2023-05-22  Tom Tromey  <tromey@adacore.com>
-
-	Remove some FIXME comments from DAP
-	I recently added a 'dap' component to bugzilla, and I filed a few bugs
-	there.  This patch removes the corresponding FIXME comments.
-
-	A few such comments still exist.  In at least one case, I have a fix
-	I'll be submitting eventually; in others I think I need to do a bit of
-	investigation to properly file a bug report.
-
-2023-05-22  Richard Bunt  <richard.bunt@linaro.org>
-
-	gdb: add Richard Bunt to gdb/MAINTAINERS
-
-2023-05-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add Term::get_line_with_attrs
-	Add a new proc Term::get_line_with_attrs, similar to Term::get_line, that
-	annotates a tuiterm line with the active attributes.
-
-	For instance, the line representing the TUI status window with attribute mode
-	standout looks like this with Term::get_line:
-	...
-	exec No process In: ... L??   PC: ??
-	...
-	but like this with Term::get_line_with_attrs:
-	...
-	<reverse:1>exec No process In: ... L??   PC: ?? <reverse:0>
-	...
-
-	Also add Term::dump_screen_with_attrs, a Term::dump_screen variant that uses
-	Term::get_line_with_attrs instead of Term::get_line.
-
-	Tested by re-running the TUI test-cases (gdb.tui/*.exp and gdb.python/tui*.exp)
-	on x86_64-linux.
-
-2023-05-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Factor out Term::_reset_attrs
-	Factor out new proc Term::_reset_attrs.
-
-	Tested by re-running the TUI test-cases (gdb.tui/*.exp and gdb.python/tui*.exp)
-	on x86_64-linux.
-
-2023-05-22  Alan Modra  <amodra@gmail.com>
-
-	Re: readelf: Support SHT_RELR/DT_RELR for -r
-	Revert value of DT_ENCODING to as it was before commit a7fd118627, and
-	adjust readelf.
-
-	include/
-		* elf/common.h (DT_ENCODING): Set back to 32.
-	binutils/
-		* readelf.c (struct filedata): Don't size dynamic_info array
-		using DT_ENCODING.
-
-2023-05-22  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 report number of stub iterations
-	As a developer it is sometimes useful to know how many times stubs
-	have been resized.  Report the count for users too, in ld --stats.
-
-2023-05-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-20  Alan Modra  <amodra@gmail.com>
-
-	Re: Bug 23686, two segment faults in nm
-	The fix for pr23686 had a hole in the reloc address sanity check,
-	the calculation could overflow.  Note that stabsize is known to be a
-	non-zero multiple of 12 so stabsize - 4 can't underflow.
-
-		PR 23686
-		* syms.c (_bfd_stab_section_find_nearest_line): Correct
-		r->address sanity check.
-
-2023-05-20  Alan Modra  <amodra@gmail.com>
-
-	coffcode.h handle_COMDAT tidy
-	I started down the path of attempting to fix
-	https://sourceware.org/pipermail/binutils/2023-April/127263.html but
-	decided after a while that I didn't want to mess with this code..
-
-	This patch is a just a few things that I thought worth doing, the main
-	one being reporting of errors up the call chain.  The while loop to
-	for loop change is shamelessly stolen from Oleg.
-
-		* coffcode.h (handle_COMDAT): Return bool.  Make sec_flags a
-		flagword*, and adjust to suit.  Replace while loop with for
-		loop.  Check isym.n_numaux before reading aux entries.  Alloc
-		coff_comdat_info and name in one call to bfd_alloc.  Remove
-		goto breakloop.
-		(styp_to_sec_flags): Adjust handle_COMDAT call.
-
-2023-05-20  Alan Modra  <amodra@gmail.com>
-
-	tic54x set_arch_mach
-	The tic54x backend provides its own coff_set_arch_mach, but wants to
-	use the standard coff_set_section_contents.  BFD_JUMP_TABLE_WRITE
-	defines both of these functions, so the code also provides a wrapper
-	for coff_set_section_contents.  This is all quite OK, but I was on a
-	mission to remove unnecessary declarations in coffcode.h, and on
-	deleting the one for coff_set_arch_mach ran into a warning about the
-	function being unused.  I could have kept that declaration with its
-	ATTRIBUTE_UNUSED or written "static bool ATTRIBUTE_UNUSED" on the
-	definition but the latter is not usual and looks odd to me.  So I
-	had a closer look at tic54x_set_arch_mach and decided the function is
-	very likely wrong to allow bfd_arch_unknown.  Thus the backend should
-	be using the standard coff_set_arch_mach.
-
-		* coff-tic54x.c: Use BFD_JUMP_TABLE_WRITE (coff) in target vecs.
-		(tic54x_coff_set_arch_mach): Delete.
-		(tic54x_set_section_contents): Delete.
-		* coffcode.h: Delete unnecessary forward declarations.
-
-2023-05-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-19  Tom Tromey  <tromey@adacore.com>
-
-	Update documentation for Python Frame.older and Frame.newer
-	I noticed that Frame.older and Frame.newer don't document that they
-	return None at the ends of the stack.  This patch updates the
-	documentation, and also fixes a somewhat related typo in a comment
-	that I noticed while digging into this.
-
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	ld: drop stray blank from ld.texi
-	At least older makeinfo complains about it. Also fix an apparent typo
-	while touching that line.
-
-2023-05-19  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb: fix post-hook execution for remote targets
-	Commit b5661ff2 ("gdb: fix possible use-after-free when
-	executing commands") attempted to fix possible use-after-free
-	in case command redefines itself.
-
-	Commit 37e5833d ("gdb: fix command lookup in execute_command ()")
-	updated the previous fix to handle subcommands as well by using the
-	original command string to lookup the command again after its execution.
-
-	This fixed the test in gdb.base/define.exp but it turned out that it
-	does not work (at least) for "target remote" and "target extended-remote".
-
-	The problem is that the command buffer P passed to execute_command ()
-	gets overwritten in dont_repeat () while executing "target remote"
-	command itself:
-
-		#0  dont_repeat () at top.c:822
-		#1  0x000055555730982a in target_preopen (from_tty=1) at target.c:2483
-		#2  0x000055555711e911 in remote_target::open_1 (name=0x55555881c7fe ":1234", from_tty=1, extended_p=0)
-		    at remote.c:5946
-		#3  0x000055555711d577 in remote_target::open (name=0x55555881c7fe ":1234", from_tty=1) at remote.c:5272
-		#4  0x00005555573062f2 in open_target (args=0x55555881c7fe ":1234", from_tty=1, command=0x5555589d0490)
-		    at target.c:853
-		#5  0x0000555556ad22fa in cmd_func (cmd=0x5555589d0490, args=0x55555881c7fe ":1234", from_tty=1)
-		    at cli/cli-decode.c:2737
-		#6  0x00005555573487fd in execute_command (p=0x55555881c802 "4", from_tty=1) at top.c:688
-
-	Therefore the second call to lookup_cmd () at line 697 fails to find
-	command because the original command string is gone.
-
-	This commit addresses this particular problem by creating a *copy* of
-	original command string for the sole purpose of using it after command
-	execution to lookup the command again. It may not be the most efficient
-	way but it's safer given that command buffer is shared and overwritten
-	in hard-to-foresee situations.
-
-	Tested on x86_64-linux.
-
-	PR 30249
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30249
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-05-19  Richard Bunt  <richard.bunt@linaro.org>
-
-	gdb: Remove redundant frame switching
-	547ce8f00b fixed an issue where dynamic types were not being resolved
-	correctly prior to printing a value. The same issue was discovered when
-	printing the value using mi-mode, which was not covered by the fix.
-	Porting the fix to the mi-mode code path resolved the issue.
-
-	However, it was discovered that a later patch series, ending
-	2fc3b8a4cb8, independently fixed the issue in both the cli- and mi-mode
-	code paths, making the original fix unneeded.
-
-	This commit removes this extra frame switch and adds test coverage for
-	the mi-mode scenario to protect against any future divergence in this
-	area.
-
-	GDB built with GCC 11.
-
-	No test suite regressions detected. Compilers: GCC 12.1.0, ACfL 22.1,
-	Intel 22.1; Platforms: x86_64, aarch64.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-05-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: safety checks in skip_prologue_using_sal
-	While working on the previous patch I reverted this commit:
-
-	  commit e86e87f77fd5d8afb3e714f1d9e09e0ff5b4e6ff
-	  Date:   Tue Nov 28 16:23:32 2006 +0000
-
-	          * symtab.c (find_pc_sect_line): Do not return a line before
-	            the start of a symtab.
-
-	When I re-ran the testsuite I saw some GDB crashes in the tests:
-
-	  gdb.dwarf2/dw2-line-number-zero.exp
-	  gdb.dwarf2/dw2-lines.exp
-	  gdb.dwarf2/dw2-vendor-extended-opcode.exp
-
-	GDB was reading beyond the end of an array in the function
-	skip_prologue_using_sal.
-
-	Now, without the above commit reverted I don't believe that this
-	should ever happen.  Reverting the above commit effectively breaks
-	GDB's symtab_and_line lookup, we try to find a result for an address,
-	and return the wrong symtab and line-table.  In
-	skip_prologue_using_sal we then walk the line table looking for an
-	appropriate entry, except we never find one, and GDB just keeps going,
-	wandering off the end of the array.
-
-	However, I think adding extra protection to prevent walking off the
-	end of the array is pretty cheap, and if something does go wrong in
-	the future then this should prevent a random crash.
-
-	Obviously, I have no reproducer for this, as I said, I don't think
-	this should impact GDB at all, this is just adding a little extra
-	caution.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: test for a function with no line table
-	This commit adds a test for the following commit:
-
-	  commit e86e87f77fd5d8afb3e714f1d9e09e0ff5b4e6ff
-	  Date:   Tue Nov 28 16:23:32 2006 +0000
-
-	              * symtab.c (find_pc_sect_line): Do not return a line before
-	              the start of a symtab.
-
-	We have been carrying a test for that commit in the Fedora GDB tree
-	since that commit was added to GDB.  I don't know why the test wasn't
-	added along with the original commit, but as was written, the test is
-	pretty gross, it uses objcopy to pull the .text section from an object
-	file, which was then injected into another source file within a .asm
-	statement...
-
-	... these days we can just make use of the DWARF assembler to achieve
-	the same results, so I've rewritten the test and think it is worth
-	adding this to upstream GDB.
-
-	The original patch was about about how we find the best symtab and
-	line table entry, and what to do when GDB can't find a good match.
-
-	The new test creates a CU with two functions, only one of which is
-	covered by the line table.  With the above patch reverted GDB returns
-	an invalid address.
-
-	With the above patch reverted I did run the testsuite to see what
-	other tests might already be exercising this functionality, and I
-	found two tests:
-
-	  gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
-	  gdb.dwarf2/dw2-vendor-extended-opcode.exp
-
-	These are pretty similar, they either create minimal, or no line table
-	for one of the functions in the source file, and as a consequence GDB
-	returns an unexpected address at some point during the test.
-
-	However, both of those tests are really focused on other issues, so I
-	think this new test does add some value.  Plus the new test is not
-	large, so it's not a huge cost to also run this new test.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/breakpoint: use warning function instead of gdb_printf
-	Noticed that in breakpoint.c, in one place, we do this:
-
-	  gdb_printf (_("warning: Error removing "
-	                "breakpoint %d\n"),
-	                old_loc->owner->number);
-
-	Instead of using the `warning` function.  There are a number of
-	differences between using gdb_printf like this and calling `warning`,
-	the main one is probably that real warnings are sent to gdb_stderr,
-	while the above gdb_printf call will go to gdb_stdout.
-
-	In this commit I:
-
-	  1. Change to call `warning`, we can drop the "warning: " prefix from
-	  the string in breakpoint.c,
-
-	  2. Update the warning text, I now start with a lower case 'e', which
-	  I believe is the GDB style for warnings,
-
-	  3. And I have included the address of the bp_location in the warning
-	  messsage,
-
-	  4. Finally, I update all the tests (2) that include this error
-	  message.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: handle older Python versions in gdb.python/py-disasm.exp
-	It was pointed out on the mailing list that the new tests added in
-	this commit:
-
-	  commit 4de4e48514fc47aeb4ca95cd4091e2a333fbe9e1
-	  Date:   Tue Jan 24 15:35:45 2023 +0000
-
-	      gdb/python: extend the Python Disassembler API to allow for styling
-
-	will fail when GDB is built with Python 3.6 or earlier.  This is
-	because the error that is emitted when a function argument is missing
-	changed in Python 3.7, instead of an error like this:
-
-	  Python Exception <class 'TypeError'>: function missing required argument 'style' (pos 1)
-
-	earlier versions of Python emit:
-
-	  Python Exception <class 'TypeError'>: Required argument 'style' (pos 1) not found
-
-	and the new tests didn't allow for this.
-
-	This commit fixes this by allowing either pattern.  I've tested this
-	building GDB against Python 3.7.9 and 3.6.15, with this commit all
-	tests in gdb.python/py-disasm.exp now pass.
-
-2023-05-19  Kuan-Lin Chen  <rufus@andestech.com>
-
-	RISC-V: Support subtraction of .uleb128.
-	https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/96d6e190e9fc04a8517f9ff7fb9aed3e9876cbd6
-
-	There are some known limitations for now,
-
-	* Do not shrink the length of the uleb128 value, even if the value is reduced
-	after relaxations.  Also reports error if the length grows up.
-
-	* The R_RISCV_SET_ULEB128 needs to be paired with and be placed before the
-	R_RISCV_SUB_ULEB128.
-
-	bfd/
-		* bfd-in2.h: Regenerated.
-		* elfnn-riscv.c (perform_relocation): Perform R_RISCV_SUB_ULEB128 and
-		R_RISCV_SET_ULEB128 relocations.  Do not shrink the length of the
-		uleb128 value, and report error if the length grows up.  Called the
-		generic functions, _bfd_read_unsigned_leb128 and _bfd_write_unsigned_leb128,
-		to encode the uleb128 into the section contents.
-		(riscv_elf_relocate_section): Make sure that the R_RISCV_SET_ULEB128
-		must be paired with and be placed before the R_RISCV_SUB_ULEB128.
-		* elfxx-riscv.c (howto_table): Added R_RISCV_SUB_ULEB128 and
-		R_RISCV_SET_ULEB128.
-		(riscv_reloc_map): Likewise.
-		(riscv_elf_ignore_reloc): New function.
-		* libbfd.h: Regenerated.
-		* reloc.c (BFD_RELOC_RISCV_SET_ULEB128, BFD_RELOC_RISCV_SUB_ULEB128):
-		New relocations to support .uleb128 subtraction.
-	gas/
-		* config/tc-riscv.c (md_apply_fix): Added BFD_RELOC_RISCV_SET_ULEB128
-		and BFD_RELOC_RISCV_SUB_ULEB128.
-		(s_riscv_leb128): Updated to allow uleb128 subtraction.
-		(riscv_insert_uleb128_fixes): New function, scan uleb128 subtraction
-		expressions and insert fixups for them.
-		(riscv_md_finish): Called riscv_insert_uleb128_fixes for all sections.
-	include/
-		* elf/riscv.h ((R_RISCV_SET_ULEB128, (R_RISCV_SUB_ULEB128): Defined.
-	ld/
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
-		* testsuite/ld-riscv-elf/uleb128*: New testcase for uleb128 subtraction.
-	binutils/
-		* testsuite/binutils-all/nm.exp: Updated since RISCV supports .uleb128.
-
-2023-05-19  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Minor improvements for dis-assembler.
-	* Extract all private_data initializations into riscv_init_disasm_info, which
-	called from print_insn_riscv rather than riscv_disassemble_insn.
-
-	* The disassemble_free_target seems like the right place to release all target
-	private_data, also including the internal data structures, like riscv_subsets.
-	Therefore, add a new function, disassemble_free_riscv, to release them for safe.
-
-	opcodes/
-		* disassemble.c (disassemble_free_target): Called disassemble_free_riscv
-		for riscv to release private_data and internal data structures.
-		* disassemble.h: Added extern disassemble_free_riscv.
-		* riscv-dis.c (riscv_init_disasm_info): New function, used to init
-		riscv_private_data.
-		(riscv_disassemble_insn): Moved riscv_private_data initializations
-		into riscv_init_disasm_info.
-		(print_insn_riscv): Called riscv_init_disasm_info to init
-		riscv_private_data once time.
-		(disassemble_free_riscv): New function, used to free the internal data
-		structures, like riscv_subsets.
-
-2023-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	x86: permit all relational operators in insn operands
-	Oddly enough == and != were not permitted, because of '=' not having
-	been listed in operand_special_chars[].
-
-2023-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	x86: further adjust extend-to-32bit-address conditions
-	While a442cac5084e ("ix86: wrap constants") helped address a number of
-	inconsistencies between BFD64 and !BFD64 builds, it has also resulted in
-	certain bogus uses of constants to no longer be warned about. Leverage
-	the md_optimize_expr() hook to adjust when to actually truncate
-	expressions to 32 bits - any involvement of binary expressions (which
-	would be evaluated in 32 bits only when !BFD64) signals the need for
-	doing so. Plain constants (or ones merely subject to unary operators)
-	should remain un-truncated - they would be handled as bignums when
-	!BFD64, and hence are okay to permit.
-
-	To compensate
-	- slightly extend optimize_imm() (to be honest I never understood why
-	  the code being added - or something similar - wasn't there in the
-	  first place),
-	- adjust expectations of the disp-imm-32 testcase (there are now
-	  warnings, as there should be for any code which won't build [warning-
-	  free] when !BFD64, and Disp8/Imm8 are no longer used in the warned
-	  about cases).
-
-2023-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	gas: invoke md_optimize_expr() also for unary expressions
-	Give backends a chance to see these, just as they can see binary ones.
-	Most of those which use this hook already cope with NULL being passed
-	for the left operand (typically because of checking the operator first).
-	Adjust the two which don't.
-
-	Take the opportunity and also document the hook.
-
-2023-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	gas: maintain O_constant signedness in more cases
-	Unary '~' doesn't really produce an unsigned result. Neither does
-	subtraction (unless taking operand values into consideration). And an
-	abstract operator applied to two operands which aren't both unsigned
-	can't be assumed to yield an unsigned result; exceptions are
-	- shifts, where only signedness of the left hand operand matters,
-	- comparisons, which - unlike unary '!' - produce signed results (they
-	  deliver 0 or ~0, as opposed to '!', which yields 0 or 1),
-	- logical operators (yielding 0 or 1 and hence treated like unary '!').
-
-	While doing this (specifically while extending the all/quad testcase),
-	update .quad and .8byte documentation: With 64-bit architectures now
-	being common, it is highly inappropriate to state that these directives
-	unconditionally require bignums.
-
-2023-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	x86: tighten extend-to-32bit-address conditions
-	In a442cac5084e ("ix86: wrap constants") I made the truncation condition
-	too relaxed: Any indication of a mode that's possible with BFD64 only
-	should avoid the truncation. Therefore, like in the other two cases of
-	calls to extend_to_32bit_address(), also check whether we're generating
-	a 64-bit object.
-
-2023-05-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-18  Tom Tromey  <tromey@adacore.com>
-
-	Use lower-case in @sc in the documentation
-	Eli pointed out that @sc only produces small caps for lower case
-	letters in its argument, so it's weird to write it using upper-case
-	letters.  This patch fixes the instances I found.
-
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.fortran/lbound-ubound.exp: read expected lbound and ubound from function parameters (PR 30414)
-	gdb.fortran/lbound-ubound.exp reads the expected lbound and ubound
-	values by reading some output from the inferior.  This is racy when
-	running on boards where the inferior I/O is on a separate TTY than
-	GDB's, such as native-gdbserver.
-
-	I sometimes see this behavior:
-
-	    (gdb) continue
-	    Continuing.
-
-	    Breakpoint 2, do_test (lb=..., ub=...) at /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/nati
-	    ve-gdbserver/src/binutils-gdb/gdb/testsuite/gdb.fortran/lbound-ubound.F90:45
-	    45        print *, ""   ! Test Breakpoint
-	    (gdb) Remote debugging from host ::1, port 37496
-
-	     Expected GDB Output:
-
-	    LBOUND = (-8, -10)
-	    UBOUND = (-1, -2)
-	    APB: Run a test here
-	    APB: Expected lbound '(-8, -10)'
-	    APB: Expected ubound ''
-
-	What happened is that expect read the output from GDB before the output
-	from the inferior, triggering this gdb_test_multiple clause:
-
-	    -re "$gdb_prompt $" {
-	        set found_prompt true
-
-	        if {$found_dealloc_breakpoint
-	            || ($expected_lbound != "" && $expected_ubound != "")} {
-	            # We're done.
-	        } else {
-	            exp_continue
-	        }
-	    }
-
-	So it set found_prompt, but the gdb_test_multiple kept going because
-	found_dealloc_breakpoint is false (this is the flag indicating that the
-	test is finished) and we still don't have expected_lbound and
-	expected_ubound.  Then, expect reads in the inferior I/O, triggering
-	this clause:
-
-	    -re ".*LBOUND = (\[^\r\n\]+)\r\n" {
-	        set expected_lbound $expect_out(1,string)
-	        if {!$found_prompt} {
-	            exp_continue
-	        }
-	    }
-
-	This sets expected_lbound, but since found_prompt is true, we don't do
-	exp_continue, and exit the gdb_test_multiple, without having an
-	expected_ubound.
-
-	Change the test to read the values from the lb and ub function
-	parameters instead.  As far as I understand, this still exercises what
-	we want to test.  These variables contain the return values of the
-	lbound and ubound functions as computed by the program.  We'll use them
-	to check the return values of the lbound and ubound functions as
-	computed by GDB.
-
-	Change-Id: I3c4d3d17d9291870a758a42301d15a007821ebb5
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30414
-
-2023-05-18  Hui Li  <lihui@loongson.cn>
-
-	gdb/elfread.c: Add plt symbol check for _PROCEDURE_LINKAGE_TABLE_
-	In the current code, when execute the following test on LoongArch:
-
-	$ make check-gdb TESTS="gdb.base/gnu-ifunc.exp"
-	 === gdb Summary ===
-
-	 # of expected passes           111
-	 # of unexpected failures       62
-
-	According to IFUNC's working process [1]. first time the IFUNC function
-	is called, the dynamic linker will not simply fill the .got.plt entry
-	with the actual address of IFUNC symbol, it will call the IFUNC resolver
-	function and take the return address, uses it as the sym-bound address
-	and puts it in the .got.plt entry. Initial address in .got.plt entry is
-	not a real function addresss. Depending on the compiler implementation,
-	some different addresses will be filled in. Most architectures will use
-	a .plt entry address to fill in the corresponding .got.plt entry.
-
-	In gdb, elf_gnu_ifunc_resolve_addr() will be called to return a real
-	IFUNC function addresss. First check to see if the real address for
-	the IFUNC symbol has been resolved by the following function:
-
-	elf_gnu_ifunc_resolve_name (const char *name, CORE_ADDR *addr_p)
-	{
-	  if (elf_gnu_ifunc_resolve_by_cache (name, addr_p))
-	    return true;
-
-	  if (elf_gnu_ifunc_resolve_by_got (name, addr_p))
-	    return true;
-
-	  return false;
-	}
-
-	in elf_gnu_ifunc_resolve_by_got(), it gets the contents of the
-	.got.plt entry and determines if the contents is the correct address
-	by calling elf_gnu_ifunc_record_cache(). Based on the IFUNC working
-	principle analysis above, the address filled in the .got.plt entry is
-	not the actual target function address initially, it would be a .plt
-	entry address corresponding symbol like *@plt. In this case, gdb just
-	go back to execute the resolver function and puts the return address
-	in the .got.plt entry. After that, gdb can get a real ifun address via
-	.got.plt entry.
-
-	On LoongArch, initially, each address filled in the .got.plt entries
-	is the first .plt entry address. Some architectures such as LoongArch
-	define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the .plt
-	section. This symbol is the first plt entry, so gdb needs to check
-	this symbol in elf_gnu_ifunc_record_cache().
-
-	On LoongArch .got.plt and .plt section as follow:
-
-	$objdump -D gdb/testsuite/outputs/gdb.base/gnu-ifunc/gnu-ifunc-0-0-0
-	...
-	0000000120010008 <.got.plt>:
-	   120010008:   ffffffff        0xffffffff
-	   12001000c:   ffffffff        0xffffffff
-	        ...
-	   120010018:   20004000        ll.w            $zero, $zero, 64(0x40)
-	   12001001c:   00000001        0x00000001
-	   120010020:   20004000        ll.w            $zero, $zero, 64(0x40)
-	   120010024:   00000001        0x00000001
-	   120010028:   20004000        ll.w            $zero, $zero, 64(0x40)
-	   12001002c:   00000001        0x00000001
-	   120010030:   20004000        ll.w            $zero, $zero, 64(0x40)
-	   120010034:   00000001        0x00000001
-
-	...
-	Disassembly of section .plt:
-
-	0000000120004000 <_PROCEDURE_LINKAGE_TABLE_>:
-	   120004000:   1c00018e        pcaddu12i       $t2, 12(0xc)
-	   120004004:   0011bdad        sub.d           $t1, $t1, $t3
-	   120004008:   28c021cf        ld.d            $t3, $t2, 8(0x8)
-	   12000400c:   02ff51ad        addi.d          $t1, $t1, -44(0xfd4)
-	   120004010:   02c021cc        addi.d          $t0, $t2, 8(0x8)
-	   120004014:   004505ad        srli.d          $t1, $t1, 0x1
-	   120004018:   28c0218c        ld.d            $t0, $t0, 8(0x8)
-	   12000401c:   4c0001e0        jirl            $zero, $t3, 0
-
-	0000000120004020 <__libc_start_main@plt>:
-	   120004020:   1c00018f        pcaddu12i       $t3, 12(0xc)
-	   120004024:   28ffe1ef        ld.d            $t3, $t3, -8(0xff8)
-	   120004028:   4c0001ed        jirl            $t1, $t3, 0
-	   12000402c:   03400000        andi            $zero, $zero, 0x0
-
-	0000000120004030 <abort@plt>:
-	   120004030:   1c00018f        pcaddu12i       $t3, 12(0xc)
-	   120004034:   28ffc1ef        ld.d            $t3, $t3, -16(0xff0)
-	   120004038:   4c0001ed        jirl            $t1, $t3, 0
-	   12000403c:   03400000        andi            $zero, $zero, 0x0
-
-	0000000120004040 <gnu_ifunc@plt>:
-	   120004040:   1c00018f        pcaddu12i       $t3, 12(0xc)
-	   120004044:   28ffa1ef        ld.d            $t3, $t3, -24(0xfe8)
-	   120004048:   4c0001ed        jirl            $t1, $t3, 0
-	   12000404c:   03400000        andi            $zero, $zero, 0x0
-	...
-
-	With this patch:
-
-	$make check-gdb TESTS="gdb.base/gnu-ifunc.exp"
-	=== gdb Summary ===
-
-	 #of expected passes            173
-
-	[1] https://sourceware.org/glibc/wiki/GNU_IFUNC
-
-2023-05-18  Alan Modra  <amodra@gmail.com>
-
-	Re: Add section caches to coff_data_type
-	Another thing, section target_index is renumbered in
-	coff_compute_section_file_positions and _bfd_xcoff_bfd_final_link.  I
-	don't know that there is currently any way that the output bfd
-	section_by_target_index could be populated before this point but
-	clear them out so no one need worry about it.
-
-		* coffcode.h (coff_compute_section_file_positions): Clear
-		section_by_target_index hash table when changing target_index.
-		(_bfd_xcoff_bfd_final_link): Likewise.
-
-2023-05-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix whitespace and indentation in lib/tuiterm.exp
-	I noticed a trailing whitespace and some indentation errors in lib/tuiterm.exp.
-
-	Fix these.
-
-	Tested by re-running the TUI test-cases (gdb.tui/*.exp and gdb.python/tui*.exp)
-	on x86_64-linux.
-
-2023-05-18  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: testsuite: add tests for sframe_get_funcdesc_with_addr API
-	sframe_get_funcdesc_with_addr API is currently used internally by the
-	sframe_find_fre ().
-
-	In this test, we create three dummy SFrame FDEs with 4 FREs each.  Then,
-	we use few negative tests to lookup FREs with PCs not in the range of
-	PCs covered by the FDEs, ensuring graceful return from
-	sframe_get_funcdesc_with_addr in all cases.  Some positive tests are
-	also added that exercise further scenarios as well.
-
-	libsframe/
-		* Makefile.in: Regenerated.
-		* testsuite/libsframe.find/find.exp: Include new test.
-		* testsuite/libsframe.find/findfunc-1.c: New Test.
-		* testsuite/libsframe.find/local.mk: Include new test.
-
-2023-05-18  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: testsuite: add new tests for sframe_find_fre API
-	libsframe provides an API to find the FRE associated with a given PC in
-	the program.  This patch adds a direct test of this API.
-
-	In this test, we create two dummy SFrame FDEs with 4 FREs each.  Then we
-	test that sframe_find_fre () works for the first, second, third and the
-	last FRE from one of the FDEs.  Such a test ensures better regression
-	testing for the sframe_find_fre () function which is going to be the
-	bread and butter of an SFrame based stack tracer.
-
-	libsframe/
-		* Makefile.in: Regenerated.
-		* testsuite/libsframe.find/find.exp: New test.
-		* testsuite/libsframe.find/findfre-1.c: New test.
-		* testsuite/libsframe.find/local.mk: Build new test.
-		* testsuite/local.mk: Include libsframe.find.
-
-2023-05-18  Alan Modra  <amodra@gmail.com>
-
-	Re: Add section caches to coff_data_type
-	Commit 0e759f232b6d regressed these tests:
-	rs6000-aix7.2  +FAIL: Garbage collection test 1 (32-bit)
-	rs6000-aix7.2  +FAIL: Garbage collection test 1 (64-bit)
-	rs6000-aix7.2  +FAIL: Glink test 1 (32-bit)
-	rs6000-aix7.2  +FAIL: Glink test 1 (64-bit)
-
-	Investigation showed segfaults in coff_section_from_bfd_index called
-	by xcoff_write_global_symbol due to the hash table pointer being
-	NULL.  Well, yes, the hash table isn't initialised for the output bfd.
-	mkobject_hook is the wrong place to do that.
-
-		* coffcode.h: Revert 0e759f232b6d changes.
-		* peicode.h: Likewise.
-		* coff-x86_64.c (htab_hash_section_index, htab_eq_section_index):
-		Moved here from coffcode.h.
-		(coff_amd64_rtype_to_howto): Create section_by_index htab.
-		* coffgen.c (htab_hash_section_target_index),
-		(htab_eq_section_target_index): Moved here from coffcode.h.
-		(coff_section_from_bfd_index): Create section_by_target_index
-		htab.  Stash newly created sections in htab.
-
-2023-05-18  Alan Modra  <amodra@gmail.com>
-
-	PR11601, Solaris assembler compatibility doesn't work
-	Well, it doesn't work on x86 or ppc, which both have # starting
-	comments anywhere on a line.  I think it is therefore only useful on
-	sparc.
-
-		PR 11601
-		* config/obj-elf.c (obj_elf_section_word): Only compile for sparc.
-		(obj_elf_section): Only support solaris .section directive on
-		sparc.
-		* doc/as.texi (Section): Mention that solaris .section
-		directive is only supported for sparc.
-
-2023-05-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-17  Tom Tromey  <tom@tromey.com>
-
-	Special case "&str" in Rust parser
-	"&str" is an important type in Rust -- it's the type of string
-	literals.  However, the compiler puts it in the DWARF in a funny way.
-	The slice itself is present and named "&str".  However, the Rust
-	parser doesn't look for types with names like this, but instead tries
-	to construct them from components.  In this case it tries to make a
-	pointer-to-"str" -- but "str" isn't always available, and in any case
-	that wouldn't yield the best result.
-
-	This patch adds a special case for &str.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22251
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-17  Luca Bacci  <luca.bacci@outlook.com>
-
-	Decorated symbols in import libs (BUG 30421)
-	  PR 30421
-	  * cofflink.c (_decoration_hash_newfunc): New function. (_bfd_coff_link_hash_table_init): Call it.
-	  * libcoff-in.h (struct coff_link_hash_table): Add decoration_hash field. (struct decoration_hash_entry): Declare. (_decoration_hash_newfunc): Prototype.
-	  * libcoff.h: Regenerate.
-
-	  * emultempl/pe.em (set_decoration): New function. (pe_fixup_stdcalls): Call the new function.
-	  * emultempl/pep.em (set_decoration): New function. (pep_fixup_stdcalls): Call the new function.
-	  * pe-dll.c (make_one): Check for decoated symbols.
-
-2023-05-17  Alan Modra  <amodra@gmail.com>
-
-	PR29961, plugin-api.h: "Could not detect architecture endianess"
-	Found when attempting to build binutils on sparc sunos-5.8 where
-	sys/byteorder.h defines _BIG_ENDIAN but not any of the BYTE_ORDER
-	variants.  This patch adds the extra tests to cope with the old
-	machine, and tidies the header a little.
-
-		PR 29961
-		plugin-api.h: When handling non-gcc or gcc < 4.6.0 include
-		necessary header files before testing macros.  Make more use
-		of #elif.  Test _LITTLE_ENDIAN and _BIG_ENDIAN in final tests.
-
-2023-05-17  Alan Modra  <amodra@gmail.com>
-
-	gcc-4.5 build fixes
-	Trying to build binutils with an older gcc currently fails.  Working
-	around these gcc bugs is not onerous so let's fix them.
-
-	bfd/
-		* elf32-csky.c (csky_elf_size_dynamic_sections): Don't type-pun
-		pointer.
-		* elf32-rl78.c (rl78_compute_complex_reloc): Rename "stat"
-		variable to "status".
-	gas/
-		* compress-debug.c (compress_finish): Supply all fields in
-		ZSTD_inBuffer initialisation.
-	include/
-		* xtensa-dynconfig.h (xtensa_isa_internal): Delete unnecessary
-		forward declaration.
-	opcodes/
-		* loongarch-opc.c: Supply all fields of zero struct initialisation
-		in various opcode tables.
-
-2023-05-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: include a new function in the right place
-	Static function name is not available in stripped libraries.
-	In this case, gprofng maps PC to a fake function like <static>@0xPC (<libname>).
-	Sometimes gprofng creates two functions instead of one.
-	Also FUNC_FLAG_SIMULATED is needed for these fake functions.
-
-	gprofng/ChangeLog
-	2023-05-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* src/LoadObject.cc (LoadObject::find_function): Set FUNC_FLAG_SIMULATED.
-		Include a new function in the right place.
-
-2023-05-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Don't show line number for lines not in source file
-	Currently, for a source file containing only 5 lines, we also show line
-	numbers 6 and 7 if they're in scope of the source window:
-	...
-	    0 +-compact-source.c----------------+
-	    1 |___3_{                           |
-	    2 |___4_  return 0;                 |
-	    3 |___5_}                           |
-	    4 |___6_                            |
-	    5 |___7_                            |
-	    6 +---------------------------------+
-	...
-
-	Fix this by not showing line numbers not in a source file, such that we have instead:
-	...
-	    0 +-compact-source.c----------------+
-	    1 |___3_{                           |
-	    2 |___4_  return 0;                 |
-	    3 |___5_}                           |
-	    4 |                                 |
-	    5 |                                 |
-	    6 +---------------------------------+
-	...
-
-	Tested on x86_64-linux.
-
-	Suggested-By: Simon Marchi <simon.marchi@efficios.com>
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-05-16  Nick Clifton  <nickc@redhat.com>
-
-	Document how to use the linker to create a resource only DLL.
-	  PR 30359
-	  * ld.texi (WIN32): Document how to create a resource only DLL.
-
-2023-05-16  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
-
-	Add section caches to coff_data_type
-	  * libcoff-in.h (struct coff_tdata): Add section_by_index and section_by_target_index hash tables.
-	  * libcoff.h: Regenerate.
-	  * coffcode.h (htab_hash_section_index): New function. (htab_eq_section_index): New function. (htab_hash_section_target_index): New function. (htab_eq_section_target_index): New function. (coff_mkobject_hool): Create the hash tables.
-	  * peicode.h: Add the same new functions. (pe_mkobject_hook): Create the hash tables.
-	  * coff-x86_64.c (coff_amd64_rtype_to_howto): Use the new tables to speed up lookups.
-	  * coffgen.c (coff_section_from_bfd_index): Likewise. (_bfd_coff_close_and_cleanup): Delete the hash tables.
-
-2023-05-16  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	Update comments for the gdb/24331 fix.
-	Approved-by: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix formatting of gdb.python/py-disasm.py
-	Run black on gdb.python/py-disasm.py file and commit the changes.
-
-2023-05-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: make gdb_supported_languages a caching proc
-	Rewrite gdb_supported_languages as a caching proc that actually
-	queries GDB for the list of supported languages, rather than just
-	containing a hard-coded list of languages.
-
-	There's only one test that uses this proc right now,
-	gdb.python/py-function.exp, and that still passes after this change,
-	with no changes in the test names.
-
-2023-05-16  Nick Clifton  <nickc@redhat.com>
-
-	-Ur option documentation
-	  * ld.texi (-Ur): Clarify the actions of this option.
-
-2023-05-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix regressions in break-main-file-remove-fail.exp
-	After this commit:
-
-	  commit a68f7e9844208ad8cd498f89b5100084ece7d0f6
-	  Date:   Tue May 9 10:28:42 2023 +0100
-
-	      gdb/testsuite: extend special '^' handling to gdb_test_multiple
-
-	buildbot notified me of a regression on s390 in the test:
-
-	  gdb.base/break-main-file-remove-fail.exp
-
-	the failure looks like this:
-
-	  print /d ((int (*) (void *, size_t)) munmap) (16781312, 4096)
-	  warning: Error removing breakpoint 0
-	  $2 = 0
-	  (gdb) FAIL: gdb.base/break-main-file-remove-fail.exp: cmdline: get integer valueof "((int (*) (void *, size_t)) munmap) (16781312, 4096)"
-
-	On the mailing list it has been reported that this failure also
-	impacts arm, aarch64, and possibly ppc/ppc64 too.
-
-	The above commit changed get_integer_valueof so that no output is
-	expected between the command and the '$2 = 0' line.  In this case the
-	'warning: Error removing breakpoint 0' output is causing the
-	get_integer_valueof call to fail.
-
-	The reason for this warning is that this test deliberately calls
-	munmap on a page of the inferior's code.  The test is checking that
-	GDB can handle the situation where a s/w breakpoint can't be
-	removed (due to the page no longer being readable/writable).
-
-	The test that is supposed to trigger the warning is later in the test
-	script when we delete a breakpoint.
-
-	So why do some targets trigger the warning earlier during the inferior
-	call?
-
-	The impacted targets use AT_ENTRY_POINT as their strategy for handling
-	inferior calls, that is, the trampoline that calls the inferior
-	function is placed at the program's entry point, e.g. often the _start
-	label.
-
-	If this location happens to be on the same page as the page that the
-	test script unmaps then, when the inferior function call returns, GDB
-	will not be able to remove the temporary breakpoint that is inserted
-	to catch the inferior function call returning!  As a result we end up
-	seeing the warning earlier than expected.
-
-	I did wonder if this means I should relax the pattern in
-	get_integer_valueof - just accept that there might be additional
-	output from GDB which we should ignore.
-
-	However, I don't think this the right way to go.  With the change in
-	a68f7e984420 we are now stricter for GDB emitting additional,
-	unexpected, output, and I think that is a good thing.
-
-	So, I think, in this case, in order to handle the possible extra
-	output, we should implement something like get_integer_valueof
-	directly in the gdb.base/break-main-file-remove-fail.exp test script.
-	This local version will handle the possible warning output.
-
-	After this the test should pass again on the impacted targets.
-
-2023-05-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: extend the Python Disassembler API to allow for styling
-	This commit extends the Python Disassembler API to allow for styling
-	of the instructions.
-
-	Before this commit the Python Disassembler API allowed the user to do
-	two things:
-
-	  - They could intercept instruction disassembly requests and return a
-	    string of their choosing, this string then became the disassembled
-	    instruction, or
-
-	  - They could call builtin_disassemble, which would call back into
-	    libopcode to perform the disassembly.  As libopcode printed the
-	    instruction GDB would collect these print requests and build a
-	    string.  This string was then returned from the builtin_disassemble
-	    call, and the user could modify or extend this string as needed.
-
-	Neither of these approaches allowed for, or preserved, disassembler
-	styling, which is now available within libopcodes for many of the more
-	popular architectures GDB supports.
-
-	This commit aims to fill this gap.  After this commit a user will be
-	able to do the following things:
-
-	  - Implement a custom instruction disassembler entirely in Python
-	    without calling back into libopcodes, the custom disassembler will
-	    be able to return styling information such that GDB will display
-	    the instruction fully styled.  All of GDB's existing style
-	    settings will affect how instructions coming from the Python
-	    disassembler are displayed in the expected manner.
-
-	  - Call builtin_disassemble and receive a result that represents how
-	    libopcode would like the instruction styled.  The user can then
-	    adjust or extend the disassembled instruction before returning the
-	    result to GDB.  Again, the instruction will be styled as expected.
-
-	To achieve this I will add two new classes to GDB,
-	DisassemblerTextPart and DisassemblerAddressPart.
-
-	Within builtin_disassemble, instead of capturing the print calls from
-	libopcodes and building a single string, we will now create either a
-	text part or address part and store these parts in a vector.
-
-	The DisassemblerTextPart will capture a small piece of text along with
-	the associated style that should be used to display the text.  This
-	corresponds to the disassembler calling
-	disassemble_info::fprintf_styled_func, or for disassemblers that don't
-	support styling disassemble_info::fprintf_func.
-
-	The DisassemblerAddressPart is used when libopcodes requests that an
-	address be printed, and takes care of printing the address and
-	associated symbol, this corresponds to the disassembler calling
-	disassemble_info::print_address_func.
-
-	These parts are then placed within the DisassemblerResult when
-	builtin_disassemble returns.
-
-	Alternatively, the user can directly create parts by calling two new
-	methods on the DisassembleInfo class: DisassembleInfo.text_part and
-	DisassembleInfo.address_part.
-
-	Having created these parts the user can then pass these parts when
-	initializing a new DisassemblerResult object.
-
-	Finally, when we return from Python to gdbpy_print_insn, one way or
-	another, the result being returned will have a list of parts.  Back in
-	GDB's C++ code we walk the list of parts and call back into GDB's core
-	to display the disassembled instruction with the correct styling.
-
-	The new API lives in parallel with the old API.  Any existing code
-	that creates a DisassemblerResult using a single string immediately
-	creates a single DisassemblerTextPart containing the entire
-	instruction and gives this part the default text style.  This is also
-	what happens if the user calls builtin_disassemble for an architecture
-	that doesn't (yet) support libopcode styling.
-
-	This matches up with what happens when the Python API is not involved,
-	an architecture without disassembler styling support uses the old
-	libopcodes printing API (the API that doesn't pass style info), and
-	GDB just prints everything using the default text style.
-
-	The reason that parts are created by calling methods on
-	DisassembleInfo, rather than calling the class constructor directly,
-	is DisassemblerAddressPart.  Ideally this part would only hold the
-	address which the part represents, but in order to support backwards
-	compatibility we need to be able to convert the
-	DisassemblerAddressPart into a string.  To do that we need to call
-	GDB's internal print_address function, and to do that we need an
-	gdbarch.
-
-	What this means is that the DisassemblerAddressPart needs to take a
-	gdb.Architecture object at creation time.  The only valid place a user
-	can pull this from is from the DisassembleInfo object, so having the
-	DisassembleInfo act as a factory ensures that the correct gdbarch is
-	passed over each time.  I implemented both solutions (the one
-	presented here, and an alternative where parts could be constructed
-	directly), and this felt like the cleanest solution.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: rework how the disassembler API reads the result object
-	This commit is a refactor ahead of the next change which will make
-	disassembler styling available through the Python API.
-
-	Unfortunately, in order to make the styling support available, I think
-	the easiest solution is to make a very small change to the existing
-	API.
-
-	The current API relies on returning a DisassemblerResult object to
-	represent each disassembled instruction.  Currently GDB allows the
-	DisassemblerResult class to be sub-classed, which could mean that a
-	user tries to override the various attributes that exist on the
-	DisassemblerResult object.
-
-	This commit removes this ability, effectively making the
-	DisassemblerResult class final.
-
-	Though this is a change to the existing API, I'm hoping this isn't
-	going to cause too many issues:
-
-	  - The Python disassembler API was only added in the previous release
-	    of GDB, so I don't expect it to be widely used yet, and
-
-	  - It's not clear to me why a user would need to sub-class the
-	    DisassemblerResult type, I allowed it in the original patch
-	    because at the time I couldn't see any reason to NOT allow it.
-
-	Having prevented sub-classing I can now rework the tail end of the
-	gdbpy_print_insn function; instead of pulling the results out of the
-	DisassemblerResult object by calling back into Python, I now cast the
-	Python object back to its C++ type (disasm_result_object), and access
-	the fields directly from there.  In later commits I will be reworking
-	the disasm_result_object type in order to hold information about the
-	styled disassembler output.
-
-	The tests that dealt with sub-classing DisassemblerResult have been
-	removed, and a new test that confirms that DisassemblerResult can't be
-	sub-classed has been added.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-15  Tom Tromey  <tom@tromey.com>
-
-	Correctly handle forward DIE references in scanner
-	The cooked index scanner has special code to handle forward DIE
-	references.  However, a bug report lead to the discovery that this
-	code does not work -- the "deferred_entry::spec_offset" field is
-	written to but never used, i.e., the lookup is done using the wrong
-	key.
-
-	This patch fixes the bug and adds a regression test.
-
-	The test in the bug itself used a thread_local variable, which
-	provoked a failure at runtime.  This test instead uses "maint print
-	objfiles" and then inspects to ensure that the entry in question has a
-	parent.  This lets us avoid a clang dependency in the test.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30271
-
-2023-05-15  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: Fix PLT entry generate bug
-	If a function symbol only get its address by la.global, without
-	directly called by bl instruction, the PLT entry is not required.
-
-	bfd/ChangeLog:
-
-		* elfnn-loongarch.c (loongarch_elf_adjust_dynamic_symbol): Fix PLT
-		entry generate bug.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/shared.exp: Clear xfail for LoongArch.
-
-2023-05-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-13  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	Fix bad interaction between element limit and repeated values (BZ#24331).
-	Currently
-
-	  print -elements=3 -- "AAAAAA"
-
-	prints complete string, which is not what the user asked for.
-
-	Fix two buggy tests exposed by the fix, and add a new test.
-
-	Reviewed-by: Keith Seitz <keiths@redhat.com>
-
-2023-05-13  Alan Modra  <amodra@gmail.com>
-
-	PR28955 mips gas segfault
-	Testing for NULL in pic_need_relax fixes the other call to this
-	function in md_estimate_size_before_relax.
-
-		PR 28955
-		* config/tc-mips.c (mips_frob_file): Move NULL sym test to..
-		(pic_need_relax): ..here.
-
-2023-05-13  Alan Modra  <amodra@gmail.com>
-
-	PR28902, -T script with INSERT ordering
-	The answer to PR28902 may be deduced from the existing INSERT
-	documentation that says the default script is parsed after the -T
-	INSERT script, if you assume (correctly) that nothing special is done
-	when inserting into -T scripts overriding the default script.  In both
-	cases INSERT handling looks for the specified output section later on
-	the internal list of parsed script commands.  This isn't obvious
-	though, so make the ordering explicit, and mention that section
-	assignments are the same too.
-
-		PR 28902
-		* ld.texi (INSERT): Specify ordering when -T is used both to
-		override the default script and to augment.
-
-2023-05-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-12  Tom Tromey  <tromey@adacore.com>
-
-	Fix regression due to Pragma Import series
-	A co-worker here at AdaCore discovered that the Pragma Import series
-	caused a rgression.  When debugging gnat1, gdb started asking for
-	overload resolution like:
-
-	(gdb) call pp(n)
-	Multiple matches for pp
-	[0] cancel
-	[1] pp (types.union_id) at ../../gcc/gcc/ada/treepr.adb:511
-	[2] treepr.pp (types.union_id) at ../../gcc/gcc/ada/treepr.adb:511
-
-	This worked before the series, and is strange anyway, because the
-	matches refer to the same function.
-
-	This patch adds a test case for this situation and fixes the bug by
-	pruning identical functions in remove_extra_symbols.
-
-2023-05-12  Tom Tromey  <tromey@adacore.com>
-
-	Use bool and early loop exit in remove_extra_symbols
-	This changes remove_extra_symbols to use bool rather than int, and
-	changes the nested loops to exit early when "remove_p" is set.
-
-	Use reference parameter in remove_extra_symbols
-	Changing ada-lang.c:remove_extra_symbols to take a reference parameter
-	makes the code a bit easier to read, by replacing "(*syms)" with plain
-	"syms".
-
-	Handle Ada Pragma Import and Pragma Export
-	Ada can import C APIs and also export Ada constructs to C via Pragma
-	Import and Pragma Export.  This patch adds support for these to gdb,
-	by arranging to either defer some aspects of a symbol to the
-	underlying C symbol (for Import) or by introducing a second symbol
-	(for Export).  A somewhat tricky approach is needed, both because gdb
-	doesn't generally handle symbol aliasing, and because Ada treats
-	symbol names in an unusual way (as compared to the rest of gdb).
-
-	Introduce symbol_block_ops::get_block_value
-	This adds a new callback to symbol_block_ops.  This callback lets a
-	LOC_BLOCK symbol implement its own function to find the underlying
-	block.
-
-	Define symbol::value_block separately
-	This moves the definition of symbol::value_block outside of the class.
-	A subsequent patch will change this method to use SYMBOL_BLOCK_OPS,
-	and it seemed simplest to move this method out-of-line, and cleaner to
-	do this as a separate change.
-
-	Bump MAX_SYMBOL_IMPLS
-	A subsequent patch will introduce more aclass registrations, causing
-	the number to go over the current maximum.  This bumps the number.
-	Note that there's a separate static assert that ensures that this
-	number doesn't get too large for the field size in the symbol.
-
-	Introduce lookup_minimal_symbol_linkage
-	This introduces a new function, lookup_minimal_symbol_linkage, and
-	refactors a couple other existing functions to call it.  This function
-	will be used in a subsequent patch.
-
-2023-05-12  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove unnecessary call to std::string constructor
-	I spotted this explicit call to std::string, which creates an
-	unnecessary temporary extra std::string, while calling emplace_back.
-	I'm not sure if it has any impact in an optimized build, maybe the
-	compiler elides it.  But still, it's unnecessary.
-
-	Change-Id: I873337ea91db29ac06267aff8fc12dcf52824cac
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-05-12  Tom Tromey  <tromey@adacore.com>
-
-	Add dynamic_prop::is_constant
-	I noticed many spots checking whether a dynamic property's kind is
-	PROP_CONST.  Some spots, I think, are doing a slightly incorrect check
-	-- checking for != PROP_UNDEFINED where == PROP_CONST is actually
-	required, the key thing being that const_val may only be called for
-	PROP_CONST properties.
-
-	This patch adds dynamic::is_constant and then updates these checks to
-	use it.
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-05-12  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP register scope
-	I noticed that gdb's DAP code did not provide a way to see register
-	values.  DAP defines a "register" scope, which this patch implements.
-	This patch also adds the missing (and optional) "presentationHint" to
-	scopes.
-
-2023-05-12  Tom Tromey  <tromey@adacore.com>
-
-	Fix calling debuginfo-less functions in Ada
-	A co-worker at AdaCore noticed that calling a function without
-	debuginfo yields:
-
-	(gdb) print plus_one(23)
-	'pck.plus_one' has unknown return type; cast the call to its declared return type
-
-	However, this also happens if you follow the directions and add the
-	cast.
-
-	This patch fixes the problem and adds a regression test.
-
-2023-05-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: implement DisassemblerResult.__str__ method
-	Add the DisassemblerResult.__str__ method.  This gives the same result
-	as the DisassemblerResult.string attribute, but can be useful
-	sometimes depending on how the user is trying to print the object.
-
-	There's a test for the new functionality.
-
-2023-05-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: implement __repr__ methods for py-disasm.c types
-	Add a __repr__ method for the DisassembleInfo and DisassemblerResult
-	types, and add some tests for these new methods.
-
-2023-05-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: improve Python Disassembler API documentation
-	Some small improvements to the Python Disassembler API documentation:
-
-	  * Be consistent about using the package scope in the @deftp lines,
-
-	  * Rework the description of the DisassemblerResult class to include
-	    mention of builtin_disassemble.
-
-2023-05-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: extend special '^' handling to gdb_test_multiple
-	The commit:
-
-	  commit 08ec06d6440745ef9204d39197aa1e732df41056
-	  Date:   Wed Mar 29 10:41:07 2023 +0100
-
-	      gdb/testsuite: special case '^' in gdb_test pattern
-
-	Added some special handling of '^' to gdb_test -- a leading '^' will
-	cause the command regexp to automatically be included in the expected
-	output pattern.
-
-	It was pointed out that the '-wrap' flag of gdb_test_multiple is
-	supposed to work in the same way as gdb_test, and that the recent
-	changes for '^' had not been replicated for gdb_test_multiple.  This
-	patch addresses this issue.
-
-	So, after this commit, the following two constructs should have the
-	same meaning:
-
-	  gdb_test "command" "^output" "test name"
-
-	  gdb_test_multiple "command" "test name" {
-	    -re -wrap "^output" {
-	      pass $gdb_test_name
-	    }
-	  }
-
-	In both cases the '^' will case gdb.exp to inject a regexp that
-	matches 'command' after the '^' and before the 'output', this is in
-	addition to adding the $gdb_prompt pattern after 'output' in the
-	normal way.
-
-	The special '^' handling is only applied when '-wrap' is used, as this
-	is the only mode that aims to mimic gdb_test.
-
-	While working on this patch I realised that I could actually improve
-	the logic for the special '^' handling in the case where the expected
-	output pattern is empty.  I replicated these updates for both gdb_test
-	and gdb_test_multiple in order to keep these two paths in sync.
-
-	There were a small number of tests that needed adjustment after this
-	change, mostly just removing command regexps that are now added
-	automatically, but the gdb.base/settings.exp case was a little weird
-	as it turns out trying to match a single blank line is probably harder
-	now than it used to be -- still, I suspect this is a pretty rare case,
-	so I think the benefits (improved anchoring) outweigh this small
-	downside (IMHO).
-
-2023-05-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix error message for $_gdb_maint_setting
-	I spotted this behaviour:
-
-	  (gdb) p $_gdb_maint_setting("xxx")
-	  First argument of $_gdb_maint_setting must be a valid setting of the 'show' command.
-
-	Notice that GDB claims I need to use a setting from the 'show'
-	command, which isn't correct for $_gdb_maint_setting, in this case I
-	need to use a setting from 'maintenance show'.
-
-	This same issue is present for $_gdb_maint_setting_str.
-
-	This commit fixes this minor issue.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-05-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/opt-out-not-implptr.exp for -m32
-	When running test-case gdb.dwarf2/opt-out-not-implptr.exp with target board
-	unix/-m32 we have:
-	...
-	(gdb) print noptr^M
-	$1 = {0, <optimized out>, <optimized out>, <optimized out>}^M
-	(gdb) FAIL: gdb.dwarf2/opt-out-not-implptr.exp: print noptr
-	...
-
-	The problem happens when evaluating this dwarf expression:
-	...
-	  <45> DW_AT_location : 13 byte block: 10 86 ea d7 d0 96 8e cf 92 5c 9f 93 8 \
-	  (DW_OP_constu: 6639779683436459270; DW_OP_stack_value; DW_OP_piece: 8)
-	...
-
-	The DW_OP_constu pushes a value with "generic type" on to the DWARF stack, and
-	the "generic type" has the size of an address on the target machine, which for
-	target board unix/-m32 is 4 bytes.  Consequently, the constant is abbreviated.
-
-	Next, the DW_OP_piece declares that the resulting 4-byte value is 8 bytes
-	large, and we hit this clause in rw_pieced_value:
-	...
-	            /* Use zeroes if piece reaches beyond stack value.  */
-	            if (p->offset + p->size > stack_value_size_bits)
-	              break;
-	...
-	and consequently get a zero.
-
-	We could just add require is_target_64 to the test-case, but instead, add a
-	32-bit case and require is_target_64 just for the 64-bit case.
-
-	Tested on x86_64-linux.
-
-2023-05-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Make is_64_target more robust
-	I ran test-case gdb.dwarf2/opt-out-not-implptr.exp with make-check-all.sh, and
-	with target board dwarf64 ran into:
-	...
-	FAIL: gdb.dwarf2/opt-out-not-implptr.exp: print noptr
-	...
-	due to is_target_64 failing because of:
-	...
-	builtin_spawn -ignore SIGHUP gcc -fno-stack-protector \
-	  -fdiagnostics-color=never -w -c -gdwarf64 -g -o is_64_target.o \
-	  is_64_target.c^M
-	gcc: error: '-gdwarf64' is ambiguous; use '-gdwarf-64' for DWARF version or \
-	  '-gdwarf -g64' for debug level^M
-	compiler exited with status 1
-	...
-
-	The FAIL is the same FAIL I run into with target board unix/-m32: is_target_64
-	fails for both cases.
-
-	The reason that is_target_64 is failing for target board dwarf64, is because
-	of using system compiler 7.5.0 which doesn't support -gdwarf64.
-
-	Fix this by making is_target_64 use nodebug instead of debug for compilation.
-
-	Tested on x86_64-linux.
-
-2023-05-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Fix wrapping for TERM=ansi
-	I. Auto-detected width (xterm vs. ansi)
-
-	Say we have a terminal with a width of 40 chars:
-	...
-	$ echo $COLUMNS
-	40
-	...
-
-	With TERM=xterm, we report a width of 40 chars:
-	...
-	$ TERM=xterm gdb
-	(gdb) show width
-	Number of characters gdb thinks are in a line is 40.
-	...
-
-	And with TERM=ansi, a width of 39 chars:
-	...
-	$ TERM=ansi gdb
-	(gdb) show width
-	Number of characters gdb thinks are in a line is 39.
-	...
-
-	Gdb uses readline to auto-detect screen size, and readline decides in the
-	TERM=ansi case that the terminal does not have reliable auto-wrap, and
-	consequently decides to hide the last terminal column from the readline user
-	(in other words GDB), hence we get 39 instead of 40.
-
-	II. Types of wrapping
-
-	Looking a bit more in detail inside gdb, it seems there are two types of
-	wrapping:
-	- readline wrapping (in other words, prompt edit wrapping), and
-	- gdb output wrapping (can be observed by issuing "info sources").
-	  This type of wrapping attempts to wrap some of the gdb output earlier
-	  than the indicated width, to not break lines in inconvenient places.
-
-	III. Readline wrapping, auto-detected screen size
-
-	Let's investigate readline wrapping with the auto-detected screen widths.
-
-	First, let's try with xterm:
-	...
-	$ TERM=xterm gdb
-	(gdb) 7890123456789012345678901234567890
-	123
-	...
-	That looks as expected, wrapping occurs after 40 chars.
-
-	Now, let's try with ansi:
-	...
-	$ TERM=ansi gdb
-	(gdb) 78901234567890123456789012345678
-	90123
-	...
-	It looks like wrapping occurred after 38, while readline should be capable of
-	wrapping after 39 chars.
-
-	This is caused by readline hiding the last column, twice.
-
-	In more detail:
-	- readline detects the screen width: 40,
-	- readline hides the last column, setting the readline screen width to 39,
-	- readline reports 39 to gdb as screen width,
-	- gdb sets its width setting to 39,
-	- gdb sets readline screen width to 39,
-	- readline hides the last column, again, setting the readline screen width to
-	  38.
-
-	This is reported as PR cli/30346.
-
-	IV. gdb output wrapping, auto-detected screen size
-
-	Say we set the terminal width to 56. With TERM=xterm, we have:
-	...
-	/home/abuild/rpmbuild/BUILD/glibc-2.31/csu/elf-init.c,
-	/data/vries/hello.c,
-	...
-	but with TERM=ansi:
-	...
-	/home/abuild/rpmbuild/BUILD/glibc-2.31/csu/elf-init.c, /
-	data/vries/hello.c,
-	...
-
-	So what happened here?  With TERM=ansi, the width setting is auto-detected to
-	55, and gdb assumes the terminal inserts a line break there, which it doesn't
-	because the terminal width is 56.
-
-	This is reported as PR cli/30411.
-
-	V. Fix PRs
-
-	Fix both mentioned PRs by taking into account the hidden column when readline
-	reports the screen width in init_page_info, and updating chars_per_line
-	accordingly.
-
-	Note that now we report the same width for both TERM=xterm and TERM=ansi,
-	which is much clearer.
-
-	The point where readline respectively expects or ensures wrapping is still
-	indicated by "maint info screen", for xterm:
-	...
-	Number of characters readline reports are in a line is 40.
-	...
-	and ansi:
-	...
-	Number of characters readline reports are in a line is 39.
-	...
-
-	VI. Testing
-
-	PR cli/30346 is covered by existing regression tests gdb.base/wrap-line.exp
-	and gdb.tui/wrap-line.exp, so remove the KFAILs there.
-
-	I didn't manage to come up with a regression test for PR cli/30411.  Perhaps
-	that would be easier if we had a maintenance command that echoes its arguments
-	while applying gdb output wrapping.
-
-	Tested on x86_64-linux.
-
-	PR cli/30346
-	PR cli/30411
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30346
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30411
-
-2023-05-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move a few more disassembler helper functions
-	... such that they wouldn't need forward declarations anymore. Note that
-	append_seg() already was suitably placed.
-
-	x86: move get<N>() disassembler helper functions
-	... such that none of them would need forward declarations anymore.
-
-	x86: slightly simplify i386_parse_name()
-	With the switch to parse_real_register() (commit 4faaa10f3fab) "bad_reg"
-	cannot come back anymore. Drop the respective check.
-
-2023-05-12  Jan Beulich  <jbeulich@suse.com>
-
-	gas: equates of registers
-	There are two problems: symbol_equated_p() doesn't recognize equates of
-	registers, and S_CAN_BE_REDEFINED() goes by section rather than by
-	expression type. Both together undermine .eqv and .equiv clearly meaning
-	to guard the involved symbols against re-definition (both ways).
-
-	To compensate pseudo_set() now using O_symbol and S_CAN_BE_REDEFINED()
-	now checking for O_register,
-	- for targets creating register symbols through symbol_{new,create}() ->
-	  symbol_init() -> S_SET_VALUE() (alpha, arc, dlx, ia64, m68k, mips,
-	  mmix, tic4x, tic54x, plus anything using cgen or itbl-ops), have
-	  symbol_init() set their expressions to O_register,
-	- x86'es parse_register() also can't go by section anymore when
-	  trying to "look through" equates; probably symbol_equated_p() should
-	  have been used there from the beginning, if only that had worked for
-	  equates of registers,
-	- various targets need to "look through" equates when parsing insn
-	  operands (which also helps transitive forward equates); perhaps even
-	  more ought to, but many don't look to consider the possibility of
-	  register equates in the first place.
-
-	This was uncovered by code reported in PR gas/30274 (duplicating
-	PR gas/30272), except that there .eqv was used when really .equ was
-	meant. Therefore that bug report is addressed here only in so far as
-	gas wouldn't crash anymore; the code there still won't assemble
-	successfully, just that now the issues there are properly diagnosed.
-
-2023-05-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-11  Tom Tromey  <tom@tromey.com>
-
-	Do not print <synthetic pointer> when piece is optimized out
-	A user reported a bug where printing a certain array of integer types
-	would result in the nonsensical:
-
-	(gdb) p l_126
-	$1 = {6639779683436459270, <synthetic pointer>, <synthetic pointer>, <synthetic pointer>}
-
-	I tracked this down to some issues in the DWARF expression code.
-	First, check_pieced_synthetic_pointer did not account for the
-	situation where a location expression does not describe all the bits
-	of a value -- in this case it returned true, meaning there is a
-	synthetic pointer, but in fact these bits are optimized out.  (It
-	turns out this incorrect output had already been erroneously tested
-	for as well.)
-
-	Next, rw_pieced_value did not mark these bits as optimized-out,
-	either.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30296
-
-2023-05-11  Aaron Merey  <amerey@redhat.com>
-
-	gdb/testsuite: Match file size in gdb.debuginfod/crc_mismatch.exp
-	gdb's debuginfod progress messages include the size of the file being
-	downloaded if the size information is available at the time the message
-	is printed.  For example:
-
-	    Downloading 10 MB separate debug info for /lib64/libxyz.so
-
-	This size information is omitted if it's not available at the time of
-	printing:
-
-	    Downloading separate debug info for /lib64/libxyz.so
-
-	A pattern in crc_mismatch.exp fails to be matched if a progress message
-	includes a file size.  Add a wildcard to the pattern so that it matches
-	the progress message whether or not it includes the file size.
-
-2023-05-11  Johnson Sun  <j3.soon777@gmail.com>
-
-	Disable out-of-scope watchpoints
-	Currently, when a local software watchpoint goes out of scope, GDB sets
-	the watchpoint's disposition to `delete at next stop' and then normal
-	stops (i.e., stop and wait for the next GDB command). When GDB normal
-	stops, it automatically deletes the breakpoints with their disposition
-	set to `delete at next stop'.
-
-	Suppose a Python script decides not to normal stop when a local
-	software watchpoint goes out of scope, the watchpoint will not be
-	automatically deleted even when its disposition is set to
-	`delete at next stop'.
-
-	Since GDB single-steps the program and tests the watched expression
-	after each instruction, not deleting the watchpoint causes the
-	watchpoint to be hit many more times than it should, as reported in
-	PR python/29603.
-
-	This was happening because the watchpoint is not deleted or disabled
-	when going out of scope.
-
-	This commit fixes this issue by disabling the watchpoint when going out
-	of scope. It also adds a test to ensure this feature isn't regressed in
-	the future.
-
-	Calling `breakpoint_auto_delete' on all kinds of stops (in
-	`fetch_inferior_event') seem to solve this issue, but is in fact
-	inappropriate, since `breakpoint_auto_delete' goes over all breakpoints
-	instead of just going through the bpstat chain (which only contains the
-	breakpoints that were hit right now).
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29603
-	Change-Id: Ia85e670b2bcba2799219abe4b6be3b582387e383
-
-2023-05-11  Tom Tromey  <tromey@adacore.com>
-
-	Add "scheduler-locking" to documentation index
-	I noticed that "scheduler-locking" does not appear in the index of the
-	gdb manual.  This patch corrects this oversight.
-
-2023-05-11  Joseph Myers  <joseph@codesourcery.com>
-
-	Add LDPT_REGISTER_CLAIM_FILE_HOOK_V2 linker plugin hook [GCC PR109128]
-	This is one part of the fix for GCC PR109128, along with a
-	corresponding GCC change.  Without this patch, what happens in the
-	linker, when an unused object in a .a file has offload data, is that
-	elf_link_is_defined_archive_symbol calls bfd_link_plugin_object_p,
-	which ends up calling the plugin's claim_file_handler, which then
-	records the object as one with offload data. That is, the linker never
-	decides to use the object in the first place, but use of this _p
-	interface (called as part of trying to decide whether to use the
-	object) results in the plugin deciding to use its offload data (and a
-	consequent mismatch in the offload data present at runtime).
-
-	The new hook allows the linker plugin to distinguish calls to
-	claim_file_handler that know the object is being used by the linker
-	(from ldmain.c:add_archive_element), from calls that don't know it's
-	being used by the linker (from elf_link_is_defined_archive_symbol); in
-	the latter case, the plugin should avoid recording the object as one
-	with offload data.
-
-		bfd/
-		* plugin.c (struct plugin_list_entry): Add claim_file_v2.
-		(register_claim_file_v2): New.
-		(try_load_plugin): Use LDPT_REGISTER_CLAIM_FILE_HOOK_V2.
-		(ld_plugin_object_p): Take second argument.
-		(bfd_link_plugin_object_p): Update call to ld_plugin_object_p.
-		(register_ld_plugin_object_p): Update argument prototype.
-		(bfd_plugin_object_p): Update call to ld_plugin_object_p.
-		* plugin.h (register_ld_plugin_object_p): Update argument
-		prototype.
-
-		include/
-		* plugin.api.h (ld_plugin_claim_file_handler_v2)
-		(ld_plugin_register_claim_file_v2)
-		(LDPT_REGISTER_CLAIM_FILE_HOOK_V2): New.
-		(struct ld_plugin_tv): Add tv_register_claim_file_v2.
-
-		ld/
-		* plugin.c (struct plugin): Add claim_file_handler_v2.
-		(LDPT_REGISTER_CLAIM_FILE_HOOK_V2): New.
-		(plugin_object_p): Add second argument.  Update call to
-		plugin_call_claim_file.
-		(register_claim_file_v2): New.
-		(set_tv_header): Handle LDPT_REGISTER_CLAIM_FILE_HOOK_V2.
-		(plugin_call_claim_file): Add argument known_used.
-		(plugin_maybe_claim): Update call to plugin_object_p.
-		* testplug.c, testplug2.c, testplug3.c, testplug4.c: Handle
-		LDPT_REGISTER_CLAIM_FILE_HOOK_V2.
-		* testsuite/ld-plugin/plugin-1.d, testsuite/ld-plugin/plugin-10.d,
-		testsuite/ld-plugin/plugin-11.d, testsuite/ld-plugin/plugin-13.d,
-		testsuite/ld-plugin/plugin-14.d, testsuite/ld-plugin/plugin-15.d,
-		testsuite/ld-plugin/plugin-16.d, testsuite/ld-plugin/plugin-17.d,
-		testsuite/ld-plugin/plugin-18.d, testsuite/ld-plugin/plugin-19.d,
-		testsuite/ld-plugin/plugin-2.d, testsuite/ld-plugin/plugin-26.d,
-		testsuite/ld-plugin/plugin-3.d, testsuite/ld-plugin/plugin-30.d,
-		testsuite/ld-plugin/plugin-4.d, testsuite/ld-plugin/plugin-5.d,
-		testsuite/ld-plugin/plugin-6.d, testsuite/ld-plugin/plugin-7.d,
-		testsuite/ld-plugin/plugin-8.d, testsuite/ld-plugin/plugin-9.d:
-		Update test expectations.
-
-2023-05-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix tui compact-source a bit more
-	Andrew pointed out that the behaviour as tested in gdb.tui/compact-source.exp
-	is incorrect:
-	...
-	0 +-compact-source.c--------------------------------------------------------+
-	1 |___3_{                                                                   |
-	2 |___4_  return 0;                                                         |
-	3 |___5_}                                                                   |
-	4 |___6_                                                                    |
-	5 |___7_                                                                    |
-	6 |___8_                                                                    |
-	7 |___9_                                                                    |
-	8 +-------------------------------------------------------------------------+
-	...
-
-	The last line number in the source file is 5, and there are 7 lines to display
-	source lines, so if we'd scroll all the way down, the first line number in the
-	source window would be 5, and the last one would be 11.
-
-	To represent 11 we'd need 2 digits, so we expect to see ___04_ here instead of
-	___4_, even though all line numbers currently in the src window (3-9) can be
-	represented with only 1 digit.
-
-	Fix this in tui_source_window::set_contents, by updating the computation of
-	max_line_nr:
-	...
-	-      int max_line_nr = std::max (lines_in_file, last_line_nr_in_window);
-	+      int max_line_nr = lines_in_file + nlines - 1;
-	...
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-05-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/rust: fix crash for expression debug with strings
-	While working on another patch I did this:
-
-	  (gdb) set debug expression 1
-	  (gdb) set language rust
-	  (gdb) p "foo"
-	  Operation: OP_AGGREGATE
-	   Type: &str
-
-	  Fatal signal: Segmentation fault
-	  ... etc ...
-
-	The problem is that the second field of the rust_aggregate_operation
-	is created as a nullptr, this can be seen in rust-parse.c. in the
-	function rust_parser::parse_string().
-
-	However, in expop.h, in the function dump_for_expression, we make the
-	assumption that the expressions will never be nullptr.
-
-	I did consider moving the nullptr handling into a new function
-	rust_aggregate_operation::dump, however, as the expression debug
-	dumping code is not exercised as much as it might be, I would rather
-	that this code be hardened and able to handle a nullptr without
-	crashing, so I propose that we add nullptr handling into the general
-	dump_for_expression function.  The behaviour is now:
-
-	  (gdb) set debug expression 1
-	  (gdb) set language rust
-	  (gdb) p "foo"
-	  Operation: OP_AGGREGATE
-	   Type: &str
-	   nullptr
-	   Vector:
-	    String: data_ptr
-	    Operation: UNOP_ADDR
-	     Operation: OP_STRING
-	      String: foo
-	    String: length
-	    Operation: OP_LONG
-	     Type: usize
-	     Constant: 3
-	  evaluation of this expression requires the target program to be active
-	  (gdb)
-
-	There's a new test to check for this case.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-10  Alan Modra  <amodra@gmail.com>
-
-	Re: stack overflow in debug_write_type
-	Apparently u.kindirect->slot can point at a NULL.
-
-		* debug.c (debug_write_type): Don't segfault on NULL indirect.
-
-2023-05-10  Luca Bonissi  <gcc@scarsita.it>
-
-	or1k relocation truncated to fit: R_OR1K_GOT16 even when using -mcmodel=large
-	  PR 30422
-	  * elf32-or1k.c (or1k_elf_relocate_section): Prescan for R_OR1K_GOT_AHI16 relocs as they may occur after R_OR1K_GOT16 relocs.
-
-2023-05-10  Nick Clifton  <nickc@redhat.com>
-
-	Add linker option to include local symbols in  the linker map.
-	  PR 16566
-	  * ldlang.c (ld_is_local_symbol): New function. (print_input_section): Add code to display local symbols in the section.
-	  * ldlex.h (enum option_values): Add OPTION_PRINT_MAP_LOCALS and OPTION_PRINT_MAP_LOCALS.
-	  * lexsup.c (ld_options[]): Add entries for --print-map-locals and --no-print-map-locals.
-	  * NEWS: Mention the new feature.
-	  * ld.h (struct ld_config_type): Add print_map_locals field.
-	  * ld.texi: Document the new command line option.
-	  * testsuite/ld-scripts/sizeof.s: Add a local symbol.
-	  * testsuite/ld-scripts/map-locals.d: New test control file.
-	  * testsuite/ld-scripts/map-address.exp: Run the new test.
-
-2023-05-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix tui compact-source
-	Consider a hello.c, with less than 10 lines:
-	...
-	$ wc -l hello.c
-	8 hello.c
-	...
-	and compiled with -g into an a.out.
-
-	With compact-source off:
-	...
-	$ gdb -q a.out \
-	    -ex "set tui border-kind ascii" \
-	    -ex "maint set tui-left-margin-verbose on" \
-	    -ex "set tui compact-source off" \
-	    -ex "tui enable"
-	...
-	we get:
-	...
-	+-./data/hello.c-----------------------+
-	|___000005_{                           |
-	|___000006_  printf ("hello\n");       |
-	|___000007_  return 0;                 |
-	|___000008_}                           |
-	|___000009_                            |
-	|___000010_                            |
-	|___000011_                            |
-	...
-	but with compact-source on:
-	...
-	+-./data/hello.c-----------------------+
-	|___5{                                 |
-	|___6  printf ("hello\n");             |
-	|___7  return 0;                       |
-	|___8}                                 |
-	|___9                                  |
-	|___1                                  |
-	|___1                                  |
-	...
-
-	There are a couple of problems with compact-source.
-
-	First of all the documentation mentions:
-	...
-	The default display uses more space for line numbers and starts the
-	source text at the next tab stop; the compact display uses only as
-	much space as is needed for the line numbers in the current file, and
-	only a single space to separate the line numbers from the source.
-	...
-
-	The bit about the default display and the next tab stop looks incorrect.  The
-	source doesn't start at a tab stop, instead it uses a single space to separate
-	the line numbers from the source.
-
-	Then the documentation mentions that there's single space in the compact
-	display, but evidently that's missing.
-
-	Then there's the fact that the line numbers "10" and "11" are both abbreviated
-	to "1" in the compact case.
-
-	The abbreviation is due to allocating space for <lines in source>, which is
-	8 for this example, and takes a single digit.  The line numbers though
-	continue past the end of the file, so fix this by allocating space for
-	max (<lines in source>, <last line in window>), which in this example takes 2
-	digits.
-
-	The missing space is due to some confusion about what the "1" here in
-	tui_source_window::set_contents represent:
-	...
-	      double l = log10 ((double) offsets->size ());
-	      m_digits = 1 + (int) l;
-	...
-
-	It could be the trailing space that's mentioned in tui-source.h:
-	...
-	  /* How many digits to use when formatting the line number.  This
-	     includes the trailing space.  */
-	  int m_digits;
-	...
-
-	Then again, it could be part of the calculation for the number of digits
-	needed for printing.  With this minimal example:
-	...
-	int main () {
-	  for (int i = 8; i <= 11; ++i) {
-	    double l = log10 ((double) i);
-	    printf ("%d %d\n", i, (int)l);
-	  }
-	  return 0;
-	}
-	...
-	we get:
-	...
-	$ ./a.out
-	8 0
-	9 0
-	10 1
-	11 1
-	...
-	which shows that the number of digits needed for printing i is
-	"1 + (int)log10 ((double) i)".
-
-	Fix this by introducing named variables needed_digits and trailing_space, each
-	adding 1.
-
-	With the fixes, we get for compact-source on:
-	...
-	+-./data/hello.c-----------------------+
-	|___05_{                               |
-	|___06_  printf ("hello\n");           |
-	|___07_  return 0;                     |
-	|___08_}                               |
-	|___09_                                |
-	|___10_                                |
-	|___11_                                |
-	|...
-
-	Also fix the documentation and help text to actually match effect of
-	compact-source.
-
-	Tested on x86_64-linux.
-
-2023-05-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-09  Dan Callaghan  <dan.callaghan@morsemicro.com>
-
-	Support higher baud rates when they are defined
-	On Linux at least, baud rate codes are defined up to B4000000. Allow the
-	user to select them if they are present in the system headers.
-
-	Change-Id: I393ff32e4a4b6127bdf97e3306ad5b6ebf7c934e
-
-2023-05-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix use-after-free in check_longjmp_breakpoint_for_call_dummy
-	Commit 7a8de0c33019 ("Remove ALL_BREAKPOINTS_SAFE") introduced a
-	use-after-free in the breakpoints iterations (see below for full ASan
-	report).  This makes gdb.base/stale-infcall.exp fail when GDB is build
-	with ASan.
-
-	check_longjmp_breakpoint_for_call_dummy iterates on all breakpoints,
-	possibly deleting the current breakpoint as well as related breakpoints.
-	The problem arises when a breakpoint in the B->related_breakpoint chain
-	is also B->next.  In that case, deleting that related breakpoint frees
-	the breakpoint that all_breakpoints_safe has saved.
-
-	The old code worked around that by manually changing B_TMP, which was
-	the next breakpoint saved by the "safe iterator":
-
-		while (b->related_breakpoint != b)
-		  {
-		    if (b_tmp == b->related_breakpoint)
-		      b_tmp = b->related_breakpoint->next;
-		    delete_breakpoint (b->related_breakpoint);
-		  }
-
-	(Note that this seemed to assume that b->related_breakpoint->next was
-	the same as b->next->next, not sure this is guaranteed.)
-
-	The new code kept the B_TMP variable, but it's not useful in that
-	context.  We can't go change the next breakpoint as saved by the safe
-	iterator, like we did before.  I suggest fixing that by saving the
-	breakpoints to delete in a map and deleting them all at the end.
-
-	Here's the full ASan report:
-
-	    (gdb) PASS: gdb.base/stale-infcall.exp: continue to breakpoint: break-run1
-	    print infcall ()
-	    =================================================================
-	    ==47472==ERROR: AddressSanitizer: heap-use-after-free on address 0x611000034980 at pc 0x563f7012c7bc bp 0x7ffdf3804d70 sp 0x7ffdf3804d60
-	    READ of size 8 at 0x611000034980 thread T0
-	        #0 0x563f7012c7bb in next_iterator<breakpoint>::operator++() /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/next-iterator.h:66
-	        #1 0x563f702ce8c0 in basic_safe_iterator<next_iterator<breakpoint> >::operator++() /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/safe-iterator.h:84
-	        #2 0x563f7021522a in check_longjmp_breakpoint_for_call_dummy(thread_info*) /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:7611
-	        #3 0x563f714567b1 in process_event_stop_test /home/smarchi/src/binutils-gdb/gdb/infrun.c:6881
-	        #4 0x563f71454e07 in handle_signal_stop /home/smarchi/src/binutils-gdb/gdb/infrun.c:6769
-	        #5 0x563f7144b680 in handle_inferior_event /home/smarchi/src/binutils-gdb/gdb/infrun.c:6023
-	        #6 0x563f71436165 in fetch_inferior_event() /home/smarchi/src/binutils-gdb/gdb/infrun.c:4387
-	        #7 0x563f7136ff51 in inferior_event_handler(inferior_event_type) /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:42
-	        #8 0x563f7168038d in handle_target_event /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:4219
-	        #9 0x563f72fccb6d in handle_file_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:573
-	        #10 0x563f72fcd503 in gdb_wait_for_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:694
-	        #11 0x563f72fcaf2b in gdb_do_one_event(int) /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:217
-	        #12 0x563f7262b9bb in wait_sync_command_done() /home/smarchi/src/binutils-gdb/gdb/top.c:426
-	        #13 0x563f7137a7c3 in run_inferior_call /home/smarchi/src/binutils-gdb/gdb/infcall.c:650
-	        #14 0x563f71381295 in call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) /home/smarchi/src/binutils-gdb/gdb/infcall.c:1332
-	        #15 0x563f7137c0e2 in call_function_by_hand(value*, type*, gdb::array_view<value*>) /home/smarchi/src/binutils-gdb/gdb/infcall.c:780
-	        #16 0x563f70fe5960 in evaluate_subexp_do_call(expression*, noside, value*, gdb::array_view<value*>, char const*, type*) /home/smarchi/src/binutils-gdb/gdb/eval.c:649
-	        #17 0x563f70fe6617 in expr::operation::evaluate_funcall(type*, expression*, noside, char const*, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:677
-	        #18 0x563f6fd19668 in expr::operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/expression.h:136
-	        #19 0x563f70fe6bba in expr::var_value_operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:689
-	        #20 0x563f704b71dc in expr::funcall_operation::evaluate(type*, expression*, noside) /home/smarchi/src/binutils-gdb/gdb/expop.h:2219
-	        #21 0x563f70fe0f02 in expression::evaluate(type*, noside) /home/smarchi/src/binutils-gdb/gdb/eval.c:110
-	        #22 0x563f71b1373e in process_print_command_args /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1319
-	        #23 0x563f71b1391b in print_command_1 /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1332
-	        #24 0x563f71b147ec in print_command /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1465
-	        #25 0x563f706029b8 in do_simple_func /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:95
-	        #26 0x563f7061972a in cmd_func(cmd_list_element*, char const*, int) /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2735
-	        #27 0x563f7262d0ef in execute_command(char const*, int) /home/smarchi/src/binutils-gdb/gdb/top.c:572
-	        #28 0x563f7100ed9c in command_handler(char const*) /home/smarchi/src/binutils-gdb/gdb/event-top.c:543
-	        #29 0x563f7101014b in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /home/smarchi/src/binutils-gdb/gdb/event-top.c:779
-	        #30 0x563f72777942 in tui_command_line_handler /home/smarchi/src/binutils-gdb/gdb/tui/tui-interp.c:104
-	        #31 0x563f7100d059 in gdb_rl_callback_handler /home/smarchi/src/binutils-gdb/gdb/event-top.c:250
-	        #32 0x7f5a80418246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
-	        #33 0x563f7100ca06 in gdb_rl_callback_read_char_wrapper_noexcept /home/smarchi/src/binutils-gdb/gdb/event-top.c:192
-	        #34 0x563f7100cc5e in gdb_rl_callback_read_char_wrapper /home/smarchi/src/binutils-gdb/gdb/event-top.c:225
-	        #35 0x563f728c70db in stdin_event_handler /home/smarchi/src/binutils-gdb/gdb/ui.c:155
-	        #36 0x563f72fccb6d in handle_file_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:573
-	        #37 0x563f72fcd503 in gdb_wait_for_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:694
-	        #38 0x563f72fcb15c in gdb_do_one_event(int) /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:264
-	        #39 0x563f7177ec1c in start_event_loop /home/smarchi/src/binutils-gdb/gdb/main.c:412
-	        #40 0x563f7177f12e in captured_command_loop /home/smarchi/src/binutils-gdb/gdb/main.c:476
-	        #41 0x563f717846e4 in captured_main /home/smarchi/src/binutils-gdb/gdb/main.c:1320
-	        #42 0x563f71784821 in gdb_main(captured_main_args*) /home/smarchi/src/binutils-gdb/gdb/main.c:1339
-	        #43 0x563f6fcedfbd in main /home/smarchi/src/binutils-gdb/gdb/gdb.c:32
-	        #44 0x7f5a7e43984f  (/usr/lib/libc.so.6+0x2384f) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
-	        #45 0x7f5a7e439909 in __libc_start_main (/usr/lib/libc.so.6+0x23909) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
-	        #46 0x563f6fcedd84 in _start (/home/smarchi/build/binutils-gdb/gdb/gdb+0xafb0d84) (BuildId: 50bd32e6e9d5e84543e9897b8faca34858ca3995)
-
-	    0x611000034980 is located 0 bytes inside of 208-byte region [0x611000034980,0x611000034a50)
-	    freed by thread T0 here:
-	        #0 0x7f5a7fce312a in operator delete(void*, unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:164
-	        #1 0x563f702bd1fa in momentary_breakpoint::~momentary_breakpoint() /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:304
-	        #2 0x563f702771c5 in delete_breakpoint(breakpoint*) /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:12404
-	        #3 0x563f702150a7 in check_longjmp_breakpoint_for_call_dummy(thread_info*) /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:7673
-	        #4 0x563f714567b1 in process_event_stop_test /home/smarchi/src/binutils-gdb/gdb/infrun.c:6881
-	        #5 0x563f71454e07 in handle_signal_stop /home/smarchi/src/binutils-gdb/gdb/infrun.c:6769
-	        #6 0x563f7144b680 in handle_inferior_event /home/smarchi/src/binutils-gdb/gdb/infrun.c:6023
-	        #7 0x563f71436165 in fetch_inferior_event() /home/smarchi/src/binutils-gdb/gdb/infrun.c:4387
-	        #8 0x563f7136ff51 in inferior_event_handler(inferior_event_type) /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:42
-	        #9 0x563f7168038d in handle_target_event /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:4219
-	        #10 0x563f72fccb6d in handle_file_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:573
-	        #11 0x563f72fcd503 in gdb_wait_for_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:694
-	        #12 0x563f72fcaf2b in gdb_do_one_event(int) /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:217
-	        #13 0x563f7262b9bb in wait_sync_command_done() /home/smarchi/src/binutils-gdb/gdb/top.c:426
-	        #14 0x563f7137a7c3 in run_inferior_call /home/smarchi/src/binutils-gdb/gdb/infcall.c:650
-	        #15 0x563f71381295 in call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) /home/smarchi/src/binutils-gdb/gdb/infcall.c:1332
-	        #16 0x563f7137c0e2 in call_function_by_hand(value*, type*, gdb::array_view<value*>) /home/smarchi/src/binutils-gdb/gdb/infcall.c:780
-	        #17 0x563f70fe5960 in evaluate_subexp_do_call(expression*, noside, value*, gdb::array_view<value*>, char const*, type*) /home/smarchi/src/binutils-gdb/gdb/eval.c:649
-	        #18 0x563f70fe6617 in expr::operation::evaluate_funcall(type*, expression*, noside, char const*, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:677
-	        #19 0x563f6fd19668 in expr::operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/expression.h:136
-	        #20 0x563f70fe6bba in expr::var_value_operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:689
-	        #21 0x563f704b71dc in expr::funcall_operation::evaluate(type*, expression*, noside) /home/smarchi/src/binutils-gdb/gdb/expop.h:2219
-	        #22 0x563f70fe0f02 in expression::evaluate(type*, noside) /home/smarchi/src/binutils-gdb/gdb/eval.c:110
-	        #23 0x563f71b1373e in process_print_command_args /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1319
-	        #24 0x563f71b1391b in print_command_1 /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1332
-	        #25 0x563f71b147ec in print_command /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1465
-	        #26 0x563f706029b8 in do_simple_func /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:95
-	        #27 0x563f7061972a in cmd_func(cmd_list_element*, char const*, int) /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2735
-	        #28 0x563f7262d0ef in execute_command(char const*, int) /home/smarchi/src/binutils-gdb/gdb/top.c:572
-	        #29 0x563f7100ed9c in command_handler(char const*) /home/smarchi/src/binutils-gdb/gdb/event-top.c:543
-
-	    previously allocated by thread T0 here:
-	        #0 0x7f5a7fce2012 in operator new(unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:95
-	        #1 0x563f7029a9a3 in new_momentary_breakpoint<program_space*&, frame_id&, int&> /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:8129
-	        #2 0x563f702212f6 in momentary_breakpoint_from_master /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:8169
-	        #3 0x563f70212db1 in set_longjmp_breakpoint_for_call_dummy() /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:7582
-	        #4 0x563f713804db in call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) /home/smarchi/src/binutils-gdb/gdb/infcall.c:1260
-	        #5 0x563f7137c0e2 in call_function_by_hand(value*, type*, gdb::array_view<value*>) /home/smarchi/src/binutils-gdb/gdb/infcall.c:780
-	        #6 0x563f70fe5960 in evaluate_subexp_do_call(expression*, noside, value*, gdb::array_view<value*>, char const*, type*) /home/smarchi/src/binutils-gdb/gdb/eval.c:649
-	        #7 0x563f70fe6617 in expr::operation::evaluate_funcall(type*, expression*, noside, char const*, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:677
-	        #8 0x563f6fd19668 in expr::operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/expression.h:136
-	        #9 0x563f70fe6bba in expr::var_value_operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:689
-	        #10 0x563f704b71dc in expr::funcall_operation::evaluate(type*, expression*, noside) /home/smarchi/src/binutils-gdb/gdb/expop.h:2219
-	        #11 0x563f70fe0f02 in expression::evaluate(type*, noside) /home/smarchi/src/binutils-gdb/gdb/eval.c:110
-	        #12 0x563f71b1373e in process_print_command_args /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1319
-	        #13 0x563f71b1391b in print_command_1 /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1332
-	        #14 0x563f71b147ec in print_command /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1465
-	        #15 0x563f706029b8 in do_simple_func /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:95
-	        #16 0x563f7061972a in cmd_func(cmd_list_element*, char const*, int) /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2735
-	        #17 0x563f7262d0ef in execute_command(char const*, int) /home/smarchi/src/binutils-gdb/gdb/top.c:572
-	        #18 0x563f7100ed9c in command_handler(char const*) /home/smarchi/src/binutils-gdb/gdb/event-top.c:543
-	        #19 0x563f7101014b in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /home/smarchi/src/binutils-gdb/gdb/event-top.c:779
-	        #20 0x563f72777942 in tui_command_line_handler /home/smarchi/src/binutils-gdb/gdb/tui/tui-interp.c:104
-	        #21 0x563f7100d059 in gdb_rl_callback_handler /home/smarchi/src/binutils-gdb/gdb/event-top.c:250
-	        #22 0x7f5a80418246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
-
-	Change-Id: Id00c17ab677f847fbf4efdf0f4038373668d3d88
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-05-09  Enze Li  <enze.li@gmx.com>
-
-	Correct a spelling mistake in the binutils README file.
-
-2023-05-09  Alan Modra  <amodra@gmail.com>
-
-	stack overflow in debug_write_type
-	Another fuzzer attack.  This one was a "set" with elements using an
-	indirect type pointing back at the set.  The existing recursion check
-	only prevented simple recursion.
-
-		* debug.c (struct debug_type_s): Add mark.
-		(debug_write_type): Set mark and check before recursing into
-		indirect types.
-
-2023-05-09  Alan Modra  <amodra@gmail.com>
-
-	alpha-vms reloc sanity check
-	Stops fuzzed files triggering reads past the end of the reloc buffer.
-
-		* vms-alpha.c (alpha_vms_slurp_relocs): Sanity check reloc records.
-
-2023-05-09  Alan Modra  <amodra@gmail.com>
-
-	regen ld/Makefile.in
-
-2023-05-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-08  John Baldwin  <jhb@FreeBSD.org>
-
-	gdbserver: Clear upper ZMM registers in the right location.
-	This was previously clearing the upper 32 bytes of ZMM0-15 rather than
-	ZMM16-31.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-05-08  John Baldwin  <jhb@FreeBSD.org>
-
-	x86-fbsd-nat: Add missing public label.
-	These two methods are both overrides of public methods in base
-	classes.
-
-2023-05-08  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb: Avoid warning for the jump command inside an inline function.
-	When stopped inside an inline function, trying to jump to a different line
-	of the same function currently results in a warning about jumping to another
-	function.  Fix this by taking inline functions into account.
-
-	Before:
-	  Breakpoint 1, function_inline (x=510) at jump-inline.cpp:22
-	  22        a = a + x;             /* inline-funct */
-	  (gdb) j 21
-	  Line 21 is not in `function_inline(int)'.  Jump anyway? (y or n)
-
-	After:
-	  Breakpoint 2, function_inline (x=510) at jump-inline.cpp:22
-	  22        a = a + x;            /* inline-funct */
-	  (gdb) j 21
-	  Continuing at 0x400679.
-
-	  Breakpoint 1, function_inline (x=510) at jump-inline.cpp:21
-	  21        a += 1020 + a;                /* increment-funct */
-
-	This was regression-tested on X86-64 Linux.
-
-	Co-Authored-by: Cristian Sandu <cristian.sandu@intel.com>
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-08  Alan Modra  <amodra@gmail.com>
-
-	pe.em and pep.em make_import_fixup
-	This is a little cleanup that I made when looking at pr30343 that
-	makes it more obvious that make_import_fixup in both files are
-	identical (and in fact the new pep.em read_addend could be used in
-	both files).
-
-		* emultempl/pep.em (read_addend): Extract from..
-		(make_import_fixup): ..here.
-		* emultempl/pe.em (read_addend): Similarly.
-		(make_import_fixup): Similarly.  Add debug code from pep.em.
-
-2023-05-08  Alan Modra  <amodra@gmail.com>
-
-	PR30343, LTO ignores linker reference to _pei386_runtime_relocator
-	Make a reference to _pei386_runtime_relocator before LTO recompilation.
-	This is done regardless of whether such a reference will be used,
-	because it can't be known whether it is needed before LTO.
-
-	I also found it necessary to enable long section names for the bfd
-	created in make_runtime_pseudo_reloc, because otherwise when writing
-	it out to the bfd-in-memory we get the section written as .rdata_r
-	which when read back in leads to a linker warning ".rdata_r: section
-	below image base" and likely runtime misbehaviour.
-
-		PR 30343
-		* emultempl/pe.em (make_runtime_ref): New function.
-		(gld${EMULATION_NAME}_before_plugin_all_symbols_read): New function.
-		(LDEMUL_BEFORE_PLUGIN_ALL_SYMBOLS_READ): Define.
-		* emultempl/pep.em: Similarly to pe.em.
-		* pe-dll.c (make_runtime_pseudo_reloc): Set long section names.
-
-2023-05-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-07  Tom Tromey  <tom@tromey.com>
-
-	Remove parameter from select_source_symtab
-	I noticed that select_source_symtab is only ever called with nullptr
-	as an argument, so this patch removes the parameter and associated
-	logic.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-05-07  Tom Tromey  <tom@tromey.com>
-
-	Remove ALL_BREAKPOINTS_SAFE
-	There's just a single remaining use of the ALL_BREAKPOINTS_SAFE macro;
-	this patch replaces it with a for-each and an explicit temporary
-	variable.
-
-	Remove ALL_DICT_SYMBOLS
-	This replaces ALL_DICT_SYMBOLS with an iterator so that for-each can
-	be used.
-
-	Remove ALL_OBJFILE_OSECTIONS
-	This replaces ALL_OBJFILE_OSECTIONS with an iterator so that for-each
-	can be used.
-
-	Rename objfile::sections
-	I think objfile::sections makes sense as the name of the method to
-	iterate over an objfile's sections, so this patch renames the existing
-	field to objfile::sections_start in preparation for that.
-
-2023-05-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-06  Tom Tromey  <tom@tromey.com>
-
-	Allow pretty-print of static members
-	Python pretty-printers haven't applied to static members for quite
-	some time.  I tracked this down to the call to cp_print_value_fields
-	in cp_print_static_field -- it doesn't let pretty-printers have a
-	chance to print the value.  This patch fixes the problem.
-
-	The way that static members are handled is very weird to me.  I tend
-	to think this should be done more globally, like in value_print.
-	However, I haven't made any big change.
-
-	Reviewed-by:  Keith Seitz <keiths@redhat.com>
-	Tested-by:  Keith Seitz <keiths@redhat.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30057
-
-2023-05-06  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	gas: documents .gnu_attribute Tag_GNU_MIPS_ABI_MSA
-	It is added since 2016 by
-	  Add support for .MIPS.abiflags and .gnu.attributes sections
-	  b52717c0e104eb603e8189c3c0d3658ef5d903f5
-	But never documented.
-
-2023-05-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-05  Tom Tromey  <tromey@adacore.com>
-
-	Filter out types from DAP scopes request
-	The DAP scopes request examines the symbols in a block tree, but
-	neglects to omit types.  This patch fixes the problem.
-
-2023-05-05  Tom Tromey  <tromey@adacore.com>
-
-	Use discrete_position in ada-valprint.c
-	I found a couple of spots in ada-valprint.c that use an explicit loop,
-	but where discrete_position could be used instead.
-
-	Reviewed-by:  Keith Seitz <keiths@redhat.com>
-
-2023-05-05  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add mechanism to manage Python initialization functions
-	Currently, when we add a new python sub-system to GDB,
-	e.g. py-inferior.c, we end up having to create a new function like
-	gdbpy_initialize_inferior, which then has to be called from the
-	function do_start_initialization in python.c.
-
-	In some cases (py-micmd.c and py-tui.c), we have two functions
-	gdbpy_initialize_*, and gdbpy_finalize_*, with the second being called
-	from finalize_python which is also in python.c.
-
-	This commit proposes a mechanism to manage these initialization and
-	finalization calls, this means that adding a new Python subsystem will
-	no longer require changes to python.c or python-internal.h, instead,
-	the initialization and finalization functions will be registered
-	directly from the sub-system file, e.g. py-inferior.c, or py-micmd.c.
-
-	The initialization and finalization functions are managed through a
-	new class gdbpy_initialize_file in python-internal.h.  This class
-	contains a single global vector of all the initialization and
-	finalization functions.
-
-	In each Python sub-system we create a new gdbpy_initialize_file
-	object, the object constructor takes care of registering the two
-	callback functions.
-
-	Now from python.c we can call static functions on the
-	gdbpy_initialize_file class which take care of walking the callback
-	list and invoking each callback in turn.
-
-	To slightly simplify the Python sub-system files I added a new macro
-	GDBPY_INITIALIZE_FILE, which hides the need to create an object.  We
-	can now just do this:
-
-	  GDBPY_INITIALIZE_FILE (gdbpy_initialize_registers);
-
-	One possible problem with this change is that there is now no
-	guaranteed ordering of how the various sub-systems are initialized (or
-	finalized).  To try and avoid dependencies creeping in I have added a
-	use of the environment variable GDB_REVERSE_INIT_FUNCTIONS, this is
-	the same environment variable used in the generated init.c file.
-
-	Just like with init.c, when this environment variable is set we
-	reverse the list of Python initialization (and finalization)
-	functions.  As there is already a test that starts GDB with the
-	environment variable set then this should offer some level of
-	protection against dependencies creeping in - though for full
-	protection I guess we'd need to run all gdb.python/*.exp tests with
-	the variable set.
-
-	I have tested this patch with the environment variable set, and saw no
-	regressions, so I think we are fine right now.
-
-	One other change of note was for gdbpy_initialize_gdb_readline, this
-	function previously returned void.  In order to make this function
-	have the correct signature I've updated its return type to int, and we
-	now return 0 to indicate success.
-
-	All of the other initialize (and finalize) functions have been made
-	static within their respective sub-system files.
-
-	There should be no user visible changes after this commit.
-
-2023-05-05  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: more newline pattern cleanup
-	After this commit:
-
-	  commit e2f620135d92f7cd670af4e524fffec7ac307666
-	  Date:   Thu Mar 30 13:26:25 2023 +0100
-
-	      gdb/testsuite: change newline patterns used in gdb_test
-
-	It was pointed out in PR gdb/30403 that the same patterns can be found
-	in other lib/gdb.exp procs and that it would probably be a good idea
-	if these procs remained in sync with gdb_test.  Actually, the bug
-	specifically calls out gdb_test_multiple when using with '-wrap', but
-	I found a couple of other locations in gdb_continue_to_breakpoint,
-	gdb_test_multiline, get_valueof, and get_local_valueof.
-
-	In all these locations one or both of the following issues are
-	addressed:
-
-	  1. A leading pattern of '[\r\n]*' is pointless.  If there is a
-	  newline it will be matched, but if there is not then the testsuite
-	  doesn't care.  Also, as expect is happy to skip non-matched output
-	  at the start of a pattern, if there is a newline expect is happy to
-	  skip over it before matching the rest.  As such, this leading
-	  pattern is removed.
-
-	  2. Using '\[\r\n\]*$gdb_prompt' means that we will swallow
-	  unexpected blank lines at the end of a command's output, but also,
-	  if the pattern from the test script ends with a '\r', '\n', or '.'
-	  then these will partially match the trailing newline, with the
-	  remainder of the newline matched by the pattern from gdb.exp.  This
-	  split matching doesn't add any value, it's just something that has
-	  appeared as a consequence of how gdb.exp was originally written.  In
-	  this case the '\[\r\n\]*' is replaced with '\r\n'.
-
-	I've rerun the testsuite and fixed the regressions that I saw, these
-	were places where GDB emits a blank line at the end of the command
-	output, which we now need to explicitly match in the test script, this
-	was for:
-
-	  gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
-	  gdb.guile/guile.exp
-	  gdb.python/python.exp
-
-	Or a location where the test script was matching part of the newline
-	sequence, while gdb.exp was previously matching the remainder of the
-	newline sequence.  Now we rely on gdb.exp to match the complete
-	newline sequence, this was for:
-
-	  gdb.base/commands.exp
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30403
-
-2023-05-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Generate long string in gdb.base/page.exp
-	I noticed in gdb.base/page.exp:
-	...
-	set fours [string repeat 4 40]
-	...
-	but then shortly afterwards:
-	...
-	    [list 1\r\n 2\r\n 3\r\n 444444444444444444444444444444]
-	...
-
-	Summarize the long string in the same way using string repeat:
-	...
-	    [list 1\r\n 2\r\n 3\r\n [string repeat 4 30]]
-	...
-
-	Tested on x86_64-linux.
-
-2023-05-05  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: tighten patterns in build-id-no-debug-warning.exp
-	Tighten the expected output pattern in the test script:
-
-	  gdb.debuginfod/build-id-no-debug-warning.exp
-
-	While working on some other patch I broke GDB such that this warning:
-
-	  warning: "FILENAME": separate debug info file has no debug info
-
-	(which is generated in build-id.c) didn't actually include the
-	FILENAME any more -- yet this test script continued to pass.  It turns
-	out that this script doesn't actually check for FILENAME.
-
-	This commit extends the test pattern to check for the full warning
-	string, including FILENAME, and also removes some uses of '.*' to make
-	the test stricter.
-
-2023-05-05  Tom Tromey  <tom@tromey.com>
-
-	Simplify decode_locdesc
-	While looking into another bug, I noticed that the DWARF cooked
-	indexer picks up an address for this symbol:
-
-	 <1><82>: Abbrev Number: 2 (DW_TAG_variable)
-	    <83>   DW_AT_specification: <0x9f>
-	    <87>   DW_AT_location    : 10 byte block: e 0 0 0 0 0 0 0 0 e0 	(DW_OP_const8u: 0 0; DW_OP_GNU_push_tls_address or DW_OP_HP_unknown)
-	    <92>   DW_AT_linkage_name: (indirect string, offset: 0x156): _ZN9container8tlsvar_0E
-
-	This happens because decode_locdesc allows the use of
-	DW_OP_GNU_push_tls_address.
-
-	This didn't make sense to me.  I looked into it a bit more, and I
-	think decode_locdesc is used in three ways:
-
-	1. Find a constant address of a symbol that happens to be encoded as a
-	   location expression.
-
-	2. Find the offset of a function in a virtual table.  (This one should
-	   probably be replaced by code to just evaluate the expression in
-	   gnu-v3-abi.c -- but there's no point yet because no compiler
-	   actually seems to emit correct DWARF here, see the bug linked in
-	   the patch.)
-
-	3. Find the offset of a field, if the offset is a constant.
-
-	None of these require TLS.
-
-	This patch simplifies decode_locdesc by removing any opcodes that
-	don't fit into the above.  It also changes the API a little, to make
-	it less difficult to use.
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-05-05  Tom Tromey  <tom@tromey.com>
-
-	Simplify auto_load_expand_dir_vars and remove substitute_path_component
-	This simplifies auto_load_expand_dir_vars to first split the string,
-	then do any needed substitutions.  This was suggested by Simon, and is
-	much simpler than the current approach.
-
-	Then this patch also removes substitute_path_component, as it is no
-	longer called.  This is nice because it helps with the long term goal
-	of removing utils.h.
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-05-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.base/wrap-line.exp
-	Add a test-case that tests prompt edit wrapping in CLI, both
-	for TERM=xterm and TERM=ansi, both with auto-detected and hard-coded width.
-
-	In the TERM=ansi case with auto-detected width we run into PR cli/30346, so
-	add a KFAIL for that failure mode.
-
-	Tested on x86_64-linux.
-
-2023-05-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.tui/wrap-line.exp
-	Add a test-case that tests prompt edit wrapping behaviour in the tuiterm, both
-	for CLI and TUI, both with auto-detected and hard-coded width.
-
-	In the CLI case with auto-detected width we run into PR cli/30411, so add a
-	KFAIL for that failure mode.
-
-	Tested on x86_64-linux.
-
-2023-05-05  Nick Clifton  <nickc@redhat.com>
-
-	Debug info is lost for functions only called from functions marked with cmse_nonsecure_entr
-	  PR 30354
-	  * elf32-arm.c (elf32_arm_gc_mark_extra_sections): If any debug sections are marked then rerun the extra marking in order to pick up any dependencies.
-
-2023-05-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-04  Bruno Larsen  <blarsen@redhat.com>
-
-	Revert "gdb/testsuite: add KFAILs to gdb.reverse/step-reverse.exp"
-	This reverts commit 476410b3bca1389ee69e9c8fa18aaee16793a56d.
-
-	One of Simon's recent commits (2a740b3ba4c9f39c86dd75e0914ee00942cab471)
-	changed the way recording a remote target works and fixed the underlying
-	issue of the bug, so the KFails can be removed from the test.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-05-04  Gareth Rees  <grees@undo.io>
-
-	Don't treat references to compound values as "simple".
-	SUMMARY
-
-	The '--simple-values' argument to '-stack-list-arguments' and similar
-	GDB/MI commands does not take reference types into account, so that
-	references to arbitrarily large structures are considered "simple" and
-	printed. This means that the '--simple-values' argument cannot be used
-	by IDEs when tracing the stack due to the time taken to print large
-	structures passed by reference.
-
-	DETAILS
-
-	Various GDB/MI commands ('-stack-list-arguments', '-stack-list-locals',
-	'-stack-list-variables' and so on) take a PRINT-VALUES argument which
-	may be '--no-values' (0), '--all-values' (1) or '--simple-values' (2).
-	In the '--simple-values' case, the command is supposed to print the
-	name, type, and value of variables with simple types, and print only the
-	name and type of variables with compound types.
-
-	The '--simple-values' argument ought to be suitable for IDEs that need
-	to update their user interface with the program's call stack every time
-	the program stops. However, it does not take C++ reference types into
-	account, and this makes the argument unsuitable for this purpose.
-
-	For example, consider the following C++ program:
-
-	    struct s {
-	        int v[10];
-	    };
-
-	    int
-	    sum(const struct s &s)
-	    {
-	        int total = 0;
-	        for (int i = 0; i < 10; ++i) total += s.v[i];
-	        return total;
-	    }
-
-	    int
-	    main(void)
-	    {
-	        struct s s = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } };
-	        return sum(s);
-	    }
-
-	If we start GDB in MI mode and continue to 'sum', the behaviour of
-	'-stack-list-arguments' is as follows:
-
-	    (gdb)
-	    -stack-list-arguments --simple-values
-	    ^done,stack-args=[frame={level="0",args=[{name="s",type="const s &",value="@0x7fffffffe310: {v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}"}]},frame={level="1",args=[]}]
-
-	Note that the value of the argument 's' was printed, even though 's' is
-	a reference to a structure, which is not a simple value.
-
-	See https://github.com/microsoft/MIEngine/pull/673 for a case where this
-	behaviour caused Microsoft to avoid the use of '--simple-values' in
-	their MIEngine debug adapter, because it caused Visual Studio Code to
-	take too long to refresh the call stack in the user interface.
-
-	SOLUTIONS
-
-	There are two ways we could fix this problem, depending on whether we
-	consider the current behaviour to be a bug.
-
-	1. If the current behaviour is a bug, then we can update the behaviour
-	   of '--simple-values' so that it takes reference types into account:
-	   that is, a value is simple if it is neither an array, struct, or
-	   union, nor a reference to an array, struct or union.
-
-	   In this case we must add a feature to the '-list-features' command so
-	   that IDEs can detect that it is safe to use the '--simple-values'
-	   argument when refreshing the call stack.
-
-	2. If the current behaviour is not a bug, then we can add a new option
-	   for the PRINT-VALUES argument, for example, '--scalar-values' (3),
-	   that would be suitable for use by IDEs.
-
-	   In this case we must add a feature to the '-list-features' command
-	   so that IDEs can detect that the '--scalar-values' argument is
-	   available for use when refreshing the call stack.
-
-	PATCH
-
-	This patch implements solution (1) as I think the current behaviour of
-	not printing structures, but printing references to structures, is
-	contrary to reasonable expectation.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29554
-
-2023-05-04  Nick Clifton  <nickc@redhat.com>
-
-	Stop the linker from loosing the entry point for COFF/PE code when compiling with LTO enabled.
-	  PR 30300
-	  * emultempl/pep.em (set_entry_point): Add an undefined reference to the entry point if it has been constructed heuristically.
-	  * emultempl/pe.em (set_entry_point): Likewise.
-
-2023-05-04  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-	ld: pru: Place exception-handling sections correctly
-	  * scripttempl/pru.sc (OUTPUT_SECTION_ALIGN): New helper variable to place at end of DMEM output sections.
-	  (.data): Use the helper variable.
-	  (.eh_frame): New output section.
-	  (.gnu_extab): Ditto.
-	  (.gcc_except_table): Ditto.
-	  (.resource_table): Use the helper variable.
-
-2023-05-04  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: tighten post-relocation-operator separator expectation
-	As per the spec merely a blank isn't okay as a separator, the operand
-	to the relocation function ought to be parenthesized. Enforcing this
-	then also eliminates an inconsistency in that
-
-		lui	t0, %hi sym
-		lui	t0, %hi 0x1000
-
-	were accepted, but
-
-		lui	t0, %hi +sym
-		lui	t0, %hi -0x1000
-
-	were not.
-
-2023-05-04  Ilya Leoshkevich  <iii@linux.ibm.com>
-
-	gas: fix building tc-bpf.c on s390x
-	char is unsigned on s390x, so there are a lot of warnings like:
-
-	    gas/config/tc-bpf.c: In function 'get_token':
-	    gas/config/tc-bpf.c:900:14: error: comparison is always false due to limited range of data type [-Werror=type-limits]
-	      900 |       if (ch == EOF || len > MAX_TOKEN_SZ)
-	          |              ^~
-
-	Change its type to int, like in the other similar code.
-
-	There is also:
-
-	    gas/config/tc-bpf.c:735:30: error: 'bpf_endianness' may be used uninitialized in this function [-Werror=maybe-uninitialized]
-	      735 |    dst, be ? size[endianness - BPF_BE16] : size[endianness - BPF_LE16]);
-	          |                   ~~~~~~~~~~~^~~~~~~~~~
-
-	-Wmaybe-uninitialized doesn't seem to understand the FSM; just
-	initialize bpf_endianness to silence it.  Add an assertion to
-	build_bpf_endianness() in order to catch potential bugs.
-
-2023-05-04  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: revert "default r6 if vendor is img"
-	In commit: 9171de358f230b64646bbb525a74e5f8e3dbe0dc,
-	The default output is set to r6 if the vendor is img,
-	It is ugly and should not be in upstream.
-
-	Let's revert it.
-
-2023-05-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix frame_list position in frame.c
-	In commit 995a34b1772 ("Guard against frame.c destructors running before
-	frame-info.c's") the following problem was addressed.
-
-	The frame_info_ptr destructor:
-	...
-	  ~frame_info_ptr ()
-	  {
-	    frame_list.erase (frame_list.iterator_to (*this));
-	  }
-	...
-	uses frame_list, which is a static member of class frame_info_ptr,
-	instantiated in frame-info.c:
-	...
-	intrusive_list<frame_info_ptr> frame_info_ptr::frame_list;
-	...
-
-	Then there's a static frame_info_pointer variable named selected_frame in
-	frame.c:
-	...
-	static frame_info_ptr selected_frame;
-	...
-
-	Because the destructor of selected_frame uses frame_list, its destructor needs
-	to be called before the destructor of frame_list.
-
-	But because they're in different compilation units, the initialization order and
-	consequently destruction order is not guarantueed.
-
-	The commit fixed this by handling the case that the destructor of frame_list
-	is called first, adding a check on is_linked ():
-	...
-	   ~frame_info_ptr ()
-	   {
-	-    frame_list.erase (frame_list.iterator_to (*this));
-	+    /* If this node has static storage, it may be deleted after
-	+       frame_list.  Attempting to erase ourselves would then trigger
-	+       internal errors, so make sure we are still linked first.  */
-	+    if (is_linked ())
-	+      frame_list.erase (frame_list.iterator_to (*this));
-	   }
-	...
-
-	However, since then frame_list has been moved into frame.c, and
-	initialization/destruction order is guarantueed inside a compilation unit.
-
-	Revert aforementioned commit, and fix the destruction order problem by moving
-	frame_list before selected_frame.
-
-	Reverting the commit is another way of fixing the already fixed
-	Wdangling-pointer warning reported in PR build/30413, in a different way than
-	commit 9b0ccb1ebae ("Pass const frame_info_ptr reference for
-	skip_[language_]trampoline").
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Tested on x86_64-linux.
-	PR build/30413
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30413
-
-2023-05-03  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/show_args_command: print to the ui_file argument
-	The show_args_command uses gdb_printf without specifying the ui_file.
-	This means that it prints to gdb_stdout instead of the stream given as
-	an argument to the function.
-
-	This commit fixes this.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-05-03  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
-
-	Make ar faster
-	 * archive.c (_bfd_write_archive_contents): Use a larger buffer in order to improve efficiency.
-
-2023-05-03  Mark Wielaard  <mark@klomp.org>
-
-	Pass const frame_info_ptr reference for skip_[language_]trampoline
-	g++ 13.1.1 produces a -Werror=dangling-pointer=
-
-	In file included from ../../binutils-gdb/gdb/frame.h:75,
-	                 from ../../binutils-gdb/gdb/symtab.h:40,
-	                 from ../../binutils-gdb/gdb/language.c:33:
-	In member function ‘void intrusive_list<T, AsNode>::push_empty(T&) [with T = frame_info_ptr; AsNode = intrusive_base_node<frame_info_ptr>]’,
-	    inlined from ‘void intrusive_list<T, AsNode>::push_back(reference) [with T = frame_info_ptr; AsNode = intrusive_base_node<frame_info_ptr>]’ at gdbsupport/intrusive_list.h:332:24,
-	    inlined from ‘frame_info_ptr::frame_info_ptr(const frame_info_ptr&)’ at gdb/frame.h:241:26,
-	    inlined from ‘CORE_ADDR skip_language_trampoline(frame_info_ptr, CORE_ADDR)’ at gdb/language.c:530:49:
-	gdbsupport/intrusive_list.h:415:12: error: storing the address of local variable ‘<anonymous>’ in ‘frame_info_ptr::frame_list.intrusive_list<frame_info_ptr>::m_back’ [-Werror=dangling-pointer=]
-	  415 |     m_back = &elem;
-	      |     ~~~~~~~^~~~~~~
-	gdb/language.c: In function ‘CORE_ADDR skip_language_trampoline(frame_info_ptr, CORE_ADDR)’:
-	gdb/language.c:530:49: note: ‘<anonymous>’ declared here
-	  530 |       CORE_ADDR real_pc = lang->skip_trampoline (frame, pc);
-	      |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
-	gdb/frame.h:359:41: note: ‘frame_info_ptr::frame_list’ declared here
-	  359 |   static intrusive_list<frame_info_ptr> frame_list;
-	      |                                         ^~~~~~~~~~
-
-	Each new frame_info_ptr is being pushed on a static frame list and g++
-	cannot see why that is safe in case the frame_info_ptr is created and
-	destroyed immediately when passed as value.
-
-	It isn't clear why only in this one place g++ sees the issue (probably
-	because it can inline enough code in this specific case).
-
-	Since passing the frame_info_ptr as const reference is cheaper, use
-	that as workaround for this warning.
-
-	PR build/30413
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30413
-
-	Tested-by: Kevin Buettner <kevinb@redhat.com>
-	Reviewed-by: Kevin Buettner <kevinb@redhat.com>
-	Reviewed-by: Tom Tromey <tom@tromey.com>
-
-2023-05-03  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
-
-	Improve the speed of computing checksums for COFF binaries.
-	 * coffcode.h (coff_read_word_from_buffer): New function.
-	 * coffcode.h (COFF_CHECKSUM_BUFFER_SIZE): New constant.
-	 * coffcode.h (coff_compute_checksum): Improve speed by reducing the number of seeks and reads used.
-
-2023-05-03  Alan Modra  <amodra@gmail.com>
-
-	Remove unused args from bfd_make_debug_symbol
-	The ptr and size args are unused.  Make the function look the same as
-	bfd_make_empty_symbol.
-
-	Generated docs and include files
-	bfd/doc/chew.c extracts documentation from source code comments
-	annotated with keywords, and generates much of bfd.h and libbfd.h from
-	those same comments.  The docs have suffered from people (me too)
-	adding things like CODE_FRAGMENT to the source to put code into bfd.h
-	without realising that CODE_FRAGMENT also puts @example around said
-	code into the docs.  So we have random senseless things in the docs.
-	This patch fixes that problem (well, the senseless things from
-	CODE_FRAGMENT), moves most of the code out of bfd-in.h, and improves a
-	few chew.c features.  libbfd.h now automatically gets ATTRIBUTE_HIDDEN
-	prototypes, and indentation in bfd.h and libbfd.h is better.
-
-2023-05-03  Alan Modra  <amodra@gmail.com>
-
-	Move bfd_alloc, bfd_zalloc and bfd_release to libbfd.c
-	These functions don't belong in opncls.c.
-
-		* libbfd-in.h (bfd_release): Delete prototype.
-		* opncls.c (bfd_alloc, bfd_zalloc, bfd_release): Move to..
-		* libbfd.c: ..here.  Include objalloc.c and provide bfd_release
-		with a FUNCTION comment.
-		* bfd-in2.h: Regenerate.
-		* libbfd.h: Regenerate.
-
-2023-05-03  Alan Modra  <amodra@gmail.com>
-
-	Move bfd_elf_bfd_from_remote_memory to opncls.c
-	bfd_elf_bfd_from_remote_memory is just a wrapper, and the function
-	could be implemented for other formats.  Move it to opncls.c because
-	it acts a little like some of the other bfd_open* routines.  Also give
-	it the usual FUNCTION etc. comment so prototypes and docs are handled
-	automatically.
-
-		* elf.c (bfd_elf_bfd_from_remote_memory): Move to..
-		* opncls.c: ..here, add FUNCTION comment.
-		* bfd-in.h (bfd_elf_bfd_from_remote_memory): Delete prototype.
-		* bfd-in2.h: Regenerate.
-
-2023-05-03  Alan Modra  <amodra@gmail.com>
-
-	hash.c: replace some unsigned long with unsigned int
-		* hash.c (higher_prime_number): Use uint32_t param, return value,
-		tables and variables.
-		(bfd_default_hash_table_size): Make it an unsigned int.
-		(bfd_hash_set_default_size): Use unsigned int param and return.
-		* bfd-in.h (bfd_hash_set_default_size): Update prototype.
-		* bfd-in2.h: Regenerate.
-
-	libbfc.c: Use stdint types for unsigned char and unsigned long
-		* libbfd.c (bfd_put_8): Use bfd_byte rather than unsigned char.
-		(bfd_get_8, bfd_get_signed_8): Likewise.
-		(_bfd_read_unsigned_leb128, _bfd_safe_read_leb128): Likewise.
-		(_bfd_read_signed_leb128): Likewise.
-		(bfd_getb24, bfd_getl24): Replace unsigned long with uint32_t.
-		(bfd_getb32, bfd_getl32): Likewise.
-		(bfd_getb_signed_32, bfd_getl_signed_32): Likewise.
-
-2023-05-03  Alan Modra  <amodra@gmail.com>
-
-	Change signature of bfd crc functions
-	The crc calculated is 32 bits.  Replace uses of unsigned long with
-	uint32_t.  Also use bfd_byte* for buffers.
-
-	bfd/
-		* opncls.c (bfd_calc_gnu_debuglink_crc32): Use stdint types.
-		(bfd_get_debug_link_info_1, bfd_get_debug_link_info): Likewise.
-		(separate_debug_file_exists, bfd_follow_gnu_debuglink): Likewise.
-		(bfd_fill_in_gnu_debuglink_section): Likewise.
-		* bfd-in2.h: Regenerate.
-	gdb/
-		* auto-load.c (auto_load_objfile_script): Update type of
-		bfd_get_debug_link_info argument.
-		* symfile.c (find_separate_debug_file_by_debuglink): Likewise.
-		* gdb_bfd.c (get_file_crc): Update type of
-		bfd_calc_gnu_debuglink_crc32 argument.
-
-2023-05-03  Alan Modra  <amodra@gmail.com>
-
-	_bfd_mips_elf_lo16_reloc vallo comment
-	This explains exactly why the high reloc adjustment is as it is,
-	replacing the rather nebulous existing comment.  I've also changed the
-	expression from (lo+0x8000)&0xffff to (lo&0xffff)^0x8000 which better
-	matches part of the standard 16-bit sign extension (resulting in
-	exactly the same value), and hoisted the calculation out of the loop.
-
-		* elfxx-mips.c (_bfd_mips_elf_lo16_reloc): Expand vallo
-		comment.  Hoist calculation out of loop.
-
-2023-05-02  Alexandra Hájková  <ahajkova@redhat.com>
-
-	gdb.base/watchpoint-unaligned.exp: Always initialize wpoffset_to_wpnum
-	Initialize wpoffset_to_wpnumto avoid TCL error which happens in some aarch64 types.
-
-	ERROR: in testcase /root/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
-	ERROR:  can't read "wpoffset_to_wpnum(1)": no such element in array
-	ERROR:  tcl error code TCL READ VARNAME
-	ERROR:  tcl error info:
-	can't read "wpoffset_to_wpnum(1)": no such element in array
-	    while executing
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30340
-
-	Reviewed-by: Luis Machado <luis.machado@arm.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-05-02  Mark Wielaard  <mark@klomp.org>
-
-	xcoffread.c: Fix -Werror=dangling-pointer= issue with main_subfile.
-	GCC 13 points out that main_subfile has local function scope, but a
-	pointer to it is assigned to the global inclTable array subfile
-	element field:
-
-	In function ‘void process_linenos(CORE_ADDR, CORE_ADDR)’,
-	    inlined from ‘void aix_process_linenos(objfile*)’ at xcoffread.c:727:19,
-	    inlined from ‘void aix_process_linenos(objfile*)’ at xcoffread.c:720:1:
-	xcoffread.c:629:37: error: storing the address of local variable ‘main_subfile’ in ‘*inclTable.19_45 + _28._inclTable::subfile’ [-Werror=dangling-pointer=]
-	  629 |               inclTable[ii].subfile = &main_subfile;
-	      |               ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
-	xcoffread.c: In function ‘void aix_process_linenos(objfile*)’:
-	xcoffread.c:579:18: note: ‘main_subfile’ declared here
-	  579 |   struct subfile main_subfile;
-	      |                  ^~~~~~~~~~~~
-	xcoffread.c:496:19: note: ‘inclTable’ declared here
-	  496 | static InclTable *inclTable;    /* global include table */
-	      |                   ^~~~~~~~~
-
-	Fix this by making main_subfile file static. And allocate and
-	deallocated together with inclTable in allocate_include_entry and
-	xcoff_symfile_finish. Adjust the use of main_subfile in
-	process_linenos to take a pointer to the subfile.
-
-2023-05-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use set in lmap in gdb.dwarf2/dw2-abs-hi-pc.exp
-	In gdb.dwarf2/dw2-abs-hi-pc.exp we do:
-	...
-	set sources [lmap i $sources { expr { "$srcdir/$subdir/$i" } }]
-	...
-
-	The use of expr is not idiomatic.  Fix this by using set instead:
-	...
-	set sources [lmap i $sources { set tmp $srcdir/$subdir/$i }]
-	...
-
-	Reported-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andreas Schwab <schwab@suse.de>
-
-2023-05-02  Aditya Kamath  <Aditya.Kamath1@ibm.com>
-
-	Fix Assertion pid != 0 failure in AIX.
-	In AIX if there is a main and a thread created from it , then once the
-	program completed execution and goes to pd_disable () inferior_ptid
-	had pid 0 leading to an assertion failure while finding the thread's data
-	in aix-thread.c file.
-
-	This patch is a fix for the same.
-
-2023-05-02  Tom Tromey  <tom@tromey.com>
-
-	Remove error_stream
-	error_stream is trivial and only used in a couple of spots in
-	breakpoint.c.  This patch removes it in favor of just writing it out
-	at the spots where it was used.
-
-2023-05-02  Nick Clifton  <nickc@redhat.com>
-
-	Remove Dimity Diky as MSP430 maintainer.
-
-2023-05-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: compile gdb.linespec/cp-completion-aliases.exp as C++
-	Noticed in passing that the prepare_for_testing call in
-	gdb.linespec/cp-completion-aliases.exp does not pass the 'c++' flag,
-	despite this being a C++ test.
-
-	I guess, as the source file has the '.cc' extension, all the compilers
-	are doing the right thing anyway -- the source file uses templates, so
-	is definitely being compiled as C++.
-
-	I noticed this when I tried to set CXX_FOR_TARGET (but not
-	CC_FOR_TARGET) and spotted that this script was still using the C
-	compiler.
-
-	Fixed in this commit by adding the 'c++' flag for prepare_for_testing.
-
-2023-05-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-05-01  Tom Tromey  <tromey@adacore.com>
-
-	Document DAP 'launch' parameter
-	The Debugger Adapter Protocol defines a "launch" request but leaves
-	the parameters up to the implementation:
-
-	    Since launching is debugger/runtime specific, the arguments for
-	    this request are not part of this specification.
-
-	This patch adds some documentation for the parameter GDB currently
-	defines.  Note that I plan to add more parameters here, and perhaps
-	there will be other extensions in time as well.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-05-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove ui_interp_info
-	I don't think that having struct ui_interp_info separated from struct ui
-	is very useful.  As of today, it looks like an unnecessary indirection
-	layer.  Move the contents of ui_interp_info directly into struct ui, and
-	update all users.
-
-	Change-Id: I817ba6e047dbcc4ba15b666af184b40bfed7e521
-
-2023-05-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: store interps in an intrusive_list
-	Use intrusive_list, instead of hand-made linked list.
-
-	Change-Id: Idc857b40dfa3e3c35671045898331cca2c928097
-
-2023-05-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: move struct ui and related things to ui.{c,h}
-	I'd like to move some things so they become methods on struct ui.  But
-	first, I think that struct ui and the related things are big enough to
-	deserve their own file, instead of being scattered through top.{c,h} and
-	event-top.c.
-
-	Change-Id: I15594269ace61fd76ef80a7b58f51ff3ab6979bc
-
-2023-05-01  Tom Tromey  <tromey@adacore.com>
-
-	Turn set_inferior_args_vector into method of inferior
-	This patch turns set_inferior_args_vector into an overload of
-	inferior::set_args.
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-05-01  Tom Tromey  <tromey@adacore.com>
-
-	Remove evaluate_type
-	Like evaluate_expression, evaluate_type is also just a simple wrapper.
-	Removing it makes the code a little nicer.
-
-	Remove evaluate_expression
-	evaluate_expression is just a little wrapper for a method on
-	expression.  Removing it also removes a lot of ugly (IMO) calls to
-	get().
-
-	Remove op_name
-	op_name is only needed in a single place, so remove it and inline it
-	there.
-
-2023-05-01  Tom Tromey  <tromey@adacore.com>
-
-	Fix crash in Rust expression parser
-	A user found that an array expression with just a single value (like
-	"[23]") caused the Rust expression parser to crash.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30410
-
-2023-05-01  Tom Tromey  <tom@tromey.com>
-
-	Replace field_is_static with a method
-	This changes field_is_static to be a method on struct field, and
-	updates all the callers.  Most of this patch was written by script.
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-05-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix TUI resizing for TERM=ansi
-	With TERM=ansi, when resizing a TUI window from LINES/COLUMNS 31/118
-	(maximized) to 20/78 (de-maximized), I get a garbled screen (that ^L doesn't
-	fix) and a message:
-	...
-	@@ resize done 0, size = 77x20
-	...
-	with the resulting width being 77 instead of the expected 78.
-
-	[ The discrepancy also manifests in CLI, filed as PR30346. ]
-
-	The discrepancy comes from tui_resize_all, where we ask readline for the
-	screen size:
-	...
-	   rl_get_screen_size (&screenheight, &screenwidth);
-	...
-
-	As it happens, when TERM is set to ansi, readline decides that the terminal
-	cannot auto-wrap lines, and reserves one column to deal with that, and as a
-	result reports back one less than the actual screen width:
-	...
-	$ echo $COLUMNS
-	78
-	$ TERM=xterm gdb -ex "show width" -ex q
-	Number of characters gdb thinks are in a line is 78.
-	$ TERM=ansi  gdb -ex "show width" -ex q
-	Number of characters gdb thinks are in a line is 77.
-	...
-
-	In tui_resize_all, we need the actual screen width, and using a screenwidth of
-	one less than the actual value garbles the screen.
-
-	This is currently not causing trouble in testing because we have a workaround
-	in place in proc Term::resize.  If we disable the workaround:
-	...
-	-       stty columns [expr {$_cols + 1}] < $::gdb_tty_name
-	+       stty columns $_cols < $::gdb_tty_name
-	...
-	and dump the screen we get the same type of screen garbling:
-	...
-	    0 +---------------------------------------+|
-	    1                                         ||
-	    2                                         ||
-	    3                                         ||
-	...
-
-	Another way to reproduce the problem is using command "maint info screen".
-	After starting gdb with TERM=ansi, entering TUI, and issuing the command, we
-	get:
-	...
-	Number of characters curses thinks are in a line is 78.
-	...
-	and after maximizing and demaximizing the window we get:
-	...
-	Number of characters curses thinks are in a line is 77.
-	...
-	If we use TERM=xterm, we do get the expected 78.
-
-	Fix this by:
-	- detecting when readline will report back less than the actual screen width,
-	- accordingly setting a new variable readline_hidden_cols,
-	- using readline_hidden_cols in tui_resize_all to fix the resize problem, and
-	- removing the workaround in Term::resize.
-
-	The test-case gdb.tui/empty.exp serves as regression test.
-
-	I've applied the same fix in tui_async_resize_screen, the new test-case
-	gdb.tui/resize-2.exp serves as a regression test for that change.  Without
-	that fix, we have:
-	...
-	FAIL: gdb.tui/resize-2.exp: again: gdb width 80
-	...
-
-	Tested on x86_64-linux.
-
-	PR tui/30337
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30337
-
-2023-04-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/readline.exp with stub-termcap
-	When doing a build which uses stub-termcap, we run into:
-	...
-	(gdb) set width 7
-	<b) FAIL: gdb.base/readline.exp: set width 7 (timeout)
-	...
-
-	Since readline can't detect very basic terminal support, it falls back on
-	horizontal scrolling.
-
-	Fix this by detecting the horizontal scrolling case, and skipping the
-	subsequent test.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30400
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30400
-
-2023-04-29  Manoj Gupta  <manojgupta@google.com>
-
-	gdb: Fix building with latest libc++
-	Latest libc++[1] causes transitive include to <locale> when
-	<mutex> or <thread> header is included. This causes
-	gdb to not build[2] since <locale> defines isupper/islower etc.
-	functions that are explicitly macroed-out in safe-ctype.h to
-	prevent their use.
-	Use the suggestion from libc++ to include <locale> internally when
-	building in C++ mode to avoid build errors.
-	Use safe-gdb-ctype.h as the include instead of "safe-ctype.h"
-	to keep this isolated to gdb since rest of binutils
-	does not seem to use much C++.
-
-	[1]: https://reviews.llvm.org/D144331
-	[2]: https://issuetracker.google.com/issues/277967395
-
-2023-04-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/excep_handle.exp for updated gdb_test
-	Test-case gdb.ada/excep_handle.exp fails since commit e2f620135d9
-	("gdb/testsuite: change newline patterns used in gdb_test"):
-	...
-	(gdb) continue^M
-	Continuing.^M
-	^M
-	Catchpoint 2, exception at 0x00000000004020b6 in foo () at foo.adb:26^M
-	26            when Constraint_Error =>^M
-	(gdb) FAIL: gdb.ada/excep_handle.exp: continuing to first Constraint_Error \
-	  exception handlers
-	...
-
-	The output is supposed to be matched by:
-	...
-	gdb_test "continue" \
-	         "Continuing\.$eol$catchpoint_constraint_error_msg$eol.*" \
-	         "continuing to first Constraint_Error exception handlers"
-	...
-	but the $eol bit no longer matches due to the stricter matching introduced
-	in aforementioned commit.
-
-	Fix this by dropping the "$eol.*" bit.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30399
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30399
-
-2023-04-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build without ncurses in maintenance_info_screen
-	With a build without ncurses we run into:
-	...
-	src/gdb/utils.c: In function ‘void maintenance_info_screen(const char*, int)’:
-	src/gdb/utils.c:1310:7: error: ‘COLS’ was not declared in this scope
-	       COLS);
-	       ^~~~
-	src/gdb/utils.c:1331:8: error: ‘LINES’ was not declared in this scope
-	        LINES);
-	        ^~~~~
-	...
-
-	Fix this by using HAVE_LIBCURSES.
-
-	Tested on x86_64-linux.
-
-	PR build/30391
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30391
-
-2023-04-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/main.exp without TUI
-	With a build with --disable-tui, we get:
-	...
-	(gdb) PASS: gdb.tui/main.exp: set interactive-mode off
-	maint set tui-left-margin-verbose on^M
-	Undefined maintenance set command: "tui-left-margin-verbose on".  \
-	  Try "help maintenance set".^M
-	(gdb) FAIL: gdb.tui/main.exp: maint set tui-left-margin-verbose on
-	...
-
-	Fix this by adding the missing "require allow_tui_tests".
-
-	Tested on x86_64-linux.
-
-2023-04-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-29  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: check thread exists when creating thread-specific b/p
-	I noticed the following behaviour:
-
-	  $ gdb -q -i=mi /tmp/hello.x
-	  =thread-group-added,id="i1"
-	  =cmd-param-changed,param="print pretty",value="on"
-	  ~"Reading symbols from /tmp/hello.x...\n"
-	  (gdb)
-	  -break-insert -p 99 main
-	  ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000401198",func="main",file="/tmp/hello.c",fullname="/tmp/hello.c",line="18",thread-groups=["i1"],thread="99",times="0",original-location="main"}
-	  (gdb)
-	  info breakpoints
-	  &"info breakpoints\n"
-	  ~"Num     Type           Disp Enb Address            What\n"
-	  ~"1       breakpoint     keep y   0x0000000000401198 in main at /tmp/hello.c:18\n"
-	  &"../../src/gdb/thread.c:1434: internal-error: print_thread_id: Assertion `thr != nullptr' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable."
-	  &"\n"
-	  &"----- Backtrace -----\n"
-	  &"Backtrace unavailable\n"
-	  &"---------------------\n"
-	  &"\nThis is a bug, please report it."
-	  &"  For instructions, see:\n"
-	  &"<https://www.gnu.org/software/gdb/bugs/>.\n\n"
-	  Aborted (core dumped)
-
-	What we see here is that when using the MI a user can create
-	thread-specific breakpoints for non-existent threads.  Then if we try
-	to use the CLI 'info breakpoints' command GDB throws an assertion.
-	The assert is a result of the print_thread_id call when trying to
-	build the 'stop only in thread xx.yy' line; print_thread_id requires a
-	valid thread_info pointer, which we can't have for a non-existent
-	thread.
-
-	In contrast, when using the CLI we see this behaviour:
-
-	  $ gdb -q /tmp/hello.x
-	  Reading symbols from /tmp/hello.x...
-	  (gdb) break main thread 99
-	  Unknown thread 99.
-	  (gdb)
-
-	The CLI doesn't allow a breakpoint to be created for a non-existent
-	thread.  So the 'info breakpoints' command is always fine.
-
-	Interestingly, the MI -break-info command doesn't crash, this is
-	because the MI uses global thread-ids, and so never calls
-	print_thread_id.  However, GDB does support using CLI and MI in
-	parallel, so we need to solve this problem.
-
-	One option would be to change the CLI behaviour to allow printing
-	breakpoints for non-existent threads.  This would preserve the current
-	MI behaviour.
-
-	The other option is to pull the MI into line with the CLI and prevent
-	breakpoints being created for non-existent threads.  This is good for
-	consistency, but is a breaking change for the MI.
-
-	In the end I figured that it was probably better to retain the
-	consistent CLI behaviour, and just made the MI reject requests to
-	place a breakpoint on a non-existent thread.  The only test we had
-	that depended on the old behaviour was
-	gdb.mi/mi-thread-specific-bp.exp, which was added by me in commit:
-
-	  commit 2fd9a436c8d24eb0af85ccb3a2fbdf9a9c679a6c
-	  Date:   Fri Feb 17 10:48:06 2023 +0000
-
-	      gdb: don't duplicate 'thread' field in MI breakpoint output
-
-	I certainly didn't intend for this test to rely on this feature of the
-	MI, so I propose to update this test to only create breakpoints for
-	threads that exist.
-
-	Actually, I've added a new test that checks the MI rejects creating a
-	breakpoint for a non-existent thread, and I've also extended the test
-	to run with the separate MI/CLI UIs, and then tested 'info
-	breakpoints' to ensure this command doesn't crash.
-
-	I've extended the documentation of the `-p` flag to explain the
-	constraints better.
-
-	I have also added a NEWS entry just in case someone runs into this
-	issue, at least then they'll know this change in behaviour was
-	intentional.
-
-	One thing that I did wonder about while writing this patch, is whether
-	we should treat requests like this, on both the MI and CLI, as another
-	form of pending breakpoint, something like:
-
-	  (gdb) break foo thread 9
-	  Thread 9 does not exist.
-	  Make breakpoint pending on future thread creation? (y or [n]) y
-	  Breakpoint 1 (foo thread 9) pending.
-	  (gdb) info breakpoints
-	  Num     Type           Disp Enb Address    What
-	  1       breakpoint     keep y   <PENDING>  foo thread 9
-
-	Don't know if folk think that would be a useful idea or not?  Either
-	way, I think that would be a separate patch from this one.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-04-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make deprecated_show_value_hack static
-	The deprecated_show_value_hack function is now only used inside
-	cli-setshow.c, so lets make the function static to discourage its use
-	anywhere else.
-
-	There should be no user visible changes after this commit
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make set/show inferior-tty work with $_gdb_setting_str
-	Like the previous two commits, this commit fixes set/show inferior-tty
-	to work with $_gdb_setting_str.
-
-	Instead of using a scratch variable which is then pushed into the
-	current inferior from a set callback, move to the API that allows for
-	getters and setters, and store the value directly within the current
-	inferior.
-
-	Update an existing test to check the inferior-tty setting.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make set/show cwd work with $_gdb_setting_str
-	The previous commit fixed set/show args when used with
-	$_gdb_setting_str, this commit fixes set/show cwd.
-
-	Instead of using a scratch variable which is then pushed into the
-	current inferior from a set callback, move to the API that allows for
-	getters and setters, and store the value directly within the current
-	inferior.
-
-	Update the existing test to check the cwd setting.
-
-2023-04-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make set/show args work with $_gdb_setting_str
-	I noticed that $_gdb_setting_str was not working with 'args', e.g.:
-
-	  $ gdb -q --args /tmp/hello.x arg1 arg2 arg3
-	  Reading symbols from /tmp/hello.x...
-	  (gdb) show args
-	  Argument list to give program being debugged when it is started is "arg1 arg2 arg3".
-	  (gdb) print $_gdb_setting_str("args")
-	  $1 = ""
-
-	This is because the 'args' setting is implemented using a scratch
-	variable ('inferior_args_scratch') which is updated when the user does
-	'set args ...'.  There is then a function 'set_args_command' which is
-	responsible for copying the scratch area into the current inferior.
-
-	However, when the user sets the arguments via the command line the
-	scratch variable is not updated, instead the arguments are pushed
-	straight into the current inferior.
-
-	There is a second problem, when the current inferior changes the
-	scratch area is not updated, which means that the value returned will
-	only ever reflect the last call to 'set args ...' regardless of which
-	inferior is currently selected.
-
-	Luckily, the fix is pretty easy, set/show variables have an
-	alternative API which requires we provide some getter and setter
-	functions.  With this done the scratch variable can be removed and the
-	value returned will now always reflect the current inferior.
-
-	While working on set/show args I also rewrote show_args_command to
-	remove the use of deprecated_show_value_hack.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: cleanup command creation in infcmd.c
-	In infcmd.c, in order to add command completion to some of the 'set'
-	commands, we are currently creating the command, then looking up the
-	command by calling lookup_cmd.
-
-	This is no longer necessary, we already return the relevant
-	cmd_list_element object when the set/show command is created, and we
-	can use that to set the command completion callback.
-
-	I don't know if there's actually any tests for completion of these
-	commands, but I manually checked, and each command still appears to
-	offer the expected filename completion.
-
-	There should be no user visible changes after this commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/record-full: disable range stepping when resuming threads
-	I see these failures, when running with the native-gdbserver of
-	native-extended-gdbserver boards:
-
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.reverse/finish-reverse-next.exp ...
-	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 1 LEP from function body
-	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 2 at b = 5, from function body
-	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 1 GEP call from function body
-	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 2 at b = 50 from function body
-
-	Let's use this simpler program to illustrate the problem:
-
-	    int main()
-	    {
-	      int a = 362;
-	      a = a * 17;
-	      return a;
-	    }
-
-	It compiles down to:
-
-	    int a = 362;
-	    401689:       c7 45 fc 6a 01 00 00    movl   $0x16a,-0x4(%rbp)
-	    a = a * 17;
-	    401690:       8b 55 fc                mov    -0x4(%rbp),%edx
-	    401693:       89 d0                   mov    %edx,%eax
-	    401695:       c1 e0 04                shl    $0x4,%eax
-	    401698:       01 d0                   add    %edx,%eax
-	    40169a:       89 45 fc                mov    %eax,-0x4(%rbp)
-	    return a;
-	    40169d:       8b 45 fc                mov    -0x4(%rbp),%eax
-
-	When single stepping these lines, debugging locally, while recording,
-	these are the recorded instructions (basically one for each instruction
-	shown above):
-
-	    (gdb) maintenance print record-instruction 0
-	    4 bytes of memory at address 0x00007fffffffdc5c changed from: 6a 01 00 00
-	    Register rip changed: (void (*)()) 0x40169a <main+21>
-	    (gdb) maintenance print record-instruction -1
-	    Register rax changed: 5792
-	    Register eflags changed: [ PF AF IF ]
-	    Register rip changed: (void (*)()) 0x401698 <main+19>
-	    (gdb) maintenance print record-instruction -2
-	    Register rax changed: 362
-	    Register eflags changed: [ PF ZF IF ]
-	    Register rip changed: (void (*)()) 0x401695 <main+16>
-	    (gdb) maintenance print record-instruction -3
-	    Register rax changed: 4200069
-	    Register rip changed: (void (*)()) 0x401693 <main+14>
-	    (gdb) maintenance print record-instruction -4
-	    Register rdx changed: 140737488346696
-	    Register rip changed: (void (*)()) 0x401690 <main+11>
-	    (gdb) maintenance print record-instruction -5
-	    4 bytes of memory at address 0x00007fffffffdc5c changed from: 00 00 00 00
-	    Register rip changed: (void (*)()) 0x401689 <main+4>
-	    (gdb) maintenance print record-instruction -6
-	    Not enough recorded history
-
-	But when debugging remotely:
-
-	    (gdb) maintenance print record-instruction 0
-	    Register rdx changed: 140737488346728
-	    Register rip changed: (void (*)()) 0x401690 <main+11>
-	    (gdb) maintenance print record-instruction -1
-	    4 bytes of memory at address 0x00007fffffffdc7c changed from: 00 00 00 00
-	    Register rip changed: (void (*)()) 0x401689 <main+4>
-	    (gdb) maintenance print record-instruction -2
-	    Not enough recorded history
-
-	In this list, we only have entries for the beginning of each line.  This
-	is because of the remote target's support for range stepping.  The
-	record-full layer can only record instructions when the underlying
-	process target reports a stop.  With range stepping, the remote target
-	single-steps multiple instructions at a time, so the record-full target
-	doesn't get to see and record them all.
-
-	Fix this by making the record-full layer disable range-stepping
-	before handing the resume request to the beneath layer, forcing the
-	remote target to report stops for each instruction.
-
-	Change-Id: Ia95ea62720bbcd0b6536a904360ffbf839eb823d
-
-2023-04-28  Keith Seitz  <keiths@redhat.com>
-
-	Allow strings with printf/eval
-	PR 13098 explains that if a user attempts to use a string with either
-	`printf' (or `eval'), gdb returns an error (inferior not running):
-
-	(gdb) printf "%s\n", "hello"
-	evaluation of this expression requires the target program to be active
-
-	However, the parser can certainly handle this case:
-
-	(gdb) p "hello"
-	$1 = "hello"
-
-	This discrepancy occurs because printf_c_string does not handle
-	this specific case.  The passed-in value that we are attempting to print
-	as a string is TYPE_CODE_ARRAY but it's lval type is not_lval.
-
-	printf_c_string will only attempt to print a string from the value's
-	contents when !TYPE_CODE_PTR, lval is lval_internalvar, and the value's
-	type is considered a string type:
-
-	  if (value->type ()->code () != TYPE_CODE_PTR
-	      && value->lval () == lval_internalvar
-	      && c_is_string_type_p (value->type ()))
-	    {
-	      ...
-	    }
-
-	Otherwise, it attempts to read the value of the string from the target's
-	memory (which is what actually generates the "evaluation of this ..."
-	error message).
-
-2023-04-28  Tom Tromey  <tromey@adacore.com>
-
-	Move find_minimal_symbol_address to minsyms.c
-	I found find_minimal_symbol_address in parse.c, but it seems to me
-	that it belongs in minsyms.c.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-04-28  Tom Tromey  <tromey@adacore.com>
-
-	Do not change type in get_discrete_low_bound
-	get_discrete_low_bound has this code:
-
-	    /* Set unsigned indicator if warranted.  */
-	    if (low >= 0)
-	      type->set_is_unsigned (true);
-
-	It's bad to modify a type in a getter like this, so this patch removes
-	this code.  FWIW I looked and this code has been there since at least
-	1999 (it was in the initial sourceware import).
-
-	Types in general would benefit from const-ification, which would
-	probably reveal more code like this, but I haven't attempted that.
-
-	Regression tested on x86-64 Fedora 36.
-
-	Reviewed-by: Kevin Buettner <kevinb@redhat.com>
-
-2023-04-28  Tom Tromey  <tromey@adacore.com>
-
-	Remove @var from @defun in Python documentation
-	Eli pointed out that @var isn't needed in @defun in Texinfo.  This
-	patch removes the cases I found in python.texi.  I also renamed some
-	variables in one spot, because "-" isn't valid in a Python variable
-	name.
-
-2023-04-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: additional test fixes after gdb_test changes
-	After this commit:
-
-	  commit e2f620135d92f7cd670af4e524fffec7ac307666
-	  Date:   Thu Mar 30 13:26:25 2023 +0100
-
-	      gdb/testsuite: change newline patterns used in gdb_test
-
-	There were some regressions in gdb.trace/*.exp tests when run with the
-	native-gdbserver board.  This commit fixes these regressions.
-
-	All the problems are caused by unnecessary trailing newline characters
-	included in the patterns passed to gdb_test.  After the above commit
-	the testsuite is stricter when matching trailing newlines, and so the
-	additional trailing newline characters are now causing the test to
-	fail.  Fix by removing all the excess trailing newline characters.
-
-	In some cases this cleanup means we should use gdb_test_no_output,
-	I've done that where appropriate.  In a couple of other places I've
-	made use of multi_line to better build the expected output pattern.
-
-2023-04-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Use run_cc_link_tests for PR ld/26391 tests
-	Use run_cc_link_tests for PR ld/26391 tests to compile PR ld/26391 tests
-	in C.
-
-		PR ld/30002
-		* testsuite/ld-elf/elf.exp: Use run_cc_link_tests for PR ld/26391
-		tests.
-
-2023-04-28  Eli Zaretskii  <eliz@gnu.org>
-
-	Fix a typo in gdb.texinfo.
-
-2023-04-28  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Enable x0 base relaxation for relax_pc even if --no-relax-gp.
-	Let --no-relax-gp only disable the gp relaxation for lui and pcrel
-	relaxations, since x0 base and gp relaxations are different optimizations
-	in fact, but just use the same function to handle.
-
-	bfd/
-		* elfnn-riscv.c (_bfd_riscv_relax_pc): Like _bfd_riscv_relax_lui,
-		set gp to zero when --no-relax-gp, then we should still keep the
-		x0 base relaxation.
-		(_bfd_riscv_relax_section): Enable _bfd_riscv_relax_pc when
-		--no-relax-gp, we will disable the gp relaxation in the
-		_bfd_riscv_relax_pc.
-
-2023-04-28  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Relax R_RISCV_[PCREL_]LO12_I/S to R_RISCV_GPREL_I/S for undefined weak.
-	bfd/
-		*elfnn-riscv.c (_bfd_riscv_relax_lui): For undefined weak symbol,
-		just relax the R_RISCV_LO12_I/S to R_RISCV_GPREL_I/S, and then don't
-		update the rs1 to zero until relocate_section.
-		(_bfd_riscv_relax_pc): Likewise, but for R_RISCV_PCREL_LO12_I/S.
-
-2023-04-28  Jan Beulich  <jbeulich@suse.com>
-
-	x86: limit data passed to i386_dis_printf()
-	The function doesn't use "ins" for other than retrieving "info". Remove
-	a thus pointless level of indirection.
-
-	x86: limit data passed to prefix_name()
-	Make apparent that neither what "ins" points to nor, in particular, that
-	"ins->info->private_data" is actually used in the function.
-
-	x86/Intel: reduce ELF/PE conditional scope in x86_cons()
-	All the Intel syntax related state adjustments apply independent of
-	target or object format.
-
-	gas: move shift count check
-	... out of mainline code, grouping together the two case labels. This
-	then also make more obvious that the comment there applies to both forms
-	of shifts.
-
-	x86: rework AMX control insn disassembly
-	Consistently do 64-bit first, VEX.L second, VEX.W third, ModR/M fourth,
-	and only then prefix, resulting in fewer table entries. Note that in the
-	course of the re-work
-	- TILEZERO has a previously missing decode step through rm_table[]
-	  added,
-	- a wrong M_0 suffix for TILEZERO is also corrected to be M_1 (now an
-	  infix).
-
-2023-04-28  Jan Beulich  <jbeulich@suse.com>
-
-	x86: rework AMX multiplication insn disassembly
-	Consistently do 64-bit first, ModR/M second, VEX.L third, VEX.W fourth,
-	and prefix last, resulting in fewer table entries. Note that in the
-	course of the re-work wrong M_0 suffixes are also corrected to be M_1
-	(partly infixes now).
-
-	Since it ended up confusing while testing the change, also adjust the
-	test name in x86-64-amx-bad.d (to be distinct from x86-64-amx.d's).
-
-2023-04-28  Alan Modra  <amodra@gmail.com>
-
-	Re: Keeping track of rs6000-coff archive element pointers
-	Commit de7b90610e9e left a hole in the element checking, explained by
-	the comment added to _bfd_xcoff_openr_next_archived_file.  While
-	fixing this, tidy some types used to hold unsigned values so that
-	casts are not needed to avoid signed/unsigned comparison warnings.
-	Also tidy a few things in xcoff.h.
-
-	bfd/
-		* coff-rs6000.c (_bfd_xcoff_openr_next_archived_file): Check
-		that we aren't pointing back at the last element.  Make
-		filestart a ufile_ptr.  Update for xcoff_artdata change.
-		(_bfd_strntol, _bfd_strntoll): Return unsigned values.
-		(_bfd_xcoff_slurp_armap): Make off a ufile_ptr.
-		(add_ranges): Update for xcoff_artdata change.
-		* libbfd-in.h (struct artdata): Make first_file_filepos a
-		ufile_ptr.
-		* libbfd.h: Regenerate.
-	include/
-		* coff/xcoff.h (struct xcoff_artdata): Replace min_elt with
-		ar_hdr_size.
-		(xcoff_big_format_p): In the !SMALL_ARCHIVE case return true
-		for anything but a small archive.
-
-2023-04-28  Alan Modra  <amodra@gmail.com>
-
-	Remove deprecated bfd_read
-	20+ years is long enough to warn.
-
-		* bfd-in.h (bfd_read, bfd_write): Don't define
-		(_bfd_warn_deprecated): Don't declare.
-		* bfd-in2.h: Regenerate.
-		* libbfd.c (_bfd_warn_deprecated): Delete.
-
-2023-04-28  Alan Modra  <amodra@gmail.com>
-
-	Make bfd_byte an int8_t, flagword a uint32_t
-		* bfd-in.h (bfd_byte): Typedef as int8_t.
-		(flagword): Typedef as uint32_t.
-		(bfd_vma, bfd_signed_vma, bfd_size_type, symvalue): Use stdint
-		types in !BFD64 case.
-		* bfd-in2.h: Regenerate.
-
-2023-04-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	gas: bpf: fix tests for pseudo-c syntax
-	This patch fixes the GAS BPF testsuite so the tests for pseudo-c
-	syntax are actually executed.
-
-	2023-04-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-		* testsuite/gas/bpf/mem.dump: New file.
-		* testsuite/gas/bpf/mem-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/mem.d: #dump mem.dump.
-		* testsuite/gas/bpf/lddw.dump: New file.
-		* testsuite/gas/bpf/lddw-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/lddw.d: #dump lddw.dump.
-		* testsuite/gas/bpf/jump.dump: New file.
-		* testsuite/gas/bpf/jump-pseudoc.d: Likewise
-		* testsuite/gas/bpf/jump.d: #dump jump.dump.
-		* testsuite/gas/bpf/jump32.dump: New file.
-		* testsuite/gas/bpf/jump32-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/jump32.d: #dump jump32.dump.
-		* testsuite/gas/bpf/lddw-be.dump: New file.
-		* testsuite/gas/bpf/lddw-be-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/lddw-be.d: #dump lddw-be.dump.
-		* testsuite/gas/bpf/indcall-1.dump: New file.
-		* testsuite/gas/bpf/indcall-1-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/indcall-1.d: #dump indcall-1.dump.
-		* testsuite/gas/bpf/indcall-1-pseudoc.s (main): Fix lddw
-		instruction.
-		* testsuite/gas/bpf/atomic.dump: New file.
-		* testsuite/gas/bpf/atomic-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/atomic.d: #dump atomic.dump.
-		* testsuite/gas/bpf/alu32.dump: New file.
-		* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/alu32.d: #dump alu32.dump.
-		* testsuite/gas/bpf/alu.dump: New file.
-		* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/alu.d: #dump alu.dump.
-
-		* testsuite/gas/bpf/alu-be.dump: New file.
-		* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
-		* testsuite/gas/bpf/alu-be.d: #dump alu-be.dump.
-		* testsuite/gas/bpf/alu32-be-pseudoc.d: New file.
-		* testsuite/gas/bpf/alu32-be-dump: Likewise.
-		* testsuite/gas/bpf/alu32-be.d: #dump alu32-be-dump.
-		* testsuite/gas/bpf/bpf.exp: Run *-pseudoc tests.
-
-2023-04-27  Tom Tromey  <tromey@adacore.com>
-
-	Avoid some compiler warnings in gdb.ada
-	Running gdb.ada/verylong.exp shows a warning from the Ada compiler:
-
-	prog.adb:16:11: warning: file name does not match unit name, should be "main.adb" [enabled by default]
-
-	This patch fixes the problem, and another similar one in
-	unchecked_union.exp.
-
-2023-04-27  Michael Matz  <matz@suse.de>
-
-	Fix PR30358, performance with --sort-section
-	since af31506c we only use the binary tree when section sorting is
-	required.  While its unbalanced and hence can degrade to a linear list
-	it should otherwise have been equivalent to the old code relying on
-	insertion sort.  Unfortunately it was not.  The old code directly used
-	lang_add_section to populate the sorted list, the new code first
-	populates the tree and only then does lang_add_section on the sorted
-	result.
-
-	In the testcase we have very many linkonce section groups, and hence
-	lang_add_section won't actually insert anything for most of them.  That
-	limited the to-be-sorted list length previously.  The tree-sorting code
-	OTOH first created a tree of all candidates sections, including those
-	that wouldn't be inserted by lang_add_section, hence increasing the size
-	of the sorting problem.  In the testcase the chain length went from
-	about 1500 to 106000, and in the degenerated case (as in the testcase)
-	that goes in quadratically.
-
-	This splits out most of the early-out code from lang_add_section to its
-	own function and uses the latter to avoid inserting into the tree.  This
-	refactoring slightly changes the order of early-out tests (the ones
-	based on section flags is now done last, and only in lang_add_section).
-	The new function is not a pure predicate: it can give warnings and it
-	might change output_section, like the old early-out code did.  I have
-	also added a skip-warning case in the first discard case, whose
-	non-existence seemed to have been an oversight.
-
-		PR 30358
-		* ldlang.c (wont_add_section_p): Split out from ...
-		(lang_add_section): ... here.
-		(output_section_callback_sort): Use wont_add_section_p to not
-		always add sections to the sort tree.
-
-2023-04-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: extend the documentation of the jump command
-	This commit addresses PR gdb/7946.  While checking for bugs relating
-	to the jump command I noticed a long standing bug that points out a
-	deficiency with GDB's documentation of the jump command.
-
-	The bug points out that 'jump 0x...' is not always the same as 'set
-	$pc = 0x...' and then 'continue'.  Writing directly to the $pc
-	register does not update any auxiliary state, e.g. $npc on SPARC,
-	while using 'jump' does.
-
-	It felt like this would be an easy issue to address by adding a
-	paragraph to the docs, so I took a stab at writing something suitable.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7946
-
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-04-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: special case '^' in gdb_test pattern
-	In this commit I propose that we add special handling for the '^' when
-	used at the start of a gdb_test pattern.  Consider this usage:
-
-	  gdb_test "some_command" "^command output pattern"
-
-	I think the intention here is pretty clear - run 'some_command', and
-	the output from the command should be exactly 'command output
-	pattern'.
-
-	After the previous commit which tightened up how gdb_test matches the
-	final newline and prompt we know that the only thing after the output
-	pattern will be a single newline and prompt, and the leading '^'
-	ensures that there's no output before 'command output pattern', so
-	this will do what I want, right?
-
-	... except it doesn't.  The command itself will also needs to be
-	matched, so I should really write:
-
-	  gdb_test "some_command" "^some_command\r\ncommand output pattern"
-
-	which will do what I want, right?  Well, that's fine until I change
-	the command and include some regexp character, then I have to write:
-
-	  gdb_test "some_command" \
-	    "^[string_to_regexp some_command]\r\ncommand output pattern"
-
-	but this all gets a bit verbose, so in most cases I simply don't
-	bother anchoring the output with a '^', and a quick scan of the
-	testsuite would indicate that most other folk don't both either.
-
-	What I propose is this: the *only* thing that can appear immediately
-	after the '^' is the command converted into a regexp, so lets do that
-	automatically, moving the work into gdb_test.  Thus, when I write:
-
-	  gdb_test "some_command" "^command output pattern"
-
-	Inside gdb_test we will spot the leading '^' in the pattern, and
-	inject the regexp version of the command after the '^', followed by a
-	'\r\n'.
-
-	My hope is that given this new ability, folk will be more inclined to
-	anchor their output patterns when this makes sense to do so.  This
-	should increase our ability to catch any unexpected output from GDB
-	that appears as a result of running a particular command.
-
-	There is one problem case we need to consider, sometime people do
-	this:
-
-	  gdb_test "" "^expected output pattern"
-
-	In this case no command is sent to GDB, but we are still expecting
-	some output from GDB.  This might be a result of some asynchronous
-	event for example.  As there is no command sent to GDB (from the
-	gdb_test) there will be no command text to parse.
-
-	In this case my proposed new feature injects the command regexp, which
-	is the empty string (as the command itself is empty), but still
-	injects the '\r\n' after the command regexp, thus we end up with this
-	pattern:
-
-	  ^\r\nexpected output pattern
-
-	This extra '\r\n' is not what we should expected here, and so there is
-	a special case inside gdb_test -- if the command is empty then don't
-	add anything after the '^' character.
-
-	There are a bunch of tests that do already use '^' followed by the
-	command, and these can all be simplified in this commit.
-
-	I've tried to run all the tests that I can to check this commit, but I
-	am certain that there will be some tests that I manage to miss.
-	Apologies for any regressions this commit causes, hopefully fixing the
-	regressions will not be too hard.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: change newline patterns used in gdb_test
-	This commit makes two changes to how we match newline characters in
-	the gdb_test proc.
-
-	First, for the newline pattern between the command output and the
-	prompt, I propose changing from '[\r\n]+' to an explicit '\r\n'.
-
-	The old pattern would spot multiple newlines, and so there are a few
-	places where, as part of this commit, I've needed to add an extra
-	trailing '\r\n' to the pattern in the main test file, where GDB's
-	output actually includes a blank line.
-
-	But I think this is a good thing.  If a command produces a blank line
-	then we should be checking for it, the current gdb_test doesn't do
-	that.  But also, with the current gdb_test, if a blank line suddenly
-	appears in the output, this is going to be silently ignored, and I
-	think this is wrong, the test should fail in that case.
-
-	Additionally, the existing pattern will happily match a partial
-	newline.  There are a strangely large number of tests that end with a
-	random '.' character.  Not matching a literal period, but matching any
-	single character, this is then matching half of the trailing newline
-	sequence, while the \[\r\n\]+ in gdb_test is matching the other half
-	of the sequence.  I can think of no reason why this would be
-	intentional, I suspect that the expected output at one time included a
-	period, which has since been remove, but I haven't bothered to check
-	on this.  In this commit I've removed all these unneeded trailing '.'
-	characters.
-
-	The basic rule of gdb_test after this is that the expected pattern
-	needs to match everything up to, but not including the newline
-	sequence immediately before the GDB prompt.  This is generally how the
-	proc is used anyway, so in almost all cases, this commit represents no
-	significant change.
-
-	Second, while I was cleaning up newline matching in gdb_test, I've
-	also removed the '[\r\n]*' that was added to the start of the pattern
-	passed to gdb_test_multiple.
-
-	The addition of this pattern adds no value.  If the user pattern
-	matches at the start of a line then this would match against the
-	newline sequence.  But, due to the '*', if the user pattern doesn't
-	match at the start of a line then this group doesn't care, it'll
-	happily match nothing.
-
-	As such, there's no value to it, it just adds more complexity for no
-	gain, so I'm removing it.  No tests will need updating as a
-	consequence of this part of the patch.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: use 'return' in gdb_test_no_output
-	A TCL proc will return the return value of the last command executed
-	within the proc's body if there is no explicit return call, so
-	gdb_test_no_output is already returning the return value of
-	gdb_test_multiple.
-
-	However, I'm not a fan of (relying on) this implicit return value
-	behaviour -- I prefer to be explicit about what we are doing.  So in
-	this commit I have extended the comment on gdb_test_no_output to
-	document the possible return values (just as gdb_test does), and
-	explicitly call return.
-
-	This should make no different to our testing, but I think it's clearer
-	now what the gdb_test_no_output proc is expected to do.
-
-	The two tests gdb.base/auxv.exp and gdb.base/list.exp both rely on the
-	return value of gdb_test_no_output, and continue to pass after this
-	change.
-
-	I also spotted that gdb.base/watchpoint.exp could be updated to make
-	use of gdb_test_no_output, so I did that.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove some trailing newlines from warning messages
-	While working on a later patch in this series, which tightens up some
-	of our pattern matching when using gdb_test, I ran into some failures
-	caused by some warnings having a trailing newline character.
-
-	The warning function already adds a trailing newline, and it is my
-	understanding that we should not be adding a second by including a
-	newline at the end of any warning message.
-
-	The problem cases I found were in language.c and remote.c, in this
-	patch I fix the cases I hit, but I also checked all the other warning
-	calls in these two files and removed any additional trailing newlines
-	I found.
-
-	In remote.c the warning actually had a newline character in the middle
-	of the warning message (in addition to the trailing newline), which
-	I've removed.  I don't think it's helpful to forcibly split a warning
-	as was done here -- in the middle of a sentence.  Additionally, the
-	message isn't even that long (71 characters), so I think removing this
-	newline is an improvement.
-
-	None of the expected test result need updating with this commit,
-	currently the patterns in gdb_test will match one or more newline
-	sequences, so the tests are as happy with one newline (after this
-	commit) as they are with two newlines (before this commit).  A later
-	commit will change gdb_test so that it is not so forgiving, and these
-	warnings would have caused some failures.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix occasional failure in gdb.base/clear_non_user_bp.exp
-	I noticed that the gdb.base/clear_non_user_bp.exp test would sometimes
-	fail when run from a particular directory.
-
-	The test tries to find the number of the first internal breakpoint
-	using this proc:
-
-	  proc get_first_maint_bp_num { } {
-	      gdb_test_multiple "maint info break" "find first internal bp num" {
-	  	-re -wrap "(-\[0-9\]).*" {
-	  	    return $expect_out(1,string)
-	  	}
-	      }
-	      return ""
-	  }
-
-	The problem is, at the time we issue 'maint info break' there are both
-	internal breakpoint and non-internal (user created) breakpoints in
-	place.  The user created breakpoints include the path to the source
-	file.
-
-	Sometimes, I'll be working from a directory that includes a number,
-	like '/tmp/blah-1/gdb/etc', in which case the pattern above actually
-	matches the '-1' from 'blah-1'.  In this case there's no significant
-	problem as it turns out that -1 is the number of the first internal
-	breakpoint.
-
-	Sometimes my directory name might be '/tmp/blah-4/gdb/etc', in which
-	case the above pattern patches '-4' from 'blah-4'.  It turns out this
-	is also not a problem -- the test doesn't actually need the first
-	internal breakpoint number, it just needs the number of any internal
-	breakpoint.
-
-	But sometimes my directory name might be '/tmp/blah-0/gdb/etc', in
-	which case the pattern above matches '-0' from 'blah-0', and in this
-	case the test fails - there is no internal breakpoint '-0'.
-
-	Fix this by spotting that the internal breakpoint numbers always
-	occurs after a '\r\n', and that they never start with a 0.  Our
-	pattern becomes:
-
-	  	-re -wrap "\r\n(-\[1-9\]\[0-9\]*).*" {
-	  	    return $expect_out(1,string)
-	  	}
-
-	After this I'm no longer seeing any failures.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-27  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb, doc: add index entry for the $_inferior_thread_count convenience var
-	Add a marker in the documentation for indexing the $_inferior_thread_count
-	variable.
-
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-04-27  Nick Clifton  <nickc@redhat.com>
-
-	Add support for %x and %lx formats to the linker's vinfo() function.
-
-2023-04-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-26  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	    RISC-V: Support XVentanaCondOps extension
-	    Ventana Micro has published the specification for their
-	    XVentanaCondOps ("conditional ops") extension at
-	      https://github.com/ventanamicro/ventana-custom-extensions/releases/download/v1.0.0/ventana-custom-extensions-v1.0.0.pdf
-	    which contains two new instructions
-	      - vt.maskc
-	      - vt.maskcn
-	    that can be used in constructing branchless sequences for
-	    various conditional-arithmetic, conditional-logical, and
-	    conditional-select operations.
-
-	    To support such vendor-defined instructions in the mainline binutils,
-	    this change also adds a riscv_supported_vendor_x_ext secondary
-	    dispatch table (but also keeps the behaviour of allowing any unknow
-	    X-extension to be specified in addition to the known ones from this
-	    table).
-
-	    As discussed, this change already includes the planned/agreed future
-	    requirements for X-extensions (which are likely to be captured in the
-	    riscv-toolchain-conventions repository):
-	      - a public specification document is available (see above) and is
-	        referenced from the gas-documentation
-	      - the naming follows chapter 27 of the RISC-V ISA specification
-	      - instructions are prefixed by a vendor-prefix (vt for Ventana)
-	        to ensure that they neither conflict with future standard
-	        extensions nor clash with other vendors
-
-	    bfd/ChangeLog:
-
-	            * elfxx-riscv.c (riscv_get_default_ext_version): Add riscv_supported_vendor_x_ext.
-	            (riscv_multi_subset_supports): Recognize INSN_CLASS_XVENTANACONDOPS.
-
-	    gas/ChangeLog:
-
-	            * doc/c-riscv.texi: Add section to list custom extensions and
-	              their documentation URLs.
-	            * testsuite/gas/riscv/x-ventana-condops.d: New test.
-	            * testsuite/gas/riscv/x-ventana-condops.s: New test.
-
-	    include/ChangeLog:
-
-	            * opcode/riscv-opc.h Add vt.maskc and vt.maskcn.
-	            * opcode/riscv.h (enum riscv_insn_class): Add INSN_CLASS_XVENTANACONDOPS.
-
-	    opcodes/ChangeLog:
-
-	            * riscv-opc.c: Add vt.maskc and vt.maskcn.
-
-	    Series-version: 1
-	    Series-to: binutils@sourceware.org
-	    Series-cc: Kito Cheng <kito.cheng@sifive.com>
-	    Series-cc: Nelson Chu <nelson.chu@sifive.com>
-	    Series-cc: Greg Favor <gfavor@ventanamicro.com>
-	    Series-cc: Christoph Muellner <cmuellner@gcc.gnu.org>
-
-2023-04-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	gas: documentation for the BPF pseudo-c asm syntax
-	This patch expands the GAS manual in order to specify the alternate
-	pseudo-C assembly syntax used in BPF, and now supported by the
-	assembler.
-
-	gas/ChangeLog:
-
-	2023-04-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-		PR gas/29757
-		* doc/c-bpf.texi (BPF Pseudo-C Syntax): New section.
-
-2023-04-26  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
-
-	gas: BPF pseudo-c syntax tests
-	This patch expands the GAS BPF testsuite in order to also test the
-	alternative pseudo-C syntax used in BPF assembly.
-
-	This includes three main changes:
-
-	- Some general GAS tests involving assignment and equality operands in
-	  expressions (such as = and ==) are disabled in bpf-* targets,
-	  because the syntax collides with the pseudo-C BPF assembly syntax.
-
-	- New tests are added to the BPF GAS testsuite that test the pseudo-c
-	syntax.  Tests for all BPF instructions are included.
-
-	- New tests are added to the BPF GAS testsuite that test the support
-	  for both syntaxes in the same source.
-
-	gas/ChangeLog:
-
-	2023-04-20  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
-
-		PR gas/29728
-		* testsuite/gas/all/assign-bad-recursive.d: Skip test in bpf-*
-		targets.
-		* testsuite/gas/all/eqv-dot.d: Likewise.
-		* testsuite/gas/all/gas.exp: Skip other assignment tests in bpf-*.
-		* testsuite/gas/bpf/alu-pseudoc.s: New file.
-		* testsuite/gas/bpf/pseudoc-normal.s: Likewise.
-		* testsuite/gas/bpf/pseudoc-normal.d: Likewise.
-		* testsuite/gas/bpf/pseudoc-normal-be.d: Likewise.
-		* testsuite/gas/bpf/mem-pseudoc.s: Likewise.
-		* testsuite/gas/bpf/lddw-pseudoc.s: Likewise.
-		* testsuite/gas/bpf/jump32-pseudoc.s: Likewise.
-		* testsuite/gas/bpf/jump-pseudoc.s: Likewise.
-		* testsuite/gas/bpf/indcall-1-pseudoc.s: Likewise.
-		* testsuite/gas/bpf/atomic-pseudoc.s: Likewise.
-		* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
-		* testsuite/gas/bpf/*.d: Add -pseudoc variants of the tests.
-
-2023-04-26  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
-
-	gas: support for the BPF pseudo-c assembly syntax
-	This patch adds support to the GNU assembler for an alternative
-	assembly syntax used in BPF.  This syntax is C-like and very
-	unconventional for an assembly language, but it is generated by
-	clang/llvm and is also used in inline asm templates in kernel code, so
-	we ought to support it.
-
-	After this patch, the assembler is able to parse instructions in both
-	supported syntax: the normal assembly-like syntax and the pseudo-C
-	syntax.  Instruction formats can be mixed in the source program: the
-	assembler recognizes the right syntax to use.
-
-	gas/ChangeLog:
-
-	2023-04-20  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
-
-		PR gas/29728
-		* config/tc-bpf.h (TC_EQUAL_IN_INSN): Define.
-		* config/tc-bpf.c (LEX_IS_SYMBOL_COMPONENT): Define.
-		(LEX_IS_WHITESPACE): Likewise.
-		(LEX_IS_NEWLINE): Likewise.
-		(LEX_IS_ARITHM_OP): Likewise.
-		(LEX_IS_STAR): Likewise.
-		(LEX_IS_CLSE_BR): Likewise.
-		(LEX_IS_OPEN_BR): Likewise.
-		(LEX_IS_EQUAL): Likewise.
-		(LEX_IS_EXCLA): Likewise.
-		(ST_EOI): Likewise.
-		(MAX_TOKEN_SZ): Likewise.
-		(init_pseudoc_lex): New function.
-		(md_begin): Call init_pseudoc_lex.
-		(valid_expr): New function.
-		(build_bpf_non_generic_load): Likewise.
-		(build_bpf_atomic_insn): Likewise.
-		(build_bpf_jmp_insn): Likewise.
-		(build_bpf_arithm_insn): Likewise.
-		(build_bpf_endianness): Likewise.
-		(build_bpf_load_store_insn): Likewise.
-		(look_for_reserved_word): Likewise.
-		(is_register): Likewise.
-		(is_cast): Likewise.
-		(get_token): Likewise.
-		(bpf_pseudoc_to_normal_syntax): Likewise.
-		(md_assemble): Try pseudo-C syntax if an instruction cannot be
-		parsed.
-
-2023-04-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	sim: bpf: update to new BPF relocations
-	This patch updates the BPF GNU sim testsuite in order to match the new
-	BPF relocations introduced in binutils in a recent patch [1].
-
-	[1] https://sourceware.org/pipermail/binutils/2023-March/126429.html
-
-2023-04-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix length of status line string
-	In commit 5d10a2041eb ("gdb: add string_file::release method") this was added:
-	...
-	+  std::string string_val = string.release ();
-	...
-	without updating subsequent uses of string.size (), which returns 0 after the
-	string.release () call.
-
-	Fix this by:
-	- using string_val.size () instead of string.size (), and
-	- adding an assert that would have caught this regression.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-	PR tui/30389
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30389
-
-2023-04-26  Tom Tromey  <tromey@adacore.com>
-
-	Rewrite gdb_mpz::operator==
-	Simon pointed out that the recent changes to gdb_mpz caused a build
-	failure on amd64 macOS.  It turns out to be somewhat difficult to
-	overload a method in a way that will work "naturally" for all integer
-	types; especially in a case like gdb_mpz::operator==, where it's
-	desirable to special case all integer types that are no wider than
-	'long'.
-
-	After a false start, I came up with this patch, which seems to work.
-	It applies the desirable GMP special cases directly in the body,
-	rather than via overloads.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-04-26  Luis Machado  <luis.machado@arm.com>
-
-	Updated debug architecture version checks for fbsd
-	There are two new debug architecture version entries.  I updated the
-	code for Linux, but fbsd also needs updating.
-
-	This patch does this, and should be pretty straightforward.
-
-	I can't test this on native fbsd, but I'm fairly confident it should
-	work.
-
-2023-04-26  Luis Machado  <luis.machado@arm.com>
-
-	Add new debug architecture version
-	Teach gdb about a new debug architecture version for AArch64 (0x11).
-
-	No user-visible changes.
-
-	Regression-tested on aarch64-linux Ubuntu 20.04/22.04.
-
-2023-04-26  Alan Modra  <amodra@gmail.com>
-
-	i386-dis.c UB shift and other tidies
-	1) i386-dis.c:12055:11: runtime error: left shift of negative value -1
-	Bit twiddling is best done unsigned, due to UB on overflow of signed
-	expressions.  Fix this by using bfd_vma rather than bfd_signed_vma
-	everywhere in i386-dis.c except print_displacement.
-
-	2) Return get32s and get16 value in a bfd_vma, reducing the need for
-	temp variables.
-
-	3) Introduce get16s and get8s functions to simplify the code.
-
-	4) With some optimisation options gcc-13 legitimately complains about
-	a fall-through in OP_I.  Fix that.  OP_I also doesn't need to use
-	"mask" which was wrong for w_mode anyway.
-
-	5) Masking with & 0xffffffff is better than casting to unsigned.  We
-	don't know for sure that unsigned int is 32-bit.
-
-	6) We also don't know that unsigned char is 8 bits.  Mask codep
-	accesses everywhere.  I don't expect binutils will work on anything
-	other than an 8-bit char host, but if we are masking codep accesses in
-	some places we might as well be consistent.  (Better would be to use
-	stdint.h types more in binutils.)
-
-2023-04-26  Alan Modra  <amodra@gmail.com>
-
-	binutils runtest $CC
-	I noticed in the binutile Makefile that runtest is being invoked with
-	CC, CC_FOR_BUILD and other compiler related flags in the environment.
-	That doesn't work.  Those variables ought to be passed on the runtest
-	command line.
-
-	After fixing that I had some fails due to binutils testprog.c now
-	being compiled with the default "-g -O2" picked up in
-	CFLAGS_FOR_TARGET.  Hack around that by passing -O0.
-
-	Also, with the binutils testsuite now taking notice of CC_FOR_TARGET,
-	I found a couple of debuginfod.exp fails with one of my compilers that
-	happened to be built without --debug-id being enabled by default.
-
-		* Makefile.am (check-DEJAGNU): Pass $CC and other variable on
-		the runtest command line rather than futilely in the
-		environment.  Add -O0 to CFLAGS_FOR_TARGET.
-		* Makefile.in: Regenerate.
-		* testsuite/binutils-all/debuginfod.exp: Compile testprog.c
-		with -Wl,--build-id.
-
-2023-04-26  Alan Modra  <amodra@gmail.com>
-
-	Avoid another -Werror=dangling-pointer
-	write.c:415:7: error: dangling pointer ‘prev_frag’ to ‘dummy’ may be used
-
-		* write.c (chain_frchains_together_1): Rewrite loop as a do
-		while to avoid false positive -Wdangling-pointer.
-
-2023-04-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-25  Tom Tromey  <tromey@adacore.com>
-
-	Use scoped_restore in varobj.c
-	One spot in varobj.c should use scoped_restore to save and restore
-	input_radix.  Note that the current code may fail to restore it on
-	error, so this patch fixes a latent bug.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-04-25  Tom Tromey  <tromey@adacore.com>
-
-	Remove some "goto"s from parse.c
-	parser_state::push_dollar has some unnecessary "goto"s.  Replacing
-	them cleans up the code.  Regression tested on x86-64 Fedora 36.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-04-25  Michael Matz  <matz@suse.de>
-
-	section-select: Fix performance problem (PR30367)
-	when using many wild-statements with non-wildcard filenames we
-	were running into quadraticness via repeatedly using lookup_name
-	on a long list of loaded files.  I've originally retained using
-	lookup_name because that preserved existing behaviour most obviously.
-	In particular in matching wild-statements when using a non-wildcard
-	filename it matches against local_sym_name, not the filename member.
-	If the wildspec would have an archive-spec or a wildcard it would use
-	the filename member, though.  Also it would load the named file
-	(and ignore it, as being not equal to the currently considered
-	input-statement).
-
-	Rewrite this to not use lookup_name but retain the comparison
-	against local_sym_name with a comment to that effect.
-
-		PR 30367
-		* ldlang.c (walk_wild_section_match): Don't use lookup_name
-		but directly compare spec and local_sym_name.
-
-2023-04-25  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: adjust logic to avoid register name symbols
-	Special casing GPR names in my_getSmallExpression() leads to a number of
-	inconsistencies. Generalize this by utilizing the md_parse_name() hook,
-	limited to when instruction operands are being parsed (really: probed).
-	Then both the GPR lookup there and the yet more ad hoc workaround for
-	PR/gas 29940 can be removed (including its extension needed for making
-	the compressed form JAL work again).
-
-	RISC-V: test for expected / no unexpected symbols
-	Both the temporary workaround for PR/gas 29940 and the existing special
-	casing of GPRs in my_getSmallExpression() aren't really tested anywhere
-	(i.e. with the workarounds remove testing would still succeed). Nor is
-	there any test for uses of symbols with names matching GPRs, where such
-	is permitted. Before altering how this is to be dealt with, install two
-	testcases covering the expected behavior. (For now this includes only
-	known affected insns; re-ordering of entries in riscv_opcodes[] could,
-	however, yield more of them.)
-
-	RISC-V: don't recognize bogus relocations
-	With my_getSmallExpression() consistently and silently failing on
-	relocation operators not fitting an insn, it is no longer necessary to
-	hand it percent_op_itype[] "just in case" (i.e. to avoid errors when a
-	subsequent parsing attempt for another operand combination might
-	succeed). This also eliminates the latent problem of percent_op_itype[]
-	and percent_op_stype[] growing a non-identical set of recognized
-	relocation operators.
-
-	RISC-V: avoid redundant and misleading/wrong error messages
-	The use of a wrong (for the insn) relocation operator (or a future one
-	which simply isn't recognized by older gas yet) doesn't render the (rest
-	of the) expression "bad". Furthermore alongside the error from
-	expression() in most cases the parser would emit another error then
-	anyway. Suppress the call to my_getExpression() in such a case,
-	arranging for a guaranteed subsequent error message by marking the
-	expression "illegal".
-
-	RISC-V: drop "percent_op" parameter from my_getOpcodeExpression()
-	Both callers check for no relocations, so there's no point parsing for
-	some. Have the function pass percent_op_null into
-	my_getSmallExpression(). Note that there's no point passing
-	percent_op_itype: Elsewhere, especially when processing compressed alias
-	insns ahead of non-alias ones, this has the effect of avoiding "bad
-	expression" errors when another parsing pass may follow (and succeed).
-	Here, however, all alternative forms of an insn type will again start
-	with the same O4 or O2, so avoiding errors earlier on doesn't really
-	help. Plus constructs with a relocation specifier (as percent_op_itype
-	would permit) can't be specified anyway, as the scrubber eats the
-	whitespace between .insn's type and the O4 or O2 expression when that
-	starts with % or ( - i.e. these will be seen as e.g. "i%lo(x)", and
-	riscv_ip() looks only for whitespace when finding the end of a mnemonic.
-
-	RISC-V: minor effort reduction in relocation specifier parsing
-	The sole caller of parse_relocation() has already checked for the %
-	prefix, so there's no need to check for it again in the strncasecmp()
-	and there's also no reason to make the involved string literals longer
-	than necessary.
-
-2023-04-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix timeout in gdb.tui/empty.exp
-	In test-case gdb.tui/empty.exp we run into:
-	...
-	WARNING: timeout in accept_gdb_output
-	PASS: gdb.tui/empty.exp: src: 90x40: box 1
-	...
-
-	We timeout here in Term::resize:
-	...
-		# Due to the strange column resizing behavior, and because we
-		# don't care about this intermediate resize, we don't check
-		# the size here.
-		wait_for "@@ resize done $_resize_count"
-	...
-	because the string we're trying to match is split over two lines:
-	...
-	25 -----------------------------------------------------------------------------+No
-	26 ne No process In:                                               L??   PC: ?? @@
-	27 resize done 0, size = 79x40
-	28 (gdb)
-	...
-
-	Fix this by dropping the "@@ " prefix.
-
-	Tested on x86_64-linux.
-
-2023-04-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix timeout in gdb.tui/completion.exp
-	With test-case gdb.tui/completion.exp, we run into:
-	...
-	WARNING: timeout in accept_gdb_output
-	PASS: gdb.tui/completion.exp: check focus completions
-	...
-
-	The timeout happens in this command:
-	...
-	Term::command "layout src"
-	...
-	which waits for:
-	- "(gdb) layout src", and then
-	- "(gdb) ".
-
-	Because the "layout src" command enables the TUI there's just a prompt.
-
-	Fix this by using Term::command_no_prompt_prefix.
-
-	Tested on x86_64-linux.
-
-2023-04-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix timeout in gdb.tui/new-layout.exp
-	In test-case gdb.tui/new-layout.exp we run into:
-	...
-	WARNING: timeout in accept_gdb_output
-	PASS: gdb.tui/new-layout.exp: layout=cmd_only {cmd 1} {} {}: \
-	  bottom of cmd window is blank
-	...
-
-	The timeout happens here:
-	...
-	    Term::command "layout src"
-	...
-
-	Before the "layout src" command we have:
-	...
-	Screen Dump (size 80 columns x 24 rows, cursor at column 46, row 7):
-	    0 +-tui-layout.c-------------------------+(gdb) layout example3
-	    1 |       20 {                           |(gdb) layout src
-	    2 |       21   return 0;                 |(gdb) winheight cmd 8
-	    3 |       22 }                           |(gdb) layout example4
-	    4 |       23                             |(gdb) layout src
-	    5 |       24                             |(gdb) winheight cmd 8
-	    6 |       25                             |(gdb) layout example5
-	    7 |       26                             |(gdb)
-	    8 |       27                             |
-	    9 |       28                             |
-	   10 |       29                             |
-	   11 |       30                             |
-	   12 |       31                             |
-	   13 |       32                             |
-	   14 |       33                             |
-	   15 |       34                             |
-	   16 |       35                             |
-	   17 |       36                             |
-	   18 |       37                             |
-	   19 |       38                             |
-	   20 |       39                             |
-	   21 |       40                             |
-	   22 +--------------------------------------+
-	   23 exec No process In:                                                L??   PC: ??
-	...
-	and after:
-	...
-	Screen Dump (size 80 columns x 24 rows, cursor at column 6, row 16):
-	    0 +-tui-layout.c-----------------------------------------------------------------+
-	    1 |       20 {                                                                   |
-	    2 |       21   return 0;                                                         |
-	    3 |       22 }                                                                   |
-	    4 |       23                                                                     |
-	    5 |       24                                                                     |
-	    6 |       25                                                                     |
-	    7 |       26                                                                     |
-	    8 |       27                                                                     |
-	    9 |       28                                                                     |
-	   10 |       29                                                                     |
-	   11 |       30                                                                     |
-	   12 |       31                                                                     |
-	   13 |       32                                                                     |
-	   14 +------------------------------------------------------------------------------+
-	   15 exec No process In:                                                L??   PC: ??
-	   16 (gdb)
-	   17
-	   18
-	   19
-	   20
-	   21
-	   22
-	   23
-	...
-
-	The Term::command "layout src" is waiting to match:
-	- "(gdb) layout src", and then
-	- "(gdb) ".
-
-	The first part fails to match on a line:
-	...
-	|       26                             |(gdb) layout src
-	...
-	because it expects the prompt at the start of the line.
-
-	Fix this by allowing the prompt at the start of a window as well.
-
-	Tested by x86_64-linux.
-
-2023-04-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix timeout in gdb.tui/main.exp
-	With test-case gdb.tui/main.exp we run into:
-	...
-	WARNING: timeout in accept_gdb_output
-	PASS: gdb.tui/main.exp: show main after file
-	...
-
-	The problem is that this command:
-	...
-	Term::command "file [standard_output_file $testfile]"
-	...
-	tries to match "(gdb) $cmd", but due to the long file name, $cmd is split up
-	over two lines:
-	...
-	   16 (gdb) file /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.tui/main/ma
-	   17 in
-	   18 Reading symbols from /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.t
-	   19 ui/main/main...
-	   20 (gdb)
-	...
-
-	Fix this by matching "Reading symbols from" instead.
-
-	Tested on x86_64-linux.
-
-2023-04-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix timeout in gdb.tui/corefile-run.exp
-	With test-case gdb.tui/corefile-run.exp we run into:
-	...
-	WARNING: timeout in accept_gdb_output
-	PASS: gdb.tui/corefile-run.exp: load corefile
-	...
-
-	The timeout happens in this command:
-	...
-	Term::command "core-file $core"
-	...
-	because it tries to match "(gdb) $cmd" but $cmd is split over two lines:
-	...
-	   16 (gdb) core-file /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.tui/co
-	   17 refile-run/corefile-run.core
-	   18 [New LWP 5370]
-	   19 Core was generated by `/data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb
-	   20 .tui/corefile-run/coref'.
-	   21 Program terminated with signal SIGTRAP, Trace/breakpoint trap.
-	   22 #0  main () at tui-layout.c:21
-	   23 (gdb)
-	...
-
-	Fix this by using send_gdb "$cmd\n" and wait_for "Program terminated" instead.
-
-	Tested on x86_64-linux.
-
-2023-04-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add debug prints in Term::wait_for
-	The semantics of wait_for are non-trivial, and a bit hard to understand
-	sometimes.
-
-	Add some debug prints in wait_for that make it clear:
-	- what regexps we're trying to match,
-	- what strings we compare to the regexps, and
-	- whether there's a match or mismatch.
-
-	I've added this ad-hoc a couple of times, and it seems that it's worth having
-	readily available.
-
-	The debug prints are enabled by adding DEBUG_TUI_MATCHING=1 to the
-	RUNTESTFLAGS:
-	...
-	$ make check RUNTESTFLAGS="gdb.tui/empty.exp DEBUG_TUI_MATCHING=1"
-	...
-
-	Tested on x86_64-linux.
-
-2023-04-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add warning for timeout in accept_gdb_output
-	In accept_gdb_output we have:
-	...
-	            timeout {
-	                # Assume a timeout means we somehow missed the
-	                # expected result, and carry on.
-	                return 0
-	            }
-	...
-
-	The timeout is silent, and though in some places the return value is checked,
-	this is not done consistently, and consequently there are silent timeouts
-	when running the TUI testsuite (gdb.tui/*.exp and gdb.python/tui*.exp).
-
-	Each timeout is 10 seconds, and there are 5 in total in the TUI tests, taking
-	50 seconds overall:
-	...
-	real    1m0.275s
-	user    0m10.440s
-	sys     0m1.343s
-	...
-
-	With an entire testsuite run taking about 30 minutes, that is about 2.5% of
-	the time spent waiting in TUI tests.
-
-	Let's make the timeouts visible using a warning, such that they can be fixed.
-
-	Tested on x86_64-linux.
-
-2023-04-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix auto-indent in gdb.gdb/python-helper.exp
-	When editing gdb.gdb/python-helper.exp, auto-indent is broken in my editor
-	(emacs).
-
-	The problem is that this:
-	...
-	if { 1 } {
-	    foo "{" "}"<ENTER>bar
-	}
-	...
-	produces this:
-	...
-	if { 1 } {
-	    foo "{" "}"
-	bar
-	}
-	...
-
-	Note that this doesn't happen for "{}".
-
-	Fix this by using "\{" and "\}".
-
-	Tested on x86_64-linux.
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.gdb/python-helper.exp with -O2 -flto
-	On openSUSE Leap 15.4, with gcc 7.5.0, when building gdb with
-	-O2 -g -flto=auto, I run into:
-	...
-	FAIL: gdb.gdb/python-helper.exp: hit breakpoint in outer gdb
-	FAIL: gdb.gdb/python-helper.exp: print integer from DWARF info
-	FAIL: gdb.gdb/python-helper.exp: print *type->main_type
-	...
-
-	Fix the first two FAILs by using $bkptno_numopt_re.
-
-	The last FAIL is due to:
-	...
-	(outer-gdb) print *type->main_type^M
-	A syntax error in expression, near `->main_type'.^M
-	(outer-gdb) FAIL: gdb.gdb/python-helper.exp: print *type->main_type
-	...
-	because:
-	...
-	(outer-gdb) print type^M
-	Attempt to use a type name as an expression^M
-	...
-
-	Fix this by making the test unresolved if "print type" or
-	"print type->main_type" doesn't succeed.
-
-	On openSUSE Tumbleweed, with gcc 13.0.1, when building gdb with
-	-O2 -g -flto=auto, I run into timeouts due to the breakpoint in c_print_type
-	not hitting.  Fix this by detecting the situation and bailing out.
-
-	Tested on x86_64-linux.
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix -wrap in presence of -prompt in gdb_test_multiple
-	While writing a gdb_test_multiple call in a test-case I tried to use -wrap in
-	combination with -prompt and found out that it doesn't work, because -wrap uses
-	"$gdb_prompt $" instead of $prompt_regexp.
-
-	Fix this by making -wrap use $prompt_regexp.
-
-	Tested on x86_64-linux.
-
-2023-04-24  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove end_stepping_range observable
-	I noticed that this observable was never notified, which means we can
-	probably safely remove it.  The notification was removed in:
-
-	    commit 243a925328f8e3184b2356bee497181049c0174f
-	    Author: Pedro Alves <palves@redhat.com>
-	    Date:   Wed Sep 9 18:23:24 2015 +0100
-
-	        Replace "struct continuation" mechanism by something more extensible
-
-	print_end_stepping_range_reason in turn becomes unused, so remote it as
-	well.
-
-	Change-Id: If5da5149276c282d2540097c8c4327ce0f70431a
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use -std=gnu99 for gdb.server/attach-flag.exp
-	When using a compiler defaulting to -std=gnu90, we run into:
-	...
-	Running gdb.server/attach-flag.exp ...
-	gdb compile failed, attach-flag.c: In function 'main':
-	attach-flag.c:22:3: error: 'for' loop initial declarations are only allowed \
-	  in C99 or C11 mode
-	   for (int i = 0; i < NTHREADS; i++)
-	   ^~~
-	attach-flag.c:22:3: note: use option -std=c99, -std=gnu99, -std=c11 or \
-	  -std=gnu11 to compile your code
-	...
-
-	Fix this by using -std=gnu99.
-
-	Tested on x86_64-linux.
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require GCC >= 5.x.x in gdb.base/utf8-identifiers.exp
-	Test-case gdb.base/utf8-identifiers.exp compiles starting with GCC 5, so
-	require this.
-
-	Tested on x86_64-linux.
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.multi/multi-arch.exp on powerpc64le
-	When running test-case gdb.multi/multi-arch.exp on powerpc64le-linux, I run into:
-	...
-	Running gdb/testsuite/gdb.multi/multi-arch.exp ...
-	gdb compile failed, In file included from /usr/include/features.h:399:0,
-	                 from /usr/include/stdio.h:27,
-	                 from gdb/testsuite/gdb.multi/hangout.c:18:
-	/usr/include/gnu/stubs.h:8:27: fatal error: gnu/stubs-32.h: \
-	  No such file or directory
-	 # include <gnu/stubs-32.h>
-	                           ^
-	compilation terminated.
-	...
-
-	The problem is that the test-case attempts to use gcc -m32 to produce an
-	executable while that's not available.
-
-	Fix this by:
-	- introduce a new caching proc have_compile_and_link_flag, and
-	- using have_compile_and_link_flag in test-case gdb.multi/multi-arch.exp.
-
-	Tested on:
-	- x86_64-linux (openSUSE Leap 15.4), and
-	- powerpc64le-linux (CentOS-7).
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add basic lmap for tcl < 8.6
-	With test-case gdb.dwarf2/dw2-abs-hi-pc.exp and tcl 8.5, I run into:
-	...
-	ERROR: tcl error sourcing gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp.
-	ERROR: invalid command name "lmap"
-	    while executing
-	"::gdb_tcl_unknown lmap i {dw2-abs-hi-pc.c dw2-abs-hi-pc-hello.c \
-	  dw2-abs-hi-pc-world.c} { expr { "$srcdir/$subdir/$i" } }"
-	...
-
-	Fix this by adding basic lmap support for tcl version < 8.6.
-
-	Tested on x86_64-linux.
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Don't use string cat in gdb.dwarf2/dw2-abs-hi-pc.exp
-	Test-case gdb.dwarf2/dw2-abs-hi-pc.exp uses string cat:
-	...
-	set sources [lmap i $sources { string cat "${srcdir}/${subdir}/" $i }]
-	...
-	but that's only supported starting tcl 8.6.
-
-	Fix this by using "expr" instead:
-	...
-	set sources [lmap i $sources { expr { "$srcdir/$subdir/$i" } }]
-	...
-
-	Tested on x86_64-linux.
-
-2023-04-24  Nick Clifton  <nickc@redhat.com>
-
-	New georgian translation for the bfd sub-directory
-
-2023-04-24  Alan Modra  <amodra@gmail.com>
-
-	Revert "x86: work around compiler diagnosing dangling pointer"
-	This reverts commit 983db9932a302f9e2ae1f1d4fd7c3149560bc269.
-
-2023-04-24  Alan Modra  <amodra@gmail.com>
-
-	gcc-13 i386-dis.c warning
-	opcodes/i386-dis.c: In function ‘print_insn’:
-	opcodes/i386-dis.c:9865:22: error: storing the address of local
-	variable ‘priv’ in ‘*info.private_data’ [-Werror=dangling-pointer=]
-
-		* i386-dis.c (print_insn): Clear info->private_data before
-		returning.
-
-2023-04-24  Alan Modra  <amodra@gmail.com>
-
-	asan: segfault in coff_mangle_symbols
-	The testcase managed to trigger creation of a wild pointer in
-	coff_slurp_symbol_table.  Stop that happening, and fix an unrelated
-	problem I happened to see in bfd_coff_get_syment.
-
-		* coff-bfd.c (bfd_coff_get_syment): Clear fix_value after
-		converting n_value from a pointer to an index.
-		* coffcode.h (coff_slurp_symbol_table <C_BSTAT>): Sanity check
-		symbol value before converting to a pointer.
-
-2023-04-24  Alan Modra  <amodra@gmail.com>
-
-	objcopy of archives tidy
-	This makes sure the input element bfd is closed before exiting the
-	loop copying elements.
-
-		* objcopy.c (copy_archive): Rename output_bfd to output_element.
-		Localise last_element.  Close this_element in more error cases.
-
-2023-04-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Skip dap tests for tcl 8.5
-	When running the dap tests on a system with tcl 8.5, we run into:
-	...
-	ERROR: tcl error sourcing gdb/testsuite/gdb.dap/memory.exp.
-	ERROR: bad class "entier": must be alnum, alpha, ascii, control, boolean, \
-	  digit, double, false, graph, integer, list, lower, print, punct, space, \
-	  true, upper, wideinteger, wordchar, or xdigit
-	    while executing
-	"string is entier $num"
-	    (procedure "num" line 16)
-	    invoked from within
-	...
-
-	Fix this by:
-	- requiring tcl 8.6 in allow_dap_tests, and
-	- adding the missing require allow_dap_tests in gdb.dap/memory.exp.
-
-	Tested on x86_64-linux.
-
-2023-04-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: work around compiler diagnosing dangling pointer
-	For quite come time print_insn() has been storing the address of a local
-	variable into info->private_data. Since the compiler can't know that the
-	field won't be accessed again after print_insn() returns, it may kind of
-	legitimately diagnose this. And recent enough gcc does as of the
-	introduction of the fetch_error() return paths (replacing setjmp()-based
-	error handling).
-
-	Utilizing that neither prefix_name() nor i386_dis_printf() actually use
-	info->private_data, zap the pointer in fetch_error(), after having
-	retrieved it for local use.
-
-2023-04-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-23  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: fix loongson3 llsc workaround
-	-mfix-looongson3-llsc may add sync instructions not needed on some
-	asm code with lots of debug info.
-
-		PR: 30153
-		* gas/config/tc-mips.c(fix_loongson3_llsc): clear logistic.
-
-2023-04-23  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: default output r6 obj if the triple is r6
-	If the triple is mipsisa32r6* or mipsisa64r6*, ld/as should output
-	r6 objects by default.
-	The triples with vendor `img` should do same.
-
-	The examples include:
-		as xx.s -o xx.o
-		ld -r -b binary xx.dat -o xx.o
-
-2023-04-23  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: support mips*64 as CPU and gnuabi64 as ABI
-	For MIPS64r6 ports, Debian as an example, `mipsisa64r6el` is
-	used as the cpu name in triple.
-	Let's recognize them by `mips*64*(el)`.
-
-	For 64bit Ports, like Debian's mips64el and mips64r6el ports,
-	`gnuabi64` is used as the abi section.
-	Let's use N64 abi by default for the triple with gnuabi64.
-
-2023-04-23  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: Fix loongarch32 test fails
-	Regenerated macro_op_32.d and add skip loongarch64-*-*.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/loongarch/macro_op_32.d: Regenerated.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-loongarch-elf/macro_op_32.d: Regenerated.
-
-2023-04-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove debug prints in gdb_find_gdc
-	When running the gdb.dlang test-cases, and forcing gdb_find_gdc to be used
-	rather than dejagnu's copy (mimicing what happens with an older dejagnu
-	without find_gdc), I run into these debug prints:
-	...
-	Tool Root: /data/vries/gdb/leap-15-4/build
-	CC: gdc
-	...
-
-	Remove these.
-
-	Tested on x86_64-linux.
-
-2023-04-22  WANG Rui  <r@hev.cc>
-
-	gdb: Fix false match issue in skip_prologue_using_linetable
-	[ Changes in v2:
-	  - rebase on trunk
-	  Changes in v3:
-	  - add test-case ]
-
-	We should exclude matches to the ending PC to prevent false matches with the
-	next function, as prologue_end is located at the end PC.
-
-	  <fun1>:
-	    0x00: ... <-- start_pc
-	    0x04: ...
-	    0x08: ... <-- breakpoint
-	    0x0c: ret
-	  <fun2>:
-	    0x10: ret <-- end_pc | prologue_end of fun2
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: WANG Rui <r@hev.cc> (fix, tiny change [1])
-	Co-Authored-By: Tom de Vries <tdevries@suse.de> (test-case)
-	Approved-by: Kevin Buettner <kevinb@redhat.com>
-
-	[1] https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html
-
-	PR symtab/30369
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30369
-
-2023-04-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove language_auto
-	I think that the language_auto enumerator and the auto_language class
-	can be removed.  There isn't really an "auto" language, it's only a
-	construct of the "set language" command to say "pick the appropriate
-	language automatically".  But "auto" is never the current language.  The
-	`current_language` points to the current effective language, and the
-	fact that we're in "auto language" mode is noted by the language_mode
-	global.
-
-	 - Change set_language to handle the "auto" (and "local", which is a
-	   synonym) early, instead of in the for loop.  I think it makes the two
-	   cases (auto vs explicit language) more clearly separated anyway.
-
-	 - Adjust add_set_language_command to hard-code the "auto" string,
-	   instead of using the "auto" language definition.
-
-	 - Remove auto_language, rename auto_or_unknown_language to
-	   unknown_language and move the bits of the existing unknown_language
-	   in there.
-
-	 - Remove the set_language at the end of _initialize_language.  I think
-	   it's not needed, because we call set_language in gdb_init, after all
-	   _initialize functions are called.  There is some chance that an
-	   _initialize function that runs after _initialize_language implicitly
-	   depends on current_language being set, but my testsuite runs haven't
-	   found anything like that.
-
-	 - Use language_unknown instead of language_auto when creating a minimal
-	   symbol (minimal_symbol_reader::record_full).  I think that this value
-	   is used to indicate that we don't know the symbol of the minimal
-	   symbol (yet), so language_unknown makes sense to me.  Update a
-	   condition accordingly in ada-lang.c.  symbol_find_demangled_name also
-	   appears to "normalize" this value from "unknown" to "auto", remove
-	   that part and update the condition to just check for
-	   language_unknown.
-
-	Change-Id: I47bcd6c15f607d9818f2e6e413053c2dc8ec5034
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: switch "set language" to getter/setter
-	The `language` global variable is mostly a scratch variable used for the
-	setting.  The source of truth is really current_language and
-	language_mode (auto vs manual), which are set by the
-	set_language_command callback.
-
-	Switch the setting to use the add_setshow_enum_cmd overload that takes a
-	value getter and setter.
-
-	Change-Id: Ief5b2f93fd7337eed7ec96023639ae3dfe62250b
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove return value of set_language
-	set_language returns the previous language, but nothing uses it.  Remove
-	the return value.  This lets us remove the assignment to
-	current_language, in _initialize_language.
-
-	Change-Id: Ifccf9b488434c1addf4626130a74e159a37d8c17
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add make-check-all.sh
-	Directory gdb/testsuite/boards contains a number of host/target boards, which
-	run a test-case (or test-cases) in a different way.
-
-	The benefits of using these boards are:
-	- improving test coverage of gdb,
-	- making the testsuite more robust, and
-	- making sure the test-cases work for non-native and remote setups, if
-	  possible.
-
-	Each board is slightly different, and developers need to learn how to use each
-	one, what parameters to pass and how, and which ones can be used in
-	combination with each other.  This is a threshold to start using them.
-
-	And then there quite a few, so I suppose typically only a few will be used by
-	each developer.
-
-	Add script gdb/testsuite/make-check-all.sh, that's intended to function as a
-	drop-in replacement of make check, while excercising all host/target boards in
-	gdb/testsuite/boards.
-
-	An example of make-check-all.sh for one test-case is:
-	...
-	 $  ~/gdb/src/gdb/testsuite/make-check-all.sh gdb.base/advance.exp
-	 LOCAL:
-	 # of expected passes            8
-	 TARGET BOARD: cc-with-gdb-index
-	 # of expected passes            8
-	   ...
-	 HOST BOARD: local-remote-host-notty, TARGET BOARD: remote-stdio-gdbserver
-	 # of expected passes            8
-	 HOST/TARGET BOARD: local-remote-host-native
-	 # of expected passes            8
-	...
-
-	Shell-checked and tested on x86_64-linux.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-04-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Add maint info screen
-	While working on PRs tui/30337 and cli/30346 I came across various notions of
-	width in gdb, as reported by gdb, readline, curses and the environment
-	variables.
-
-	As for gdb, readline and the environment variables, the way things work
-	is:
-	- Gdb asks readline to detect screen size,
-	- readline sets the actual screen size in the environment variables
-	  COLUMNS and LINES,
-	- readline reports back a screen size to gdb, which may have one column
-	  less than the actual screen size, to deal with lack of auto-wrap.
-	  This becomes gdb's notion of screen size (in other words the point where
-	  we can expect the gdb command line to wrap),
-	- Gdb then explicitly sets readline's screen size, which readline itself may
-	  adjust to deal with lack of auto-wrap.  This becomes readlines notion
-	  of screen size (well, internally the unadjusted one, but it'll report back
-	  the adjusted one).
-
-	Add a command "maint info screen" that prints these notions, both for width
-	and height.
-
-	For TERM=xterm we have:
-	...
-	$ TERM=xterm gdb -ex "maint info screen"
-	Number of characters gdb thinks are in a line is 118.
-	Number of characters readline reports are in a line is 118.
-	Number of characters curses thinks are in a line is 118.
-	Number of characters environment thinks are in a line is 118 (COLUMNS).
-	Number of lines gdb thinks are in a page is 27.
-	Number of lines readline reports are in a page is 27.
-	Number of lines curses thinks are in a page is 27.
-	Number of lines environment thinks are in a page is 27 (LINES).
-	...
-
-	And for TERM=ansi:
-	...
-	$ TERM=ansi gdb -ex "maint info screen"
-	Number of characters gdb thinks are in a line is 117.
-	Number of characters readline reports are in a line is 116.
-	Number of characters curses thinks are in a line is 118.
-	Number of characters environment thinks are in a line is 118 (COLUMNS).
-	Number of lines gdb thinks are in a page is 27.
-	Number of lines readline reports are in a page is 27.
-	Number of lines curses thinks are in a page is 27.
-	Number of lines environment thinks are in a page is 27 (LINES).
-	...
-
-	[ The fact that we have "characters readline reports are in a line is 116" is
-	is due to gdb making readline adjust twice for the lack of auto-wrap, this is
-	PR cli/30346.
-
-	Likewise we can detect tui/30337 by doing a resize in TUI mode and doing
-	"maint info screen":
-	...
-	Number of characters characters curses thinks are in a line is 110.
-	Number of characters environment thinks are in a line is 111 (COLUMNS). ]
-
-	And for TERM=ansi, with width and heigth set to 0:
-	...
-	Number of characters gdb thinks are in a line is 4294967295 (unlimited).
-	Number of characters readline reports are in a line is 32766 (unlimited - 1).
-	Number of characters curses thinks are in a line is 118.
-	Number of characters environment thinks are in a line is 118 (COLUMNS).
-	Number of lines gdb thinks are in a page is 4294967295 (unlimited).
-	Number of lines readline reports are in a page is 32767 (unlimited).
-	Number of lines curses thinks are in a page is 27.
-	Number of lines environment thinks are in a page is 27 (LINES).
-	...
-
-	[ Note that when doing a resize by say maximizing or de-maximizing a terminal,
-	all reported values are updated, except for curses when not in TUI mode.
-
-	Maybe that means there's a bug.  If not, then maybe we should not print
-	the curses lines unless in TUI mode, or annotate those lines such that it's
-	clear that the values may be not up-to-date. ]
-
-	I'd like to use this command in the regression test for PR cli/30346.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-21  Tom Tromey  <tromey@adacore.com>
-
-	Fix -Wmaybe-uninitialized warning in opcodes/i386-dis.c
-	A recent change in opcodes/i386-dis.c caused a build failure on my
-	x86-64 Fedora 36 system, which uses:
-
-	$ gcc --version
-	gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
-	[...]
-
-	The error is:
-
-	../../binutils-gdb/opcodes/i386-dis.c: In function ‘OP_J’:
-	../../binutils-gdb/opcodes/i386-dis.c:12705:22: error: ‘val’ may be used uninitialized [-Werror=maybe-uninitialized]
-	12705 |           disp = val & 0x8000 ? val - 0x10000 : val;
-	      |                  ~~~~^~~~~~~~
-
-	This patch fixes the warning.
-
-	opcodes/ChangeLog
-	2023-04-21  Tom Tromey  <tromey@adacore.com>
-
-		* i386-dis.c (OP_J): Check result of get16.
-
-2023-04-21  Tom Tromey  <tromey@adacore.com>
-
-	Use entry values for 32-bit PPC struct return
-	AdaCore has a local patch for PPC "finish", but last year, Ulrich
-	Weigand pointed out that this patch was incorrect.  It may work for
-	simple functions like the one in the internal test, but nothing
-	guarantees that r3 will be preserved by the callee, so checking r3 on
-	exit is not always correct.
-
-	This patch fixes the problem using the same approach as PPC64: use the
-	entry value of r3, if available.  Ulrich confirmed this matches the
-	PPC32 ABI.
-
-2023-04-21  Tom Tromey  <tromey@adacore.com>
-
-	Handle erroneous DW_AT_call_return_pc
-	On PPC64, with the test case included in an earlier patch, we found
-	that "finish" would still not correctly find the return value via
-	entry values.
-
-	The issue is simple.  The compiler emits:
-
-	   0x00000000100032b8 <+28>:	bl      0x1000320c <pck__create_large>
-	   0x00000000100032bc <+32>:	nop
-	   0x00000000100032c0 <+36>:	li      r9,42
-
-	... but the DWARF says:
-
-	    <162a>   DW_AT_call_return_pc: 0x100032c0
-
-	That is, the declared return PC is one instruction past the actual
-	return PC.
-
-	This patch adds a new arch hook to handle this scenario, and
-	implements it for PPC64.  Some care is taken so that GDB will continue
-	to work if this compiler bug is fixed.  A GCC patch is here:
-
-	    https://gcc.gnu.org/pipermail/gcc-patches/2023-March/613336.html
-
-	No check for 'nop' is done, as subsequent discussion revealed that the
-	linker might replace this with another instruction.
-
-2023-04-21  Tom Tromey  <tromey@adacore.com>
-
-	Handle function descriptors in call_site_target
-	call_site_target::iterate_over_addresses may look up a minimal symbol.
-	On platforms like PPC64 that use function descriptors, this may find
-	an unexpected address.  The fix is to use gdbarch_convert_from_func_ptr_addr
-	to convert from a function descriptor to the address recorded at the
-	call site.
-
-	I've added a new test case that is based on the internal AdaCore test
-	that provoked this bug.  However, I'm unable to test it as-is on
-	PPC64.
-
-2023-04-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop (explicit) BFD64 dependency from disassembler
-	get64() is unreachable when !BFD64 (due to a check relatively early in
-	print_insn()). Let's avoid the associated #ifdef-ary (or else we should
-	extend it to remove more dead code).
-
-	x86: drop use of setjmp() from disassembler
-	With the longjmp() uses all gone, the setjmp() isn't necessary anymore
-	either.
-
-2023-04-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: change fetch error handling for get<N>()
-	Make them return boolean and convert FETCH_DATA() uses to fetch_code().
-	With this no further users of FETCH_DATA() remain, so the macro and its
-	backing function are dropped as well.
-
-	Leave value types as they were for the helper functions, even if I don't
-	think that beyond get64() use of bfd_{,signed_}vma is really necessary.
-	With type change of "disp" in OP_E_memory(), change the 2nd parameter of
-	print_displacement() to a signed type as well, though (eliminating the
-	need for a local variable of signed type). This also eliminates the need
-	for custom printing of '-' in Intel syntax displacement expressions.
-
-	While there drop forward declarations which aren't really needed.
-
-2023-04-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: change fetch error handling when processing operands
-	Make the handler functions all return boolean and convert FETCH_DATA()
-	uses to fetch_code().
-
-	x86: change fetch error handling in get_valid_dis386()
-	Introduce a special error indicator node, for the sole (real) caller
-	to recognize and act upon.
-
-	x86: change fetch error handling in ckprefix()
-	Use a tristate (enum) return value type to be able to express all three
-	cases which are of interest to the (sole) caller. This also allows doing
-	away with the abuse of "rex_used".
-
-2023-04-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: change fetch error handling in top-level function
-	... and its direct helper get_sib(). Using setjmp()/longjmp() for fetch
-	error handling is problematic, as per
-	https://sourceware.org/pipermail/binutils/2023-March/126687.html. Start
-	using more conventional error handling instead.
-
-	Also introduce a fetch_modrm() helper, for subsequent re-use.
-
-2023-04-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move fetch error handling into a helper function
-	... such that it can be used from other than the setjmp() error handling
-	path.
-
-	Since I'd like the function's parameter to be pointer-to-const, two
-	other functions need respective constification then, too (along with
-	needing to be forward-declared).
-
-2023-04-21  Jan Beulich  <jbeulich@suse.com>
-
-	bfd: fix STRICT_PE_FORMAT build
-	A semicolon was missing and "name" needs to be pointer-to-const. While
-	adding "const" there, also add it for "sec".
-
-2023-04-21  Lifang Xia  <lifang_xia@linux.alibaba.com>
-
-	RISC-V: Optimize relaxation of gp with max_alignment.
-	This should be the first related issue, which posted in riscv-gnu-toolchain,
-	https://github.com/riscv-collab/riscv-gnu-toolchain/issues/497
-
-	If the output sections are not between gp and the symbol, then their alignments
-	shouldn't affect the gp relaxation.  However, this patch improves this idea
-	even more, it limits the range to the gp+-2k, which means only the output
-	section which are in the [gp-2K, gp+2K) range need to be considered.
-
-	Even if the output section candidates may be different for each relax passes,
-	the symbol that can be relaxed ar this round will not be truncated at next
-	round.  That is because this round you can do relaxation which means that the
-	section where the symbol is located is within the [gp-2K, gp+2K) range, so all
-	the output section alignments between them should be considered.  In other
-	words, if the alignments between them may cause truncated, then we should
-	already preserve the size and won't do the gp relaxation this time.
-
-	This patch can resolve the github issue which mentioned above, and also passed
-	all gcc/binutils regressions of riscv-gnu-toolchain, so should be worth and
-	safe enough to commit.
-
-	Originally, this patch also do the same optimization for the call relaxations,
-	https://sourceware.org/pipermail/binutils/2022-October/123918.html
-	But just in case there is something that has not been considered, we only
-	deal with the gp relaxation at this time.
-
-	bfd/
-		* elfnn-riscv.c (riscv_elf_link_hash_table): Added new bfd_vma,
-		max_alignment_for_gp.  It is used to record the maximum alignment of
-		the output sections, which are in the [gp-2K, gp+2k) range.
-		(riscv_elf_link_hash_table_create): Init max_alignment_for_gp to -1.
-		(_bfd_riscv_get_max_alignment): Added new parameter, gp.  If gp is
-		zero, then all the output section alignments are possible candidates;
-		Otherwise, only the output sections which are in the [gp-2K, gp+2K)
-		range need to be considered.
-		(_bfd_riscv_relax_lui): Called _bfd_riscv_get_max_alignment with the
-		non-zero gp if the max_alignment_for_gp is -1.
-		(_bfd_riscv_relax_pc): Likewise.
-		(_bfd_riscv_relax_section): Record the first input section, so that
-		we can reset the max_alignment_for_gp for each repeated relax passes.
-	ld/
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
-		* testsuite/ld-riscv-elf/relax-max-align-gp.*: New testcase.  It fails
-		without this patch.
-
-2023-04-21  Jan Beulich  <jbeulich@suse.com>
-
-	ld: add missing period after @xref
-	At least older versions of one of the doc generation tools complain
-	(warn) about it missing.
-
-2023-04-21  Alan Modra  <amodra@gmail.com>
-
-	Keeping track of rs6000-coff archive element pointers
-	rs6000-coff archives use a linked list of file offsets, where each
-	element points to the next element.  The idea is to allow updating of
-	large archives quickly without rewriting the whole archive.  (binutils
-	ar does not do this.)  Unfortunately this is an easy target for
-	fuzzers to create an archive that will cause ar or any other tool
-	processing archives to hang.  I'd implemented guards against pointing
-	back to the previous element, but of course that didn't last long.
-
-	So this patch implements a scheme to keep track of file offset ranges
-	used by elements as _bfd_read_ar_hdr is called for each element.  See
-	the add_range function comment.  I needed a place to stash the list,
-	so chose the obvious artdata.tdata backend extension to archive's
-	tdata, already used by xcoff.  That involved a little cleanup, because
-	while it would be possible to continue using different artdata.tdata
-	for the big and small archives, it's nicer to use a union.
-
-	If anyone is concerned this list of element ranges might grow large
-	and thus significantly slow down the tools, adjacent ranges are
-	merged.  In fact something like "ar t" will only ever have one range
-	on xcoff archives generated by binutils/ar.  I agree there might still
-	be a problem with ld random element access via the armap.
-
-	include/
-		* coff/xcoff.h (SIZEOF_AR_FILE_HDR): Use sizeof.
-		(SIZEOF_AR_FILE_HDR_BIG, SIZEOF_AR_HDR, SIZEOF_AR_HDR_BIG): Likewise.
-		(struct ar_ranges, struct xcoff_artdata): New.
-		(x_artdata): Define.
-		(xcoff_big_format_p): Rewrite.
-		(xcoff_ardata, xcoff_ardata_big): Delete.
-	bfd/
-		* coff-rs6000.c: Replace uses of xcoff_ardata and
-		xcoff_ardata_big throughout file.
-		(_bfd_xcoff_archive_p): Adjust artdata.tdata allocation.
-		(add_range): New function.
-		(_bfd_xcoff_read_ar_hdr): Use it here.  Fix memory leak.
-		(_bfd_xcoff_openr_next_archived_file): Remove old sanity
-		checks.  Set up range for header.
-		(xcoff_write_archive_contents_old): Make the temporary
-		artdata.tdata used here to pass info down to
-		_bfd_compute_and_write_armap a struct xcoff_artdata.
-		(xcoff_write_archive_contents_big): Likewise.
-		* coff64-rs6000.c: Replace uses of xcoff_ardata and
-		xcoff_ardata_big throughout file.
-		(xcoff64_archive_p): Adjust artdata.tdata allocation.
-
-2023-04-21  Alan Modra  <amodra@gmail.com>
-
-	Delete struct artdata archive_head
-	This element is unused.  Ideally we'd be moving archive_head and
-	other archive specific fields from struct bfd to here, but that's a
-	much larger change than this little bit of cleanup.
-
-		* libbfd-in.h (struct artdata): Delete archive_head.
-		* libbfd.h: Regenerate.
-		* archive.c,
-		* coff-rs6000.c,
-		* coff64-rs6000.c: Delete comments mentioning artdata archive_head.
-
-2023-04-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-20  Nick Clifton  <nickc@redhat.com>
-
-	Add a SECURITY.txt file describing the GNU Binutils' project's stance on security related bugs.
-
-2023-04-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: adjust an ILP32 testcase using .insn
-	In commit 6967633c8b49 ("x86: convert testcases to use .insn") an ILP32
-	clone of a testcase was missed in the set of tests needing --divide
-	added.
-
-	Reported-by: Clément Chigot <chigot@adacore.com>
-
-2023-04-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-20  Alan Modra  <amodra@gmail.com>
-
-	sh4-linux segfaults running ld testsuite
-	Segmentation fault
-	FAIL: pr22269-1 (static pie undefined weak)
-	and others running "visibility (hidden undef)" tests
-
-	No code has any right to access bfd_link_hash_entry u.def without
-	first checking the type, and SYMBOL_REFERENCES_LOCAL isn't sufficient.
-
-		* elf32-sh.c (sh_elf_finish_dynamic_symbol): Don't use relative
-		relocs in GOT unless symbol is defined.
-
-2023-04-20  Alan Modra  <amodra@gmail.com>
-
-	PR30343 infrastructure
-	Make ldemul_before_plugin_all_symbols_read more useful.
-
-		* ldlang.c (lang_process): Move call to
-		ldemul_before_plugin_all_symbols_read outside BFD_SUPPORTS_PLUGINS.
-		Allow backends to add to gc_sym_list before handling entry sym.
-		* ldelf.c (ldelf_before_plugin_all_symbols_read): Test
-		lto_plugin_active.
-
-2023-04-20  Alan Modra  <amodra@gmail.com>
-
-	ubsan: signed integer overflow in display_debug_lines_raw
-	This one was caused by me unnecessarily promoting an "int adv" to
-	"int64_t adv".  The expression overflowing was 4259 + 9223372036854775807
-	with the left number being unsigned int.
-
-		* dwarf.h (DWARF2_Internal_LineInfo): Replace unsigned short
-		with uint16_t and unsigned char with uint8_t.  Make li_line_base
-		an int8_t.
-		* dwarf.c (display_debug_lines_raw): Revert "adv" back to an int.
-
-2023-04-20  Alan Modra  <amodra@gmail.com>
-
-	Yet another out-of-memory fuzzed object
-	Do I care about out of memory conditions triggered by fuzzers?  Not
-	much.  Your operating system ought to be able to handle it by killing
-	the memory hog.  Oh well, this one was an element of a coff-alpha
-	archive that said it was a little less that 2**64 in size.  The
-	coff-alpha compression scheme expands at most 8 times, so we can do
-	better in bfd_get_file_size.
-
-		* bfdio.c (bfd_get_file_size): Assume elements in compressed
-		archive can only expand a maximum of eight times.
-		* coffgen.c (_bfd_coff_get_external_symbols): Sanity check
-		size of symbol table agains file size.
-
-2023-04-20  Alan Modra  <amodra@gmail.com>
-
-	buffer overflow in print_symname
-		* ecoff.c (_bfd_ecoff_slurp_symbolic_info): Zero terminate
-		string sections.
-
-2023-04-19  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: minor formatting fixes in sframe_encoder_write_fre
-	libsframe/
-		* sframe.c (sframe_encoder_write_fre): Formatting fixes for
-		  readability.
-
-	libsframe: use consistent function argument names
-	libsframe/
-		* sframe.c (sframe_decoder_get_header): Use consistent function
-		arg names.
-		(sframe_decoder_free): Likewise.
-		(sframe_encode): Use more appropriate var name.
-
-2023-04-19  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe: correct some typos
-	include/
-		* sframe.h: Correct a typo.
-
-	libsframe/
-		* sframe.c: Likewise.
-
-2023-04-19  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: use return type of bool for predicate functions
-	libsframe/
-		* sframe.c (sframe_header_sanity_check_p): Change return type to
-		bool.
-		(sframe_fre_sanity_check_p): Likewise.
-
-	gas: sframe: fix comment
-
-	gas: sframe: use ATTRIBUTE_UNUSED consistently
-	gas/
-		* gen-sframe.c (sframe_set_version): Use ATTRIBUTE_UNUSED
-		consistently.
-		(output_sframe): Likewise.
-		(sframe_set_fre_info): Remove the usage of ATTRIBUTE_UNUSED.
-
-2023-04-19  Tom Tromey  <tromey@adacore.com>
-
-	Remove adjust_type_signedness
-	I happened across adjust_type_signedness, which may be used to modify
-	a type when printing an Ada value.  Modifying a type like this is a
-	bad idea -- they should normally be considered immutable.  Removing
-	this function still passes both the dejagnu and internal AdaCore
-	tests, though, so this patch drops it.
-
-	As this was reviewed internally, and only affect Ada, I am checking it
-	in.
-
-2023-04-19  Nick Clifton  <nickc@redhat.com>
-
-	Fix: readelf: loc_offset XX too big
-	  PR 30355
-	  * dwarf.c (read_and_display_attr_value): Correctly handle DW_loclistx attributes that index a version 5 .debug_loclists section.
-
-2023-04-19  Jan Beulich  <jbeulich@suse.com>
-
-	gas: document that get_symbol_name() can clobber the input buffer
-	Callers which want to make further parsing attempts at the buffer passed
-	to the function need to be aware that due to the potential of string
-	concatenation the input buffer may be altered in ways beyond what can be
-	undone by putting back at *input_line_pointer the character that the
-	function returns.
-
-2023-04-19  Jan Beulich  <jbeulich@suse.com>
-
-	x86: parse_register() must not alter the parsed string
-	This reverts the code change done by 100f993c53a5 ("x86: Check
-	unbalanced braces in memory reference"), which wrongly identified
-	e87fb6a6d0cd ("x86/gas: support quoted address scale factor in AT&T
-	syntax") as the root cause of PR gas/30248. (The testcase is left in
-	place, no matter that it's at best marginally useful in that shape.)
-
-	The problem instead is that parse_register() alters the string handed to
-	it, thus breaking valid assumptions in subsequent parsing code. Since
-	the function's behavior is a result of get_symbol_name()'s, make a copy
-	of the incoming string before invoking that function.
-
-	Like for parse_real_register() follow the model of strtol() et al: input
-	string is const-qualified to signal that the string isn't altered, but
-	the returned "end" pointer is not const-qualified, requiring const to be
-	cast away (which generally is a bad idea, but the alternative would
-	again be more convoluted code).
-
-2023-04-19  Jan Beulich  <jbeulich@suse.com>
-
-	x86: parse_real_register() does not alter the parsed string
-	Follow the model of strtol() et al - input string is const-qualified to
-	signal that the string isn't altered, but the returned "end" pointer is
-	not const-qualified, requiring const to be cast away (which generally is
-	a bad idea, but the alternative would be more convoluted code).
-
-2023-04-19  Nick Clifton  <nickc@redhat.com>
-
-	Updated Hungarian translation for the gprof directory
-
-2023-04-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: re-format Python code with black 23
-	Change-Id: I849d10d69c254342bf01e955ffe62a2b60f9de4b
-
-2023-04-18  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: fix _Float128 type output string
-	PowerPC supports two 128-bit floating point formats, the IBM long double
-	and IEEE 128-bit float.  The issue is the DWARF information does not
-	distinguish between the two.  There have been proposals of how to extend
-	the DWARF information as discussed in
-
-	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104194
-
-	but has not been fully implemented.
-
-	GCC introduced the _Float128 internal type as a work around for the issue.
-	The workaround is not transparent to GDB.  The internal _Float128 type
-	name is printed rather then the user specified long double type.  This
-	patch adds a new gdbarch method to allow PowerPC to detect the GCC
-	workaround.  The workaround checks for "_Float128" name when reading the
-	base typedef from the die_info.  If the workaround is detected, the type
-	and format fields from the _Float128 typedef are copied to the long
-	double typedef.  The same is done for the complex long double typedef.
-
-	This patch fixes 74 regression test failures in
-	gdb.base/whatis-ptype-typedefs.exp on PowerPC with IEEE float 128 as the
-	default on GCC.  It fixes one regression test failure in
-	gdb.base/complex-parts.exp.
-
-	The patch has been tested on Power 10 where GCC defaults to IEEE Float
-	128-bit and on Power 10 where GCC defaults to the IBM 128-bit float.  The
-	patch as also been tested on X86-64 with no new regression failures.
-
-2023-04-18  mengqinggang  <mengqinggang@loongson.cn>
-
-	Symbols with GOT relocatios do not fix adjustbale
-	  gas
-	    * config/tc-loongarch.c (loongarch_fix_adjustable): Symbols with GOT relocatios do not fix adjustbale.
-	    * testsuite/gas/loongarch/macro_op_large_abs.d: Regenerated.
-	    * testsuite/gas/loongarch/macro_op_large_pc.d: Regenerated.
-	  ld
-	     * testsuite/ld-loongarch-elf/macro_op.d: Regenerated. -
-
-2023-04-18  Thomas Koenig  <tkoenig@netcologne.de>
-
-	Assembler Internal Docs: Describe handling of opcodes for relaxation a bit better.
-
-2023-04-18  Kito Cheng  <kito.cheng@sifive.com>
-
-	RISC-V: Cache the latest mapping symbol and its boundary.
-	This issue was reported from https://github.com/riscv-collab/riscv-gnu-toolchain/issues/1188
-
-	Current flow:
-	1) Scan any mapping symbol less than this instruciton.
-	2) If not found, did a backward search.
-
-	The flow seems not big issue, let run an example here:
-
-	$x:
-	0x0 a   <--- Found at step 1
-	0x4 b   <--- Not found in step 1, but found at step 2
-	0x8 c   <--- Not found in step 1, but found at step 2
-	$d
-	0x12 .word 1234 <-- Found at step 1
-
-	The instruciton didn't have the same address with mapping symbol will
-	still did backward search again and again.
-
-	So the new flow is:
-	1) Use the last mapping symbol status if the address is still within the range
-	   of the current mapping symbol.
-	2) Scan any mapping symbol less than this instruciton.
-	3) If not found, did a backward search.
-	4) If a proper mapping symbol is found in either step 2 or 3, find its boundary,
-	   and cache that.
-
-	Use the same example to run the new flow again:
-
-	$x:
-	0x0 a   <--- Found at step 2, the boundary is 0x12
-	0x4 b   <--- Cache hit at step 1, within the boundary.
-	0x8 c   <--- Cache hit at step 1, within the boundary.
-	$d
-	0x12 .word 1234 <-- Found at step 2, the boundary is the end of section.
-
-	The disassemble time of the test cases has been reduced from ~20 minutes to ~4
-	seconds.
-
-	opcode/ChangeLog
-		PR 30282
-		* riscv-dis.c (last_map_symbol_boundary): New.
-		(last_map_state): New.
-		(last_map_section): New.
-		(riscv_search_mapping_symbol): Cache the result of latest
-		mapping symbol.
-
-2023-04-18  Alan Modra  <amodra@gmail.com>
-
-	objdump use of uninitialised value in pr_string_field
-		PR 30365
-		* rdcoff.c (parse_coff_struct_type): Leave bitsize zero when no
-		auxents.
-
-	objdump buffer overflow in fetch_indexed_string
-		PR 30361
-		* dwarf.c (fetch_indexed_string): Sanity check string index.
-
-2023-04-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-17  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: 30360 Seg. Fault when application uses std::thread
-	We interpose a lot of libC functions (dlopen, fork, pthread_create, etc.).
-	Some of these functions have versions. For example,
-
-	% nm -D /lib64/gprofng/libgp-collector.so  | grep thread_create@ | sort
-	000000000004b420 T pthread_create@GLIBC_2.34
-	000000000004b490 T pthread_create@GLIBC_2.17
-	000000000004b500 T pthread_create@GLIBC_2.2.5
-	000000000004b570 T pthread_create@GLIBC_2.1
-	000000000004b5e0 T pthread_create@GLIBC_2.0
-
-	Our library does not set the default version for symbols.
-	This is correct because we don't know which libC will be used.
-
-	gcc and g++ links differently the version symbols when the default version is
-	not set. c-linker is using our pthread_create@GLIBC_2.34 and c++-linker is using
-	our pthread_create@GLIBC_2.0 by default.
-
-	The current implementation of the interposed functions is:
-	  If we are in our pthread_create@GLIBC_<NN>,
-	  we use dlvsym (dlflag, "pthread_create", "GLIBC_<NN>") to find and call
-	  the same function from libC.
-	In the test from PR 30360, pthread_create@GLIBC_2.0 is not in the current libC.
-	We need to call the default version symbol from libC.
-
-	gprofng/ChangeLog
-	2023-04-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30360
-		* libcollector/iotrace.c: Find and call a default libC version symbol.
-		* libcollector/dispatcher.c: Likewise.
-		* libcollector/iotrace.c: Likewise.
-		* libcollector/linetrace.c: Likewise.
-		* libcollector/mmaptrace.c: Likewise.
-		* libcollector/synctrace.c: Likewise.
-		* libcollector/collector.h (REAL_DCL): Remove an unused argument.
-
-2023-04-17  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: Update documentation
-	This patch addresses bugzilla 29521:
-	Bug 29521 - [docs] man pages are not in the release tarball
-
-	The dependence on help2man to create the man pages has been eliminated.
-	All man pages are now written in Texinfo. Texi2pod and pod2man are used
-	to generate the man pages from the source.
-
-	The user guide has been significantly expanded. It also includes all
-	the man pages. These are formatted appropriately in the INFO, PDF, and
-	HTML formats.
-
-	The index in the user guide has been enhanced to include an overview
-	of all options and commands that have been documented so far.
-
-	The work on the documentation has not been completed, but this is
-	a significant step forward.
-
-	gprofng/ChangeLog
-	2023-04-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29521
-		* doc/Makefile.am: Build documentation.
-		* doc/gprofng.texi: Update documentation.
-		* doc/version.texi: Likewise.
-		* src/Makefile.am: Move the man pages generation to doc/Makefile.am.
-		* gp-display-html/Makefile.am: Likewise.
-		* doc/gp-archive.texi: New file.
-		* doc/gp-collect-app.texi: New file.
-		* doc/gp-display-html.texi: New file.
-		* doc/gp-display-src.texi: New file.
-		* doc/gp-display-text.texi: New file.
-		* doc/gp-macros.texi: New file.
-		* doc/gprofng_ug.texi: New file.
-		* doc/Makefile.in: Rebuild.
-		* gp-display-html/Makefile.in: Rebuild.
-		* src/Makefile.in" Rebuild.
-
-2023-04-17  Tom Tromey  <tromey@adacore.com>
-
-	Remove some unnecessary casts from ada-lang.c
-	I noticed some unnecessary casts to LONGEST in ada-lang.c.  This patch
-	removes the ones I think are very clearly not needed.  I'm checking
-	this in as obvious.
-
-2023-04-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/amdgpu: add follow fork and exec support
-	Prior to this patch, it's not possible for GDB to debug GPU code in fork
-	children or after an exec.  The amd-dbgapi target attaches to processes
-	when an inferior appears due to a "run" or "attach" command, but not
-	after a fork or exec.  This patch adds support for that, such that it's
-	possible to for an inferior to fork and for GDB to debug the GPU code in
-	the child.
-
-	To achieve that, use the inferior_forked and inferior_execd observers.
-
-	In the case of fork, we have nothing to do if `child_inf` is nullptr,
-	meaning that GDB won't debug the child.  We also don't attach if the
-	inferior has vforked.  We are already attached to the parent's address
-	space, which is shared with the child, so trying to attach would cause
-	problems.  And anyway, the inferior can't do anything other than exec or
-	exit, it certainly won't start GPU kernels before exec'ing.
-
-	In the case of exec, we detach from the exec'ing inferior and attach to
-	the following inferior.  This works regardless of whether they are the
-	same or not.  If they are the same, meaning the execution continues in
-	the existing inferior, we need to do a detach/attach anyway, as
-	amd-dbgapi needs to be aware of the new address space created by the
-	exec.
-
-	Note that we use observers and not target_ops::follow_{fork,exec} here.
-	When the amd-dbgapi target is compiled in, it will attach (in the
-	amd_dbgapi_process_attach sense, not the ptrace sense) to native
-	inferiors when they appear, but won't push itself on the inferior's
-	target stack just yet.  It only pushes itself if the inferior
-	initializes the ROCm runtime.  So, if a non-GPU-using inferior calls
-	fork, an amd_dbgapi_target::follow_fork method would not get called.
-	Same for exec.  A previous version of the code had the amd-dbgapi target
-	pushed all the time, in which case we could use the target methods.  But
-	we prefer having the target pushed only when necessary, it's less
-	intrusive when doing native debugging that doesn't involve the GPU.
-
-	Change-Id: I5819c151c371120da8bab2fa9cbfa8769ba1d6f9
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-04-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: switch to right inferior in fetch_inferior_event
-	The problem explained and fixed in the previous patch could have also
-	been fixed by this patch.  But I think it's good change anyhow, that
-	could prevent future bugs, so here it is.
-
-	fetch_inferior_event switches to an arbitrary (in practice, the first) inferior
-	of the process target of the inferior used to fetch the event.  The idea is
-	that the event handling code will need to do some target calls, so we want to
-	switch to an inferior that has target target.
-
-	However, you can have two inferiors that share a process target, but with one
-	inferior having an additional target on top:
-
-	        inf 1            inf 2
-	        -----            -----
-	                         another target
-	        process target   process target
-	        exec             exec
-
-	Let's say inferior 2 is selected by do_target_wait and returns an event that is
-	really synthetized by "another target".  This "another target" could be a
-	thread or record stratum target (in the case explained by the previous patch,
-	it was the arch stratum target, but it's because the amd-dbgapi abuses the arch
-	layer).  fetch_inferior_event will then switch to the first inferior with
-	"process target", so inferior 1.  handle_signal_stop then tries to fetch the
-	thread's registers:
-
-	    ecs->event_thread->set_stop_pc
-	      (regcache_read_pc (get_thread_regcache (ecs->event_thread)));
-
-	This will try to get the thread's register by calling into the current target
-	stack, the stack of inferior 1.  This is problematic because "another target"
-	might have a special fetch_registers implementation.
-
-	I think it would be a good idea to switch to the inferior for which the
-	even was reported, not just some inferior of the same process target.
-	This will ensure that any target call done before we eventually call
-	context_switch will be done on the full target stack that reported the
-	event.
-
-	Not all events are associated to an inferior though.  For instance,
-	TARGET_WAITKIND_NO_RESUMED.  In those cases, some targets return
-	null_ptid, some return minus_one_ptid (ideally the expected return value
-	should be clearly defined / documented).  So, if the ptid returned is
-	either of these, switch to an arbitrary inferior with that process
-	target, as before.
-
-	Change-Id: I1ffc8c1095125ab591d0dc79ea40025b1d7454af
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-04-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make regcache::raw_update switch to right inferior
-	With the following patch, which teaches the amd-dbgapi target to handle
-	inferiors that fork, we end up with target stacks in the following
-	state, when an inferior that does not use the GPU forks an inferior that
-	eventually uses the GPU.
-
-	    inf 1            inf 2
-	    -----            -----
-	                     amd-dbgapi
-	    linux-nat        linux-nat
-	    exec             exec
-
-	When a GPU thread from inferior 2 hits a breakpoint, the following
-	sequence of events would happen, if it was not for the current patch.
-
-	 - we start with inferior 1 as current
-	 - do_target_wait_1 makes inferior 2 current, does a target_wait, which
-	   returns a stop event for an amd-dbgapi wave (thread).
-	 - do_target_wait's scoped_restore_current_thread restores inferior 1 as
-	   current
-	 - fetch_inferior_event calls switch_to_target_no_thread with linux-nat
-	   as the process target, since linux-nat is officially the process
-	   target of inferior 2.  This makes inferior 1 the current inferior, as
-	   it's the first inferior with that target.
-	 - In handle_signal_stop, we have:
-
-	    ecs->event_thread->suspend.stop_pc
-	      = regcache_read_pc (get_thread_regcache (ecs->event_thread));
-
-	    context_switch (ecs);
-
-	   regcache_read_pc executes while inferior 1 is still the current one
-	   (because it's before the `context_switch`).  This is a problem,
-	   because the regcache is for a ptid managed by the amd-dbgapi target
-	   (e.g. (12345, 1, 1)), a ptid that does not make sense for the
-	   linux-nat target.  The fetch_registers target call goes directly
-	   to the linux-nat target, which gets confused.
-	 - We would then get an error like:
-
-	     Couldn't get extended state status: No such process.
-
-	   ... since linux-nat tries to do a ptrace call on tid 1.
-
-	GDB should switch to the inferior the ptid belongs to before doing the
-	target call to fetch registers, to make sure the call hits the right
-	target stack (it should be handled by the amd-dbgapi target in this
-	case).  In fact the following patch does this change, and it would be
-	enough to fix this specific problem.
-
-	However, I propose to change regcache to make it switch to the right
-	inferior, if needed, before doing target calls.  That makes the
-	interface as a whole more independent of the global context.
-
-	My first attempt at doing this was to find an inferior using the process
-	stratum target and the ptid that regcache already knows about:
-
-	      gdb::optional<scoped_restore_current_thread> restore_thread;
-	      inferior *inf = find_inferior_ptid (this->target (), this->ptid ());
-	      if (inf != current_inferior ())
-		{
-		  restore_thread.emplace ();
-		  switch_to_inferior_no_thread (inf);
-		}
-
-	However, this caused some failures in fork-related tests and gdbserver
-	boards.  When we detach a fork child, we may create a regcache for the
-	child, but there is no corresponding inferior.  For instance, to restore
-	the PC after a displaced step over the fork syscall.  So
-	find_inferior_ptid would return nullptr, and
-	switch_to_inferior_no_thread would hit a failed assertion.
-
-	So, this patch adds to regcache the information "the inferior to switch
-	to to makes target calls".  In typical cases, it will be the inferior
-	that matches the regcache's ptid.  But in some cases, like the detached
-	fork child one, it will be another inferior (in this example, it will be
-	the fork parent inferior).
-
-	The problem that we witnessed was in regcache::raw_update specifically,
-	but I looked for other regcache methods doing target calls, and added
-	the same inferior switching code to raw_write too.
-
-	In the regcache constructor and in get_thread_arch_aspace_regcache,
-	"inf_for_target_calls" replaces the process_stratum_target parameter.
-	We suppose that the process stratum target that would be passed
-	otherwise is the same that is in inf_for_target_calls's target stack, so
-	we don't need to pass both in parallel.  The process stratum target is
-	still used as a key in the `target_pid_ptid_regcache_map` map, but
-	that's it.
-
-	There is one spot that needs to be updated outside of the regcache code,
-	which is the path that handles the "restore PC after a displaced step in
-	a fork child we're about to detach" case mentioned above.
-
-	regcache_test_data needs to be changed to include full-fledged mock
-	contexts (because there now needs to be inferiors, not just targets).
-
-	Change-Id: Id088569ce106e1f194d9ae7240ff436f11c5e123
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-04-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add maybe_switch_inferior function
-	Add the maybe_switch_inferior function, which ensures that the given
-	inferior is the current one.  Return an instantiated
-	scoped_restore_current_thread object only we actually needed to switch
-	inferior.
-
-	Returning a scoped_restore_current_thread requires it to be
-	move-constructible, so give it a move constructor.
-
-	Change-Id: I1231037102ed6166f2530399e8257ad937fb0569
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-04-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove regcache::target
-	The regcache class takes a process_stratum_target and then exposes it
-	through regcache::target.  But it doesn't use it itself, suggesting it
-	doesn't really make sense to put it there.  The only user of
-	regcache::target is record_btrace_target::fetch_registers, but it might
-	as well just get it from the current target stack.  This simplifies a
-	little bit a patch later in this series.
-
-	Change-Id: I8878d875805681c77f469ac1a2bf3a508559a62d
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-04-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add inferior_forked observable
-	In the upcoming patch to support fork in the amd-dbgapi target, the
-	amd-dbgapi target will need to be notified of fork events through an
-	observer, to attach itself (attach in the amd-dbgapi sense, not ptrace
-	sense) to the new inferior / process.
-
-	The reason that this can't be done through target_ops::follow_fork is
-	that the amd-dbgapi target isn't pushed on the inferior's target stack
-	right away.  It attaches itself to the process and only pushes itself on
-	its target stack if and when the inferior initializes the ROCm runtime.
-
-	If an inferior that is not using the ROCm runtime forks, we want to be
-	notified of it, so we can attach to the child, and catch if the child
-	starts using the ROCm runtime.
-
-	So, add a new observable and notify it in follow_fork_inferior.  It will
-	be used later in this series.
-
-	Change-Id: I67fced5a9cba6d5da72b9c7ea1c8397644ca1d54
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-04-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: pass execing and following inferior to inferior_execd observers
-	The upcoming patch to support exec in the amd-dbgapi target needs to
-	detach amd-dbgapi from the inferior doing the exec and attach amd-dbgapi
-	to the inferior continuing the execution.  They may or may not be the
-	same, depending on the `set follow-exec-mode` setting.  But even if they
-	are the same, we need to do the detach / attach dance.
-
-	With the current observable signature, the observers only receive the
-	inferior in which execution continues (the "following" inferior).
-
-	Change the signature to pass both inferiors, and update all existing
-	observers.
-
-	Change-Id: I259d1ea09f70f43be739378d6023796f2fce2659
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-04-17  Tom Tromey  <tromey@adacore.com>
-
-	Add 128-bit integer support to the Ada parser
-	This adds support for 128-bit integers to the Ada parser.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30188
-
-2023-04-17  Tom Tromey  <tromey@adacore.com>
-
-	Remove some Ada parser helper functions
-	These helper functions in the Ada parser don't seem all that
-	worthwhile to me, so this patch removes them.
-
-	Add overload of fits_in_type
-	This adds an overload of fits_in_type that accepts a gdb_mpz.  A
-	subsequent patch will use this.
-
-2023-04-17  Tom Tromey  <tromey@adacore.com>
-
-	Add 128-bit integer support to the Rust parser
-	This adds support for 128-bit integers to the Rust parser.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=21185
-
-2023-04-17  Tom Tromey  <tromey@adacore.com>
-
-	Convert long_const_operation to use gdb_mpz
-	This changes long_const_operation to use gdb_mpz for its storage.
-
-2023-04-17  Tom Tromey  <tromey@adacore.com>
-
-	Additions to gdb_mpz
-	In preparation for adding more 128-bit support to gdb, a few additions
-	to gdb_mpz are needed.
-
-	First, this adds a new 'as_integer_truncate' method.  This method
-	works like 'as_integer' but does not require the value to fit in the
-	target type -- it just truncates.
-
-	Second, gdb_mpz::export_bits is changed to handle the somewhat unusual
-	situation of zero-length types.  This can happen for a Rust '()' type;
-	but I think other languages have zero-bit integer types as well.
-
-	Finally, this adds some operator== overloads.
-
-2023-04-17  Nick Clifton  <nickc@redhat.com>
-
-	Make the .rsrc section read only.
-	  PR 30142
-	  * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Do not force the .rsrc section to be writeable.
-	  * rescoff.c (write_coff_file): Add the SEC_READONLY flag to the .rsrc section.
-
-2023-04-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Handle empty file name in .debug_line section
-	With DWARF 5, it's possible to produce an empty file name in the File Name
-	Table of the .debug_line section:
-	...
-	 The File Name Table (offset 0x112, lines 1, columns 2):
-	  Entry Dir     Name
-	  0     1       (indirect line string, offset: 0x2d):
-	...
-
-	Currently, when gdb reads an exec containing such debug info, it segfaults:
-	...
-	Thread 1 "gdb" received signal SIGSEGV, Segmentation fault.
-	0x000000000072cd38 in dwarf2_start_subfile (cu=0x2badc50, fe=..., lh=...) at \
-	  gdb/dwarf2/read.c:18716
-	18716     if (!IS_ABSOLUTE_PATH (filename) && dirname != NULL)
-	...
-	because read_direct_string transforms "" into a nullptr, and we end up
-	dereferencing the nullptr.
-
-	Note that the behaviour of read_direct_string has been present since repo
-	creation.
-
-	Fix this in read_formatted_entries, by transforming nullptr filenames in to ""
-	filenames.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-	PR symtab/30357
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30357
-
-2023-04-17  Nick Clifton  <nickc@redhat.com>
-
-	Add support for the .gnu.sgstubs section to the linker for ARM/ELF based targets.
-	  PR 30354
-	  * emulparams/armelf.sh (OTHER_PLT_SECTIONS): Define in order to handle the .gnu.sgstubs section.
-
-2023-04-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: accept script argument for mi_make_breakpoint_pending
-	This commit changes mi_make_breakpoint_pending to accept the 'script'
-	and 'times' arguments.
-
-	I've then added a new test that makes use of 'scripts' in
-	gdb.mi/mi-pending.exp and gdb.mi/mi-dprintf-pending.exp.
-
-	There is already a test in gdb.mi/mi-pending.exp that uses the 'times'
-	argument -- previously this argument was being ignored, but is now
-	used.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: avoid {"} pattern in lib/mi-support.exp
-	Commit:
-
-	  commit c569a946f6925d3f210c3eaf74dcda56843350ef
-	  Date:   Fri Mar 24 10:45:37 2023 +0100
-
-	      [gdb/testsuite] Fix unbalanced quotes in mi_expect_stop argument
-
-	Introduced the use of {"} in mi-support.exp.  There is absolutely
-	nothing wrong with this in any way.  However, this is causing my
-	editor to get the syntax highlighting of this file wrong after this
-	point.
-
-	Maybe the real answer is to use a better editor, or fix my current
-	editor.... but I'm hoping I can instead take the lazy approach of just
-	changing {"} to "\"", which is handled fine, and means exactly the
-	same as far as I understand it.
-
-	There should be no change in what is tested after this commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-14  Luis Machado  <luis.machado@arm.com>
-
-	pauth: Create new feature string for pauth to prevent crashing older gdb's
-	Older gdb's (9, 10, 11 and 12) have a bug that causes them to crash whenever
-	a target reports the pauth feature string in the target description and also
-	provide additional register outside of gdb's known and expected feature
-	strings.
-
-	This was fixed in gdb 13 onwards, but that means we're stuck with gdb's out
-	there that will crash on connection to the above targets.
-
-	QEMU has postponed inclusion of the pauth feature string in version 8, and
-	instead we agreed to use a new feature name to prevent crashing those older
-	gdb's.
-
-	Initially there was a plan to backport a trivial fix all the way to gdb 9, but
-	given QEMU's choice, this is no longer needed.
-
-	This new feature string is org.gnu.gdb.aarch64.pauth_v2, and should be used
-	by all targets going forward, except native linux gdb and gdbserver, for
-	backwards compatibility with older gdb's/gdbserver's.
-
-	gdb/gdbserver will still emit the old feature string for Linux since it doesn't
-	report additional system registers and thus doesn't cause a crash of older
-	gdb's. We can revisit this in the future once the problematic gdb's are likely
-	no longer in use.
-
-	I've added some documentation to explain the situation.
-
-2023-04-14  Luis Machado  <luis.machado@arm.com>
-
-	debug registers: Add missing debug version entry for FEAT_Debugv8p8
-	The Arm Architecture Reference Manual defines debug version 0b1010 for
-	FEAT_Debugv8p8. This is used to identify valid hardware debug registers.
-
-	gdb currently only knows about versions up to FEAT_Debugv8p4. This patch
-	teaches gdb about this new version.
-
-	No visible changes should happen as consequence of this patch, but in the
-	future gdb will be able to identify debug registers in newer hardware.
-
-	Regression-tested on aarch64-linux Ubuntu 20.04/22.04.
-
-2023-04-14  Hui Li  <lihui@loongson.cn>
-
-	gdb/testsuite: Skip dump ihex for 64-bit address in gdb.base/dump.exp
-	(1) Description of problem
-
-	In the current code, when execute the following test on LoongArch:
-
-	$make check-gdb TESTS="gdb.base/dump.exp"
-	```
-	FAIL: gdb.base/dump.exp: dump array as value, intel hex
-	FAIL: gdb.base/dump.exp: dump struct as value, intel hex
-	FAIL: gdb.base/dump.exp: dump array as memory, ihex
-	FAIL: gdb.base/dump.exp: dump struct as memory, ihex
-
-	```
-	These tests passed on the X86_64,
-
-	(2) Root cause
-
-	On LoongArch, variable intarray address 0x120008068 out of range for IHEX,
-	so dump ihex test failed.
-
-	gdb.base/dump.exp has the following code to check 64-bit address
-
-	```
-	 # Check the address of a variable.  If it is bigger than 32-bit,
-	 # assume our target has 64-bit addresses that are not supported by SREC,
-	 # IHEX and TEKHEX.  We skip those tests then.
-	 set max_32bit_address "0xffffffff"
-	 set data_address [get_hexadecimal_valueof "&intarray" 0x100000000]
-	 if {${data_address} > ${max_32bit_address}} {
-	    set is64bitonly "yes"
-	}
-	```
-
-	We check the "&intarray" on different target as follow:
-
-	```
-	$gdb gdb/testsuite/outputs/gdb.base/dump/dump
-	...
-	(gdb) start
-	...
-
-	On X86_64:
-	(gdb) print /x &intarray
-	$1 = 0x404060
-
-	On LoongArch:
-	(gdb) print /x &intarray
-	$1 = 0x120008068
-	```
-	The variable address difference here is due to the link script
-	of linker.
-
-	```
-	On X86_64:
-	$ld --verbose
-	...
-	PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000));
-	. = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
-
-	On LoongArch:
-	$ld --verbose
-	...
-	PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x120000000));
-	. = SEGMENT_START("text-segment", 0x120000000) + SIZEOF_HEADERS;
-
-	```
-
-	(3) How to fix
-
-	Because 64-bit variable address out of range for IHEX, it's not an
-	functional problem for LoongArch. Refer to the handling of 64-bit
-	targets in this testsuite, use the "is64bitonly" flag to skip those
-	tests for the target has 64-bit addresses.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-04-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add regression test for PR30325
-	Add regression tests for PR30325, one for the asm window and one for the
-	source window.
-
-	Use maint set tui-left-margin verbose to make the extend of the left margin
-	clear.
-
-	Tested on x86_64-linux.
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-04-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-13  Tom Tromey  <tromey@adacore.com>
-
-	Avoid double-free with debuginfod
-	PR gdb/29257 points out a possible double free when debuginfod is in
-	use.  Aside from some ugly warts in the symbol code (an ongoing
-	issue), the underlying issue in this particular case is that elfread.c
-	seems to assume that symfile_bfd_open will return NULL on error,
-	whereas in reality it throws an exception.  As this code isn't
-	prepared for an exception, bad things result.
-
-	This patch fixes the problem by introducing a non-throwing variant of
-	symfile_bfd_open and using it in the affected places.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29257
-
-2023-04-13  Claudiu Zissulescu  <claziss@synopsys.com>
-
-	arc: Update ARC specific linker tests.
-	All the tests are designed for a little-endian ARC system. Thus,
-	update the arc predicate in arc.exp, improve the matching pattern for
-	linker relaxation test, and add linker scripts to nps-1x tests.
-
-	arc: Update ARC's CFI tests.
-	The double store/loads instructions (e.g. STD/LDD) are not baseline
-	ARC ISA.  The same holds for some short instructions.  Update the
-	tests to use base ARC ISA.
-
-2023-04-13  Claudiu Zissulescu  <claziss@gmail.com>
-
-	arc: Update GAS test
-
-2023-04-13  Alan Modra  <amodra@gmail.com>
-
-	Preserve a few more bfd fields in check_format_matches
-	AOUT and COFF targets set symcount and start_address in their object_p
-	functions.  If these are used anywhere then it would pay to save and
-	restore them so that a successful match gets the values expected
-	rather than that for a later unsuccessful target match.
-
-		* format.c (struct bfd_preserve): Move some fields.  Add
-		symcount, read_only and start_address.
-		(bfd_preserve_save): Save..
-		(bfd_preserve_restore): ..and restore..
-		(bfd_reinit): ..and zero new fields.
-
-2023-04-13  Alan Modra  <amodra@gmail.com>
-
-	Re: pe_ILF_object_p and bfd_check_format_matches
-	The last patch wasn't quite correct.  bfd_preserve_restore also needs
-	to handle an in-memory to file backed transition, seen in a testcase
-	ILF object matching both pei-arm-little and pei-arm-wince-little.
-	There the first match is saved in preserve_match, and restored at the
-	end of the bfd_check_format_matches loop making the bfd in-memory.  On
-	finding more than one match the function wants to restore the bfd back
-	to its original state with another bfd_preserve_restore call before
-	exiting with a bfd_error_file_ambiguously_recognized error.
-
-	It is also not correct to restore abfd->iostream unless the iovec
-	changes.  abfd->iostream is a FILE* when using cache_iovec, and if
-	the file has been closed and reopened the iostream may have changed.
-
-		* format.c (io_reinit): New function.
-		(bfd_reinit, bfd_preserve_restore): Use it.
-
-2023-04-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Revert workaround in tui_source_window::show_line_number
-	The m_digits member of tui_source_window is documented as having semantics:
-	...
-	  /* How many digits to use when formatting the line number.  This
-	     includes the trailing space.  */
-	...
-
-	The commit 1b6d4bb2232 ("Redraw both spaces between line numbers and source
-	code") started printing two trailing spaces instead:
-	...
-	-  xsnprintf (text, sizeof (text), "%*d ", m_digits - 1, lineno);
-	+  xsnprintf (text, sizeof (text), "%*d  ", m_digits - 1, lineno);
-	...
-
-	Now that PR30325 is fixed, this no longer has any effect.
-
-	Fix this by reverting to the original behaviour: print one trailing space
-	char.
-
-	Tested on x86_64-linux.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-04-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix left margin in disassembly window
-	With a hello world a.out, and maint set tui-left-margin-verbose on, we have
-	this disassembly window:
-	...
-	┌───────────────────────────────────────────────────────────┐
-	│___ 0x555555555149 <main>           endbr64                │
-	│___ 0x55555555514d <main+4>         push   %rbp            │
-	│___ 0x55555555514e <main+5>         mov    %rsp,%rbp       │
-	│B+> 0x555555555151 <main+8>         lea    0xeac(%rip),%rax│
-	│___ 0x555555555158 <main+15>        mov    %rax,%rdi       │
-	...
-	Note the space between "B+>" and 0x555555555151.  The space shows that a bit
-	of the left margin is not written, which is a problem because that location is
-	showing a character previously written, which happens to be a space, but also
-	may be something else, for instance a '[' as reported in PR tui/30325.
-
-	The problem is caused by confusion about the meaning of:
-	...
-	 #define TUI_EXECINFO_SIZE 4
-	...
-
-	There's the meaning of defining the size of this zero-terminated char array:
-	...
-	      char element[TUI_EXECINFO_SIZE];
-	...
-	which is used to print the "B+>" bit, which is 3 chars wide.
-
-	And there's the meaning of defining part of the size of the left margin:
-	...
-	  int left_margin () const
-	  { return 1 + TUI_EXECINFO_SIZE + extra_margin (); }
-	...
-	where it represents 4 chars.
-
-	The discrepancy between the two causes the space between "B+>" and
-	"0x555555555151".
-
-	Fix this by redefining TUI_EXECINFO_SIZE to 3, and using:
-	...
-	      char element[TUI_EXECINFO_SIZE + 1];
-	...
-	such that we have:
-	...
-	|B+>0x555555555151 <main+8>         lea    0xeac(%rip),%rax │
-	...
-
-	This changes the layout of the disassembly window back to what it was before
-	commit 9e820dec13e ("Use a curses pad for source and disassembly windows"),
-	the commit that introduced the PR30325 regression.
-
-	This also changes the source window from:
-	...
-	│___000005__{                                               |
-	...
-	to:
-	...
-	│___000005_{                                                |
-	...
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30325
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-04-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Add maint set/show tui-left-margin-verbose
-	The TUI has two types of windows derived from tui_source_window_base:
-	- tui_source_window (the source window), and
-	- tui_disasm_window (the disassembly window).
-
-	The two windows share a common concept: the left margin.
-
-	With a hello world a.out, we can see the source window:
-	...
-	┌─/home/vries/hello.c───────────────────────────────────────┐
-	│        5  {                                               │
-	│B+>     6    printf ("hello\n");                           │
-	│        7    return 0;                                     │
-	│        8  }                                               │
-	│        9                                                  │
-	│
-	...
-	where the left margin is the part holding "B+>" and the line number, and the
-	disassembly window:
-	...
-	┌───────────────────────────────────────────────────────────┐
-	│    0x555555555149 <main>           endbr64                │
-	│    0x55555555514d <main+4>         push   %rbp            │
-	│    0x55555555514e <main+5>         mov    %rsp,%rbp       │
-	│B+> 0x555555555151 <main+8>         lea    0xeac(%rip),%rax│
-	│    0x555555555158 <main+15>        mov    %rax,%rdi       │
-	...
-	where the left margin is just the bit holding "B+>".
-
-	Because the left margin contains some spaces, it's not clear where it starts
-	and ends, making it harder to observe problems related to it.
-
-	Add a new maintenance command "maint set tui-left-margin-verbose", that when
-	set to on replaces the spaces in the left margin with either '_' or '0',
-	giving us this for the source window:
-	...
-	┌─/home/vries/hello.c───────────────────────────────────────┐
-	│___000005__{                                               │
-	│B+>000006__  printf ("hello\n");                           │
-	│___000007__  return 0;                                     │
-	│___000008__}                                               │
-	...
-	and this for the disassembly window:
-	...
-	┌───────────────────────────────────────────────────────────┐
-	│___ 0x555555555149 <main>           endbr64                │
-	│___ 0x55555555514d <main+4>         push   %rbp            │
-	│___ 0x55555555514e <main+5>         mov    %rsp,%rbp       │
-	│B+> 0x555555555151 <main+8>         lea    0xeac(%rip),%rax│
-	│___ 0x555555555158 <main+15>        mov    %rax,%rdi       │
-	...
-
-	Note the space between "B+>" and 0x555555555151.  The space shows that a bit
-	of the left margin is not written, a problem reported as PR tui/30325.
-
-	Specifically, PR tui/30325 is about the fact that the '[' character from the
-	string "[ No Assembly Available ]" ends up in that same spot:
-	...
-	│B+>[0x555555555151 <main+8>         lea    0xeac(%rip),%rax│
-	...
-	which only happens for certain window widths.
-
-	The new command allows us to spot the problem with any window width.
-
-	Likewise, when we revert the fix from commit 1b6d4bb2232 ("Redraw both spaces
-	between line numbers and source code"), we have:
-	...
-	┌─/home/vries/hello.c───────────────────────────────────────┐
-	│___000005_ {                                               │
-	│B+>000006_   printf ("hello\n");                           │
-	│___000007_   return 0;                                     │
-	│___000008_ }                                               │
-	...
-	showing a similar problem at the space between '_' and '{'.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-04-12  Tom Tromey  <tom@tromey.com>
-
-	Use SELF_CHECK in all unit tests
-	I noticed a few unit tests are using gdb_assert.  I think this was an
-	older style, before SELF_CHECK was added.  This patch switches them
-	over.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-04-12  Claudiu Zissulescu  <claziss@gmail.com>
-
-	arc: remove faulty instructions
-	Clean not implemented ARC instruction from ARC instruction table.
-
-2023-04-12  Tom Tromey  <tromey@adacore.com>
-
-	Use 'require' with gnatmake_version_at_least
-	I found a couple of tests that check gnatmake_version_at_least using
-	"if" where "require" would be a little cleaner.  This patch converts
-	these.
-
-2023-04-12  YunQiang Su  <yunqiang.su@cipunited.com>
-
-	MIPS: make mipsisa32 and mipsisa64 link more systematic
-	Introduce `static const struct mips_mach_extension mips_mach_32_64[]`
-	and `mips_mach_extends_32_64 (unsigned long base, unsigned long extension)`,
-	to make mipsisa32 and mipsisa64 interlink more systemtic.
-
-	Normally, the ISA mipsisa64rN has two subset: mipsisa64r(N-1) and
-	mipsisa32rN. `mips_mach_extensions` can hold only mipsisa64r(N-1),
-	so we need to introduce a new instruction `mips_mach_32_64`, which holds the pair 32vs64.
-
-	Note: R6 is not compatible with pre-R6.
-
-	bfd/ChangeLog:
-
-		* elfxx-mips.c (mips_mach_extends_p): make mipsisa32 and
-		  mipsisa64 interlink more systematic.
-		  (mips_mach_32_64): new struct added.
-		  (mips_mach_extends_32_64): new function added.
-
-2023-04-12  Nick Clifton  <nickc@redhat.com>
-
-	Fix typos in the linker's documentation of the --enable-non-contiguous-regions option.
-
-2023-04-12  Alan Modra  <amodra@gmail.com>
-
-	PR30326, uninitialised value in objdump compare_relocs
-	This is a fuzzing PR, with a testcase involving a SHF_ALLOC and
-	SHF_COMPRESSED SHT_RELA section, ie. a compressed dynamic reloc
-	section.  BFD doesn't handle compressed relocation sections, with most
-	of the code reading relocs using sh_size (often no bfd section is
-	created) but in the case of SHF_ALLOC dynamic relocs we had some code
-	using the bfd section size.  This led to a mismatch, sh_size is
-	compressed, size is uncompressed, and from that some uninitialised
-	memory.  Consistently using sh_size is enough to fix this PR, but I've
-	also added tests to exclude SHF_COMPRESSED reloc sections from
-	consideration.
-
-		PR 30362
-		* elf.c (bfd_section_from_shdr): Exclude reloc sections with
-		SHF_COMPRESSED flag from normal reloc processing.
-		(_bfd_elf_get_dynamic_reloc_upper_bound): Similarly exclude
-		SHF_COMPRESSED sections from consideration.  Use sh_size when
-		sizing to match slurp_relocs.
-		(_bfd_elf_canonicalize_dynamic_reloc): Likewise.
-		(_bfd_elf_get_synthetic_symtab): Use NUM_SHDR_ENTRIES to size
-		plt relocs.
-		* elf32-arm.c (elf32_arm_get_synthetic_symtab): Likewise.
-		* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.
-		* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
-		* elfxx-mips.c (_bfd_mips_elf_get_synthetic_symtab): Likewise.
-
-2023-04-12  Alan Modra  <amodra@gmail.com>
-
-	ubsan: dwarf2.c:2232:7: runtime error: index 16 out of bounds
-	Except it isn't out of bounds because space for a larger array has
-	been allocated.
-
-		* dwarf2.c (struct trie_leaf): Make ranges a C99 flexible array.
-		(alloc_trie_leaf, insert_arange_in_trie): Adjust sizing.
-
-2023-04-12  Alan Modra  <amodra@gmail.com>
-
-	Fail of x86_64 AMX-COMPLEX insns (Intel disassembly)
-	x86_64-w64-mingw32 pads sections.
-
-		* testsuite/gas/i386/x86-64-amx-complex-intel.d: Don't fail
-		due to nop padding.
-
-2023-04-12  Alan Modra  <amodra@gmail.com>
-
-	pe_ILF_object_p and bfd_check_format_matches
-	If pe_ILF_object_p succeeds, pe_ILF_build_a_bfd will have changed the
-	bfd from being file backed to in-memory.  This can have unfortunate
-	results for targets checked by bfd_check_format_matches after that
-	point as they will be matching against the created in-memory image
-	rather than the file.  bfd_preserve_restore also has a problem if it
-	flips the BFD_IN_MEMORY flag, because the flag affects iostream
-	meaning and should be set if using _bfd_memory_iovec.  To fix these
-	problems, save and restore iostream and iovec along with flags, and
-	modify bfd_reinit to make the bfd file backed again.  Restoring the
-	iovec and iostream allows the hack in bfd_reinit keeping BFD_IN_MEMORY
-	(part of BFD_FLAGS_SAVED) to be removed.
-	One more detail: If restoring from file backed to in-memory then the
-	bfd needs to be forcibly removed from the cache lru list, since after
-	the bfd becomes in-memory a bfd_close will delete the bfd's memory
-	leaving the lru list pointing into freed memory.
-
-		* cache.c (bfd_cache_init): Clear BFD_CLOSED_BY_CACHE here..
-		(bfd_cache_lookup_worker): ..rather than here.
-		(bfd_cache_close): Comment.
-		* format.c (struct bfd_preserve): Add iovec and iostream fields.
-		(bfd_preserve_save): Save them..
-		(bfd_preserve_restore): ..and restore them, calling
-		bfd_cache_close if the iovec differs.
-		(bfd_reinit): Add preserve param.  If the bfd has been flipped
-		to in-memory, reopen the file.  Restore flags.
-		* peicode.h (pe_ILF_cleanup): New function.
-		(pe_ILF_object_p): Return it.
-		* bfd.c (BFD_FLAGS_SAVED): Delete.
-		* bfd-in2.h: Regenerate.
-
-2023-04-12  Alan Modra  <amodra@gmail.com>
-
-	Comment typo fix
-
-2023-04-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-11  Nathan Sidwell  <nathan@acm.org>
-
-	bfd: optimize bfd_elf_hash
-	The bfd_elf_hash loop is taken straight from the sysV document, but it
-	is poorly optimized. This refactoring removes about 5 x86 insns from
-	the 15 insn loop.
-
-	1) The if (..) is meaningless -- we're xoring with that value, and of
-	course xor 0 is a nop. On x86 (at least) we actually compute the xor'd
-	value and then cmov.  Removing the if test removes the cmov.
-
-	2) The 'h ^ g' to clear the top 4 bits is not needed, as those 4 bits
-	will be shifted out in the next iteration.  All we need to do is sink
-	a mask of those 4 bits out of the loop.
-
-	3) anding with 0xf0 after shifting by 24 bits can allow betterin
-	encoding on RISC ISAs than masking with '0xf0 << 24' before shifting.
-	RISC ISAs often require materializing larger constants.
-
-		bfd/
-		* elf.c (bfd_elf_hash): Refactor to optimize loop.
-		(bfd_elf_gnu_hash): Refactor to use 32-bit type.
-
-2023-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb, doc: correct argument description for info connections/inferiors
-	It said for 'info inferiors' and 'info connections' that the argument
-	could be 'a space separated list of inferior numbers' which is correct
-	but incomplete.  In fact the arguments can be any space separated
-	combination of numbers and (ascending) ranges.
-
-	The beginning of the section now describes the ID list as a new keyword.
-
-	Co-Authored-By: Christina Schimpe <christina.schimpe@intel.com>
-
-2023-04-11  Nick Clifton  <nickc@redhat.com>
-
-	Replace an assertion in the dwarf code with a warning message.
-	  PR 30327
-	  * dwarf.c (read_and_display_attr_value): Warn if the number of views is greater than the number of locations.
-
-	Fix an illegal memorty access when running gprof over corrupt data.
-	  PR 30324
-	  * symtab.c (symtab_finalize): Only change the end address if dst has been updated.
-
-	Fix an attempt to allocate an excessive amount of memory when parsing a corrupt DWARF file.
-	  PR 30313
-	  * dwarf.c (display_debug_lines_decoded): Check for an overlarge number of files or directories.
-
-	Fix a potential illegal memory access when displaying corrupt DWARF information.
-	  PR 30312
-	  * dwarf.c (prealloc_cu_tu_list): Always allocate at least one entry.
-
-	Fix an attempt to allocate an overlarge amount of memory when decoding a corrupt ELF format file.
-	  PR 30311
-	  * readelf.c (uncompress_section_contents): Check for a suspiciously large uncompressed size.
-
-	Fix illegal memory access when disassembling corrupt NFP binaries.
-	  PR 30310
-	  * nfp-dis.c (init_nfp6000_priv): Check that the output section exists.
-
-2023-04-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix indentation within print_one_breakpoint_location
-	Spotted some code in print_one_breakpoint_location that was not
-	indented correctly, this commit just changes the indentation.
-
-	There should be no user visible changes after this commit.
-
-2023-04-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix typo gdb_name_name -> gdb_test_name
-	Spotted a small typo in gdb_breakpoint proc, we use $gdb_name_name
-	instead of $gdb_test_name in one place.  Fixed in this commit.
-
-2023-04-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: warn when converting h/w watchpoints to s/w
-	On amd64 (at least) if a user sets a watchpoint before the inferior
-	has started then GDB will assume that a hardware watchpoint can be
-	created.
-
-	When the inferior starts there is a chance that the watchpoint can't
-	actually be create as a hardware watchpoint, in which case (currently)
-	GDB will silently convert the watchpoint to a software watchpoint.
-	Here's an example session:
-
-	  (gdb) p sizeof var
-	  $1 = 4000
-	  (gdb) watch var
-	  Hardware watchpoint 1: var
-	  (gdb) info watchpoints
-	  Num     Type           Disp Enb Address    What
-	  1       hw watchpoint  keep y              var
-	  (gdb) starti
-	  Starting program: /home/andrew/tmp/watch
-
-	  Program stopped.
-	  0x00007ffff7fd3110 in _start () from /lib64/ld-linux-x86-64.so.2
-	  (gdb) info watchpoints
-	  Num     Type           Disp Enb Address            What
-	  1       watchpoint     keep y                      var
-	  (gdb)
-
-	Notice that before the `starti` command the watchpoint is showing as a
-	hardware watchpoint, but afterwards it is showing as a software
-	watchpoint.  Additionally, note that we clearly told the user we
-	created a hardware watchpoint:
-
-	  (gdb) watch var
-	  Hardware watchpoint 1: var
-
-	I think this is bad.  I used `starti`, but if the user did `start` or
-	even `run` then the inferior is going to be _very_ slow, which will be
-	unexpected -- after all, we clearly told the user that we created a
-	hardware watchpoint, and the manual clearly says that hardware
-	watchpoints are fast (at least compared to s/w watchpoints).
-
-	In this patch I propose adding a new warning which will be emitted
-	when GDB downgrades a h/w watchpoint to s/w.  The session now looks
-	like this:
-
-	  (gdb) p sizeof var
-	  $1 = 4000
-	  (gdb) watch var
-	  Hardware watchpoint 1: var
-	  (gdb) info watchpoints
-	  Num     Type           Disp Enb Address    What
-	  1       hw watchpoint  keep y              var
-	  (gdb) starti
-	  Starting program: /home/andrew/tmp/watch
-	  warning: watchpoint 1 downgraded to software watchpoint
-
-	  Program stopped.
-	  0x00007ffff7fd3110 in _start () from /lib64/ld-linux-x86-64.so.2
-	  (gdb) info watchpoints
-	  Num     Type           Disp Enb Address            What
-	  1       watchpoint     keep y                      var
-	  (gdb)
-
-	The important line is:
-
-	  warning: watchpoint 1 downgraded to software watchpoint
-
-	It's not much, but hopefully it will be enough to indicate to the user
-	that something unexpected has occurred, and hopefully, they will not
-	be surprised when the inferior runs much slower than they expected.
-
-	I've added an amd64 only test in gdb.arch/, I didn't want to try
-	adding this as a global test as other architectures might be able to
-	support the watchpoint request in h/w.
-
-	Also the test is skipped for extended-remote boards as there's a
-	different set of options for limiting hardware watchpoints on remote
-	targets, and this test isn't about them.
-
-	Reviewed-By: Lancelot Six <lancelot.six@amd.com>
-
-2023-04-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: Support c.li in prologue unwinder
-	I was seeing some failures in gdb.threads/omp-par-scope.exp when run
-	on a riscv64 target.  It turns out the cause of the problem is that I
-	didn't have debug information installed for libgomp.so, which this
-	test makes use of.  The test requires GDB to backtrace through a
-	libgomp function, and the riscv prologue unwinder was failing to
-	unwind this particular stack frame.
-
-	The reason for the failure to unwind was that the function prologue
-	includes a c.li (compressed load immediate) instruction, and the riscv
-	prologue scanning unwinder doesn't know what to do with this
-	instruction, though the unwinder does understand c.lui (compressed
-	load unsigned immediate).
-
-	This commit adds support for c.li.  After this GDB is able to unwind
-	through libgomp, and I no longer see any unexpected failures in
-	gdb.threads/omp-par-scope.exp.
-
-	I've also included a new test in gdb.arch/ which specifically checks
-	for our c.li support.
-
-2023-04-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-10  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdb/dwarf: Fix MinGW build
-	Unfortunately MinGW doesn't support std::future yet, so this causes the
-	build to fail.  Use GDB's version which provides a fallback for this case.
-
-	Tested for regressions on native aarch64-linux.
-
-	Approved-By: Tom Tromey <tromey@adacore.com>
-
-2023-04-10  Tom Tromey  <tromey@adacore.com>
-
-	Handle unwinding from SEGV on Windows
-	PR win32/30255 points out that a call to a NULL function pointer will
-	leave gdb unable to "bt" on Windows.
-
-	I tracked this down to the amd64 windows unwinder.  If we treat this
-	scenario as if it were a leaf function, unwinding works fine.
-
-	I'm not completely sure this patch is the best way.  I considered
-	having it check for 'pc==0' -- but then I figured this could affect
-	any inaccessible PC, not just the special 0 value.
-
-	No test case because I can't run dejagnu tests on Windows.  I tested
-	this by hand using the test case in the bug.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30255
-
-2023-04-10  Haochen Jiang  <haochen.jiang@intel.com>
-
-	x86: Add inval tests for AMX instructions
-	gas/ChangeLog:
-
-		* testsuite/gas/i386/i386.exp: Run AMX-FP16 and AMX-COMPLEX
-		inval testcases.
-		* testsuite/gas/i386/x86-64-amx-inval.l: Add AMX-BF16 tests.
-		* testsuite/gas/i386/x86-64-amx-inval.s: Ditto.
-		* testsuite/gas/i386/x86-64-amx-complex-inval.l: New test.
-		* testsuite/gas/i386/x86-64-amx-complex-inval.s: Ditto.
-		* testsuite/gas/i386/x86-64-amx-fp16-inval.l: Ditto.
-		* testsuite/gas/i386/x86-64-amx-fp16-inval.s: Ditto.
-
-2023-04-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-08  Philippe Blain  <levraiphilippeblain@gmail.com>
-
-	Fix typos in previous commit of gdb.texinfo.
-	* gdb/doc/gdb.texinfo (Requirements): Fix typos.
-
-2023-04-08  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf, link: fix CU-mapped links with CTF_LINK_EMPTY_CU_MAPPINGS
-	This is a bug in the intersection of two obscure options that cannot
-	even be invoked from ld with a feature added to stop ld of the
-	same input file repeatedly from crashing the linker.
-
-	The latter fix involved tracking input files (internally to libctf) not
-	just with their input CU name but with a version of their input CU name
-	that was augmented with a numeric prefix if their linker input file name
-	was changed, to prevent distinct CTF dicts with the same cuname from
-	overwriting each other. (We can't use just the linker input file name
-	because one linker input can contain many CU dicts, particularly under
-	ld -r).  If these inputs then produced conflicting types, those types
-	were emitted into similarly-named output dicts, so we needed similar
-	machinery to detect clashing output dicts and add a numeric prefix to
-	them as well.
-
-	This works fine, except that if you used the cu-mapping feature to force
-	double-linking of CTF (so that your CTF can be grouped into output dicts
-	larger than a single translation unit) and then also used
-	CTF_LINK_EMPTY_CU_MAPPINGS to force every possible output dict in the
-	mapping to be created (even if empty), we did the creation of empty dicts
-	first, and then all the actual content got considered to be a clash. So
-	you ended up with a pile of useless empty dicts and then all the content
-	was in full dicts with the same names suffixed with a #0.  This seems
-	likely to confuse consumers that use this facility.
-
-	Fixed by generating all the EMPTY_CU_MAPPINGS empty dicts after linking
-	is complete, not before it runs.
-
-	No impact on ld, which does not do cu-mapped links or pass
-	CTF_LINK_EMPTY_CU_MAPPINGS to ctf_link().
-
-	libctf/
-		* ctf-link.c (ctf_create_per_cu): Don't create new dicts iff one
-	        already exists and we are making one for no input in particular.
-	        (ctf_link): Emit empty CTF dicts corresponding to no input in
-	        particular only after linkiing is complete.
-
-2023-04-08  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: propagate errors from parents correctly
-	CTF dicts have per-dict errno values: as with other errno values these
-	are set on error and left unchanged on success.  This means that all
-	errors *must* set the CTF errno: if a call leaves it unchanged, the
-	caller is apt to find a previous, lingering error and misinterpret
-	it as the real error.
-
-	There are many places in libctf where we carry out operations on parent
-	dicts as a result of carrying out other user-requested operations on
-	child dicts (e.g. looking up information on a pointer to a type will
-	look up the type as well: the pointer might well be in a child and the
-	type it's a pointer to in the parent).  Those operations on the parent
-	might fail; if they do, the error must be correctly reflected on the
-	child that the user-visible operation was carried out on.  In many
-	places this was not happening.
-
-	So, audit and fix all those places.  Add tests for as many of those
-	cases as possible so they don't regress.
-
-	libctf/
-		* ctf-create.c (ctf_add_slice): Use the original dict.
-		* ctf-lookup.c (ctf_lookup_variable): Propagate errors.
-		(ctf_lookup_symbol_idx): Likewise.
-		* ctf-types.c (ctf_member_next): Likewise.
-		(ctf_type_resolve_unsliced): Likewise.
-		(ctf_type_aname): Likewise.
-		(ctf_member_info): Likewise.
-		(ctf_type_rvisit): Likewise.
-		(ctf_func_type_info): Set the error on the right dict.
-		(ctf_type_encoding): Use the original dict.
-		* testsuite/libctf-writable/error-propagation.*: New test.
-
-2023-04-08  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf, tests: do not assume host and target have identical field offsets
-	The newly-introduced libctf-lookup unnamed-field-info test checks
-	C compiler-observed field offsets against libctf-computed ones
-	by #including the testcase in the lookup runner as well as
-	generating CTF for it.  This only works if the host, on which
-	the lookup runner is compiled and executed, is the same architecture as
-	the target, for which the CTF is generated: when crossing, the trick
-	may fail.
-
-	So pass down an indication of whether this is a cross into the
-	testsuite, and add a new no_cross flag to .lk files that is used to
-	suppress test execution when a cross-compiler is being tested.
-
-	libctf/
-		* Makefile.am (check_DEJAGNU): Pass down TEST_CROSS.
-		* Makefile.in: Regenerated.
-		* testsuite/lib/ctf-lib.exp (run_lookup_test): Use it to
-		implement the new no_cross option.
-		* testsuite/libctf-lookup/unnamed-field-info.lk: Mark as
-		no_cross.
-
-2023-04-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-07  Tom Tromey  <tromey@adacore.com>
-
-	Rewrite Ada symbol cache
-	In an experiment I'm trying, I needed Ada symbol cache entries to be
-	allocated with 'new'.  This patch reimplements the symbol cache to use
-	the libiberty hash table and to use new and delete.  A couple of other
-	minor cleanups are done.
-
-	Add Ada test case for break using a label
-	I noticed there aren't any Ada test cases for setting a breakpoint
-	using a label.  This patch adds one, adapted from the AdaCore test
-	suite.
-
-	Use ui_out for "maint info frame-unwinders"
-	This changes "maint info frame-unwinders" to use ui-out.  This makes
-	the table slightly nicer.  In general I think it's better to use
-	ui-out for tables.
-
-2023-04-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add -q to INTERNAL_GDBFLAGS
-	Whenever we start gdb in the testsuite, we have the rather verbose:
-	...
-	$ gdb
-	GNU gdb (GDB) 14.0.50.20230405-git
-	Copyright (C) 2023 Free Software Foundation, Inc.
-	License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-	This is free software: you are free to change and redistribute it.
-	There is NO WARRANTY, to the extent permitted by law.
-	Type "show copying" and "show warranty" for details.
-	This GDB was configured as "x86_64-pc-linux-gnu".
-	Type "show configuration" for configuration details.
-	For bug reporting instructions, please see:
-	<https://www.gnu.org/software/gdb/bugs/>.
-	Find the GDB manual and other documentation resources online at:
-	    <http://www.gnu.org/software/gdb/documentation/>.
-
-	For help, type "help".
-	Type "apropos word" to search for commands related to "word".
-	(gdb)
-	...
-
-	This makes gdb.log longer than necessary and harder to read.
-
-	We do need to test that the output is produced, but that should be limited to
-	one or a few test-cases.
-
-	Fix this by adding -q to INTERNAL_GDBFLAGS, such that we simply have:
-	...
-	$ gdb -q
-	(gdb)
-	...
-
-	Tested on x86_64-linux.
-
-2023-04-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add missing .note.GNU-stack in gdb.arch/amd64-disp-step-self-call.exp
-	For test-case gdb.arch/amd64-disp-step-self-call.exp I get:
-	...
-	gdb compile failed, ld: warning: amd64-disp-step-self-call0.o: \
-	  missing .note.GNU-stack section implies executable stack
-	ld: NOTE: This behaviour is deprecated and will be removed in a future \
-	  version of the linker
-	...
-
-	Fix this by adding the missing .note.GNU-stack.
-
-	Likewise for gdb.arch/i386-disp-step-self-call.exp.
-
-	Tested on x86_64-linux.
-
-2023-04-07  Haochen Jiang  <haochen.jiang@intel.com>
-
-	Support Intel AMX-COMPLEX
-	gas/ChangeLog:
-
-		* NEWS: Support Intel AMX-COMPLEX.
-		* config/tc-i386.c: Add amx_complex.
-		* doc/c-i386.texi: Document .amx_complex.
-		* testsuite/gas/i386/i386.exp: Run AMX-COMPLEX tests.
-		* testsuite/gas/i386/amx-complex-inval.l: New test.
-		* testsuite/gas/i386/amx-complex-inval.s: Ditto.
-		* testsuite/gas/i386/x86-64-amx-complex-bad.d: Ditto.
-		* testsuite/gas/i386/x86-64-amx-complex-bad.s: Ditto.
-		* testsuite/gas/i386/x86-64-amx-complex-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-amx-complex.d: Ditto.
-		* testsuite/gas/i386/x86-64-amx-complex.s: Ditto.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (MOD_VEX_0F386C_X86_64_W_0): New.
-		(PREFIX_VEX_0F386C_X86_64_W_0_M_1_L_0): Ditto.
-		(X86_64_VEX_0F386C): Ditto.
-		(VEX_LEN_0F386C_X86_64_W_0_M_1): Ditto.
-		(VEX_W_0F386C_X86_64): Ditto.
-		(mod_table): Add MOD_VEX_0F386C_X86_64_W_0.
-		(prefix_table): Add PREFIX_VEX_0F386C_X86_64_W_0_M_1_L_0.
-		(x86_64_table): Add X86_64_VEX_0F386C.
-		(vex_len_table): Add VEX_LEN_0F386C_X86_64_W_0_M_1.
-		(vex_w_table): Add VEX_W_0F386C_X86_64.
-		* i386-gen.c (cpu_flag_init): Add CPU_AMX_COMPLEX_FLAGS and
-		CPU_ANY_AMX_COMPLEX_FLAGS.
-		* i386-init.h: Regenerated.
-		* i386-mnem.h: Ditto.
-		* i386-opc.h (CpuAMX_COMPLEX): New.
-		(i386_cpu_flags): Add cpuamx_complex.
-		* i386-opc.tbl: Add AMX-COMPLEX instructions.
-		* i386-tbl.h: Regenerated.
-
-2023-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: updates for gdb.arch/{amd64,i386}-disp-step-self-call.exp
-	This commit:
-
-	  commit cf141dd8ccd36efe833aae3ccdb060b517cc1112
-	  Date:   Wed Feb 22 12:15:34 2023 +0000
-
-	      gdb: fix reg corruption from displaced stepping on amd64
-
-	Added two test scripts gdb.arch/amd64-disp-step-self-call.exp and
-	gdb.arch/i386-disp-step-self-call.exp.  These scripts contained a test
-	that included a stack address in the test name, this makes it harder
-	to compare results between runs.
-
-	This commit gives the tests proper names that doesn't include an
-	address.
-
-	Also in gdb.arch/i386-disp-step-self-call.exp I noticed that we were
-	writing 8-bytes rather than 4 in order to clear the return address
-	entry on the stack.  This is also fixed in this commit.
-
-2023-04-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-06  Tom Tromey  <tromey@adacore.com>
-
-	Use unique_xmalloc_ptr in apply_ext_lang_type_printers
-	This changes apply_ext_lang_type_printers to use unique_xmalloc_ptr,
-	removing some manual memory management.  Regression tested on x86-64
-	Fedora 36.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-04-06  Pedro Alves  <pedro@palves.net>
-
-	Fix gdb.base/align-*.exp and Clang + LTO and AIX GCC
-	Clang with LTO (clang -flto) garbage collects unused global variables,
-	Thus, gdb.base/align-c.exp and gdb.base/align-c++.exp fail with
-	hundreds of FAILs like so:
-
-	 $ make check \
-	    TESTS="gdb.*/align-*.exp" \
-	    RUNTESTFLAGS="CC_FOR_TARGET='clang -flto' CXX_FOR_TARGET='clang++ -flto'"
-	 ...
-	 FAIL: gdb.base/align-c.exp: get integer valueof "a_char"
-	 FAIL: gdb.base/align-c.exp: print _Alignof(char)
-	 FAIL: gdb.base/align-c.exp: get integer valueof "a_char_x_char"
-	 FAIL: gdb.base/align-c.exp: print _Alignof(struct align_pair_char_x_char)
-	 FAIL: gdb.base/align-c.exp: get integer valueof "a_char_x_unsigned_char"
-	 ...
-
-	AIX GCC has the same issue, and there the easier way of adding
-	__attribute__((used)) to globals does not help.
-
-	So add explicit uses of all globals to the generated code.
-
-	For the C++ test, that reveals that the static variable members of the
-	generated structs are not defined anywhere, leading to undefined
-	references.  Fixed by emitting initialization for all static members.
-
-	Lastly, I noticed that CXX_FOR_TARGET was being ignored -- that's
-	because the align-c++.exp testcase is compiling with the C compiler
-	driver.  Fixed by passing "c++" as option to prepare_for_testing.
-
-	Change-Id: I874b717afde7b6fb1e45e526912b518a20a12716
-
-2023-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: run black code formatter on gdbarch_components.py
-	The following commit changed gdbarch_components.py but failed to
-	format it with black:
-
-	  commit cf141dd8ccd36efe833aae3ccdb060b517cc1112
-	  Date:   Wed Feb 22 12:15:34 2023 +0000
-
-	      gdb: fix reg corruption from displaced stepping on amd64
-
-	This commit just runs black on the file and commits the result.
-
-	The change is just the addition of an extra "," -- there will be no
-	change to the generated source files after this commit.
-
-	There will be no user visible changes after this commit.
-
-2023-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: allow Frame.read_var to accept named arguments
-	This commit allows Frame.read_var to accept named arguments, and also
-	improves (I think) some of the error messages emitted when values of
-	the wrong type are passed to this function.
-
-	The read_var method takes two arguments, one a variable, which is
-	either a gdb.Symbol or a string, while the second, optional, argument
-	is always a gdb.Block.
-
-	I'm now using 'O!' as the format specifier for the second argument,
-	which allows the argument type to be checked early on.  Currently, if
-	the second argument is of the wrong type then we get this error:
-
-	  (gdb) python print(gdb.selected_frame().read_var("a1", "xxx"))
-	  Traceback (most recent call last):
-	    File "<string>", line 1, in <module>
-	  RuntimeError: Second argument must be block.
-	  Error while executing Python code.
-	  (gdb)
-
-	After this commit, we now get an error like this:
-
-	  (gdb) python print(gdb.selected_frame().read_var("a1", "xxx"))
-	  Traceback (most recent call last):
-	    File "<string>", line 1, in <module>
-	  TypeError: argument 2 must be gdb.Block, not str
-	  Error while executing Python code.
-	  (gdb)
-
-	Changes are:
-
-	  1. Exception type is TypeError not RuntimeError, this is unfortunate
-	  as user code _could_ be relying on this, but I think the improvement
-	  is worth the risk, user code relying on the exact exception type is
-	  likely to be pretty rare,
-
-	  2. New error message gives argument position and expected argument
-	  type, as well as the type that was passed.
-
-	If the first argument, the variable, has the wrong type then the
-	previous exception was already a TypeError, however, I've updated the
-	text of the exception to more closely match the "standard" error
-	message we see above.  If the first argument has the wrong type then
-	before this commit we saw this:
-
-	  (gdb) python print(gdb.selected_frame().read_var(123))
-	  Traceback (most recent call last):
-	    File "<string>", line 1, in <module>
-	  TypeError: Argument must be a symbol or string.
-	  Error while executing Python code.
-	  (gdb)
-
-	And after we see this:
-
-	  (gdb) python print(gdb.selected_frame().read_var(123))
-	  Traceback (most recent call last):
-	    File "<string>", line 1, in <module>
-	  TypeError: argument 1 must be gdb.Symbol or str, not int
-	  Error while executing Python code.
-	  (gdb)
-
-	For existing code that doesn't use named arguments and doesn't rely on
-	exceptions, there will be no changes after this commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: convert Frame.read_register to take named arguments
-	Following on from the previous commit, this updates
-	Frame.read_register to accept named arguments.  As with the previous
-	commit there's no huge benefit for the users in accepting named
-	arguments here -- this function only takes a single argument after
-	all.
-
-	But I do think it is worth keeping Frame.read_register method in sync
-	with the PendingFrame.read_register method, this allows for the
-	possibility that the user has some code that can operate on either a
-	Frame or a Pending frame.
-
-	Minor update to allow for named arguments, and an extra test to check
-	the new functionality.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: have PendingFrame methods accept keyword arguments
-	Update the two gdb.PendingFrame methods gdb.PendingFrame.read_register
-	and gdb.PendingFrame.create_unwind_info to accept keyword arguments.
-
-	There's no huge benefit for making this change, both of these methods
-	only take a single argument, so it is (maybe) less likely that a user
-	will take advantage of the keyword arguments in these cases, but I
-	think it's nice to be consistent, and I don't see any particular draw
-	backs to making this change.
-
-	For PendingFrame.read_register I've changed the argument name from
-	'reg' to 'register' in the documentation and used 'register' as the
-	argument name in GDB.  My preference for APIs is to use full words
-	where possible, and given we didn't support named arguments before
-	this change should not break any existing code.
-
-	There should be no user visible changes (for existing code) after this
-	commit.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: have UnwindInfo.add_saved_register accept named args
-	Update gdb.UnwindInfo.add_saved_register to accept named keyword
-	arguments.
-
-	As part of this update we now use gdb_PyArg_ParseTupleAndKeywords
-	instead of PyArg_UnpackTuple to parse the function arguments.
-
-	By switching to gdb_PyArg_ParseTupleAndKeywords, we can now use 'O!'
-	as the argument format for the function's value argument.  This means
-	that we can check the argument type (is gdb.Value) as part of the
-	argument processing rather than manually performing the check later in
-	the function.  One result of this is that we now get a better error
-	message (at least, I think so).  Previously we would get something
-	like:
-
-	  ValueError: Bad register value
-
-	Now we get:
-
-	  TypeError: argument 2 must be gdb.Value, not XXXX
-
-	It's unfortunate that the exception type changed, but I think the new
-	exception type actually makes more sense.
-
-	My preference for argument names is to use full words where that's not
-	too excessive.  As such, I've updated the name of the argument from
-	'reg' to 'register' in the documentation, which is the argument name
-	I've made GDB look for here.
-
-	For existing unwinder code that doesn't throw any exceptions nothing
-	should change with this commit.  It is possible that a user has some
-	code that throws and catches the ValueError, and this code will break
-	after this commit, but I think this is going to be sufficiently rare
-	that we can take the risk here.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix reg corruption from displaced stepping on amd64
-	This commit aims to address a problem that exists with the current
-	approach to displaced stepping, and was identified in PR gdb/22921.
-
-	Displaced stepping is currently supported on AArch64, ARM, amd64,
-	i386, rs6000 (ppc), and s390.  Of these, I believe there is a problem
-	with the current approach which will impact amd64 and ARM, and can
-	lead to random register corruption when the inferior makes use of
-	asynchronous signals and GDB is using displaced stepping.
-
-	The problem can be found in displaced_step_buffers::finish in
-	displaced-stepping.c, and is this; after GDB tries to perform a
-	displaced step, and the inferior stops, GDB classifies the stop into
-	one of two states, either the displaced step succeeded, or the
-	displaced step failed.
-
-	If the displaced step succeeded then gdbarch_displaced_step_fixup is
-	called, which has the job of fixing up the state of the current
-	inferior as if the step had not been performed in a displaced manner.
-	This all seems just fine.
-
-	However, if the displaced step is considered to have not completed
-	then GDB doesn't call gdbarch_displaced_step_fixup, instead GDB
-	remains in displaced_step_buffers::finish and just performs a minimal
-	fixup which involves adjusting the program counter back to its
-	original value.
-
-	The problem here is that for amd64 and ARM setting up for a displaced
-	step can involve changing the values in some temporary registers.  If
-	the displaced step succeeds then this is fine; after the step the
-	temporary registers are restored to their original values in the
-	architecture specific code.
-
-	But if the displaced step does not succeed then the temporary
-	registers are never restored, and they retain their modified values.
-
-	In this context a temporary register is simply any register that is
-	not otherwise used by the instruction being stepped that the
-	architecture specific code considers safe to borrow for the lifetime
-	of the instruction being stepped.
-
-	In the bug PR gdb/22921, the amd64 instruction being stepped is
-	an rip-relative instruction like this:
-
-	  jmp    *0x2fe2(%rip)
-
-	When we displaced step this instruction we borrow a register, and
-	modify the instruction to something like:
-
-	  jmp    *0x2fe2(%rcx)
-
-	with %rcx having its value adjusted to contain the original %rip
-	value.
-
-	Now if the displaced step does not succeed, then %rcx will be left
-	with a corrupted value.  Obviously corrupting any register is bad; in
-	the bug report this problem was spotted because %rcx is used as a
-	function argument register.
-
-	And finally, why might a displaced step not succeed?  Asynchronous
-	signals provides one reason.  GDB sets up for the displaced step and,
-	at that precise moment, the OS delivers a signal (SIGALRM in the bug
-	report), the signal stops the inferior at the address of the displaced
-	instruction.  GDB cancels the displaced instruction, handles the
-	signal, and then tries again with the displaced step.  But it is that
-	first cancellation of the displaced step that causes the problem; in
-	that case GDB (correctly) sees the displaced step as having not
-	completed, and so does not perform the architecture specific fixup,
-	leaving the register corrupted.
-
-	The reason why I think AArch64, rs600, i386, and s390 are not effected
-	by this problem is that I don't believe these architectures make use
-	of any temporary registers, so when a displaced step is not completed
-	successfully, the minimal fix up is sufficient.
-
-	On amd64 we use at most one temporary register.
-
-	On ARM, looking at arm_displaced_step_copy_insn_closure, we could
-	modify up to 16 temporary registers, and the instruction being
-	displaced stepped could be expanded to multiple replacement
-	instructions, which increases the chances of this bug triggering.
-
-	This commit only aims to address the issue on amd64 for now, though I
-	believe that the approach I'm proposing here might be applicable for
-	ARM too.
-
-	What I propose is that we always call gdbarch_displaced_step_fixup.
-
-	We will now pass an extra argument to gdbarch_displaced_step_fixup,
-	this a boolean that indicates whether GDB thinks the displaced step
-	completed successfully or not.
-
-	When this flag is false this indicates that the displaced step halted
-	for some "other" reason.  On ARM GDB can potentially read the
-	inferior's program counter in order figure out how far through the
-	sequence of replacement instructions we got, and from that GDB can
-	figure out what fixup needs to be performed.
-
-	On targets like amd64 the problem is slightly easier as displaced
-	stepping only uses a single replacement instruction.  If the displaced
-	step didn't complete the GDB knows that the single instruction didn't
-	execute.
-
-	The point is that by always calling gdbarch_displaced_step_fixup, each
-	architecture can now ensure that the inferior state is fixed up
-	correctly in all cases, not just the success case.
-
-	On amd64 this ensures that we always restore the temporary register
-	value, and so bug PR gdb/22921 is resolved.
-
-	In order to move all architectures to this new API, I have moved the
-	minimal roll-back version of the code inside the architecture specific
-	fixup functions for AArch64, rs600, s390, and ARM.  For all of these
-	except ARM I think this is good enough, as no temporaries are used all
-	that's needed is the program counter restore anyway.
-
-	For ARM the minimal code is no worse than what we had before, though I
-	do consider this architecture's displaced-stepping broken.
-
-	I've updated the gdb.arch/amd64-disp-step.exp test to cover the
-	'jmpq*' instruction that was causing problems in the original bug, and
-	also added support for testing the displaced step in the presence of
-	asynchronous signal delivery.
-
-	I've also added two new tests (for amd64 and i386) that check that GDB
-	can correctly handle displaced stepping over a single instruction that
-	branches to itself.  I added these tests after a first version of this
-	patch relied too much on checking the program-counter value in order
-	to see if the displaced instruction had executed.  This works fine in
-	almost all cases, but when an instruction branches to itself a pure
-	program counter check is not sufficient.  The new tests expose this
-	problem.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22921
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-04-06  Alan Modra  <amodra@gmail.com>
-
-	Re: objcopy write_debugging_info memory leaks
-	Oops, tried to free too much
-
-		* wrstabs.c (write_stabs_in_sections_debugging_info): Don't
-		free strings.
-
-2023-04-06  Alan Modra  <amodra@gmail.com>
-
-	objdump print_debugging_info memory leaks
-	Fix memory leaks and do a general tidy of the code for printing coff
-	and stabs debug.
-
-		* prdbg.c: Delete unnneeded forward function declarations.
-		Delete unnecessary casts throughout.  Free all strings
-		returned from pop_type throughout file.
-		(struct pr_stack): Delete "num_parents".  Replace tests for
-		"num_parents" non-zero with tests of "parents" non-NULL
-		throughout.  Free "parents" before assigning, and set to NULL
-		after freeing.  Remove const from "method".  Always strdup
-		strings assigned to method, and free before assigning.
-		(print_debugging_info): Free info.stack and info.filename.
-
-2023-04-06  Alan Modra  <amodra@gmail.com>
-
-	objdump -g on gcc COFF/PE files
-	objdump -g can't be used much.  Trying to dump PE files invariably
-	seems to run into "debug_name_type: no current file" or similar
-	errors, because parse_coff expects a C_FILE symbol to be the first
-	symbol.  Dumping -gstabs output works since the N_SO stab is present.
-	Pre-setting the file name won't hurt stabs dumping.
-
-		* rddbg.c (read_debugging_info): Call debug_set_filename.
-
-2023-04-06  Alan Modra  <amodra@gmail.com>
-
-	gas/write.c use better types
-	A tiny tidy.
-
-		* write.c (frags_chained): Make it a bool.
-		(n_fixups): Make it unsigned.
-
-2023-04-06  Alan Modra  <amodra@gmail.com>
-
-	objcopy write_debugging_info memory leaks
-	The old stabs code didn't bother too much about freeing memory.
-	This patch corrects that and avoids some dubious copying of strings.
-
-		* objcopy.c (write_debugging_info): Free both strings and
-		syms on failure to create sections.
-		* wrstabs.c: Delete unnecessary forward declarations and casts
-		throughout file.
-		(stab_write_symbol_and_free): New function.  Use it
-		throughout, simplifying return paths.
-		(stab_push_string): Don't strdup string.  Use it thoughout
-		for malloced strings.
-		(stab_push_string_dup): New function.  Use it throughout for
-		strings in auto buffers.
-		(write_stabs_in_sections_debugging_info): Free malloced memory.
-		(stab_enum_type): Increase buffer sizing for worst case.
-		(stab_range_type, stab_array_type): Reduce buffer size.
-		(stab_set_type): Likewise.
-		(stab_method_type): Free args on error return.  Correct
-		buffer size.
-		(stab_struct_field): Fix memory leaks.
-		(stab_class_static_member, stab_class_baseclass): Likewise.
-		(stab_start_class_type): Likewise.  Correct buffer size.
-		(stab_class_start_method): Correct buffer size.
-		(stab_class_method_var): Free memory on error return.
-		(stab_start_function): Fix "rettype" memory leak.
-
-2023-04-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-05  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdb/testsuite: Default to assembler's preferred debug format in asm-source.exp
-	The stabs debug format is obsolete and there's no reason to think that
-	toolchains still have good support for it. Therefore, if a specific debug
-	format wasn't set in asm-source.exp then leave it to the assembler to
-	decide which one to use.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-05  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdb: Fix reading of partial symtabs in dbxread.c
-	After commit 9675da25357c ("Use unrelocated_addr in minimal symbols"),
-	aarch64-linux started failing gdb.asm/asm-source.exp:
-
-	Running /home/thiago.bauermann/src/binutils-gdb/gdb/testsuite/gdb.asm/asm-source.exp ...
-	PASS: gdb.asm/asm-source.exp: f at main
-	PASS: gdb.asm/asm-source.exp: n at main
-	PASS: gdb.asm/asm-source.exp: next over macro
-	FAIL: gdb.asm/asm-source.exp: step into foo2
-	PASS: gdb.asm/asm-source.exp: info target
-	PASS: gdb.asm/asm-source.exp: info symbol
-	PASS: gdb.asm/asm-source.exp: list
-	PASS: gdb.asm/asm-source.exp: search
-	FAIL: gdb.asm/asm-source.exp: f in foo2
-	FAIL: gdb.asm/asm-source.exp: n in foo2 (the program exited)
-	FAIL: gdb.asm/asm-source.exp: bt ALL in foo2
-	FAIL: gdb.asm/asm-source.exp: bt 2 in foo2
-	PASS: gdb.asm/asm-source.exp: s 2
-	PASS: gdb.asm/asm-source.exp: n 2
-	FAIL: gdb.asm/asm-source.exp: bt 3 in foo3
-	PASS: gdb.asm/asm-source.exp: info source asmsrc1.s
-	FAIL: gdb.asm/asm-source.exp: finish from foo3 (the program is no longer running)
-	FAIL: gdb.asm/asm-source.exp: info source asmsrc2.s
-	PASS: gdb.asm/asm-source.exp: info sources
-	FAIL: gdb.asm/asm-source.exp: info line
-	FAIL: gdb.asm/asm-source.exp: next over foo3 (the program is no longer running)
-	FAIL: gdb.asm/asm-source.exp: return from foo2
-	PASS: gdb.asm/asm-source.exp: look at global variable
-	PASS: gdb.asm/asm-source.exp: x/i &globalvar
-	PASS: gdb.asm/asm-source.exp: disassem &globalvar, (int *) &globalvar+1
-	PASS: gdb.asm/asm-source.exp: look at static variable
-	PASS: gdb.asm/asm-source.exp: x/i &staticvar
-	PASS: gdb.asm/asm-source.exp: disassem &staticvar, (int *) &staticvar+1
-	PASS: gdb.asm/asm-source.exp: look at static function
-
-	The problem is simple: a pair of parentheses was removed from the
-	expression calculating text_end and thus text_size was only added if
-	lowest_text_address wasn't equal to -1.
-
-	This patch restores the previous behaviour and fixes the testcase.
-	Tested on native aarch64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-05  Eli Zaretskii  <eliz@gnu.org>
-
-	Improve documentation of GDB build requirements and options
-	MPFR is now mandatory, so its previous description in Requirements
-	was inappropriate and out of place.  In addition, the description
-	of how to go about specifying 'configure' time options for
-	building with libraries was highly repetitive.  Some of the text
-	was also outdated and used wrong markup.
-
-	Original patch and suggestions from Philippe Blain
-	<levraiphilippeblain@gmail.com>.
-
-	ChangeLog:
-	2023-04-05  Eli Zaretskii  <eliz@gnu.org>
-
-		* gdb/doc/gdb.texinfo (Requirements, Configure Options): Update and
-		rearrange; improve and fix markup.
-
-2023-04-05  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb, doc: add the missing '-gid' option to 'info threads'
-	The 'info threads' command does not show the '-gid' option
-	in the syntax.  Add the option.  The flag is already explained
-	in the command description and used in the examples.
-
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-04-05  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb: boolify 'should_print_thread'
-	Convert the return type of 'should_print_thread' from int to bool.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make find_thread_ptid a process_stratum_target method
-	Make find_thread_ptid (the overload that takes a process_stratum_target)
-	a method of process_stratum_target.
-
-	Change-Id: Ib190a925a83c6b93e9c585dc7c6ab65efbdd8629
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make find_thread_ptid an inferior method
-	Make find_thread_ptid (the overload that takes an inferior) a method of
-	struct inferior.
-
-	Change-Id: Ie5b9fa623ff35aa7ddb45e2805254fc8e83c9cd4
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-04-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-04  Jan Beulich  <jbeulich@suse.com>
-
-	bfd+ld: when / whether to generate .c files
-	Having been irritated by seeing bfd/elf{32,64}-aarch64.c to be re-
-	generated in x86-only builds, I came across 769a27ade588 ("Re: bfd
-	BLD-POTFILES.in dependencies"). I think this went slightly too far, as
-	outside of maintainer mode dependencies will cause the subset of files
-	to be (re-)generated which are actually needed for the build.
-	Generating them all is only needed when wanting to update certain files
-	under bfd/po/, i.e. in maintainer mode.
-
-	In the course of looking around in an attempt to try to understand how
-	things are meant to work, I further noticed that ld has got things
-	slightly wrong too: BLD-POTFILES.in depending on $(BLD_POTFILES) isn't
-	quite right (the output doesn't change when any of the enumerated files
-	changes; it's the mere presence which matters); like in bfd it looks
-	like we would better extend BUILT_SOURCES accordingly.
-
-	Furthermore it became apparent that ld fails to enumerate the .c files
-	generated from the .l and .y ones. While in their absence it was benign
-	whether translatable strings in the source files were actually marked as
-	such, this now becomes relevant. Mark respective strings at the same
-	time, but skipping ones which look to be of interest for debugging
-	purposes only (e.g. such used by printf() enclosed in #ifdef TRACE).
-
-2023-04-04  Alan Modra  <amodra@gmail.com>
-
-	Use bfd_alloc memory for read_debugging_info storage
-	Trying to free malloc'd memory used by the stabs and coff debug info
-	parsers is complicated, and traversing the trees generated requires a
-	lot of code.  It's better to bfd_alloc the memory which allows it all
-	to be freed without fuss when the bfd is closed.  In the process of
-	doing this I reverted most of commit a6336913332.
-
-	Some of the stabs handling code grows arrays of pointers with realloc,
-	to deal with arbitrary numbers of fields, function args, etc.  The
-	code still does that but copies over to bfd_alloc memory when
-	finished.  The alternative is to parse twice, once to size, then again
-	to populate the arrays.  I think that complication is unwarranted.
-
-	Note that there is a greater than zero chance this patch breaks
-	something, eg. that I missed an attempt to free obj_alloc memory.
-	Also it seems there are no tests in the binutils testsuite aimed at
-	exercising objdump --debugging.
-
-		* budbg.h (finish_stab, parse_stab): Update prototypes
-		* debug.c: Include bucomm.h.
-		(struct debug_handle): Add "abfd" field.
-		(debug_init): Add "abfd" param.  bfd_alloc handle.
-		(debug_xalloc, debug_xzalloc): New functions.  Use throughout
-		in place of xmalloc and memset.
-		(debug_start_source): Remove "name_used" param.
-		* debug.h (debug_init, debug_start_source): Update prototypes.
-		(debug_xalloc, debug_xzalloc): Declare.
-		* objcopy.c (copy_object): Don't free dhandle.
-		* objdump.c (dump_bfd): Likewise.
-		* rdcoff.c (coff_get_slot): Add dhandle arg.  debug_xzalloc
-		memory in place of xcalloc.  Update callers.
-		(parse_coff_struct_type): Don't leak on error return.  Copy
-		fields over to debug_xalloc memory.
-		(parse_coff_enum_type): Copy names and vals over the
-		debug_xalloc memory.
-		* rddbg.c (read_debugging_info): Adjust debug_init call.
-		Don't free dhandle.
-		(read_section_stabs_debugging_info): Don't free shandle.
-		Adjust parse_stab call.  Call finish_stab on error return.
-		(read_symbol_stabs_debugging_info): Similarly.
-		* stabs.c (savestring): Delete unnecessary forward declaration.
-		Add dhandle param.  debug_xalloc memory.  Update callers.
-		(start_stab): Delete unnecessary casts.
-		(finish_stab): Add "emit" param.  Free file_types, so_string,
-		and stabs handle.
-		(parse_stab): Delete string_used param.  Revert code dealing
-		with string_used.  Copy so_string passed to debug_set_filename
-		and stored as main_filename to debug_xalloc memory.  Similarly
-		for string passed to debug_start_source and push_bincl.  Copy
-		args to debug_xalloc memory.  Don't leak args.
-		(parse_stab_enum_type): Copy names and values to debug_xalloc
-		memory.  Don't free name.
-		(parse_stab_struct_type): Don't free fields.
-		(parse_stab_baseclasses): Delete unnecessary cast.
-		(parse_stab_struct_fields): Return debug_xalloc fields.
-		(parse_stab_cpp_abbrev): Use debug_xalloc for _vb$ type name.
-		(parse_stab_one_struct_field): Don't free name.
-		(parse_stab_members): Copy variants and methods to
-		debug_xalloc memory.  Don't free name or argtypes.
-		(parse_stab_argtypes): Use debug_xalloc memory for physname
-		and args.
-		(push_bincl): Add dhandle param.  Use debug_xalloc memory.
-		(stab_record_variable): Use debug_xalloc memory.
-		(stab_emit_pending_vars): Don't free var list.
-		(stab_find_slot): Add dhandle param.  Use debug_xzalloc
-		memory.  Update all callers.
-		(stab_find_tagged_type): Don't free name.  Use debug_xzalloc.
-		(stab_demangle_qualified): Don't free name.
-		(stab_demangle_template): Don't free s1.
-		(stab_demangle_args): Tidy pvarargs refs.  Copy *pargs on
-		success to debug_xalloc memory, free on failure.
-		(stab_demangle_fund_type): Don't free name.
-		(stab_demangle_v3_arglist): Copy args to debug_xalloc memory.
-		Don't free dt.
-
-2023-04-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-03  Tom Tromey  <tromey@adacore.com>
-
-	Add readMemory and writeMemory requests to DAP
-	This adds the DAP readMemory and writeMemory requests.  A small change
-	to the evaluation code is needed in order to test this -- this is one
-	of the few ways for a client to actually acquire a memory reference.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: cleanup around some set_momentary_breakpoint_at_pc calls
-	I noticed a couple of places in infrun.c where we call
-	set_momentary_breakpoint_at_pc, and then set the newly created
-	breakpoint's thread field, these are in:
-
-	  insert_exception_resume_breakpoint
-	  insert_exception_resume_from_probe
-
-	Function set_momentary_breakpoint_at_pc calls
-	set_momentary_breakpoint, which always creates the breakpoint as
-	thread-specific for the current inferior_thread().
-
-	The two insert_* functions mentioned above take an arbitrary
-	thread_info* as an argument and set the breakpoint::thread to hold the
-	thread number of that arbitrary thread.
-
-	However, the insert_* functions store the breakpoint pointer within
-	the current inferior_thread(), so we know that the thread being passed
-	in must be the currently selected thread.
-
-	What this means is that we can:
-
-	  1. Assert that the thread being passed in is the currently selected
-	  thread, and
-
-	  2. No longer adjust the breakpoint::thread field, this will already
-	  have been set correctly be calling set_momentary_breakpoint_at_pc.
-
-	There should be no user visible changes after this commit.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't always print breakpoint location after failed condition check
-	Consider the following session:
-
-	  (gdb) list some_func
-	  1	int
-	  2	some_func ()
-	  3	{
-	  4	  int *p = 0;
-	  5	  return *p;
-	  6	}
-	  7
-	  8	void
-	  9	foo ()
-	  10	{
-	  (gdb) break foo if (some_func ())
-	  Breakpoint 1 at 0x40111e: file bpcond.c, line 11.
-	  (gdb) r
-	  Starting program: /tmp/bpcond
-
-	  Program received signal SIGSEGV, Segmentation fault.
-	  0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  Error in testing condition for breakpoint 1:
-	  The program being debugged stopped while in a function called from GDB.
-	  Evaluation of the expression containing the function
-	  (some_func) will be abandoned.
-	  When the function is done executing, GDB will silently stop.
-
-	  Breakpoint 1, 0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  (gdb)
-
-	What happens here is the breakpoint condition includes a call to an
-	inferior function, and the inferior function segfaults.  We can see
-	that GDB reports the segfault, and then gives an error message that
-	indicates that an inferior function call was interrupted.
-
-	After this GDB appears to report that it is stopped at Breakpoint 1,
-	inside some_func.
-
-	I find this second stop report a little confusing.  While it is true
-	that GDB stopped as a result of hitting breakpoint 1, I think the
-	message GDB currently prints might give the impression that GDB is
-	actually stopped at a location of breakpoint 1, which is not the case.
-
-	Also, I find the second stop message draws attention away from
-	the "Program received signal SIGSEGV, Segmentation fault" stop
-	message, and this second stop might be thought of as replacing in
-	someway the earlier message.
-
-	In short, I think things would be clearer if the second stop message
-	were not reported at all, so the output should, I think, look like
-	this:
-
-	  (gdb) list some_func
-	  1	int
-	  2	some_func ()
-	  3	{
-	  4	  int *p = 0;
-	  5	  return *p;
-	  6	}
-	  7
-	  8	void
-	  9	foo ()
-	  10	{
-	  (gdb) break foo if (some_func ())
-	  Breakpoint 1 at 0x40111e: file bpcond.c, line 11.
-	  (gdb) r
-	  Starting program: /tmp/bpcond
-
-	  Program received signal SIGSEGV, Segmentation fault.
-	  0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  Error in testing condition for breakpoint 1:
-	  The program being debugged stopped while in a function called from GDB.
-	  Evaluation of the expression containing the function
-	  (some_func) will be abandoned.
-	  When the function is done executing, GDB will silently stop.
-	  (gdb)
-
-	The user can still find the number of the breakpoint that triggered
-	the initial stop in this line:
-
-	  Error in testing condition for breakpoint 1:
-
-	But there's now only one stop reason reported, the SIGSEGV, which I
-	think is much clearer.
-
-	To achieve this change I set the bpstat::print field when:
-
-	  (a) a breakpoint condition evaluation failed, and
-
-	  (b) the $pc of the thread changed during condition evaluation.
-
-	I've updated the existing tests that checked the error message printed
-	when a breakpoint condition evaluation failed.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: avoid repeated signal reporting during failed conditional breakpoint
-	Consider the following case:
-
-	  (gdb) list some_func
-	  1	int
-	  2	some_func ()
-	  3	{
-	  4	  int *p = 0;
-	  5	  return *p;
-	  6	}
-	  7
-	  8	void
-	  9	foo ()
-	  10	{
-	  (gdb) break foo if (some_func ())
-	  Breakpoint 1 at 0x40111e: file bpcond.c, line 11.
-	  (gdb) r
-	  Starting program: /tmp/bpcond
-
-	  Program received signal SIGSEGV, Segmentation fault.
-	  0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  Error in testing breakpoint condition:
-	  The program being debugged was signaled while in a function called from GDB.
-	  GDB remains in the frame where the signal was received.
-	  To change this behavior use "set unwindonsignal on".
-	  Evaluation of the expression containing the function
-	  (some_func) will be abandoned.
-	  When the function is done executing, GDB will silently stop.
-
-	  Program received signal SIGSEGV, Segmentation fault.
-
-	  Breakpoint 1, 0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  (gdb)
-
-	Notice that this line:
-
-	  Program received signal SIGSEGV, Segmentation fault.
-
-	Appears twice in the output.  The first time is followed by the
-	current location.  The second time is a little odd, why do we print
-	that?
-
-	Printing that line is controlled, in part, by a global variable,
-	stopped_by_random_signal.  This variable is reset to zero in
-	handle_signal_stop, and is set if/when GDB figures out that the
-	inferior stopped due to some random signal.
-
-	The problem is, in our case, GDB first stops at the breakpoint for
-	foo, and enters handle_signal_stop and the stopped_by_random_signal
-	global is reset to 0.
-
-	Later within handle_signal_stop GDB calls bpstat_stop_status, it is
-	within this function (via bpstat_check_breakpoint_conditions) that the
-	breakpoint condition is checked, and, we end up calling the inferior
-	function (some_func in our example above).
-
-	In our case above the thread performing the inferior function call
-	segfaults in some_func.  GDB catches the SIGSEGV and handles the stop,
-	this causes us to reenter handle_signal_stop.  The global variable
-	stopped_by_random_signal is updated, this time it is set to true
-	because the thread stopped due to SIGSEGV.  As a result of this we
-	print the first instance of the line (as seen above in the example).
-
-	Finally we unwind GDB's call stack, the inferior function call is
-	complete, and we return to the original handle_signal_stop.  However,
-	the stopped_by_random_signal global is still carrying the value as
-	computed for the inferior function call's stop, which is why we now
-	print a second instance of the line, as seen in the example.
-
-	To prevent this, I propose adding a scoped_restore before we start an
-	inferior function call.  This will save and restore the global
-	stopped_by_random_signal value.
-
-	With this done, the output from our example is now this:
-
-	 (gdb) list some_func
-	  1	int
-	  2	some_func ()
-	  3	{
-	  4	  int *p = 0;
-	  5	  return *p;
-	  6	}
-	  7
-	  8	void
-	  9	foo ()
-	  10	{
-	  (gdb) break foo if (some_func ())
-	  Breakpoint 1 at 0x40111e: file bpcond.c, line 11.
-	  (gdb) r
-	  Starting program: /tmp/bpcond
-
-	  Program received signal SIGSEGV, Segmentation fault.
-	  0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  Error in testing condition for breakpoint 1:
-	  The program being debugged stopped while in a function called from GDB.
-	  Evaluation of the expression containing the function
-	  (some_func) will be abandoned.
-	  When the function is done executing, GDB will silently stop.
-
-	  Breakpoint 1, 0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  (gdb)
-
-	We now only see the 'Program received signal SIGSEGV, ...' line once,
-	which I think makes more sense.
-
-	Finally, I'm aware that the last few lines, that report the stop as
-	being at 'Breakpoint 1', when this is not where the thread is actually
-	located anymore, is not great.  I'll address that in the next commit.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbserver: allow agent expressions to fail with invalid memory access
-	This commit extends gdbserver to take account of a failed memory
-	access from agent_mem_read, and to return a new eval_result_type
-	expr_eval_invalid_memory_access.
-
-	I have only updated the agent_mem_read calls related directly to
-	reading memory, I have not updated any of the calls related to
-	tracepoint data collection.  This is just because I'm not familiar
-	with that area of gdb/gdbserver, and I don't want to break anything,
-	so leaving the existing behaviour untouched seems like the safest
-	approach.
-
-	I've then updated gdb.base/bp-cond-failure.exp to test evaluating the
-	breakpoints on the target, and have also extended the test so that it
-	checks for different sizes of memory access.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbserver: allows agent_mem_read to return an error code
-	Currently the gdbserver function agent_mem_read ignores any errors
-	from calling read_inferior_memory.  This means that if there is an
-	attempt to access invalid memory then this will appear to succeed.
-
-	In this patch I update agent_mem_read so that if read_inferior_memory
-	fails, agent_mem_read will return an error code.
-
-	However, none of the callers of agent_mem_read actually check the
-	return value, so this commit will have no effect on anything.  In the
-	next commit I will update the users of agent_mem_read to check for the
-	error code.
-
-	I've also updated the header comments on agent_mem_read to better
-	reflect what the function does, and its possible return values.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: include breakpoint number in testing condition error message
-	When GDB fails to test the condition of a conditional breakpoint, for
-	whatever reason, the error message looks like this:
-
-	  (gdb) break foo if (*(int *) 0) == 1
-	  Breakpoint 1 at 0x40111e: file bpcond.c, line 11.
-	  (gdb) r
-	  Starting program: /tmp/bpcond
-	  Error in testing breakpoint condition:
-	  Cannot access memory at address 0x0
-
-	  Breakpoint 1, foo () at bpcond.c:11
-	  11	  int a = 32;
-	  (gdb)
-
-	The line I'm interested in for this commit is this one:
-
-	  Error in testing breakpoint condition:
-
-	In the case above we can figure out that the problematic breakpoint
-	was #1 because in the final line of the message GDB reports the stop
-	at breakpoint #1.
-
-	However, in the next few patches I plan to change this.  In some cases
-	I don't think it makes sense for GDB to report the stop as being at
-	breakpoint #1, consider this case:
-
-	  (gdb) list some_func
-	  1	int
-	  2	some_func ()
-	  3	{
-	  4	  int *p = 0;
-	  5	  return *p;
-	  6	}
-	  7
-	  8	void
-	  9	foo ()
-	  10	{
-	  (gdb) break foo if (some_func ())
-	  Breakpoint 1 at 0x40111e: file bpcond.c, line 11.
-	  (gdb) r
-	  Starting program: /tmp/bpcond
-
-	  Program received signal SIGSEGV, Segmentation fault.
-	  0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  Error in testing breakpoint condition:
-	  The program being debugged was signaled while in a function called from GDB.
-	  GDB remains in the frame where the signal was received.
-	  To change this behavior use "set unwindonsignal on".
-	  Evaluation of the expression containing the function
-	  (some_func) will be abandoned.
-	  When the function is done executing, GDB will silently stop.
-
-	  Program received signal SIGSEGV, Segmentation fault.
-
-	  Breakpoint 1, 0x0000000000401116 in some_func () at bpcond.c:5
-	  5	  return *p;
-	  (gdb)
-
-	Notice that, the final lines of output reports the stop as being at
-	breakpoint #1, even though the inferior in not located within
-	some_func, and it's certainly not located at the breakpoint location.
-
-	I find this behaviour confusing, and propose that this should be
-	changed.  However, if I make that change then every reference to
-	breakpoint #1 will be lost from the error message.
-
-	So, in this commit, in preparation for the later commits, I propose to
-	change the 'Error in testing breakpoint condition:' line to this:
-
-	  Error in testing condition for breakpoint NUMBER:
-
-	where NUMBER will be filled in as appropriate.  Here's the first
-	example with the updated error:
-
-	  (gdb) break foo if (*(int *) 0) == 0
-	  Breakpoint 1 at 0x40111e: file bpcond.c, line 11.
-	  (gdb) r
-	  Starting program: /tmp/bpcond
-	  Error in testing condition for breakpoint 1:
-	  Cannot access memory at address 0x0
-
-	  Breakpoint 1, foo () at bpcond.c:11
-	  11	  int a = 32;
-	  (gdb)
-
-	The breakpoint number does now appear twice in the output, but I don't
-	see that as a negative.
-
-	This commit just changes the one line of the error, and updates the
-	few tests that either included the old error in comments, or actually
-	checked for the error in the expected output.
-
-	As the only test that checked the line I modified is a Python test,
-	I've added a new test that doesn't rely on Python that checks the
-	error message in detail.
-
-	While working on the new test, I spotted that it would fail when run
-	with native-gdbserver and native-extended-gdbserver target boards.
-	This turns out to be due to a gdbserver bug.  To avoid cluttering this
-	commit I've added a work around to the new test script so that the
-	test passes for the remote boards, in the next few commits I will fix
-	gdbserver, and update the test script to remove the work around.
-
-2023-04-03  Alan Modra  <amodra@gmail.com>
-
-	asan: csky floatformat_to_double uninitialised value
-		* csky-dis.c (csky_print_operand <OPRND_TYPE_FCONSTANT>): Don't
-		access ibytes after read_memory_func error.  Change type of
-		ibytes to avoid casts.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: fix regressions in gdb.base/unwind-on-each-insn.exp
-	This commit builds on the previous one to fix all the remaining
-	failures in gdb.base/unwind-on-each-insn.exp for RISC-V.
-
-	The problem we have in gdb.base/unwind-on-each-insn.exp is that, when
-	we are in the function epilogue, the previous frame and stack pointer
-	values are being restored, and so, the values that we calculated
-	during the function prologue are no longer suitable.
-
-	Here's an example from the function 'bar' in the mentioned test.  This
-	was compiled for 64-bit RISC-V with compressed instruction support:
-
-	  Dump of assembler code for function bar:
-	     0x000000000001018a <+0>:	add	sp,sp,-32
-	     0x000000000001018c <+2>:	sd	ra,24(sp)
-	     0x000000000001018e <+4>:	sd	fp,16(sp)
-	     0x0000000000010190 <+6>:	add	fp,sp,32
-	     0x0000000000010192 <+8>:	sd	a0,-24(fp)
-	     0x0000000000010196 <+12>:	ld	a0,-24(fp)
-	     0x000000000001019a <+16>:	jal	0x10178 <foo>
-	     0x000000000001019e <+20>:	nop
-	     0x00000000000101a0 <+22>:	ld	ra,24(sp)
-	     0x00000000000101a2 <+24>:	ld	fp,16(sp)
-	     0x00000000000101a4 <+26>:	add	sp,sp,32
-	     0x00000000000101a6 <+28>:	ret
-	  End of assembler dump.
-
-	When we are at address 0x101a4 the previous instruction has restored
-	the frame-pointer, as such GDB's (current) preference for using the
-	frame-pointer as the frame base address is clearly not going to work.
-	We need to switch to using the stack-pointer instead.
-
-	At address 0x101a6 the previous instruction has restored the
-	stack-pointer value.  Currently GDB will not understand this and so
-	will still assume the stack has been decreased by 32 bytes in this
-	function.
-
-	My proposed solution is to extend GDB such that GDB will scan the
-	instructions at the current $pc looking for this pattern:
-
-	  ld    fp,16(sp)
-	  add   sp,sp,32
-	  ret
-
-	Obviously the immediates can change, but the basic pattern indicates
-	that the function is in the process of restoring state before
-	returning.  If GDB sees this pattern then GDB can use the inferior's
-	position within this instruction sequence to help calculate the
-	correct frame-id.
-
-	With this implemented then gdb.base/unwind-on-each-insn.exp now fully
-	passes.
-
-	Obviously what I've implemented is just a heuristic.  It's not going
-	to work for every function.  If the compiler reorders the
-	instructions, or merges the epilogue back into the function body then
-	GDB is once again going to get the frame-id wrong.
-
-	I'm OK with that, we're no worse off that we are right now in that
-	situation (plus we can always improve the heuristic later).
-
-	Remember, this is for debugging code without debug information,
-	and (in our imagined situation) with more aggressive levels of
-	optimisation being used.  Obviously GDB is going to struggle in these
-	situations.
-
-	My thinking is, lets get something in place now.  Then, later, if
-	possible, we might be able to improve the logic to cover more
-	situations -- if there's an interest in doing so.  But I figure we
-	need something in place as a starting point.
-
-	After this commit gdb.base/unwind-on-each-insn.exp passes with no
-	failures on RV64.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: support c.ldsp and c.lwsp in prologue scanner
-	Add support to the RISC-V prologue scanner for c.ldsp and c.lwsp
-	instructions.
-
-	This fixes some of the failures in gdb.base/unwind-on-each-insn.exp,
-	though there are further failures that are not fixed by this commit.
-
-	This change started as a wider fix that would address all the failures
-	in gdb.base/unwind-on-each-insn.exp, however, that wider fix needed
-	support for the two additional compressed instructions.
-
-	When I added support for those two compressed instructions I noticed
-	that some of the failures in gdb.base/unwind-on-each-insn.exp resolved
-	themselves!
-
-	Here's what's going on:
-
-	The reason for the failures is that GDB is trying to build the
-	frame-id during the last few instructions of the function.  These are
-	the instructions that restore the frame and stack pointers just prior
-	to the return instruction itself.
-
-	By the time we reach the function epilogue the stack offset that we
-	calculated during the prologue scan is no longer valid, and so we
-	calculate the wrong frame-id.
-
-	However, in the particular case of interest here, the test function
-	'foo', the function is so simple and short (the empty function) that
-	GDB's prologue scan could, in theory, scan every instruction of the
-	function.
-
-	I say "could, in theory," because currently GDB stops the prologue
-	scan early when it hits an unknown instruction.  The unknown
-	instruction happens to be one of the compressed instructions that I'm
-	adding support for in this commit.
-
-	Now that GDB understands the compressed instructions the prologue scan
-	really does go from the start of the function right up to the current
-	program counter.  As such, GDB sees that the stack frame has been
-	allocated, and then deallocated, and so builds the correct frame-id.
-
-	Of course, most real functions are not as simple as the test function
-	'foo'.  As such, we can't usually rely on scanning right up to the end
-	of the function -- there are some instructions we always need to stop
-	at because GDB can't reason about how they change the inferior
-	state (e.g. a function call).  The test function 'bar' is just such an
-	example.
-
-	After this commit, we can now build the frame-id correctly for every
-	instruction in 'foo', but there are some tests still failing in 'bar'.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: convert riscv debug settings to new debug print scheme
-	Convert the RISC-V specific debug settings to use the new debug
-	printing scheme.  This updates the following settings:
-
-	  set/show debug riscv breakpoints
-	  set/show debug riscv gdbarch
-	  set/show debug riscv infcall
-	  set/show debug riscv unwinder
-
-	All of these settings now take a boolean rather than an integer, and
-	all print their output using the new debug scheme.
-
-	There should be no visible change for anyone not turning on debug.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/arm: adjust whitespace in cpsie instruction
-	While I was working on the disassembler styling for ARM I noticed that
-	the whitespace in the cpsie instruction was inconsistent with most of
-	the other ARM disassembly output, the disassembly for cpsie looks like
-	this:
-
-	  cpsie   if,#10
-
-	notice there's no space before the '#10' immediate, most other ARM
-	instructions have a space before each operand.
-
-	This commit updates the disassembler to add the missing space, and
-	updates the tests I found that tested this instruction.
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: gdb.server/server-kill.exp 'info frame' before kill_server
-	This commit follows on from the following two commits:
-
-	  commit 80dc83fd0e70f4d522a534bc601df5e05b81d564
-	  Date:   Fri Jun 11 11:30:47 2021 +0100
-
-	      gdb/remote: handle target dying just before a stepi
-
-	And:
-
-	  commit 079f190d4cfc6aa9c934b00a9134bc0fcc172d53
-	  Date:   Thu Mar 9 10:45:03 2023 +0100
-
-	      [gdb/testsuite] Fix gdb.server/server-kill.exp for remote target
-
-	The first of these commits fixed an issue in GDB and tried to extend
-	the gdb.server/server-kill.exp test to cover the GDB fix.
-
-	Unfortunately, the changes to gdb.server/server-kill.exp were not
-	correct, and were causing problems when trying to run with the
-	remote-gdbserver-on-localhost board file.
-
-	The second commit reverts some of the gdb.server/server-kill.exp
-	changes introduced in the first commit so that the test will now work
-	correctly with the remote-gdbserver-on-localhost board file.
-
-	The second commit is just about GDB's testing infrastructure -- it's
-	not about the original fix to GDB from the first commit, the actual
-	GDB change was fine.
-
-	While reviewing the second commit I wanted to check that the problem
-	fixed in the first commit is still being tested by the
-	gdb.server/server-kill.exp script, so I reverted the change to
-	breakpoint.c that is the core of the first commit and ran the test
-	script ..... and saw no failures.
-
-	The first commit is about GDB discovering that gdbserver has died
-	while trying to insert a breakpoint.  As soon as GDB spots that
-	gdbserver is gone we mourn the remote inferior, which ends up deleting
-	all the breakpoints associated with the remote inferiors.  We then
-	throw an exception which is caught in the insert breakpoints code, and
-	we try to display an error that includes the breakpoint number
-	.... but the breakpoint has already been deleted ... and so GDB
-	crashes.
-
-	After digging a little, what I found is that today, when the test does
-	'stepi' the first thing we end up doing is calculating the frame-id as
-	part of the stepi logic, it is during this frame-id calculation that
-	we mourn the remote inferior, delete the breakpoints, and throw an
-	exception.  The exception is caught by the top level interpreter loop,
-	and so we never try to print the breakpoint number which is what
-	caused the original crash.
-
-	If I add an 'info frame' command to the test script, prior to killing
-	gdbserver, then now when we 'stepi' GDB already has the frame-id
-	calculated, and the first thing we do is try to insert the
-	breakpoints, this will trigger the original bug.
-
-	In order to reproduce this experiment you'll need to change a function
-	in breakpoint.c, like this:
-
-	  static void
-	  rethrow_on_target_close_error (const gdb_exception &e)
-	  {
-	    return;
-	  }
-
-	Then run gdb.server/server-kill.exp with and without this patch.  You
-	should find that without this patch there are zero test failures,
-	while with this patch there will be one failure like this:
-
-	  (gdb) PASS: gdb.server/server-kill.exp: test_stepi: info frame
-	  Executing on target: kill -9 4513    (timeout = 300)
-	  builtin_spawn -ignore SIGHUP kill -9 4513
-	  stepi
-	  ../../src/gdb/breakpoint.c:2863: internal-error: insert_bp_location: Assertion `bl->owner != nullptr' failed.
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-	  ----- Backtrace -----
-	  ...
-
-2023-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix failure in gdb.python/py-unwind.exp
-	A potential test failure was introduced with commit:
-
-	  commit 6bf5f25bb150c0fbcb125e3ee466ba8f9680310b
-	  Date:   Wed Mar 8 16:11:30 2023 +0000
-
-	      gdb/python: make the gdb.unwinder.Unwinder class more robust
-
-	In this commit a new test was added, however the expected output
-	pattern varies depending on which Python version GDB is linked
-	against.
-
-	Older versions of Python result in output like this:
-
-	    (gdb) python global_test_unwinder.name = "foo"
-	    Traceback (most recent call last):
-	      File "<string>", line 1, in <module>
-	    AttributeError: can't set attribute
-	    Error while executing Python code.
-	    (gdb)
-
-	While more recent versions of Python give a similar, but slightly more
-	verbose error message, like this:
-
-	    (gdb) python global_test_unwinder.name = "foo"
-	    Traceback (most recent call last):
-	      File "<string>", line 1, in <module>
-	    AttributeError: can't set attribute 'name'
-	    Error while executing Python code.
-	    (gdb)
-
-	The test was only accepting the first version of the output.  This
-	commit extends the test pattern so that either version will be
-	accepted.
-
-2023-04-03  Luis Machado  <luis.machado@arm.com>
-
-	[aarch64] tpidr2: Fix erroneous detection logic for TPIDR2
-	The detection logic for TPIDR2 was implemented incorrectly.  Originally
-	the detection was supposed to be through a ptrace error code, but in reality,
-	for backwards compatibility, the detection should be based on the size of
-	the returned iovec.
-
-	For instance, if a target supports both TPIDR and TPIDR2, ptrace will return a
-	iovec size of 16.  If a target only supports TPIDR and not TPIDR2, it will
-	return a iovec size of 8, even if we asked for 16 bytes.
-
-	This patch fixes this issue in code that is shared between gdb and gdbserver,
-	therefore both gdb and gdbserver are fixed.
-
-	Tested on AArch64/Linux Ubuntu 20.04.
-
-2023-04-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-02  Alan Modra  <amodra@gmail.com>
-
-	asan: heap buffer overflow printing ecoff debug info file name
-	A case of a string section ending with an unterminated string.  Fix it
-	by allocating one more byte and making it zero.  Also make functions
-	reading the data return void* so that casts are not needed.
-
-		* ecoff.c (READ): Delete type param.  Allocate one extra byte
-		to terminate string sections with a NUL.  Adjust invocation.
-		* elfxx-mips.c (READ): Likewise.
-		* libbfd-in.h (_bfd_alloc_and_read): Return a void*.
-		(_bfd_malloc_and_read): Likewise.
-		* libbfd.h: Regenerate.
-
-2023-04-02  Alan Modra  <amodra@gmail.com>
-
-	ubsan: aarch64 parse_vector_reg_list
-	tc-aarch64.c:1473:27: runtime error: left shift of 7 by 30 places
-	cannot be represented in type 'int'.
-
-		* config/tc-aarch64.c (parse_vector_reg_list): Avoid UB left
-		shift.
-
-2023-04-02  Alan Modra  <amodra@gmail.com>
-
-	rddbg.c stabs FIXMEs
-	This should sort out some very old FIXMEs in code handling stabs
-	debug info.  Necessary if we are to fuss over freeing up memory before
-	objdump and objcopy exit.  It is of course better from a user
-	viewpoint to *not* free memory, which takes some time, and leave that
-	to process exit.  The only reason to do so is that having many memory
-	leaks in binutils/ code tends to hide leaks in bfd/ or opcodes/, which
-	we should care about.
-
-		* budbg.h (parse_stab): Update prototype.
-		* debug.h (debug_start_source): Update prototype.
-		* debug.c (debug_start_source): Add name_used.  Set if stashed.
-		* rddbg.c (read_symbol_stabs_debugging_info): Always malloc
-		stab string passed to parse_stab.  Free stab string when
-		unreferenced.
-		(read_section_stabs_debugging_info): Likewise, and strings
-		section contents.
-		* stabs.c (parse_stab): Add string_used param.  Set if string
-		stashed.  Pass to debug_start_source.  Realloc file_types
-		array rather that using malloc.  Clarify comment about
-		debug_make_indirect_type.
-
-2023-04-02  Alan Modra  <amodra@gmail.com>
-
-	Memory leak in process_abbrev_set
-	We may have added some abbrevs to the list before hitting an error.
-	Free the list elements too.  free_abbrev_list returns list->next so we
-	need to init it earlier to avoid an uninitialised memory access.
-
-		* dwarf.c (process_abbrev_set): Call free_abbrev_list on errors.
-		Set list->next earlier.
-
-2023-04-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove unused parameters in print_doc_of_command, apropos_cmd
-	I noticed the prefix parameter was unused in print_doc_of_command.  And
-	when removing it, it becomes unused in apropos_cmd.
-
-	Change-Id: Id72980b03fe091b22931e6b85945f412b274ed5e
-
-2023-04-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-04-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	gdb/arm: Fix backtrace for pthread_cond_timedwait
-	GDB expected PC should point right after the SVC instruction when the
-	syscall is active. But some active syscalls keep PC pointing to the SVC
-	instruction itself.
-
-	This leads to a broken backtrace like:
-	 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
-	 #0  0xb6f8681c in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
-	 #1  0xb6e21f80 in ?? ()
-
-	The reason is that .ARM.exidx unwinder gives up if PC does not point
-	right after the SVC (syscall) instruction. I did not investigate why but
-	some syscalls will point PC to the SVC instruction itself. This happens
-	for the "futex" syscall used by pthread_cond_timedwait.
-
-	That normally does not matter as ARM prologue unwinder gets called
-	instead of the .ARM.exidx one. Unfortunately some glibc calls have more
-	complicated prologue where the GDB unwinder fails to properly determine
-	the return address (that is in fact an orthogonal GDB bug). I expect it
-	is due to the "vpush" there in this case but I did not investigate it more:
-
-	Dump of assembler code for function pthread_cond_timedwait@@GLIBC_2.4:
-	   0xb6f8757c <+0>:     push    {r4, r5, r6, r7, r8, r9, r10, r11, lr}
-	   0xb6f87580 <+4>:     mov     r10, r2
-	   0xb6f87584 <+8>:     vpush   {d8}
-
-	Regression tested on armv7l kernel 5.15.32-v7l+ (Raspbian 11).
-
-	Approved-By: Luis Machado <luis.machado@arm.com>
-
-2023-04-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-31  H.J. Lu  <hjl.tools@gmail.com>
-
-	lto: Don't add indirect symbols for versioned aliases in IR
-	Linker adds indirect symbols for versioned symbol aliases, which are
-	created by ".symver foo, foo@FOO", by checking symbol type, value and
-	section so that references to foo will be replaced by references to
-	foo@FOO if foo and foo@FOO have the same symbol type, value and section.
-	But in IR, since all symbols of the same type have the same value and
-	section, we can't tell if a symbol is an alias of another symbol by
-	their types, values and sections.  We shouldn't add indirect symbols
-	for versioned symbol aliases in IR.
-
-	bfd/
-
-		PR ld/30281
-		* elflink.c (elf_link_add_object_symbols): Don't add indirect
-		symbols for ".symver foo, foo@FOO" aliases in IR.
-
-	ld/
-
-		PR ld/30281
-		* testsuite/ld-plugin/lto.exp: Add PR ld/30281 test.
-		* testsuite/ld-plugin/pr30281.t: New file.
-		* testsuite/ld-plugin/pr30281.c: Likewise.
-
-2023-03-31  Tom Tromey  <tom@tromey.com>
-
-	Fix maybe-uninitialized warning in frame.c
-	A recent patch caused my system gcc (Fedora 36, so gcc 12.2.1) to warn
-	about sym_addr being possibly uninitialized in frame.c.  It isn't, but
-	the compiler can't tell.  So, this patch initializes the variable.  I
-	also fixed a formatting buglet that I missed in review.
-
-2023-03-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/trace-commands.exp with editing off
-	With test-case gdb.base/trace-commands.exp and editing off, I run into fails
-	because multi-line commands are issued using gdb_test_sequence, which
-	doesn't handle them correctly.
-
-	Fix this by using gdb_test instead.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30288
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30288
-
-2023-03-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/threadapply.exp with editing off
-	With test-case gdb.threads/threadapply.exp and editing set to on, we have:
-	...
-	(gdb) define remove^M
-	Type commands for definition of "remove".^M
-	End with a line saying just "end".^M
-	>remove-inferiors 3^M
-	>end^M
-	(gdb)
-	...
-	but with editing set to off, we run into:
-	...
-	(gdb) define remove^M
-	Type commands for definition of "remove".^M
-	End with a line saying just "end".^M
-	>remove-inferiors 3^M
-	end^M
-	>(gdb) FAIL: gdb.threads/threadapply.exp: thread_set=all: try remove: \
-	  define remove (timeout)
-	...
-
-	The commands are issued by this test:
-	...
-		gdb_define_cmd "remove" {
-		    "remove-inferiors 3"
-		}
-	...
-	which does:
-	- gdb_test_multiple "define remove", followed by
-	- gdb_test_multiple "remove-inferiors 3\nend".
-
-	Proc gdb_test_multiple has special handling for multi-line commands, which
-	splits it up into subcommands, and for each subcommand issues it and then
-	waits for the resulting prompt (the secondary prompt ">" for all but the last
-	subcommand).
-
-	However, that doesn't work as expected in this case because the initial
-	gdb_test_multiple "define remove" fails to match all resulting output, and
-	consequently the secondary prompt resulting from "define remove" is counted as
-	if it was the one resulting from "remove-inferiors 3".
-
-	Fix this by matching the entire output of "define remove", including the
-	secondary prompt.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30288
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30288
-
-2023-03-31  Tom Tromey  <tom@tromey.com>
-
-	Remove language_demangle
-	I noticed that language_demangle shadows the global
-	"current_language".  When I went to fix this, though, I then saw that
-	language_demangle is only called in two places, and has a comment
-	saying it should be removed.  This patch removes it.  Note that the
-	NULL check in language_demangle is not needed by either of the
-	existing callers.
-
-	Regression tested on x86-64 Fedora 36.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-31  Tom Tromey  <tom@tromey.com>
-
-	Fix race in background index-cache writing
-	Tom de Vries pointed out a bug in the index-cache background writer --
-	sometimes it will fail.  He also noted that it fails when the number
-	of worker threads is set to zero.  These turn out to be the same
-	problem -- the cache can't be written to until the per-BFD's
-	"index_table" member is set.
-
-	This patch avoids the race by rearranging the code slightly, to ensure
-	the cache cannot possibly be written before the member is set.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30261
-
-2023-03-31  Richard Bunt  <richard.bunt@linaro.org>
-
-	GDB: Add `info main' command
-	Allow consumers of GDB to extract the name of the main method.  This is
-	most useful for Fortran programs which have a variable main method.
-
-	Used by both MAP and DDT e.g. it is used to detect the presence of debug
-	information.
-
-	Co-Authored-By: Maciej W. Rozycki <macro@embecosm.com>
-
-2023-03-31  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Bring back the handling of DW_CC_program
-	Fix a functional regression and restore the handling of DW_CC_program
-	code of DW_AT_calling_convention attribute for determining the name of
-	the starting function of the program where the DW_AT_main_subprogram
-	attribute has not been provided, such as with Fortran code compiled with
-	GCC versions 4.5.4 and below, or where DWARF version 3 or below has been
-	requested.  Without it "main" is considered the starting function.  Cf.
-	GCC PR fortran/43414.
-
-	Original code was removed with commit 6209cde4ddb8 ("Delete DWARF
-	psymtab code"), and then an update to complement commit 81873cc81eff
-	("[gdb/symtab] Support DW_AT_main_subprogram with -readnow.") has also
-	been included here.
-
-2023-03-31  Richard Bunt  <richard.bunt@linaro.org>
-
-	GDB: Favor full symbol main name for backtrace stop
-	In the case where a Fortran program has a program name of "main" and
-	there is also a minimal symbol called main, such as with programs built
-	with GCC version 4.4.7 or below, the backtrace will erroneously stop at
-	the minimal symbol rather than the user specified main, e.g.:
-
-	(gdb) bt
-	#0  bar () at .../gdb/testsuite/gdb.fortran/backtrace.f90:17
-	#1  0x0000000000402556 in foo () at .../gdb/testsuite/gdb.fortran/backtrace.f90:21
-	#2  0x0000000000402575 in main () at .../gdb/testsuite/gdb.fortran/backtrace.f90:31
-	#3  0x00000000004025aa in main ()
-	(gdb)
-
-	This patch fixes this issue by increasing the precedence of the full
-	symbol when the language of the current frame is Fortran.
-
-	Newer versions of GCC transform the program name to "MAIN__" in this
-	case, avoiding the problem.
-
-	Co-Authored-By: Maciej W. Rozycki <macro@embecosm.com>
-
-2023-03-31  Ari Hannula  <ari.hannula@intel.com>
-
-	gdb: Remove extra if statement
-	The removed if statement is already checked in the parent if else
-	statement.
-
-	Co-Authored-By: Christina Schimpe <christina.schimpe@intel.com>
-
-2023-03-31  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Allocate "various" operand type
-	This commit intends to move operands that require very special handling or
-	operand types that are so minor (e.g. only useful on a few instructions)
-	under "W".  I also intend this "W" to be "temporary" operand storage until
-	we can find good two character (or less) operand type.
-
-	In this commit, prefetch offset operand "f" for 'Zicbop' extension is moved
-	to "Wif" because of its special handling (and allocating single character
-	"f" for this operand type seemed too much).
-
-	Current expected allocation guideline is as follows:
-
-	1.  'W'
-	2.  The most closely related single-letter extension in lowercase
-	    (strongly recommended but not mandatory)
-	3.  Identify operand type
-
-	The author currently plans to allocate following three-character operand
-	types (for operands including instructions from unratified extensions).
-
-	1.  "Wif" ('Zicbop': fetch offset)
-	2.  "Wfv" (unratified 'Zfa': value operand from FLI.[HSDQ] instructions)
-	3.  "Wfm" / "WfM"
-	    'Zfh', 'F', 'D', 'Q': rounding modes "m" with special handling
-	                          solely for widening conversion instructions.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (validate_riscv_insn, riscv_ip): Move from
-		"f" to "Wif".
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Move from "f" to "Wif".
-		* riscv-opc.c (riscv_opcodes): Reflect new operand type.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: convert testcases to use .insn
-	This can't be done for all insns currently encoded with .byte. For one
-	outside of 64-bit mode unused (typically ignored) register encoding bits
-	in VEX/XOP/EVEX prefixes can't be set to their non-default values, since
-	the necessary registers cannot be specified (and some of these bits
-	can't even be used outside of 64-bit mode). And then there are odd tests
-	like the first one in bad-bcast.s: Its purpose is to illegaly set EVEX.b
-	together with EVEX.W (which could be expressed; note though EVEX.W set
-	is invalid on its own), but then it also clears EVEX.B and EVEX.R' plus
-	it sets EVEX.vvvv to other than 0xf (rendering the test ambiguous,
-	because that's another #UD reason).
-
-	In {,x86-64-}disassem.s many bogus encodings exist - some with ModR/M
-	byte but insufficient displacement bytes, some using SIB encoding with
-	the SIB byte actually being the supposed immediate. Some of these could
-	be expressed by .insn, but I don't want to introduce bogus examples.
-	These will all need adjustment anyway once the disassembler is improved
-	in the way it deals with unrecognized encodings.
-
-	Generally generated code is meant to remain the same. {,x86-64-}nops.d
-	are exceptions because insn prefixes are emitted in a different order.
-	opcode{,-intel,-suffix}.d are also adjusted (along with an according
-	correction to opcode.s) to cover an apparent typo in the original tests
-	(xor when or was meant).
-
-	Where necessary --divide is added as gas option, to allow for the use
-	of the extension opcode functionality.
-
-	Comments are being adjusted where obviously wrong/misleading.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: document .insn
-	... and mention its introduction in NEWS.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: handle immediate operands for .insn
-	Since we have no insn suffix and it's also not realistic to infer
-	immediate size from the size of other (typically register) operands
-	(like optimize_imm() does), and since we also don't have a template
-	telling us permitted size(s), a new syntax construct is introduced to
-	allow size (and signedness) specification. In the absence of such, the
-	size is inferred from significant bits (which obviously may yield
-	inconsistent results at least for effectively negative values, depending
-	on whether BFD64 is enabled), and only if supplied expressions can be
-	evaluated at parsing time. Being explicit is generally recommended to
-	users.
-
-	Size specification is permitted at bit granularity, but of course the
-	eventually emitted immediate values will be padded up to 8-, 16-, 32-,
-	or 64-bit fields.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: allow for multiple immediates in output_disp()
-	.insn isn't going to have a constraint of only a single immediate when,
-	in particular, RIP-relative addressing is used.
-
-	x86: handle EVEX Disp8 for .insn
-	In particular the scaling factor cannot always be determined from pre-
-	existing operand attributes. Introduce a new {:d<N>} vector operand
-	syntax extension, restricted to .insn only, to allow specifying this in
-	(at least) otherwise ambiguous cases.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: process instruction operands for .insn
-	Deal with register and memory operands; immediate operands will follow
-	later, as will the handling of EVEX embedded broadcast and EVEX Disp8
-	scaling.
-
-	Note that because we can't really know how to encode their use, %cr8 and
-	up cannot be used with .insn outside of 64-bit mode. Users would need to
-	specify an explicit LOCK prefix in combination with %cr0 etc.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: parse special opcode modifiers for .insn
-	So called "short form" encoding is specified by a trailing "+r", whereas
-	a possible extension opcode is specified by the usual "/<digit>". Take
-	these off the expression before handing it to get_absolute_expression().
-
-	Note that on targets where / starts a comment, --divide needs passing to
-	gas in order to make use of the extension opcode functionality.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: parse VEX and alike specifiers for .insn
-	All encoding spaces can be used this way; there's a certain risk that
-	the bits presently reserved could be used for other purposes down the
-	road, but people using .insn are expected to know what they're doing
-	anyway. Plus this way there's at least _some_ way to have those bits
-	set.
-
-	For now this will only allow operand-less insns to be encoded this way.
-
-2023-03-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: introduce .insn directive
-	For starters this deals with only very basic constructs.
-
-	Arm64/ELF: accept relocations against STN_UNDEF
-	While only a secondary issue there, the testcase of PR gas/27212 exposes
-	an oversight in relocation handling: Just like e.g. Arm32, which has a
-	similar comment and a similar check, relocations against STN_UNDEF have
-	to be permitted to satisfy the ELF spec.
-
-2023-03-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-30  Kevin Buettner  <kevinb@redhat.com>
-
-	PR gdb/30219: Clear sync_quit_force_run in quit_force
-	PR 30219 shows an internal error due to a "Bad switch" in
-	print_exception() in gdb/exceptions.c.  The switch in question
-	contains cases for RETURN_QUIT and RETURN_ERROR, but is missing a case
-	for the recently added RETURN_FORCED_QUIT.  This commit adds that case.
-
-	Making the above change allows the errant test case to pass, but does
-	not fix the underlying problem, which I'll describe shortly.  Even
-	though the addition of a case for RETURN_FORCED_QUIT isn't the actual
-	fix, I still think it's important to add this case so that other
-	situations which lead to print_exeption() being called won't generate
-	that "Bad switch" internal error.
-
-	In order to understand the underlying problem, please examine
-	this portion of the backtrace from the bug report:
-
-	0x5576e4ff5780 print_exception
-	        /home/smarchi/src/binutils-gdb/gdb/exceptions.c:100
-	0x5576e4ff5930 exception_print(ui_file*, gdb_exception const&)
-	        /home/smarchi/src/binutils-gdb/gdb/exceptions.c:110
-	0x5576e6a896dd quit_force(int*, int)
-	        /home/smarchi/src/binutils-gdb/gdb/top.c:1849
-
-	The real problem is in quit_force; here's the try/catch which
-	eventually leads to the internal error:
-
-	  /* Get out of tfind mode, and kill or detach all inferiors.  */
-	  try
-	    {
-	      disconnect_tracing ();
-	      for (inferior *inf : all_inferiors ())
-		kill_or_detach (inf, from_tty);
-	    }
-	  catch (const gdb_exception &ex)
-	    {
-	      exception_print (gdb_stderr, ex);
-	    }
-
-	While running the calls in the try-block, a QUIT check is being
-	performed.  This check finds that sync_quit_force_run is (still) set,
-	causing a gdb_exception_forced_quit to be thrown.  The exception
-	gdb_exception_forced_quit is derived from gdb_exception, causing
-	exception_print to be called.  As shown by the backtrace,
-	print_exception is then called, leading to the internal error.
-
-	The actual fix, also implemented by this commit, is to clear
-	sync_quit_force_run along with the quit flag.  This will allow the
-	various cleanup code, called by quit_force, to run without triggering
-	a gdb_exception_forced_quit.  (Though, if another SIGTERM is sent to
-	the gdb process, these flags will be set again and a QUIT check in the
-	cleanup code will detect it and throw the exception.)
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30219
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Remove stray reglist variable
-	Sorry for not catching this during testing.  I was using a
-	host compiler that predated the switch to -fno-common.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the RPRFM instruction
-	This patch adds the RPRFM (range prefetch) instruction.
-	It was introduced as part of SME2, but it belongs to the
-	prefetch hint space and so doesn't require any specific
-	ISA flags.
-
-	The aarch64_rprfmop_array initialiser (deliberately) only
-	fills in the leading non-null elements.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SVE FCLAMP instruction
-
-	aarch64: Add new SVE shift instructions
-	This patch adds the new SVE SQRSHRN, SQRSHRUN and UQRSHRN
-	instructions.
-
-	aarch64: Add new SVE saturating conversion instructions
-	This patch adds the SVE SQCVTN, SQCVTUN and UQCVTN instructions,
-	which are available when FEAT_SME2 is implemented.
-
-	aarch64: Add new SVE dot-product instructions
-	This patch adds the SVE FDOT, SDOT and UDOT instructions,
-	which are available when FEAT_SME2 is implemented.  The patch
-	also reorders the existing SVE_Zm3_22_INDEX to keep the
-	operands numerically sorted.
-
-	aarch64: Add the SVE BFMLSL instructions
-	This patch adds the SVE BFMLSLB and BFMLSLT instructions,
-	which are available when FEAT_SME2 is implemented.
-
-	aarch64: Add the SME2 UZP and ZIP instructions
-	This patch adds UZP and ZIP, which combine UZP{1,2} and ZIP{1,2}
-	into single instructions.
-
-	aarch64: Add the SME2 UNPK instructions
-	This patch adds SUNPK and UUNPK, which unpack one register's
-	worth of elements to two registers' worth, or two registers'
-	worth to four registers' worth.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 shift instructions
-	There are two instruction formats here:
-
-	- SQRSHR, SQRSHRU and UQRSHR, which operate on lists of two
-	  or four registers.
-
-	- SQRSHRN, SQRSHRUN and UQRSHRN, which operate on lists of
-	  four registers.
-
-	These are the first SME2 instructions to have immediate operands.
-	The patch makes sure that, when parsing SME2 instructions with
-	immediate operands, the new predicate-as-counter registers are
-	parsed as registers rather than as #-less immediates.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 saturating conversion instructions
-	There are two instruction formats here:
-
-	- SQCVT, SQCVTU and UQCVT, which operate on lists of two or
-	  four registers.
-
-	- SQCVTN, SQCVTUN and UQCVTN, which operate on lists of
-	  four registers.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 FP<->FP conversion instructions
-	This patch adds the BFCVT{,N} and FCVT{,N} instructions,
-	which narrow a pair of .S registers to a single .H register.
-
-	aarch64: Add the SME2 FP<->int conversion instructions
-	This patch adds the SME2 versions of the FP<->integer conversion
-	instructions FCVT* and *CVTF.  It also adds FP rounding instructions
-	FRINT*, which share the same format.
-
-	aarch64: Add the SME2 CLAMP instructions
-	FCLAMP, SCLAMP and UCLAMP share the same format, although FCLAMP
-	doesn't have a .B form.
-
-	aarch64: Add the SME2 MOPA and MOPS instructions
-	[BSU]MOP[AS] share the same format.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 vertical dot-product instructions
-	There are three instruction formats here:
-	- BFVDOT + FVDOT
-	- SVDOT + UVDOT
-	- SUVDOT + USVDOT
-
-	There are also 64-bit forms of SVDOT and UVDOT.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 dot-product instructions
-	BFDOT, FDOT and USDOT share the same instruction format.
-	SDOT and UDOT share a different format.  SUDOT does not
-	have the multi vector x multi vector forms, since they
-	would be redundant with USDOT.
-
-	aarch64: Add the SME2 MLALL and MLSLL instructions
-	SMLALL, SMLSLL, UMLALL and UMLSLL have the same format.
-	USMLALL and SUMLALL allow the same operand types as those
-	instructions, except that SUMLALL does not have the multi-vector
-	x multi-vector forms (which would be redundant with USMLALL).
-
-	aarch64: Add the SME2 MLAL and MLSL instructions
-	The {BF,F,S,U}MLAL and {BF,F,S,U}MLSL instructions share the same
-	encoding.  They are the first instance of a ZA (as opposed to ZA tile)
-	operand having a range of offsets.  As with ZA tiles, the expected
-	range size is encoded in the operand-specific data field.
-
-	aarch64: Add the SME2 FMLA and FMLS instructions
-
-	aarch64: Add the SME2 maximum/minimum instructions
-	This patch adds the SME2 multi-register forms of F{MAX,MIN}{,NM}
-	and {S,U}{MAX,MIN}.  SQDMULH, SRSHL and URSHL have the same form
-	as SMAX etc., so the patch adds them too.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 ADD and SUB instructions
-	Add support for the SME2 ADD. SUB, FADD and FSUB instructions.
-	SUB and FSUB have the same form as ADD and FADD, except that
-	ADD also has a 2-operand accumulating form.
-
-	The 64-bit ADD/SUB instructions require FEAT_SME_I16I64 and the
-	64-bit FADD/FSUB instructions require FEAT_SME_F64F64.
-
-	These are the first instructions to have tied register list
-	operands, as opposed to tied single registers.
-
-	The parse_operands change prevents unsuffixed Z registers (width==-1)
-	from being treated as though they had an Advanced SIMD-style suffix
-	(.4s etc.).  It means that:
-
-	  Error: expected element type rather than vector type at operand 2 -- `add za\.s\[w8,0\],{z0-z1}'
-
-	becomes:
-
-	  Error: missing type suffix at operand 2 -- `add za\.s\[w8,0\],{z0-z1}'
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 ZT0 instructions
-	SME2 adds lookup table instructions for quantisation.  They use
-	a new lookup table register called ZT0.
-
-	LUTI2 takes an unsuffixed SVE vector index of the form Zn[<imm>],
-	which is the first time that this syntax has been used.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 predicate-related instructions
-	Implementation-wise, the main things to note here are:
-
-	- the WHILE* instructions have forms that return a pair of predicate
-	  registers.  This is the first time that we've had lists of predicate
-	  registers, and they wrap around after register 15 rather than after
-	  register 31.
-
-	- the predicate-as-counter WHILE* instructions have a fourth operand
-	  that specifies the vector length.  We can treat this as an enumeration,
-	  except that immediate values aren't allowed.
-
-	- PEXT takes an unsuffixed predicate index of the form PN<n>[<imm>].
-	  This is the first instance of a vector/predicate index having
-	  no suffix.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 multivector LD1 and ST1 instructions
-	SME2 adds LD1 and ST1 variants for lists of 2 and 4 registers.
-	The registers can be consecutive or strided.  In the strided case,
-	2-register lists have a stride of 8, starting at register x0xxx.
-	4-register lists have a stride of 4, starting at register x00xx.
-
-	The instructions are predicated on a predicate-as-counter register in
-	the range pn8-pn15.  Although we already had register fields with upper
-	bounds of 7 and 15, this is the first plain register operand to have a
-	nonzero lower bound.  The patch uses the operand-specific data field
-	to record the minimum value, rather than having separate inserters
-	and extractors for each lower bound.  This in turn required adding
-	an extra bit to the field.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add the SME2 MOVA instructions
-	SME2 defines new MOVA instructions for moving multiple registers
-	to and from ZA.  As with SME, the instructions are also available
-	through MOV aliases.
-
-	One notable feature of these instructions (and many other SME2
-	instructions) is that some register lists must start at a multiple
-	of the list's size.  The patch uses the general error "start register
-	out of range" when this constraint isn't met, rather than an error
-	specifically about multiples.  This ensures that the error is
-	consistent between these simple consecutive lists and later
-	strided lists, for which the requirements aren't a simple multiple.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add support for predicate-as-counter registers
-	SME2 adds a new format for the existing SVE predicate registers:
-	predicates as counters rather than predicates as masks.  In assembly
-	code, operands that interpret predicates as counters are written
-	pn<N> rather than p<N>.
-
-	This patch adds support for these registers and extends some
-	existing instructions to support them.  Since the new forms
-	are just a programmer convenience, there's no need to make them
-	more restrictive than the earlier predicate-as-mask forms.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64; Add support for vector offset ranges
-	Some SME2 instructions operate on a range of consecutive ZA vectors.
-	This is indicated by syntax such as:
-
-	   za[<Wv>, <imml>:<immh>]
-
-	Like with the earlier vgx2 and vgx4 support, we get better error
-	messages if the parser allows all ZA indices to have a range.
-	We can then reject invalid cases during constraint checking.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add support for vgx2 and vgx4
-	Many SME2 instructions operate on groups of 2 or 4 ZA vectors.
-	This is indicated by adding a "vgx2" or "vgx4" group size to the
-	ZA index.  The group size is optional in assembly but preferred
-	for disassembly.
-
-	There is not a binary distinction between mnemonics that have
-	group sizes and mnemonics that don't, nor between mnemonics that
-	take vgx2 and mnemonics that take vgx4.  We therefore get better
-	error messages if we allow any ZA index to have a group size
-	during parsing, and wait until constraint checking to reject
-	invalid sizes.
-
-	A quirk of the way errors are reported means that if an instruction
-	is wrong both in its qualifiers and its use of a group size, we'll
-	print suggested alternative instructions that also have an incorrect
-	group size.  But that's a general property that also applies to
-	things like out-of-range immediates.  It's also not obviously the
-	wrong thing to do.  We need to be relatively confident that we're
-	looking at the right opcode before reporting detailed operand-specific
-	errors, so doing qualifier checking first seems resonable.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add _off4 suffix to AARCH64_OPND_SME_ZA_array
-	SME2 adds various new fields that are similar to
-	AARCH64_OPND_SME_ZA_array, but are distinguished by the size of
-	their offset fields.  This patch adds _off4 to the name of the
-	field that we already have.
-
-	aarch64: Add a _10 suffix to FLD_imm3
-	SME2 adds various new 3-bit immediate fields, so this patch adds
-	an lsb position suffix to the name of the field that we already have.
-
-	aarch64: Add +sme2
-	This patch adds bare-bones support for +sme2.  Later patches
-	fill in the rest.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Prefer register ranges & support wrapping
-	Until now, binutils has supported register ranges such
-	as { v0.4s - v3.4s } as an unofficial shorthand for
-	{ v0.4s, v1.4s, v2.4s, v3.4s }.  The SME2 ISA embraces this form
-	and makes it the preferred disassembly.  It also embraces wrapped
-	lists such as { z31.s - z2.s }, which is something that binutils
-	didn't previously allow.
-
-	The range form was already binutils's preferred disassembly for 3- and
-	4-register lists.  This patch prefers it for 2-register lists too.
-	The patch also adds support for wrap-around.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add support for strided register lists
-	SME2 has instructions that accept strided register lists,
-	such as { z0.s, z4.s, z8.s, z12.s }.  The purpose of this
-	patch is to extend binutils to support such lists.
-
-	The parsing code already had (unused) support for strides of 2.
-	The idea here is instead to accept all strides during parsing
-	and reject invalid strides during constraint checking.
-
-	The SME2 instructions that accept strided operands also have
-	non-strided forms.  The errors about invalid strides therefore
-	take a bitmask of acceptable strides, which allows multiple
-	possibilities to be summed up in a single message.
-
-	I've tried to update all code that handles register lists.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Sort fields alphanumerically
-	This patch just sorts the field enum alphanumerically, which makes
-	it easier to see if a particular field has already been defined.
-
-	aarch64: Resync field names
-	This patch just makes the comments in aarch64-opc.c:fields match
-	the names of the associated FLD_* enum.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Regularise FLD_* suffixes
-	Some FLD_imm* suffixes used a counting scheme such as FLD_immN,
-	FLD_immN_2, FLD_immN_3, etc., while others used the lsb as the
-	suffix.  The latter seems more mnemonic, and was a big help
-	in doing the SME2 work.
-
-	Similarly, the _10 suffix on FLD_SME_size_10 was nonobvious.
-	Presumably it indicated a 2-bit field, but it actually starts
-	in bit 22.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Rename some of GAS's REG_TYPE_* macros
-	In GAS, the vector and predicate registers are identified by
-	REG_TYPE_VN, REG_TYPE_ZN and REG_TYPE_PN.  This "N" is obviously
-	a placeholder for the register number.  However, we don't use that
-	convention for integer and FP registers, and (more importantly)
-	SME2 adds "predicate-as-counter" registers that are denoted PN.
-
-	This patch therefore drops the "N" suffix from the existing
-	registers.  The main hitch is that Z was also used for the
-	zero register in things like R_Z, but using ZR seems more
-	consistent with the SP-based names.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add a aarch64_cpu_supports_inst_p helper
-	Quite a lot of SME2 instructions have an opcode bit that selects
-	between 32-bit and 64-bit forms of an instruction, with the 32-bit
-	forms being part of base SME2 and with the 64-bit forms being part
-	of an optional extension.  It's nevertheless useful to have a single
-	opcode entry for both forms since (a) that matches the ISA definition
-	and (b) it tends to improve error reporting.
-
-	This patch therefore adds a libopcodes function called
-	aarch64_cpu_supports_inst_p that tests whether the target
-	supports a particular instruction.  In future it will depend
-	on internal libopcodes routines.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Reorder some OP_SVE_* macros
-	This patch just moves some out-of-order-looking OP_SVE_* macros.
-
-	aarch64: Rename aarch64-tbl.h OP_SME_* macros
-	This patch renames the OP_SME_* macros in aarch64-tbl.h so that
-	they follow the same scheme as the OP_SVE_* ones.  It also uses
-	OP_SVE_ as the prefix, since there is no real distinction between
-	the SVE and SME uses of qualifiers: a macro defined for one can
-	be useful for the other too.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Tweak priorities of parsing-related errors
-	There are three main kinds of error reported during parsing,
-	in increasing order of priority:
-
-	- AARCH64_OPDE_RECOVERABLE (register seen instead of immediate)
-	- AARCH64_OPDE_SYNTAX_ERROR
-	- AARCH64_OPDE_FATAL_SYNTAX_ERROR
-
-	This priority makes sense when comparing errors reported against the
-	same operand.  But if we get to operand 3 (say) and see a register
-	instead of an immediate, that's likely to be a better match than
-	something that fails with a syntax error at operand 1.
-
-	The idea of this patch is to prioritise parsing-related errors
-	based on operand index first, then by error code.  Post-parsing
-	errors still win over parsing errors, and their relative priorities
-	don't change.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Try to report invalid variants against the closest match
-	If an instruction has invalid qualifiers, GAS would report the
-	error against the final opcode entry that got to the qualifier-
-	checking stage.  It seems better to report the error against
-	the opcode entry that had the closest match, just like we
-	pick the closest match within an opcode entry for the
-	"did you mean this?" message.
-
-	This patch adds the number of invalid operands as an
-	argument to AARCH64_OPDE_INVALID_VARIANT and then picks the
-	AARCH64_OPDE_INVALID_VARIANT with the lowest argument.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Tweak register list errors
-	The error for invalid register lists had the form:
-
-	  invalid number of registers in the list; N registers are expected at operand M -- `insn'
-
-	This seems a bit verbose.  Also, the "bracketing" is really:
-
-	  (invalid number of registers in the list; N registers are expected) at operand M
-
-	but the semicolon works against that.
-
-	This patch goes for slightly shorter messages, setting a template
-	that later patches can use for more complex cases.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Make AARCH64_OPDE_REG_LIST take a bitfield
-	AARCH64_OPDE_REG_LIST took a single operand that specified the
-	expected number of registers.  However, there are quite a few
-	SME2 instructions that have both 2-register forms and (separate)
-	4-register forms.  If the user tries to use a 3-register list,
-	it isn't obvious which opcode entry they meant.  Saying that we
-	expect 2 registers and saying that we expect 4 registers would
-	both be wrong.
-
-	This patch therefore switches the operand to a bitfield.  If a
-	AARCH64_OPDE_REG_LIST is reported against multiple opcode entries,
-	the patch ORs up the expected lengths.
-
-	This has no user-visible effect yet.  A later patch adds more error
-	strings, alongside tests that use them.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add an operand class for SVE register lists
-	SVE register lists were classified as SVE_REG, since there had been
-	no particular reason to separate them out.  However, some SME2
-	instructions have tied register list operands, and so we need to
-	distinguish registers and register lists when checking whether two
-	operands match.
-
-	Also, the register list operands used a general error message,
-	even though we already have a dedicated error code for register
-	lists that are the wrong length.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Commonise checks for index operands
-	This patch splits out the constraint checking for index operands,
-	so that it can be reused by new SME2 operands.
-
-	aarch64: Add an error code for out-of-range registers
-	libopcodes currently reports out-of-range registers as a general
-	AARCH64_OPDE_OTHER_ERROR.  However, this means that each register
-	range needs its own hard-coded string, which is a bit cumbersome
-	if the range is determined programmatically.  This patch therefore
-	adds a dedicated error type for out-of-range errors.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Deprioritise AARCH64_OPDE_REG_LIST
-	SME2 has many instructions that take a list of SVE registers.
-	There are often multiple forms, with different forms taking
-	different numbers of registers.
-
-	This means that if, after a successful parse and qualifier match,
-	we find that the number of registers does not match the opcode entry,
-	the associated error should have a lower priority/severity than other
-	errors reported at the same stage.  For example, if there are 2-register
-	and 4-register forms of an instruction, and if the assembly code uses
-	the 2-register form with an out-of-range value, the out-of-range value
-	error against the 2-register instruction should have a higher priority
-	than the "wrong number of registers" error against the 4-register
-	instruction.
-
-	This is tested by the main SME2 patches, but seemed worth splitting out.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Update operand_mismatch_kind_names
-	The contents of operand_mismatch_kind_names were out of sync
-	with the enum.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Rework reporting of failed register checks
-	There are many opcode table entries that share the same mnemonic.
-	Trying to parse an invalid assembly line will trigger an error for
-	each of these entries, but the specific error might vary from one
-	entry to another, depending on the exact nature of the problem.
-
-	GAS has quite an elaborate system for picking the most appropriate
-	error out of all the failed matches.  And in many cases it works well.
-	However, one of the limitations is that the error is always reported
-	against a single opcode table entry.  If that table entry isn't the
-	one that the user intended to use, then the error can end up being
-	overly specific.
-
-	This is particularly true if an instruction has a typoed register
-	name, or uses a type of register that is not accepted by any
-	opcode table entry.  For example, one of the expected error
-	matches for an attempted SVE2 instruction is:
-
-	  Error: operand 1 must be a SIMD scalar register -- `addp z32\.s,p0/m,z32\.s,z0\.s'
-
-	even though the hypothetical user was presumably attempting to use
-	the SVE form of ADDP rather than the Advanced SIMD one.  There are
-	many other instances of this in the testsuite.
-
-	The problem becomes especially acute with SME2, since many SME2
-	instructions reuse existing mnemonics.  This could lead to us
-	reporting an SME-related error against a non-SME instruction,
-	or a non-SME-related error against an SME instruction.
-
-	This patch tries to improve things by collecting together all
-	the register types that an opcode table entry expected for a
-	given operand.  It also records what kind of register was
-	actually seen, if any.  It then tries to summarise all this
-	in a more directed way, falling back to a generic error if
-	the combination defies a neat summary.
-
-	The patch includes tests for all new messages except REG_TYPE_ZA,
-	which only triggers with SME2.
-
-	To test this, I created an assembly file that contained the cross
-	product of all known mnemonics and one example from each register
-	class.  I then looked for cases where the new routines fell back on the
-	generic errors ("expected a register" or "unexpected register type").
-	I locally added dummy messages for each one until there were no
-	more hits.  The patch adds a specimen instruction to diagnostics.s
-	for each of these combinations.  In each case, the combination didn't
-	seem like something that could be summarised in a natural way, so the
-	generic messages seemed better.  There's always going to be an element
-	of personal taste around this kind of thing though.
-
-	Adding more register types made 1<<REG_TYPE_MAX exceed the range
-	of the type, but we don't actually need/want 1<<REG_TYPE_MAX.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Try to avoid inappropriate default errors
-	After parsing a '{' and the first register, parse_typed_reg would
-	report errors in subsequent registers in the same way as for the
-	first register.  It used set_default_error, which reports errors
-	of the form "operand N must be X".
-
-	The problem is that if there are multiple opcode entries for the
-	same mnemonic, there could be several matches that lead to a
-	default error.  There's no guarantee that the default error for
-	the register list is the one that will be chosen.
-
-	To take an example from the testsuite:
-
-	    ext z0.b,{z31.b,z32.b},#0
-
-	gave:
-
-	    operand 2 must be an SVE vector register
-
-	with the error being reported against the single-vector version
-	of ext, even though the operand is clearly a list.
-
-	This patch uses set_fatal_syntax_error to bump the priority of the
-	error once we're sure that the operand is a list of the right type.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Improve errors for malformed register lists
-	parse_typed_reg is used for parsing both bare registers and
-	registers that occur in lists.  If it doesn't see a register,
-	or sees an unexpected kind of register, it queues a default
-	error to report the problem.  These default errors have the form
-	"operand N must be an X", where X comes from the operand table.
-
-	If there are multiple opcode entries that report default errors,
-	GAS tries to pick the most appropriate one, using the opcode
-	table order as a tiebreaker.  But this can lead to cases where
-	a syntax error in a register list is reported against an opcode
-	that doesn't accept register lists.  For example, the unlikely
-	error:
-
-	  ext z0.b,{,},#0
-
-	is reported as:
-
-	  operand 2 must be an SVE vector register -- `ext z0.b,{,},#0'
-
-	even though operand 2 can be a register list.
-
-	If we've parsed the opening '{' of a register list, and then see
-	something that isn't remotely register-like, it seems better to
-	report that directly as a syntax error, rather than rely on the
-	default error.  The operand won't be a valid list of anything,
-	so there's no need to pick a specific Y in "operand N must be
-	a list of Y".
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Tweak parsing of integer & FP registers
-	Integer registers were parsed indirectly through
-	aarch64_reg_parse_32_64 (and thus aarch64_addr_reg_parse) rather
-	than directly through parse_reg.  This was because we need the
-	qualifier associated with the register, and the logic to calculate
-	that was buried in aarch64_addr_reg_parse.
-
-	The code that parses FP registers had the same need, but it
-	open-coded the calculation of the qualifier.
-
-	This patch tries to handle both cases in the same way.  It is
-	needed by a later patch that tries to improve the register-related
-	diagnostics.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Tweak errors for base & offset registers
-	parse_address_main currently uses get_reg_expected_msg to
-	report invalid base and offset registers, but the disadvantage
-	of doing that is that it isn't immediately clear which register
-	is wrong (the base or the offset).
-
-	A later patch moves away from using get_reg_expected_msg for failed
-	type checks, but doing that here didn't seem like the best approach.
-	The patch tries to use more tailored messages instead.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Tweak error for missing immediate offset
-	This patch tweaks the error message that is printed when
-	a ZA-style index is missing the immediate offset.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Move w12-w15 range check to libopcodes
-	In SME, the vector select register had to be in the range
-	w12-w15, so it made sense to enforce that during parsing.
-	However, SME2 adds instructions for which the range is
-	w8-w11 instead.
-
-	This patch therefore moves the range check from the parsing
-	stage to the constraint-checking stage.
-
-	Also, the previous error used a capitalised range W12-W15,
-	whereas other register range errors used lowercase ranges
-	like p0-p7.  A quick internal poll showed a preference for
-	the lowercase form, so the patch uses that.
-
-	The patch uses "selection register" rather than "vector
-	select register" so that the terminology extends more
-	naturally to PSEL.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Commonise index parsing
-	Just a minor clean-up to factor out the index parsing, partly to
-	ensure that the error handling remains consistent.  No behavioural
-	change intended.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Consolidate ZA slice parsing
-	Now that parse_typed_reg checks the range of tile register numbers
-	and libopcodes checks the range of vector select offsets, there's
-	very little difference between the parsing of ZA tile indices,
-	ZA array indices, and PSEL indices.  The main one is that ZA
-	array indices don't currently allow "za" to be qualified,
-	but we need to remove that restriction for SME2.
-
-	This patch therefore consolidates all three parsers into a single
-	routine, parameterised by the type of register that they expect.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Move ZA range checks to aarch64-opc.c
-	This patch moves the range checks on ZA vector select offsets from
-	gas to libopcodes.  Doing the checks there means that the error
-	messages contain the expected range.  It also fits in better
-	with the error severity scheme, which becomes important later.
-	(This is because out-of-range indices are treated as more severe than
-	syntax errors, on the basis that parsing must have succeeded if we get
-	to the point of checking the completed opcode.)
-
-	The patch also adds a new check_za_access function for checking
-	ZA accesses.  That's a bit over the top for one offset check, but the
-	function becomes more complex with later patches.
-
-	sme-9-illegal.s checked for an invalid .q suffix using:
-
-	  psel p1, p15, p3.q[w15]
-
-	but this is doubly invalid because it misses the immediate part
-	of the index.  The patch keeps that test but adds another with
-	a zero index, so that .q is the only thing wrong.
-
-	The aarch64-tbl.h change includes neatening up the backslash
-	positions.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Pass aarch64_indexed_za to parsers
-	ZA indices have more parts than most operands, so passing these
-	parts around individually is more awkward than for other operand
-	types.  Things aren't too bad at the moment, but SME2 adds two
-	further pieces: an offset range and a vector group size.
-
-	This patch therefore replaces arguments for the individual pieces
-	with a single argument for the index as a whole.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Make indexed_za use 64-bit immediates
-	A later patch moves the range checking for ZA vector select
-	offsets from gas to libopcodes.  That in turn requires the
-	immediate field to be big enough to support all parsed values.
-
-	This shouldn't be a particularly size-sensitive structure,
-	so there should be no memory problems with doing this.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Rename za_tile_vector to za_index
-	za_tile_vector is also used for indexing ZA as a whole, rather than
-	just for indexing tiles.  The former is more common than the latter
-	in SME2, so this patch generalises the name to "indexed_za".
-
-	The patch also names the associated structure, so that later patches
-	can reuse it during parsing.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Treat ZA as a register
-	We already treat the ZA tiles ZA0-ZA15 as registers.  This patch
-	does the same for ZA itself.  parse_sme_zero_mask can then parse
-	ZA tiles and ZA in the same way, through parsed_type_reg.
-
-	One important effect of going through parsed_type_reg (in general)
-	is that it allows ZA to take qualifiers.  This is necessary for many
-	SME2 instructions.
-
-	However, to support existing unqualified uses of ZA, parse_reg_with_qual
-	needs to treat the qualiier as optional.  Hopefully the net effect is
-	to give better error messages, since now that SME2 makes "za.<T>"
-	valid in some contexts, it might be natural to use it (incorrectly)
-	in ZERO too.
-
-	While there, the patch also tweaks the error messages for invalid
-	ZA tiles, to try to make some cases more specific.
-
-	For now, parse_sme_za_array just uses parse_reg, rather than
-	parse_typed_reg/parse_reg_with_qual.  A later patch consolidates
-	the parsing further.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Consolidate ZA tile range checks
-	Now that all parsing of ZA tile names goes through parse_typed_reg,
-	we can check there for out-of-range tile numbers.  The other check
-	performed by parse_sme_zada_operand was to reject .q, but that can
-	now be done via F_STRICT instead.  (.q tiles are valid in other
-	contexts, so they shouldn't be rejected in parse_typed_reg.)
-
-	aarch64: Reuse parse_typed_reg for ZA tiles
-	This patch reuses the general parse_typed_reg for ZA tiles.
-	This involves adding a way of suppressing the usual treatment
-	of register indices, since ZA indices look very different from
-	Advanced SIMD and SVE vector indices.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Rework parse_typed_reg interface
-	parse_typed_reg returned a register number and passed the
-	register type back using a pointer parameter.  It seems simpler
-	to return the register entry instead, since that has both pieces
-	of information in one place.
-
-	The patch also replaces the boolean in_reg_list parameter with
-	a mask of flags.  This hopefully makes calls easier to read
-	(more self-documenting than "true" or "false"), but more
-	importantly, it allows a later patch to add a second flag.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Move vectype_to_qualifier further up
-	This patch just moves vectype_to_qualifier further up, so that
-	a later patch can call it at an earlier point in the file.
-	No behavioural change intended.
-
-	aarch64: Add REG_TYPE_ZATHV
-	This patch adds a multi-register type that includes both REG_TYPE_ZATH
-	and REG_TYPE_ZATV.  This slightly simplifies the existing code, but the
-	main purpose is to enable later patches.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Rename REG_TYPE_ZA* to REG_TYPE_ZAT*
-	The ZA tile registers were called REG_TYPE_ZA, REG_TYPE_ZAH and
-	REG_TYPE_ZAV.  However, a later patch wants to make plain "za"
-	a register type too, and REG_TYPE_ZA is the obvious name for that.
-
-	This patch therefore adds "T" (tile) to the existing names.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Use aarch64_operand_error more widely
-	GAS's aarch64_instruction had its own cut-down error record,
-	but it's better for later patches if it reuses the binutils-wide
-	aarch64_operand_error instead.  The main difference is that
-	aarch64_operand_error can store arguments to the error while
-	aarch64_instruction couldn't.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Make SME instructions use F_STRICT
-	This patch makes all SME instructions use F_STRICT, so that qualifiers
-	have to be provided explicitly rather than being inferred from other
-	operands.  The main change is to move the qualifier setting from the
-	operand-level decoders to the opcode level.
-
-	This is one step towards consolidating the ZA parsing code and
-	extending it to handle SME2.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Fix SVE2 register/immediate distinction
-	GAS refuses to interpret register names like x0 as unadorned
-	immediates, due to the obvious potential for confusion with
-	register operands.  (An explicit #x0 is OK.)
-
-	For compatibility reasons, we can't extend the set of registers
-	that GAS rejects for existing instructions.  For example:
-
-	   mov x0, z0
-
-	was valid code before SVE was added, so it needs to stay valid
-	code even when SVE is enabled.  But we can make GAS reject newer
-	registers in newer instructions.  The SVE instruction:
-
-	   and z0.s, z0.s, z0.h
-
-	is therefore invalid, rather than z0.h being an immediate.
-
-	This patch extends the SVE behaviour to SVE2.  The old call
-	to AARCH64_CPU_HAS_FEATURE was technically the wrong way around,
-	although it didn't matter in practice for base SVE instructions
-	since their avariants only set SVE.
-
-2023-03-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Restrict range of PRFM opcodes
-	In the register-index forms of PRFM, the unallocated prefetch opcodes
-	24-31 have been reused for the encoding of the new RPRFM instruction.
-	The PRFM opcode space is now capped at 23 for these forms.  The other
-	forms of PRFM are unaffected.
-
-	aarch64: Fix PSEL opcode mask
-	The opcode mask for PSEL was missing some bits, which meant
-	that some upcoming SME2 opcodes would be misinterpreted as PSELs.
-
-	aarch64: Add sme-i16i64 and sme-f64f64 aliases
-	Most extension flags are named after the associated architectural
-	FEAT_* flags, but sme-i64 and sme-f64 were exceptions.  This patch
-	adds sme-i16i64 and sme-f64f64 aliases, but keeps the old names too
-	for compatibility.
-
-2023-03-30  Nick Clifton  <nickc@redhat.com>
-
-	Fix an illegal memory access triggered by parsing corrupt DWARF info.
-	  PR 30284
-	  * dwarf.c (read_and_display_attr_value): Detect and ignore negative base values.
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: Add new gdb.unwinder.FrameId class
-	When writing an unwinder it is necessary to create a new class to act
-	as a frame-id.  This new class is almost certainly just going to set a
-	'sp' and 'pc' attribute within the instance.
-
-	This commit adds a little helper class gdb.unwinder.FrameId that does
-	this job.  Users can make use of this to avoid having to write out
-	standard boilerplate code any time they write an unwinder.
-
-	Of course, if the user wants their FrameId class to be more
-	complicated in some way, then they can still write their own class,
-	just like they could before.
-
-	I've simplified the example code in the documentation to now use the
-	new helper class, and I've also made use of this helper within the
-	testsuite.
-
-	Any existing user code will continue to work just as it did before
-	after this change.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: Allow gdb.UnwindInfo to be created with non gdb.Value args
-	Currently when creating a gdb.UnwindInfo object a user must call
-	gdb.PendingFrame.create_unwind_info and pass a frame-id object.
-
-	The frame-id object should have at least a 'sp' attribute, and
-	probably a 'pc' attribute too (it can also, in some cases have a
-	'special' attribute).
-
-	Currently all of these frame-id attributes need to be gdb.Value
-	objects, but the only reason for that requirement is that we have some
-	code in py-unwind.c that only handles gdb.Value objects.
-
-	If instead we switch to using get_addr_from_python in py-utils.c then
-	we will support both gdb.Value objects and also raw numbers, which
-	might make things simpler in some cases.
-
-	So, I started rewriting pyuw_object_attribute_to_pointer (in
-	py-unwind.c) to use get_addr_from_python.  However, while looking at
-	the code I noticed a problem.
-
-	The pyuw_object_attribute_to_pointer function returns a boolean flag,
-	if everything goes OK we return true, but we return false in two
-	cases, (1) when the attribute is not present, which might be
-	acceptable, or might be an error, and (2) when we get an error trying
-	to extract the attribute value, in which case a Python error will have
-	been set.
-
-	Now in pending_framepy_create_unwind_info we have this code:
-
-	  if (!pyuw_object_attribute_to_pointer (pyo_frame_id, "sp", &sp))
-	    {
-	      PyErr_SetString (PyExc_ValueError,
-			       _("frame_id should have 'sp' attribute."));
-	      return NULL;
-	    }
-
-	Notice how we always set an error.  This will override any error that
-	is already set.
-
-	So, if you create a frame-id object that has an 'sp' attribute, but
-	the attribute is not a gdb.Value, then currently we fail to extract
-	the attribute value (it's not a gdb.Value) and set this error in
-	pyuw_object_attribute_to_pointer:
-
-	  rc = pyuw_value_obj_to_pointer (pyo_value.get (), addr);
-	  if (!rc)
-	    PyErr_Format (
-	        PyExc_ValueError,
-	        _("The value of the '%s' attribute is not a pointer."),
-	        attr_name);
-
-	Then we return to pending_framepy_create_unwind_info and immediately
-	override this error with the error about 'sp' being missing.
-
-	This all feels very confused.
-
-	Here's my proposed solution: pyuw_object_attribute_to_pointer will now
-	return a tri-state enum, with states OK, MISSING, or ERROR.  The
-	meanings of these states are:
-
-	  OK - Attribute exists and was extracted fine,
-
-	  MISSING - Attribute doesn't exist, no Python error was set.
-
-	  ERROR - Attribute does exist, but there was an error while
-	     extracting it, a Python error was set.
-
-	We need to update pending_framepy_create_unwind_info, the only user of
-	pyuw_object_attribute_to_pointer, but now I think things are much
-	clearer.  Errors from lower levels are not blindly overridden with the
-	generic meaningless error message, but we still get the "missing 'sp'
-	attribute" error when appropriate.
-
-	This change also includes the switch to get_addr_from_python which was
-	what started this whole journey.
-
-	For well behaving user code there should be no visible changes after
-	this commit.
-
-	For user code that hits an error, hopefully the new errors should be
-	more helpful in figuring out what's gone wrong.
-
-	Additionally, users can now use integers for the 'sp' and 'pc'
-	attributes in their frame-id objects if that is useful.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: have value_as_address call unpack_pointer
-	While refactoring some other code in gdb/python/* I wanted to merge
-	two code paths.  One path calls value_as_address, while the other
-	calls unpack_pointer.
-
-	I suspect calling value_as_address is the correct choice, but, while
-	examining the code I noticed that value_as_address calls unpack_long
-	rather than unpack_pointer.
-
-	Under the hood, unpack_pointer does just call unpack_long so there's
-	no real difference here, but it feels like value_as_address should
-	call unpack_pointer.
-
-	I've updated the code to use unpack_pointer, and changed a related
-	comment to say that we call unpack_pointer.  I've also adjusted the
-	header comment on value_as_address.  The existing header refers to
-	some code that is now commented out.
-
-	Rather than trying to describe the whole algorithm of
-	value_as_address, which is already well commented within the function,
-	I've just trimmed the comment on value_as_address to be a brief
-	summary of what the function does.
-
-	There should be no user visible changes after this commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: remove Py_TPFLAGS_BASETYPE from gdb.UnwindInfo
-	It is not currently possible to directly create gdb.UnwindInfo
-	instances, they need to be created by calling
-	gdb.PendingFrame.create_unwind_info so that the newly created
-	UnwindInfo can be linked to the pending frame.
-
-	As such there's no tp_init method defined for UnwindInfo.
-
-	A consequence of all this is that it doesn't really make sense to
-	allow sub-classing of gdb.UnwindInfo.  Any sub-class can't call the
-	parents __init__ method to correctly link up the PendingFrame
-	object (there is no parent __init__ method).  And any instances that
-	sub-classes UnwindInfo but doesn't call the parent __init__ is going
-	to be invalid for use in GDB.
-
-	This commit removes the Py_TPFLAGS_BASETYPE flag from the UnwindInfo
-	class, which prevents the class being sub-classed.  Then I've added a
-	test to check that this is indeed prevented.
-
-	Any functional user code will not have any issues with this change.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add __repr__ for PendingFrame and UnwindInfo
-	Having a useful __repr__ method can make debugging Python code that
-	little bit easier.  This commit adds __repr__ for gdb.PendingFrame and
-	gdb.UnwindInfo classes, along with some tests.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add some additional methods to gdb.PendingFrame
-	The gdb.Frame class has far more methods than gdb.PendingFrame.  Given
-	that a PendingFrame hasn't yet been claimed by an unwinder, there is a
-	limit to which methods we can add to it, but many of the methods that
-	the Frame class has, the PendingFrame class could also support.
-
-	In this commit I've added those methods to PendingFrame that I believe
-	are safe.
-
-	In terms of implementation: if I was starting from scratch then I
-	would implement many of these (or most of these) as attributes rather
-	than methods.  However, given both Frame and PendingFrame are just
-	different representation of a frame, I think there is value in keeping
-	the interface for the two classes the same.  For this reason
-	everything here is a method -- that's what the Frame class does.
-
-	The new methods I've added are:
-
-	  - gdb.PendingFrame.is_valid: Return True if the pending frame
-	    object is valid.
-
-	  - gdb.PendingFrame.name: Return the name for the frame's function,
-	    or None.
-
-	  - gdb.PendingFrame.pc: Return the $pc register value for this
-	    frame.
-
-	  - gdb.PendingFrame.language: Return a string containing the
-	    language for this frame, or None.
-
-	  - gdb.PendingFrame.find_sal: Return a gdb.Symtab_and_line object
-	    for the current location within the pending frame, or None.
-
-	  - gdb.PendingFrame.block: Return a gdb.Block for the current
-	    pending frame, or None.
-
-	  - gdb.PendingFrame.function: Return a gdb.Symbol for the current
-	    pending frame, or None.
-
-	In every case I've just copied the implementation over from gdb.Frame
-	and cleaned the code slightly e.g. NULL to nullptr.  Additionally each
-	function required a small update to reflect the PendingFrame type, but
-	that's pretty minor.
-
-	There are tests for all the new methods.
-
-	For more extensive testing, I added the following code to the file
-	gdb/python/lib/command/unwinders.py:
-
-	  from gdb.unwinder import Unwinder
-
-	  class TestUnwinder(Unwinder):
-	      def __init__(self):
-	          super().__init__("XXX_TestUnwinder_XXX")
-
-	      def __call__(self,pending_frame):
-	          lang = pending_frame.language()
-	          try:
-	              block = pending_frame.block()
-	              assert isinstance(block, gdb.Block)
-	          except RuntimeError as rte:
-	              assert str(rte) == "Cannot locate block for frame."
-	          function = pending_frame.function()
-	          arch = pending_frame.architecture()
-	          assert arch is None or isinstance(arch, gdb.Architecture)
-	          name = pending_frame.name()
-	          assert name is None or isinstance(name, str)
-	          valid = pending_frame.is_valid()
-	          pc = pending_frame.pc()
-	          sal = pending_frame.find_sal()
-	          assert sal is None or isinstance(sal, gdb.Symtab_and_line)
-	          return None
-
-	  gdb.unwinder.register_unwinder(None, TestUnwinder())
-
-	This registers a global unwinder that calls each of the new
-	PendingFrame methods and checks the result is of an acceptable type.
-	The unwinder never claims any frames though, so shouldn't change how
-	GDB actually behaves.
-
-	I then ran the testsuite.  There was only a single regression, a test
-	that uses 'disable unwinder' and expects a single unwinder to be
-	disabled -- the extra unwinder is now disabled too, which changes the
-	test output.  So I'm reasonably confident that the new methods are not
-	going to crash GDB.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add PENDING_FRAMEPY_REQUIRE_VALID macro in py-unwind.c
-	This commit copies the pattern that is present in many other py-*.c
-	files: having a single macro to check that the Python object is still
-	valid.
-
-	This cleans up the code a little throughout the py-unwind.c file.
-
-	Some of the exception messages will change slightly with this commit,
-	though the type of the exceptions is still ValueError in all cases.
-
-	I started writing some tests for this change and immediately ran into
-	a problem: GDB would crash.  It turns out that the PendingFrame
-	objects are not being marked as invalid!
-
-	In pyuw_sniffer where the pending frames are created, we make use of a
-	scoped_restore to invalidate the pending frame objects.  However, this
-	only restores the pending_frame_object::frame_info field to its
-	previous value -- and it turns out we never actually give this field
-	an initial value, it's left undefined.
-
-	So, when the scoped_restore (called invalidate_frame) performs its
-	cleanup, it actually restores the frame_info field to an undefined
-	value.  If this undefined value is not nullptr then any future
-	accesses to the PendingFrame object result in undefined behaviour and
-	most likely, a crash.
-
-	As part of this commit I now initialize the frame_info field, which
-	ensures all the new tests now pass.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: remove unneeded nullptr check in frapy_block
-	Spotted a redundant nullptr check in python/py-frame.c in the function
-	frapy_block.  This was introduced in commit 57126e4a45e3000e when we
-	expanded an earlier check in return early if the pointer in question
-	is nullptr.
-
-	There should be no user visible changes after this commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: make the gdb.unwinder.Unwinder class more robust
-	This commit makes a few related changes to the gdb.unwinder.Unwinder
-	class attributes:
-
-	  1. The 'name' attribute is now a read-only attribute.  This prevents
-	  user code from changing the name after registering the unwinder.  It
-	  seems very unlikely that any user is actually trying to do this in
-	  the wild, so I'm not very worried that this will upset anyone,
-
-	  2. We now validate that the name is a string in the
-	  Unwinder.__init__ method, and throw an error if this is not the
-	  case.  Hopefully nobody was doing this in the wild.  This should
-	  make it easier to ensure the 'info unwinder' command shows sane
-	  output (how to display a non-string name for an unwinder?),
-
-	  3. The 'enabled' attribute is now implemented with a getter and
-	  setter.  In the setter we ensure that the new value is a boolean,
-	  but the real important change is that we call
-	  'gdb.invalidate_cached_frames()'.  This means that the backtrace
-	  will be updated if a user manually disables an unwinder (rather than
-	  calling the 'disable unwinder' command).  It is not unreasonable to
-	  think that a user might register multiple unwinders (relating to
-	  some project) and have one command that disables/enables all the
-	  related unwinders.  This command might operate by poking the enabled
-	  attribute of each unwinder object directly, after this commit, this
-	  would now work correctly.
-
-	There's tests for all the changes, and lots of documentation updates
-	that both cover the new changes, but also further improve (I think)
-	the general documentation for GDB's Unwinder API.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-30  Nick Clifton  <nickc@redhat.com>
-
-	Fix an illegal memory access when an accessing a zer0-lengthverdef table.
-	  PR 30285
-	  * elf.c (_bfd_elf_slurp_version_tables): Fail if no version definitions are allocated.
-
-2023-03-30  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: Add version symbols to libgprofng.ver
-	gprofng/ChangeLog
-	2023-03-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30089
-		* libcollector/libgprofng.ver: Add version symbols.
-		* libcollector/synctrace.c: Fix typo for pthread_mutex_lock.
-
-2023-03-30  Alan Modra  <amodra@gmail.com>
-
-	Setting sh_link for SHT_REL/SHT_RELA
-	It's wrong to have an alloc reloc section trying to use a non-alloc
-	symbol table.
-
-		* elf.c (assign_section_numbers <SHT_REL, SHT_RELA>): Correct
-		comment.  Always set sh_link to .dynsym for alloc reloc
-		sections and to .symtab for non-alloc.
-
-2023-03-30  Alan Modra  <amodra@gmail.com>
-
-	Fix memory leak in bfd_get_debug_link_info_1
-		* opncls.c (bfd_get_alt_debug_link_info): Don't bother freeing
-		after bfd_malloc_and_get_section failure.
-		(get_build_id): Likewise.
-		(bfd_get_debug_link_info_1): Likewise.  Free section contents
-		when crc not present.
-		* section.c (bfd_malloc_and_get_section): Document that the
-		buffer is NULL on error return.
-
-	Tidy leaked objcopy memory
-		* objcopy.c (delete_symbol_htabs): Also free symbols.
-		(write_debugging_info): Free strings and syms once written.
-		* wrstabs.c (write_stabs_in_sections_debugging_info): memset
-		entire info struct.  Free hash tables before returning.  Free
-		syms on error return.
-
-	Tidy memory on addr2line failures
-		* addr2line.c (process_file): Close bfd on error paths.
-
-2023-03-30  Roland McGrath  <mcgrathr@google.com>
-
-	Fix typo in ld manual --enable-non-contiguous-regions example
-
-2023-03-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-30  Palmer Dabbelt  <palmer@rivosinc.com>
-
-	RISC-V: PR28789, Reject R_RISCV_PCREL relocations with ABS symbol in PIC/PIE.
-	The non-preemptible SHN_ABS symbol with a pc-relative relocation should be
-	disallowed when generating shared object (pic and pie).  Generally, the
-	following cases, which refer to pr25749, will cause a symbol be
-	non-preemptible,
-
-	* -pie, or -shared with -symbolic
-	* STV_HIDDEN, STV_INTERNAL, STV_PROTECTED
-	* Have dynamic symbol table, but without the symbol
-	* VER_NDX_LOCAL
-
-	However, PCREL_HI20/LO12 relocs are always bind locally when generating
-	shared object, so not only the non-preemptible absolute symbol need to
-	be disallowed, all absolute symbol references need but except that they
-	are defined in linker script.  If we also disallow the absolute symbol
-	in linker script, then the glibc-linux toolchain build failed, so regard
-	them as pc-relative symbols, just like what x86 did.
-
-	Maybe we should add this check for all pc-relative relocations, rather
-	than just handle in R_RISCV_PCREL relocs.  Ideally, since the value of
-	SHN_ABS symbol is a constant, only S - A relocations should be allowed
-	in the shared object, so only BFD_RELOC_8/16/32/64 are allowed, which
-	means R_RISCV_32/R_RISCV_64.
-
-	bfd/
-	    PR 28789
-	    * elfnn-riscv.c (riscv_elf_check_relocs): The absolute symbol cannot be
-	    referneced with pc-relative relocation when generating shared object.
-	ld/
-	    PR 28789
-	    * ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
-	    * ld/testsuite/ld-riscv-elf/pcrel-reloc*: New testcases.
-
-2023-03-30  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Clarify link behaviors of R_RISCV_32/64 relocations with ABS symbol.
-	There are two improvements, which are all referenced to aarch64,
-
-	* R_RISCV_32 with non ABS symbol cannot be used under RV64 when making
-	  shard objects.
-
-	* Don't need dynamic relocation for R_RISCV_32/64 under RV32/RV64 when
-	  making shared objects, if the referenced symbol is local ABS symbol.
-
-	However, considering this link,
-	https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/341
-
-	Seems like we should makes all R_RISCV_32/64 relocs with ABS symbol
-	that don't need any dynamic relocations when making the shared objects.
-	But anyway, I just sync the current behavior as aarch64 ld, in case
-	there are any unexpected behaviors happen.
-
-	Passed the gcc/binutils regressions in riscv-gnu-toolchain.
-
-	bfd/
-	    * elfnn-riscv.c (riscv_elf_check_relocs): Only allow R_RISCV_32 with ABS
-	    symbol under RV64.
-	    (riscv_elf_relocate_section): R_RISCV_32/64 with local ABS symbol under
-	    RV32/RV64 doesn't need any dynamic relocation when making shared objects.
-	    I just make the implementations similar to other targets, so that will be
-	    more easy to mainatain.
-	ld/
-	    * testsuite/ld-riscv-elf/data-reloc*: New testcases.
-	    * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Added new data-reloc* testcases,
-	    and need to make ifunc-seperate* testcases work for rv32.
-	    * testsuite/ld-riscv-elf/ifunc-seperate-caller-nonplt.s: Likewise.
-	    * testsuite/ld-riscv-elf/ifunc-seperate-caller-plt.s: Likewise.
-
-2023-03-30  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Extract the ld code which are too complicated, and may be reused.
-	These types of codes are different for each target, I am not sure what are the
-	best for RISC-V, so extract them out may be more easy to compare what's the
-	difference.
-
-	bfd/
-	    * elfnn-riscv.c (RISCV_NEED_DYNAMIC_RELOC): New defined.  Extracted
-	    from riscv_elf_check_relocs, to see if dynamic reloc is needed for the
-	    specific relocation.
-	    (RISCV_GENERATE_DYNAMIC_RELOC): New defined.  Extracted from
-	    riscv_elf_relocate_section, to see if R_RISCV_32/64 need to generate
-	    dynamic relocation.
-	    (RISCV_COPY_INPUT_RELOC): New defined.  Extracted from
-	    riscv_elf_relocate_section, to see if R_RISCV_32/64 need to copy itslef
-	    tp output file.
-	    (RISCV_RESOLVED_LOCALLY): New defined.  Extracted from
-	    riscv_elf_relocate_section, to see if R_RISCV_GOT_HI20 can be resolved
-	    locally.
-
-2023-03-29  Tom Tromey  <tromey@adacore.com>
-
-	Use the correct frame when evaluating a dynamic property
-	The test case in this patch shows an unusual situation: an Ada array
-	has a dynamic bound, but the bound comes from a frame that's referred
-	to by the static link.  This frame is correctly found when evaluating
-	the array variable itself, but is lost when evaluating the array's
-	bounds.
-
-	This patch fixes the problem by passing this frame through to
-	value_at_lazy in the DWARF expression evaluator.
-
-2023-03-29  Tom Tromey  <tromey@adacore.com>
-
-	Pass a frame to value_at_lazy and value_from_contents_and_address
-	This patch adds a 'frame' parameter to value_at_lazy and ensures that
-	it is passed down to the call to resolve_dynamic_type.  This required
-	also adding a frame parameter to value_from_contents_and_address.
-
-	Nothing passes this parameter to value_at_lazy yet, so this patch
-	should have no visible effect.
-
-2023-03-29  Tom Tromey  <tromey@adacore.com>
-
-	Add frame parameter to resolve_dynamic_type
-	This adds a frame parameter to resolve_dynamic_type and arranges for
-	it to be passed through the call tree and, in particular, to all calls
-	to dwarf2_evaluate_property.
-
-	Nothing passes this parameter yet, so this patch should have no
-	visible effect.
-
-	A 'const frame_info_ptr *' is used here to avoid including frame.h
-	from gdbtypes.h.
-
-2023-03-29  Tom Tromey  <tromey@adacore.com>
-
-	Remove version_at_least
-	version_at_least is a less capable variant of version_compare, so this
-	patch removes it.
-
-	Rewrite version_compare and rust_at_least
-	This rewrites version_compare to allow the input lists to have
-	different lengths, then rewrites rust_at_least to use version_compare.
-
-	Introduce rust_at_least helper proc
-	This adds a 'rust_at_least' helper proc, for checking the version of
-	the Rust compiler in use.  It then changes various tests to use this
-	with 'require'.
-
-2023-03-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require gnatmake 11 for gdb.ada/verylong.exp
-	With test-case gdb.ada/verylong.exp and gnatmake 7.5.0 I run into:
-	...
-	compilation failed: gcc ... $src/gdb/testsuite/gdb.ada/verylong/prog.adb
-	prog.adb:16:11: warning: file name does not match unit name, should be "main.adb"
-	prog.adb:17:08: "Long_Long_Long_Integer" is undefined (more references follow)
-	gnatmake: "prog.adb" compilation error
-
-	FAIL: gdb.ada/verylong.exp: compilation prog.adb
-	...
-
-	AFAICT, support for Long_Long_Long_Integer was added in gcc 11.
-
-	Fix this by requiring gnatmake version 11 or higher in the test-case.
-
-	Tested on x86_64-linux.
-
-2023-03-29  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	doc: fix informations typo in gdb.texinfo
-	Co-Authored-By: Christina Schimpe <christina.schimpe@intel.com>
-
-2023-03-29  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb, infcmd: remove redundant ERROR_NO_INFERIOR in continue_command
-	The ERROR_NO_INFERIOR macro is already called at the beginning of the
-	function continue_command.  Since target/inferior are not switched in-between,
-	the second call to it is redundant.
-
-	Co-Authored-By: Christina Schimpe <christina.schimpe@intel.com>
-
-2023-03-29  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: move displaced_step_dump_bytes into gdbsupport (and rename)
-	It was pointed out during review of another patch that the function
-	displaced_step_dump_bytes really isn't specific to displaced stepping,
-	and should really get a more generic name and move into gdbsupport/.
-
-	This commit does just that.  The function is renamed to
-	bytes_to_string and is moved into gdbsupport/common-utils.{cc,h}.  The
-	function implementation doesn't really change. Much...
-
-	... I have updated the function to take an array view, which makes it
-	slightly easier to call in a couple of places where we already have a
-	gdb::bytes_vector.  I've then added an inline wrapper to convert a raw
-	pointer and length into an array view, which is used in places where
-	we don't easily have a gdb::bytes_vector (or similar).
-
-	Updated all users of displaced_step_dump_bytes.
-
-	There should be no user visible changes after this commit.
-
-	Finally, I ended up having to add an include of gdb_assert.h into
-	array-view.h.  When I include array-view.h into common-utils.h I ran
-	into build problems because array-view.h calls gdb_assert.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-29  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: more debug output for displaced stepping
-	While investigating a displaced stepping issue I wanted an easy way to
-	see what GDB thought the original instruction was, and what
-	instruction GDB replaced that with when performing the displaced step.
-
-	We do print out the address that is being stepped, so I can track down
-	the original instruction, I just need to go find the information
-	myself.
-
-	And we do print out the bytes of the new instruction, so I can figure
-	out what the replacement instruction was, but it's not really easy.
-
-	Also, the code that prints the bytes of the replacement instruction
-	only prints 4 bytes, which clearly isn't always going to be correct.
-
-	In this commit I remove the existing code that prints the bytes of the
-	replacement instruction, and add two new blocks of code to
-	displaced_step_prepare_throw.  This new code prints the original
-	instruction, and the replacement instruction.  In each case we print
-	both the bytes that make up the instruction and the completely
-	disassembled instruction.
-
-	Here's an example of what the output looks like on x86-64 (this is
-	with 'set debug displaced on').  The two interesting lines contain the
-	strings 'original insn' and 'replacement insn':
-
-	  (gdb) step
-	  [displaced] displaced_step_prepare_throw: displaced-stepping 2892655.2892655.0 now
-	  [displaced] displaced_step_prepare_throw: original insn 0x401030: ff 25 e2 2f 00 00	jmp    *0x2fe2(%rip)        # 0x404018 <puts@got.plt>
-	  [displaced] prepare: selected buffer at 0x401052
-	  [displaced] prepare: saved 0x401052: 1e fa 31 ed 49 89 d1 5e 48 89 e2 48 83 e4 f0 50
-	  [displaced] fixup_riprel: %rip-relative addressing used.
-	  [displaced] fixup_riprel: using temp reg 2, old value 0x7ffff7f8a578, new value 0x401036
-	  [displaced] amd64_displaced_step_copy_insn: copy 0x401030->0x401052: ff a1 e2 2f 00 00 68 00 00 00 00 e9 e0 ff ff ff
-	  [displaced] displaced_step_prepare_throw: prepared successfully thread=2892655.2892655.0, original_pc=0x401030, displaced_pc=0x401052
-	  [displaced] displaced_step_prepare_throw: replacement insn 0x401052: ff a1 e2 2f 00 00	jmp    *0x2fe2(%rcx)
-	  [displaced] finish: restored 2892655.2892655.0 0x401052
-	  [displaced] amd64_displaced_step_fixup: fixup (0x401030, 0x401052), insn = 0xff 0xa1 ...
-	  [displaced] amd64_displaced_step_fixup: restoring reg 2 to 0x7ffff7f8a578
-	  0x00007ffff7e402c0 in puts () from /lib64/libc.so.6
-	  (gdb)
-
-	One final note.  For many targets that support displaced stepping (in
-	fact all targets except ARM) the replacement instruction is always a
-	single instruction.  But on ARM the replacement could actually be a
-	series of instructions.
-
-	The debug code tries to handle this by disassembling the entire
-	displaced stepping buffer.  Obviously this might actually print more
-	than is necessary, but there's (currently) no easy way to know how
-	many instructions to disassemble; that knowledge is all locked in the
-	architecture specific code.  Still I don't think it really hurts, if
-	someone is looking at this debug then hopefully they known what to
-	expect.
-
-	Obviously we can imagine schemes where the architecture specific
-	displaced stepping code could communicate back how many bytes its
-	replacement sequence was, and then our debug print code could use this
-	to limit the disassembly.  But this seems like a lot of effort just to
-	save printing a few additional instructions in some debug output.
-
-	I'm not proposing to do anything about this issue for now.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/scm-symbol.exp for remote host
-	Fix test-case gdb.guile/scm-symbol.exp for remote host by making a regexp less
-	strict.
-
-	Likewise in gdb.guile/scm-symtab.exp.
-
-	Tested on x86_64-linux.
-
-2023-03-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix /gdb.guile/scm-parameter.exp for remote host
-	Fix test-case gdb.guile/scm-parameter.exp for remote host by taking into
-	account that gdb_reinitialize_dir has no effect for remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/scm-objfile-script.exp for remote host
-	Fix test-case gdb.guile/scm-objfile-script.exp using gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/scm-objfile-script.exp for remote host
-	Fix test-case gdb.guile/scm-objfile-script.exp using host_standard_output_file.
-
-	Tested on x86_64-linux.
-
-2023-03-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/scm-cmd.exp without readline
-	Fix test-case gdb.guile/scm-cmd.exp using readline_is_used.
-
-	Tested on x86_64-linux.
-
-2023-03-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/guile.exp for remote host
-	Fix test-case gdb.guile/guile.exp for remote host using gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-29  Alan Modra  <amodra@gmail.com>
-
-	Sanity check section size in bfd_init_section_compress_status
-	This function doesn't just initialise for compression, it actually
-	compresses.  This patch sanity checks section size before allocating
-	buffers for the uncompressed contents.
-
-		* compress.c (bfd_init_section_compress_status): Sanity check
-		section size.
-
-2023-03-29  Alan Modra  <amodra@gmail.com>
-
-	Re: Fix an aout memory leak
-	We have way too much duplicated code in bfd.  Apply dd3a3d0af9f6 and
-	920581c57e08 to pdp11.c.
-
-		* pdp11.c (bfd_free_cached_info): Free line_buf.  Return true
-		if tdata.aout_data is NULL.
-
-2023-03-29  Alan Modra  <amodra@gmail.com>
-
-	ld testsuite CFLAGS_FOR_TARGET
-	run_host_cmd adds $gcc_B_opt and $ld_L_opt to the command line if it
-	detects the program being run is a compiler.  Since the program being
-	run in lto.exp linking pr28138 is "sh", we need to add these by hand.
-	This isn't exactly as run_host_cmd does, as it lacks reordering of
-	any user -B option in $CC_FOR_TARGET, but it's better than ignoring
-	gcc_B_opt.  This fixes a mips64 testsuite fail.
-
-	ld_compile adds CFLAGS_FOR_TARGET and other flags as well, so there
-	is no need for the ld_compile command line to include
-	CFLAGS_FOR_TARGET.  Fixing this is just a tidy.
-
-		* testsuite/ld-plugin/lto.exp: Add gcc_B_opt, CFLAGS_FOR_TARGET
-		and $ld_L_opt to pr28138 link line.
-		* testsuite/lib/ld-lib.exp (run_ld_link_tests): Don't pass
-		unnecessary flags to ld_compile.
-		(run_ld_link_exec_tests, run_cc_link_tests): Likewise.
-
-2023-03-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-28  Tom Tromey  <tom@tromey.com>
-
-	Rename "raw" to "unrelocated"
-	Per an earlier discussion, this patch renames the existing "raw" APIs
-	to use the word "unrelocated" instead.
-
-	Use unrelocated_addr in minimal symbols
-	This changes minimal symbols to use unrelocated_addr.  I believe this
-	detected a latent bug in add_pe_forwarded_sym.
-
-	Use unrelocated_addr in psymbols
-	This changes psymbols themselves to use unrelocated_addr.  This
-	transform is largely mechanical.  I don't think it finds any bugs.
-
-	Use unrelocated_addr in partial symbol tables
-	This changes partial symbol tables to use unrelocated_addr for the
-	text_high and text_low members.  This revealed some latent bugs in
-	ctfread.c, which are fixed here.
-
-	Move definition of unrelocated_addr earlier
-	This moves the definition of unrelocated_addr a bit earlier in
-	symtab.h, so that it can be used elsewhere in the file.
-
-	Use function_view in gdb_bfd_lookup_symbol
-	This changes gdb_bfd_lookup_symbol to use a function_view.  This
-	simplifies the code a little bit.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.btrace/multi-inferior.exp for remote host
-	Fix test-case gdb.btrace/multi-inferior.exp for remote host using
-	gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.btrace/gcore.exp for remote host
-	Fix test-case gdb.btrace/gcore.exp for remote host using
-	host_standard_output.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.btrace/reconnect.exp for remote target
-	Fix test-case gdb.btrace/reconnect.exp for target board
-	remote-gdbserver-on-localhost using gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom Tromey  <tromey@adacore.com>
-
-	Put pretty-printers to_string output in varobj result
-	PR mi/11335 points out that an MI varobj will not display the result
-	of a pretty-printer's "to_string" method.  Instead, it always shows
-	"{...}".
-
-	This does not seem very useful, and there have been multiple
-	complaints about it over the years.  This patch changes varobj to emit
-	this string when possible, and updates the test suite.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11335
-
-2023-03-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: allow "require" callbacks to provide a reason
-	When an allow_* proc returns false, it can be a bit difficult what check
-	failed exactly, if the procedure does multiple checks.  To make
-	investigation easier, I propose to allow the "require" callbacks to be
-	able to return a list of two elements: the zero/non-zero value, and a
-	reason string.
-
-	Use the new feature in allow_hipcc_tests to demonstrate it (it's also
-	where I hit actually hit this inconvenience).  On my computer (where GDB
-	is built with amd-dbgapi support but where I don't have a suitable GPU
-	target), I get:
-
-	    UNSUPPORTED: gdb.rocm/simple.exp: require failed: allow_hipcc_tests (no suitable amdgpu targets found)
-
-	vs before:
-
-	    UNSUPPORTED: gdb.rocm/simple.exp: require failed: allow_hipcc_tests
-
-	Change-Id: Id1966535b87acfcbe9eac99f49dc1196398c6578
-	Approved-By: Tom de Vries <tdevries@suse.de>
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/server-kill-python.exp for remote host
-	Fix test-case gdb.server/server-kill-python.exp for remote host using
-	gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/sysroot.exp for remote host
-	Fix test-case gdb.server/sysroot.exp for remote host, by:
-	- using gdb_remote_download, and
-	- disabling the "local" scenario for remote host/target, unless
-	  remote host == remote target.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require non-remote host for gdb.server/multi-ui-errors.exp
-	Require non-remote host for test-case gdb.server/multi-ui-errors.exp, because
-	it uses "spawn -pty", which creates a pty on build, which gdb cannot use on
-	remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/solib-list.exp for remote host
-	Fix test-case gdb.server/solib-list.exp for remote host using
-	gdb_remote_download.
-
-	Likewise in another test-case.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/file-transfer.exp for remote host
-	Fix test-case gdb.server/file-transfer.exp for remote host using
-	gdb_remote_download and host_standard_output_file.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix local-remote-host-native.exp for gdb.server tests
-	When running test-case gdb.server/stop-reply-no-thread-multi.exp with
-	host+target board local-remote-host-native, I run into a time-out:
-	...
-	(gdb) PASS: gdb.server/stop-reply-no-thread-multi.exp: target-non-stop=off: \
-	  to_disable=: disconnect
-	builtin_spawn /usr/bin/ssh -t -l vries 127.0.0.1 gdbserver --once \
-	  localhost:2346 stop-reply-no-thread-multi^M
-	Process stop-reply-no-thread-multi created; pid = 32600^M
-	Listening on port 2346^M
-	set remote threads-packet off^M
-	FAIL: gdb.server/stop-reply-no-thread-multi.exp: target-non-stop=off: \
-	  to_disable=: set remote threads-packet off (timeout)
-	...
-
-	This is due to this line in ${board}_spawn:
-	...
-	    set board_info($board,fileid) $spawn_id
-	...
-
-	We have the following series of events:
-	- gdb is spawned, setting fileid
-	- a few gdb commands (set height etc) are send using fileid, arrive at gdb and
-	  are successful
-	- gdbserver is spawned, overwriting fileid
-	- the next gdb command is sent using fileid, so it's send
-	  to gdbserver instead of gdb, and we run into the timeout.
-
-	There is some notion of current gdb, tracked in both gdb_spawn_id and fileid
-	of the host board (see switch_gdb_spawn_id).  And because the host and target
-	board are the same, spawning something on the target overwrites the fileid on
-	host, and consequently the current gdb.
-
-	Fix this by only setting fileid when spawning gdb.
-
-	Tested on x86_64-linux.
-
-	Now gdb.server/*.exp passes for host+target board local-remote-host-native,
-	except for file-transfer.exp.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29734
-
-2023-03-28  Enze Li  <enze.li@hotmail.com>
-
-	gdb: use dynamic year in update-freebsd.sh
-	When running update-freebsd.sh on FreeBSD, I see the following
-	modification in freebsd.xml,
-
-	-<!-- Copyright (C) 2009-2023 Free Software Foundation, Inc.
-	+<!-- Copyright (C) 2009-2020 Free Software Foundation, Inc.
-
-	It means that each time, when we running the update-freebsd.sh on
-	FreeBSD, we have to correct the year of copyright manually. So fix this
-	issue by using dynamic year.
-
-	Tested by regenerating freebsd.xml on FreeBSD/amd64.
-
-	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/non-existing-program.exp with remote-gdbserver-on-localhost
-	With test-case gdb.server/non-existing-program.exp and native, I have reliably:
-	...
-	(gdb) builtin_spawn gdbserver stdio non-existing-program^M
-	stdin/stdout redirected^M
-	/bin/bash: line 0: exec: non-existing-program: not found^M
-	During startup program exited with code 127.^M
-	Exiting^M
-	PASS: gdb.server/non-existing-program.exp: gdbserver exits cleanly
-	...
-
-	But with target board remote-gdbserver-on-localhost I sometimes have:
-	...
-	(gdb) builtin_spawn /usr/bin/ssh -t -l remote-target localhost gdbserver \
-	  stdio non-existing-program^M
-	stdin/stdout redirected^M
-	/bin/bash: line 0: exec: non-existing-program: not found^M
-	During startup program exited with code 127.^M
-	Exiting^M
-	Connection to localhost closed.^M^M
-	PASS: gdb.server/non-existing-program.exp: gdbserver exits cleanly
-	...
-	and sometimes the exact same output, but a FAIL instead.
-
-	Fix this by replacing "Exiting\r\n$" with "Exiting\r\n" in the regexps.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Alan Modra  <amodra@gmail.com>
-
-	Avoid undefined behaviour in m68hc11 md_begin
-	Given p = A where p is a pointer to some type and A is an array of
-	that type, then the expression p - 1 + 1 evokes undefined behaviour
-	according to the C standard.
-
-	gcc-13 -fsanitize=address,undefined complains about this, but not
-	where the undefined behaviour actually occurs at tc-m68hc11.c:646.
-	Instead you get an error: "tc-m68hc11.c:708:20: runtime error: store
-	to address 0x62600000016c with insufficient space for an object of
-	type 'int'".  Which is a lie.  There most definitely is space there.
-	Oh well, diagnostics are sometimes hard to get right.  The UB is easy
-	to avoid.
-
-		PR 30279
-		* config/tc-m68hc11.c (md_begin): Avoid undefined pointer
-		decrement.  Remove unnecessary cast.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Allow gdb.rust/expr.exp without rust compiler
-	Proc allow_rust_tests returns 0 when there's no rust compiler, but that gives
-	the wrong answer for gdb.rust/expr.exp, which doesn't require it.
-
-	Fix this by using can_compile rust in the test-cases that need it, and just
-	returning 1 in allow_rust_tests.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add can_compile rust
-	If I deinstall the rust compiler, I get:
-	...
-	gdb compile failed, default_target_compile: Can't find rustc --color never.
-	UNTESTED: gdb.rust/watch.exp: failed to prepare
-	...
-
-	Fix this by adding can_compile rust, and using it in allow_rust_tests, such
-	that we have instead:
-	...
-	UNSUPPORTED: gdb.rust/watch.exp: require failed: allow_rust_tests
-	...
-
-	Since the rest of the code in allow_rust_tests is also about availability of
-	the rust compiler, move it to can_compile.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Unsupport gdb.rust for remote host
-	With test-case gdb.rust/watch.exp and remote host I run into:
-	...
-	Executing on host: gcc   watch.rs  -g  -lm   -o watch    (timeout = 300)
-	  ...
-	ld:watch.rs: file format not recognized; treating as linker script
-	ld:watch.rs:1: syntax error
-	  ...
-	UNTESTED: gdb.rust/watch.exp: failed to prepare
-	...
-
-	The problem is that find_rustc returns "" for remote host, so we fall back to gcc, which fails.
-
-	Fix this by returning 0 in allow_rust_tests for remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-28  Alan Modra  <amodra@gmail.com>
-
-	ubsan: elfnn-aarch64.c:4595:19: runtime error: load of value 190
-	which is not a valid value for type '_Bool'
-
-		* elfnn-aarch64.c (stub_hash_newfunc): Clear all fields past root.
-
-2023-03-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gnat_runtime_has_debug_info for remote host
-	Fix gnat_runtime_has_debug_info for remote host by checking for
-	allow_ada_tests.
-
-	This fixes an error for test-case gdb.testsuite/gdb-caching-proc.exp and
-	remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-27  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Use correct constant for target_waitstatus::sig.
-	Use GDB_SIGNAL_TRAP instead of SIGTRAP.  This is a no-op since the
-	value of SIGTRAP on FreeBSD matches the value of GDB_SIGNAL_TRAP, but
-	it is more correct.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-27  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Avoid a direct write to target_waitstatus::kind.
-	This is in #ifdef'd code for a workaround for FreeBSD versions older
-	than 11.1 which is why it wasn't caught earlier.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-27  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Add missing spaces.
-	No functional change, just style fixes.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-27  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: 30089 [display text] Invalid number of threads
-	The real problem is that libcollector doesn't interpose thread_create@GLIBC_2.34
-	We interpose a lot of libC functions (dlopen, fork, pthread_create, etc.).
-	Some of these functions have versions. For example, dlopen@GLIBC_2.34,
-	dlopen@GLIBC_2.17, dlopen@GLIBC_2.2.5, etc.
-	We have to interpose each of the functions because we don't know
-	which version of libC will be used during profiling.
-	Historically, we have used three versions of scripts (mapfile.aarch64-Linux,
-	mapfile.amd64-Linux, mapfile.intel-Linux).
-	Three are not needed. One is enough
-
-	The fixes below include:
-	 - merged all version symbols into one version script.
-	 - added new version symbols which are defined in latest versions of libC.
-	 - removed unused defines and duplicated code.
-	 - added the DCL_FUNC_VER macro to define the version symbols.
-
-	Tested on x86_64 and aarch64 (OL8/OL9). No regression.
-
-	gprofng/ChangeLog
-	2023-03-23  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30089
-		* libcollector/Makefile.am: Use libgprofng.ver instead of mapfile.*
-		* libcollector/configure.ac: Delete GPROFNG_VARIANT.
-		* src/collector_module.h: Move the SYMVER_ATTRIBUTE macro to collector.h
-		* libcollector/collector.h: Add macros (SYMVER_ATTRIBUTE, DCL_FUNC_VER).
-		Remove unused defines.
-		* libcollector/dispatcher.c: Interpose functions from libC.
-		Clean up the old code.
-		* libcollector/iotrace.c: Likewise.
-		* libcollector/libcol_util.c: Likewise.
-		* libcollector/linetrace.c: Likewise.
-		* libcollector/mmaptrace.c: Likewise.
-		* libcollector/synctrace.c: Likewise.
-		* libcollector/libgprofng.ver: New file.
-		* libcollector/Makefile.in: Rebuild.
-		* libcollector/configure: Rebuild.
-		* libcollector/mapfile.aarch64-Linux: Removed.
-		* libcollector/mapfile.amd64-Linux: Removed.
-		* libcollector/mapfile.intel-Linux: Removed.
-		* libcollector/mapfile.sparc-Linux: Removed.
-		* libcollector/mapfile.sparcv9-Linux: Removed.
-
-2023-03-27  Pedro Alves  <pedro@palves.net>
-
-	linux-nat: introduce pending_status_str
-	I noticed that some debug log output printing an lwp's pending status
-	wasn't considering lp->waitstatus.  This fixes it, by introducing a
-	new pending_status_str function.
-
-	Also fix the comment in gdb/linux-nat.h describing
-	lwp_info::waitstatus and details the description of lwp_info::status
-	while at it.
-
-	Change-Id: I66e5c7a363d30a925b093b195d72925ce5b6b980
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-03-27  Pedro Alves  <pedro@palves.net>
-
-	displaced step: pass down target_waitstatus instead of gdb_signal
-	This commit tweaks displaced_step_finish & friends to pass down a
-	target_waitstatus instead of a gdb_signal.  This is needed because a
-	patch later in the step-over-{thread-exit,clone] series will want to
-	make displaced_step_buffers::finish handle
-	TARGET_WAITKIND_THREAD_EXITED.  It also helps with the
-	TARGET_WAITKIND_THREAD_CLONED patch later in that same series.
-
-	It's also a bit more logical this way, as we don't have to pass down
-	signals when the thread didn't actually stop for a signal.  So we can
-	also think of it as a clean up.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27338
-	Change-Id: I4c5d338647b028071bc498c4e47063795a2db4c0
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.stabs/exclfwd.exp for remote host
-	Fix test-case gdb.stabs/exclfwd.exp for remote host using include_file.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.stabs/weird.exp for remote host
-	Fix test-case gdb.stabs/weird.exp for remote host by not using an absolute
-	destfile argument to gdb_remote_download, which doesn't work well with remotedir.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.gdb/unittest.exp for remote host
-	Fix test-case gdb.gdb/unittest.exp for remote host, by:
-	- disabling the completion tests if readline is not used, and
-	- not using with_gdb_cwd $dir for remote host (because it does
-	  not support changing to ".").
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Skip do_self_tests on remote host
-	In do_self_tests we try to find out the location of the gdb to debug, which
-	will then be copied and renamed to xgdb.
-
-	In principle, the host board specifies the location of GDB, on host.
-
-	With remote host, we could upload that gdb from host to build/target, but we
-	would miss the data directory (which is listed as the reason to skip
-	do_self_tests for remote target).
-
-	We could fix that by instead taking the gdb from build instead, but that
-	wouldn't work with installed testing.
-
-	It seems easier to just skip this on remote host.
-
-	It could be made to work for the "[is_remote host] && [is_remote target]
-	&& host == target" scenario (see board local-remote-host-native.exp), but
-	that doesn't seem worth the effort.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom Tromey  <tromey@adacore.com>
-
-	Change symbol::line to unsigned int
-	A user here at AdaCore noticed that, when debugging a certain program,
-	a stack frame reported line 34358, where it should have been line
-	99894.
-
-	After debugging a bit, I discovered:
-
-	(top) p (99894 & ~65536)
-	$60 = 34358
-
-	That line, symbol::line is too narrow.
-
-	This patch widens the member and changes all the uses that currently
-	use the narrower type.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-27  Tom Tromey  <tromey@adacore.com>
-
-	Fix 128-bit integer bug in Ada
-	While working on 128-bit integer support, I found one spot in Ada that
-	needed a fix as well.
-
-2023-03-27  Tom Tromey  <tromey@adacore.com>
-
-	Use gdb_gmp for scalar arithmetic
-	This changes gdb to use scalar arithmetic for expression evaluation.
-
-	I suspect this patch is not truly complete, as there may be code paths
-	that still don't correctly handle 128-bit integers.  However, many
-	things do work now.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30190
-
-2023-03-27  Tom Tromey  <tromey@adacore.com>
-
-	Use value_true in value_equal and value_less
-	Both value_equal and value_less use value_as_long to check a
-	presumably boolean result of calling value_binop.  However,
-	value_binop in this case actually returns an int as wide as its
-	arguments, and this approach can then fail for integers wider than
-	LONGEST.  Instead, rewrite this in a form that works for any size
-	integer.
-
-2023-03-27  Tom Tromey  <tromey@adacore.com>
-
-	Simplify binop_promote
-	binop_promote currently only handles integer sizes up to
-	builtin_long_long.  However, this may not handle 128-bit types.
-	Simplify this code, unify the C and non-C (but not OpenCL, as I don't
-	know how to test this) cases, and handle 128-bit integers as well.
-
-	This still doesn't exactly follow C or C++ rules.  This could be
-	implemented, but if so, I think it makes more sense as a C-specific
-	expression node.
-
-2023-03-27  Tom Tromey  <tromey@adacore.com>
-
-	Add value_as_mpz and value_from_mpz
-	This adds the two new functions, value_as_mpz and value_from_mpz,
-	useful for manipulation values via gdb_mpz.
-
-	Add truncation mode to gdb_mpz
-	This renames gdb_mpz::safe_export to export_bits, and adds a new flag
-	to export a truncated value.  This is needed by value arithmetic.
-
-	Avoid a copy in gdb_mpz::safe_export
-	Currently, gdb_mpz::safe_export will always make a copy of *this.
-	However, this copy isn't always needed.  This patch makes this code
-	slightly more efficient, by avoiding the copy when possible.
-
-	Add many operators to gdb_mpz
-	This adds many operator overloads and other useful methods to gdb_mpz.
-	This is preparation for using this class for scalar arithmetic in gdb
-	expression evaluation.
-
-2023-03-27  Tom Tromey  <tromey@adacore.com>
-
-	Populate seen_names hash in cooked_index_shard::do_finalize
-	Hannes pointed out that cooked_index_shard::do_finalize never
-	populates the seen_names hash table.  This patch adds the necessary
-	store.  This reduces memory use a little for "gdb gdb":
-
-	(before) Space used: 28909568 (+0 for this command)
-	(after)  Space used: 28884992 (+0 for this command)
-
-	What this means, btw, is that in gdb there are not many symbols that
-	are both mentioned in many CUs and that also require name
-	canonicalization.  It's possible this would differ in other programs.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.asm/asm-source.exp for remote host
-	Fix test-case gdb.asm/asm-source.exp for remote host using
-	host_standard_output_file and gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/imported-unit-bp-c.exp for remote host
-	Fix test-case gdb.dwarf2/imported-unit-bp-c.exp on remote by removing a
-	downloaded source file.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Unsupport gdb.dwarf2/gdb-add-index-symlink.exp for remote host
-	Declare test-case gdb.dwarf2/gdb-add-index-symlink.exp unsupported for remote
-	host, because the current implementation of gdb_ensure_index doesn't support it.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/gdb-index-cxx.exp for remote host
-	Fix test-case gdb.dwarf2/gdb-index-cxx.exp for remote host using
-	host_standard_output_file.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/enqueued-cu-base-addr.exp for remote host
-	Fix test-case gdb.dwarf2/enqueued-cu-base-addr.exp for remote host by using
-	$testfile instead $binfile.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/gdb-index.exp on remote host
-	Fix test-case gdb.dwarf2/gdb-index.exp on remote host using
-	gdb_remote_download and host_standard_output_file.
-
-	Also declare the test-case unsupported with readnow.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/per-bfd-sharing.exp for remote host
-	Fix test-case gdb.dwarf2/per-bfd-sharing.exp for remote host using
-	gdb_remote_download.
-
-	Likewise in a few other test-cases.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix quoting issue in gdb.base/index-cache.exp
-	For test-case gdb.base/index-cache.exp and remote host, this:
-	...
-	lassign [remote_exec host sh "-c \"rm $cache_dir/*.gdb-index\""] ret
-	...
-	gives us:
-	...
-	Executing on host: sh -c rm /tmp/tmp.m3L7m2AVkL/*.gdb-index    (timeout = 300)
-	builtin_spawn -ignore SIGHUP sh -c rm /tmp/tmp.m3L7m2AVkL/*.gdb-index^M
-	rm: missing operand^M
-	Try 'rm --help' for more information.^M
-	FAIL: gdb.dwarf2/per-bfd-sharing.exp: couldn't remove files in temporary cache dir
-	...
-
-	Fix this using quote_for_host.  Likewise in gdb.dwarf2/per-bfd-sharing.exp.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix quoting issues in gdb.dwarf2 for remote host
-	A few test-cases in gdb.dwarf2 use something like:
-	...
-	  additional_flags=\"-DFOO=BAR + 10\"
-	...
-	which doesn't work on remote host.
-
-	Fix this by introducing a new proc quote_for_host that also works for remote
-	host, such that we have:
-	...
-	  additional_flags=[quote_for_host -DFOO=BAR + 10]
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix have_index for remote host
-	Proc have_index is mostly used with $binfile, which gives problems
-	for remote host.
-
-	Fix this by using "file tail" on the proc argument.
-
-	Tested on x86_64-linux.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add missing include_file in gdb.dwarf/*.exp
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add test-case gdb.dlang/dlang-start-2.exp
-	For test-case gdb.dlang/dlang-start.exp, I run into:
-	...
-	UNSUPPORTED: gdb.dlang/dlang-start.exp: require failed: can_compile d
-	...
-
-	My distro has no support for gdc, but I'd like to have the test-case
-	running and passing, so let's rewrite the test-case using dwarf assembly
-	and add it alongside (rather than replacing it, because it's good to use
-	actual compiler output if we have it available).
-
-	My distro does have a package providing dmd, so let's mimic that debug info in
-	the dwarf assembly.  This gives us:
-	...
-	(gdb) start ^M
-	Temporary breakpoint 1 at 0x4004ab^M
-	Starting program: dlang-start-2 ^M
-	^M
-	Temporary breakpoint 1, 0x00000000004004ab in _Dmain ()^M
-	...
-
-	The "_Dmain ()" should probably be "D main", I've filed PR30276 about that.
-
-	Also add a "show language" to check that we automatically set the language
-	correctly to D.
-
-	Note that the dwarf assembly also describes main, otherwise the test-case
-	doesn't function as regression test for commit 47fe57c9281 ("Fix "start" for
-	D, Rust, etc").
-
-	Tested on x86_64-linux.
-
-2023-03-27  Alan Modra  <amodra@gmail.com>
-
-	Tidy tc-ppc.c XCOFF auxent access
-	It's better not to drill down into u.auxent but instead use a pointer
-	to the combined_entry_type.  That way the fix_scnlen field is
-	available, and no one looking at the codes needs to wonder whether
-	coffsymbol (symbol_get_bfdsym (sym))->native[i + 1] is the same
-	auxent.
-
-		* config/tc-ppc.c (ppc_frob_symbol): Tidy XCOFF auxent access.
-		(ppc_adjust_symtab): Likewise.
-
-2023-03-27  Alan Modra  <amodra@gmail.com>
-
-	Remove coff_pointerize_aux table_end param
-	I'm fairly certain the table_end checks are redundant now.  This
-	patch reverts commit 334d4ced42d3.
-
-		* coffgen.c (coff_pointerize_aux): Remove table_end parameter.
-		(coff_get_normalized_symtab): Adjust to suit.
-
-2023-03-27  Alan Modra  <amodra@gmail.com>
-
-	Use stdint types in coff internal_auxent
-	long is a poor choice of type to store 32-bit values read from
-	objects files by H_GET_32.  H_GET_32 doesn't sign extend so tests like
-	that in gdb/coffread.c for "negative" values won't work if long is
-	larger than 32 bits.  If long is 32-bit then code needs to be careful
-	to not accidentally index negative array elements.  (I'd rather see a
-	segfault on an unmapped 4G array index than silently reading bogus
-	data.)  long is also a poor choice for x_sect.s_scnlen, which might
-	have 64-bit values.  It's better to use unsigned exact width types to
-	avoid surprises.
-
-	I decided to change the field names too, which makes most of this
-	patch simply renaming.  Besides that there are a few places where
-	casts are no longer needed, and where printf format strings or tests
-	need adjusting.
-
-	include/
-		* coff/internal.h (union internal_auxent): Use unsigned stdint
-		types.  Rename l fields to u32 and u64 as appropriate.
-	bfd/
-		* coff-bfd.c,
-		* coff-rs6000.c,
-		* coff64-rs6000.c,
-		* coffcode.h,
-		* coffgen.c,
-		* cofflink.c,
-		* coffswap.h,
-		* peXXigen.c,
-		* xcofflink.c: Adjust to suit internal_auxent changes.
-	binutils/
-		* rdcoff.c: Adjust to suit internal_auxent changes.
-	gas/
-		* config/obj-coff.h,
-		* config/tc-ppc.c: Adjust to suit internal_auxent changes.
-	gdb/
-		* coffread.c,
-		* xcoffread.c: Adjust to suit internal_auxent changes.
-	ld/
-		* pe-dll.c: Adjust to suit internal_auxent changes.
-
-2023-03-27  Alan Modra  <amodra@gmail.com>
-
-	Set proper union selector tag
-		* coff-bfd.c (bfd_coff_get_auxent): After converting sym pointer
-		to an index, reset the union tag.
-
-2023-03-27  Alan Modra  <amodra@gmail.com>
-
-	coffgrok access of u.auxent.x_sym.x_tagndx.p
-	u.auxent.x_sym.x_tagndx is a union.  The p field is only valid when
-	fix_tag is set.  This patch fixes code in coffgrok.c that accessed the
-	field without first checking fix_tag, and removes a whole lot of code
-	validating bogus pointers to prevent segfaults (which no longer
-	happen, I checked the referenced PR 17512 testcases).  The patch also
-	documents this in the fix_tag comment, makes is_sym a bitfield, and
-	sorts the selecter fields a little.
-
-	bfd/
-		* coffcode.h (combined_entry_type): Make is_sym a bitfield.
-		Sort and comment on union selectors.
-		* libcoff.h: Regenerate.
-	binutils/
-		* coffgrok.c (do_type): Make aux a combined_entry_type.  Test
-		fix_tag before accessing u.auxent.x_sym.x_tagndx.p.  Remove
-		now unnecessary pointer bounds checking.
-
-2023-03-27  Alan Modra  <amodra@gmail.com>
-
-	Duplicate DW_AT_call_file leak
-	When given two or more DW_AT_call_file for a given function we
-	currently leak the concat memory.
-
-		* dwarf2.c (scan_unit_for_symbols): Don't leak on duplicate
-		DW_AT_call_file.
-
-2023-03-27  Alan Modra  <amodra@gmail.com>
-
-	XCOFF sanity check
-		* coffcode.h (coff_pointerize_aux_hook): Sanity check
-		x_csect.x_scnlen against raw_syment_count.
-
-2023-03-27  Nick Clifton  <nickc@redhat.com>
-
-	Add an option to the gold linker to put its version string into the .comment section.
-	  PR 30187
-	  * options.h (class General_options): Add enable-linker-version.
-	  * layout.cc (Layout::create_gold_note): If linker-version is enabled put the version string into the .comment section.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle missing gdc in gdb.dlang/dlang-start.exp
-	On openSUSE Leap 15.4, I get:
-	...
-	Running gdb.dlang/dlang-start.exp ...
-	gdb compile failed, default_target_compile: Can't find gdc.
-	UNTESTED: gdb.dlang/dlang-start.exp: failed to prepare
-	...
-
-	Fix this by:
-	- introducing a new proc can_compile, and
-	- requiring "can_compile d" in the test-case,
-	such that I have instead:
-	...
-	Running gdb.dlang/dlang-start.exp ...
-	UNSUPPORTED: gdb.dlang/dlang-start.exp: require failed: can_compile d
-	...
-
-	Tested on x86_64-linux, on openSUSE Leap 15.4 and Fedora 37.
-
-2023-03-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove superfluous pid in temp files
-	While trying to use gdb_can_simple_compile with a d program, I ran into:
-	...
-	/data/vries/gdb/f37/build/gdb/testsuite/temp/105856/can_compile_d-105856.d: \
-	  error: module 'can_compile_d-105856' has non-identifier characters in \
-	  filename, use module declaration instead
-	...
-
-	The d compiler has a problem with the filename can_compile_d-105856.d, which
-	contains the pid.  The pid is added by gdb_simple_compile:
-	...
-	    set obj [standard_temp_file $name-[pid].$postfix]
-	...
-	but it's unnecessary because standard_temp_file already uses the pid.
-
-	Fix this by removing "[pid]" in all calls to standard_temp_file.
-
-	Tested on x86_64-linux.
-
-2023-03-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Introduce allow_dap_tests
-	Simon pointed out that with gdb.dap/*.exp and target board
-	native-gdbserver, we run into problems.
-
-	I see for each test-case:
-	...
-	+++ run
-	Traceback (most recent call last):
-	  File "startup.py", line 146, in exec_and_log
-	    output = gdb.execute(cmd, from_tty=True, to_string=True)
-	gdb.error: Don't know how to run.  Try "help target".
-	...
-
-	Likewise with target board native-extended-gdbserver.
-
-	Fix this by:
-	- adding a new proc allow_dap_tests,
-	- using it in all the gdb.dap tests, and
-	- bailing out if GDBFLAGS/INTERNAL_GDBFLAGS contains
-	  "set auto-connect-native-target off".
-
-	Tested on x86_64-linux.
-
-	Reported-By: Simon Marchi <simon.marchi@efficios.com>
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-03-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-24  Tom Tromey  <tromey@adacore.com>
-
-	Preserve name of range types
-	The type-allocation patches introduced a small regression that was
-	picked up by the AdaCore internal test suite.  Previously, the name of
-	a range type was preserved by resolve_dynamic_range, but now it is
-	not.  This patch changes this code to preserve the name.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-03-24  Tom Tromey  <tromey@adacore.com>
-
-	Implement repl evaluation for DAP
-	The evaluate command supports a "context" parameter which tells the
-	adapter the context in which an evaluation occurs.  One of the
-	supported values is "repl", which we took to mean evaluation of a gdb
-	command.  That is what this patch implements.
-
-	Note that some gdb commands probably will not work correctly with the
-	rest of the protocol.  For example if the user types "continue",
-	confusion may result.
-
-	This patch requires the earlier patch to fix up scopes in DAP.
-
-2023-03-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix line number of static const class member
-	Since commit 6d263fe46e0 ("Avoid bad breakpoints with --gc-sections"), there
-	was a silent regression on openSUSE Leap 15.4 for test-case
-	gdb.cp/m-static.exp, from:
-	...
-	(gdb) info variable everywhere^M
-	All variables matching regular expression "everywhere":^M
-	^M
-	File /home/vries/tmp.local-remote-host-native/m-static.h:^M
-	8:      const int gnu_obj_4::everywhere;^M
-	(gdb)
-	...
-	to:
-	...
-	(gdb) info variable everywhere^M
-	All variables matching regular expression "everywhere":^M
-	^M
-	File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static.h:^M
-	8:      const int gnu_obj_4::everywhere;^M
-	^M
-	File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static1.cc:^M
-	8:      const int gnu_obj_4::everywhere;^M
-	(gdb)
-	...
-
-	Another regression was found due to that commit, and it was fixed in commit
-	99d679e7b30 ("[gdb/symtab] Fix "file index out of range" complaint") by
-	limiting the scope of the fix in the original commit.
-
-	Fix this regression by yet further limiting the scope of that fix, making sure
-	that this bit in dwarf_decode_lines is executed again for m-static1.cc:
-	...
-	  /* Make sure a symtab is created for every file, even files
-	     which contain only variables (i.e. no code with associated
-	     line numbers).  */
-	...
-
-	Tested on x86_64-linux.
-
-	PR symtab/30265
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30265
-
-2023-03-24  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: get the offsets of fields of unnamed structs/unions right
-	We were failing to add the offsets of the containing struct/union
-	in this case, leading to all offsets being relative to the unnamed
-	struct/union itself.
-
-	libctf/
-		PR libctf/30264
-		* ctf-types.c (ctf_member_info): Add the offset of the unnamed
-		member of the current struct as necessary.
-		* testsuite/libctf-lookup/unnamed-field-info*: New test.
-
-2023-03-24  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: fix a comment typo
-	ctf_dedup's intern() function does not return a dynamically allocated
-	string, so I just spent ten minutes auditing for obvious memory leaks
-	that couldn't actually happen.  Update the comment to note what it
-	actually returns (a pointer into an atoms table: i.e. possibly not
-	a new string, and not so easily leakable).
-
-	libctf/
-		* ctf-dedup.c (intern): Update comment.
-
-2023-03-24  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: work around an uninitialized variable warning
-	GCC 11+ complains that sym is uninitialized in ctf_symbol_next.  It
-	isn't, but it's not quite smart enough to figure that out (it requires
-	domain-specific knowledge of the state of the ctf_next_t iterator
-	over multiple calls).
-
-	libctf/
-		* ctf-lookup.c (ctf_symbol_next): Initialize sym to a suitable
-		value for returning if never reset during the function.
-
-2023-03-24  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: fix assertion failure with no system qsort_r
-	If no suitable qsort_r is found in libc, we fall back to an
-	implementation in ctf-qsort.c.  But this implementation routinely calls
-	the comparison function with two identical arguments. The comparison
-	function that ensures that the order of output types is stable is not
-	ready for this, misinterprets it as a type appearing more that once (a
-	can-never-happen condition) and fails with an assertion failure.
-
-	Fixed, audited for further instances of the same failure (none found)
-	and added a no-qsort test to my regular testsuite run.
-
-	libctf/:
-		PR libctf/30013
-		* ctf-dedup.c (sort_output_mapping): Inputs are always equal to
-		themselves.
-
-2023-03-24  Tom Tromey  <tromey@adacore.com>
-
-	Fix race in DAP startup
-	Internal AdaCore DAP testing on Windows has had occasional failures
-	that show:
-
-	    assert threading.current_thread() is _dap_thread
-
-	I think this is a race in DAP startup: the _dap_thread global is only
-	set on return from start_thread, but it seems possible that the thread
-	itself could already run and encounter a @in_dap_thread decorator.
-
-	This patch fixes the problem by setting the global before running any
-	of the code in the new thread.  This also lets us remove a FIXME.
-
-2023-03-24  Luis Machado  <luis.machado@arm.com>
-
-	aarch64: Check for valid inferior thread/regcache before reading pauth registers
-	There were reports of gdb throwing internal errors when calling
-	inferior_thread ()/get_current_regcache () on a system with
-	Pointer Authentication enabled.
-
-	In such cases, gdb produces the following backtrace:
-
-	../../../repos/binutils-gdb/gdb/thread.c:86: internal-error: inferior_thread: Assertion `current_thread_ != nullptr' failed.
-	A problem internal to GDB has been detected,
-	further debugging may prove unreliable.
-	----- Backtrace -----
-	0xaaaae04a571f gdb_internal_backtrace_1
-		../../../repos/binutils-gdb/gdb/bt-utils.c:122
-	0xaaaae04a57f3 _Z22gdb_internal_backtracev
-		../../../repos/binutils-gdb/gdb/bt-utils.c:168
-	0xaaaae0b52ccf internal_vproblem
-		../../../repos/binutils-gdb/gdb/utils.c:401
-	0xaaaae0b5310b _Z15internal_verrorPKciS0_St9__va_list
-		../../../repos/binutils-gdb/gdb/utils.c:481
-	0xaaaae0e24b8f _Z18internal_error_locPKciS0_z
-		../../../repos/binutils-gdb/gdbsupport/errors.cc:58
-	0xaaaae0a88983 _Z15inferior_threadv
-		../../../repos/binutils-gdb/gdb/thread.c:86
-	0xaaaae0956c87 _Z20get_current_regcachev
-		../../../repos/binutils-gdb/gdb/regcache.c:428
-	0xaaaae035223f aarch64_remove_non_address_bits
-		../../../repos/binutils-gdb/gdb/aarch64-tdep.c:3572
-	0xaaaae03e8abb _Z31gdbarch_remove_non_address_bitsP7gdbarchm
-		../../../repos/binutils-gdb/gdb/gdbarch.c:3109
-	0xaaaae0a692d7 memory_xfer_partial
-		../../../repos/binutils-gdb/gdb/target.c:1620
-	0xaaaae0a695e3 _Z19target_xfer_partialP10target_ops13target_objectPKcPhPKhmmPm
-		../../../repos/binutils-gdb/gdb/target.c:1684
-	0xaaaae0a69e9f target_read_partial
-		../../../repos/binutils-gdb/gdb/target.c:1937
-	0xaaaae0a69fdf _Z11target_readP10target_ops13target_objectPKcPhml
-		../../../repos/binutils-gdb/gdb/target.c:1977
-	0xaaaae0a69937 _Z18target_read_memorymPhl
-		../../../repos/binutils-gdb/gdb/target.c:1773
-	0xaaaae08be523 ps_xfer_memory
-		../../../repos/binutils-gdb/gdb/proc-service.c:90
-	0xaaaae08be6db ps_pdread
-		../../../repos/binutils-gdb/gdb/proc-service.c:124
-	0x40001ed7c3b3 _td_fetch_value
-		/build/glibc-RIFKjK/glibc-2.31/nptl_db/fetch-value.c:115
-	0x40001ed791ef td_ta_map_lwp2thr
-		/build/glibc-RIFKjK/glibc-2.31/nptl_db/td_ta_map_lwp2thr.c:194
-	0xaaaae07f4473 thread_from_lwp
-		../../../repos/binutils-gdb/gdb/linux-thread-db.c:413
-	0xaaaae07f6d6f _ZN16thread_db_target4waitE6ptid_tP17target_waitstatus10enum_flagsI16target_wait_flagE
-		../../../repos/binutils-gdb/gdb/linux-thread-db.c:1420
-	0xaaaae0a6b33b _Z11target_wait6ptid_tP17target_waitstatus10enum_flagsI16target_wait_flagE
-		../../../repos/binutils-gdb/gdb/target.c:2586
-	0xaaaae0789cf7 do_target_wait_1
-		../../../repos/binutils-gdb/gdb/infrun.c:3825
-	0xaaaae0789e6f operator()
-		../../../repos/binutils-gdb/gdb/infrun.c:3884
-	0xaaaae078a167 do_target_wait
-		../../../repos/binutils-gdb/gdb/infrun.c:3903
-	0xaaaae078b0af _Z20fetch_inferior_eventv
-		../../../repos/binutils-gdb/gdb/infrun.c:4314
-	0xaaaae076652f _Z22inferior_event_handler19inferior_event_type
-		../../../repos/binutils-gdb/gdb/inf-loop.c:41
-	0xaaaae07dc68b handle_target_event
-		../../../repos/binutils-gdb/gdb/linux-nat.c:4206
-	0xaaaae0e25fbb handle_file_event
-		../../../repos/binutils-gdb/gdbsupport/event-loop.cc:573
-	0xaaaae0e264f3 gdb_wait_for_event
-		../../../repos/binutils-gdb/gdbsupport/event-loop.cc:694
-	0xaaaae0e24f9b _Z16gdb_do_one_eventi
-		../../../repos/binutils-gdb/gdbsupport/event-loop.cc:217
-	0xaaaae080f033 start_event_loop
-		../../../repos/binutils-gdb/gdb/main.c:411
-	0xaaaae080f1b7 captured_command_loop
-		../../../repos/binutils-gdb/gdb/main.c:475
-	0xaaaae0810b97 captured_main
-		../../../repos/binutils-gdb/gdb/main.c:1318
-	0xaaaae0810c1b _Z8gdb_mainP18captured_main_args
-		../../../repos/binutils-gdb/gdb/main.c:1337
-	0xaaaae0338453 main
-		../../../repos/binutils-gdb/gdb/gdb.c:32
-	---------------------
-	../../../repos/binutils-gdb/gdb/thread.c:86: internal-error: inferior_thread: Assertion `current_thread_ != nullptr' failed.
-	A problem internal to GDB has been detected,
-	further debugging may prove unreliable.
-	Quit this debugging session? (y or n)
-
-	We also see failures across the testsuite if the tests get executed on a target
-	that has native support for the pointer authentication feature. But
-	gdb.base/break.exp and gdb.base/access-mem-running.exp are two examples of
-	tests that run into errors and internal errors.
-
-	This issue started after commit d88cb738e6a7a7179dfaff8af78d69250c852af1, which
-	enabled more broad use of pointer authentication masks to remove non-address
-	bits of pointers, but wasn't immediately detected because systems with native
-	support for pointer authentication are not that common yet.
-
-	The above crash happens because gdb is in the middle of handling an event,
-	and do_target_wait_1 calls switch_to_inferior_no_thread, nullifying the
-	current thread.  This means a call to inferior_thread () will assert, and
-	attempting to call get_current_regcache () will also call inferior_thread (),
-	resulting in an assertion as well.
-
-	target_has_registers was one function that seemed useful for detecting these
-	types of situation where we don't have a register cache. The problem with that
-	is the inconsistent state of inferior_ptid, which is used by
-	target_has_registers.
-
-	Despite the call to switch_to_no_thread in switch_to_inferior_no_thread from
-	do_target_wait_1 in the backtrace above clearing inferior_ptid, the call to
-	ps_xfer_memory sets inferior_ptid momentarily before reading memory:
-
-	static ps_err_e
-	ps_xfer_memory (const struct ps_prochandle *ph, psaddr_t addr,
-	                gdb_byte *buf, size_t len, int write)
-	{
-	  scoped_restore_current_inferior restore_inferior;
-	  set_current_inferior (ph->thread->inf);
-
-	  scoped_restore_current_program_space restore_current_progspace;
-	  set_current_program_space (ph->thread->inf->pspace);
-
-	  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
-	  inferior_ptid = ph->thread->ptid;
-
-	  CORE_ADDR core_addr = ps_addr_to_core_addr (addr);
-
-	  int ret;
-	  if (write)
-	    ret = target_write_memory (core_addr, buf, len);
-	  else
-	    ret = target_read_memory (core_addr, buf, len);
-	  return (ret == 0 ? PS_OK : PS_ERR);
-	}
-
-	Maybe this shouldn't happen, or maybe it is just an unfortunate state to be
-	in. But this prevents the use of target_has_registers to guard against the
-	lack of registers, since, although current_thread_ is still nullptr,
-	inferior_ptid is valid and is not null_ptid.
-
-	There is another crash scenario after we kill a previously active inferior, in
-	which case the gdbarch will still say we support pointer authentication but we
-	will also have no current thread (inferior_thread () will assert etc).
-
-	If the target has support for pointer authentication, gdb needs to use
-	a couple (or 4, for bare-metal) mask registers to mask off some bits of
-	pointers, and for that it needs to access the registers.
-
-	At some points, like the one from the backtrace above, there is no active
-	thread/current regcache because gdb is in the middle of doing event handling
-	and switching between threads.
-
-	Simon suggested the use of inferior_ptid to fetch the register cache, as
-	opposed to relying on the current register cache.  Though we need to make sure
-	inferior_ptid is valid (not null_ptid), I think this works nicely.
-
-	With inferior_ptid, we can do safety checks along the way, making sure we have
-	a thread to fetch a register cache from and checking if the thread is actually
-	stopped or running.
-
-	The following patch implements this idea with safety checks to make sure we
-	don't run into assertions or errors.  If any of the checks fail, we fallback to
-	using a default mask to remove non-address bits of a pointer.
-
-	I discussed with Pedro the possibility of caching the mask register values
-	(which are per-process and can change mid-execution), but there isn't a good
-	spot to cache those values. Besides, the mask registers can change constantly
-	for bare-metal debugging when switching between exception levels.
-
-	In some cases, it is just not possible to get access to these mask registers,
-	like the case where threads are running. In those cases, using a default mask
-	to remove the non-address bits should be enough.
-
-	This can happen when we let threads run in the background and then we attempt
-	to access a memory address (now that gdb is capable of reading memory even
-	with threads running).  Thus gdb will attempt to remove non-address bits
-	of that memory access, will attempt to access registers, running into errors.
-
-	Regression-tested on aarch64-linux Ubuntu 20.04.
-
-2023-03-24  Alan Modra  <amodra@gmail.com>
-
-	Tidy string_ptr increment
-		* peicode.h (pe_ILF_make_a_symbol): Use sprintf output to
-		increment string_ptr to end of new string.
-
-	Tidy dwarf1 cached section contents
-		* dwarf1.c (_bfd_dwarf1_cleanup_debug_info): New function.
-		* libbfd-in.h (_bfd_dwarf1_cleanup_debug_info): Declare.
-		* elf.c (_bfd_elf_close_and_cleanup): Call it.
-		* elf-bfd.h (struct elf_obj_tdata): Make dwarf1_find_line_info
-		a void*.
-		* libbfd.h: Regenerate.
-
-2023-03-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix unbalanced quotes in mi_expect_stop argument
-	In proc mi_expect_stop there's a proc argument reason that's handled like so:
-	...
-	set r "reason=\"$reason\","
-	...
-
-	That's fine for say:
-	...
-	set reason "foo"
-	...
-	for which this evaluates to:
-	...
-	set r "reason=\"foo\","
-	...
-
-	But there are more complex uses, for instance:
-	...
-	set reason "breakpoint-hit\",disp=\"keep\",bkptno=\"$decimal"
-	...
-	which evaluates to:
-	...
-	set r "\"breakpoint-hit\",disp=\"keep\",bkptno=\"$decimal\""
-	...
-
-	Note how in this reason argument, the first two '\"' seems to form a pair
-	surrounding ',disp=', which is not the case, which is confusing.
-
-	Fix this by only adding the quotes in mi_expect_stop if the string doesn't
-	already contain quotes, such that we have the more readable:
-	...
-	set reason "\"breakpoint-hit\",disp=\"keep\",bkptno=\"$decimal\""
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/m-static.exp regression on Ubuntu 20.04
-	In commit 722c4596034 ("[gdb/testsuite] Fix gdb.cp/*.exp for remote host"), I
-	needed to change ".*/" into "(.*/)?" in:
-	...
-	gdb_test "info variable everywhere" \
-	    "File .*/m-static\[.\]h.*const int gnu_obj_4::everywhere;"
-	...
-
-	However, due to the fact that I got this output:
-	...
-	(gdb) info variable everywhere^M
-	All variables matching regular expression "everywhere":^M
-	^M
-	File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static.h:^M
-	8:      const int gnu_obj_4::everywhere;^M
-	^M
-	File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static1.cc:^M
-	8:      const int gnu_obj_4::everywhere;^M
-	...
-	I decided to make the matching somewhat stricter, to make sure that the two
-	matched lines were subsequent.
-
-	The commit turned out to be more strict than intended, and caused a regression
-	on Ubuntu 20.04, where the output was instead:
-	...
-	(gdb) info variable everywhere^M
-	All variables matching regular expression "everywhere":^M
-	^M
-	File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static.h:^M
-	8:      const int gnu_obj_4::everywhere;^M
-	...
-
-	At that point I realized I'm looking at a bug (filed as PR symtab/30265),
-	which manifests on openSUSE Leap 15.4 for native and readnow, and on Ubuntu
-	20.04 for readnow, but not for native.
-
-	Before my commit, the test-case passed whether the bug manifested or not.
-
-	After my commit, the test-case only passed when the bug manifested.
-
-	Fix the test-case regression by reverting to the situation before the commit:
-	pass whether the bug manifests or not.  We could add an xfail for the PR, but
-	I'm expecting a fix soon, so that doesn't look worth the effort.
-
-	Tested on x86_64-linux, both on openSUSE Leap 15.4 and Ubuntu 20.04, both with
-	native and readnow.
-
-	Reported-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/dap] Add logging of ignored lines
-	This input sequence is accepted by DAP:
-	...
-	{"seq": 4, "type": "request", "command": "configurationDone"}Content-Length: 84
-	...
-
-	This input sequence has the same effect:
-	...
-	{"seq": 4, "type": "request", "command": "configurationDone"}ignorethis
-	Content-Length: 84
-	...
-	but the 'ignorethis' part is silently ignored.
-
-	Log the ignored bit, such that we have:
-	...
-	READ: <<<{"seq": 4, "type": "request", "command": "configurationDone"}>>>
-	WROTE: <<<{"request_seq": 4, "type": "response", "command": "configurationDone"
-	, "success": true}>>>
-	+++ run
-	IGNORED: <<<b'ignorethis'>>>
-	...
-
-2023-03-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-23  Tom Tromey  <tromey@adacore.com>
-
-	Fix minor grammar issue in python.texi
-	I noticed a minor grammar problem in the 'GDB/MI Commands In Python'
-	node of the manual.  I'm checking in this patch to correct it.
-
-2023-03-23  Frederic Cambus  <fred@statdns.com>
-
-	Add support to readelf for the PT_OPENBSD_MUTABLE segment type.
-	binutils * readelf.c (get_segment_type): Handle PT_OPENBSD_MUTABLE segment type.
-	include  * elf/common.h (PT_OPENBSD_MUTABLE): Define.
-
-2023-03-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use gdb_remote_download in allow_opencl_tests
-	Simon reported that doing:
-	...
-	$ while make check-parallel TESTS='gdb.opencl/*.exp' -j 100; do true; done
-	...
-	could run into:
-	...
-	ERROR: remote_download to target of \
-	  /data/vries/gdb/src/gdb/testsuite/lib/opencl_kernel.cl to opencl_kernel.cl: \
-	  cp: cannot create regular file 'opencl_kernel.cl': File exists
-	...
-
-	Fix this by using gdb_remote_download (instead of plain remote_download) in
-	allow_opencl_test, which takes care of:
-	- downloading to a location which is safe for parallel testing, by
-	  using standard_output_file, and
-	- cleaning up the downloaded file, meaning we can remove the corresponding
-	  "remote_file target delete ${clprogram}" lines in allow_opencl_test.
-
-	Tested on x86_64-linux.
-
-	Reported-by: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-23  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	bfd: aarch64: Optimize BTI stubs PR30076
-	Don't insert a second stub if the target is already compatible with
-	an indirect branch.
-
-2023-03-23  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	bfd: aarch64: Fix stubs that may break BTI PR30076
-	Insert two stubs in a BTI enabled binary when fixing long calls: The
-	first is near the call site and uses an indirect jump like before,
-	but it targets the second stub that is near the call target site and
-	uses a direct jump.
-
-	This is needed when a single stub breaks BTI compatibility.
-
-	The stub layout is kept fixed between sizing and building the stubs,
-	so the location of the second stub is known at build time, this may
-	introduce padding between stubs when those are relaxed.  Stub layout
-	with BTI disabled is unchanged.
-
-2023-03-23  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	bfd: aarch64: Refactor stub sizing code
-	elfNN_aarch64_size_stubs has grown big, so factor out the call stub
-	related code before adding new logic there.
-
-2023-03-23  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: add systemtap support
-	This commit is initial support for SystemTap for RISC-V Linux.  The
-	following two tests exercise SystemTap functionality, and are showing
-	many failures, which are all fixed by this commit:
-
-	  gdb.cp/exceptprint.exp
-	  gdb.base/stap-probe.exp
-
-	One thing I wasn't sure about is if the SystemTap support should be
-	Linux specific, or architecture specific.  For aarch64, arm, ia64, and
-	ppc, the SystemTap support seems to libe in the ARCH-linux-tdep.c
-	file, while for amd64, i386, and s390 the implementation lives in
-	ARCH-tdep.c.  I have no idea which of these is the better choice -- or
-	maybe both choices are correct in the right circumstances, and I'm
-	just not aware of how to choose between them.
-
-	Anyway, for this patch I selected riscv-tdep.c (though clearly, moving
-	the changes to riscv-linux-tdep.c is trivial if anyone thinks that's a
-	more appropriate location).
-
-	The stap-probe.exp file tests immediate, register, and register
-	indirect operands, all of which appear to be working fine with this
-	commit.  The generic expression support doesn't appear to be
-	architecture specific, so I'd expect that to work fine too.
-
-2023-03-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-22  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove gdbarch_displaced_step_fixup_p
-	The comment on the gdbarch_displaced_step_fixup gdbarch method
-	indicates that this method is optional and that GDB will perform some
-	default if this method is not supplied.  As such we define a predicate
-	gdbarch_displaced_step_fixup_p.
-
-	It may have been true at one point that the fixup method was optional,
-	but it is no longer true.  If this method is not defined and GDB tries
-	to complete a displaced step, then GDB is going to crash.
-
-	Additionally the gdbarch_displaced_step_fixup_p predicate is not used
-	anywhere in GDB.
-
-	In this commit I have removed the gdbarch_displaced_step_fixup_p
-	predicate, and I have updated the validation check for the
-	gdbarch_displaced_step_fixup method; if the
-	gdbarch_displaced_step_copy_insn method is defined then the fixup
-	method must also be defined.
-
-	I believe I've manually checked all the current places where
-	gdbarch_displaced_step_copy_insn is defined and they all also define
-	the fixup method, so this change should cause no problems for anyone.
-
-	There should be no user visible changes after this commit.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-03-22  Tom Tromey  <tromey@adacore.com>
-
-	Remove unnecessary cast
-	I found an upcast from template_symbol to symbol.  This was necessary
-	long ago, but since symbols use inheritance now, it is not.  This
-	patch removes it.  Tested by rebuilding.
-
-2023-03-22  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: adjust test cases to previous "maintenance info line-table" change
-	Commit 904d9b02a185 ("gdb: make "maintenance info line-table" show
-	relocated addresses again") changed the format of that command, but
-	failed to adjust some test cases that relied on it.  This patch fixes
-	it.
-
-	The failures fixed are:
-
-	    FAIL: gdb.base/maint.exp: maint info line-table w/o a file name
-	    FAIL: gdb.dwarf2/dw2-out-of-range-end-of-seq.exp: END with address 1 eliminated
-	    FAIL: gdb.dwarf2/dw2-ranges-base.exp: count END markers in line table
-
-	Change-Id: I946580d5e100f1beeac99a9e90d7819c6bb4ac6c
-
-2023-03-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/cp-relocate.exp for remote host
-	Fix test-case gdb.cp/cp-relocate.exp for remote host using
-	gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/annota{2,3}.exp for native-extended-gdbserver
-	When running test-cases gdb.cp/annota{2,3}.exp with target board
-	native-extended-gdbserver, we run into a few FAILs, due to the test-cases
-	trying to match inferior output together with gdb output.
-
-	Fix this by ignoring the inferior output in this case.
-
-	Tested on x86_64-linux.
-
-2023-03-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/*.exp for remote host
-	Fix a few test-cases in gdb.cp/*.exp for remote host using new proc
-	include_file.
-
-	Tested on x86_64-linux.
-
-2023-03-22  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make "maintenance info line-table" show relocated addresses again
-	Commit 1acc9dca423f ("Change linetables to be objfile-independent")
-	changed "maintenance info line-table" to print unrelocated addresses
-	instead of relocated.  This breaks a few tests on systems where that
-	matters.  The ones I see are:
-
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/consecutive.exp ...
-	    FAIL: gdb.base/consecutive.exp: stopped at bp, 2nd instr (missing hex prefix)
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/async.exp ...
-	    FAIL: gdb.base/async.exp: stepi&
-	    FAIL: gdb.base/async.exp: nexti&
-	    FAIL: gdb.base/async.exp: finish&
-
-	These tests run "maintenance info line-table" to record the address of
-	some lines, and then use these addresses in expected patterns.  It
-	therefore expects these addresses to match the runtime addresses,
-	therefore the relocated addresses.
-
-	Add back the relocated addresses, next to the unrelocated addresses,
-	like so:
-
-	    INDEX  LINE   REL-ADDRESS        UNREL-ADDRESS      IS-STMT PROLOGUE-END
-	    0      6      0x0000555555555119 0x0000000000001119 Y
-	    1      7      0x000055555555511d 0x000000000000111d Y
-	    2      8      0x0000555555555123 0x0000000000001123 Y
-	    3      END    0x0000555555555125 0x0000000000001125 Y
-
-	The unrelocated addresses can always be useful trying to map this
-	information with a DWARF info dump.
-
-	Adjust the is_stmt_addresses proc in the testsuite to match the new
-	output.
-
-	Change-Id: I59558f167e13e63421c9e0f2cad192e7c95c10cf
-
-2023-03-22  Alan Modra  <amodra@gmail.com>
-
-	coff_get_normalized_symtab bfd_release
-	We can't free "internal" on errors, since bfd_coff_swap_sym_in may
-	call bfd_alloc.  For example, _bfd_XXi_swap_sym_in may even create new
-	sections, which use bfd_alloc'd memory.  If "internal" is freed, all
-	more recently bfd_alloc'd memory is also freed.
-
-		* coffgen.c (coff_get_normalized_symtab): Don't bfd_release on
-		error.
-
-2023-03-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-21  Alan Modra  <amodra@gmail.com>
-
-	Remove unnecessary memsets in sframe-dump.c
-		* sframe-dump.c (dump_sframe_func_with_fres): Don't memset temp.
-
-	Sanity check coff-sh and coff-mcore sym string offset
-		* coff-mcore.c (coff_mcore_relocate_section): Sanity check sym
-		string offset when setting up name for use by error messages.
-		* coff-sh.c (sh_relocate_section): Likewise.
-
-2023-03-21  Alan Modra  <amodra@gmail.com>
-
-	PR17910 sym string offset check
-	As far as I can see the only place that sets obj_coff_strings without
-	setting obj_coff_strings_len is pe_ILF_build_a_bfd.  Fix that and we
-	can simplify the sym string offset check.  This is just a tidy.
-	pe_ILF_build_a_bfd doesn't create bad symbols and
-	_bfd_coff_read_string_table will always result in non-zero
-	obj_coff_strings_len when obj_coff_strings is non-NULL.
-
-		PR 17910
-		* coffgen.c (_bfd_coff_internal_syment_name): Always sanity
-		check sym string offset.
-		* peicode.h (pe_ILF_build_a_bfd): Set obj_coff_strings_len.
-
-2023-03-21  Alan Modra  <amodra@gmail.com>
-
-	PE fake section for C_SECTION syms
-	It's an odd thing to have objdump -x show a different section table
-	to objdump -h, but that can happen if swapping in symbols leads to
-	creating sections.  Setting SEC_LINKER_CREATED stops the display of
-	these sections, so that you get shown what is in the object file.
-
-		* peXXigen.c (_bfd_XXi_swap_sym_in): Set SEC_LINKER_CREATED on
-		fake section created for C_SECTION syms.  Don't zero asection
-		fields that are already zero.
-
-2023-03-21  Alan Modra  <amodra@gmail.com>
-
-	XCOFF: use bfd_coff_close_and_cleanup
-	Free memory on closing bfds.  The COFF close_and_cleanup does more
-	work than _bfd_generic_close_and_cleanup (defined as
-	_bfd_archive_close_and_cleanup).
-
-		* coff-rs6000.c (_bfd_xcoff_close_and_cleanup): Define as
-		_bfd_coff_close_and_cleanup.
-		* coff64-rs6000.c (rs6000_xcoff64_vec, rs6000_xcoff64_aix_vec): Use
-		_bfd_coff_close_and_cleanup.
-
-2023-03-21  Alan Modra  <amodra@gmail.com>
-
-	gas: expand_irp memory leaks
-		* macro.c (expand_irp): Free memory on error return paths.
-
-2023-03-21  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Check unbalanced braces in memory reference
-	Check unbalanced braces in memory reference to avoid assembler crash
-	caused by
-
-	commit e87fb6a6d0cdfc0e9c471b7825c20c238c2cf506
-	Author: Jan Beulich <jbeulich@suse.com>
-	Date:   Wed Oct 5 09:16:24 2022 +0200
-
-	    x86/gas: support quoted address scale factor in AT&T syntax
-
-		PR gas/30248
-		* config/tc-i386.c (i386_att_operand): Check unbalanced braces
-		in memory reference.
-		* testsuite/gas/i386/i386.exp: Run pr30248.
-		* testsuite/gas/i386/pr30248.d: New file.
-		* testsuite/gas/i386/pr30248.err: Likewise.
-		* testsuite/gas/i386/pr30248.s: Likewise.
-
-2023-03-21  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: regression fix for reverse-finish command.
-	The recent commit:
-
-	  commit 2a8339b71f37f2d02f5b2194929c9d702ef27223
-	  Author: Carl Love <cel@us.ibm.com>
-	  Date:   Thu Mar 9 16:10:18 2023 -0500
-
-	   PowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-reverse.exp
-
-	   PPC64 multiple entry points, a normal entry point and an alternate entry
-	   point.  The alternate entry point is to setup the Table of Contents (TOC)
-	   register before continuing at the normal entry point.  When the TOC is
-	   already valid, the normal entry point is used, this is typically the case.
-	   The alternate entry point is typically referred to as the global entry
-	   point (GEP) in IBM.  The normal entry point is typically referred to as
-	   the local entry point (LEP).
-	     .....
-
-	Is causing regression failures on on PowerPC platforms.  The regression
-	failures are in tests:
-
-	  gdb.reverse/finish-precsave.exp
-	  gdb.btrace/tailcall.exp
-	  gdb.mi/mi-reverse.exp
-	  gdb.btrace/step.exp
-	  gdb.reverse/until-precsave.exp
-	  gdb.reverse/finish-reverse.exp
-	  gdb.btrace/tailcall-only.exp
-
-	The issue is in gdb/infcmd.c, function finish_command.  The value of the
-	two new variables ALT_ENTRY_POINT and ENTRY_POINT are being initializezed
-	to SAL.PC.  However, SAL has just been declared.  The value of SAL.PC is
-	zero at this point.  The intialization of ALT_ENTRY_POINT and ENTRY_POINT
-	needs to be after the initialization of SAL.
-
-	This patch moves the initialization of ALT_ENTRY_POINT and ENTRY_POINT
-	variables to fix the regression failures.
-
-	The patch has been tested on Power10 and on X86.
-
-2023-03-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Check remote_exec results in board files
-	Make sure the result of each remote_exec in gdb/testsuite/boards/*.exp is
-	checked.
-
-	Tested on x86_64-linux.
-
-2023-03-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add missing quote in remote-gdbserver-on-localhost.exp
-	In a recent commit I forgot to add a double quote before chmod here:
-	...
-	      remote_exec build $rsh_cmd chmod go-rx ."
-	...
-
-	Fix it by adding the missing double quote.
-
-2023-03-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove ${board}_file from remote-stdio-gdbserver.exp
-	Looking at the implementation of ${board}_file in remote-stdio-gdbserver.exp,
-	I don't see a relevant difference with the implementation of standard_file
-	in dejagnu.
-
-	Simplify the board by removing ${board}_file.
-
-	Tested on x86_64-linux, by running gdb.testsuite/board-sanity.exp.
-
-2023-03-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use localhost instead of 127.0.0.1 for boards
-	Some boards in gdb/testsuite/boards use the hardcoded ipv4 address "127.0.0.1".
-
-	Use instead "localhost".
-
-	Tested on x86_64-linux.
-
-2023-03-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.xml/tdesc-regs.exp for remote host
-	Fix test-case gdb.xml/tdesc-regs.exp for remote host by using appropriate
-	filenames.
-
-	Tested on x86_64-linux.
-
-2023-03-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.xml/tdesc-reload.exp for remote host
-	Fix test-case gdb.xml/tdesc-reload.exp for remote host by using appropriate
-	filenames.
-
-	Tested on x86_64-linux.
-
-2023-03-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Set remotedir in local-remote-host-native.exp
-	In commit ff581559f9d ("[gdb/testsuite] Add gdb.testsuite/board-sanity.exp") I
-	removed handling of HOST_DIR in local-remote-host-native.exp to fix FAILs
-	in test-case gdb.testsuite/board-sanity.exp.
-
-	Reintroduce handling of HOST_DIR using remotedir, now that using remotedir for
-	a host board no longer make compilation fail due to commit 80d6c79866f
-	("[gdb/testsuite] Handle remotedir in remote_upload").
-
-	This fixes an XFAIL in gdb.testsuite/board-sanity.exp, introduced in commit
-	3741934fdb0 ("[gdb/testsuite] Set remotedir by default in some boards").
-
-	Tested on x86_64-linux.
-
-2023-03-21  Jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Fix disassemble fetch fail return value.
-	This bug reported in
-	https://sourceware.org/bugzilla/show_bug.cgi?id=30184
-	And discussed in
-	https://sourceware.org/pipermail/binutils/2023-February/126213.html
-
-	We also checked the implementation of return value in arm and mips.
-	So this patch changes the return value to -1, that can fix bugs and maintain
-	consistency with other architectures.
-
-	opcodes/ChangeLog:
-
-	        * riscv-dis.c (print_insn_riscv):Change the return value.
-
-2023-03-21  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Remove .c header files from rs6000-aix-nat.c file
-	Since the tdesc_powerpc_vsx32, tdesc_powerpc_vsx64, tdesc_powerpc_altivec32 and tdesc_powerpc_altivec64
-	definitions are moved to ppc-tdep.h we no longer need to import these .c files.
-
-2023-03-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-20  Tom Tromey  <tom@tromey.com>
-
-	Remove some unnecessary includes from *-exp.y
-	I noticed a weird comment in one of the .y files, and then ended up
-	removing some unnecessary #includes from these files.
-
-	Tested by rebuilding.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-20  Tom Tromey  <tromey@adacore.com>
-
-	Remove mi_version function
-	The mi_version function is unused, and I think it's better overall if
-	it is never used.  This patch removes it.  Tested by rebuilding.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-20  Tom Tromey  <tromey@adacore.com>
-
-	Update python-helper.exp for type allocation changes
-	The type allocation changes introduced a failure in python-helper.exp
-	that I did not notice.  The bug is that, with these patches,
-	arch-allocated integer types have a TYPE_SPECIFIC_INT object attached.
-	This patch updates the test to allow this.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30253
-
-2023-03-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle remotedir in remote_upload
-	Dejagnu's remotedir implementation has support in remote_exec and
-	remote_download, but not remote_upload.
-
-	Consider the following scenario:
-	- downloading an executable to target,
-	- running it,
-	- uploading a file produced by the executable
-	while assuming remote target user remote-target with homedir
-	/home/remote-target and remotedir set to /home/remote-target/tmp.
-
-	Concretely, it looks like this:
-	...
-	 # binfile == "$outputs/gdb.abc/a.out"
-	 set target_binfile [remote_download target $binfile]
-	 # target_binfile == "/home/remote-target/tmp/a.out"
-	 remote_exec target $target_binfile
-	 # Running $target_binfile produced /home/remote-target/tmp/result.txt.
-	 set result [remote_upload target /home/remote-target/tmp/result.txt \
-	                 $outputs/gdb.abc/result.txt]
-	 # result == $outputs/gdb.abc/result.txt.
-	...
-
-	Add a remote_upload implementation that also handles remotedir in lib/gdb.exp,
-	overriding dejagnu's remote_upload, such that we can simplify the
-	remote_upload call to:
-	...
-	 set result [remote_upload target result.txt $outputs/gdb.abc/result.txt]
-	...
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30250
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30250
-
-2023-03-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix crash during command completion
-	In some cases GDB will fail when attempting to complete a command that
-	involves a rust symbol, the failure can manifest as a crash.
-
-	The problem is caused by the completion_match_for_lcd object being
-	left containing invalid data during calls to cp_symbol_name_matches_1.
-
-	The first question to address is why we are calling a C++ support
-	function when handling a rust symbol.  That's due to GDB's auto
-	language detection for msymbols, in some cases GDB can't tell if a
-	symbol is a rust symbol, or a C++ symbol.
-
-	The test application contains symbols for functions which are
-	statically linked in from various rust support libraries.  There's no
-	DWARF for these symbols, so all GDB has is the msymbols built from the
-	ELF symbol table.
-
-	Here's the problematic symbol that leads to our crash:
-
-	    mangled: _ZN4core3str21_$LT$impl$u20$str$GT$5parse17h5111d2d6a50d22bdE
-	  demangled: core::str::<impl str>::parse
-
-	As an msymbol this is initially created with language auto, then GDB
-	eventually calls symbol_find_demangled_name, which loops over all
-	languages calling language_defn::sniff_from_mangled_name, the first
-	language that can demangle the symbol gets assigned as the language
-	for that symbol.
-
-	Unfortunately, there's overlap in the mangled symbol names,
-	some (legacy) rust symbols can be demangled as both rust and C++, see
-	cplus_demangle in libiberty/cplus-dem.c where this is mentioned.
-
-	And so, because we check the C++ language before we check for rust,
-	then the msymbol is (incorrectly) given the C++ language.
-
-	Now it's true that is some cases we might be able to figure out that a
-	demangled symbol is not actually a valid C++ symbol, for example, in
-	our case, the construct '::<impl str>::' is not, I believe, valid in a
-	C++ symbol, we could look for ':<' and '>:' and refuse to accept this
-	as a C++ symbol.
-
-	However, I'm not sure it is always possible to tell that a demangled
-	symbol is rust or C++, so, I think, we have to accept that some times
-	we will get this language detection wrong.
-
-	If we accept that we can't fix the symbol language detection 100% of
-	the time, then we should make sure that GDB doesn't crash when it gets
-	the language wrong, that is what this commit addresses.
-
-	In our test case the user tries to complete a symbol name like this:
-
-	  (gdb) complete break pars
-
-	This results in GDB trying to find all symbols that match 'pars',
-	eventually we consider our problematic symbol, and we end up with a
-	call stack that looks like this:
-
-	  #0  0x0000000000f3c6bd in strncmp_iw_with_mode
-	  #1  0x0000000000706d8d in cp_symbol_name_matches_1
-	  #2  0x0000000000706fa4 in cp_symbol_name_matches
-	  #3  0x0000000000df3c45 in compare_symbol_name
-	  #4  0x0000000000df3c91 in completion_list_add_name
-	  #5  0x0000000000df3f1d in completion_list_add_msymbol
-	  #6  0x0000000000df4c94 in default_collect_symbol_completion_matches_break_on
-	  #7  0x0000000000658c08 in language_defn::collect_symbol_completion_matches
-	  #8  0x0000000000df54c9 in collect_symbol_completion_matches
-	  #9  0x00000000009d98fb in linespec_complete_function
-	  #10 0x00000000009d99f0 in complete_linespec_component
-	  #11 0x00000000009da200 in linespec_complete
-	  #12 0x00000000006e4132 in complete_address_and_linespec_locations
-	  #13 0x00000000006e4ac3 in location_completer
-
-	In cp_symbol_name_matches_1 we enter a loop, this loop repeatedly
-	tries to match the demangled problematic symbol name against the user
-	supplied text ('pars').  Each time around the loop another component
-	of the symbol name is stripped off, thus, we check 'pars' against
-	these options:
-
-	  core::str::<impl str>::parse
-	  str::<impl str>::parse
-	  <impl str>::parse
-	  parse
-
-	As soon as we get a match the cp_symbol_name_matches_1 exits its loop
-	and returns.  In our case, when we're looking for 'pars', the match
-	occurs on the last iteration of the loop, when we are comparing to
-	'parse'.
-
-	Now the problem here is that cp_symbol_name_matches_1 uses the
-	strncmp_iw_with_mode, and inside strncmp_iw_with_mode we allow for
-	skipping over template parameters.  This allows GDB to match the
-	symbol name 'foo<int>(int,int)' if the user supplies 'foo(int,'.
-	Inside strncmp_iw_with_mode GDB will record any template arguments
-	that it has skipped over inside the completion_match_for_lcd object
-	that is passed in as an argument.
-
-	And so, when GDB tries to match against '<impl str>::parse', the first
-	thing it sees is '<impl str>', GDB assumes this is a template argument
-	and records this as a skipped region within the
-	completion_match_for_lcd object.  After '<impl str>' GDB sees a ':'
-	character, which doesn't match with the 'pars' the user supplied, so
-	strncmp_iw_with_mode returns a value indicating a non-match.  GDB then
-	removes the '<impl str>' component from the symbol name and tries
-	again, this time comparing to 'parse', which does match.
-
-	Having found a match, then in cp_symbol_name_matches_1 we record the
-	match string, and the full symbol name within the
-	completion_match_result object, and return.
-
-	The problem here is that the skipped region, the '<impl str>' that we
-	recorded in the penultimate loop iteration was never discarded, its
-	still there in our returned result.
-
-	If we look at what the pointers held in the completion_match_result
-	that cp_symbol_name_matches_1 returns, this is what we see:
-
-	  core::str::<impl str>::parse
-	  |          \________/  |
-	  |               |      '--- completion match string
-	  |               '---skip range
-	  '--- full symbol name
-
-	When GDB calls completion_match_for_lcd::finish, GDB tries to create a
-	string using the completion match string (parse), but excluding the
-	skip range, as the stored skip range is before the start of the
-	completion match string, then GDB tries to do some weird string
-	creation, which will cause GDB to crash.
-
-	The reason we don't often see this problem in C++ is that for C++
-	symbols there is always some non-template text before the template
-	argument.  This non-template text means GDB is likely to either match
-	the symbol, or reject the symbol without storing a skip range.
-
-	However, notice, I did say, we don't often see this problem.  Once I
-	understood the issue, I was able to reproduce the crash using a pure
-	C++ example:
-
-	  template<typename S>
-	  struct foo
-	  {
-	    template<typename T>
-	    foo (int p1, T a)
-	    {
-	      s = 0;
-	    }
-
-	    S s;
-	  };
-
-	  int
-	  main ()
-	  {
-	    foo<int> obj (2.3, 0);
-	    return 0;
-	  }
-
-	Then in GDB:
-
-	  (gdb) complete break foo(int
-
-	The problem here is that the C++ symbol for the constructor looks like
-	this:
-
-	  foo<int>::foo<double>(int, double)
-
-	When GDB enters cp_symbol_name_matches_1 the symbols it examines are:
-
-	  foo<int>::foo<double>(int, double)
-	  foo<double>(int, double)
-
-	The first iteration of the loop will match the 'foo', then add the
-	'<int>' template argument will be added as a skip range.  When GDB
-	find the ':' after the '<int>' the first iteration of the loop fails
-	to match, GDB removes the 'foo<int>::' component, and starts the
-	second iteration of the loop.
-
-	Again, GDB matches the 'foo', and now adds '<double>' as a skip
-	region.  After that the '(int' successfully matches, and so the second
-	iteration of the loop succeeds, but, once again we left the '<int>' in
-	place as a skip region, even though this occurs before the start of
-	our match string, and this will cause GDB to crash.
-
-	This problem was reported to the mailing list, and a solution
-	discussed in this thread:
-
-	  https://sourceware.org/pipermail/gdb-patches/2023-January/195166.html
-
-	The solution proposed here is similar to one proposed by the original
-	bug reported, but implemented in a different location within GDB.
-	Instead of placing the fix in strncmp_iw_with_mode, I place the fix in
-	cp_symbol_name_matches_1.  I believe this is a better location as it
-	is this function that implements the loop, and it is this loop, which
-	repeatedly calls strncmp_iw_with_mode, that should be resetting the
-	result object state (I believe).
-
-	What I have done is add an assert to strncmp_iw_with_mode that the
-	incoming result object is empty.
-
-	I've also added some other asserts in related code, in
-	completion_match_for_lcd::mark_ignored_range, I make some basic
-	assertions about the incoming range pointers, and in
-	completion_match_for_lcd::finish I also make some assertions about how
-	the skip ranges relate to the match pointer.
-
-	There's two new tests.  The original rust example that was used in the
-	initial bug report, and a C++ test.  The rust example depends on which
-	symbols are pulled in from the rust libraries, so it is possible that,
-	at some future date, the problematic symbol will disappear from this
-	test program.  The C++ test should be more reliable, as this only
-	depends on symbols from within the C++ source code.
-
-	Since I originally posted this patch to the mailing list, the
-	following patch has been merged:
-
-	  commit 6e7eef72164c00d6a5a7b0bce9fa01f5481f33cb
-	  Date:   Sun Mar 19 09:13:10 2023 -0600
-
-	      Use rust_demangle to fix a crash
-
-	This solves the problem of a rust symbol ending up in the C++ specific
-	code by changing the order languages are sorted.  However, this new
-	commit doesn't address the issue in the C++ code which was fixed with
-	this commit.
-
-	Given that the C++ issue is real, and has a reproducer, I'm still
-	going to merge this fix.  I've left the discussion of rust in this
-	commit message as I originally wrote it, but it should be read within
-	the context of GDB prior to commit 6e7eef72164c00d6a5a7.
-
-	Co-Authored-By:  Zheng Zhan <zzlossdev@163.com>
-
-2023-03-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop identifier_chars[]
-	It tries to resemble what's underlying is_part_of_name(), but doesn't
-	quite achieve that: '$' for example is unconditionally marked as part of
-	symbol names, but was included as identifier char for Intel syntax only.
-	Note that i386_att_operand() checks for the immediate prefix first, so
-	the wider coverage by starts_memory_operand() is has no real effect
-	there, but it does matter for something like
-
-		mov	%fs:$dollar, %eax
-
-	which previously wasn't accepted (but which clearly is a memory
-	reference - there's no point in forcing people to parenthesize the
-	symbol name). Similarly including '%' as an identfier for Intel syntax
-	had no real significance to the rest of the assembler. If '%' was to be
-	valid in (unquoted) symbol names, LEX_PCT would need to be defined.
-
-	Note further that this also addresses the latent issue of a sub-target
-	defining LEX_AT or LEX_QM to zero: That would make '@' and/or '?' no
-	valid part of symbol names, but would have included them in what
-	is_identifier_char() considers a valid part of a name. (There's a minor
-	related issue which is actually being eliminated: te-interix.h allows
-	'@' only in the middle of symbol names, yet starts_memory_operand()
-	specifically looks at the first character of [possibly] a symbol name.)
-
-	In parse_real_register() there's no point also checking is_name_ender()
-	as at this point no character is marked solely LEX_END_NAME by any sub-
-	target. Checking is_name_beginner() is also pointless as the hash lookup
-	will fail anyway for a zero-length name.
-
-	While touching the check in parse_real_register() also drop the
-	"allow_naked_reg" part of the condition: This has only led to
-	inconsistent error messages.
-
-2023-03-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86/AT&T: restrict recognition of the "absolute branch" prefix character
-	While in principle merely rejecting this for .insn would be sufficient
-	for the purposes there, be more generic and reject it for anything that
-	isn't going to be a branch: All elements of same-mnemonic template
-	groups either are branches, or are not, and the few cases possibly
-	requiring a 2nd parsing pass aren't affected either. This then also
-	improves diagnostics for misuses like
-
-		inc	*%eax
-		incl	%fs:*(%eax)
-		add	*$1, %eax
-
-2023-03-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop "shimm" special case template expansions
-	With VexVVVV only being boolean, the SSE shift-by-immediate instructions
-	don't need special casing anymore for SSE2AVX handling. Simplify the two
-	respective templates. (No change to generated tables.)
-
-2023-03-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: VexVVVV is now merely a boolean
-	With the SDM long having dropped the NDS/NDD/DDS concept of identifying
-	encoding variants, we can finally do away with this concept as well. Of
-	the few consumers of the attribute, only an assertion was still checking
-	for a particular value, which we don't really need to retain.
-
-	When touching lines anyway, modernize other aspects as well. This often
-	improves similarity to adjacent lines.
-
-2023-03-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: re-work build_modrm_byte()'s register assignment
-	The function has accumulated a number of special cases for no real
-	reason. Some were necessary because insn attributes (SwapSources in
-	particular) weren't suitably utilized instead. Note that the addition of
-	SwapSources actually increases consistency among the templates: Like
-	others which already have the attribute, these are all insns where the
-	VEX.VVVV-encoded register comes first (or last when looking at the SDM).
-
-	Note that the vexvvvv attribute now has merely boolean meaning anymore,
-	in line with the SDM long having dropped the NDS/NDD/DDS concept of
-	identifying encoding variants. The fallout will be taken care of
-	subsequently, though, to not further clutter the change here.
-
-	As to the TILEZERO special case: If more instructions like this
-	appeared, a new attribute would likely be the way to go. But as long as
-	it's only a single insn, going from the mnemonic is cheaper.
-
-2023-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
-
-	Changed ld and gas BPF tests
-	Recent BPF patch removed and renamed the list of relocations based on
-	the limitations of BPF instruction set.
-	This patch is a correction to the tests.
-
-	Reloc howto access broken for BPF
-	Forgot to change the logic to access the reloc howto from
-	bpf_elf_relocate_section.
-	Problem was introduced in previous BPF commit.
-
-2023-03-20  Tom Tromey  <tom@tromey.com>
-
-	Use rust_demangle to fix a crash
-	PR rust/30211 points out a crash caused by a particular completion.
-	This turns out to happen because a Rust minsym winds up in a
-	C++-specific path in strncmp_iw_with_mode, which ultimately causes the
-	completer to pass invalid arguments to string::append.
-
-	This patch fixes the bug by reordering the language constants so that
-	Rust comes before C++, and then using rust_demangle.  This ensures
-	that minsyms are correctly marked as "Rust", avoiding this code and
-	thus the crash.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20367
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30211
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-03-20  Tom Tromey  <tromey@adacore.com>
-
-	Make ui_out::do_progress_end 'private'
-	I noticed that ui_out::do_progress_end is public, just to support one
-	use in debuginfod-support.c.  This patch makes it private, updates
-	progress_info to call it from its destructor, and finally changes
-	debuginfod-support.c to follow.
-
-2023-03-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't use the global thread-id in the saved breakpoints file
-	I noticed that breakpoint::print_recreate_thread was printing the
-	global thread-id.  This function is used to implement the 'save
-	breakpoints' command, and should be writing out suitable CLI commands
-	for recreating the current breakpoints.  The CLI does not use global
-	thread-ids, but instead uses the inferior specific thread-ids,
-	e.g. "2.1".
-
-	After some discussion on the mailing list it was suggested that the
-	most consistent solution would be for the saved breakpoints file to
-	always contain the inferior-qualified thread-id, so the file would
-	include "thread 1.1" instead of just "thread 1", even when there is
-	only a single inferior.
-
-	So, this commit adds print_full_thread_id, which is just like the
-	existing print_thread_id, only it always prints the inferior-qualified
-	thread-id.
-
-	I then update the existing print_thread_id to make use of this new
-	function, and finally, I update  breakpoint::print_recreate_thread to
-	also use this new function.
-
-	There's a multi-inferior test that confirms the saved breakpoints file
-	correctly includes the fully-qualified thread-id, and I've also
-	updated the single inferior test gdb.base/save-bp.exp to have it
-	validate that the saved breakpoints file includes the
-	inferior-qualified thread-id, even for this single inferior case.
-
-2023-03-20  Alan Modra  <amodra@gmail.com>
-
-	Revert "segfault at i386-dis.c:9815"
-	This reverts commit 92d450c79ad321e42f9a77692b5db10d0f7b9344.
-
-	Accessing these local var structs using a volatile qualified pointer
-	may indeed read the object, but I don't think changed values are
-	guaranteed to be written back to the object unless the actual object
-	is declared volatile.  That would probably slow down i386 disassembly
-	unacceptably.
-
-2023-03-20  Alan Modra  <amodra@gmail.com>
-
-	libctf: unused variable
-		* ctf-archive.c (arc_mmap_writeout): Delete unused variable.
-
-2023-03-20  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: Use prototype to call libc functions
-	libcollector may not link against libC.
-	We use dlsym() to get a function from libc.
-	In some files, pointers to these functions do not have prototypes.
-	I also moved the shared definitions to libcollector/collect.h.
-
-	gprofng/ChangeLog
-	2023-03-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		libcollector/collector.c: Add prototypes.
-		libcollector/dispatcher.c: Likewise.
-		libcollector/heaptrace.c: Likewise.
-		libcollector/iotrace.c: Likewise.
-		libcollector/linetrace.c: Likewise.
-		libcollector/mmaptrace.c: Likewise.
-		libcollector/synctrace.c: Likewise.
-		libcollector/collector.h: Add CALL_REAL(), NULL_PTR(), and DBG_LT.
-
-2023-03-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-19  Tom Tromey  <tom@tromey.com>
-
-	Don't declare psymbol_functions::fill_psymbol_map
-	psymbol_functions::fill_psymbol_map was removed, but I forgot to
-	remove the declaration.  This patch removes it.  Tested by rebuilding.
-
-2023-03-19  Alan Modra  <amodra@gmail.com>
-
-	segfault at i386-dis.c:9815
-		* i386-dis.c (print_insn): Access "ins" and "priv" via volatile
-		pointers after second sigsetjmp return.
-
-2023-03-19  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Enable vector register visibility in core file for AIX binutils
-	This patch will enable vector register visibility when AIX FOLKS do
-	core file analysis.
-
-2023-03-19  Alan Modra  <amodra@gmail.com>
-
-	Regen ld/po/BLD-POTFILES.in
-
-2023-03-19  Alan Modra  <amodra@gmail.com>
-
-	XCOFF archive sanity check
-	XCOFF archive elements are in a linked list.  Add a little more sanity
-	checking.  This of course doesn't stop the fuzzers finding a way to
-	make a loop, but this check is cheap.
-
-		* coff-rs6000.c (_bfd_xcoff_openr_next_archived_file): Sanity
-		check that next element isn't pointing back to the header.
-
-2023-03-19  Alan Modra  <amodra@gmail.com>
-
-	rewrite_elf_program_header and want_p_paddr_set_to_zero
-	Layout in rewrite_elf_program_header is really done by lma, even if
-	program headers are going to have their p_paddr forced to zero.  Thus
-	when not matching against an existing segment, don't try to use a
-	"vma" from elf_segment_map.
-
-		* elf.c (is_contained_by): Replace "bed" param with "use_vaddr".
-		(IS_SECTION_IN_INPUT_SEGMENT): Adjust is_contained_by call.
-		(rewrite_elf_program_header): Always match against lma in
-		calls to is_contained_by using new maps.
-
-2023-03-19  Alan Modra  <amodra@gmail.com>
-
-	Another sanity check for read_section_stabs_debugging_info
-		* rddbg.c (read_section_stabs_debugging_info): Ignore invalid
-		stab sections with size less than 12 bytes.
-
-	ctf segfaults
-		PR 30228
-		PR 30229
-		* ctf-open.c (ctf_bufopen_internal): Check for NULL cts_data.
-		* ctf-archive.c (ctf_arc_bufpreamble, ctf_arc_bufopen): Likewise.
-
-2023-03-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Remove objfile_type
-	This removes objfile_type, in favor of always using the per-arch
-	builtins.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Add some types to struct builtin_type
-	This adds some types to struct builtin_type, ensuring it contains all
-	the types currently used by objfile_type.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Rename objfile_type to builtin_type
-	This renames objfile_type to be an overload of builtin_type, in
-	preparation for their unification.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Use builtin type when appropriate
-	There are a few spots that check whether a type is objfile-owned, and
-	then choose either the objfile- or arch-specific builtin type.  I
-	don't think there is a need to do this any more (if there ever was),
-	because it is ok for an objfile-allocated type to refer to an
-	arch-allocated type.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Use type allocator for set types
-	This changes the set type creation function to accept a type
-	allocator, and updates all the callers.  Note that symbol readers
-	should generally allocate on the relevant objfile, regardless of the
-	underlying type of the set, which is what this patch implements.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Use type allocator for array types
-	This changes the array type creation functions to accept a type
-	allocator, and updates all the callers.  Note that symbol readers
-	should generally allocate on the relevant objfile, regardless of the
-	placement of the index type of the array, which is what this patch
-	implements.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Use type allocator for range types
-	This changes the range type creation functions to accept a type
-	allocator, and updates all the callers.  Note that symbol readers
-	should generally allocate on the relevant objfile, regardless of the
-	underlying type of the range, which is what this patch implements.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Unify arch_pointer_type and init_pointer_type
-	This unifies arch_pointer_type and init_pointer_type by using a type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Unify arch_decfloat_type and init_decfloat_type
-	This unifies arch_decfloat_type and init_decfloat_type by using a type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Unify arch_float_type and init_float_type
-	This unifies arch_float_type and init_float_type by using a type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Unify arch_boolean_type and init_boolean_type
-	This unifies arch_boolean_type and init_boolean_type by using a type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Unify arch_character_type and init_character_type
-	This unifies arch_character_type and init_character_type by using a
-	type allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Unify arch_integer_type and init_integer_type
-	This unifies arch_integer_type and init_integer_type by using a type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Remove init_type
-	This removes init_type, replacing all uses with the new type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Remove arch_type
-	This removes arch_type, replacing all uses with the new type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Reuse existing builtin types
-	This changes a few spots to reuse the existing builting "void" type,
-	rather than construct a new one.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Remove alloc_type
-	This removes alloc_type, replacing all uses with the new type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Remove alloc_type_copy
-	This removes alloc_type_copy, replacing all uses with the new type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Remove alloc_type_arch
-	This removes alloc_type_arch, replacing all uses with the new type
-	allocator.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom Tromey  <tom@tromey.com>
-
-	Introduce type_allocator
-	This introduces a new type_allocator class.  This class will be used
-	to abstract out the placement of new types, so that type-creation code
-	can be simplified and shared.
-
-	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle unbuffer_output.c for remote host
-	Handle $srcdir/lib/unbuffer_output.c using lappend_include_file.
-
-	Tested on x86_64-linux.
-
-2023-03-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle my-syscalls.h for remote host
-	Handle $srcdir/lib/my-syscalls.h using lappend_include_dir.
-
-	Tested on x86_64-linux.
-
-2023-03-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle attributes.h for remote host
-	Handle $srcdir/lib/attributes.h using lappend_include_dir.
-
-	Tested on x86_64-linux.
-
-2023-03-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-17  Tom Tromey  <tom@tromey.com>
-
-	Fix line table regression
-	Simon pointed out a line table regression, and after a couple of false
-	starts, I was able to reproduce it by hand using his instructions.
-
-	The bug is that most of the code in do_mixed_source_and_assembly uses
-	unrelocated addresses, but one spot does:
-
-	  pc = low;
-
-	... after the text offset has been removed.
-
-	This patch fixes the problem by introducing a new type to represent
-	unrelocated addresses in the line table.  This prevents this sort of
-	bug to some degree (it's still possible to manipulate a CORE_ADDR in a
-	bad way, this is unavoidable).
-
-	However, this did let the compiler flag a few spots in that function,
-	and now it's not possible to compare an unrelocated address from a
-	line table with an ordinary CORE_ADDR.
-
-	Regression tested on x86-64 Fedora 36, though note this setup never
-	reproduced the bug in the first place.  I also tested it by hand on
-	the disasm-optim test program.
-
-2023-03-17  Frederic Cambus  <fred@statdns.com>
-
-	Update the NetBSD system call table to add eventfd(2) and timerfd(2).
-	Generated from sys/sys/syscall.h revision 1.321.
-
-2023-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: introduce bp_loc_tracepoint
-	Since commit cb1e4e32c2d9 ("catch catch/throw/rethrow", breakpoint ->
-	catchpoint), this simple tracing scenario does not work:
-
-	    $ gdb/gdb -nx -q --data-directory=gdb/data-directory ./test
-	    Reading symbols from ./test...
-	    (gdb) tar rem :1234
-	    Remote debugging using :1234
-	    Reading symbols from /lib64/ld-linux-x86-64.so.2...
-	    (No debugging symbols found in /lib64/ld-linux-x86-64.so.2)
-	    0x00007ffff7fe5730 in ?? () from /lib64/ld-linux-x86-64.so.2
-	    (gdb) trace do_something
-	    Tracepoint 1 at 0x555555555144: file test.c, line 5.
-	    (gdb) tstart
-	    (gdb) continue
-	    Continuing.
-	    Target returns error code '01'.
-
-	The root cause is that the bp_location::nserted flag does not transfer
-	anymore from an old bp_location to the new matching one.  When a shared
-	library gets loaded, GDB computes new breakpoint locations for each
-	breakpoint in update_breakpoint_locations.  The new locations are in the
-	breakpoint::loc chain, while the old locations are still in the
-	bp_locations global vector.  Later, update_global_location_list is
-	called.  It tries to map old locations to new locations, and if
-	necessary transfer some properties, like the inserted flag.
-
-	Since commit cb1e4e32c2d9, the inserted flag isn't transferred for
-	locations of tracepoints.  This is because bl_address_is_meaningful used
-	to be implemented like this:
-
-	    static int
-	    breakpoint_address_is_meaningful (struct breakpoint *bpt)
-	    {
-	      enum bptype type = bpt->type;
-
-	      return (type != bp_watchpoint && type != bp_catchpoint);
-	    }
-
-	and was changed to this:
-
-	    static bool
-	    bl_address_is_meaningful (bp_location *loc)
-	    {
-	      return loc->loc_type != bp_loc_other;
-	    }
-
-	Because locations for tracepoints have the bp_loc_other type,
-	bl_address_is_meaningful started to return false for them, where it
-	returned true before.  This made update_global_location_list skip the
-	part where it calls swap_insertion.
-
-	I think this can be solved by introduced a new bp_loc_tracepoint
-	bp_loc_type.
-
-	I don't know if it's accurate, but my understanding is that bp_loc_type
-	describes roughly "how do we ask the target to insert that location".
-	bp_loc_software_breakpoint are inserted using
-	target_ops::insert_breakpoint_location.  bp_loc_hardware_breakpoint are
-	inserted using target_ops::insert_hw_breakpoint.
-	bp_loc_software_watchpoint and bp_loc_hardware_watchpoint are inserted
-	using target_ops::insert_watchpoint.  For all these, the address is
-	meaningful, as we ask the target to insert the point at a specific
-	address.  bp_loc_other is a catch-all for "the rest", in practice for
-	catchpoints that don't have a specific address (hence why
-	bl_address_is_meaningful returns false for them).  For instance,
-	inserting a signal catchpoint is done by asking the target to report
-	that specific signal.  GDB doesn't associate an address to that.
-
-	But tracepoints do have a meaningful address to thems, so they can't be
-	bp_loc_other, with that logic.  They also can't be
-	bp_loc_software_breakpoint, because we don't want GDB to insert
-	breakpoints for them (even though they might be implemented using
-	software breakpoints by the remote side).  So, the new bp_loc_tracepoint
-	type describes that the way to insert these locations is with
-	target_ops::download_tracepoint.  It makes bl_address_is_meaningful
-	return true for them.  And they'll be ignored by insert_bp_location and
-	GDB won't try to insert a memory breakpoint for them.
-
-	With this, I see a few instances of 'Target returns error code: 01'
-	disappearing from gdb.log, and the results of gdb.trace/*.exp improve a
-	little bit:
-
-	    -# of expected passes       3765
-	    +# of expected passes       3781
-	    -# of unexpected failures   518
-	    +# of unexpected failures   498
-
-	Things remain quite broken in that area though.
-
-	Change-Id: Ic40935c450410f4bfaba397c9ebc7faf97320dd3
-
-2023-03-17  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-reverse.exp
-	PPC64 multiple entry points, a normal entry point and an alternate entry
-	point.  The alternate entry point is to setup the Table of Contents (TOC)
-	register before continuing at the normal entry point.  When the TOC is
-	already valid, the normal entry point is used, this is typically the case.
-	The alternate entry point is typically referred to as the global entry
-	point (GEP) in IBM.  The normal entry point is typically referred to as
-	the local entry point (LEP).
-
-	When GDB is executing the finish command in reverse, the function
-	finish_backward currently sets the break point at the alternate entry point.
-	This issue is if the function, when executing in the forward direction,
-	entered the function via the normal entry point, execution in the reverse
-	direction will never sees the break point at the alternate entry point.  In
-	this case, the reverse execution continues until the next break point is
-	encountered thus stopping at the wrong place.
-
-	This patch adds a new address to struct execution_control_state to hold the
-	address of the alternate entry point (GEP).  The finish_backwards function
-	is updated, if the stopping point is between the normal entry point (LEP)
-	and the end of the function, a breakpoint is set at the normal entry point.
-	If the stopping point is between the entry points, a breakpoint is set at
-	the alternate entry point.  This ensures that GDB will always stop at the
-	normal entry point.  If the function did enter via the alternate entry
-	point, GDB will detect that and continue to execute backwards in the
-	function until the alternate entry point is reached.
-
-	The patch fixes the behavior of the reverse-finish command on PowerPC to
-	match the behavior of the command on other platforms, specifically X86.
-	The patch does not change the behavior of the command on X86.
-
-	A new test is added to verify the reverse-finish command on PowerPC
-	correctly stops at the instruction where the function call is made.
-
-	The patch fixes 11 regression errors in test gdb.reverse/finish-precsave.exp
-	and 11 regression errors in test gdb.reverse/finish-reverse.exp.
-
-	The patch has been tested on Power 10 and X86 processor with no new
-	regression failures.
-
-2023-03-17  Carl Love  <cel@us.ibm.com>
-
-	Move step_until procedure
-	Procedure step_until from test gdb.reverse/step-indirect-call-thunk.exp
-	is moved to lib/gdb.exp and renamed repeat_cmd_until.  The existing procedure
-	gdb_step_until in lib/gdb.exp is simpler variant of the new repeat_cmd_until
-	procedure.  The existing procedure gdb_step_until is changed to just call
-	the new repeat_cmd_until procedure with the command set to "step" and an
-	optional CURRENT string.  The default CURRENT string is set to "\}" to work
-	with the existing uses of procedure gdb_step_until.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix regexp in gdb.arch/ftrace-insn-reloc.exp
-	With test-case gdb.arch/ftrace-insn-reloc.exp and host board
-	local-remote-host-notty and target board native-gdbserver I run into:
-	...
-	(gdb) info sharedlibrary^M
-	From To    Syms Read   Shared Object Library^M
-	$hex $hex  Yes         /lib64/ld-linux-x86-64.so.2^M
-	$hex $hex  Yes         /home/remote-host/libinproctrace.so^M
-	$hex $hex  Yes         /lib64/libm.so.6^M
-	$hex $hex  Yes         /lib64/libc.so.6^M
-	$hex $hex  Yes         /lib64/libdl.so.2^M
-	$hex $hex  Yes (*)     /usr/lib64/libstdc++.so.6^M
-	$hex $hex  Yes (*)     /lib64/libgcc_s.so.1^M
-	$hex $hex  Yes         /lib64/libpthread.so.0^M
-	(*): Shared library is missing debugging information.^M
-	(gdb) FAIL: gdb.arch/ftrace-insn-reloc.exp: IPA loaded
-	...
-	due to trying to match libinproctrace.so using the target path, while the
-	command lists it using the host path.
-
-	Fix this by making the regexp less strict.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle remote host in gdb_load_shlib
-	With test-case gdb.arch/ftrace-insn-reloc.exp and host board
-	local-remote-host-notty and target board native-gdbserver I run into:
-	...
-	(gdb) tstart^M
-	Target returns error code '.In-process agent library not loaded in process.  \
-	  Fast and static trace points unavailable.'.^M
-	(gdb) FAIL: gdb.arch/ftrace-insn-reloc.exp: start trace experiment
-	...
-
-	Fix this by:
-	- handling remote host in gdb_load_shlib, and
-	- moving the gdb_load_shlib to after the clean_restart, such that the
-	  set solib-search-path can take effect.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/i386-biarch-core.exp for remote host
-	Fix test-case gdb.arch/i386-biarch-core.exp using gdb_download_remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle REMOTE_HOST_USERNAME in local-remote-host
-	Handle REMOTE_HOST_USERNAME in local-remote-host, similar to how that's done for
-	REMOTE_TARGET_USERNAME in remote-gdbserver-on-localhost.
-
-	This helps to keep the home dir clean.
-
-	Since the setup makes $build/gdb/testsuite on build unreadable for the remote
-	host, we run into permission problems for GDB and the data-directory, so fix
-	this (as was done for gdbserver in gdbserver-base.exp) using file normalize.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Set remotedir by default in some boards
-	When doing a gdb_simple_compile, and downloading the resulting exec $obj
-	to target the result $target_obj may be a relative file path, which may give
-	problems when trying to do:
-	...
-	remote_exec target $target_obj
-	...
-
-	Fix/workaround this on some target boards by setting remotedir by default, and
-	add a corresponding test in gdb.testsuite/board-sanity.exp.
-
-	This doesn't work for host/target board local-remote-host-native, so xfail this.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix have_avx for remote target
-	In proc have_avx we compile some source into an exec, resulting in a file $obj
-	on build, and then attempt to execute it on target:
-	...
-	    set result [remote_exec target $obj]
-	...
-
-	Fix this by using gdb_remote_download target.
-
-	Likewise in a few other procs that use "remote_exec target".
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle precise-aligned-alloc.c for remote host
-	With test-case gdb.arch/i386-sse.exp (and likewise gdb.arch/i386-avx.exp) and
-	host board local-remote-host-notty and target board native-gdbserver I run
-	into:
-	...
-	gdb compile failed, i386-sse.c:68:10: fatal error: \
-	  ../lib/precise-aligned-alloc.c: No such file or directory
-	 #include "../lib/precise-aligned-alloc.c"
-	          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	...
-
-	Fix this using '#include "precise-aligned-alloc.c"' and making that work with
-	non-remote and remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle remote host in escape_for_host
-	With test-case gdb.arch/ftrace-insn-reloc.exp and host board
-	local-remote-host-notty and target board native-gdbserver, I run into:
-	...
-	FAIL: gdb.arch/ftrace-insn-reloc.exp: IPA loaded
-	...
-	due to having:
-	...
-	$ readelf -d ftrace-insn-reloc | grep RUNPATH
-	 0x000000000000001d (RUNPATH)            Library runpath: []
-	...
-	instead of:
-	...
-	$ readelf -d ftrace-insn-reloc | grep RUNPATH
-	 0x000000000000001d (RUNPATH)            Library runpath: [$ORIGIN]
-	...
-
-	Handle this in escape_for_host.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add escape_for_host
-	In gdb_compile we have:
-	...
-	           lappend new_options "ldflags=-Wl,-rpath,\\\$ORIGIN"
-	...
-	and we could improve readability by using {} rather than "":
-	...
-	           lappend new_options {ldflags=-Wl,-rpath,\$ORIGIN}
-	...
-
-	But rather than manually adding escapes in a string, add a new proc
-	escape_for_host that care of this for us, allowing us to write:
-	...
-	           lappend new_options [escape_for_host {ldflags=-Wl,-rpath,$ORIGIN}]
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-17  Alan Modra  <amodra@gmail.com>
-
-	mach-o: out of memory in get_dynamic_reloc_upper_bound
-		* mach-o.c (bfd_mach_o_canonicalize_dynamic_reloc): Move sanity
-		checks..
-		(bfd_mach_o_get_dynamic_reloc_upper_bound): ..to here.
-
-	Another source_sh
-		* scripttempl/z80.sc: Use source_sh to source elf.sc.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Declare ada unsupported for remote host
-	Currently gdb_ada_compile doesn't support remote host.
-
-	Make this explicit in allow_ada_tests.
-
-	Tested on x86_64-linux.
-
-2023-03-17  Jan Beulich  <jbeulich@suse.com>
-
-	gas: apply md_register_arithmetic also to unary '+'
-	Even a unary '+' has to be considered arithmetic; at least on x86 in
-	Intel Syntax mode otherwise bogus insn operands may be accepted.
-	Convert this specific case to binary + (i.e. 0 + <register>). (An
-	implication is that md_operator(,1,) would need to deal with arch-
-	specific equivalents of unary '+' is a similar way, if such an arch-
-	specific variant would be specified in the first place.)
-
-	To avoid duplicating what make_expr_symbol() does to construct a
-	constant-zero expression, simply make its previously local variable a
-	file-scope static one. This way there's also no need to invoke
-	clean_up_expression().
-
-2023-03-17  Jan Beulich  <jbeulich@suse.com>
-
-	gas: expose flag_macro_alternate globally
-	Yet again with the removal of gasp about 20 years ago this extra level
-	of indirection isn't necessary anymore either. Drop macro.c's local
-	variable and make as.c's global.
-
-	While doing the conversion, switch the variable to "bool".
-
-2023-03-17  Jan Beulich  <jbeulich@suse.com>
-
-	gas: use flag_mri directly in macro processing
-	Again with the removal of gasp about 20 years ago the extra level of
-	indirection isn't necessary anymore. Drop macro.c's local variable and
-	use the global flag directly.
-
-	gas: isolate macro_strip_at to macro.c
-	This removes a leftover from i960 support; with that nothing is left
-	which would set macro_strip_at to non-zero, so the variable is converted
-	to a #define (retaining the logic in case a new user would appear) and
-	macro_init()'s respective parameter is dropped.
-
-	gas: drop function pointer parameter from macro_init()
-	With the removal of gasp (about 20 years ago) the need for this kind-
-	of-hook has disappeared. Go a step beyond merely moving the to be called
-	function: Inline its contents right at the sole call site.
-
-2023-03-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix filename in gdb.debuginfod/crc_mismatch.exp
-	After running test-case gdb.debuginfod/crc_mismatch.exp, I find a dir called '$':
-	...
-	$ ls $build/gdb/testsuite/
-	$      config.log     gdb.log  lib       outputs   site.exp
-	cache  config.status  gdb.sum  Makefile  site.bak  temp
-	...
-
-	Fix this by removing the stray '$' here:
-	...
-	set debugfile "$[standard_output_file ${testfile}.debug]"
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: extended documentation for inferior function calls
-	I noticed that the documentation for inferior function calls doesn't
-	say much about what happens if/when an inferior function call is
-	interrupted, i.e. it doesn't describe what the dummy frame looks like
-	on the stack, or how GDB behaves when the inferior is continued and
-	reaches the dummy frame.
-
-	This commit aims to add some of this missing information.
-
-2023-03-16  Tom Tromey  <tromey@adacore.com>
-
-	Fix build breakage in rs6000-aix-tdep.c
-	A recent change to rs6000-aix-tdep.c broke the build.  This patch
-	fixes it by declaring a few target descriptions in ppc-tdep.h and then
-	not including the various features .c files in rs6000-aix-tdep.c.
-
-2023-03-16  Hui Li  <lihui@loongson.cn>
-
-	gdb/testsuite: Add support for LoongArch in gdb.base/float.exp
-	The test results on LoongArch as follows:
-
-	Without this patch:
-
-	```
-	$ make check-gdb TESTS="gdb.base/float.exp"
-	=== gdb Summary ===
-
-	 # of expected passes		2
-	 # of unexpected failures	1
-
-	```
-	With this patch:
-
-	```
-	$ make check-gdb TESTS="gdb.base/float.exp"
-	=== gdb Summary ===
-
-	 # of expected passes		3
-
-	```
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-16  Christophe Lyon  <christophe.lyon@linaro.org>
-
-	Re: Add --enable-linker-version option
-	The recently-added ld-version*.d tests expect
-	.*GNU ld \(GNU Binutils\) 2.*
-	in the .comment section.
-
-	However, when buidling --with-pkgversion=XXX, we get
-	GNU ld (XXX) 2.[...]
-	instead, leading to a spurious FAIL.
-
-	This small patch replaces "GNU Binutils" with ".*" instead.
-
-	I inspected other testcases to see if we already had similar
-	occurrences but I couldn't see any, so I hope this fix is OK for the
-	purpose?
-
-	Thanks,
-
-	Christophe
-
-2023-03-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: spring clean the Python unwinders documentation
-	The documentation for the Python Unwinders API could do with some
-	improvement.  The 'Unwinder Skeleton Code' has an error: it says
-	'unwinders' when it should say 'unwinder' in one case.
-
-	Additionally, by placing the 'Unwinder Skeleton Code' before the
-	section 'Registering an Unwinder' we have skipping including the
-	registration line in the skeleton code.  But this is confusion for
-	users (I think) as the skeleton code is almost complete, except for
-	one missing line which the user has to figure out for themselves.  By
-	reordering the sections, it is now obvious that the registration
-	should be included in the skeleton code, and the example is therefore
-	almost complete.
-
-	Additionally, in the example skeleton code the way in which the
-	frame-id was being built (using the current stack point and program
-	counter is (a) not correct, and (b) counter to what is laid out in the
-	'Unwinder Input' section when describing building a frame-id.
-
-	I've removed the incorrect code and replaced it with more generic
-	comments indicating what needs to be done.  As the actual actions that
-	need to be performed are both architecture specific, and dependent on
-	the function being unwound, it's almost impossible to include more
-	exact code here, but I think what I'm proposing is less misleading
-	than what we had before.
-
-	I've also added more cross references.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-03-16  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: disable ilp32 tests for aarch64-qnx
-	aarch64nto32 emulation isn't supported. The tests will then fall back
-	on aarch64elf32. It does work but some extra warnings are being
-	generated because the "-z relro" being added aarch64nto but ignored by
-	aarch64elf32 emulation.
-	Skip the tests to avoid any problems.
-
-	ld/ChangeLog:
-
-	        * testsuite/ld-aarch64/emit-relocs-112-overflow.d: Skip for
-	        aarch64nto.
-	        * testsuite/ld-aarch64/emit-relocs-112.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-113.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-114-overflow.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-114.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-115.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-116-overflow.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-116.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-117.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-118-overflow.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-118.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-119.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-22.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-23.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-28.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-86-overflow.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-86.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-87.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-88-overflow.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-88.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-89.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-90-overflow.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-90.d: Likewise.
-	        * testsuite/ld-aarch64/emit-relocs-92.d: Likewise.
-	        * testsuite/ld-aarch64/tls-desc-ie-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-all-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-gd-ie-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-gd-le-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-gdesc-le-2-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-gdesc-le-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-ie-le-2-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-ie-le-3-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-ie-le-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-ld-le-small-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-relax-ld-le-tiny-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-tiny-desc-ie-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-tiny-desc-le-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-tiny-gd-ie-ilp32.d: Likewise.
-	        * testsuite/ld-aarch64/tls-tiny-gd-le-ilp32.d: Likewise.
-
-2023-03-16  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: add aarch64nto to ld-aarch64
-	ld/ChangeLog:
-
-	        * testsuite/ld-aarch64/aarch64-elf.exp: Add support for
-	        aarch64nto.
-
-2023-03-16  Clément Chigot  <chigot@adacore.com>
-
-	ld: add support of QNX stack arguments for aarch64nto
-	QNX is handling the stack argument using a .note section. Generate it
-	according to ELF argument -zexecstack, -zstack-size and a new NTO
-	argument --lazy-stack. Another NTO argument --stack mimicking
-	-zstack-size is added in order to ensure compatibility with previously
-	made NTO linkers.
-	This requires a new emultempl nto.em which is applied above the default
-	${ARCH}elf.em.
-
-	ld/ChangeLog:
-
-		* emulparams/aarch64nto.sh: Move to nto.em.
-		* emultempl/nto.em: New file.
-		* testsuite/ld-aarch64/aarch64-nto.exp: New test.
-		* testsuite/ld-aarch64/nto-stack-note-1.d: New test.
-		* testsuite/ld-aarch64/nto-stack-note-2.d: New test.
-		* testsuite/ld-aarch64/start.s: New test.
-
-2023-03-16  Clément Chigot  <chigot@adacore.com>
-
-	readelf: add support for QNT_STACK note subsections
-	QNX provides some .note subsections. QNT_STACK is the one controling
-	the stack allocation.
-
-	bfd/ChangeLog:
-
-		* elf.c (BFD_QNT_CORE_INFO): Delete.
-		(BFD_QNT_CORE_STATUS): Likewise.
-		(BFD_QNT_CORE_GREG): Likewise.
-		(BFD_QNT_CORE_FPREG): Likewise.
-		(elfcore_grok_nto_note): Replace BFD_QNT_* by QNT_*.
-
-	binutils/ChangeLog:
-
-		* readelf.c (get_qnx_elfcore_note_type): New function.
-		(print_qnx_note): New function.
-		(process_note): Add support for QNX support.
-
-	include/ChangeLog:
-
-		* elf/common.h (QNT_DEBUG_FULLPATH): New define.
-		(QNT_DEBUG_RELOC): New define.
-		(QNT_STACK): New define.
-		(QNT_GENERATOR): New define.
-		(QNT_DEFAULT_LIB): New define.
-		(QNT_CORE_SYSINFO): New define.
-		(QNT_CORE_INFO): New define.
-		(QNT_CORE_STATUS): New define.
-		(QNT_CORE_GREG): New define.
-		(QNT_CORE_FPREG): New define.
-		(QNT_LINK_MAP): New define.
-
-2023-03-16  Clément Chigot  <chigot@adacore.com>
-
-	configure: add new target aarch64-*-nto*
-	This target has its own ld emulation based on aarch64elf.em.
-
-2023-03-16  Cupertino Miranda  <cupertino.miranda@oracle.com>
-
-	BPF relocations review / refactoring
-	- Removed not needed relocations.
-	- Renamed relocations to match llvm and linux kernel.
-
-	Relocation changes:
-	  R_BPF_INSN_64 	=> R_BPF_64_64
-	  R_BPF_INSN_DISP32 	=> R_BPF_64_32
-	  R_BPF_DATA_32 	=> R_BPF_64_ABS32
-	  R_BPF_DATA_64 	=> R_BPF_64_ABS64
-
-	ChangeLog:
-
-	  * bfd/bpf-reloc.def: Created file with BPF_HOWTO macro entries.
-	  * bfd/reloc.c: Removed non needed relocations.
-	  * bfd/bfd-in2.h: regenerated.
-	  * bfd/libbfd.h: regenerated.
-	  * bfd/elf64-bpf.c: Changed relocations.
-	  * include/elf/bpf.h: Adapted relocation values/names.
-	  * gas/config/tc-bpf.c: Changed relocation mapping.
-
-2023-03-16  Alan Modra  <amodra@gmail.com>
-
-	Re: Add --enable-linker-verssion
-	Output sections without any input sections to initialise their flags
-	have their flags initialised by data statements to LOAD, ALLOC,
-	HAS_CONTENTS by default.  This is wrong for .comment.  Fix that by
-	making the script initialise the section type to INFO, one of the
-	noalloc section types.  That also allows the address of .comment to be
-	set to zero, as is usual for non-alloc sections.
-
-	Also, use source_sh for all of the sourced scripts to set up make
-	dependencies.
-
-		PR 30187
-		* scripttempl/misc-sections.sc: Set .comment address to zero
-		and type to INFO.
-		* scripttempl/ft32.sc: Fix breakages from last edit.
-		* scripttempl/arclinux.sc: Use source_sh to source DWARF.sc
-		and misc-sections.sc.
-		* scripttempl/avr.sc: Likewise.
-		* scripttempl/dlx.sc: Likewise.
-		* scripttempl/elf.sc: Likewise.
-		* scripttempl/elf32cr16.sc: Likewise.
-		* scripttempl/elf32crx.sc: Likewise.
-		* scripttempl/elf32msp430.sc: Likewise.
-		* scripttempl/elf64bpf.sc: Likewise.
-		* scripttempl/elf64hppa.sc: Likewise.
-		* scripttempl/elf_chaos.sc: Likewise.
-		* scripttempl/elfarc.sc: Likewise.
-		* scripttempl/elfarcv2.sc: Likewise.
-		* scripttempl/elfd10v.sc: Likewise.
-		* scripttempl/elfd30v.sc: Likewise.
-		* scripttempl/elfm68hc11.sc: Likewise.
-		* scripttempl/elfm68hc12.sc: Likewise.
-		* scripttempl/elfm9s12z.sc: Likewise.
-		* scripttempl/elfmicroblaze.sc: Likewise.
-		* scripttempl/elfxgate.sc: Likewise.
-		* scripttempl/elfxtensa.sc: Likewise.
-		* scripttempl/epiphany_4x4.sc: Likewise.
-		* scripttempl/i386beos.sc: Likewise.
-		* scripttempl/i386go32.sc: Likewise.
-		* scripttempl/ia64vms.sc: Likewise.
-		* scripttempl/ip2k.sc: Likewise.
-		* scripttempl/iq2000.sc: Likewise.
-		* scripttempl/mep.sc: Likewise.
-		* scripttempl/mmo.sc: Likewise.
-		* scripttempl/nds32elf.sc: Likewise.
-		* scripttempl/pru.sc: Likewise.
-		* scripttempl/v850.sc: Likewise.
-		* scripttempl/v850_rh850.sc: Likewise.
-		* scripttempl/visium.sc: Likewise.
-		* scripttempl/xstormy16.sc: Likewise.
-		* scripttempl/z80.sc: Likewise.
-		* testsuite/ld-scripts/ld-version-2.d: Don't skip ft32 or pru.
-
-2023-03-16  Alan Modra  <amodra@gmail.com>
-
-	cpu/mem.opc whitespace tidy
-	cpu/
-		* mep.opc: Whitespace and formatting.
-	opcodes/
-		* mep-asm.c: Regenerate.
-		* mep-dis.c: Regenerate.
-
-2023-03-16  Alan Modra  <amodra@gmail.com>
-
-	PR30217, dynamic relocations using local dynamic symbols
-	glibc's ld.so ignores local dynamic symbols.  It's been that way
-	forever.  We therefore can't use them on dynamic relocations.  Fixing
-	that problem uncovered another problem in sorting of dynamic relocs,
-	caused no doubt by copying make_iplt_section (where we don't want
-	reloc sorting by the generic gold function, we want iplt relocs last)
-	to make_lplt_section (where we do want sorting).
-
-		PR 30217
-		* powerpc.cc (branch_needs_plt_entry): New function.
-		(Target_powerpc::plt_off): Use it here..
-		(Target_powerpc::Scan::global): ..and here to correct PLT16 reloc
-		handling for forced-local global symbols.
-		(Output_data_plt_powerpc::add_entry): Rename "stash"
-		parameter "is_local".  Emit relative relocs for globals that
-		are forced local, and don't set_needs_dynsym_entry.
-		(Target_powerpc::make_lplt_section): Don't create a separate
-		reloc section, use rela_dyn.
-		(Target_powerpc::make_brlt_section): Likewise.
-
-2023-03-16  Alan Modra  <amodra@gmail.com>
-
-	Re: Sanity check read_section_stabs_debugging_info
-		* rddbg.c (read_section_stabs_debugging_info): Don't segfault on
-		zero size string section.
-
-2023-03-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-15  Tom Tromey  <tromey@adacore.com>
-
-	Fix formatting in gdb/printing.py
-	According to black 23, gdb/printing.py was mis-formatted.  This patch
-	fixes it.
-
-2023-03-15  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Enable vector register visibility in core for AIX.
-	This patch enables AIX folks to see vector register contents while they
-	analyse the core file.
-
-2023-03-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix re-used exec in gdb.arch/ftrace-insn-reloc.exp
-	In test-case gdb.arch/ftrace-insn-reloc.exp we generate two executables with
-	the same name, which is confusing and known to cause trouble.
-
-	Fix this by making the executable names unique.
-
-	Tested on x86_64-linux.
-
-2023-03-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/amd64-stap-special-operands.exp for remote host
-	With test-case gdb.arch/amd64-stap-special-operands.exp and host board
-	local-remote-host-notty and target board native-gdbserver I run into:
-	...
-	(gdb) break -pstap three_arg^M
-	No probe matching objfile=`<any>', provider=`<any>', name=`three_arg'^M
-	Make breakpoint pending on future shared library load? (y or [n]) n^M
-	(gdb) FAIL: gdb.arch/amd64-stap-special-operands.exp: probe: three_arg: \
-	  gdb_breakpoint: set breakpoint at -pstap three_arg
-	...
-	due to compiling two executables with the same name, and when uploading the
-	second one from host to build, we run into:
-	...
-	Upload from 127.0.0.1 failed, \
-	  $outputs/gdb.arch/amd64-stap-special-operands/amd64-stap-special-operands: \
-	  Text file busy.
-	...
-
-	Fix this by making the executable names unique.
-
-	Tested on x86_64-linux.
-
-2023-03-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/i386-pkru.exp for native-gdbserver
-	With test-case gdb.arch/i386-pkru.exp and target board native-gdbserver we run
-	into:
-	...
-	FAIL: gdb.arch/i386-pkru.exp: variable after reading pkru
-	...
-
-	This looks similar to the the problem for which there's already an xfail, so
-	fix this by extending the xfail matching.
-
-	Tested on x86_64-linux.
-
-	Also tested on openSUSE Tumbleweed, where all tests in the test-case pass.
-
-2023-03-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Unset DEBUGINFOD_URLS on remote host
-	When running test-case gdb.arch/i386-pkru.exp with host board
-	local-remote-host-notty and target board native-gdbserver on openSUSE
-	Tumbleweed (with DEBUGINFOD_URLS set), I run into:
-	...
-	This GDB supports auto-downloading debuginfo from the following URLs:^M
-	  <https://debuginfod.opensuse.org/>^M
-	Enable debuginfod for this session? (y or [n]) ^CQuit^M
-	(gdb) FAIL: gdb.arch/i386-pkru.exp: runto: run to main
-	...
-
-	The problem is that the unsetenv for DEBUGINFOD_URLS in default_gdb_init:
-	...
-	    # If DEBUGINFOD_URLS is set, gdb will try to download sources and
-	    # debug info for f.i. system libraries.  Prevent this.
-	    unset -nocomplain ::env(DEBUGINFOD_URLS)
-	...
-	doesn't work on remote host.
-
-	Fix this by using "set debuginfod enabled off" for remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/amd64*.exp with local-remote-host-native.exp
-	There's a number of gdb.arch/amd64*.exp test-cases that fail with host+target
-	board local-remote-host-native.exp because of using a .S file, generated from
-	a .c file.
-
-	If a test-case compiles the .S file when executing on remote host,
-	the .S file is already copied from build to host, such that it's available for
-	the compiler.
-
-	But that's not the case for the .c file, which is needed by gdb to show a
-	source line:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	^M
-	Breakpoint 2, fn2 (y=y@entry=25, x=x@entry=6) at amd64-entry-value-inline.c:32^M
-	32      in gdb.arch/amd64-entry-value-inline.c^M
-	(gdb) FAIL: gdb.arch/amd64-entry-value-inline.exp: continue to breakpoint: \
-	  break-here
-	...
-
-	Fix this by using "gdb_remote_download host <.c file>".
-
-	Tested on x86_64-linux, with host+target board local-remote-host-native.
-
-2023-03-15  Nick Clifton  <nickc@redhat.com>
-
-	Add --enable-linker-version option to bfd linker to add an entry in the .comment section.
-	   PR 30187
-	  * NEWS: Mention the new feature. * ld.texi: Document the new feature. * ldgram.y: Handle LINKER_VERSION token. * ldlang.c (lang_add_version): New function. (enable_linker_version): New global variable. * ldlang.h (land_add_version): Prototype. (enable_linker_version): Export. * ldlex.h (OPTION_ENABLE_LINKER_VERSION): Define. (OPTION_DISABLE_LINKER_VERSION): Define. * ldlex.l (LINKER_VERSION): Add token. * lexsup.c (ld_options): Add --enable-linker-version and --disable-linker-version. (parse_args): Handle the new options. * scripttempl/arclinux.sc: Remove stabs and comment sections and replace with inclusion of misc-sections.sc * scripttempl/avr.sc: Likewise. * scripttempl/dlx.sc: Likewise. * scripttempl/elf.sc: Likewise. * scripttempl/elf32cr16.sc: Likewise. * scripttempl/elf32crx.sc: Likewise. * scripttempl/elf32msp430.sc: Likewise. * scripttempl/elf64bpf.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfarc.sc: Likewise. * scripttempl/elfarcv2.sc: Likewise. * scripttempl/elfd10v.sc: Likewise. * scripttempl/elfd30v.sc: Likewise. * scripttempl/elfm68hc11.sc: Likewise. * scripttempl/elfm68hc12.sc: Likewise. * scripttempl/elfm9s12z.sc: Likewise. * scripttempl/elfmicroblaze.sc: Likewise. * scripttempl/elfxgate.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/epiphany_4x4.sc: Likewise. * scripttempl/ft32.sc: Likewise. * scripttempl/ip2k.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/mep.sc: Likewise. * scripttempl/nds32elf.sc: Likewise. * scripttempl/pru.sc: Likewise. * scripttempl/v850.sc: Likewise. * scripttempl/v850_rh850.sc: Likewise. * scripttempl/visium.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. * scripttempl/z80.sc: Likewise. * testsuite/ld-scripts/script.exp: Run new tests. * scripttempl/misc-sections.sc: New file. * testsuite/ld-scripts/ld-version-2.d: New file. * testsuite/ld-scripts/ld-version.d: New file. * testsuite/ld-scripts/ld-version.t: New file.
-
-	Fix an illegal memory access when disassembling a corrupt MeP file.
-	  PR 30231
-	  * mep.opc (mep_print_insn): Check for an out of range index.
-
-	Fix an illegal memory access when disassebling a corrupt ARM file.
-	  PR 30230
-	  * arm-dis.c (get_sym_code_type): Check for non-ELF symbols.
-
-2023-03-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Implement DAP variables, scopes, and evaluate requests
-	The DAP code already claimed to implement "scopes" and "evaluate", but
-	this wasn't done completely correctly.  This patch implements these
-	and also implements the "variables" request.
-
-	After this patch, variables and scopes correctly report their
-	sub-structure.  This also interfaces with the gdb pretty-printer API,
-	so the output of pretty-printers is available.
-
-2023-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Hide the implementation of gdb_mpf
-	This renames the data member of gdb_mpf and makes it private.  It also
-	adds a single new method to aid in this change.  Unlike the earlier
-	changes here, I did this one all together because gdb_mpf has very few
-	uses.
-
-	Rename gdb_mpq::val and make contents private
-	This changes gdb_mpq to hide its data, and renames the data member
-	from 'val' to 'm_val', following gdb convention.
-
-2023-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Add operators and methods to gdb_mpq
-	This adds some operators and methods to gdb_mpq, in preparation for
-	making its implementation private.
-
-	This only adds the operators currently needed by gdb.  More could be
-	added as necessary.
-
-2023-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Rename gdb_mpz::val and make contents private
-	This changes gdb_mpz to hide its data, and renames the data member
-	from 'val' to 'm_val', following gdb convention.
-
-2023-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Add methods and operators to gdb_mpz
-	This adds various methods and operators to gdb_mpz, as a step toward
-	hiding the implementation.
-
-	This only adds the operators that were needed.  Many more could be
-	added as required.
-
-2023-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Clean up gmp-utils.h includes
-	gmp-utils.h includes "defs.h", but normally the rule in gdb is that
-	the .c files include this first.  This patch changes this code to
-	match the rest of gdb.
-
-2023-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Fix DAP frame bug with older versions of Python
-	Tom de Vries pointed out that one DAP test failed on Python 3.6
-	because gdb.Frame is not hashable.
-
-	This patch fixes the problem by using a list to hold the frames.  This
-	is less efficient but there normally won't be that many frames.
-
-	Tested-by: Tom de Vries <tdevries@suse.de>
-
-2023-03-14  Nick Clifton  <nickc@redhat.com>
-
-	Prevent an over large memory allocation in readelf when parsing a corrupt DWARF file.
-	  PR 30227
-	  * dwarf.c (process_cu_tu_index): Prevent excessive memory allocation when nused is large and ncols is zero.
-
-2023-03-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.testsuite/board-sanity.exp
-	Add a test-case that tests the sanity of target/host boards.
-
-	It contains a number of tests related to remote file manipulation, exercising:
-	- remote_upload
-	- remote_download
-	- remote_file exists
-	- remote_file delete
-	which check that these work together as expected.
-
-	Tested on x86_64-linux, with all relevant gdb/testsuite/boards/*.exp boards.
-
-	For target board remote-stdio-gdbserver.exp, this revealed a trivial problem
-	with the return value of proc ${board}_file for delete, so fix this.
-
-	The test-case shows that the proc ${board}_download in
-	local-remote-host-native.exp is broken, so remove it.
-
-	Likewise for board local-remote-host.exp, so remove proc ${board}_download and
-	associated ${board}_file.
-
-	Tested on x86_64-linux.
-
-2023-03-14  Nick Clifton  <nickc@redhat.com>
-
-	Adjust the decoded line output to fit into 80 columns.
-	  PR 30216
-	  * dwarf.c (display_debug_lines_decoded): Reduce space for filenames.
-	  * testsuite/binutils-all/dw5.W: Adjust expected output.
-	  * testsuite/binutils-all/objdump.WL: Adjust expected output.
-
-	Fix assembler documentation regarding data directives.
-	 PR 30206
-	 * doc/as.texi (Pseudo Ops): Document that data directives such as .byte and .int are not intended for encoding instructions.
-
-2023-03-14  Alan Modra  <amodra@gmail.com>
-
-	objdump segfault after symbol table error
-	This memcpy segfaults if symcount is -1 (=> syms is NULL).
-	      memcpy (sorted_syms, symcount ? syms : dynsyms,
-		      sorted_symcount * sizeof (asymbol *));
-
-		* objdump.c (slurp_symtab): Don't leave symcount as -1 after
-		an error.
-		(slurp_dynamic_symtab): Likewise for dynsymcount.
-
-2023-03-14  Alan Modra  <amodra@gmail.com>
-
-	Sanity check read_section_stabs_debugging_info
-		* rddbg.c (read_section_stabs_debugging_info): Exclude sections
-		without contents.  Use bfd_malloc_and_get_section.  Don't alloc
-		one extra for strings.
-
-	gas/read.c: init more statics
-		* read.c (current_name, current_label, dwarf_file, dwarf_line): Move
-		to file scope.
-		(pobegin): Tidy pop_override_ok.
-		(read_a_source_file): Make last_eol an auto var.
-		(s_reloc): Constify bfd_relocs.
-		(read_begin): Init more variables.
-
-2023-03-14  Alan Modra  <amodra@gmail.com>
-
-	gas .include and .incbin
-	This fixes a bug in .include and .incbin where given an absolute path
-	the -I dirs would be searched for the path.
-
-		* read.c (include_dir_count, include_dir_maxlen): Make them size_t.
-		(search_and_open): New function.
-		(s_incbin, s_include): Use search_and_open.
-		(init_include_dir): New function.
-		(add_include_dir): Don't set initial "." dir here.
-		* read.h (include_dir_count, include_dir_maxlen): Update.
-		(init_include_dir, search_and_open): Declare.
-		* as.c (gas_early_init): Call init_include_dir.
-		* config/tc-rx.c (rx_include): Avoid warning by using size_t.
-		* config/tc-tic54x.c (tic54x_set_default_include): Simplify and
-		use notes for include path.
-		(tic54x_mlib): Use search_and_open.
-
-2023-03-14  Alan Modra  <amodra@gmail.com>
-
-	gas/dwarf2dbg.c init more statics
-		* dwarf2dbg.c (dw2_line, dw2_filename): Move to file scope and..
-		(dwarf2_gen_line_info): ..renamed from here.
-		(label_num, last_used, last_used_dir_len): Move to file scope.
-		(dwarf2_init): Init moved statics, except last_used_dir_len.
-
-2023-03-14  Alan Modra  <amodra@gmail.com>
-
-	gas/ecoff.c: don't use zero struct copies to init
-	It might have made sense once upon a time, but doesn't nowadays when
-	compilers expand memset inline.
-
-		* ecoff.c (add_aux_sym_tir, allocate_scope, allocate_vlinks),
-		(allocate_shash, allocate_thash, allocate_tag, allocate_forward),
-		(allocate_thead, allocate_lineno_list): Use memset rather than
-		copying zero struct.
-
-2023-03-14  Alan Modra  <amodra@gmail.com>
-
-	gas/compress-debug.c init all of strm
-		* compress-debug.c (compress_init): Clear all of strm.
-
-2023-03-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add gdbarch::displaced_step_buffer_length
-	The gdbarch::max_insn_length field is used mostly to support displaced
-	stepping; it controls the size of the buffers allocated for the
-	displaced-step instruction, and is also used when first copying the
-	instruction, and later, when fixing up the instruction, in order to
-	read in and parse the instruction being stepped.
-
-	However, it has started to be used in other places in GDB, for
-	example, it's used in the Python disassembler API, and it is used on
-	amd64 as part of branch-tracing instruction classification.
-
-	The problem is that the value assigned to max_insn_length is not
-	always the maximum instruction length, but sometimes is a multiple of
-	that length, as required to support displaced stepping, see rs600,
-	ARM, and AArch64 for examples of this.
-
-	It seems to me that we are overloading the meaning of the
-	max_insn_length field, and I think that could potentially lead to
-	confusion.
-
-	I propose that we add a new gdbarch field,
-	gdbarch::displaced_step_buffer_length, this new field will do
-	exactly what it says on the tin; represent the required displaced step
-	buffer size.  The max_insn_length field can then do exactly what it
-	claims to do; represent the maximum length of a single instruction.
-
-	As some architectures (e.g. i386, and amd64) only require their
-	displaced step buffers to be a single instruction in size, I propose
-	that the default for displaced_step_buffer_length will be the
-	value of max_insn_length.  Architectures than need more buffer space
-	can then override this default as needed.
-
-	I've updated all architectures to setup the new field if appropriate,
-	and I've audited all calls to gdbarch_max_insn_length and switched to
-	gdbarch_displaced_step_buffer_length where appropriate.
-
-	There should be no user visible changes after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbarch: make invalid=True the default for all Components
-	This commit switches the default value for the 'invalid' field from
-	False to True.  All components that previous set the invalid field to
-	True explicitly have had the field removed.
-
-	I think that True is a good choice for the default, this means that we
-	now get the validity checks by default, and if anyone adds a new
-	Component they need to make a choice to add an 'invalid=False' line
-	and disable the validation.
-
-	The flip side of this is that 'invalid=False' seems to be far more
-	common than 'invalid=True'.  But I don't see a huge problem with this,
-	we shouldn't be aiming to reduce our typing, rather we should choose
-	based on which is least likely to introduce bugs.  I think assuming
-	that we should do a validity check will achieve that.
-
-	Some additional components need to have an 'invalid=False' line added
-	to their definition, these are components that have a predefault
-	value, which is sufficient; the tdep code doesn't need to replace this
-	value if it doesn't want to.
-
-	Without adding the 'invalid=False' these components would be
-	considered to be invalid if they have not changed from their
-	predefault value -- but the predefault is fine.
-
-	There's no change in the generated code after this commit, so there
-	will be no user visible changes after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbarch: remove some unneeded predefault="0" from gdbarch_components.py
-	I noticed that there are a bunch of 'predefault="0"' lines in
-	gdbarch_components.py, and that some (just some, not all) of these are
-	not needed.
-
-	The gdbarch is already zero initialized, but these lines seem to
-	exists so that we can know when to compare against "0" and when to
-	compare against "NULL".  At least, this seems to be useful in some
-	places in the generated code.
-
-	Specifically, if we remove the predefault="0" line from the
-	max_insn_length component then we end up generating a line like:
-
-	  gdb_assert (gdbarch->max_insn_length != NULL);
-
-	which doesn't compile as we compare a ULONGEST to NULL.
-
-	In this commit I remove all the predefault="0" lines that I claim are
-	obviously not needed.  These are lines for components that are not
-	Values (i.e. the component holds a function pointer anyway), or for
-	Value components that hold a pointer type, in which case using NULL is
-	fine.
-
-	The only changes after this commit are some fields that have nullptr
-	as their initial value, and gcore_bfd_target now compares to NULL not
-	0 in gdbarch_gcore_bfd_target_p, which, given the field is of type
-	'const char *', seems like an improvement.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbarch: improve generation of validation in gdbarch getters
-	We currently generate some validation code within the gdbarch getter
-	methods.
-
-	This commit adjusts the algorithm used to generate this validation
-	slightly to make the gdbarch.py code (I think) clearer; there's no
-	significant changes to what is generated.
-
-	The validation algorithm for gdbarch values is now:
-
-	  - If the Value has an 'invalid' field that is a string, use that for
-	    validation,
-
-	  - If the Value has its 'predicate' field set to true, then check the
-	    predicate returns true, this ensures the predicate has been
-	    called,
-
-	  - If the Value has its 'invalid' field set to True, or the Value has
-	    'postdefault' field, then check the fields has changed from its
-	    initial value,
-
-	  - Otherwise no validation is performed.
-
-	The only changes after this commit are:
-
-	  - Some comments change slightly, and
-
-	  - For 'gcore_bfd_target' and 'max_insn_length' we now validate by
-	    calling the predicate rather than checking the field value
-	    directly, the underlying check being performed is unchanged
-	    though.
-
-	There should be no user visible changes after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbarch: use predefault for more value components within gdbarch
-	For some reason the following value components of gdbarch:
-
-	  bfloat16_format
-	  half_format
-	  float_format
-	  double_format
-	  long_double_format
-	  so_ops
-
-	All use a postdefault but no predefault to set the default value for
-	the component.
-
-	As the postdefault values for these components are all constant
-	pointers that don't depend on other fields within the gdbarch, then I
-	don't see any reason why we couldn't use a predefault instead.
-
-	So lets do that.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: remove the 'invalid=None' state from gdbarch_components.py
-	This commit ensures that the 'invalid' property of all components is
-	either True, False, or a string.
-
-	Additionally, this commit allows a component to have both a predicate
-	and for the 'invalid' property to be a string.
-
-	Removing the option for 'invalid' to be None allows us to simplify the
-	algorithms in gdbarch.py a little.
-
-	Allowing a component to have both a predicate and an 'invalid' string
-	means that we can validate the value that a tdep sets into a field,
-	but also allow a predicate to ensure that the field has changed from
-	the default.
-
-	This functionality isn't going to be used in this series, but I have
-	tested it locally and believe that it would work, and this might make
-	it easier for others to add new components in the future.
-
-	In gdbarch_types.py, I've updated the type annotations to show that
-	the 'invalid' field should not be None, and I've changed the default
-	for this field from None to False.
-
-	The change to using False as the default is temporary.  Later in this
-	series I'm going to change the default to True, but we need more fixes
-	before that can be done.
-
-	Additionally, in gdbarch_types.py I've removed an assert from
-	Component.get_predicate.  This assert ensured that we didn't have the
-	predicate field set to True and the invalid field set to a string.
-	However, no component currently uses this configuration, and after
-	this commit, that combination is now supported, so the assert can be
-	removed.
-
-	As a consequence of the gdbarch_types.py changes we see some
-	additional comments generated in gdbarch.c about verification being
-	skipped due to the invalid field being False.  This comment is inline
-	with plenty of other getters that also have a similar comment.  Plenty
-	of the getters do have validation, so I think it is reasonable to have
-	a comment noting that the validation has been skipped for a specific
-	reason, rather than due to some bug.
-
-	In gdbarch_components.py I've had to add 'invalid=True' for two
-	components: gcore_bfd_target and max_insn_length, without this the
-	validation in the gdbarch getter would disappear.
-
-	And in gdbarch.py I've reworked the logic for generating the
-	verify_gdbarch function, and for generating the getter functions.
-
-	The logic for generating the getter functions is still not ideal,  I
-	ended up having to add this additional logic block:
-
-	  elif c.postdefault is not None and c.predefault is not None:
-	      print("  /* Check variable changed from pre-default.  */", file=f)
-	      print(f"  gdb_assert (gdbarch->{c.name} != {c.predefault});", file=f)
-
-	which was needed to ensure we continued to generate the same code as
-	before, without this the fact that invalid is now False when it would
-	previously have been None, meant that we dropped the gdb_assert in
-	favour of a comment like:
-
-	  print(f"  /* Skip verify of {c.name}, invalid_p == 0 */", file=f)
-
-	which is clearly not a good change.  We could potentially look at
-	improving this in a later commit, but I don't plan to do that in this
-	series.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: split postdefault setup from invalid check in gdbarch.py
-	Restructure how gdbarch.py generates the verify_gdbarch function.
-	Previously the postdefault handling was bundled together with the
-	validation.  This means that a field can't have both a postdefault,
-	and set its invalid attribute to a string.
-
-	This doesn't seem reasonable to me, I see no reason why a field can't
-	have both a postdefault (used when the tdep doesn't set the field),
-	and an invalid expression, which can be used to validate the value
-	that a tdep might set.
-
-	In this commit I restructure the verify_gdbarch generation code to
-	allow the above, there is no change in the actual generated code in
-	this commit, that will come in later commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: remove yet more 'invalid=True' from gdbarch_components.py
-	Following on from the previous commit, this commit removes yet more
-	'invalid=True' lines from gdbarch_components.py where the invalid
-	setting has no effect.
-
-	Due to the algorithm used in gdbarch.py for generated verify_gdbarch,
-	if a component has a postdefault value then no invalid check will ever
-	be generated for the component, as such setting 'invalid=True' on the
-	component is pointless.  This commit removes the setting of invalid.
-
-	There is no change in the generated code after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: remove unused 'invalid=True' from gdbarch_components.py
-	Due to the algorithm used to generate verify_gdbarch in gdbarch.py, if
-	a component has a predicate, then a validation check will never be
-	generated.
-
-	There are a bunch of components that are declared with both a
-	predicate AND have 'invalid=True' set.  The 'invalid=True' has no
-	effect.
-
-	In this commit I clean things up by removing all these additional
-	'invalid=True' lines.  There's no change in any of the generated files
-	after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-13  Tom Tromey  <tromey@adacore.com>
-
-	Fix crash in inside_main_func
-	gdb 13.1 crashes while running the rust compiler's debugger tests.
-	The crash has a number of causes.
-
-	First, the rust compiler still uses the C++-like _Z mangling, but with
-	its own twist -- some hex digits added to the end of a symbol.  So,
-	while gdb finds the correct name of "main":
-
-	(top-gdb) p name
-	$13 = 0x292e0c0 "rustc_gdb_1031745::main"
-
-	It isn't found in the minsyms, because C++ demangling yields:
-
-	[99] t 0x90c0 _ZN17rustc_gdb_10317454main17h5b5be7fe16a97225E section .text  rustc_gdb_1031745::main::h5b5be7fe16a97225  zko06yobckx336v
-
-	This could perhaps be fixed.  I also filed a new PR to suggest
-	preferring the linkage name of the main program.
-
-	Next, the rust compiler emits both a DW_TAG_subprogram and a
-	DW_TAG_namespace for "main".  This happens because the file is named
-	"main.rs" -- i.e., the bug is specific to the source file name.  The
-	crash also seems to require the nested function inside of 'main', at
-	least for me.  The namespace always is generated, but perhaps this
-	changes the ordering in the DWARF.
-
-	When inside_main_func looks up the main symbol, it finds the namespace
-	symbol rather than the function.  (I filed a bug about fixing gdb's
-	symbol tables -- long overdue.)
-
-	Meanwhile, as I think it's important to fix this crash sooner rather
-	than later, this patch changes inside_main_func to check that the
-	symbol that is found is LOC_BLOCK.  This perhaps should have been done
-	in the first place, anyway.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30158
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/tui-window-factory.exp for remote host
-	When running gdb.python/tui-window.exp with host board
-	local-remote-host-notty and target board native-gdbserver, I get:
-	...
-	FAIL: gdb.python/tui-window-factory.exp: msg_2: \
-	  check test_window box (box check: ul corner is l, not +)
-	...
-
-	The problem is that the result of Term::prepare_for_tui is not checked.
-
-	Fix this by adding the missing check.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/tui-window.exp for remote host
-	When running gdb.python/tui-window.exp with host board
-	local-remote-host-notty and target board native-gdbserver, I get:
-	...
-	UNSUPPORTED: gdb.python/tui-window.exp: TUI not supported
-	FAIL: gdb.python/tui-window.exp: test title
-	...
-
-	Fix this by adding the missing return after the unsupported.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/completion.exp for local-remote-host-notty
-	When running test-case gdb.tui/completion.exp with host board
-	local-remote-host-notty and target board native-gdbserver, I get:
-	...
-	FAIL: gdb.tui/completion.exp: completion of layout names: \
-	  tab completion (timeout)
-	...
-
-	The test-case contains a few tests that do tab completion, which requires
-	readline, which is unavailable with host board local-remote-host-notty.
-
-	Fix this by adding the missing check for readline_is_used.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/tui-layout.exp for remote host
-	When running test-case gdb.tui/tui-layout.exp with host board
-	local-remote-host-notty and target board native-gdbserver, I get:
-	...
-	FAIL: gdb.tui/tui-layout.exp: terminal=dumb: execution=false: layout=asm: \
-	  layout asm (timeout)
-	...
-
-	The problem is that the test-case expects that the default "setenv TERM dumb"
-	has effect, which is not the case for remote host.
-
-	Fix this by skipping the test for remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/tui-nl-filtered-output.exp for remote host
-	When running test-case gdb.tui/tui-nl-filtered-output.exp with host board
-	local-remote-host-notty and target board native-gdbserver, I get:
-	...
-	FAIL: gdb.tui/tui-nl-filtered-output.exp: check printf output
-	...
-
-	The problem is that Term::enter_tui is returning 0, but the test-case doesn't
-	check for this, and consequently runs unsupported tests.
-
-	Fix this by adding the missing check.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require ![is_remote host] for TUI
-	When running test-case gdb.tui/corefile-run.exp with both host and target board
-	local-remote-host-native.exp, we run into:
-	...
-	FAIL: gdb.tui/corefile-run.exp: load corefile
-	...
-	while this passes with USE_TUI=0.
-
-	The problem is that the TUI setup code uses "setenv TERM ansi", which has no
-	effect on remote host.
-
-	I can confirm this analysis by working around this problem in
-	local-remote-host-native.exp like this:
-	...
-	-    spawn $RSH -t -l $username $remote $cmd
-	+    spawn $RSH -t -l $username $remote "export TERM=ansi; $cmd"
-	...
-
-	For now, simply make TUI unsupported for remote host, by returning 0 in
-	prepare_for_tui.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle USE_TUI in gdb.tui/corefile-run.exp
-	Once in a while I find myself rewriting a TUI test-case into a non-TUI
-	test-case, to better understand whether the problem I'm looking at is
-	related to the TUI or not.
-
-	I've got the impression that I've done this sufficiently often that it's worth
-	committing the non-TUI version, so having just written a non-TUI version of
-	gdb.tui/corefile-run.exp, let's commit it.
-
-	The non-TUI version can be enabled by doing:
-	...
-	$ make check "RUNTESTFLAGS=gdb.tui/corefile-run.exp USE_TUI=0"
-	...
-
-	Also remove hard-coding of a source line number.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix untested message in gdb.tui/corefile-run.exp
-	In test-case gdb.tui/corefile-run.exp, we have this bit:
-	...
-	require !use_gdb_stub
-	if { [target_info gdb_protocol] == "extended-remote" } {
-	    untested "not supported"
-	    return
-	}
-	...
-
-	So with target board native-gdbserver we get:
-	...
-	UNSUPPORTED: gdb.tui/corefile-run.exp: require failed: !use_gdb_stub
-	...
-	and with target board native-extended-gdbserver instead:
-	...
-	UNTESTED: gdb.tui/corefile-run.exp: not supported
-	...
-
-	Fix this by:
-	- adding an optional argument target_description to proc
-	  target_can_use_run_cmd
-	- handling the target_description == core &&
-	  [target_info gdb_protocol] == "extended-remote" case in the proc
-	- using require {target_can_use_run_cmd core}
-	such that now in both cases we have:
-	...
-	UNSUPPORTED: gdb.tui/corefile-run.exp: require failed: \
-	  target_can_use_run_cmd core
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/step-bg-decr-pc-switch-thread.exp for native-gdbserver
-	With test-case gdb.threads/step-bg-decr-pc-switch-thread.exp and target board
-	native-gdbserver, I run into:
-	...
-	(gdb) UNSUPPORTED: gdb.threads/step-bg-decr-pc-switch-thread.exp: \
-	  switch to main thread
-	Remote debugging from host ::1, port 43914^M
-	monitor exit^M
-	Cannot execute this command while the target is running.^M
-	Use the "interrupt" command to stop the target^M
-	and then try again.^M
-	(gdb) WARNING: Timed out waiting for EOF in server after monitor exit
-	...
-
-	Fix this by following the advice and issuing an interrupt command, allowing
-	the following monitor exit command to succeed.
-
-	Tested on x86_64-linux.
-
-2023-03-13  Bruno Larsen  <blarsen@redhat.com>
-
-	[gdb/obvious]: fix python formatting for test gdb.python/py-typeprint.py
-	python black formatter was complaining about the formatting of
-	gdb.python/py-typeprint.py, so this commit corrects it.
-
-2023-03-13  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: add regression test for per-objfile typeprinters
-	PR python/17136 reported an unhandled exception when using typeprinters
-	only valid on some objfiles, rather than being a global typeprinter. The
-	fix was accepted without a regression test, and we've been carrying one
-	out-of-tree for a while but I think it's worth upstreaming. The code
-	itself was developed by Jan Kratochvil.
-
-	Co-Authored-By: Jan Kratochvil <jkratochvil@azul.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17136
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-03-13  Tom Tromey  <tromey@adacore.com>
-
-	Remove dead code from scalar_binop
-	scalar_binop has code for "&&" and "||", but I think this code can't
-	currently be run -- and, furthermore, it doesn't make sense to have
-	this code here, as the point of these operators is to short-circuit
-	evaluation.
-
-	This patch removes the dead code.
-
-	Regression tested on x86-64 Fedora 36.
-
-	Approved-by: Kevin Buettner <kevinb@redhat.com>
-
-2023-03-13  Luis Machado  <luis.machado@arm.com>
-
-	aarch64: Expand documentation of XML features
-	Similar to the arm target documentation situation, the documentation of the
-	XML features for AArch64 targets is rather brief.  I have received the same
-	feedback that what gdb carries in the documentation is quite unclear from the
-	perspective of what debugging servers should define in the XML features, how and
-	what the outcome is in gdb.
-
-	This patch attempts to clarify a bit more what all the possible features are.
-
-2023-03-13  Luis Machado  <luis.machado@arm.com>
-
-	arm: Expand documentation of XML features
-	The documentation of the XML features for Arm targets is very brief.  I have
-	received feedback saying it is quite unclear from the perspective of the
-	debugging servers what should be defined in the XML features, how and
-	what the outcome is in gdb.
-
-	This patch attempts to clarify a bit more what all the possible features are.
-
-2023-03-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix the Dwarf reader
-	gprofng/ChangeLog
-	2023-03-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		gprofng/src/DwarfLib.cc (DwrLineRegs::getPath): Add a DW_AT_comp_dir
-		string if the directoty table has relative names.
-
-2023-03-11  Tom Tromey  <tom@tromey.com>
-
-	Change linetable_entry::is_stmt to bool
-	This changes linetable_entry::is_stmt to type bool, rather than
-	unsigned.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-11  Tom Tromey  <tom@tromey.com>
-
-	Remove extra scopes from objfile_relocate1
-	objfile_relocate1 introduces new scopes that aren't necessary.  I
-	noticed this while working on an earlier patch in this series.  This
-	patch removes these.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-11  Tom Tromey  <tom@tromey.com>
-
-	Constify linetables
-	Linetables no longer change after they are created.  This patch
-	applies const to them.
-
-	Note there is one hack to cast away const in mdebugread.c.  This code
-	allocates a linetable using 'malloc', then later copies it to the
-	obstack.  While this could be cleaned up, I chose not to do so because
-	I have no way of testing it.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-11  Tom Tromey  <tom@tromey.com>
-
-	Change linetables to be objfile-independent
-	This changes linetables to not add the text offset to the addresses
-	they contain.  I did this in a few steps, necessarily combined
-	together in one patch: I renamed the 'pc' member to 'm_pc', added the
-	appropriate accessors, and then recompiled.  Then I fixed all the
-	errors.  Where possible I generally chose to use the raw_pc accessor,
-	as it is less expensive.
-
-	Note that this patch discounts the possibility that the text section
-	offset might cause wraparound in the addresses in the line table.
-	However, this was already discounted -- in particular,
-	objfile_relocate1 did not re-sort the table in this scenario.  (There
-	was a bug open about this, but as far as I can tell this has never
-	happened, it's not even clear what inspired that bug.)
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-11  Tom Tromey  <tom@tromey.com>
-
-	Add operator< and operator== to linetable_entry
-	This adds a couple of comparison operators to linetable_entry, and
-	simplifies both the calls to sort and one other spot that checks for
-	equality.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: PR30195 [display text] Source code location can not be found
-	gprofng/ChangeLog
-	2023-03-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30195
-		gprofng/src/DwarfLib.cc (DwrLineRegs::reset): Set 'file = 1;'.
-
-2023-03-10  John Baldwin  <jhb@FreeBSD.org>
-
-	PR gdb/30214: Prefer local include paths to system include paths
-	Some systems may install binutils headers into a system location
-	(e.g. /usr/local/include on FreeBSD) which may also include headers
-	for other external packages used by GDB such as zlib or zstd.  If a
-	system include path such as /usr/local/include is added before local
-	include paths to directories within a clone or release tarball, then
-	headers from the external binutils package are used which can result
-	in build failures if the external binutils package is out of sync with
-	the version of GDB being built.
-
-	To fix, sort the include paths in INTERNAL_CFLAGS_BASE to add CFLAGS
-	for "local" componenets before external components.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30214
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-10  Fangrui Song  <maskray@google.com>
-
-	ld: Allow R_386_GOT32 for call *__tls_get_addr@GOT(%reg)
-	Similar to d58854b6dd88e05dbf2a5d1c32c5acb7bd6ea274 for x86_64.
-
-	_Thread_local int a;
-	int main() { return a; }
-
-	% gcc -m32 -fno-plt -fpic a.c -fuse-ld=bfd -Wa,-mrelax-relocations=no
-	/usr/bin/ld.bfd: /tmp/ccR8Yexy.o: TLS transition from R_386_TLS_GD to R_386_TLS_IE_32 against `a' at 0x15 in section `.text' failed
-	/usr/bin/ld.bfd: failed to set dynamic section sizes: bad value
-	collect2: error: ld returned 1 exit status
-
-	This commit fixes the issue.
-
-	There is an argument that the -fno-plt TLS sequence was added after
-	R_386_GOT32X was required for call *func@GOT(%ebx), so R_386_GOT32 was
-	intended to be unsupported.
-
-	Unfortunately this standpoint has caused interop difficulty: some
-	projects specify -mrelax-relocations=no to build relocatable object
-	files compatible with older linkers (e.g.
-	https://github.com/IHaskell/IHaskell/issues/636) or do so by accident
-	(e.g. https://github.com/rust-lang/rust/pull/106511 not addressed as of
-	today).  Many uses have not been cleaned up in practice, and compiling
-	with -fno-plt will lead to the `TLS transition from R_386_TLS_GD ...`
-	error which is hard to reason about.
-
-	It seems easier to apply this simple change to prevent the footgun.
-
-	    PR ld/24784
-	    * bfd/elf32-i386.c (elf_i386_check_tls_transition): Allow R_386_GOT32.
-
-2023-03-10  Fangrui Song  <maskray@google.com>
-
-	ld: Allow R_X86_64_GOTPCREL for call *__tls_get_addr@GOTPCREL(%rip)
-	_Thread_local int a;
-	int main() { return a; }
-
-	% gcc -fno-plt -fpic a.c -fuse-ld=bfd -Wa,-mrelax-relocations=no
-	/usr/bin/ld.bfd: /tmp/ccSSBgrg.o: TLS transition from R_X86_64_TLSGD to R_X86_64_GOTTPOFF against `a' at 0xd in section `.text' failed
-	/usr/bin/ld.bfd: failed to set dynamic section sizes: bad value
-	collect2: error: ld returned 1 exit status
-
-	This commit fixes the issue.
-
-	There is an argument that the -fno-plt TLS sequence was added after
-	R_X86_64_GOTPCRELX was required for call, so R_X86_64_GOTPCREL was
-	intended to be unsupported.
-
-	Unfortunately this standpoint has caused interop difficulty: some
-	projects specify -mrelax-relocations=no to build relocatable object
-	files compatible with older linkers (e.g.
-	https://github.com/IHaskell/IHaskell/issues/636) or do so by accident
-	(e.g. https://github.com/rust-lang/rust/pull/106511 not addressed as of
-	today).  Many uses have not been cleaned up in practice, and compiling
-	with -fno-plt will lead to the `TLS transition from R_X86_64_TLSGD ...`
-	error which is hard to reason about.
-
-	There is another argument which may be weaker but relevant to the
-	necessity of -mrelax-relocations=no: HWAddressSanitizer x86-64 will
-	likely need some assembler support to disable relaxation.  Without the
-	support and if the compiler needs to support many gas version, the
-	simplest solution would be to use -Wa,-mrelax-relocations=no.
-
-	    PR ld/24784
-	    * bfd/elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow
-	      R_X86_64_GOTPCREL.
-
-2023-03-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-completion.exp
-	With test-case gdb.python/py-completion.exp and target board
-	native-extended-gdbserver I get this warning:
-	...
-	(gdb) PASS: gdb.python/py-completion.exp: discard #2
-	completefilecommandcond $outputs/gdb.python/py-completion/py-completion-t^G\
-	  PASS: gdb.python/py-completion.exp: completefilecommandcond completion
-	Remote debugging from host ::1, port 53346^M
-	monitor exit^M
-	not implemented^M
-	(gdb) WARNING: Timed out waiting for EOF in server after monitor exit
-	...
-
-	Fix this by adding the missing "discard #3", such that we have instead:
-	...
-	(gdb) PASS: gdb.python/py-completion.exp: discard #2
-	completefilecommandcond $outputs/gdb.python/py-completion/py-completion-t^G\
-	  PASS: gdb.python/py-completion.exp: completefilecommandcond completion
-	 ^M
-	not implemented^M
-	(gdb) PASS: gdb.python/py-completion.exp: discard #3
-	Remote debugging from host ::1, port 36278^M
-	monitor exit^M
-	(gdb)
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-cmd.exp
-	[ Using $pp as shorthand for the pagination prompt
-	"--Type <RET> for more, q to quit, c to continue without paging--". ]
-
-	The test-case gdb.python/py-cmd.exp passes, but the handling of the
-	test_multiline command output looks a bit odd:
-	...
-	(gdb) test_multiline
-	test_multiline output
-	  ...
-	test_multiline output
-	$ppPASS: gdb.python/py-cmd.exp: verify pagination from test_multiline
-	q
-	test_multiline
-	Quit
-	(gdb) test_multiline
-	test_multiline output
-	  ...
-	test_multiline output
-	$ppPASS: gdb.python/py-cmd.exp: verify pagination from test_multiline: q
-	...
-
-	What happens is:
-	- a test_multiline command is issued
-	- some output is printed, followed by a pagination prompt
-	- the test-case concludes that pagination occurred, and produces a PASS
-	- "q\n" is replied to the pagination prompt
-	- without waiting for response to the "q\n", another test_multiline command is
-	  issued
-	- in response to the "q\n" we get "Quit\n(gdb) "
-	- some output is printed, followed by a pagination prompt
-	- the test-case concludes that there's a valid response to the "q\n", and
-	  produces a PASS, consuming the second pagination prompt, but without a reply.
-
-	My conclusion is that the second test_multiline command is unintentional, so fix
-	this by removing it.
-
-	Without it, we have the more straightforward:
-	...
-	(gdb) test_multiline
-	test_multiline output
-	  ...
-	test_multiline output
-	$ppPASS: gdb.python/py-cmd.exp: verify pagination from test_multiline
-	q
-	Quit
-	(gdb) PASS: gdb.python/py-cmd.exp: verify pagination from test_multiline: q
-	...
-
-	This also fixes the following warning with target board native-gdbserver:
-	...
-	WARNING: Timed out waiting for EOF in server after monitor exit
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix py-autoloaded-pretty-printers-in-newobjfile-event.exp for remote target
-	With test-case gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.exp
-	and target board remote-gdbserver-on-localhost, I run into:
-	...
-	FAIL: $exp: runto: run to main
-	...
-
-	I can easily fix this using "gdb_load_shlib $binfile_lib", but then run into:
-	...
-	(gdb) print all_good^M
-	$1 = false^M
-	(gdb) FAIL: $exp: print all_good
-	info pretty-printer^M
-	...
-
-	Sysroot is set to "target:", so gdb downloads the shared library from the target
-	(Using $so as shorthand for
-	libpy-autoloaded-pretty-printers-in-newobjfile-event.so):
-	...
-	Reading /home/remote-target/$so from remote target...^M
-	...
-	and internally refers to it as "target:/home/remote-target/$so".
-
-	In load_auto_scripts_for_objfile, gdb gives up trying to auto-load scripts
-	for $so once it checks for is_target_filename.
-
-	Fix this by declaring auto-load unsupported if sysroot starts with "target:".
-
-	Tested on x86_64-linux.
-
-2023-03-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-event-load.exp for remote target
-	Fix test-case gdb.python/py-event-load.exp for target board
-	remote-gdbserver-on-localhost using gdb_download_shlib.
-
-	Tested on x86_64-linux.
-
-2023-03-10  Tom Tromey  <tom@tromey.com>
-
-	Use require with test_compiler_info
-	One spot that checks test_compiler_info can be switched to use
-	'require'.
-
-	More uses of require with istarget
-	I found a few more spots that check istarget that can be switched to
-	use 'require'.
-
-	Use require with gdb_skip_stdio_test
-	One use of gdb_skip_stdio_test can use 'require'.
-
-	Use require with target_info
-	This changes many tests to use 'require' when checking target_info.
-	In a few spots, the require is hoisted to the top of the file, to
-	avoid doing any extra work when the test is going to be skipped
-	anyway.
-
-2023-03-10  Tom Tromey  <tromey@adacore.com>
-
-	Move allocate_stub_method to stabsread.c
-	allocate_stub_method is only called from stabsread.c, and I don't
-	think it will be needed anywhere else.  So, move it and make it
-	static.  Tested by rebuilding.
-
-2023-03-10  Alan Modra  <amodra@gmail.com>
-
-	Revert ld ASCII support
-	Revert "Prevent the ASCII linker script directive from generating huge amounts of padding if the size expression is not a constant."
-	This reverts commit adbe951fc95943016325af08d677f18e8c177ac1.
-
-	Revert "ld test asciz and ascii fails"
-	This reverts the ascii.d part of commit 5f497256bee624f0fa470949aa41534093bc5b25.
-
-	Revert "Add support for the ASCII directive inside linker scripts."
-	This mostly reverts commit 9fe129a4105bb59398f73ce96938a94f19265b79
-	leaving the asciz.d and asciz.t changes in place.
-
-2023-03-10  Alan Modra  <amodra@gmail.com>
-
-	Revert ld DIGEST support
-	This is a hopefully temporary reversion of new ld features for
-	embedded processors by Ulf Samuelsson, plus some followup patches.
-
-	Squashed together from the following:
-
-	Revert "lddigest 32-bit support and gcc-4 compile errors"
-	This reverts commit d7ee19be87110a8f5342cec6e323d83d01c641d1.
-
-	Revert "ld: Use correct types for crc64 calculations"
-	This reverts commit 9a534b9f8e3d0f3cdb5a20f19ff165693fbb84d2.
-
-	Revert "Re: DIGEST: testsuite"
-	This reverts commit c8e85484d8a0fe9f7b88e00a6b9ae63bcb53ba32.
-
-	Revert "Regen potfiles"
-	This reverts commit 4d98c966f8bf305ab25badd34cb295631873cf7c.
-
-	Revert "DIGEST: Makefile.*"
-	This reverts commit 78ef6ab03f56ce83a606d974bb8a9f34b5d6e0b7.
-
-	Revert "DIGEST: calculation"
-	This reverts commit 5243990191e683d5066d3dd622c76deaba0bf15c.
-
-	Revert "DIGEST: ldlang.*: add timestamp"
-	This reverts commit bd9466d4aa277a469a9d8b12f0a6e6fa51678e36.
-
-	Revert "DIGEST: ldmain.c"
-	This reverts commit c8f8653fa7eeb3dc0769ac23039eadb5c5f09dff.
-
-	Revert "DIGEST: ldgram.y"
-	This reverts commit d73c01be2669e9c5267fab669a269f95a32048c9.
-
-	Revert "DIGEST: ldlex.l"
-	This reverts commit 48b5163a9dd5759cc87171331bbd6e902c547b5a.
-
-	Revert "DIGEST: testsuite"
-	This reverts commit a4135d1a4886400ea29af2da782dd8dd40ccad23.
-
-	Revert "DIGEST: Documentation"
-	This reverts commit 3ec28966c3e4c63704212778f96c517cbf2e0090.
-
-	Revert "DIGEST: NEWS"
-	This reverts commit 099bf2927d446424e8585a60cf4ce63209999aa2.
-
-	Revert "DIGEST: LICENSING"
-	This reverts commit 5c8a0c6654fb55926985edf3b360b62d4f20691d.
-
-2023-03-10  Jan Beulich  <jbeulich@suse.com>
-
-	Arm64/gas: drop redundant feature prereqs
-	Logic exists to deal with prereqs or prereqs, and in many cases
-	transitive prereqs are already not spelled out explicitly. Drop further
-	ones:
-	- FP is already a prereq to F16,
-	- SIMD and F16 are already prereqs to COMPNUM, and
-	- SVE2 and BFLOAT16 are already prereqs to SME.
-
-	Arm64/gas: add missing prereq features
-	A number of newer features are really SIMD or FP extensions, but don't
-	have this properly specified.
-
-	x86: decouple broadcast type and bytes fields
-	Keep both representing exclusively what was parsed from input, to avoid
-	the need for (potentially bogus) calculations when processing .insn.
-
-	x86-64: adjust REX-prefix part of SSE2AVX test
-	Before altering how build_modrm_byte() works, arrange for this part of
-	the testcase to actually use distinguishable source and destination
-	register numbers, such that incorrect propagation of, in particular, the
-	high bit encodings (from REX to VEX) can be noticed (in turn
-	specifically assertions [not] triggering in the respective code).
-
-2023-03-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move more disp processing out of md_assemble()
-	Put it in optimize_disp() such that it can then be re-used by .insn
-	handling. The movement makes it necessary (or at least very desirable,
-	to avoid introducing a fragile cast) to convert to local variable to
-	"unsigned", which in turn requires an adjustment to the pre-existing
-	loop header.
-
-	Having the caller pass in the specific template under consideration has
-	another benefit then: We can replace the two uses of current_templates
-	in the function as well, thus no longer looking at some merely "related"
-	template. (This may allow further tightening, but if so that's to be the
-	subject of another change.)
-
-2023-03-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: use set_rex_vrex() also for short-form handling
-	This is benign for all existing insns, but is going to be needed for
-	handling of .insn operands. The earlier use requires moving up the
-	function, to avoid the need for a forward declaration.
-
-2023-03-10  Alan Modra  <amodra@gmail.com>
-
-	eh static data
-	Fix another case of oss-fuzz tripping over gas static state,
-	ie. starting over testing another input file with rubbish left
-	uncleared in bss.  size_end_sym pointed at garbage.
-
-		* ehopt.c (get_cie_info): Delete forward declaration.
-		(struct frame_data): Move to file scope.
-		(frame): New static, packaged..
-		(check_eh_frame): ..eh_frame_data and debug_frame_data.
-		(eh_begin): New function.
-		* as.c (gas_init): Call eh_begin.
-		* as.h (eh_begin): Declare.
-
-2023-03-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb, gdbserver, gdbsupport: fix whitespace issues
-	Replace spaces with tabs in a bunch of places.
-
-	Change-Id: If0f87180f1d13028dc178e5a8af7882a067868b0
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/pending-fork-event-detach.exp for remote target
-	Fix test-case gdb.threads/pending-fork-event-detach.exp for target board
-	remote-gdbserver-on-localhost using gdb_remote_download for $touch_file_bin.
-
-	Then, fix the test-case for target board remote-stdio-gdbserver with
-	REMOTE_TMPDIR=~/tmp.remote-stdio-gdbserver by creating $touch_file_path
-	on target using remote_download, and using the resulting path.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Alan Modra  <amodra@gmail.com>
-
-	objdump: report no section contents
-	objdump's read_section is never used for bss-style sections, so to
-	plug a hole that fuzzers have found, exclude sections without
-	SEC_HAS_CONTENTS.
-
-		* objdump.c (read_section): Report and return an error on
-		a no contents section.
-
-2023-03-09  Alan Modra  <amodra@gmail.com>
-
-	gas: allow frag address wrapping in absolute section
-	This:
-		 .struct -1
-		x:
-		 .fill 1
-		y:
-	results in an internal error in frag_new due to abs_section_offset
-	wrapping from -1 to 0.  Frags in the absolute section don't do much so
-	I think we can allow the address wrap.
-
-		* frags.c (frag_new): Allow address wrap in absolute section.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/multiple-successive-infcall.exp on native-gdbserver
-	With test-case gdb.threads/multiple-successive-infcall.exp and target board
-	native-gdbserver I run into:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	[New Thread 758.759]^M
-	^M
-	Thread 1 "multiple-succes" hit Breakpoint 2, main () at \
-	  multiple-successive-infcall.c:97^M
-	97            thread_ids[tid] = tid + 2; /* prethreadcreationmarker */^M
-	(gdb) FAIL: gdb.threads/multiple-successive-infcall.exp: thread=5: \
-	  created new thread
-	...
-
-	The problem is that the new thread message doesn't match the regexp, which
-	expects something like this instead:
-	...
-	[New Thread 0x7ffff746e700 (LWP 570)]^M
-	...
-
-	Fix this by accepting this form of new thread message.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/thread-specific-bp.exp on native-gdbserver
-	With test-case gdb.threads/thread-specific-bp.exp and target board
-	native-gdbserver I run into:
-	...
-	(gdb) PASS: gdb.threads/thread-specific-bp.exp: non_stop=off: thread 1 selected
-	continue^M
-	Continuing.^M
-	Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M
-	^M
-	Thread 1 "thread-specific" hit Breakpoint 4, end () at \
-	  thread-specific-bp.c:29^M
-	29      }^M
-	(gdb) FAIL: gdb.threads/thread-specific-bp.exp: non_stop=off: \
-	  continue to end (timeout)
-	...
-
-	The problem is that the test-case tries to match the "[Thread ... exited]"
-	message which we do see with native testing:
-	...
-	Continuing.^M
-	[Thread 0x7ffff746e700 (LWP 7047) exited]^M
-	Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M
-	...
-
-	The fact that the message is missing was reported as PR remote/30129.
-
-	We could add a KFAIL for this, but the functionality the test-case is trying
-	to test has nothing to do with the message, so it should pass.  I only added
-	matching of the message in commit 2e5843d87c4 ("[gdb/testsuite] Fix
-	gdb.threads/thread-specific-bp.exp") to handle a race, not realizing doing so
-	broke testing on native-gdbserver.
-
-	Fix this by matching the "Thread-specific breakpoint $decimal deleted" message
-	instead.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/*.exp for remote target
-	Fix test-cases for target board remote-gdbserver-on-localhost by using
-	gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/unittest.exp for remote target
-	With test-case gdb.server/unittest.exp and a build with --disable-unit-tests I
-	get:
-	...
-	(gdb) builtin_spawn /data/vries/gdb/leap-15-4/build/gdbserver/gdbserver \
-	  --selftest^M
-	Selftests have been disabled for this build.^M
-	UNSUPPORTED: gdb.server/unittest.exp: unit tests
-	...
-	but with target board remote-stdio-gdbserver I get instead:
-	...
-	(gdb) builtin_spawn /usr/bin/ssh -t -l vries localhost \
-	  /data/vries/gdb/leap-15-4/build/gdbserver/gdbserver --selftest^M
-	Selftests have been disabled for this build.^M
-	Connection to localhost closed.^M^M
-	FAIL: gdb.server/unittest.exp: unit tests
-	...
-
-	Fix this by making the regexp less strict.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdbserver path in remote-stdio-gdbserver.exp
-	With test-case gdb.server/unittest.exp and target board remote-stdio-gdbserver
-	I run into:
-	...
-	(gdb) builtin_spawn /usr/bin/ssh -t -l vries localhost /usr/bin/gdbserver \
-	  --selftest^M
-	Selftests have been disabled for this build.^M
-	UNSUPPORTED: gdb.server/unittest.exp: unit tests
-	...
-	due to using the system gdbserver /usr/bin/gdbserver rather than the one from
-	the build.
-
-	Fix this by removing the hard-coding of /usr/bin/gdbserver in
-	remote-stdio-gdbserver, allowing find_gdbserver to do its work, such that we
-	have instead:
-	...
-	(gdb) builtin_spawn /usr/bin/ssh -t -l vries localhost \
-	  /data/vries/gdb/leap-15-4/build/gdbserver/gdbserver --selftest^M
-	Running selftest remote_memory_tagging.^M
-	Ran 1 unit tests, 0 failed^M
-	Connection to localhost closed.^M^M
-	PASS: gdb.server/unittest.exp: unit tests
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/sysroot.exp for remote target
-	Fix test-case gdb.server/sysroot.exp with target board
-	remote-gdbserver-on-localhost, by:
-	- using gdb_remote_download, and
-	- disabling the "local" scenario for remote host.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/multi-ui-errors.exp for remote target
-	Test-case gdb.server/multi-ui-errors.exp fails for target board
-	remote-gdbserver-on-localhost with REMOTE_TARGET_USERNAME=remote-target:
-	...
-	(gdb) PASS: gdb.server/multi-ui-errors.exp: interact with GDB's main UI
-	Executing on target: kill -9 6447    (timeout = 300)
-	builtin_spawn [open ...]^M
-	XYZ1ZYX
-	sh: line 0: kill: (6447) - Operation not permitted
-	...
-
-	The problem is that the kill command:
-	...
-	remote_exec target "kill -9 $gdbserver_pid"
-	...
-	intended to kill gdbserver instead tries to kill the ssh client session in
-	which the gdbserver runs, and fails because it's trying as the remote target
-	user (remote-target on localhost) to kill a pid owned by the the build user
-	($USER on localhost).
-
-	Fix this by getting the gdbserver pid using the ppid trick from
-	server-kill.exp.
-
-	Likewise in gdb.server/server-kill-python.exp.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/server-kill.exp for remote target
-	In commit 80dc83fd0e7 ("gdb/remote: handle target dying just before a stepi")
-	an observation is made that test-case gdb.server/server-kill.exp claims to
-	kill gdbserver, but actually kills the inferior.  Consequently, the commit
-	adds testing of killing gdbserver alongside.
-
-	The problem is that:
-	- the original observation is incorrect (possibly caused by misreading getppid
-	  as getpid)
-	- consequently, the test-case doesn't test killing the inferior, instead it
-	  tests killing gdbserver twice
-	- the method to get the gdbserver PID added in the commit doesn't work
-	  for target board remote-gdbserver-on-localhost, it returns the
-	  PID of the ssh client session instead.
-
-	Fixing the method for getting the inferior PID gives us fails, and there's no
-	evidence that killing the inferior ever worked.
-
-	So, fix this by reverting the commit and just killing gdbserver, using the
-	original method of getting the gdbserver PID which does work for target board
-	remote-gdbserver-on-localhost.
-
-	Tested on x86_64-linux.
-
-2023-03-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/connect-with-no-symbol-file.exp for remote target
-	Test-case gdb.server/connect-with-no-symbol-file.exp fails with target board
-	remote-gdbserver-on-localhost.
-
-	The problem is here:
-	...
-	       set target_exec [gdb_remote_download target $binfile.bak $binfile]
-	...
-	A "gdb_remote_download target" copies from build to target.  So $binfile is
-	assumed to be a target path, but it's actually a build path.
-
-	Fix this by:
-	- fist copying $binfile.bak to $binfile, and
-	- simply doing [gdb_remote_download target $binfile].
-
-	Then, $binfile.bak is created here:
-	...
-	 # Make sure we have the original symbol file in a safe place to copy from.
-	 gdb_remote_download host $binfile $binfile.bak
-	...
-	and since "gdb_remote_download host" copies from build to host, $binfile.bak
-	is assumed to be a host path, but it's actually a build path.  This happens to
-	cause no problems in this configuration (because build == host), but it would
-	for a remote host configuration.
-
-	So let's fix this by making build rather than host the "safe place to copy
-	from".
-
-	Tested on x86_64-linux.
-
-2023-03-09  Alan Modra  <amodra@gmail.com>
-
-	lddigest 32-bit support and gcc-4 compile errors
-		* ld.texi: Revert 2023-03-08 commit 9a534b9f8e3d.
-		* testsuite/ld-scripts/crc64-poly.d: Likewise.
-		* testsuite/ld-scripts/crc64-poly.t: Likewise.
-		* lddigest.c: Formatting.
-		(get_uint64_t): New function.
-		(lang_add_digest): Take etree_type* args.  Replace "illegal" with
-		"invalid" in error message.
-		* lddigest.h (lang_add_digest): Update prototype.
-		* lddigest_tab.c (algorithms): Work around gcc-4 errors.
-		* ldgram.y (polynome): Adjust lang_add_digest call.
-		* testsuite/ld-scripts/crc64-poly-size.d: Update expected error.
-
-2023-03-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-08  Tom Tromey  <tom@tromey.com>
-
-	Remove OBJF_REORDERED
-	OBJF_REORDERED is set for nearly every object format.  And, despite
-	the ominous warnings here and there, it does not seem very expensive.
-	This patch removes the flag entirely.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-03-08  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, fix test gdb.arch/altivec-regs.exp
-	The test fails on Power 10 with the RHEL9 distro.  It also fails on
-	Power 9.
-
-	The test set a the breakpoint in main that stops at line:
-	a = 9; /* start here */.  The test then sets a break point at the same
-	line where it wants to start the test and does a continue.  GDB does not
-	stop again on the same line where it is stopped, but rather continues to
-	the end of the program.
-
-	Initialize variable A to zero so the break on main will stop before setting
-	a break point on line a = 9; /* start here */.
-
-	Make the match on the breakpoint number generic.
-
-	Patch has been tested on Power 10 with RHEL 9, Power 10 with Ubuntu 22.04,
-	and Power 9 with Fedora 36 with no regression failures.
-
-2023-03-08  Nick Clifton  <nickc@redhat.com>
-
-	ld: Use correct types for crc64 calculations
-
-2023-03-08  Alan Modra  <amodra@gmail.com>
-
-	Tidy pe_ILF_build_a_bfd a little
-		* peicode.h (ILF section, pe_ILF_object_p): Correct comments
-		and update the reference to Microsoft's docs.
-		(pe_ILF_build_a_bfd): Move all symbol creation before flipping
-		the bfd over to in-memory.
-
-	Re: DIGEST: testsuite
-	Correct test target/skip lines to fix fails on alpha-dec-vms,
-	alpha-linux-gnuecoff, i386-bsd, i386-msdos, ns32k-openbsd,
-	ns32k-pc532-mach, pdp11-dec-aout, rs6000-aix*, tic4x-coff, and
-	tic54x-coff.
-
-	Regen potfiles
-
-2023-03-08  Alan Modra  <amodra@gmail.com>
-
-	Re: Move nm.c cached line number info to bfd usrdata
-	Commit e3f450f3933d resulted in a nm -l segfault on object files
-	without undefined symbols.  Fix that, and be paranoid about bfd
-	section count changing.
-
-		* nm.c (struct lineno_cache): Add seccount.
-		(free_lineno_cache): Don't segfault on NULL lc->relocs.
-		(print_symbol): Stash section count when creating arrays.
-
-2023-03-08  Alan Modra  <amodra@gmail.com>
-
-	z8 and z80 coff_reloc16_extra_cases sanity checks
-		* reloc16.c (bfd_coff_reloc16_get_relocated_section_contents):
-		Use size_t variables.  Sanity check reloc address.  Handle
-		errors from bfd_coff_reloc16_extra_cases.
-		* coffcode.h (_bfd_coff_reloc16_extra_cases): Return bool, take
-		size_t* args.
-		(dummy_reloc16_extra_cases): Adjust to suit.  Don't abort.
-		* coff-z80.c (extra_case): Sanity check reloc address.  Return
-		errors.  Tidy formatting.  Use bfd_signed_vma temp var to
-		check for reloc overflow.  Don't abort on unexpected reloc type,
-		instead print an error and return false.
-		* coff-z8k.c (extra_case): Likewise.
-		* libcoff.h: Regenerate.
-
-2023-03-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/amdgpu: provide dummy implementation of gdbarch_return_value_as_value
-	The AMD GPU support has been merged shortly after commit 4e1d2f5814b2
-	("Add new overload of gdbarch_return_value"), which made it mandatory
-	for architectures to provide either a return_value or
-	return_value_as_value implementation.  Because of my failure to test
-	properly after rebasing and before pushing, we get this with the current
-	master:
-
-	    $ gdb ./gdb -nx --data-directory=data-directory -q -ex "set arch amdgcn:gfx1010" -batch
-	    /home/simark/src/binutils-gdb/gdb/gdbarch.c:517: internal-error: verify_gdbarch: the following are invalid ...
-	            return_value_as_value
-
-	I started trying to change GDB to not force architectures to provide a
-	return_value or return_value_as_value implementation, but Andrew pointed
-	out that any serious port will have an implementation one day or
-	another, and it's easy to add a dummy implementation in the mean time.
-	So it's better to not complicate the core of GDB to know how to deal
-	with this.
-
-	There is an implementation of return_value in the downstream ROCgdb port
-	(which we'll need to convert to the new return_value_as_value), which
-	we'll contribute soon-ish.  In the mean time, add a dummy implementation
-	of return_value_as_value to avoid the failed assertion.
-
-	Change-Id: I26edf441b511170aa64068fd248ab6201158bb63
-	Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
-
-2023-03-07  Tom Tromey  <tom@tromey.com>
-
-	Merge forget_cached_source_info_for_objfile into objfile method
-	forget_cached_source_info_for_objfile does some objfile-specific work
-	and then calls objfile::forget_cached_source_info.  It seems better to
-	me to just have the method do all the work.
-
-2023-03-07  Tom Tromey  <tom@tromey.com>
-
-	Clean up attribute reprocessing
-	I ran across the attribute reprocessing code recently and noticed that
-	it unconditionally sets members of the CU when reading a DIE.  Also,
-	each spot reading attributes needs to be careful to "reprocess" them
-	as a separate step.
-
-	This seemed excessive to me, because while reprocessing applies to any
-	DIE, setting the CU members is only necessary for the toplevel DIE in
-	any given CU.
-
-	This patch introduces a new read_toplevel_die function and changes a
-	few spots to call it.  This is easily done because reading the
-	toplevel DIE is already special.
-
-	I left the reprocessing flag and associated checks in attribute.  It
-	could be stripped out, but I am not sure it would provide much value
-	(maybe some iota of performance).
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-03-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: initialize interp::next
-	This field is never initialized, it seems to me like it would be a good
-	idea to initialize it to nullptr to avoid bad surprises.
-
-	Change-Id: I8c04319d564f5d385d8bf0acee758f6ce28b4447
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make interp::m_name an `const char *`
-	I realized that the memory for interp names does not need to be
-	allocated.  The name used to register interp factory functions is always
-	a literal string, so has static storage duration.  If we change
-	interp_lookup to pass that name instead of the string that it receives
-	as a parameter (which does not always have static storage duration),
-	then interps can simply store pointers to the name.
-
-	So, change interp_lookup to pass `factory.name` rather than `name`.
-	Change interp::m_name to be a `const char *` rather than an std::string.
-
-	Change-Id: I0474d1f7b3512e7d172ccd73018aea927def3188
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-07  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make get_interp_info return a reference
-	get_interp_info and get_current_interp_info always return non-nullptr,
-	so they can return a reference instead of a pointer.
-
-	Since we don't need to copy it, make ui_interp_info non-copyiable, to
-	avoid a copying it in a local variable, instead of getting a reference.
-
-	Change-Id: I6d8dea92dc26a58ea340d04862db6b8d9cf906a0
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Fix selfcheck regression due to new maint command
-	Simon points out that the new maint command, intended to fix a
-	regression, also introduces a new regression in "maint selftest".
-
-	This patch fixes the error.  I did a full regression test on x86-64
-	Fedora 36.
-
-2023-03-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: read Dwarf 5
-	gprofng reads Dwarf to find function names, sources, and line numbers.
-	gprofng skips other debug information.
-	I fixed three places in gprofng Dwarf reader:
-	 - parsing the compilation unit header.
-	 - parsing the line number table header.
-	 - parsing new DW_FORMs.
-
-	Tested on aarch64-linux/x86_64-linux.
-
-	gprofng/ChangeLog
-	2023-03-05  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30195
-		gprofng/src/Dwarf.cc: Support Dwarf-5.
-		gprofng/src/DwarfLib.cc: Likewise.
-		gprofng/src/Dwarf.h: Likewise.
-		gprofng/src/DwarfLib.h: Likewise.
-		gprofng/src/collctrl.cc: Don't read freed memory.
-
-2023-03-07  Richard Purdie  <richard.purdie@linuxfoundation.org>
-
-	gdb: Fix GDB_AC_CHECK_BFD macro regression
-	Commit 5218fa9e8937b007d554f1e01c2e4ecdb9b7e271, "gdb: use libtool in
-	GDB_AC_CHECK_BFD" dropped passing in existing LDFLAGS. In our environment,
-	this caused the configure check "checking for ELF support in BFD" to stop
-	working causing build failures as we need our LDFLAGS to be used for
-	correct linking.
-
-	That change also meant the code failed to match the comments. Add back the
-	missing LDFLAGS preservation, fix our builds and match the comment.
-
-	Change-Id: Ie91509116fab29f95b9db1ff0b6ddc280d460112
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Reviewed-By: Jose E. Marchesi <jose.marchesi@oracle.com>
-
-2023-03-07  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Enable vector instruction debugging for AIX
-	AIX now supports vector register contents debugging for both VMX
-	VSX registers.
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/execl.exp for remote target
-	Fix test-case gdb.threads/execl.exp on target board
-	remote-gdbserver-on-localhost using gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-2023-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Ensure index cache entry written in test
-	Now that index cache files are written in the background, one test in
-	index-cache.exp is racy -- it assumes that the cache file will have
-	been written during startup.
-
-	This patch fixes the problem by introducing a new maintenance command
-	to wait for all pending writes to the index cache.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/skip-solib.exp for remote target
-	Fix test-case gdb.base/skip-solib.exp for target board
-	remote-gdbserver-on-localhost using gdb_load_shlib.
-
-	Tested on x86_64-linux.
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use shlib gdb_compile option in gdb.base/skip-solib.exp
-	In test-case gdb.base/skip-solib.exp the linking against a shared library is
-	done manually:
-	...
-	if {[gdb_compile "${binfile_main}.o" "${binfile_main}" executable \
-	        [list debug "additional_flags=-L$testobjdir" \
-	             "additional_flags=-l${test}" \
-	             "ldflags=-Wl,-rpath=$testobjdir"]] != ""} {
-	...
-
-	Instead, use the shlib gdb_compile option such that we simply have:
-	...
-	        [list debug shlib=$binfile_lib]] != ""} {
-	...
-
-	Tested on x86_64-linux.
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/fork-no-detach-follow-child-dlopen.exp for remote target
-	Fix test-case gdb.base/fork-no-detach-follow-child-dlopen.exp for target board
-	remote-gdbserver-on-localhost.exp by using gdb_download_shlib and gdb_locate_shlib.
-
-	Tested on x86_64-linux.
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/break-probes.exp for remote target
-	With test-case gdb.base/break-probes.exp and target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
-	failures.
-
-	Fix these by adding the missing gdb_download_shlib and gdb_locate_shlib.
-
-	Tested on x86_64-linux.
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-zero-range.exp for remote-gdbserver-on-localhost
-	Fix test-case gdb.dwarf2/dw2-zero-range.exp for target board
-	remote-gdbserver-on-localhost using gdb_load_shlib.
-
-	Tested on x86_64-linux.
-
-2023-03-07  Ulf Samuelsson  <ulf@emagii.com>
-
-	Build ldint
-
-2023-03-07  Ulf Samuelsson  <ulf@emagii.com>
-
-	DIGEST: Makefile.*
-	The Makefile.in was generated using automake
-	after adding a few files.
-
-	When adding the ldreflect.* files, the autotools
-	versions were wrong.
-	After upgrading the host OS, autotools were upgraded to 2.71
-	reinstalling the desired 2.69 still generates a lot of changes.
-
-	Makefile.ini has therefore been manually edited.
-
-2023-03-07  Ulf Samuelsson  <ulf@emagii.com>
-
-	DIGEST: calculation
-
-	DIGEST: ldlang.*: add timestamp
-
-	DIGEST: ldmain.c
-
-	DIGEST: ldgram.y
-
-	DIGEST: ldlex.l
-
-	DIGEST: testsuite
-
-	DIGEST: Documentation
-
-	DIGEST: NEWS
-
-	DIGEST: LICENSING
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/signals-state-child.exp for remote-gdbserver-on-localhost
-	With test-case gdb.base/signals-state-child.exp on target board
-	remote-gdbserver-on-localhost I run into:
-	...
-	builtin_spawn /usr/bin/ssh -t -l remote-target localhost \
-	  $outputs/gdb.base/signals-state-child/signals-state-child-standalone^M
-	bash: $outputs/gdb.base/signals-state-child/signals-state-child-standalone: \
-	  Permission denied^M
-	Connection to localhost closed.^M^M
-	FAIL: gdb.base/signals-state-child.exp: collect standalone signals state
-	...
-
-	The problem is that we're trying to run an executable on the target board using
-	a host path.
-
-	After fixing this by downloading the exec to the target board, we run into:
-	...
-	builtin_spawn /usr/bin/ssh -t -l remote-target localhost \
-	  signals-state-child-standalone^M
-	bash: signals-state-child-standalone: command not found^M
-	Connection to localhost closed.^M^M
-	FAIL: gdb.base/signals-state-child.exp: collect standalone signals state
-	...
-
-	Fix this by using an absolute path name for the exec on the target board.
-
-	The dejagnu proc standard_file does not support op == "absolute" for target
-	boards, so add an implementation in remote-gdbserver-on-localhost.exp.
-
-	Also:
-	- fix a PATH-in-test-name issue
-	- cleanup gdb.txt and standalone.txt on target board
-
-	Tested on x86_64-linux.
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/breakpoint-shlib-func.exp with remote-gdbserver-on-localhost
-	Test-case gdb.cp/breakpoint-shlib-func.exp fails with target board
-	remote-gdbserver-on-localhost.
-
-	Fix this by adding the missing gdb_load_shlib.
-
-	Tested on x86_64-linux.
-
-2023-03-07  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Modify altivec-regs.exp testcase for AIX
-	On AIX, the debugger cannot access vector registers before they
-	are first used by the inferior.  Hence we change the test case
-	such that some vector registers are accessed by the variable 'x' in AIX
-	and other targets are not affected as a consequence of the same.
-
-2023-03-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.mi/*.exp with remote-gdbserver-on-localhost
-	When running test-cases gdb.mi/*.exp with target board
-	remote-gdbserver-on-localhost, we run into a few fails.
-
-	Fix these (and make things more similar to the gdb.exp procs) by:
-	- factoring out mi_load_shlib out of mi_load_shlibs
-	- making mi_load_shlib use gdb_download_shlib, like
-	  gdb_load_shlib
-	- factoring out mi_locate_shlib out of mi_load_shlib
-	- making mi_locate_shlib check for mi_spawn_id, like
-	  gdb_locate_shlib
-	- using gdb_download_shlib and mi_locate_shlib in the test-cases.
-
-	Tested on x86_64-linux, with and without target board
-	remote-gdbserver-on-localhost.
-
-2023-03-07  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix -Wsingle-bit-bitfield-constant-conversion warning in z80-tdep.c
-	When building with clang 16, I see:
-
-	    /home/smarchi/src/binutils-gdb/gdb/z80-tdep.c:338:32: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	            info->prologue_type.load_args = 1;
-	                                          ^ ~
-	    /home/smarchi/src/binutils-gdb/gdb/z80-tdep.c:345:36: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	          info->prologue_type.critical = 1;
-	                                       ^ ~
-	    /home/smarchi/src/binutils-gdb/gdb/z80-tdep.c:351:37: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	          info->prologue_type.interrupt = 1;
-	                                        ^ ~
-	    /home/smarchi/src/binutils-gdb/gdb/z80-tdep.c:367:36: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	                  info->prologue_type.fp_sdcc = 1;
-	                                              ^ ~
-	    /home/smarchi/src/binutils-gdb/gdb/z80-tdep.c:375:35: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	          info->prologue_type.fp_sdcc = 1;
-	                                      ^ ~
-	    /home/smarchi/src/binutils-gdb/gdb/z80-tdep.c:380:35: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	          info->prologue_type.fp_sdcc = 1;
-	                                      ^ ~
-
-	Fix that by using "unsigned int" as the bitfield's underlying type.
-
-	Change-Id: I3550a0112f993865dc70b18f02ab11bb5012693d
-
-2023-03-07  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: ignore -Wenum-constexpr-conversion in enum-flags.h
-	When building with clang 16, we get:
-
-	      CXX    gdb.o
-	    In file included from /home/smarchi/src/binutils-gdb/gdb/gdb.c:19:
-	    In file included from /home/smarchi/src/binutils-gdb/gdb/defs.h:65:
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/enum-flags.h:95:52: error: integer value -1 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
-	        integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
-	                                                       ^
-
-	The error message does not make it clear in the context of which enum
-	flag this fails (i.e. what is T in this context), but it doesn't really
-	matter, we have similar warning/errors for many of them, if we let the
-	build go through.
-
-	clang is right that the value -1 is invalid for the enum type we cast -1
-	to.  However, we do need this expression in order to select an integer
-	type with the appropriate signedness.  That is, with the same signedness
-	as the underlying type of the enum.
-
-	I first wondered if that was really needed, if we couldn't use
-	std::underlying_type for that.  It turns out that the comment just above
-	says:
-
-	    /* Note that std::underlying_type<enum_type> is not what we want here,
-	       since that returns unsigned int even when the enum decays to signed
-	       int.  */
-
-	I was surprised, because std::is_signed<std::underlying_type<enum_type>>
-	returns the right thing.  So I tried replacing all this with
-	std::underlying_type, see if that would work.  Doing so causes some
-	build failures in unittests/enum-flags-selftests.c:
-
-	      CXX    unittests/enum-flags-selftests.o
-	    /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:254:1: error: static assertion failed due to requirement 'gdb::is_same<selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<s
-	    elftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selftests::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_fla
-	    gs_tests::URE, int>, selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<selftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selfte
-	    sts::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_flags_tests::URE, unsigned int>>::value == true':
-	    CHECK_VALID (true,  int,  true ? EF () : EF2 ())
-	    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	    /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:91:3: note: expanded from macro 'CHECK_VALID'
-	      CHECK_VALID_EXPR_6 (EF, RE, EF2, RE2, UEF, URE, VALID, EXPR_TYPE, EXPR)
-	      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:105:3: note: expanded from macro 'CHECK_VALID_EXPR_6'
-	      CHECK_VALID_EXPR_INT (ESC_PARENS (typename T1, typename T2,           \
-	      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:66:3: note: expanded from macro 'CHECK_VALID_EXPR_INT'
-	      static_assert (gdb::is_detected_exact<archetype<TYPES, EXPR_TYPE>,    \
-	      ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-	This is a bit hard to decode, but basically enumerations have the
-	following funny property that they decay into a signed int, even if
-	their implicit underlying type is unsigned.  This code:
-
-	    enum A {};
-	    enum B {};
-
-	    int main() {
-	      std::cout << std::is_signed<std::underlying_type<A>::type>::value
-	                << std::endl;
-	      std::cout << std::is_signed<std::underlying_type<B>::type>::value
-	                << std::endl;
-	      auto result = true ? A() : B();
-	      std::cout << std::is_signed<decltype(result)>::value << std::endl;
-	    }
-
-	produces:
-
-	    0
-	    0
-	    1
-
-	So, the "CHECK_VALID" above checks that this property works for enum flags the
-	same way as it would if you were using their underlying enum types.  And
-	somehow, changing integer_for_size to use std::underlying_type breaks that.
-
-	Since the current code does what we want, and I don't see any way of doing it
-	differently, ignore -Wenum-constexpr-conversion around it.
-
-	Change-Id: Ibc82ae7bbdb812102ae3f1dd099fc859dc6f3cc2
-
-2023-03-07  John Baldwin  <jhb@FreeBSD.org>
-
-	gdb.threads/next-bp-other-thread.c: Ensure child thread is started.
-	Use a pthread_barrier to ensure the child thread is started before
-	the main thread gets to the first breakpoint.
-
-	gdb.threads/execl.c: Ensure all threads are started before execl.
-	Use a pthread_barrier to ensure all threads are started before
-	proceeding to the breakpoint where info threads output is checked.
-
-2023-03-07  John Baldwin  <jhb@FreeBSD.org>
-
-	gdb.base/catch-syscall.exp: Remove some Linux-only assumptions.
-	- Some OS's use a different syscall for exit().  For example, the
-	  BSD's use SYS_exit rather than SYS_exit_group.  Update the C source
-	  file and the expect script to support SYS_exit as an alternative to
-	  SYS_exit_group.
-
-	- The cross-arch syscall number tests are all Linux-specific with
-	  hardcoded syscall numbers specific to Linux kernels.  Skip these
-	  tests on non-Linux systems.  FreeBSD kernels for example use the
-	  same system call numbers on all platforms, so the test is also not
-	  relevant on FreeBSD.
-
-2023-03-07  John Baldwin  <jhb@FreeBSD.org>
-
-	gdb.threads/multi-create: Double the existing stack size.
-	Setting the stack size to 2*PTHREAD_STACK_MIN actually lowered the
-	stack on FreeBSD rather than raising it causing non-main threads in
-	the test program to overflow their stack and crash.  Double the
-	existing stack size rather than assuming that the initial stack size
-	is PTHREAD_STACK_MIN.
-
-2023-03-07  John Baldwin  <jhb@FreeBSD.org>
-
-	amd64-linux-tdep: Don't treat fs_base and gs_base as system registers.
-	These registers can be changed directly in userspace, and similar
-	registers to support TLS on other architectures (tpidr* on ARM and
-	AArch64, tp on RISC-V) are treated as general purpose registers.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-07  John Baldwin  <jhb@FreeBSD.org>
-
-	gdb.arch/amd64-gs_base.exp: Support non-Linux.
-	The orig_rax pseudo-register is Linux-specific and isn't relevant to
-	this test.  The fs_base and gs_base registers are also not treated as
-	system registers in other OS ABIs.  This allows the test to pass on
-	FreeBSD.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-06  Kévin Le Gouguec  <legouguec@adacore.com>
-
-	gdb/python: Fix --disable-tui build
-	As of 2023-02-13 "gdb/python: deallocate tui window factories at Python
-	shut down" (9ae4519da90), a TUI-less build fails with:
-
-	$src/gdb/python/py-tui.c: In function ‘void gdbpy_finalize_tui()’:
-	$src/gdb/python/py-tui.c:621:3: error: ‘gdbpy_tui_window_maker’ has not been declared
-	  621 |   gdbpy_tui_window_maker::invalidate_all ();
-	      |   ^~~~~~~~~~~~~~~~~~~~~~
-
-	Since gdbpy_tui_window_maker is only defined under #ifdef TUI, add an
-	#ifdef guard in gdbpy_finalize_tui as well.
-
-2023-03-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Move gdb.base/gdb-caching-proc.exp to gdb.testsuite
-	Test-case gdb.base/gdb-caching-proc.exp doesn't really test gdb, but it tests
-	the gdb_caching_procs in the testsuite, so it belongs in gdb.testsuite rather
-	than gdb.base.
-
-	Move test-case gdb.base/gdb-caching-proc.exp to gdb.testsuite, renaming it to
-	gdb.testsuite/gdb-caching-proc-consistency.exp to not clash with
-	recently added gdb.testsuite/gdb-caching-proc.exp.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Allow args in gdb_caching_proc
-	Test-case gdb.base/morestack.exp contains:
-	...
-	require {have_compile_flag -fsplit-stack}
-	...
-	and I want to cache the result of have_compile_flag.
-
-	Currently gdb_caching_proc doesn't allow args, so I could add:
-	...
-	gdb_caching_proc have_compile_flag_fsplit_stack {
-	    return [have_compile_flag -fsplit-stack]
-	}
-	...
-	and then use that proc instead, but I find this cumbersome and
-	maintenance-unfriendly.
-
-	Instead, allow args in a gdb_caching_proc, such that I can simply do:
-	...
-	-proc have_compile_flag { flag } {
-	+gdb_caching_proc have_compile_flag { flag } {
-	...
-
-	Note that gdb_caching_procs with args do not work with the
-	gdb.base/gdb-caching-procs.exp test-case, so those procs are skipped.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use regular proc syntax for gdb_caching_proc
-	A regular tcl proc with no args looks like:
-	...
-	proc foo {} {
-	     return 1
-	}
-	...
-	but a gdb_caching_proc deviates from that syntax by dropping the explicit no
-	args bit:
-	...
-	gdb_caching_proc foo {
-	     return 1
-	}
-	...
-
-	Make the gdb_caching_proc use the same syntax as regular procs, such that we
-	have instead:
-	...
-	gdb_caching_proc foo {} {
-	     return 1
-	}
-	...
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.testsuite/gdb-caching-proc.exp
-	Add test-case gdb.testsuite/gdb-caching-proc.exp that excercises
-	gdb_caching_proc.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-06  Tom Tromey  <tromey@adacore.com>
-
-	Fix DAP stackTrace through frames without debuginfo
-	The DAP stackTrace implementation did not fully account for frames
-	without debuginfo.  Attemping this would yield a result like:
-
-	{"request_seq": 5, "type": "response", "command": "stackTrace", "success": false, "message": "'NoneType' object has no attribute 'filename'", "seq": 11}
-
-	This patch fixes the problem by adding another check for None.
-
-2023-03-06  Tom Tromey  <tromey@adacore.com>
-
-	Remove exception_catchpoint::resources_needed
-	exception_catchpoint::resources_needed has a FIXME comment that I
-	think makes this method obsolete.  Also, I note that similar
-	catchpoints, for example Ada catchpoints, don't have this method.
-	This patch removes the method.  Regression tested on x86-64 Fedora 36.
-
-2023-03-06  Tom Tromey  <tromey@adacore.com>
-
-	Remove two more files in gdb "distclean"
-	The recent work to have gdb link via libtool means that there are a
-	couple more generated files in the build directory that should be
-	removed by "distclean".
-
-	Note that gdb can't really fully implement distclean due to the desire
-	to put certain generated files into the distribution.  Still, it can
-	get pretty close.
-
-2023-03-06  Alan Modra  <amodra@gmail.com>
-
-	macho null dereference read
-	The main problem here was not returning -1 from canonicalize_symtab on
-	an error, leaving the vector of relocs only partly initialised and one
-	with a null sym_ptr_ptr.
-
-		* mach-o.c (bfd_mach_o_canonicalize_symtab): Return -1 on error,
-		not 0.
-		(bfd_mach_o_pre_canonicalize_one_reloc): Init sym_ptr_ptr to
-		undefined section sym.
-
-2023-03-06  Alan Modra  <amodra@gmail.com>
-
-	PR30198, Assertion and segfault when linking x86_64 elf and coff
-		PR 30198
-		* coff-x86_64.c (coff_amd64_reloc): Set *error_message when
-		returning bfd_reloc_dangerous.  Also check that __ImageBase is
-		defined before accessing h->u.def.
-
-	More _bfd_ecoff_locate_line sanity checks
-		* ecofflink.c (mk_fdrtab): Discard fdr with negative cpd.
-		(lookup_line): Sanity check fdr cbLineOffset and cbLine.
-		Sanity check pdr cbLineOffset.
-
-2023-03-06  Alan Modra  <amodra@gmail.com>
-
-	Correct odd loop in ecoff lookup_line
-	I can't see why this really odd looking loop was written the way it
-	was in commit a877f5917f90, but it can result in a buffer overrun.
-
-		* ecofflink.c (lookup_line): Don't swap in pdr at pdr_end.
-
-2023-03-06  Alan Modra  <amodra@gmail.com>
-
-	Downgrade objdump fatal errors to non-fatal
-		* objdump.c (slurp_symtab): Replace bfd_fatal calls with calls
-		to my_bfd_nonfatal.
-		(slurp_dynamic_symtab, disassemble_section): Likewise.
-		(disassemble_data): Replace fatal call with non_fatal call, and
-		set exit_status.  Don't error on non-existent dynamic relocs.
-		Don't call bfd_fatal on bfd_canonicalize_dynamic_reloc error.
-		(dump_ctf, dump_section_sframe): Replace bfd_fatal calls with
-		calls to my_bfd_nonfatal and clean up memory.
-		(dump_relocs_in_section): Don't call bfd_fatal on errors.
-		(dump_dynamic_relocs): Likewise.
-		(display_any_bfd): Make archive nesting too depp non_fatal.
-
-	Downgrade addr2line fatal errors to non-fatal
-		* addr2line.c (slurp_symtab): Don't exit on errors.
-		(process_file): Likewise.
-
-2023-03-06  Alan Modra  <amodra@gmail.com>
-
-	Downgrade nm fatal errors to non-fatal
-	Many of the fatal errors in nm ought to be recoverable.  This patch
-	downgrades most of them.  The ones that are left are most likely due
-	to memory allocation failures.
-
-		* nm.c (print_symdef_entry): Don't bomb with a fatal error
-		on a corrupted archive symbol table.
-		(filter_symbols): Silently omit symbols that return NULL
-		from bfd_minisymbol_to_symbol rather than giving a fatal
-		error.
-		(display_rel_file): Don't give a fatal error on
-		bfd_read_minisymbols returning an error, or on not being able
-		to read dynamic symbols for synth syms.
-		(display_archive): Downgrade bfd_openr_next_archived_file
-		error.
-		(display_file): Don't bomb on a bfd_close failure.
-
-2023-03-06  Alan Modra  <amodra@gmail.com>
-
-	Move nm.c cached line number info to bfd usrdata
-	Replace the static variables used by nm to cache line number info
-	with a struct attached to the bfd.  Cleaner, and it avoids any concern
-	that lineno_cache_bfd is somehow left pointing at memory for a closed
-	bfd and that memory is later reused for another bfd, not that I think
-	this is possible.  Also don't bomb via bfd_fatal on errors getting
-	the line number info, just omit the line numbers.
-
-		* nm.c (struct lineno_cache): Rename from get_relocs_info.
-		Add symcount.
-		(lineno_cache_bfd, lineno_cache_rel_bfd): Delete.
-		(get_relocs): Adjust for struct rename.  Don't call bfd_fatal
-		on errors.
-		(free_lineno_cache): New function.
-		(print_symbol): Use lineno_cache in place of statics.  Don't
-		call bfd_fatal on errors reading symbols, just omit the line
-		info.
-		(display_archive, display_file): Call free_lineno_cache.
-
-2023-03-06  Alan Modra  <amodra@gmail.com>
-
-	Correct objdump command line error handling
-	bfd_nonfatal is used when a bfd error is to be printed.  That's not
-	the case for command line errors.
-
-		* objdump.c (nonfatal): Rename to my_bfd_nonfatal.
-		(main): Use non_fatal and call usage on unrecognized arg errors.
-		Don't set exit_status when calling usage.
-
-2023-03-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-03  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: use `kill -FOO` instead of `kill -SIGFOO`
-	When running gdb.base/bg-exec-sigint-bp-cond.exp when SHELL is dash,
-	rather than bash, I get:
-
-	    c&^M
-	    Continuing.^M
-	    (gdb) sh: 1: kill: Illegal option -S^M
-	    ^M
-	    Breakpoint 2, foo () at /home/jenkins/smarchi/binutils-gdb/build/gdb/testsuite/../../../gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.c:23^M
-	    23        return 0;^M
-	    FAIL: gdb.base/bg-exec-sigint-bp-cond.exp: no force memory write: SIGINT does not interrupt background execution (timeout)
-
-	This is because it uses the kill command built-in the dash shell, and
-	using the SIG prefix with kill does not work with dash's kill.  The
-	difference is listed in the documentation for bash's POSIX-correct mode
-	[1]:
-
-	    The kill builtin does not accept signal names with a ‘SIG’ prefix.
-
-	Replace SIGINT with INT in that test.
-
-	By grepping, I found two other instances (gdb.base/sigwinch-notty.exp
-	and gdb.threads/detach-step-over.exp).  Those were not problematic on my
-	system though.  Since they are done through remote_exec, they don't go
-	through the shell and therefore invoke /bin/kill.  On my Arch Linux,
-	it's:
-
-	    $ /bin/kill --version
-	    kill from util-linux 2.38.1 (with: sigqueue, pidfd)
-
-	and on my Ubuntu:
-
-	    $ /bin/kill --version
-	    kill from procps-ng 3.3.17
-
-	These two implementations accept "-SIGINT".  But according to the POSIX
-	spec [2], the kill utility should recognize the signal name without the
-	SIG prefix (if it recognizes them with the SIG prefix, it's an
-	extension):
-
-	    -s  signal_name
-	        Specify the signal to send, using one of the symbolic names defined
-		in the <signal.h> header. Values of signal_name shall be recognized
-		in a case-independent fashion, without the SIG prefix. In addition,
-		the symbolic name 0 shall be recognized, representing the signal
-		value zero. The corresponding signal shall be sent instead of SIGTERM.
-	    -signal_name
-	        [XSI] [Option Start]
-	        Equivalent to -s signal_name. [Option End]
-
-	So, just in case some /bin/kill implementation happens to not recognize
-	the SIG prefixes, change these two other calls to remove the SIG
-	prefix.
-
-	[1] https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html
-	[2] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/kill.html
-
-	Change-Id: I81ccedd6c9428ab63b9261813f1905a18941f8da
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use set always-read-ctf on instead of --strip-debug
-	Use "set always-read-ctf on" instead of --strip-debug in the ctf test-cases.
-
-	Tested on x86_64-linux.
-
-2023-03-03  Tom Tromey  <tromey@adacore.com>
-
-	Update expected results in long_long.exp
-	Simon pointed out that the recent patch to add half-float support to
-	'x/f' caused a couple of regressions in long_long.exp.  This patch
-	fixes these by updating the expected results.
-
-2023-03-03  Nick Clifton  <nickc@redhat.com>
-
-	Prevent the ASCII linker script directive from generating huge amounts of padding if the size expression is not a constant.
-	 PR 30193 * ldgram.y (ASCII): Fail if the size is not a constant.
-
-2023-03-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: replace strlen call with std::string::size call
-	Small cleanup to use std::string::size instead of calling strlen on
-	the result of std::string::c_str.
-
-	Should be no user visible changes after this call.
-
-2023-03-03  Jan Beulich  <jbeulich@suse.com>
-
-	x86: use swap_2_operands() in build_vex_prefix()
-	Open-coding part of what may eventually be needed is somewhat risky.
-	Let's use the function we have, taking care of all pieces of data which
-	may need swapping, no matter that
-	- right now i.flags[] and i.reloc[] aren't relevant here (yet),
-	- EVEX masking and embedded broadcast aren't applicable.
-
-	x86: drop redundant calculation of EVEX broadcast size
-	In commit a5748e0d8c50 ("x86/Intel: allow MASM representation of
-	embedded broadcast") I replaced the calculation of i.broadcast.bytes in
-	check_VecOperands() not paying attention to the immediately following
-	call to get_broadcast_bytes() doing exactly that (again) first thing.
-
-2023-03-03  Jan Beulich  <jbeulich@suse.com>
-
-	gas: default .debug section compression method adjustments
-	While commit b0c295e1b8d0 ("add --enable-default-compressed-debug-
-	sections-algorithm configure option") adjusted flag_compress_debug's
-	initializer, it didn't alter the default used when the command line
-	option was specified with an (optional!) argument. This rendered help
-	text inconsistent with actual behavior in certain configurations.
-
-	As to help text - the default reported there clearly shouldn't be
-	affected by a possible earlier --compress-debug-sections= option, so
-	flag_compress_debug can't be used when emitting usage information.
-
-2023-03-03  Jan Beulich  <jbeulich@suse.com>
-
-	x86: avoid .byte in testcases where possible
-	In the course of using the upcoming .insn directive to eliminate various
-	.byte uses in testcases I've come across these, which needlessly use
-	more .byte than necessary even without the availability of .insn.
-
-2023-03-03  Alan Modra  <amodra@gmail.com>
-
-	Tidy type handling in binutils/rdcoff.c
-	There isn't really any good reason for code in rdcoff.c to distinguish
-	between "basic" types and any other type.  This patch dispenses with
-	the array reserved for basic types and instead handles all types using
-	coff_get_slot, simplifying the code.
-
-		* rdcoff.c (struct coff_types, coff_slots): Merge.  Delete
-		coff_slots.
-		(T_MAX): Delete.
-		(parse_coff_base_type): Use coff_get_slot to store baseic types.
-		(coff_get_slot, parse_coff_type, parse_coff_base_type),
-		(parse_coff_struct_type, parse_coff_enum_type),
-		(parse_coff_symbol, parse_coff): Pass types as coff_types**.
-
-2023-03-03  Alan Modra  <amodra@gmail.com>
-
-	binutils coff type list
-	As for commit 72d225ef9cc7, handle type numbers starting anywhere.
-
-		PR 17512
-		* rdcoff.c (struct coff_slots): Add base_index.
-		(coff_get_slot): Delete pr17512 excessively large slot check.
-		Don't allocate entire array from 0 to type number, allocate a
-		sparse array.
-
-2023-03-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix -Wmaybe-uninitialized warning in value.c
-	Since commit 11470e70ea0d ("gdb: store internalvars in an std::map"), bulding
-	with -O2, with g++ 11.3.0 on Ubuntu 22.04, I see:
-
-	      CXX    value.o
-	    In constructor ‘internalvar::internalvar(internalvar&&)’,
-	        inlined from ‘constexpr std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = const char*&; _U2 = internalvar; typename std::enable_if<(std::_PCC<true, _T1, _T2>::_MoveConstructiblePair<_U1, _U2>() && std::_PCC<true, _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, _U2>()), bool>::type <anonymous> = true; _T1 = const char*; _T2 = internalvar]’ at /usr/include/c++/11/bits/stl_pair.h:353:35,
-	        inlined from ‘constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const char*&; _T2 = internalvar]’ at /usr/include/c++/11/bits/stl_pair.h:572:72,
-	        inlined from ‘internalvar* create_internalvar(const char*)’ at /home/smarchi/src/binutils-gdb/gdb/value.c:1933:52:
-	    /home/smarchi/src/binutils-gdb/gdb/value.c:1831:8: warning: ‘<unnamed>.internalvar::u’ may be used uninitialized [-Wmaybe-uninitialized]
-	     1831 | struct internalvar
-	          |        ^~~~~~~~~~~
-	    /home/smarchi/src/binutils-gdb/gdb/value.c: In function ‘internalvar* create_internalvar(const char*)’:
-	    /home/smarchi/src/binutils-gdb/gdb/value.c:1933:76: note: ‘<anonymous>’ declared here
-	     1933 |   auto pair = internalvars.emplace (std::make_pair (name, internalvar (name)));
-	          |                                                                            ^
-
-	This is because the union field internalvar::u is not initialized when
-	constructing the temporary internalvar object above.  That object is then used
-	for move-construction, and the (implicit) move constructor copies the
-	uninitialized bytes of field u over from the temporary object to the new
-	internalvar object.  The compiler therefore complains that we use uninitialized
-	bytes.  I don't think it's really a problem, because the internalvar object is
-	in the `kind == INTERNALVAR_VOID` state, in which the contents of the union is
-	irrelevant.  Still, mute the warning by default-initializing the union.
-
-	Change-Id: I70c392842f35255f50d8e63f4099cb6685366fb7
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-02  Tom Tromey  <tromey@adacore.com>
-
-	Handle half-float in 'x' command
-	Using 'x/hf' should print bytes as float16, but instead it currently
-	prints as an integer.  I tracked this down to a missing case in
-	float_type_from_length.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30161
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-02  Tom Tromey  <tromey@adacore.com>
-
-	Fix some value comments
-	I noticed a very stale comment in valarith.c.  This patch fixes a few
-	comments in this area.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-03-02  Hui Li  <lihui@loongson.cn>
-
-	gdb: LoongArch: Add support for static data member in struct
-	As described in C++ reference [1], static data members are not part
-	of objects of a given class type. Modified compute_struct_member ()
-	to ignore static data member so that we can get the expected result.
-
-	loongson@linux:~$ cat test.c
-	#include<stdio.h>
-	struct struct_01 { static unsigned a; float b;};
-	unsigned struct_01::a = 66;
-	struct struct_01 struct_01_val = { 99.00 };
-	int check_arg_struct(struct struct_01 arg)
-	  {
-	    printf("arg.a = %d\n", arg.a);
-	    printf("arg.b = %f\n", arg.b);
-	    return 0;
-	  }
-	int main()
-	  {
-	    check_arg_struct(struct_01_val);
-	    return 0;
-	  }
-	loongson@linux:~$ g++ -g test.c -o test++
-	loongson@linux:~$ gdb test++
-
-	Without this patch:
-	...
-	(gdb) start
-	...
-	(gdb) p check_arg_struct(struct_01_val)
-	arg.a = 66
-	arg.b = 0.000000
-	$1 = 0
-
-	With this patch:
-	...
-	(gdb) start
-	...
-	(gdb) p check_arg_struct(struct_01_val)
-	arg.a = 66
-	arg.b = 99.000000
-	$1 = 0
-
-	[1] https://learn.microsoft.com/en-us/cpp/cpp/static-members-cpp?view=msvc-170
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-02  Alan Modra  <amodra@gmail.com>
-
-	Don't write zeros to a gap in the output file
-	Writing out zeros is counterproductive if a file system supports
-	sparse files.  A very large gap need not take much actual disk space,
-	but it usually will if zeros are written.
-
-	memory_bseek also supports not writing out zeros in a gap.
-
-		* elf.c (write_zeros): Delete.
-		(assign_file_positions_for_load_sections): Don't call write_zeros.
-		Comment.
-
-2023-03-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Add set/show always-read-ctf on/off
-	[ This is a simplified rewrite of an earlier submission "[RFC][gdb/symtab] Add
-	maint set symbol-read-order", submitted here (
-	https://sourceware.org/pipermail/gdb-patches/2022-September/192044.html
-	). ]
-
-	With the test-case included in this patch, we run into:
-	...
-	(gdb) file dwarf2-and-ctf
-	(gdb) print var_ctf^M
-	'var_ctf' has unknown type; cast it to its declared type^M
-	...
-
-	The problem is that the executable contains both ctf and dwarf2, so the ctf
-	info (which contains the type information about var_ctf) is ignored.
-
-	GDB has support for handling multiple debug formats, but the common use case
-	for ctf is to be used when dwarf2 is not present, and gdb reflects that,
-	assuming that by reading ctf in addition there won't be any extra information,
-	so it's not worth the additional cycles and memory.
-
-	Add a new command "set/show always-read-ctf on/off", that when on forces
-	unconditional reading of ctf, allowing us to do:
-	...
-	(gdb) set always-read-ctf on
-	(gdb) file dwarf2-and-ctf
-	(gdb) print var_ctf^M
-	$2 = 2^M
-	...
-
-	The setting is off by default, preserving current behaviour.
-
-	A bit of background on the relevance of reading order: the formats have a
-	priority relationship between them, where reading earlier means lower
-	priority.  By reading the format with the most detail last, we ensure it has
-	the highest priority, which makes sure that in case there is overlapping info,
-	the most detailed info is found.  This explains the current reading order of
-	mdebug, stabs and dwarf2.
-
-	Add the unconditional reading of ctf before dwarf2, because it's less detailed
-	than dwarf2.  The conditional reading of ctf is still done after the attempt to
-	read dwarf2, necessarily so because we only know whether there's dwarf2 after
-	we've tried to read it.
-
-	The new command allow us to replace uses of -Wl,--strip-debug added in commit
-	908a926ec4e ("[gdb/testsuite] Fix ctf test-cases on openSUSE Tumbleweed") by
-	uses of "set always-read-ctf on", but I've left that for another commit.
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: update some copyright years (2022 -> 2023)
-	The copyright years in the ROCm files (e.g. solib-rocm.c) are wrong,
-	they end in 2022 instead of 2023.  I suppose because I posted (or at
-	least prepared) the patches in 2022 but merged them in 2023, and forgot
-	to update the year.  I found a bunch of other files that are in the same
-	situation.  Fix them all up.
-
-	Change-Id: Ia55f5b563606c2ba6a89046f22bc0bf1c0ff2e10
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-03-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-03-01  Tom Tromey  <tromey@adacore.com>
-
-	Use const for dwarf2_property_baton
-	Once a baton is stored in a struct type, it doesn't make sense to
-	modify it.  This patch constifies the API.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-01  Tom Tromey  <tromey@adacore.com>
-
-	Make gdb property batons type-safe
-	gdbtypes treats dynamic property batons as 'void *', but in actuality
-	the only users all use dwarf2_property_baton.  This patch changes this
-	code to be type-safe.  If a new type is needed here, it seems like
-	that too could be done in a type-safe way.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-03-01  Alan Modra  <amodra@gmail.com>
-
-	More bounds checking in macro_expand
-		* macro.c (macro_expand): Ensure input string buffer is not
-		read past end.
-
-2023-03-01  Alan Modra  <amodra@gmail.com>
-
-	Using .mri in assembly
-	Changing mri mode between macro definition and use isn't good.  This
-		.macro x
-		.endm
-		.mri 1
-		x
-	leads to a segfault.  Fixed with the following patch, but I suppose
-	what should really happen is that macros be marked as being mri mode
-	when defined, and that determine whether the magic NARG parameter be
-	supplied at expansion.  Nobody has complained about this in 30 years
-	so I'm not inclined to change gas behaviour to that extent.
-
-		* macro.c (macro_expand): Don't segfault in mri mode if NARG
-		formal isn't found.
-
-2023-03-01  Tom Tromey  <tromey@adacore.com>
-
-	Fix type of check_valid_shift_count parameter
-	check_valid_shift_count has an 'int' parameter that really should be
-	an enum exp_opcode.  This patch makes the change.  Tested by
-	rebuilding.
-
-2023-03-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix a whitespace issue in solib-rocm.c
-	Change-Id: I9cd236eaf161fe3a1abf0d212efca47a7149e021
-
-2023-03-01  Nick Clifton  <nickc@redhat.com>
-
-	Fix typo with my email address
-
-2023-03-01  Tom Tromey  <tom@tromey.com>
-
-	Fix btrace regression
-	Tom de Vries pointed out that my earlier patch:
-
-	    commit 873a185be258ad2552b9579005852815b4da5baf
-	    Date:   Fri Dec 16 07:56:57 2022 -0700
-
-		Don't use struct buffer in handle_qxfer_btrace
-
-	regressed gdb.btrace/reconnect.exp.  I didn't notice this because I
-	did not have libipt installed.
-
-	This patch fixes the bug.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30169
-	Tested-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-03-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add another xfail case in gdb.python/py-record-btrace.exp
-	I ran into:
-	...
-	(gdb) PASS: gdb.python/py-record-btrace.exp: function call: \
-	  python print(c.prev)
-	python print(c == c.next.prev)^M
-	Traceback (most recent call last):^M
-	  File "<string>", line 1, in <module>^M
-	AttributeError: 'NoneType' object has no attribute 'prev'^M
-	Error while executing Python code.^M
-	(gdb) FAIL: gdb.python/py-record-btrace.exp: function call: \
-	  python print(c == c.next.prev)
-	...
-	due to having only 4 insn instead of 100:
-	...
-	python print(len(insn))^M
-	4^M
-	...
-
-	This could be caused by the same hw bug as we already have an xfail for, so
-	expand the xfail matching.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30185
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30185
-
-	Approved-By: Markus T. Metzger <markus.t.metzger@intel.com>
-
-2023-03-01  Alan Modra  <amodra@gmail.com>
-
-	Catch overflow in gas s_space
-	Also fix an error introduced in 1998 in reporting a zero count for
-	negative counts.
-
-	      * read.c (s_space): Use unsigned multiply, and catch overflow.
-	      Correct order of tests for invalid repeat counts.  Ensure
-	      ignored directives don't affect mri_pending_align.
-
-2023-03-01  Alan Modra  <amodra@gmail.com>
-
-	gas s_fill caused internal error in frag_new
-	Fix an internal error after "non-constant fill count for absolute
-	section".
-
-		* read.c (s_fill): Don't create frags after errors.
-
-2023-03-01  Alan Modra  <amodra@gmail.com>
-
-	Memory leak in gas do_repeat
-		* read.c (do_repeat): Free sb on error path.
-
-2023-03-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add HtabPrinter to gdb-gdb.py.in
-	When debugging GDB, I find it a bit tedious to inspect htab_t objects.
-	It is possible to find the entries by poking at the fields, but it's
-	annoying to do each time.  I think a pretty printer would help.  Add a
-	basic one to gdb-gdb.py.
-
-	The pretty printer advertises itself as "array-like", and the result
-	looks like:
-
-	    (top-gdb) p bfcache
-	    $3 = htab_t with 3 elements = {0x6210003252a0, 0x62100032caa0, 0x62100033baa0}
-
-	The htab_t itself doesn't know about the type of pointed objects.  But
-	it's easy enough to cast the addresses to the right type to use them:
-
-	    (top-gdb) print *((btrace_frame_cache *) 0x6210003252a0)
-	    $6 = {tp = 0x61700002ed80, frame = 0x6210003251e0, bfun = 0x62000000b390}
-
-	Change-Id: Ia692e3555fe7a117b7ec087840246b1260a704c6
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-breakpoint.exp timeouts
-	On powerpc64le-linux, I run into two timeouts:
-	...
-	FAIL: gdb.python/py-breakpoint.exp: test_watchpoints: \
-	  Test watchpoint write (timeout)
-	FAIL: gdb.python/py-breakpoint.exp: test_bkpt_internal: \
-	  Test watchpoint write (timeout)
-	...
-
-	In this case, hw watchpoints are not supported, and using sw watchpoints
-	is slow.
-
-	Most of the time is spent in handling a try-catch, which triggers a malloc.  I
-	think this bit is more relevant for the "catch throw" part of the test-case,
-	so fix the timeouts by setting the watchpoints after the try-catch.
-
-	Tested on x86_64-linux and powerpc64le-linux.
-
-2023-02-28  Tom Tromey  <tromey@adacore.com>
-
-	Remove value_in
-	value_in is unused.  From git log, it seems to have been part of the
-	Chill language, which was removed from gdb eons ago.  This patch
-	removes the function.  Tested by rebuilding.
-
-2023-02-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.rust/watch.exp on ppc64le
-	On x86_64-linux, I have:
-	...
-	(gdb) watch -location y^M
-	Hardware watchpoint 2: -location y^M
-	(gdb) PASS: gdb.rust/watch.exp: watch -location y
-	...
-	but on powerpc64le-linux, I run into:
-	...
-	(gdb) watch -location y^M
-	Watchpoint 2: -location y^M
-	(gdb) FAIL: gdb.rust/watch.exp: watch -location y
-	...
-	due to the regexp matching "Hardware watchpoint" but not "Watchpoint":
-	...
-	gdb_test "watch -location y" ".*watchpoint .* -location .*"
-	...
-
-	Fix this by making the regexp less restrictive.
-
-	Tested on x86_64-linux and powerpc64le-linux.
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix mi breakpoint-deleted notifications for thread-specific b/p
-	Background
-	----------
-
-	When a thread-specific breakpoint is deleted as a result of the
-	specific thread exiting the function remove_threaded_breakpoints is
-	called which sets the disposition of the breakpoint to
-	disp_del_at_next_stop and sets the breakpoint number to 0.  Setting
-	the breakpoint number to zero has the effect of hiding the breakpoint
-	from the user.  We also print a message indicating that the breakpoint
-	has been deleted.
-
-	It was brought to my attention during a review of another patch[1]
-	that setting a breakpoints number to zero will suppress the MI
-	breakpoint-deleted notification for that breakpoint, and indeed, this
-	can be seen to be true, in delete_breakpoint, if the breakpoint number
-	is zero, then GDB will not notify the breakpoint_deleted observer.
-
-	It seems wrong that a user created, thread-specific breakpoint, will
-	have a =breakpoint-created notification, but will not have a
-	=breakpoint-deleted notification.  I suspect that this is a bug.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2023-February/196560.html
-
-	The First Problem
-	-----------------
-
-	During my initial testing I wanted to see how GDB handled the
-	breakpoint after it's number was set to zero.  To do this I created
-	the testcase gdb.threads/thread-bp-deleted.exp.  This test creates a
-	worker thread, which immediately exits.  After the worker thread has
-	exited the main thread spins in a loop.
-
-	In GDB I break once the worker thread has been created and place a
-	thread-specific breakpoint, then use 'continue&' to resume the
-	inferior in non-stop mode.  The worker thread then exits, but the main
-	thread never stops - instead it sits in the spin.  I then tried to use
-	'maint info breakpoints' to see what GDB thought of the
-	thread-specific breakpoint.
-
-	Unfortunately, GDB crashed like this:
-
-	  (gdb) continue&
-	  Continuing.
-	  (gdb) [Thread 0x7ffff7c5d700 (LWP 1202458) exited]
-	  Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.
-	  maint info breakpoints
-	  ... snip some output ...
-
-	  Fatal signal: Segmentation fault
-	  ----- Backtrace -----
-	  0x5ffb62 gdb_internal_backtrace_1
-	          ../../src/gdb/bt-utils.c:122
-	  0x5ffc05 _Z22gdb_internal_backtracev
-	          ../../src/gdb/bt-utils.c:168
-	  0x89965e handle_fatal_signal
-	          ../../src/gdb/event-top.c:964
-	  0x8997ca handle_sigsegv
-	          ../../src/gdb/event-top.c:1037
-	  0x7f96f5971b1f ???
-	          /usr/src/debug/glibc-2.30-2-gd74461fa34/nptl/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
-	  0xe602b0 _Z15print_thread_idP11thread_info
-	          ../../src/gdb/thread.c:1439
-	  0x5b3d05 print_one_breakpoint_location
-	          ../../src/gdb/breakpoint.c:6542
-	  0x5b462e print_one_breakpoint
-	          ../../src/gdb/breakpoint.c:6702
-	  0x5b5354 breakpoint_1
-	          ../../src/gdb/breakpoint.c:6924
-	  0x5b58b8 maintenance_info_breakpoints
-	          ../../src/gdb/breakpoint.c:7009
-	  ... etc ...
-
-	As the thread-specific breakpoint is set to disp_del_at_next_stop, and
-	GDB hasn't stopped yet, then the breakpoint still exists in the global
-	breakpoint list.
-
-	The breakpoint will not show in 'info breakpoints' as its number is
-	zero, but it will show in 'maint info breakpoints'.
-
-	As GDB prints the breakpoint, the thread-id for the breakpoint is
-	printed as part of the 'stop only in thread ...' line.  Printing the
-	thread-id involves calling find_thread_global_id to convert the global
-	thread-id into a thread_info*.  Then calling print_thread_id to
-	convert the thread_info* into a string.
-
-	The problem is that find_thread_global_id returns nullptr as the
-	thread for the thread-specific breakpoint has exited.  The
-	print_thread_id assumes it will be passed a non-nullptr.  As a result
-	GDB crashes.
-
-	In this commit I've added an assert to print_thread_id (gdb/thread.c)
-	to check that the pointed passed in is not nullptr.  This assert would
-	have triggered in the above case before GDB crashed.
-
-	MI Notifications: The Dangers Of Changing A Breakpoint's Number
-	---------------------------------------------------------------
-
-	Currently the delete_breakpoint function doesn't trigger the
-	breakpoint_deleted observer for any breakpoint with the number zero.
-
-	There is a comment explaining why this is the case in the code; it's
-	something about watchpoints.  But I did consider just removing the 'is
-	the number zero' guard and always triggering the breakpoint_deleted
-	observer, figuring that I'd then fix the watchpoint issue some other
-	way.
-
-	But I realised this wasn't going to be good enough.  When the MI
-	notification was delivered the number would be zero, so any frontend
-	parsing the notifications would not be able to match
-	=breakpoint-deleted notification to the earlier =breakpoint-created
-	notification.
-
-	What this means is that, at the point the breakpoint_deleted observer
-	is called, the breakpoint's number must be correct.
-
-	MI Notifications: The Dangers Of Delaying Deletion
-	--------------------------------------------------
-
-	The test I used to expose the above crash also brought another problem
-	to my attention.  In the above test we used 'continue&' to resume,
-	after which a thread exited, but the inferior didn't stop.  Recreating
-	the same test in the MI looks like this:
-
-	  -break-insert -p 2 main
-	  ^done,bkpt={number="2",type="breakpoint",disp="keep",...<snip>...}
-	  (gdb)
-	  -exec-continue
-	  ^running
-	  *running,thread-id="all"
-	  (gdb)
-	  ~"[Thread 0x7ffff7c5d700 (LWP 987038) exited]\n"
-	  =thread-exited,id="2",group-id="i1"
-	  ~"Thread-specific breakpoint 2 deleted - thread 2 no longer in the thread list.\n"
-
-	At this point the we have a single thread left, which is still
-	running:
-
-	  -thread-info
-	  ^done,threads=[{id="1",target-id="Thread 0x7ffff7c5eb80 (LWP 987035)",name="thread-bp-delet",state="running",core="4"}],current-thread-id="1"
-	  (gdb)
-
-	Notice that we got the =thread-exited notification from GDB as soon as
-	the thread exited.  We also saw the CLI line from GDB, the line
-	explaining that breakpoint 2 was deleted.  But, as expected, we didn't
-	see the =breakpoint-deleted notification.
-
-	I say "as expected" because the number was set to zero.  But, even if
-	the number was not set to zero we still wouldn't see the
-	notification.  The MI notification is driven by the breakpoint_deleted
-	observer, which is only called when we actually delete the breakpoint,
-	which is only done the next time GDB stops.
-
-	Now, maybe this is fine.  The notification is delivered a little
-	late.  But remember, by setting the number to zero the breakpoint will
-	be hidden from the user, for example, the breakpoint is removed from
-	the MI's -break-info command output.
-
-	This means that GDB is in a position where the breakpoint doesn't show
-	up in the breakpoint table, but a =breakpoint-deleted notification has
-	not yet been sent out.  This doesn't seem right to me.
-
-	What this means is that, when the thread exits, we should immediately
-	be sending out the =breakpoint-deleted notification.  We should not
-	wait for GDB to next stop before sending the notification.
-
-	The Solution
-	------------
-
-	My proposed solution is this; in remove_threaded_breakpoints, instead
-	of setting the disposition to disp_del_at_next_stop and setting the
-	number to zero, we now just call delete_breakpoint directly.
-
-	The notification will now be sent out immediately; as soon as the
-	thread exits.
-
-	As the number has not changed when delete_breakpoint is called, the
-	notification will have the correct number.
-
-	And as the breakpoint is immediately removed from the breakpoint list,
-	we no longer need to worry about 'maint info breakpoints' trying to
-	print the thread-id for an exited thread.
-
-	My only concern is that calling delete_breakpoint directly seems so
-	obvious that I wonder why the original patch (that added
-	remove_threaded_breakpoints) didn't take this approach.  This code was
-	added in commit 49fa26b0411d, but the commit message offers no clues
-	to why this approach was taken, and the original email thread offers
-	no insights either[2].  There are no test regressions after making
-	this change, so I'm hopeful that this is going to be fine.
-
-	[2] https://sourceware.org/pipermail/gdb-patches/2013-September/106493.html
-
-	The Complication
-	----------------
-
-	Of course, it couldn't be that simple.
-
-	The script gdb.python/py-finish-breakpoint.exp had some regressions
-	during testing.
-
-	The problem was with the FinishBreakpoint.out_of_scope callback
-	implementation.  This callback is supposed to trigger whenever the
-	FinishBreakpoint goes out of scope; and this includes when the thread
-	for the breakpoint exits.
-
-	The problem I ran into is the Python FinishBreakpoint implementation.
-	Specifically, after this change I was loosing some of the out_of_scope
-	calls.
-
-	The problem is that the out_of_scope call (of which I'm interested) is
-	triggered from the inferior_exit observer.  Before my change the
-	observers were called in this order:
-
-	  thread_exit
-	  inferior_exit
-	  breakpoint_deleted
-
-	The inferior_exit would trigger the out_of_scope call.
-
-	After my change the breakpoint_deleted notification (for
-	thread-specific breakpoints) occurs earlier, as soon as the
-	thread-exits, so now the order is:
-
-	  thread_exit
-	  breakpoint_deleted
-	  inferior_exit
-
-	Currently, after the breakpoint_deleted call the Python object
-	associated with the breakpoint is released, so, when we get to the
-	inferior_exit observer, there's no longer a Python object to call the
-	out_of_scope method on.
-
-	My solution is to follow the model for how bpfinishpy_pre_stop_hook
-	and bpfinishpy_post_stop_hook are called, this is done from
-	gdbpy_breakpoint_cond_says_stop in py-breakpoint.c.
-
-	I've now added a new bpfinishpy_pre_delete_hook
-	gdbpy_breakpoint_deleted in py-breakpoint.c, and from this new hook
-	function I check and where needed call the out_of_scope method.
-
-	With this fix in place I now see the
-	gdb.python/py-finish-breakpoint.exp test fully passing again.
-
-	Testing
-	-------
-
-	Tested on x86-64/Linux with unix, native-gdbserver, and
-	native-extended-gdbserver boards.
-
-	New tests added to covers all the cases I've discussed above.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix failure in gdb.mi/mi-pending.exp with extended-remote
-	I currently see this failure when running the gdb.mi/mi-pending.exp
-	test using the native-extended-remote board:
-
-	  -break-insert -f -c x==4 mi-pendshr.c:pendfunc2
-	  &"No source file named mi-pendshr.c.\n"
-	  ^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="<PENDING>",pending="mi-pendshr.c:pendfunc2",cond="x==4",evaluated-by="host",times="0",original-location="mi-pendshr.c:pendfunc2"}
-	  (gdb)
-	  FAIL: gdb.mi/mi-pending.exp: MI pending breakpoint on mi-pendshr.c:pendfunc2 if x==4 (unexpected output)
-
-	The failure is caused by the 'evaluated-by="host"' string, which only
-	appears in the output when the test is run using the
-	native-extended-remote board.
-
-	I could fix this by just updating the pattern in
-	gdb.mi/mi-pending.exp, but I have instead updated mi-pending.exp to
-	make more use of the support procs in mi-support.exp.  This did
-	require making a couple of adjustments to mi-support.exp, but I think
-	the result is that mi-pending.exp is now easier to read, and I see no
-	failures with native-extended-remote anymore.
-
-	One of the test names has changed after this work, I think the old
-	test name was wrong - it described a breakpoint as pending when the
-	breakpoint was not pending, I suspect a copy & paste error.
-
-	But there's no changes to what is actually being tested after this
-	patch.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: introduce is_target_non_stop helper proc
-	I noticed that several tests included copy & pasted code to run the
-	'maint show target-non-stop' command, and then switch based on the
-	result.
-
-	In this commit I factor this code out into a helper proc in
-	lib/gdb.exp, and update all the places I could find that used this
-	pattern to make use of the helper proc.
-
-	There should be no change in what is tested after this commit.
-
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite introduce foreach_mi_ui_mode helper proc
-	Introduce foreach_mi_ui_mode, a helper proc which can be used when
-	tests are going to be repeated once with the MI in the main UI, and
-	once with the MI on a separate UI.
-
-	The proc is used like this:
-
-	  foreach_mi_ui_mode VAR {
-	    # BODY
-	  }
-
-	The BODY will be run twice, once with VAR set to 'main' and once with
-	VAR set to 'separate', inside BODY we can then change the behaviour
-	based on the current UI mode.
-
-	The point of this proc is that we sometimes shouldn't run the separate
-	UI tests (when gdb_debug_enabled is true), and this proc hides all
-	this logic.  If the separate UI mode should not be used then BODY will
-	be run just once with VAR set to 'main'.
-
-	I've updated two tests that can make use of this helper proc.  I'm
-	going to add another similar test in a later commit.
-
-	There should be no change to what is tested with this commit.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: extend the use of mi_clean_restart
-	The mi_clean_restart proc calls the mi_gdb_start proc passing no
-	arguments.
-
-	In this commit I add an extra (optional) argument to the
-	mi_clean_restart proc, and pass this through to mi_gdb_start.
-
-	The benefit of this is that we can now use mi_clean_restart when we
-	also want to pass the 'separate-mi-tty' or 'separate-inferior-tty'
-	flags to mi_gdb_start, and avoids having to otherwise duplicate the
-	contents of mi_clean_restart in different tests.
-
-	I've updated the obvious places where this new functionality can be
-	used, and I'm seeing no test regressions.
-
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: make more use of mi-support.exp
-	Building on the previous commit, now that the breakpoint related
-	support functions in lib/mi-support.exp can now help creating the
-	patterns for thread specific breakpoints, make use of this
-	functionality for gdb.mi/mi-nsmoribund.exp and gdb.mi/mi-pending.exp.
-
-	There should be no changes in what is tested after this commit.
-
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't duplicate 'thread' field in MI breakpoint output
-	When creating a thread-specific breakpoint with a single location, the
-	'thread' field would be repeated in the MI output.  This can be seen
-	in two existing tests gdb.mi/mi-nsmoribund.exp and
-	gdb.mi/mi-pending.exp, e.g.:
-
-	  (gdb)
-	  -break-insert -p 1 bar
-	  ^done,bkpt={number="1",type="breakpoint",disp="keep",
-		      enabled="y",
-		      addr="0x000000000040110a",func="bar",
-		      file="/tmp/mi-thread-specific-bp.c",
-		      fullname="/tmp/mi-thread-specific-bp.c",
-		      line="32",thread-groups=["i1"],
-		      thread="1",thread="1",  <================ DUPLICATION!
-		      times="0",original-location="bar"}
-
-	I know we need to be careful when adjusting MI output, but I'm hopeful
-	in this case, as the field is duplicated, and the field contents are
-	always identical, that we might get away with removing one of the
-	duplicates.
-
-	The change in GDB is a fairly trivial condition change.
-
-	We did have a couple of tests that contained the duplicate fields in
-	their expected output, but given there was no comment pointing out
-	this oddity either in the GDB code, or in the test, I suspect this was
-	more a case of copying whatever output GDB produced and using that as
-	the expected results.  I've updated these tests to remove the
-	duplication.
-
-	I've update lib/mi-support.exp to provide support for building
-	breakpoint patterns that contain the thread field, and I've made use
-	of this in a new test I've added that is just about creating
-	thread-specific breakpoints and checking the results.  The two tests I
-	mentioned above as being updated could also use the new
-	lib/mi-support.exp functionality, but I'm going to do that in a later
-	patch, this way it is clear what changes I'm actually proposing to
-	make to the expected output.
-
-	As I said, I hope that frontends will be able to handle this change,
-	but I still think its worth adding a NEWS entry, that way, if someone
-	runs into problems, there's a chance they can figure out what's going
-	on.
-
-	This should not impact CLI output at all.
-
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove an out of date comment about disp_del_at_next_stop
-	Delete an out of date comment about disp_del_at_next_stop, the comment
-	says:
-
-	  /* NOTE drow/2003-09-08: This state only exists for removing
-	     watchpoints.  It's not clear that it's necessary...  */
-
-	I'm sure this was true when the comment was added, but today the
-	disp_del_at_next_stop state is not just used for deleting watchpoints,
-	which leaves us with "It's not clear that it's necessary...", which
-	doesn't really help at all.
-
-	And then this comment is located on one random place where
-	disp_del_at_next_stop is used, rather than at its definition site.
-
-	Lets just delete the comment.
-
-	No user visible changes after this commit.
-
-	Reviewed-By: Pedro Alves <pedro@palves.net>
-
-2023-02-28  Richard Ball  <richard.ball@arm.com>
-
-	[Aarch64] Add Binutils support for MEC
-	This change supports MEC which is part of RME (Realm Management Extension).
-
-2023-02-28  Alan Modra  <amodra@gmail.com>
-
-	chew.c printf of intptr_t
-	Seen when building binutils with gcc -m32 on x86_64-linux.
-	chew.c: In function ‘print’:
-	chew.c:1434:59: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘intptr_t’ {aka ‘int’} [-Wformat=]
-	 1434 |     fprintf (stderr, "print: illegal print destination `%ld'\n", *isp);
-	      |                                                         ~~^      ~~~~
-	      |                                                           |      |
-	      |                                                           |      intptr_t {aka int}
-	      |                                                           long int
-	      |                                                         %d
-
-		* chew.c: Include inttypes.h.
-		(print): Use PRIdPTR for *isp.
-
-2023-02-28  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Sort section contributions in PDB files
-	Microsoft's DIA library, and thus also MSVC and WinDbg, expects section
-	contributions to be ordered by section number and offset, otherwise it's
-	unable to resolve line numbers.
-
-2023-02-28  Alan Modra  <amodra@gmail.com>
-
-	Free ecoff debug info
-	This frees memory associated with the mips ecoff find_nearest_line.
-
-		* elfxx-mips.x (free_ecoff_debug): New function, extracted from..
-		(_bfd_mips_elf_read_ecoff_info): ..here.  Free ext_hdr earlier.
-		Don't clear already NULL fdr.
-		(struct mips_elf_find_line): Move earlier.
-		(_bfd_mips_elf_close_and_cleanup): Call free_ecoff_debug.
-		(_bfd_mips_elf_find_nearest_line): Likewise on error paths,
-		and to clean up input_debug when done.
-
-2023-02-28  Alan Modra  <amodra@gmail.com>
-
-	Add some sanity checking in ECOFF lookup_line
-	More anti-fuzzer bounds checking for the ECOFF support.  A lot of this
-	is in ancient code using "long" for counts and sizes, which is why the
-	patch uses "(long) ((unsigned long) x + 1) > 0" in a few places.  The
-	unsigned long cast is so that "x + 1" doesn't trigger ubsan warnings
-	about signed integer overflow.  It would be a good idea to replace
-	most of the longs used in binutils with size_t, but that's more than I
-	care to do for COFF/ECOFF.
-
-		* ecofflink.c (mk_fdrtab): Sanity check string offsets.
-		(lookup_line): Likewise, and symbol indices.
-
-2023-02-28  Alan Modra  <amodra@gmail.com>
-
-	Another PE SEC_HAS_CONTENTS test
-	I'd skipped this one before, thinking "obfd, that's the linker output
-	bfd so no need to test".  Wrong, this is objcopy output.
-
-		* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Test
-		SEC_HAS_CONTENTS before reading section.
-
-2023-02-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Forced quit cases handled by resetting sync_quit_force_run
-	During my audit of the use of gdb_exception with regard to QUIT
-	processing, I found a try/catch in the scoped_switch_fork_info
-	destructor.
-
-	Static analysis found this call path from the destructor to
-	maybe_quit():
-
-	  scoped_switch_fork_info::~scoped_switch_fork_info()
-	    -> remove_breakpoints()
-	    -> remove_breakpoint(bp_location*)
-	    -> remove_breakpoint_1(bp_location*, remove_bp_reason)
-	    -> memory_validate_breakpoint(gdbarch*, bp_target_info*)
-	    -> target_read_memory(unsigned long, unsigned char*, long)
-	    -> target_read(target_ops*, target_object, char const*, unsigned char*, unsigned long, long)
-	    -> maybe_quit()
-
-	Since it's not safe to do a 'throw' from a destructor, we simply
-	call set_quit_flag and, for gdb_exception_forced_quit, also
-	set sync_quit_force_run.  This will cause the appropriate
-	exception to be rethrown at the next QUIT check.
-
-	Another case is the try / catch in tui_getc() in tui-io.c.  The
-	existing catch swallows the exception.  I've added a catch for
-	'gdb_exception_forced_quit', which also swallows the exception,
-	but also sets sync_quit_force_run and calls set_quit_flag in
-	order to restart forced quit processing at the next QUIT check.
-	This is required because it isn't safe to throw into/through
-	readline.
-
-	Thanks to Pedro Alves for suggesting this idea.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Tested-by: Tom de Vries <tdevries@suse.de>
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Introduce set_force_quit_flag and change type of sync_quit_force_run
-	At the moment, handle_sigterm() in event-top.c does the following:
-
-	  sync_quit_force_run = 1;
-	  set_quit_flag ();
-
-	This was used several more times in a later patch in this series, so
-	I'm introducing (at Pedro's suggestion) a new function named
-	'set_force_quit_flag'.  It simply sets sync_quit_force_run and also
-	calls set_quit_flag().  I've revised the later patch to call
-	set_force_quit_flag instead.
-
-	I noticed that sync_quit_force_run is declared as an int but is being
-	used as a bool, so I also changed its type to bool in this commit.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	QUIT processing w/ explicit throw for gdb_exception_forced_quit
-	This commit contains changes which have an explicit throw for
-	gdb_exception_forced_quit, or, in a couple of cases for gdb_exception,
-	but with a throw following a check to see if 'reason' is
-	RETURN_FORCED_QUIT.
-
-	Most of these are straightforward - it made sense to continue to allow
-	an existing catch of gdb_exception to also catch gdb_exception_quit;
-	in these cases, a catch/throw for gdb_exception_forced_quit was added.
-
-	There are two cases, however, which deserve a more detailed
-	explanation.
-
-	1) remote_fileio_request in gdb/remote-fileio.c:
-
-	The try block calls do_remote_fileio_request which can (in turn)
-	call one of the functions in remote_fio_func_map[].  Taking the
-	first one, remote_fileio_func_open(), we have the following call
-	path to maybe_quit():
-
-	  remote_fileio_func_open(remote_target*, char*)
-	    -> target_read_memory(unsigned long, unsigned char*, long)
-	    -> target_read(target_ops*, target_object, char const*, unsigned char*, unsigned long, long)
-	    -> maybe_quit()
-
-	Since there is a path to maybe_quit(), we must ensure that the
-	catch block is not permitted to swallow a QUIT representing a
-	SIGTERM.
-
-	However, for this case, we must take care not to change the way that
-	Ctrl-C / SIGINT is handled; we want to send a suitable EINTR reply to
-	the remote target should that happen.  That being the case, I added a
-	catch/throw for gdb_exception_forced_quit.  I also did a bit of
-	rewriting here, adding a catch for gdb_exception_quit in favor of
-	checking the 'reason' code in the catch block for gdb_exception.
-
-	2) mi_execute_command in gdb/mi/mi-main.c:
-
-	The try block calls captured_mi_execute_command(); there exists
-	a call path to maybe_quit():
-
-	  captured_mi_execute_command(ui_out*, mi_parse*)
-	    -> mi_cmd_execute(mi_parse*)
-	    -> get_current_frame()
-	    -> get_prev_frame_always_1(frame_info*)
-	    -> frame_register_unwind_location(frame_info*, int, int*, lval_type*, unsigned long*, int*)
-	    -> frame_register_unwind(frame_info*, int, int*, int*, lval_type*, unsigned long*, int*, unsigned char*)
-	    -> value_entirely_available(value*)
-	    -> value_fetch_lazy(value*)
-	    -> value_fetch_lazy_memory(value*)
-	    -> read_value_memory(value*, long, int, unsigned long, unsigned char*, unsigned long)
-	    -> maybe_quit()
-
-	That being the case, we can't allow the exception handler (catch block)
-	to swallow a gdb_exception_quit for SIGTERM.  However, it does seem
-	reasonable to output the exception via the mi interface so that some
-	suitable message regarding SIGTERM might be printed; therefore, I
-	check the exception's 'reason' field for RETURN_FORCED_QUIT and
-	do a throw for this case.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Tested-by: Tom de Vries <tdevries@suse.de>
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Guile QUIT processing updates
-	This commit contains QUIT processing updates for GDB's Guile support.
-	As with the Python updates, we don't want to permit this code to
-	swallow the exception, gdb_exception_forced_quit, which is associated
-	with GDB receiving a SIGTERM.
-
-	I've adopted the same solution that I used for Python; whereever
-	a gdb_exception is caught in try/catch code in the Guile extension
-	language support, a catch for gdb_exception_forced_quit has been
-	added; this catch block will simply call quit_force(), which will
-	cause the necessary cleanups to occur followed by GDB exiting.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Tested-by: Tom de Vries <tdevries@suse.de>
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Python QUIT processing updates
-	See the previous patches in this series for the motivation behind
-	these changes.
-
-	This commit contains updates to Python's QUIT handling.  Ideally, we'd
-	like to throw gdb_exception_forced_quit through the extension
-	language; I made an attempt to do this for gdb_exception_quit in an
-	earlier version of this patch, but Pedro pointed out that it is
-	(almost certainly) not safe to do so.
-
-	Still, we definitely don't want to swallow the exception representing
-	a SIGTERM for GDB, nor do we want to force modules written in the
-	extension language to have to explicitly handle this case.  Since the
-	idea is for GDB to cleanup and quit for this exception, we'll simply
-	call quit_force() just as if the gdb_exception_forced_quit propagation
-	had managed to make it back to the top level.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Tested-by: Tom de Vries <tdevries@suse.de>
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Catch gdb_exception_error instead of gdb_exception (in many places)
-	As described in the previous commit for this series, I became
-	concerned that there might be instances in which a QUIT (due to either
-	a SIGINT or SIGTERM) might not cause execution to return to the top
-	level.  In some (though very few) instances, it is okay to not
-	propagate the exception for a Ctrl-C / SIGINT, but I don't think that
-	it is ever okay to swallow the exception caused by a SIGTERM.
-	Allowing that to happen would definitely be a deviation from the
-	current behavior in which GDB exits upon receipt of a SIGTERM.
-
-	I looked at all cases where an exception handler catches a
-	gdb_exception.  Handlers which did NOT need modification were those
-	which satisifed one or more of the following conditions:
-
-	  1) There is no call path to maybe_quit() in the try block.  I used a
-	     static analysis tool to help make this determination.  In
-	     instances where the tool didn't provide an answer of "yes, this
-	     call path can result in maybe_quit() being called", I reviewed it
-	     by hand.
-
-	  2) The catch block contains a throw for conditions that it
-	     doesn't want to handle; these "not handled" conditions
-	     must include the quit exception and the new "forced quit" exception.
-
-	  3) There was (also) a catch for gdb_exception_quit.
-
-	Any try/catch blocks not meeting the above conditions could
-	potentially swallow a QUIT exception.
-
-	My first thought was to add catch blocks for gdb_exception_quit and
-	then rethrow the exception.  But Pedro pointed out that this can be
-	handled without adding additional code by simply catching
-	gdb_exception_error instead.  That's what this patch series does.
-
-	There are some oddball cases which needed to be handled differently,
-	plus the extension languages, but those are handled in later patches.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Tested-by: Tom de Vries <tdevries@suse.de>
-	Approved-by: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Handle gdb SIGTERM by throwing / catching gdb_exception_force_quit
-	When a GDB process receives the SIGTERM signal, handle_sigterm() in
-	event-top.c is called.  The global variable 'sync_quit_force_run' is
-	set by this signal handler.  It does some other things too, but the
-	setting of this global is the important bit for the SIGTERM part of
-	this discussion.
-
-	GDB will periodically check to see whether a Ctrl-C or SIGTERM has
-	been received.  This is performed via use of the QUIT macro in
-	GDB's code.  QUIT is defined to invoke maybe_quit(), which will be
-	periodically called during any lengthy operation.  This is supposed to
-	ensure that the user won't have to wait too long for a Ctrl-C or
-	SIGTERM to be acted upon.
-
-	When a Ctrl-C / SIGINT is received, quit_handler() will decide whether
-	to pass the SIGINT onto the inferior or to call quit() which causes
-	gdb_exception_quit to be thrown.  This exception (usually) propagates
-	to the top level.  Control is then returned to the top level event
-	loop.
-
-	At the moment, SIGTERM is handled very differently.  Instead of
-	throwing an exception, quit_force() is called.  This does eventually
-	cause GDB to exit(), but prior to that happening, the inferiors
-	are killed or detached and other target related cleanup occurs.
-	As shown in this discussion between Pedro Alves and myself...
-
-	https://sourceware.org/pipermail/gdb-patches/2021-July/180802.html
-	https://sourceware.org/pipermail/gdb-patches/2021-July/180902.html
-	https://sourceware.org/pipermail/gdb-patches/2021-July/180903.html
-
-	...we found that it is possible for inferior_ptid and current_thread_
-	to get out of sync.  When that happens, the "current_thread_ != nullptr"
-	assertion in inferior_thread() can fail resulting in a GDB internal
-	error.
-
-	Pedro recommended that we "let the normal quit exception propagate all
-	the way to the top level, and then have the top level call quit_force
-	if sync_quit_force_run is set."  However, after the v2 series for this
-	patch set, we tweaked that idea by introducing a new exception for
-	handling SIGTERM.
-
-	This commit implements the obvious part of Pedro's suggestion:
-	Instead of calling quit_force from quit(), throw_forced_quit() is now
-	called instead.  This causes the new exception 'gdb_exception_forced_quit'
-	to be thrown.
-
-	At the top level, I changed catch_command_errors() and captured_main()
-	to catch gdb_exception_forced_quit and then call quit_force() from the
-	catch block.  I also changed start_event_loop() to also catch
-	gdb_exception_forced_quit; while we could also call quit_force() from
-	that catch block, it's sufficient to simply rethrow the exception
-	since it'll be caught by the newly added code in captured_main().
-
-	Making these changes fixed the failure / regression that I was seeing
-	for gdb.base/gdb-sigterm.exp when run on a machine with glibc-2.34.
-	However, there are many other paths back to the top level which this
-	test case does not test.  I did an audit of all of the try / catch
-	code in GDB in which calls in the try-block might (eventually) call
-	QUIT.  I found many cases where gdb_exception_quit and the new
-	gdb_exception_forced_quit will be swallowed.  (When using GDB, have
-	you ever hit Ctrl-C and not have it do anything; if so, it could be
-	due to a swallowed gdb_exception_quit in one of the cases I've
-	identified.)  The rest of the patches in this series deal with this
-	concern.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Tested-by: Tom de Vries <tdevries@suse.de>
-	Approved-by: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Introduce gdb_exception_forced_quit
-	This commit adds a new exception 'gdb_exception_forced_quit', reason
-	code 'REASON_FORCED_QUIT', return mask 'RETURN_MASK_FORCED_QUIT', and
-	a wrapper for throwing the exception, throw_forced_quit().
-
-	The addition of this exception plus supporting code will allow us to
-	recognize that a SIGTERM has been received by GDB and then propagate
-	recognition of that fact to the upper levels of GDB where it can be
-	correctly handled.  At the moment, when GDB receives a SIGTERM, it
-	will attempt to exit via a series of calls from the QUIT checking
-	code.  However, before it can exit, it must do various cleanups, such
-	as killing or detaching all inferiors.  Should these cleanups be
-	attempted while GDB is executing very low level code, such as reading
-	target memory from within ps_xfer_memory(), it can happen that some of
-	GDB's state is out of sync with regard to the cleanup code's
-	expectations.  In the case just mentioned, it's been observed that
-	inferior_ptid and the current_thread_ are not in sync; this triggers
-	an assert / internal error.
-
-	This commit only introduces the exception plus supporting machinery;
-	changes which use this new exception are in later commits in this
-	series.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
-	Tested-by: Tom de Vries <tdevries@suse.de>
-	Approved-by: Pedro Alves <pedro@palves.net>
-
-2023-02-27  Tom Tromey  <tom@tromey.com>
-
-	Fix value chain use-after-free
-	Hannes filed a bug showing a crash, where a pretty-printer written in
-	Python could cause a use-after-free.  He sent a patch, but I thought a
-	different approach was needed.
-
-	In a much earlier patch (see bug #12533), we changed the Python code
-	to release new values from the value chain when constructing a
-	gdb.Value.  The rationale for this is that if you write a command that
-	does a lot of computations in a loop, all the values will be kept live
-	by the value chain, resulting in gdb using a large amount of memory.
-
-	However, suppose a value is passed to Python from some code in gdb
-	that needs to use the value after the call into Python.  In this
-	scenario, value_to_value_object will still release the value -- and
-	because gdb code doesn't generally keep strong references to values (a
-	consequence of the ancient decision to use the value chain to avoid
-	memory management), this will result in a use-after-free.
-
-	This scenario can happen, as it turns out, when a value is passed to
-	Python for pretty-printing.  Now, normally this route boxes the value
-	via value_to_value_object_no_release, avoiding the problematic release
-	from the value chain.  However, if you then call Value.cast, the
-	underlying value API might return the same value, when is then
-	released from the chain.
-
-	This patch fixes the problem by changing how value boxing is done.
-	value_to_value_object no longer removes a value from the chain.
-	Instead, every spot in gdb that might construct new values uses a
-	scoped_value_mark to ensure that the requirements of bug #12533 are
-	met.  And, because incoming values aren't ever released from the chain
-	(the Value.cast one comes earlier on the chain than the
-	scoped_value_mark), the bug can no longer occur.  (Note that many
-	spots in the Python layer already take this approach, so not many
-	places needed to be touched.)
-
-	In the future I think we should replace the use of raw "value *" with
-	value_ref_ptr pretty much everywhere.  This will ensure lifetime
-	safety throughout gdb.
-
-	The test case in this patch comes from Hannes' original patch.  I only
-	made a trivial ("require") change to it.  However, while this fails
-	for him, I can't make it fail on this machine; nevertheless, he tried
-	my patch and reported the bug as being fixed.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30044
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	Remove infrun_thread_thread_exit observer
-	After the previous patches, I believe this observer isn't necessary
-	anymore for anything.  Remove it.
-
-	Change-Id: Idb33fb6b6f55589c8c523a92169b3ca95a23d0b9
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	all-stop "follow-fork parent" and selecting another thread
-	With:
-
-	 - catch a fork in thread 1
-	 - select thread 2
-	 - set follow-fork child
-	 - next
-
-	... follow_fork notices that thread 1 had last stopped for a fork
-	which hasn't been followed yet, and because thread 1 is not the
-	current thread, GDB aborts the execution command, presenting the stop
-	in thread 1.
-
-	That makes sense, as only the forking thread (thread 1) survives in
-	the child, so better stop and let the user decide how to proceed.
-
-	However, with:
-
-	 - catch a fork in thread 1
-	 - select thread 2
-	 - set follow-fork parent << note difference here
-	 - next
-
-	... GDB does the same: follow_fork notices that thread 1 had last
-	stopped for a fork which hasn't been followed yet, and because thread
-	1 is not the current thread, GDB aborts the execution command,
-	presenting the stop in thread 1.
-
-	Aborting/stopping in this case doesn't make sense to me.  As we're
-	following the parent, thread 2 will still continue to exist in the
-	parent.  What the child does after we've followed the parent shouldn't
-	matter -- it can go on running free, be detached, etc., depending on
-	"set schedule-multiple", "set detach-on-fork", etc.  That does not
-	influence the execution command that the user issued for the parent
-	thread.
-
-	So this patch changes GDB in that direction -- in follow_fork, if
-	following the parent, and we've switched threads meanwhile, switch
-	back to the unfollowed thread, follow it (stay with the parent), and
-	don't abort/stop.  If we're following a fork (as opposed to vfork),
-	then switch back again to the thread that the user was trying to
-	resume.  If following a vfork, however, stay with the vforking-thread
-	selected, as we will need to see a vfork_done event first, before we
-	can resume any other thread.
-
-	As I was working on this, I managed to end up calling target_resume
-	for a solo-thread resume (to collect the vfork_done event), with
-	scope_ptid pointing at the vfork parent thread, and inferior_ptid
-	pointing to the vfork child.  For a solo-thread resume, the scope_ptid
-	argument to target_resume must the same as inferior_ptid.  The mistake
-	was caught by the assertion in target_resume, like so:
-
-	...
-	  [infrun] resume_1: step=0, signal=GDB_SIGNAL_0, trap_expected=0, current thread [1722839.1722839.0] at 0x5555555553c3
-	  [infrun] do_target_resume: resume_ptid=1722839.1722939.0, step=0, sig=GDB_SIGNAL_0
-	../../src/gdb/target.c:2661: internal-error: target_resume: Assertion `inferior_ptid.matches (scope_ptid)' failed.
-	...
-
-	but I think it doesn't hurt to catch such a mistake earlier, hence the
-	change in internal_resume_ptid.
-
-	Change-Id: I896705506a16d2488b1bfb4736315dd966f4e412
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	Make follow_fork not rely on get_last_target_status
-	Currently, if
-
-	  - you're in all-stop mode,
-	  - the inferior last stopped because of a fork catchpoint,
-
-	when you next resume the program, gdb checks whether it had last
-	stopped for a fork/vfork, and if so,
-
-	 a) if the current thread is the one that forked, gdb follows the
-	   parent/child, depending on "set follow-fork" mode.
-
-	 b) if the current thread is some other thread (because you switched
-	   threads meanwhile), gdb switches back to that thread, gdb follows
-	   the parent/child, and stops the resumption command.
-
-	There's a problem in b), however -- if you have "set schedule-multiple
-	off", which is the default, or "set scheduler-locking on", gdb will
-	still switch back to the forking thread, even if you didn't want to
-	resume it.  For example, with:
-
-	  (gdb) catch fork
-	  (gdb) c
-	  * thread 1 stops for fork
-	  (gdb) thread 2
-	  (gdb) set scheduler-locking on
-	  (gdb) c
-
-	gdb switches back to thread 1, and follows the fork.
-
-	Or with:
-
-	  (gdb) add-inferior -exec prog
-	  (gdb) inferior 2
-	  (gdb) start
-	  (gdb) inferior 1
-	  (gdb) catch fork
-	  (gdb) c
-	  * thread 1.1 stops for fork
-	  (gdb) inferior 2
-	  (gdb) set schedule-multiple off # this is the default
-	  (gdb) c
-
-	gdb switches back to thread 1.1, and follows the fork.
-
-	Another issue is that, because follow_fork relies on
-	get_last_target_status to find the thread that has a pending fork, it
-	is possible to confuse it.  For example, "run" or "start" call
-	init_wait_for_inferior, which clears the last target status, so this:
-
-	  (gdb) catch fork
-	  (gdb) c
-	  * thread 1 stops for fork
-	  (gdb) add-inferior -exec prog
-	  (gdb) inferior 2
-	  (gdb) start
-	  (gdb) set follow-fork child
-	  (gdb) inferior 1
-	  (gdb) n
-
-	... does not follow to the fork child of inferior 1, because the
-	get_last_target_status call in follow_fork doesn't return a
-	TARGET_WAITKIND_FORKED.  Thanks to Simon for this example.
-
-	All of the above are fixed by this patch.  It changes follow_fork to
-	not look at get_last_target_status, but to instead iterate over the
-	set of threads that the user is resuming, and find the one that has a
-	pending_follow kind of fork/vfork.
-
-	gdb.base/foll-fork.exp is augmented to exercise the last "start"
-	scenario described above.  The other cases will be exercised in the
-	testcase added by the following patch.
-
-	Change-Id: Ifcca77e7b2456277387f40660ef06cec2b93b97e
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	Improve "info program"
-	With gdb.base/catch-follow-exec.exp, we currently see:
-
-	~~~~~~~~~~~~~~~
-	 (gdb)
-	 continue
-	 Continuing.
-	 process 693251 is executing new program: /usr/bin/ls
-	 [New inferior 2]
-	 [New process 693251]
-	 [Switching to process 693251]
-
-	 Thread 2.1 "ls" hit Catchpoint 2 (exec'd /usr/bin/ls), 0x00007ffff7fd0100 in _start () from /lib64/ld-linux-x86-64.so.2
-	 (gdb)
-	 info prog
-	 No selected thread.
-	~~~~~~~~~~~~~~~
-
-	Note the "No selected thread" output.  That is totally bogus, because
-	there _is_ a selected thread.  What GDB really means, is that it can't
-	find the thread that had the latest (user-visible) stop.  And that
-	happens because "info program" gets that info from
-	get_last_target_status, and the last target status has been cleared.
-
-	However, GDB also checks if there is a selected thread, here:
-
-	  if (ptid == null_ptid || ptid == minus_one_ptid)
-	    error (_("No selected thread."));
-
-	.. the null_ptid part.  That is also bogus, because what matters is
-	the thread that last reported a stop, not the current thread:
-
-	 - in all-stop mode, "info program" displays info about the last stop.
-	   That may have happened on a thread different from the selected
-	   thread.
-
-	 - in non-stop mode, because all threads are controlled individually,
-	   "info program" shows info about the last stop of the selected
-	   thread.
-
-	The current code already behaves this way, though in a poor way.  This
-	patch reimplements it, such that the all-stop version now finds the
-	thread that last reported an event via the 'previous_thread' strong
-	reference.  Being a strong reference means that if that thread has
-	exited since the event was reported, 'previous_thread' will still
-	point to it, so we can say that the thread exited meanwhile.
-
-	The patch also extends "info program" output a little, to let the user
-	know which thread we are printing info for.  For example, for the
-	gdb.base/catch-follow-exec.exp case we shown above, we now get:
-
-	 (gdb) info prog
-	 Last stopped for thread 2.1 (process 710867).
-		 Using the running image of child process 710867.
-	 Program stopped at 0x7ffff7fd0100.
-	 It stopped at breakpoint 2.
-	 Type "info stack" or "info registers" for more information.
-	 (gdb)
-
-	while in non-stop mode, we get:
-
-	 (gdb) info prog
-	 Selected thread 2.1 (process 710867).
-		 Using the running image of child process 710867.
-	 Program stopped at 0x7ffff7fd0100.
-	 It stopped at breakpoint 2.
-	 Type "info stack" or "info registers" for more information.
-	 (gdb)
-
-	In both cases, the first line of output is new.
-
-	The existing code considered these running/exited cases as an error,
-	but I think that that's incorrect, since this is IMO just plain
-	execution info as well.  So the patch makes those cases regular
-	prints, not errors.
-
-	If the thread is running, we get, in non-stop mode:
-
-	 (gdb) info prog
-	 Selected thread 2.1 (process 710867).
-	 Selected thread is running.
-
-	... and in all-stop:
-
-	 (gdb) info prog
-	 Last stopped for thread 2.1 (process 710867).
-	 Thread is now running.
-
-	If the thread has exited, we get, in non-stop mode:
-
-	 (gdb) info prog
-	 Selected thread 2.1 (process 710867).
-	 Selected thread has exited.
-
-	... and in all-stop:
-
-	 (gdb) info prog
-	 Last stopped for thread 2.1 (process 710867).
-	 Thread has since exited.
-
-	The gdb.base/info-program.exp testcase was much extended to test
-	all-stop/non-stop and single-threaded/multi-threaded.
-
-	Change-Id: I51d9d445f772d872af3eead3449ad4aa445781b1
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	Convert previous_inferior_ptid to strong reference to thread_info
-	I originally wrote this patch, because while working on some other
-	patch, I spotted a regression in the
-	gdb.multi/multi-target-no-resumed.exp.exp testcase.  Debugging the
-	issue, I realized that the problem was related to how I was using
-	previous_inferior_ptid to look up the thread the user had last
-	selected.  The problem is that previous_inferior_ptid alone doesn't
-	tell you which target that ptid is from, and I was just always using
-	the current target, which was incorrect.  Two different targets may
-	have threads with the same ptid.
-
-	I decided to fix this by replacing previous_inferior_ptid with a
-	strong reference to the thread, called previous_thread.
-
-	I have since found a new motivation for this change -- I would like to
-	tweak "info program" to not rely on get_last_target_status returning a
-	ptid that still exists in the thread list.  With both the follow_fork
-	changes later in this series, and the step-over-thread-exit changes,
-	that can happen, as we'll delete threads and not clear the last
-	waitstatus.
-
-	A new update_previous_thread function is added that can be used to
-	update previous_thread from inferior_ptid.  This must be called in
-	several places that really want to get rid of previous_thread thread,
-	and reset the thread id counter, otherwise we get regressions like
-	these:
-
-	  (gdb) info threads -gid
-	    Id   GId  Target Id                               Frame
-	 - * 1    1    Thread 2974541.2974541 "tids-gid-reset" main () at src/gdb/testsuite/gdb.multi/tids-gid-reset.c:21
-	 - (gdb) PASS: gdb.multi/tids-gid-reset.exp: single-inferior: after restart: info threads -gid
-	 + * 1    2    Thread 2958361.2958361 "tids-gid-reset" main () at src/gdb/testsuite/gdb.multi/tids-gid-reset.c:21
-	 + (gdb) FAIL: gdb.multi/tids-gid-reset.exp: single-inferior: after restart: info threads -gid
-
-	and:
-
-	  Core was generated by `build/gdb/testsuite/outputs/gdb.reverse/sigall-precsave/si'.
-	  Program terminated with signal SIGTRAP, Trace/breakpoint trap.
-	  #0  gen_ABRT () at src/gdb/testsuite/gdb.reverse/sigall-reverse.c:398
-	  398      kill (getpid (), SIGABRT);
-	 +[Current thread is 1 (LWP 2662066)]
-	  Restored records from core file build/gdb/testsuite/outputs/gdb.reverse/sigall-precsave/sigall.precsave.
-	  #0  gen_ABRT () at src/gdb/testsuite/gdb.reverse/sigall-reverse.c:398
-	  398      kill (getpid (), SIGABRT);
-
-	  continue
-	  Continuing.
-
-	 -Program received signal SIGABRT, Aborted.
-	 +Thread 1 received signal SIGABRT, Aborted.
-	  0x00007ffff7dfd55b in kill () at ../sysdeps/unix/syscall-template.S:78
-	  78     ../sysdeps/unix/syscall-template.S: No such file or directory.
-	 -(gdb) PASS: gdb.reverse/sigall-precsave.exp: sig-test-1: get signal ABRT
-	 +(gdb) FAIL: gdb.reverse/sigall-precsave.exp: sig-test-1: get signal ABRT
-
-	I.e., GDB was failing to restart the thread counter back to 1, because
-	the previous_thread thread was being help due to the strong reference.
-
-	Tested on GNU/Linux native, gdbserver and gdbserver + "maint set
-	target-non-stop on".
-
-	gdb/ChangeLog:
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		* infcmd.c (kill_command, detach_command, disconnect_command):
-		Call update_previous_thread.
-		* infrun.c (previous_inferior_ptid): Delete.
-		(previous_thread): New.
-		(update_previous_thread): New.
-		(proceed, init_wait_for_inferior): Call update_previous_thread.
-		(normal_stop): Adjust to compare previous_thread and
-		inferior_thread.  Call update_previous_thread.
-		* infrun.h (update_previous_thread): Declare.
-		* target.c (target_pre_inferior, target_preopen): Call
-		update_previous_thread.
-
-	Change-Id: I42779a1ee51a996fa1e8f6e1525c6605dbfd42c7
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	Tweak "Using the running image of ..." output
-	Currently, "info files" and "info program" on a few native targets
-	show:
-
-	 (gdb) info files
-	 Symbols from "/home/pedro/gdb/tests/threads".
-	 Native process:
-		 Using the running image of child Thread 0x7ffff7d89740 (LWP 1097968).
-						  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-	 ...
-
-	 (gdb) info program
-		 Using the running image of child Thread 0x7ffff7d89740 (LWP 1097968).
-						  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-	 Program stopped at 0x555555555278.
-	 ...
-
-
-	This patch changes them to:
-
-	 (gdb) info files
-	 Symbols from "/home/pedro/gdb/tests/threads".
-	 Native process:
-		 Using the running image of child process 1097968.
-		                                  ^^^^^^^^^^^^^^^
-	 ...
-
-	 (gdb) info program
-		 Using the running image of child process 1097968.
-		                                  ^^^^^^^^^^^^^^^
-	 Program stopped at 0x555555555278.
-	 ...
-
-
-	... which I think makes a lot more sense in this context.  The "info
-	program" manual entry even says:
-
-	  "Display information about the status of your program: whether it is
-	   running or not, what process it is, and why it stopped."
-	                        ^^^^^^^^^^^^^
-
-	This change affects ptrace targets, procfs targets, and Windows.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: I6aab061ff494a84ba3398cf98fd49efd7a6ec1ca
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make-target-delegates.py: add type annotations
-	Fixes all warnings given by pyright.
-
-	Change-Id: I480521bfc62960c4eccd9d32c886392b05a1ddaa
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make-target-delegates.py: add Entry type
-	Add the Entry type and use it in the `entries` map, rather than using an
-	ad-hoc str -> str map that comes from the re.match.  This will make it
-	easier to make typing work in a subsequent patch, but it also helps
-	readers know what attributes exist for entries, which is not clear
-	currently.
-
-	Change-Id: I5b58dee1ed7ae85987b99bd417e641ede718624c
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make-target-delegates.py: make one string raw
-	Fixes the following flake8 warning:
-
-	  make-target-delegates.py:36:39: W605 invalid escape sequence '\s'
-
-	Change-Id: I25eeb296f55765e17e5217a2d1e49018f63a3acd
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: gdbarch*.py, copyright.py: add type annotations
-	Add type annotations to gdbarch*.py to fix all errors shown by pyright.
-	There is one change in copyright.py too, to fix this one:
-
-	    /home/simark/src/binutils-gdb/gdb/gdbarch.py
-	      /home/simark/src/binutils-gdb/gdb/gdbarch.py:206:13 - error: Type of "copyright" is partially unknown
-	        Type of "copyright" is "(tool: Unknown, description: Unknown) -> str" (reportUnknownMemberType)
-
-	Change-Id: Ia109b53e267f6e2f5bd79a1288d0d5c9508c9ac4
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: split gdbarch component types to gdbarch_types.py
-	Editing gdbarch-components.py is not an experience in an editor that is
-	minimally smart about Python.  Because gdbarch-components.py is read and
-	exec'd by gdbarch.py, it doesn't import the  Info / Method / Function /
-	Value types.  And because these types are defined in gdbarch.py, it
-	can't import them, as that would make a cyclic dependency.
-
-	Solve this by introducing a third file, gdbarch_types.py, to define
-	these types.  Make gdbarch.py and gdbarch-components.py import it.
-	Also, replace the read & exec of gdbarch-components.py by a regular
-	import.  For this to work though, gdbarch-components.py needs to be
-	renamed to gdbarch_components.py.
-
-	Change-Id: Ibe994d56ef9efcc0698b3ca9670d4d9bf8bbb853
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: pyproject.toml: set pyright typeCheckingMode = "strict"
-	While working on other projects, I found the pyright type checker very
-	helpful when editing Python code.  I don't think I have to explain the
-	advantages of type checking to a crowd used to C/C++.
-
-	Setting typeCheckingMode to "strict" makes pyright flag a bit more type
-	issues than the default of "basic".
-
-	Change-Id: I38818ec59f7f73c2ab020cc9226286cdd485abc7
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: gdbarch.py: remove Info.__init__
-	Info.__init__ currently assigns `self.predicate = None`.  This was
-	helpful to ensure that all component types had a `predicate` attribute.
-	The generator code could then avoid having code like "if the component
-	is anything but Info, use predicate".  Since the previous commit, all
-	component types have a predicate attribute which defaults to False.  We
-	can therefore remove the assignment in Info.__init__, and in turn remove
-	Info.__init__.  We however need to make the printer parameter of
-	_Component.__init__ optional, as Info don't need a printer.
-
-	Change-Id: I611edeca9cc9837eb49dddfe038595e1ff3b7239
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: gdbarch.py: spell out parameters of _Component.__init__
-	The way _Component uses kwargs is handy to save a few characters, but it
-	doesn't play well with static analysis.  When editing gdbarch.py, my
-	editor (which uses pylance under the hood) knows nothing about the
-	properties of components.  So it's full of squiggly lines, and typing
-	analysis (which I find really helpful) doesn't work.  I therefore think
-	it would be better to spell out the parameters.
-
-	Change-Id: Iaf561beb0d0fbe170ce1c79252a291e0945e1830
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: reformat Python files with black 23.1.0
-	Change-Id: Ie8ec8870a16d71c5858f5d08958309d23c318302
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove invalid / dead code from gdbarch.py
-	My editor flagged that the variable `c` (in the lines removed by this
-	patch) was unknown.  I guess it ends up working because there is a `c`
-	variable in the global scope.  I tried putting `assert False` inside
-	that if, and it is not hit, showing that we never enter this if.  So,
-	remove it.  There is no change in the generated files.
-
-	Change-Id: Id3b9f67719e88cada7c6fde673c8d7842ab13617
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-27  Tom Tromey  <tom@tromey.com>
-
-	Fix crash with "finish" in Rust
-	PR rust/30090 points out that a certain "finish" in a Rust program
-	will cause gdb to crash.  This happens due to some confusion about
-	field indices in rust_language::print_enum.  The fix is to use
-	value_primitive_field so that the correct type can be passed; other
-	spots in rust-lang.c already do this.
-
-	Note that the enclosed test case comes with an xfail.  This is needed
-	because for this function, rustc doesn't follow the platform ABI.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30090
-
-2023-02-27  Tom Tromey  <tom@tromey.com>
-
-	Remove old GNU indent directives
-	Now that gdb_indent.sh has been removed, I think it makes sense to
-	also remove the directives intended for GNU indent.
-
-2023-02-27  Tom Tromey  <tromey@adacore.com>
-
-	Handle range types in ax-gdb.c
-	A range type can usually be treated the same as its underlying integer
-	type, at least for the purposes of agent expressions.  This patch
-	arranges for range types to be handled this way in ax-gdb.c, letting a
-	somewhat larger subset of Ada expressions be compiled.
-
-2023-02-27  Tom Tromey  <tromey@adacore.com>
-
-	Implement some agent expressions for Ada
-	Ada historically has not implemented agent expressions, and some Ada
-	constructs probably cannot reasonably be converted to agent
-	expressions.  However, a subset of simple operations can be, and this
-	patch represents a first step in that direction.
-
-	On one internal AdaCore test case, this improves the performance of a
-	conditional breakpoint from 5 minutes to 5 seconds.
-
-	The main tricky part in this patch is ensuring the converted
-	expressions detect the cases that will not work.  This is done by
-	examining the code in the corresponding evaluation methods.
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	Regenerate Linux syscall group info
-	This commit makes use of the new script to regenerate the Linux
-	syscall group info against strace git hash
-	e88e5e9ae6da68f22d15f9be3193b1412ac9aa02.
-
-	Like so:
-
-	 $ cd gdb/syscalls/
-	 $ ./update-linux-defaults.sh ~/strace.git/
-	 Generating linux-defaults.xml.in
-	 $ make
-	 for f in aarch64-linux.xml amd64-linux.xml arm-linux.xml bfin-linux.xml \
-	          i386-linux.xml mips-n32-linux.xml mips-n64-linux.xml \
-		  mips-o32-linux.xml ppc64-linux.xml ppc-linux.xml s390-linux.xml \
-		  s390x-linux.xml sparc64-linux.xml sparc-linux.xml; do \
-	   xsltproc --output $f apply-defaults.xsl $f.in; \
-	 done
-
-	The result is that a lot more syscalls end up assigned to groups.
-	Some lose their group info, but that just mirrors what strace does.
-
-	The gdb/syscalls/linux-defaults.xml.in file shows a large diff because
-	the new version is ASCII sorted, while the current version was
-	somewhat (but not consistently) sorted by "family" of syscalls.
-
-	If I sort the old file and diff against the new, the difference is
-	like this:
-
-	     <syscall name="accept4" groups="network"/>
-	     <syscall name="accept" groups="network"/>
-	     <syscall name="access" groups="file"/>
-	     <syscall name="acct" groups="file"/>
-	  -  <syscall name="arch_prctl" groups="process"/>
-	     <syscall name="bind" groups="network"/>
-	  +  <syscall name="bpf" groups="descriptor"/>
-	     <syscall name="break" groups="memory"/>
-	     <syscall name="brk" groups="memory"/>
-	  +  <syscall name="bsd43_fstatfs" groups="descriptor"/>
-	  +  <syscall name="bsd43_fstat" groups="descriptor"/>
-	  +  <syscall name="bsd43_killpg" groups="process"/>
-	  +  <syscall name="bsd43_kill" groups="process"/>
-	  +  <syscall name="bsd43_lstat" groups="file"/>
-	  +  <syscall name="bsd43_madvise" groups="memory"/>
-	  +  <syscall name="bsd43_mincore" groups="memory"/>
-	  +  <syscall name="bsd43_mmap" groups="descriptor,memory"/>
-	  +  <syscall name="bsd43_mprotect" groups="memory"/>
-	  +  <syscall name="bsd43_mremap" groups="memory"/>
-	  +  <syscall name="bsd43_munmap" groups="memory"/>
-	  +  <syscall name="bsd43_oldfstat" groups="descriptor"/>
-	  +  <syscall name="bsd43_oldstat" groups="file"/>
-	  +  <syscall name="bsd43_quotactl" groups="file"/>
-	  +  <syscall name="bsd43_sbreak" groups="memory"/>
-	  +  <syscall name="bsd43_sbrk" groups="memory"/>
-	  +  <syscall name="bsd43_statfs" groups="file"/>
-	  +  <syscall name="bsd43_stat" groups="file"/>
-	  +  <syscall name="cacheflush" groups="memory"/>
-	     <syscall name="chdir" groups="file"/>
-	     <syscall name="chmod" groups="file"/>
-	     <syscall name="chown32" groups="file"/>
-	     <syscall name="chown" groups="file"/>
-	     <syscall name="chroot" groups="file"/>
-	  +  <syscall name="clone2" groups="process"/>
-	  +  <syscall name="clone3" groups="process"/>
-	     <syscall name="clone" groups="process"/>
-	     <syscall name="close" groups="descriptor"/>
-	     <syscall name="connect" groups="network"/>
-	  +  <syscall name="copy_file_range" groups="descriptor"/>
-	     <syscall name="creat" groups="descriptor,file"/>
-	     <syscall name="dup2" groups="descriptor"/>
-	     <syscall name="dup3" groups="descriptor"/>
-	  @@ -28,14 +52,17 @@
-	     <syscall name="epoll_create1" groups="descriptor"/>
-	     <syscall name="epoll_create" groups="descriptor"/>
-	     <syscall name="epoll_ctl" groups="descriptor"/>
-	  +  <syscall name="epoll_pwait2" groups="descriptor"/>
-	     <syscall name="epoll_pwait" groups="descriptor"/>
-	     <syscall name="epoll_wait" groups="descriptor"/>
-	     <syscall name="eventfd2" groups="descriptor"/>
-	     <syscall name="eventfd" groups="descriptor"/>
-	  +  <syscall name="execveat" groups="descriptor,file,process"/>
-	     <syscall name="execve" groups="file,process"/>
-	     <syscall name="execv" groups="file,process"/>
-	     <syscall name="exit_group" groups="process"/>
-	     <syscall name="exit" groups="process"/>
-	  +  <syscall name="faccessat2" groups="descriptor,file"/>
-	     <syscall name="faccessat" groups="descriptor,file"/>
-	     <syscall name="fadvise64_64" groups="descriptor"/>
-	     <syscall name="fadvise64" groups="descriptor"/>
-	  @@ -57,7 +84,11 @@
-	     <syscall name="flock" groups="descriptor"/>
-	     <syscall name="fork" groups="process"/>
-	     <syscall name="fremovexattr" groups="descriptor"/>
-	  +  <syscall name="fsconfig" groups="descriptor,file"/>
-	     <syscall name="fsetxattr" groups="descriptor"/>
-	  +  <syscall name="fsmount" groups="descriptor"/>
-	  +  <syscall name="fsopen" groups="descriptor"/>
-	  +  <syscall name="fspick" groups="descriptor,file"/>
-	     <syscall name="fstat64" groups="descriptor"/>
-	     <syscall name="fstatat64" groups="descriptor,file"/>
-	     <syscall name="fstatfs64" groups="descriptor"/>
-	  @@ -72,16 +103,26 @@
-	     <syscall name="getdents" groups="descriptor"/>
-	     <syscall name="get_mempolicy" groups="memory"/>
-	     <syscall name="getpeername" groups="network"/>
-	  +  <syscall name="getpmsg" groups="network"/>
-	     <syscall name="getsockname" groups="network"/>
-	     <syscall name="getsockopt" groups="network"/>
-	     <syscall name="getxattr" groups="file"/>
-	  -  <syscall name="inotify_add_watch" groups="descriptor"/>
-	  +  <syscall name="inotify_add_watch" groups="descriptor,file"/>
-	     <syscall name="inotify_init1" groups="descriptor"/>
-	     <syscall name="inotify_init" groups="descriptor"/>
-	     <syscall name="inotify_rm_watch" groups="descriptor"/>
-	     <syscall name="ioctl" groups="descriptor"/>
-	  +  <syscall name="io_destroy" groups="memory"/>
-	  +  <syscall name="io_setup" groups="memory"/>
-	  +  <syscall name="io_uring_enter" groups="descriptor,signal"/>
-	  +  <syscall name="io_uring_register" groups="descriptor,memory"/>
-	  +  <syscall name="io_uring_setup" groups="descriptor"/>
-	     <syscall name="ipc" groups="ipc"/>
-	  -  <syscall name="kill" groups="signal"/>
-	  +  <syscall name="kexec_file_load" groups="descriptor"/>
-	  +  <syscall name="kill" groups="signal,process"/>
-	  +  <syscall name="landlock_add_rule" groups="descriptor"/>
-	  +  <syscall name="landlock_create_ruleset" groups="descriptor"/>
-	  +  <syscall name="landlock_restrict_self" groups="descriptor"/>
-	     <syscall name="lchown32" groups="file"/>
-	     <syscall name="lchown" groups="file"/>
-	     <syscall name="lgetxattr" groups="file"/>
-	  @@ -98,19 +139,31 @@
-	     <syscall name="lstat" groups="file"/>
-	     <syscall name="madvise" groups="memory"/>
-	     <syscall name="mbind" groups="memory"/>
-	  +  <syscall name="memfd_create" groups="descriptor"/>
-	  +  <syscall name="memfd_secret" groups="descriptor"/>
-	     <syscall name="migrate_pages" groups="memory"/>
-	     <syscall name="mincore" groups="memory"/>
-	     <syscall name="mkdirat" groups="descriptor,file"/>
-	     <syscall name="mkdir" groups="file"/>
-	     <syscall name="mknodat" groups="descriptor,file"/>
-	     <syscall name="mknod" groups="file"/>
-	  +  <syscall name="mlock2" groups="memory"/>
-	     <syscall name="mlockall" groups="memory"/>
-	     <syscall name="mlock" groups="memory"/>
-	     <syscall name="mmap2" groups="descriptor,memory"/>
-	     <syscall name="mmap" groups="descriptor,memory"/>
-	  +  <syscall name="mount_setattr" groups="descriptor,file"/>
-	     <syscall name="mount" groups="file"/>
-	  +  <syscall name="move_mount" groups="descriptor,file"/>
-	     <syscall name="move_pages" groups="memory"/>
-	     <syscall name="mprotect" groups="memory"/>
-	  +  <syscall name="mq_getsetattr" groups="descriptor"/>
-	  +  <syscall name="mq_notify" groups="descriptor"/>
-	  +  <syscall name="mq_open" groups="descriptor"/>
-	  +  <syscall name="mq_timedreceive" groups="descriptor"/>
-	  +  <syscall name="mq_timedreceive_time64" groups="descriptor"/>
-	  +  <syscall name="mq_timedsend" groups="descriptor"/>
-	  +  <syscall name="mq_timedsend_time64" groups="descriptor"/>
-	     <syscall name="mremap" groups="memory"/>
-	     <syscall name="msgctl" groups="ipc"/>
-	     <syscall name="msgget" groups="ipc"/>
-	  @@ -126,45 +179,98 @@
-	     <syscall name="oldfstat" groups="descriptor"/>
-	     <syscall name="oldlstat" groups="file"/>
-	     <syscall name="oldstat" groups="file"/>
-	  +  <syscall name="oldumount" groups="file"/>
-	  +  <syscall name="openat2" groups="descriptor,file"/>
-	     <syscall name="openat" groups="descriptor,file"/>
-	     <syscall name="open_by_handle_at" groups="descriptor"/>
-	     <syscall name="open" groups="descriptor,file"/>
-	  +  <syscall name="open_tree" groups="descriptor,file"/>
-	  +  <syscall name="osf_fstatfs64" groups="descriptor"/>
-	  +  <syscall name="osf_fstatfs" groups="descriptor"/>
-	  +  <syscall name="osf_fstat" groups="descriptor"/>
-	  +  <syscall name="osf_lstat" groups="file"/>
-	  +  <syscall name="osf_mincore" groups="memory"/>
-	  +  <syscall name="osf_mremap" groups="memory"/>
-	  +  <syscall name="osf_old_fstat" groups="descriptor"/>
-	  +  <syscall name="osf_old_killpg" groups="process"/>
-	  +  <syscall name="osf_old_lstat" groups="file"/>
-	  +  <syscall name="osf_old_stat" groups="file"/>
-	  +  <syscall name="osf_sbrk" groups="memory"/>
-	  +  <syscall name="osf_select" groups="descriptor"/>
-	  +  <syscall name="osf_shmat" groups="ipc,memory"/>
-	  +  <syscall name="osf_sigprocmask" groups="signal"/>
-	  +  <syscall name="osf_statfs64" groups="file"/>
-	  +  <syscall name="osf_statfs" groups="file"/>
-	  +  <syscall name="osf_stat" groups="file"/>
-	  +  <syscall name="osf_utimes" groups="file"/>
-	  +  <syscall name="osf_wait4" groups="process"/>
-	     <syscall name="pause" groups="signal"/>
-	     <syscall name="perf_event_open" groups="descriptor"/>
-	  +  <syscall name="pidfd_getfd" groups="descriptor"/>
-	  +  <syscall name="pidfd_open" groups="descriptor"/>
-	  +  <syscall name="pidfd_send_signal" groups="descriptor,signal,process"/>
-	     <syscall name="pipe2" groups="descriptor"/>
-	     <syscall name="pipe" groups="descriptor"/>
-	     <syscall name="pivot_root" groups="file"/>
-	  +  <syscall name="pkey_mprotect" groups="memory"/>
-	     <syscall name="poll" groups="descriptor"/>
-	  +  <syscall name="posix_fstatfs" groups="descriptor"/>
-	  +  <syscall name="posix_fstat" groups="descriptor"/>
-	  +  <syscall name="posix_kill" groups="process"/>
-	  +  <syscall name="posix_lstat" groups="file"/>
-	  +  <syscall name="posix_madvise" groups="memory"/>
-	  +  <syscall name="posix_mmap" groups="descriptor,memory"/>
-	  +  <syscall name="posix_munmap" groups="memory"/>
-	  +  <syscall name="posix_sbreak" groups="memory"/>
-	  +  <syscall name="posix_SGI_madvise" groups="memory"/>
-	  +  <syscall name="posix_SGI_mmap" groups="descriptor,memory"/>
-	  +  <syscall name="posix_SGI_mprotect" groups="memory"/>
-	  +  <syscall name="posix_SGI_msync" groups="memory"/>
-	  +  <syscall name="posix_SGI_munmap" groups="memory"/>
-	  +  <syscall name="posix_statfs" groups="file"/>
-	  +  <syscall name="posix_stat" groups="file"/>
-	     <syscall name="ppoll" groups="descriptor"/>
-	  +  <syscall name="ppoll_time64" groups="descriptor"/>
-	     <syscall name="pread64" groups="descriptor"/>
-	     <syscall name="pread" groups="descriptor"/>
-	  +  <syscall name="preadv2" groups="descriptor"/>
-	     <syscall name="preadv" groups="descriptor"/>
-	  +  <syscall name="process_madvise" groups="descriptor"/>
-	  +  <syscall name="process_mrelease" groups="descriptor"/>
-	     <syscall name="pselect6" groups="descriptor"/>
-	  +  <syscall name="pselect6_time64" groups="descriptor"/>
-	  +  <syscall name="putpmsg" groups="network"/>
-	     <syscall name="pwrite64" groups="descriptor"/>
-	     <syscall name="pwrite" groups="descriptor"/>
-	  +  <syscall name="pwritev2" groups="descriptor"/>
-	     <syscall name="pwritev" groups="descriptor"/>
-	  +  <syscall name="quotactl_fd" groups="descriptor"/>
-	     <syscall name="quotactl" groups="file"/>
-	     <syscall name="readahead" groups="descriptor"/>
-	     <syscall name="readdir" groups="descriptor"/>
-	  -  <syscall name="read" groups="descriptor"/>
-	     <syscall name="readlinkat" groups="descriptor,file"/>
-	     <syscall name="readlink" groups="file"/>
-	  +  <syscall name="read" groups="descriptor"/>
-	     <syscall name="readv" groups="descriptor"/>
-	     <syscall name="recvfrom" groups="network"/>
-	  -  <syscall name="recv" groups="network"/>
-	  +  <syscall name="recvmmsg_time64" groups="network"/>
-	     <syscall name="recvmmsg" groups="network"/>
-	     <syscall name="recvmsg" groups="network"/>
-	  +  <syscall name="recv" groups="network"/>
-	     <syscall name="remap_file_pages" groups="memory"/>
-	     <syscall name="removexattr" groups="file"/>
-	  +  <syscall name="renameat2" groups="descriptor,file"/>
-	     <syscall name="renameat" groups="descriptor,file"/>
-	     <syscall name="rename" groups="file"/>
-	  +  <syscall name="riscv_flush_icache" groups="memory"/>
-	     <syscall name="rmdir" groups="file"/>
-	     <syscall name="rt_sigaction" groups="signal"/>
-	     <syscall name="rt_sigpending" groups="signal"/>
-	     <syscall name="rt_sigprocmask" groups="signal"/>
-	  -  <syscall name="rt_sigqueueinfo" groups="signal"/>
-	  +  <syscall name="rt_sigqueueinfo" groups="signal,process"/>
-	     <syscall name="rt_sigreturn" groups="signal"/>
-	     <syscall name="rt_sigsuspend" groups="signal"/>
-	  +  <syscall name="rt_sigtimedwait_time64" groups="signal"/>
-	     <syscall name="rt_sigtimedwait" groups="signal"/>
-	     <syscall name="rt_tgsigqueueinfo" groups="process,signal"/>
-	     <syscall name="select" groups="descriptor"/>
-	  @@ -172,12 +278,14 @@
-	     <syscall name="semget" groups="ipc"/>
-	     <syscall name="semop" groups="ipc"/>
-	     <syscall name="semtimedop" groups="ipc"/>
-	  +  <syscall name="semtimedop_time64" groups="ipc"/>
-	     <syscall name="sendfile64" groups="descriptor,network"/>
-	     <syscall name="sendfile" groups="descriptor,network"/>
-	  -  <syscall name="send" groups="network"/>
-	     <syscall name="sendmmsg" groups="network"/>
-	     <syscall name="sendmsg" groups="network"/>
-	  +  <syscall name="send" groups="network"/>
-	     <syscall name="sendto" groups="network"/>
-	  +  <syscall name="set_mempolicy_home_node" groups="memory"/>
-	     <syscall name="set_mempolicy" groups="memory"/>
-	     <syscall name="setns" groups="descriptor"/>
-	     <syscall name="setsockopt" groups="network"/>
-	  @@ -198,38 +306,78 @@
-	     <syscall name="sigreturn" groups="signal"/>
-	     <syscall name="sigsuspend" groups="signal"/>
-	     <syscall name="socketcall" groups="descriptor"/>
-	  -  <syscall name="socket" groups="network"/>
-	     <syscall name="socketpair" groups="network"/>
-	  +  <syscall name="socket" groups="network"/>
-	     <syscall name="splice" groups="descriptor"/>
-	     <syscall name="ssetmask" groups="signal"/>
-	     <syscall name="stat64" groups="file"/>
-	     <syscall name="statfs64" groups="file"/>
-	     <syscall name="statfs" groups="file"/>
-	     <syscall name="stat" groups="file"/>
-	  +  <syscall name="statx" groups="descriptor,file"/>
-	  +  <syscall name="svr4_fstatfs" groups="descriptor"/>
-	  +  <syscall name="svr4_fstat" groups="descriptor"/>
-	  +  <syscall name="svr4_fstatvfs" groups="descriptor"/>
-	  +  <syscall name="svr4_fxstat" groups="descriptor"/>
-	  +  <syscall name="svr4_kill" groups="process"/>
-	  +  <syscall name="svr4_lstat" groups="file"/>
-	  +  <syscall name="svr4_lxstat" groups="file"/>
-	  +  <syscall name="svr4_mincore" groups="memory"/>
-	  +  <syscall name="svr4_mmap" groups="descriptor,memory"/>
-	  +  <syscall name="svr4_mprotect" groups="memory"/>
-	  +  <syscall name="svr4_munmap" groups="memory"/>
-	  +  <syscall name="svr4_sbreak" groups="memory"/>
-	  +  <syscall name="svr4_statfs" groups="file"/>
-	  +  <syscall name="svr4_stat" groups="file"/>
-	  +  <syscall name="svr4_statvfs" groups="file"/>
-	  +  <syscall name="svr4_xstat" groups="file"/>
-	     <syscall name="swapoff" groups="file"/>
-	     <syscall name="swapon" groups="file"/>
-	     <syscall name="symlinkat" groups="descriptor,file"/>
-	     <syscall name="symlink" groups="file"/>
-	  +  <syscall name="sync_file_range2" groups="descriptor"/>
-	     <syscall name="sync_file_range" groups="descriptor"/>
-	     <syscall name="syncfs" groups="descriptor"/>
-	  +  <syscall name="sysv_brk" groups="memory"/>
-	  +  <syscall name="sysv_fstatfs" groups="descriptor"/>
-	  +  <syscall name="sysv_fstat" groups="descriptor"/>
-	  +  <syscall name="sysv_fstatvfs" groups="descriptor"/>
-	  +  <syscall name="sysv_fxstat" groups="descriptor"/>
-	  +  <syscall name="sysv_kill" groups="process"/>
-	  +  <syscall name="sysv_lstat" groups="file"/>
-	  +  <syscall name="sysv_lxstat" groups="file"/>
-	  +  <syscall name="sysv_madvise" groups="memory"/>
-	  +  <syscall name="sysv_mmap64" groups="descriptor,memory"/>
-	  +  <syscall name="sysv_mmap" groups="descriptor,memory"/>
-	  +  <syscall name="sysv_mprotect" groups="memory"/>
-	  +  <syscall name="sysv_msync" groups="memory"/>
-	  +  <syscall name="sysv_munmap" groups="memory"/>
-	  +  <syscall name="sysv_quotactl" groups="file"/>
-	  +  <syscall name="sysv_statfs" groups="file"/>
-	  +  <syscall name="sysv_stat" groups="file"/>
-	  +  <syscall name="sysv_statvfs" groups="file"/>
-	  +  <syscall name="sysv_xstat" groups="file"/>
-	     <syscall name="tee" groups="descriptor"/>
-	  -  <syscall name="tgkill" groups="signal"/>
-	  +  <syscall name="tgkill" groups="signal,process"/>
-	     <syscall name="timerfd_create" groups="descriptor"/>
-	  +  <syscall name="timerfd_gettime64" groups="descriptor"/>
-	     <syscall name="timerfd_gettime" groups="descriptor"/>
-	  -  <syscall name="timerfd" groups="descriptor"/>
-	  +  <syscall name="timerfd_settime64" groups="descriptor"/>
-	     <syscall name="timerfd_settime" groups="descriptor"/>
-	  -  <syscall name="tkill" groups="signal"/>
-	  +  <syscall name="timerfd" groups="descriptor"/>
-	  +  <syscall name="tkill" groups="signal,process"/>
-	     <syscall name="truncate64" groups="file"/>
-	     <syscall name="truncate" groups="file"/>
-	     <syscall name="umount2" groups="file"/>
-	     <syscall name="umount" groups="file"/>
-	     <syscall name="unlinkat" groups="descriptor,file"/>
-	     <syscall name="unlink" groups="file"/>
-	  -  <syscall name="unshare" groups="process"/>
-	     <syscall name="uselib" groups="file"/>
-	  -  <syscall name="utime" groups="file"/>
-	  +  <syscall name="userfaultfd" groups="descriptor"/>
-	     <syscall name="utimensat" groups="descriptor,file"/>
-	  +  <syscall name="utimensat_time64" groups="descriptor,file"/>
-	     <syscall name="utimes" groups="file"/>
-	  +  <syscall name="utime" groups="file"/>
-	     <syscall name="vfork" groups="process"/>
-	     <syscall name="vmsplice" groups="descriptor"/>
-	     <syscall name="wait4" groups="process"/>
-
-	Change-Id: I679d59d42fb2a914bf7a99e4c558e9696e5adff1
-
-2023-02-27  Pedro Alves  <pedro@palves.net>
-
-	Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) from strace sources
-	I noticed that "catch syscall group:process" doesn't catch clone3,
-	while it does catch clone.
-
-	The catch syscall group information is recorded in the
-	gdb/syscalls/linux-defaults.xml.in file, which says:
-
-	  <!-- The group field information was based on strace.  -->
-
-	So I looked at the strace sources, to confirm that clone3 is in fact
-	recorded in the "process" group there too, and to check what other
-	syscalls might be missing groups.
-
-	After some digging, I found that strace records the group info in C
-	arrays, with entries like:
-	...
-	[ 61] = { 4,	TP,		SEN(wait4),			"wait4"			},
-	[ 62] = { 2,	TS|TP,		SEN(kill),			"kill"			},
-	[ 63] = { 1,	0,		SEN(uname),			"uname"			},
-	...
-
-	You can see the current master's table for Linux x86-64 here:
-
-	  https://github.com/strace/strace/blob/e88e5e9ae6da68f22d15f9be3193b1412ac9aa02/src/linux/x86_64/syscallent.h
-
-	The column with TS|TP above is what defines each syscall's groups.  So
-	I wrote a script that extracts this information and generates
-	linux-defaults.xml.in.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: I679d59d42fb2a914bf7a99e4c558e9696e5adff1
-
-2023-02-27  Clément Chigot  <chigot@adacore.com>
-
-	gas/testsuite: adjust another test for case insensitive file systems
-	As 1fafeaac8503eea2f61c3a35f0eef183b7e7cc65, "line.s" and "Line.s" are
-	identical in case insensitive file systems. Thus, gas doesn't trigger
-	an input file switch.
-
-	gas/ChangeLog:
-
-	        * testsuite/gas/elf/dwarf-5-macro.s: Change Line.s to Line2.s.
-
-2023-02-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't treat empty enums as flag enums
-	In C++ it is possible to use an empty enum as a strong typedef.  For
-	example, a user could write:
-
-	  enum class my_type : unsigned char {};
-
-	Now my_type can be used like 'unsigned char' except the compiler will
-	not allow implicit conversion too and from the native 'unsigned char'
-	type.
-
-	This is used in the standard library for things like std::byte.
-
-	Currently, when GDB prints a value of type my_type, it looks like
-	this:
-
-	  (gdb) print my_var
-	  $1 = (unknown: 0x4)
-
-	Which isn't great.  This gets worse when we consider something like:
-
-	  std::vector<my_type> vec;
-
-	When using a pretty-printer, this could look like this:
-
-	  std::vector of length 2, capacity 2 = {(unknown: 0x2), (unknown: 0x4)}
-
-	Clearly not great.  This is described in PR gdb/30148.
-
-	The problem here is in dwarf2/read.c, we assume all enums are flag
-	enums unless we find an enumerator with a non-flag like value.
-	Clearly an empty enum contains no non-flag values, so we assume the
-	enum is a flag enum.
-
-	I propose adding an extra check here; that is, an empty enum should
-	never be a flag enum.
-
-	With this the above cases look more like:
-
-	  (gdb) print my_var
-	  $1 = 4
-
-	and:
-
-	  std::vector of length 2, capacity 2 = {2, 4}
-
-	Which look much better.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30148
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-27  Benson Muite  <benson_muite@emailplus.org>
-
-	Do not change the timestamp when updating the gas asconfig file.
-	 PR 28909 * doc/local.mk (asconfig.texi): Use "cp -p" to preserve timestamps. * Makefile.in: Regenerate.
-
-2023-02-27  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	Fix missing "Core was generated by" when loading a x32 corefile.
-
-2023-02-27  Nick Clifton  <nickc@redhat.com>
-
-	Updated Serbian translations for gold, gprof and opcodes sub-directories
-
-2023-02-27  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: Improve testing of GDB's completion functions
-	When looking at some failures of gdb.linespec/cp-completion-aliases.exp,
-	I noticed that when a completion test will fail, it always fails with a
-	timeout.  This is because most completion tests use gdb_test_multiple
-	and only add a check for the correct output.  This commit adds new
-	options for both, tab and command completion.
-
-	For command completion, the new option will check if the prompt was
-	printed, and fail in this case. This is enough to know that the test has
-	failed because the check comes after the PASS path. For tab completion,
-	we have to check if GDB outputted more than just the input line, because
-	sometimes GDB would have printed a partial line before finishing with
-	the correct completion.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-27  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb, python: do minor modernization in execute_gdb_command
-	Use nullptr instead of NULL and boolify two local variables in
-	execute_gdb_command.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-26  Tom Tromey  <tom@tromey.com>
-
-	Remove expand_symtab_containing_pc
-	The function expand_symtab_containing_pc is unused; remove it.
-	Tested by rebuilding.
-
-2023-02-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/amd64: replace xmalloc/alloca with gdb::byte_vector
-	Replace a couple of uses of xmalloc and alloc with a gdb::byte_vector
-	local variable instead.
-
-	There should be no user visible changes after this commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-25  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/m68k: enable libopcodes styling for GDB
-	The following commit added libopcodes styling for m68k:
-
-	  commit c22ff449275c91e4842bb10c650e83c572580f65
-	  Date:   Tue Feb 14 18:07:19 2023 +0100
-
-	      opcodes: style m68k disassembler output
-
-	but didn't set disassemble_info::created_styled_output in
-	disassemble.c, which is needed in order for GDB to start using the
-	libopcodes based styling.
-
-	This commit fixes this small oversight.  GDB now styles correctly.
-
-2023-02-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-24  Khem Raj  <raj.khem@gmail.com>
-
-	gdbserver/linux-low.cc: Fix a typo in ternary operator
-
-2023-02-24  Tom Tromey  <tom@tromey.com>
-
-	Remove struct buffer
-	I've long wanted to remove 'struct buffer', and thanks to Simon's
-	earlier patch, I was finally able to do so.  My feeling has been that
-	gdb already has several decent structures available for growing
-	strings: std::string of course, but also obstack and even objalloc
-	from BFD and dyn-string from libiberty.  The previous patches in this
-	series removed all the uses of struct buffer, so this one can remove
-	the code and the remaining #includes.
-
-	Don't use struct buffer in top.c
-	This changes top.c to use std::string rather than struct buffer.  Like
-	the event-top.c change, this is not completely ideal in that it
-	requires a copy of the string.
-
-	Don't use struct buffer in event-top.c
-	This changes event-top.c to use std::string rather than struct buffer.
-	This isn't completely ideal, in that it requires a copy of the string
-	to be made.
-
-	Don't use struct buffer in handle_qxfer_threads
-	This changes handle_qxfer_threads, in gdbserver, to use std::string
-	rather than struct buffer.
-
-	Don't use struct buffer in handle_qxfer_btrace
-	This changes handle_qxfer_btrace and handle_qxfer_btrace_conf, in
-	gdbserver, to use std::string rather than struct buffer.
-
-	Don't use struct buffer in handle_qxfer_traceframe_info
-	This changes handle_qxfer_traceframe_info, in gdbserver, to use
-	std::string rather than struct buffer.
-
-	Remove struct buffer from tracefile-tfile.c
-	This changes tracefile-tfile.c to use std::string rather than struct
-	buffer.
-
-2023-02-24  Tom Tromey  <tromey@adacore.com>
-
-	Write the DWARF index in the background
-	The new DWARF cooked indexer interacts poorly with the DWARF index
-	cache.  In particular, the cache will require gdb to wait for the
-	cooked index to be finalized.  As this happens in the foreground, it
-	means that users with this setting enabled will see a slowdown.
-
-	This patch changes gdb to write the cache entry a worker thread.  (As
-	usual, in the absence of threads, this work is simply done immediately
-	in the main thread.)
-
-	Some care is taken to ensure that this can't crash, and that gdb will
-	not exit before the task is complete.
-
-	To avoid use-after-free problems, the DWARF per-BFD object explicitly
-	waits for the index cache task to complete.
-
-	To avoid gdb exiting early, an exit observer is used to wait for all
-	such pending tasks.
-
-	In normal use, neither of these waits will be very visible.  For users
-	using "-batch" to pre-generate the index, though, it would be.
-	However I don't think there is much to be done about this, as it was
-	the status quo ante.
-
-2023-02-24  Tom Tromey  <tromey@adacore.com>
-
-	Only use the per-BFD object to write a DWARF index
-	The DWARF index does not need access to the objfile or per-objfile
-	objects when writing -- it's entirely based on the objfile-independent
-	per-BFD data.
-
-	This patch implements this idea by changing the entire API to only be
-	passed the per-BFD object.  This simplifies some lifetime reasoning
-	for the next patch.
-
-	This patch removes some code that ensures that the BFD came from a
-	file.  It seems to me that checking for the existence of a build-id is
-	good enough for the index cache.
-
-2023-02-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix parenthesis position in comment
-	Change-Id: I535b597ab4482378910570d8dd69c090419941eb
-
-2023-02-24  Clément Chigot  <chigot@adacore.com>
-
-	testsuite: prune DOS drive letter in test outputs
-	On DOS systems, absolute paths start with the drive letter. This can
-	trigger failures in the regexp from dump tests, especially for those
-	checking for warnings or errors. They are usually skipping everything
-	before the first ":" as it has to be the file path.
-	  | [^:]*: warning: ...
-
-	In order to avoid modifying many regexps to allow such drive letters,
-	prune them from all the outputs if they are found at the beginning of
-	a line.
-
-	binutils/ChangeLog:
-
-		* testsuite/lib/binutils-common.exp (prune_dump_output): New
-		(run_dump_test): Use it.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/noinit-sections-2.l: Remove DOS drive letter
-		handler.
-
-2023-02-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: allow to request ModR/M encoding
-	Several insns have a (typically shorter) non-ModR/M and a (typically
-	longer) ModR/M encoding. In most cases the former is used by default.
-	This isn't too dissimilar from register-only insns sometimes having two
-	encoding forms. In those cases {load} or {store} can be used to control
-	the encoding used. Extend this to ModR/M-less encodings which have a
-	ModR/M counterpart (note that BSWAP hasn't). For insn reading and
-	writing their (explicit) memory operand, both prefixes are honored;
-	otherwise only the applicable one is.
-
-	Note that for some forms of XCHG, {store} has already been performing
-	this function, apparently as an unnoticed side effect of adding D to
-	the template.
-
-2023-02-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: MONITOR/MWAIT are not SSE3 insns
-	These have their own CPUID bit and hence they should also have their own
-	separate control.
-
-2023-02-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86-64: don't permit LAHF/SAHF with "generic64"
-	The feature isn't universally available on 64-bit CPUs.
-
-	Note that in i386-gen.c:isa_dependencies[] I'm only adding it to models
-	where I'm certain the functionality exists. For Nocona and Core I'm
-	uncertain in particular.
-
-2023-02-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: have insns acting on segment selector values allow for consistent operands
-	While MOV to/from segment register as well as selector storing insns
-	already permit 32- and 64-bit GPR operands, selector loading insns and
-	ARPL do not. Split templates accordingly.
-
-2023-02-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: restrict insn templates accepting negative 8-bit immediates
-	For shifts (but not ordinary rotates) and other cases where an immediate
-	describes e.g. a bit count or position, allowing negative operands is at
-	best confusing. An extreme example would be the two rotate-through-carry
-	insns, where a negative value would _not_ mean rotating the
-	corresponding number of bits in the other direction. To refuse such,
-	give meaning to the combination of Imm8 and Imm8S in templates (so far
-	these weren't used together anywhere). The issue was with
-	smallest_imm_type() blindly setting .imm8 for signed numbers determined
-	to fit in a byte.
-
-	VPROT{B,W,D,Q} is a little special: The rotate count there is a signed
-	quantity, so Imm8 is replaced by Imm8S. Adjust affected testcases
-	accordingly as well.
-
-	Another small adjustment to the testsuite is necessary: AAM and AAD were
-	never sensible to use with 0xffffff90 operands. This should have been an
-	error.
-
-2023-02-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Cleanup unnecessary expr from require line
-	In a recent commit I've added:
-	...
-	require {expr [have_compile_flag -fsplit-stack]}
-	...
-	but actually the expr bit is unnecessary, and we can just use:
-	...
-	require {have_compile_flag -fsplit-stack}
-	...
-
-	Reported-By: Tom Tromey <tom@tromey.com>
-
-2023-02-24  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Fix out of bounds accesses with limited-length values
-	Fix accesses to limited-length values in `contents_copy_raw' and
-	`contents_copy_raw_bitwise' so that they observe the limit of the
-	original allocation.
-
-	Reported by Simon Marchi as a heap-buffer-overflow AddressSanitizer
-	issue triggered with gdb.ada/limited-length.exp.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-24  Nick Clifton  <nickc@redhat.com>
-
-	Enhance better_fit() function to prefer function symbols over non-function symbols.
-
-2023-02-24  Alan Modra  <amodra@gmail.com>
-
-	PR30155, ld segfault in _bfd_nearby_section
-	The segfault was a symptom of messing with the absolute section next
-	field, confusing bfd_section_removed_from_list in linker.c:fix_syms.
-	That's not all that was going wrong.  The INSERT list of output
-	sections was being inserted into itself, ie. lost from the main
-	list of linker statements.
-
-		PR 30155
-		* ldlang.c (process_insert_statements): Handle pathological
-		case of the insert script being inserted before the first
-		output section statement in the default script.
-		(output_prev_sec_find): Don't test section owner here.
-		(insert_os_after): Change parameter to a list union pointer.
-		(lang_insert_orphan): Test section owner here and adjust
-		insert_os_after call.
-
-2023-02-24  Fangrui Song  <i@maskray.me>
-
-	RISC-V: Add --[no-]relax-gp to ld
-	--relax enables all relaxations.  --no-relax-gp disables GP relaxation to
-	allow measuring its effect.
-
-	The option can test effectiveness of GP relaxation and support some ABI
-	variants that use GP for other purposes.
-
-	Link: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/298
-
-	bfd/
-	    * elfnn-riscv.c (struct riscv_elf_link_hash_table): Add params.
-	    (riscv_elfNN_set_options): New.
-	    (riscv_info_to_howto_rela): Check relax_gp.
-	    (_bfd_riscv_relax_section): Likewise.
-	    * elfxx-riscv.h (struct riscv_elf_params): New.
-	    (riscv_elf32_set_options): New.
-	    (riscv_elf64_set_options): New.
-	ld/
-	    * emultempl/riscvelf.em: Add option parsing.
-	    * testsuite/ld-riscv-elf/code-model-relax-medlow-01-norelaxgp.d: New.
-	    * testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d: New.
-	    * testsuite/ld-riscv-elf/pcgp-relax-02.d: Test --relax --relax-gp can be
-	      used together.
-
-2023-02-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
-
-	gdb/doc: The RISC-V vector registers didn't change
-	When we merged the GDB vector register support we did it a bit early,
-	just eating the risk in the very unlikely case that the vector register
-	names changed.  They didn't, so we can now remove the caveat in the docs
-	that they might.
-
-2023-02-23  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove --disable-gdbmi configure option
-	I noticed that the --disable-gdbmi option was broken for almost a year
-	(since 740b42ceb7c "gdb/python/mi: create MI commands using python").
-
-	The problem today is the python/py-cmd.c file.  It is included in the
-	build if Python support is enabled, and it calls into some MI functions
-	(e.g. insert_mi_cmd_entry).  If MI support is disabled, we get some
-	undefined symbols like:
-
-	    mold: error: undefined symbol: insert_mi_cmd_entry(std::unique_ptr<mi_command, std::default_delete<mi_command> >)
-	    >>> referenced by py-micmd.c
-	    >>>               python/py-micmd.o:(micmdpy_install_command(micmdpy_object*))
-
-	The python/py-cmd.c file should be included in the build if both Python
-	and MI support are enabled.  It is not a case we support today, but it
-	could be done with a bit more configure code.  However, I think we
-	should just remove the --disable-gdbmi option, and just include MI
-	support unconditionally.
-
-	Tom Tromey proposed a while ago to remove this option, but it ended
-	staying:
-
-	  https://inbox.sourceware.org/gdb-patches/20180628172132.28843-1-tom@tromey.com/
-
-	However, there was no strong opposition to remove it.  The argument was
-	just "bah, it doesn't hurt anybody".
-
-	But given today's case, I would rather remove complexity rather than add
-	some.  I couldn't find anybody caring deeply for that option, and it's
-	not like MI adds any external dependency.  It's just a bit more code.
-
-	Removing the option will not break anybody using --disable-gdbmi (it can
-	be found in many build scripts [1]), since we don't flag invalid
-	configure flags.
-
-	So, remove the option from configure.ac, and adjust Makefile.in
-	accordingly to always include the MI objects in the build.
-
-	[1] https://github.com/search?q=%22--disable-gdbmi%22&type=code
-
-	Change-Id: Ifcaa8c9fc4abc6fa686ed5fd984598644f745240
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-23  Tom Tromey  <tromey@adacore.com>
-
-	Fix Tcl quoting in gdb_assert
-	The gdb_assert proc under-quotes the expression that is passed in.
-	This leads to weird code in a couple of spots that tries to
-	compensate:
-
-	    gdb_assert {{$all_regs eq $completed_regs}} ...
-
-	The fix is to add a bit of quoting when evaluating the expression.
-
-2023-02-23  Nick Clifton  <nickc@redhat.com>
-
-	Fix _bfd_elf_find_function so that it can cope with overlapping symbols
-
-2023-02-23  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add AMDGPU header files to HFILES_NO_SRCDIR
-	Commit 18b4d0736bc5 ("gdb: initial support for ROCm platform (AMDGPU)
-	debugging") missed adding these header files to the HFILES_NO_SRCDIR
-	list in the Makefile.  Fix that now.
-
-	Change-Id: Ifd387096aef3d147b51aefa2037da5bf6373ea64
-
-2023-02-23  Tom Tromey  <tromey@adacore.com>
-
-	Remove 'eval' from gdb_breakpoint
-	Now that Tcl has the {*} operator, we can remove the use of eval from
-	gdb_breakpoint.  Tested on x86-64 Fedora 36.
-
-2023-02-23  Hui Li  <lihui@loongson.cn>
-
-	gdb: LoongArch: Support reg aliases in info reg command
-	According to LoongArch ELF ABI specification [1], support the register
-	aliases in "info register" command.
-
-	Without this patch:
-	```
-	(gdb) info reg a0
-	Invalid register `a0'
-
-	```
-	With this patch:
-
-	```
-	(gdb) info reg a0
-
-	a0             0x1                 1
-
-	```
-	[1] https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html#_register_convention
-
-2023-02-23  Hui Li  <lihui@loongson.cn>
-
-	gdb: LoongArch: Modify the result of the info reg command
-	The "info register" command should only display general registers,
-	but it shows the information of all registers in the current code,
-	add loongarch_register_reggroup_p() so that we can get the expected
-	result.
-
-2023-02-23  Alexey Lapshin  <alexey.lapshin@espressif.com>
-
-	bfd: xtensa: fix __stop_SECTION literal drop
-
-2023-02-23  Nick Clifton  <nickc@redhat.com>
-
-	Fix the BFD library's find_nearest_line feature to produce consistent results.
-	 PR 30150
-	 * dwarf2.c (comp_unit_contains_address): Renamed to ... (comp_unit_may_contain_address): this,
-	 and added code to return true if the CU's ranges have not yet been computed.
-	 (_bfd_dwarf2_find_nearest_line_with_alt): Use the renamed function, simplifying code in the process.
-
-2023-02-23  Alan Modra  <amodra@gmail.com>
-
-	dwarf1 .line SEC_HAS_CONTENTS
-		* dwarf1.c (parse_line_table): Ignore .line without SEC_HAS_CONTENTS.
-		Formatting.
-
-2023-02-23  Alan Modra  <amodra@gmail.com>
-
-	ip2k: don't look at stab sections without relocs
-	No need to read contents if we won't do anything.
-
-		* elf32-ip2k.c (adjust_all_relocations): Skip stab sections
-		without relocs.
-
-2023-02-23  Alan Modra  <amodra@gmail.com>
-
-	Test SEC_HAS_CONTENTS in relax routines
-	More places that generally expect instructions, so not zeros.
-
-		* coff-sh.c (sh_relax_section, sh_relax_delete_bytes): Exclude
-		sections without SEC_HAS_CONTENTS set.
-		* elf-m10200.c (mn10200_elf_relax_section): Likewise.
-		* elf32-arc.c (arc_elf_relax_section): Likewise.
-		* elf32-avr.c (elf32_avr_relax_section): Likewise.
-		* elf32-cr16.c (elf32_cr16_relax_section): Likewise.
-		* elf32-crx.c (elf32_crx_relax_section): Likewise.
-		* elf32-epiphany.c (epiphany_elf_relax_section): Likewise.
-		* elf32-ft32.c (ft32_elf_relax_section): Likewise.
-		* elf32-h8300.c (elf32_h8_relax_section): Likewise.
-		* elf32-ip2k.c (ip2k_elf_relax_section): Likewise.
-		* elf32-m32c.c (m32c_elf_relax_section): Likewise.
-		* elf32-m68hc11.c (m68hc11_elf_relax_section): Likewise.
-		* elf32-msp430.c (msp430_elf_relax_section): Likewise.
-		* elf32-pru.c (pru_elf32_relax_section): Likewise.
-		* elf32-rl78.c (rl78_elf_relax_section): Likewise.
-		* elf32-rx.c (elf32_rx_relax_section): Likewise.
-		* elf32-sh.c (sh_elf_relax_section): Likewise.
-		(sh_elf_relax_delete_bytes): Likewise.
-		* elf32-v850.c (v850_elf_relax_section): Likewise.
-		* elf64-alpha.c (elf64_alpha_relax_section): Likewise.
-		* elf64-ia64-vms.c (elf64_ia64_relax_section): Likewise.
-		* elfnn-ia64.c (elfNN_ia64_relax_section): Likewise.
-		* elfnn-riscv.c (_bfd_riscv_relax_section): Likewise.
-		* elfxx-mips.c (_bfd_mips_elf_relax_section): Likewise.
-
-2023-02-23  Alan Modra  <amodra@gmail.com>
-
-	Test SEC_HAS_CONTENTS before reading section contents
-	bfd_malloc_and_get_section does size sanity checking before allocating
-	memory and reading contents.  These size checks are not done for bss
-	style sections, because they typically don't occupy file space and
-	thus can't be compared against file size.  However, if you are
-	expecting to look at something other than a whole lot of zeros, don't
-	allow fuzzers to avoid the size checking.
-
-		* cofflink.c (process_embedded_commands): Don't look at
-		sections without SEC_HAS_CONTENTS set.
-		* cpu-arm.c (bfd_arm_update_notes): Likewise.
-		(bfd_arm_get_mach_from_notes): Likewise.
-		* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Likewise.
-		* elf-hppa.h (elf_hppa_sort_unwind): Likewise.
-		* elf-m10300.c (mn10300_elf_relax_section): Likewise.
-		* elf-sframe.c (_bfd_elf_parse_sframe): Likewise.
-		* elf.c (_bfd_elf_print_private_bfd_data): Likewise.
-		* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Likewise.
-		* elf32-avr.c (avr_elf32_load_property_records): Likewise.
-		* elf32-ppc.c (_bfd_elf_ppc_set_arch): Likewise.
-		(ppc_elf_get_synthetic_symtab, ppc_elf_relax_section): Likewise.
-		* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
-		(opd_entry_value, ppc64_elf_edit_opd, ppc64_elf_edit_toc): Likewise.
-		* elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
-		* elflink.c (elf_link_add_object_symbols): Likewise.
-		(bfd_elf_get_bfd_needed_list): Likewise.
-		* elfnn-aarch64.c (get_plt_type): Likewise.
-		* elfxx-mips.c (_bfd_mips_elf_get_synthetic_symtab): Likewise.
-		* linker.c (_bfd_handle_already_linked): Likewise.
-		* opncls.c (bfd_get_debug_link_info_1): Likewise.
-		(bfd_get_alt_debug_link_info, get_build_id): Likewise.
-		* peXXigen.c (pe_print_idata, pe_print_pdata): Likewise.
-		(_bfd_XX_print_ce_compressed_pdata, pe_print_reloc): Likewise.
-		* pei-x86_64.c (pex64_bfd_print_pdata_section): Likewise.
-		* stabs.c (_bfd_link_section_stabs): Likewise.
-		(_bfd_discard_section_stabs): Likewise.
-		* xcofflink.c (_bfd_xcoff_get_dynamic_symtab_upper_bound): Likewise.
-		(_bfd_xcoff_canonicalize_dynamic_symtab): Likewise.
-		(_bfd_xcoff_get_dynamic_reloc_upper_bound): Likewise.
-		(_bfd_xcoff_canonicalize_dynamic_reloc): Likewise.
-		(xcoff_link_add_dynamic_symbols): Likewise.
-		(xcoff_link_check_dynamic_ar_symbols): Likewise.
-		(bfd_xcoff_build_dynamic_sections): Likewise.
-
-2023-02-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-22  Pedro Alves  <pedro@palves.net>
-
-	gdb.reverse/time-reverse.exp: test both time syscall and C time function
-	Instead of only testing this on systems that have a SYS_time syscall,
-	test it everywhere using the time(2) C function, and in addition, run
-	the tests again using the SYS_time syscall.
-
-	The C variant ensures that if some platform uses some syscall we are
-	not aware of yet, we'll still exercise it, and likely fail, at which
-	point we should teach GDB about the syscall.
-
-	The explicit syscall variant is useful on platforms where the C
-	function does not call a syscall at all by default, e.g., on some
-	systems the C time function wraps an implementation provided by the
-	vDSO.
-
-	Approved-By: Tom de Vries <tdevries@suse.de>
-	Change-Id: Id4b755d76577d02c46b8acbfa249d9c31b587633
-
-2023-02-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86-64: LAR and LSL don't need REX.W
-	Just like we suppress emitting REX.W for e.g. MOV from/to segment
-	register, there's also no need for it for LAR and LSL - these can only
-	ever return 32-bit values and hence always zero-extend their results
-	anyway.
-
-	While there also drop the redundant Word from the first operand of
-	the second template each - this is already implied by Reg16.
-
-2023-02-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: optimize BT{,C,R,S} $imm,%reg
-	In 64-bit mode BT can have REX.W or a data size prefix dropped in
-	certain cases. Outside of 64-bit mode all 4 insns can have the data
-	size prefix dropped in certain cases.
-
-2023-02-22  Alan Modra  <amodra@gmail.com>
-
-	set bfd_error on make_tempname or make_tempdir failure
-		* bucomm.c (make_tempname, make_tempdir): Set bfd_error on error.
-
-2023-02-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-21  Alan Modra  <amodra@gmail.com>
-
-	Re: objdump read_section_stabs
-	Also fix ubsan "applying zero offset to null pointer".
-
-		* objdump.c (print_section_stabs): Avoid ubsan warning.
-
-2023-02-21  Alan Modra  <amodra@gmail.com>
-
-	Re: objdump read_section_stabs
-	Commit f9c36cc99518 changed (and renamed) read_section_stabs with one
-	difference in overall behaviour.  Previously read_section_stabs would
-	return a NULL for an empty section, which was then treated the same as
-	a missing section.  Now an empty section is recognized and dumped.
-	This leads to NULL stabp and stabs_end in print_section_stabs.  Since
-	stabs_end - STABSIZE is then a pointer to a very large address, the
-	test "stabp < stabs_end - STABSIZE" succeeds.
-
-		* objdump.c (print_section_stabs): Correct STABSIZE comparison.
-
-2023-02-21  Alan Modra  <amodra@gmail.com>
-
-	debug_link duplicate file size checks
-	bfd_malloc_and_get_section does these checks.
-
-		* opncls.c (bfd_get_debug_link_info_1): Don't check section
-		size against file size.
-		(bfd_get_alt_debug_link_info): Likewise.
-
-2023-02-21  Tom Tromey  <tom@tromey.com>
-
-	Issue error on erroneous expression
-	A while back I discovered that this does not issue an error:
-
-	    (gdb) p $x = (void * ) 57
-	    $3 = (void *) 0x39
-	    (gdb) p $x + 7 = 3
-	    $6 = (void *) 0x3
-
-	This patch fixes the bug.
-	Regression tested on x86-64 Fedora 36.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=19312
-
-2023-02-21  Philippe Blain  <levraiphilippeblain@gmail.com>
-
-	gdb: add --with-curses to --configuration output
-	'gdb --configuration' does not mention if GDB was built with curses.
-	Since b5075fb68d4 (Rename to allow_tui_tests, 2023-01-08) it does show
-	--enable-tui (or --disable-tui), but one might want to know if GDB was
-	built with curses independently of the availability of the TUI.
-
-	Since configure.ac uses AC_SEARCH_LIBS to check for the curses library,
-	we do not get an automatically defined HAVE_LIBCURSES symbol in
-	config.in. We do have symbols defined by AC_CHECK_HEADERS
-	(HAVE_CURSES_H, etc.) but it would be cumbersome to use those in
-	print_gdb_configuration because we would have to check for all 6 symbols
-	corresponding the 6 headers listed. This would also increase the
-	maintenance burden if support for other variations of curses are added.
-
-	Instead, define 'HAVE_LIBCURSES' ourselves by adding an
-	'action-if-found' argument to AC_SEARCH_LIBS, and use it in
-	print_gdb_configuration.
-
-	While at it, remove the condition on 'ac_cv_search_waddstr' and set
-	'curses_found' directly in 'action-if-found'.
-
-	Change-Id: Id90e3d73990e169cee51bcc3e1d52072cfacd5b8
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require compilation flags in two gdb.arch/aarch64 test-cases
-	With test-cases gdb.arch/aarch64-mte-core.exp and gdb.arch/aarch64-pauth.exp I
-	run into compilation errors due to unsupported compilation flags.
-
-	Fix this by requiring the compilation flags, such that I have instead:
-	...
-	UNSUPPORTED: gdb.arch/aarch64-mte-core.exp: require failed: \
-	  have_compile_flag -march=armv8.5-a+memtag
-	UNSUPPORTED: gdb.arch/aarch64-pauth.exp: require failed: \
-	  have_compile_flag -mbranch-protection=pac-ret+leaf
-	...
-
-	Tested on aarch64-linux.
-
-2023-02-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require istarget x86* in gdb.reverse/step-indirect-call-thunk.exp
-	On aarch64-linux, I run into:
-	...
-	Running gdb.reverse/step-indirect-call-thunk.exp ...
-	gdb compile failed, gcc: error: unrecognized command line option \
-	  '-mindirect-branch=thunk'; did you mean '-findirect-inlining'?
-	gcc: error: unrecognized command line option '-mfunction-return=thunk'; \
-	  did you mean '-Wfunction-elimination'?
-	UNTESTED: gdb.reverse/step-indirect-call-thunk.exp: failed to prepare
-	...
-
-	Fix this by requiring istarget "x86*", similar to what was added in
-	gdb.base/step-indirect-call-thunk.exp by commit 43127ae5714 ("Fix
-	gdb.base/step-indirect-call-thunk.exp"), such that we have instead:
-	...
-	UNSUPPORTED: gdb.reverse/step-indirect-call-thunk.exp: require failed: \
-	  istarget "x86*
-	...
-
-	Tested on x86_64-linux and aarch64-linux.
-
-2023-02-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require -fsplit-stack in gdb.base/morestack.exp
-	On aarch64-linux, I run into:
-	...
-	gdb compile failed, cc1: error: '-fsplit-stack' is not supported by this \
-	  compiler configuration
-	UNTESTED: gdb.base/morestack.exp: failed to prepare
-	...
-
-	Fix this by requiring -fsplit-stack, such that we have instead:
-	...
-	UNSUPPORTED: gdb.base/morestack.exp: require failed: \
-	  expr [have_compile_flag -fsplit-stack]
-	...
-
-	Tested on x86_64-linux and aarch64-linux.
-
-2023-02-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require syscall time in gdb.reverse/time-reverse.exp
-	On aarch64-linux, I run into:
-	...
-	Running gdb.reverse/time-reverse.exp ...
-	gdb compile failed, gdb.reverse/time-reverse.c: In function 'main':
-	gdb.reverse/time-reverse.c:39:12: error: 'SYS_time' undeclared \
-	  (first use in this function); did you mean 'SYS_times'?
-	   syscall (SYS_time, &time_global);
-	            ^~~~~~~~
-	            SYS_times
-	gdb.reverse/time-reverse.c:39:12: note: each undeclared identifier is \
-	  reported only once for each function it appears in
-	UNTESTED: gdb.reverse/time-reverse.exp: failed to prepare
-	...
-
-	Fix this by adding a new proc have_syscall, and requiring syscall time, such
-	that we have instead:
-	...
-	UNSUPPORTED: gdb.reverse/time-reverse.exp: require failed: \
-	  expr [have_syscall time]
-	...
-
-	Tested on x86_64-linux and aarch64-linux.
-
-2023-02-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require python in gdb.dap/basic-dap.exp
-	When running test-case gdb.dap/basic-dap.exp with a gdb without python
-	support, I run into:
-	...
-	builtin_spawn gdb -nw -nx -iex set height 0 -iex set width 0 \
-	  -data-directory data-directory -iex set debug dap-log-file dap.log.1 -q \
-	  -i=dap
-	>>> {"seq": 1, "type": "request", "command": "initialize"}
-	Interpreter `dap' unrecognized
-	ERROR: eof reading json header
-	...
-
-	Fix this by requiring python in the test-case.
-
-	Tested on x86_64-linux, both with a gdb without and with python.
-
-2023-02-21  Nick Clifton  <nickc@redhat.com>
-
-	Update the description of the bfd_fill_in_gnu_debuglink_section function
-
-	Updated translatios for the bfd and gprof directories.
-
-2023-02-21  Clément Chigot  <chigot@adacore.com>
-
-	gas/testsuite: adjust a test for case insensitive file systems
-	When dealing with case insensitive file systems, ".file line.s" and
-	".file Line.s" are identical and thus gas won't change the current
-	input file.
-	However, in line.l test, it's expecting to trigger an input file switch.
-	As the second filename doesn't matter in it, change it to fit for those
-	file systems.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/elf/line.l: Change Line.s to Line2.s.
-		* testsuite/gas/elf/line.s: Adjust output.
-
-2023-02-21  Luis Machado  <luis.machado@arm.com>
-
-	[aarch64] Enable pointer authentication support for aarch64 bare metal/kernel mode addresses
-	At the moment GDB only handles pointer authentication (pauth) for userspace
-	addresses and if we're debugging a Linux-hosted program.
-
-	The Linux Kernel can be configured to use pauth instructions for some
-	additional security hardening, but GDB doesn't handle this well.
-
-	To overcome this limitation, GDB needs a couple things:
-
-	1 - The target needs to advertise pauth support.
-	2 - The hook to remove non-address bits from a pointer needs to be registered
-	    in aarch64-tdep.c as opposed to aarch64-linux-tdep.c.
-
-	There is a patch for QEMU that addresses the first point, and it makes
-	QEMU's gdbstub expose a couple more pauth mask registers, so overall we will
-	have up to 4 pauth masks (2 masks or 4 masks):
-
-	pauth_dmask
-	pauth_cmask
-	pauth_dmask_high
-	pauth_cmask_high
-
-	pauth_dmask and pauth_cmask are the masks used to remove pauth signatures
-	from userspace addresses. pauth_dmask_high and pauth_cmask_high masks are used
-	to remove pauth signatures from kernel addresses.
-
-	The second point is easily addressed by moving code around.
-
-	When debugging a Linux Kernel built with pauth with an unpatched GDB, we get
-	the following backtrace:
-
-	 #0  __fput (file=0xffff0000c17a6400) at /repos/linux/fs/file_table.c:296
-	 #1  0xffff8000082bd1f0 in ____fput (work=<optimized out>) at /repos/linux/fs/file_table.c:348
-	 #2  0x30008000080ade30 [PAC] in ?? ()
-	 #3  0x30d48000080ade30 in ?? ()
-	 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
-
-	With a patched GDB, we get something a lot more meaningful:
-
-	 #0  __fput (file=0xffff0000c1bcfa00) at /repos/linux/fs/file_table.c:296
-	 #1  0xffff8000082bd1f0 in ____fput (work=<optimized out>) at /repos/linux/fs/file_table.c:348
-	 #2  0xffff8000080ade30 [PAC] in task_work_run () at /repos/linux/kernel/task_work.c:179
-	 #3  0xffff80000801db90 [PAC] in resume_user_mode_work (regs=0xffff80000a96beb0) at /repos/linux/include/linux/resume_user_mode.h:49
-	 #4  do_notify_resume (regs=regs@entry=0xffff80000a96beb0, thread_flags=4) at /repos/linux/arch/arm64/kernel/signal.c:1127
-	 #5  0xffff800008fb9974 [PAC] in prepare_exit_to_user_mode (regs=0xffff80000a96beb0) at /repos/linux/arch/arm64/kernel/entry-common.c:137
-	 #6  exit_to_user_mode (regs=0xffff80000a96beb0) at /repos/linux/arch/arm64/kernel/entry-common.c:142
-	 #7  el0_svc (regs=0xffff80000a96beb0) at /repos/linux/arch/arm64/kernel/entry-common.c:638
-	 #8  0xffff800008fb9d34 [PAC] in el0t_64_sync_handler (regs=<optimized out>) at /repos/linux/arch/arm64/kernel/entry-common.c:655
-	 #9  0xffff800008011548 [PAC] in el0t_64_sync () at /repos/linux/arch/arm64/kernel/entry.S:586
-	 Backtrace stopped: Cannot access memory at address 0xffff80000a96c0c8
-
-2023-02-21  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: don't output to /dev/null
-	Mingw doesn't have /dev/null and thus "-o /dev/null" will fail.
-	Currently, all the options are checked using this "-o /dev/null",
-	resulting in them being disabled on mingw hosts.
-	Fix that by outputting to a real file for all targets.
-
-	ld/ChangeLog:
-
-		* testsuite/config/default.exp: Replace "-o /dev/null" by a
-		file.
-
-2023-02-21  Alan Modra  <amodra@gmail.com>
-
-	Both FAIL and PASS "check sections 2"?
-		* testsuite/ld-checks/checks.exp (check sections 2): Don't
-		continue on with rest of test past first fail.
-
-	ld-libs test on alpha-vms
-		* testsuite/ld-libs/libs.exp: Don't run for alpha-vms.
-
-2023-02-21  Alan Modra  <amodra@gmail.com>
-
-	alpha-*-vms missing libraries
-	For this:
-	./ld-new: cannot find -limagelib: No such file or directory
-	./ld-new: cannot find -lstarlet: No such file or directory
-	./ld-new: cannot find -lsys$public_vectors: No such file or directory
-	the logs showed
-	creating dummy tmpdir/libimagelib:
-	creating dummy No
-	creating dummy such
-	etc.
-	So rubbish instead of tmpdir/libimagelib.a and the other required libs.
-
-		* testsuite/config/default.exp: Correct regex detecting missing
-		libraries automatically searched by alpha-dec-vms-ld.
-
-2023-02-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-20  Tom Tromey  <tom@tromey.com>
-
-	Redefine FUNCTION in doc.str
-	FUNCTION is identical to func, so simplify doc.str.
-
-	2023-02-17  Tom Tromey  <tom@tromey.com>
-
-		* doc/doc.str (FUNCTION): Call func.
-
-2023-02-20  Tom Tromey  <tom@tromey.com>
-
-	Hoist the SECTION comment in opncls.c
-	The opening and closing node in BFD starts:
-
-	    File: bfd.info, [...]
-
-		 /* Set to N to open the next N BFDs using an alternate id space.  */
-		 extern unsigned int bfd_use_reserved_id;
-
-	    2.13 Opening and closing BFDs
-	    =============================
-
-	That is, there's a stray C comment and declaration before any other
-	text or subsections.
-
-	This occurs because the code fragment for bfd_use_reserved_id comes
-	before the SECTION comment.  Hoisting it makes this a little nicer.
-
-	2023-02-17  Tom Tromey  <tom@tromey.com>
-
-		* opncls.c: Hoist the SECTION comment.
-
-2023-02-20  Tom Tromey  <tom@tromey.com>
-
-	Don't use chew comments for static functions
-	I found a few static functions in the BFD manual.  These can't be
-	called by any user of the library, so I don't think it's useful to put
-	them in the manual.  This patch removes the chew markup from their
-	comments.
-
-	2023-02-17  Tom Tromey  <tom@tromey.com>
-
-		* opncls.c (bfd_get_debug_link_info_1, separate_debug_file_exists)
-		(separate_alt_debug_file_exists, find_separate_debug_file)
-		(get_build_id, get_build_id_name, check_build_id_file): Don't use
-		chew comments.
-
-2023-02-20  Tom Tromey  <tom@tromey.com>
-
-	Fix formatting of long function description in chew output
-	Currently, if a function description spans a line, the resulting info
-	can look like this:
-
-	 -- Function: long bfd_canonicalize_reloc
-	     (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); Call the
-	     back end associated with the open BFD ABFD and translate the
-	     external form of the relocation information attached to SEC into
-	     the internal canonical form.  Place the table into memory at LOC,
-
-	That is, the function prototype runs together with the text in an ugly
-	way.  This patch fixes this by introducing a new primitive, so that
-	the generated Texinfo can be a bit nicer.  Now this output looks like:
-
-	 -- Function: long bfd_canonicalize_reloc (bfd *abfd, asection *sec,
-	          arelent **loc, asymbol **syms);
-	     Call the back end associated with the open BFD ABFD and translate
-	     the external form of the relocation information attached to SEC
-
-	2023-02-17  Tom Tromey  <tom@tromey.com>
-
-		* doc/doc.str (SYNOPSIS): Use collapse_whitespace.
-		* doc/chew.c (collapse_whitespace): New function.
-		(main): Register collapse_whitespace.
-
-2023-02-20  Andreas Schwab  <schwab@suse.de>
-
-	opcodes: style m68k disassembler output
-
-2023-02-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: revert one erroneous bool-ification change
-	Commit 42c13555ff88 ("Change value::m_stack to bool") erroneously
-	changed a `0` to `false` in this call to read_value_memory.  This
-	parameter is `LONGEST bit_offset`, it should stay `0`.
-
-	Change-Id: I128df6834cf8055ec6a7051e237e379978d3d651
-
-2023-02-20  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: handle Windows drive letter in a noinit test
-	The regexp in "noinit sections (ld -r)" is skipping the file path before
-	the first ":". However, on Windows, a path can start with "C:". Adjust
-	the regexp to allow such cases.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/noinit-sections-2.l: Allow Windows paths
-		(starting with C:).
-
-2023-02-20  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: adjust to Windows path separator.
-	In some tests, the path reported on Windows will have a \ instead of a
-	/. This occurs when a file is concatened with the search path in
-	ldfile.c.:  "ld -Ltmpdir -ltext" will result into "tmpdir\libtext.a".
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/retain5.map: Allow \ path separator.
-		* testsuite/ld-plugin/plugin-10.d: Likewise.
-		* testsuite/ld-plugin/plugin-11.d: Likewise.
-		* testsuite/ld-plugin/plugin-18.d: Likewise.
-		* testsuite/ld-plugin/plugin-19.d: Likewise.
-		* testsuite/ld-plugin/plugin-20.d: Likewise.
-		* testsuite/ld-plugin/plugin-22.d: Likewise.
-
-2023-02-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: Consistency fixes for GDB/MI documentation
-	I noticed two inconsistencies in the GDB/MI documentation, which this
-	commit addresses:
-
-	  1. Each MI command is introduced like this:
-
-	     @subheading The @code{-command-name} Command
-
-	     Except for a few of the tracing command, which just use:
-
-	     @subheading -command-name
-
-	     In this commit I've updated all these trace commands to use the
-	     more common format.
-
-	  2. Each MI command starts with a @subheading, and then the details
-	     of that command are split up using multiple @subsubheading
-	     entries.
-
-	     Except for a few commands which use @subheading for the top-level
-	     command, and then continue to use @subheading for each part of
-	     the command description.
-
-	     In this commit I've updated these to use @subsubheading where
-	     appropriate.
-
-2023-02-20  Nick Clifton  <nickc@redhat.com>
-
-	So the linker from producing an export data table when run with --exclude-all-symbols.
-	 PR 30004 * pe-dll.c (pe_dll_build_sections): Do not build an edata section if all symbols are being excluded.
-
-2023-02-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Trust epilogue unwind info for unknown or non-gcc producer
-	Currently we only trust epilogue unwind info only for gcc >= 4.5.0.
-
-	This has the effect that we don't trust epilogue unwind info for:
-	- unknown producers (CU without DW_AT_producer attribute)
-	- non-gcc producers (say, clang).
-
-	Instead, only distrust epilogue unwind info only for gcc < 4.5.0.
-
-2023-02-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Trust epilogue unwind info for unknown producer (-g0 case)
-	For a -g0 -fasynchronous-unwind-tables exec (without .debug_info but with
-	.eh_frame section), start using the dwarf2 unwinder instead of the
-	"amd64 epilogue override" unwinder, by returning true in
-	compunit_epilogue_unwind_valid for cust == nullptr.
-
-	This has effect both on the amd64 and i386 targets, but only add amd64
-	test-case gdb.base/unwind-on-each-insn-amd64-2.exp.
-
-2023-02-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Add amd64/i386 epilogue override unwinders
-	For amd64 the current frame-unwinders are:
-	...
-	$ gdb -q -batch -ex "set arch i386:x86-64" -ex "maint info frame-unwinders"
-	The target architecture is set to "i386:x86-64".
-	dummy                   DUMMY_FRAME
-	dwarf2 tailcall         TAILCALL_FRAME
-	inline                  INLINE_FRAME
-	python                  NORMAL_FRAME
-	amd64 epilogue          NORMAL_FRAME
-	dwarf2                  NORMAL_FRAME
-	dwarf2 signal           SIGTRAMP_FRAME
-	amd64 sigtramp          SIGTRAMP_FRAME
-	amd64 prologue          NORMAL_FRAME
-	...
-
-	For a -g0 -fasynchronous-unwind-tables exec (without .debug_info but with
-	.eh_frame section), we'd like to start using the dwarf2 unwinder instead of
-	the "amd64 epilogue" unwinder, by returning true in
-	compunit_epilogue_unwind_valid for cust == nullptr.
-
-	But we'd run into the following problem for a -g0
-	-fno-asynchronous-unwind-tables (without .debug_info and .eh_frame section)
-	exec:
-	- the "amd64 epilogue" unwinder would not run
-	  (because compunit_epilogue_unwind_valid () == true)
-	- the dwarf2 unwinder would also not run
-	  (because there's no .eh_frame info).
-
-	Fix this by:
-	- renaming the "amd64 epilogue" unwinder to "amd64 epilogue override", and
-	- adding a fallback "amd64 epilogue" after the dwarf unwinders,
-	while making sure that only one of the two is active.  Likewise for i386.  NFC.
-
-	For amd64, this results in this change:
-	...
-	 $ gdb -q -batch -ex "set arch i386:x86-64" -ex "maint info frame-unwinders"
-	 The target architecture is set to "i386:x86-64".
-	 dummy                   DUMMY_FRAME
-	 dwarf2 tailcall         TAILCALL_FRAME
-	 inline                  INLINE_FRAME
-	 python                  NORMAL_FRAME
-	-amd64 epilogue          NORMAL_FRAME
-	+amd64 epilogue override NORMAL_FRAME
-	 dwarf2                  NORMAL_FRAME
-	 dwarf2 signal           SIGTRAMP_FRAME
-	+amd64 epilogue          NORMAL_FRAME
-	 amd64 sigtramp          SIGTRAMP_FRAME
-	 amd64 prologue          NORMAL_FRAME
-	...
-
-	And for i386:
-	...
-	 $ gdb -q -batch -ex "set arch i386" -ex "maint info frame-unwinders"
-	 The target architecture is set to "i386".
-	 dummy                   DUMMY_FRAME
-	 dwarf2 tailcall         TAILCALL_FRAME
-	 iline                  INLINE_FRAME
-	-i386 epilogue           NORMAL_FRAME
-	+i386 epilogue override  NORMAL_FRAME
-	 dwarf2                  NORMAL_FRAME
-	 dwarf2 signal           SIGTRAMP_FRAME
-	+i386 epilogue           NORMAL_FRAME
-	 i386 stack tramp        NORMAL_FRAME
-	 i386 sigtramp           SIGTRAMP_FRAME
-	 i386 prologue           NORMAL_FRAME
-	...
-
-2023-02-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix amd64/i386_stack_frame_destroyed_p
-	The use of compunit_epilogue_unwind_valid in both amd64_stack_frame_destroyed_p
-	and i386_stack_frame_destroyed_p is problematic, in the sense that the
-	functions no longer match their documented behaviour.
-
-	Fix this by moving the use of compunit_epilogue_unwind_valid to
-	amd64_epilogue_frame_sniffer and i386_epilogue_frame_sniffer.  No functional
-	changes.
-
-2023-02-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Factor out compunit_epilogue_unwind_valid
-	Factor out compunit_epilogue_unwind_valid from both
-	amd64_stack_frame_destroyed_p and i386_stack_frame_destroyed_p.  No functional
-	changes.
-
-	Also add a comment in the new function about the assumption that in absence of
-	producer information, epilogue unwind info is invalid.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add xfail case in gdb.python/py-record-btrace.exp
-	I came across:
-	...
-	gdb) PASS: gdb.python/py-record-btrace.exp: prepare record: stepi 100
-	python insn = r.instruction_history^M
-	warning: Non-contiguous trace at instruction 1 (offset = 0x3e10).^M
-	(gdb) FAIL: gdb.python/py-record-btrace.exp: prepare record: python insn = r.i\
-	nstruction_history
-	...
-
-	I'm assuming it's the same root cause as for the already present XFAIL.
-
-	Fix this by recognizing above warning in the xfail regexp.
-
-	Tested on x86_64-linux, although sofar I was not able to trigger the warning
-	again.
-
-	Approved-By: Markus T. Metzger <markus.t.metzger@intel.com>
-
-2023-02-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/schedlock.exp for gcc 4.8.5
-	Since commit 9af467b8240 ("[gdb/testsuite] Fix gdb.threads/schedlock.exp on
-	fast cpu"), the test-case fails for gcc 4.8.5.
-
-	The problem is that for gcc 4.8.5, the commit turned a two-line loop:
-	...
-	(gdb) next
-	78          while (*myp > 0)
-	(gdb) next
-	81              MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
-	(gdb) next
-	78          while (*myp > 0)
-	...
-	into a three-line loop:
-	...
-	(gdb) next
-	83              MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
-	(gdb) next
-	84              cnt++;
-	(gdb) next
-	85            }
-	(gdb) next
-	83              MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
-	(gdb)
-	...
-	and the test-case doesn't expect this.
-
-	Fix this by reverting back to the original loop shape as much as possible by:
-	- removing the cnt++ line
-	- replacing "while (1)" with "while (one)", where one is a volatile variable
-	  set to 1.
-
-	Tested on x86_64-linux, using compilers:
-	- gcc 4.8.5, 7.5.0, 12.2.1
-	- clang 4.0.1, 13.0.1
-
-2023-02-20  Alan Modra  <amodra@gmail.com>
-
-	In-memory nested archives
-	alpha-linuxecoff has compressed archives that are decompressed to a
-	bfd-in-memory.  We'd need to handle quite a lot of corner cases to
-	support nesting of such archives, so just stop it before we run into
-	segfaults later.
-
-		* opncls.c (_bfd_new_bfd_contained_in): Prohibit nested
-		archives in memory.
-
-2023-02-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-19  Tom Tromey  <tom@tromey.com>
-
-	Convert contained_in to method
-	This converts contained_in to be a method of block.
-
-	Make block members 'private'
-	This changes block to make the data members 'private'.
-
-	Remove allocate_block and allocate_global_block
-	This removes allocate_block and allocate_global_block in favor of
-	simply calling 'new'.
-
-	Have global_block inherit from block
-	This changes global_block to inherit from block, which is what was
-	always intended.
-
-	Use 'new' for block and global_block
-	This changes block and global_block to add initializers, and then to
-	use 'new' for allocation.
-
-2023-02-19  Tom Tromey  <tom@tromey.com>
-
-	Fix memory leak in mdebugread.c
-	mdebugread.c allocates blocks on the heap.  However, this is a memory
-	leak if the corresponding objfile is ever destroyed.
-
-	This patch changes this code to use allocate_block instead, fixing a
-	FIXME from 2003.
-
-	I don't know how to test this patch.
-
-2023-02-19  Tom Tromey  <tom@tromey.com>
-
-	Remove ALL_BLOCK_SYMBOLS
-	This removes ALL_BLOCK_SYMBOLS in favor of foreach.
-
-	Remove ALL_BLOCK_SYMBOLS_WITH_NAME
-	This removes ALL_BLOCK_SYMBOLS_WITH_NAME in favor of foreach.
-
-	Convert explicit iterator uses to foreach
-	This converts most existing explicit uses of block_iterator to use
-	foreach with the range iterator instead.
-
-	Introduce a block iterator wrapper
-	This introduces a C++-style iterator that wraps the existing
-	block_iterator.  It also adds a range adapter.  These will be used in
-	a later patch.
-
-	Combine both styles of block iterator
-	This merges the two styles of block iterator, having the
-	initialization API decide which to use based on an optional parameter.
-
-	Store 'name' in block_iterator
-	This changes the block_iterator to store the 'name' that is used by
-	block_iter_match_next.  This avoids any problem where the name could
-	be passed inconsistently, and also makes the subsequent patches easier
-	to understand.
-
-	Convert block_static_link to method
-	This converts block_static_link to be a method.  This was mostly
-	written by script.
-
-	Convert set_block_compunit_symtab to method
-	This converts set_block_compunit_symtab to be a method.  This was
-	mostly written by script.
-
-	Convert block_static_block and block_global_block to methods
-	This converts block_static_block and block_global_block to be methods.
-	This was mostly written by script.  It was simpler to convert them at
-	the same time because they're often used near each other.
-
-	Convert block_containing_function to method
-	This converts block_containing_function to be a method.  This was
-	mostly written by script.
-
-	Convert block_linkage_function to method
-	This converts block_linkage_function to be a method.  This was mostly
-	written by script.
-
-	Convert more block functions to methods
-	This converts block_scope, block_set_scope, block_using, and
-	block_set_using to be methods.  These are all done at once to make it
-	easier to also convert block_initialize_namespace at the same time.
-	This was mostly written by script.
-
-	Convert block_inlined_p to method
-	This converts block_inlined_p to be a method.  This was mostly written
-	by script.
-
-	Convert block_gdbarch to method
-	This converts block_gdbarch to be a method.  This was mostly written
-	by script.
-
-	Convert block_objfile to method
-	This converts block_objfile to be a method.  This was mostly written
-	by script.
-
-	Don't allow NULL as an argument to block_global_block
-	block_global_block has special behavior when the block is NULL.
-	Remove this and patch up the callers instead.
-
-	Don't allow NULL as an argument to block_static_block
-	block_static_block has special behavior when the block is NULL.
-	Remove this and patch up the callers instead.
-
-	Don't allow NULL as an argument to block_using
-	block_using has special behavior when the block is NULL.
-	Remove this.  No caller seems to be affected.
-
-	Don't allow NULL as an argument to block_scope
-	block_scope has special behavior when the block is NULL.
-	Remove this and patch up the callers instead.
-
-	Avoid extra allocations in block
-	block_set_scope and block_set_using unconditionally allocate the block
-	namespace object.  However, this isn't truly needed, so arrange to
-	only allocate when it is.
-
-	Rearrange block.c to avoid a forward declaration
-	Moving block_initialize_namespace before its callers lets us avoid a
-	forward declaration.
-
-2023-02-19  Alan Modra  <amodra@gmail.com>
-
-	Buffer overflow in evax_bfd_print_eobj
-		* vms-alpha.c (evax_bfd_print_eobj): Rewrite header handling,
-		sanity checking rec_len.  Check bfd_malloc return.
-
-2023-02-19  Tom Tromey  <tom@tromey.com>
-
-	Avoid memory leak in chew
-	An earlier patch of mine introduced a memory leak in chew.  The bug
-	was that the new "variable" word didn't free the following word.  This
-	patch fixes it by arranging to transfer ownership of the name to the
-	variable itself.
-
-		* doc/chew.c (add_variable): New function, from
-		add_intrinsic_variable.
-		(add_intrinsic_variable): Call add_variable.
-		(compile): Call add_variable.
-
-2023-02-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-18  Tom Tromey  <tom@tromey.com>
-
-	Fix "start" for D, Rust, etc
-	The new DWARF indexer broke "start" for some languages.
-
-	For D, it is broken because, while the code in cooked_index_shard::add
-	specifically excludes Ada, it fails to exclude D.  This means that the
-	C "main" will be detected as "main" here -- whereas what is intended
-	is for the code in find_main_name to use d_main_name to find the name.
-
-	The Rust compiler, on the other hand, uses DW_AT_main_subprogram.
-	However, the code in dwarf2_build_psymtabs_hard fails to create a
-	fully-qualified name, so the name always ends up as plain "main".
-
-	For D and Ada, a very simple approach suffices: remove the check
-	against "main" from cooked_index_shard::add.  This also has the
-	benefit of slightly speeding up DWARF indexing.  I assume this
-	approach will work for Pascal and Modula-2 as well, but I don't have a
-	way to test those at present.
-
-	For Rust, though, this is not sufficient.  And, computing the
-	fully-qualified name in dwarf2_build_psymtabs_hard will crash, because
-	cooked_index_entry::full_name uses the canonical name -- and that is
-	not computed until after canonicalization.
-
-	However, we don't want to wait for canonicalization to be done before
-	computing the main name.  That would remove any benefit from doing
-	canonicalization is the background.
-
-	This patch solves this dilemma by noticing that languages using
-	DW_AT_main_subprogram are, currently, disjoint from languages
-	requiring canonicalization.  Because of this, we can add a parameter
-	to full_name to let us avoid crashes, slowdowns, and races here.
-
-	This is kind of tricky and ugly, so I've tried to comment it
-	sufficiently.
-
-	While doing this, I had to change gdb.dwarf2/main-subprogram.exp.  A
-	different possibility here would be to ignore the canonicalization
-	needs of C in this situation, because those only affect certain types.
-	However, I chose this approach because the test case is artificial
-	anyhow.
-
-	A long time ago, in an earlier threading attempt, I changed the global
-	current_language to be a function (hidden behind a macro) to let us
-	attempt lazily computing the current language.  Perhaps this approach
-	could still be made to work.  However, that also seemed rather tricky,
-	more so than this patch.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30116
-
-2023-02-18  Tom Tromey  <tom@tromey.com>
-
-	Fix crash in go_symbol_package_name
-	go_symbol_package_name package name asserts that it is only passed a
-	Go symbol, but this is not enforced by one caller.  It seems simplest
-	to just check and return early in this case.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17876
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-18  Tom Tromey  <tom@tromey.com>
-
-	Avoid manual memory management in go-lang.c
-	I noticed a couple of spots in go-lang.c that could be improved by
-	using unique_ptr.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-17  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix regression in gdb.xml/maint_print_struct.exp
-	A regression in gdb.xml/maint_print_struct.exp was introduced with
-	commit:
-
-	  commit 81b86eced24f905545b58aa6c27478104c364976
-	  Date:   Fri Jan 6 09:30:40 2023 -0700
-
-	      Do not record a rejected target description
-
-	The test relied on an invalid target description being stored within
-	the tdesc_info of the current inferior, the above commit stopped this
-	behaviour.
-
-	Update the test to check that the invalid architecture is NOT stored,
-	and then check printing the target description directly from the
-	file.
-
-	Approved-By: Tom Tromey <tromey@adacore.com>
-
-2023-02-17  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix Dwarf reader for DW_TAG_subprogram
-	gprofng/ChangeLog
-	2023-02-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* src/Dwarf.cc: Skip DW_TAG_subprogram when DW_AT_declaration is 1.
-
-2023-02-17  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: PR30036 Build failure on aarch64 w/ glibc: symbol `pwrite64' is already defined
-	gprofng/ChangeLog
-	2023-02-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30036
-		* libcollector/iotrace.c: Define creat64 and pwrite64 only when
-		__USE_LARGEFILE64 and __USE_FILE_OFFSET64 are not defined.
-		* libcollector/mmaptrace.c: Likewise for mmap64.
-
-2023-02-17  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Fix multi-threaded debugging under AIX
-	Multi-threaded debugging using the libpthdebug debug interface
-	is currently broken due to multiple issues.
-
-	When debugging a single inferior, we were getting assertion
-	failures in get_aix_thread_info as no tp->priv structure was
-	allocated for the main thread.
-
-	We fixed this by switching the main
-	thread from a (pid, 0, 0) ptid_t to a (pid, 0, tid) ptid_t and
-	allocaing the tp->priv structure in sync_threadlists.
-
-	As a result, the switch_to_thread call in pdc_read_data could
-	now fail since the main thread no longer uses (pid, 0, 0).
-
-	So we replaced the call by only switching inferior_ptid, the current
-	inferior, and the current address space (like proc-service.c).
-	Add similar switching to pdc_write_data where it was missing
-	completely.
-
-	When debugging multiple inferiors, an additional set of
-	problems prevented correct multi-threaded debugging:
-
-	First of all, aix-thread.c used to have a number of global
-	variables holding per-inferior information.
-
-	We switched hese
-	to a per-inferior data structure instead.
-
-	Also, sync_threadlists was getting confused as we were
-	comparing the list of threads returned by libpthdebug
-	for *one* process with GDB's list of threads for *all*
-	processes. Now we only use he GDB threads of the current
-	inferior instead.
-
-	We also skip calling pd_activate
-	from pd_enable if that in_initial_library_scan flag is
-	true for the current inferior.
-
-	Finally, the presence of the thread library in any but
-	the first inferior was not correctly detected due to a
-	bug in solib-aix.c, where the BFD file name for shared
-	library members was changed when the library was loaded
-	for the first time, which caused the library to no longer
-	be recognized by name when loaded a second time.
-
-2023-02-17  Tom Tromey  <tromey@adacore.com>
-
-	Remove two unnecessary returns in ada-lang.c
-	I found a couple of spots in ada-lang.c where a return follows a call
-	to error.  These are unnecessary because error never returns.
-
-2023-02-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Simplify gdb.arch/amd64-disp-step-avx.exp
-	On SLE-11, with glibc 2.11.3, I run into:
-	...
-	(gdb) PASS: gdb.arch/amd64-disp-step-avx.exp: vex3: \
-	  var128 has expected value after
-	continue^M
-	Continuing.^M
-	^M
-	Program received signal SIGSEGV, Segmentation fault.^M
-	0x0000000000400283 in _exit (status=0) at \
-	  ../sysdeps/unix/sysv/linux/_exit.c:33^M
-	33      ../sysdeps/unix/sysv/linux/_exit.c: No such file or directory.^M
-	(gdb) FAIL: gdb.arch/amd64-disp-step-avx.exp: \
-	  continue until exit at amd64-disp-step-avx
-	...
-
-	This is not related to gdb, we get the same result by just running the exec.
-
-	The problem is that the test-case:
-	- calls glibc's _exit, and
-	- uses -nostartfiles -static, putting the burden for any necessary
-	  initialization for calling glibc's _exit on the test-case itself.
-
-	So, when we get to the second insn in _exit:
-	...
-	000000000040acb0 <_exit>:
-	  40acb0:       48 63 d7                movslq %edi,%rdx
-	  40acb3:       64 4c 8b 14 25 00 00    mov    %fs:0x0,%r10
-	...
-	no glibc-related initialization is done, and we run into the segfault.
-
-	Adding this (borrowed from __libc_start_main) in _start in the .S file is
-	sufficient to fix it:
-	...
-	         .rept 200
-	         nop
-	+        call __pthread_initialize_minimal
-	         .endr
-	...
-	But that already doesn't compile with say glibc 2.31, and regardless I think
-	this sort of fix is too fragile.
-
-	We could of course fix this by simply not running to exit.  But ideally we'd
-	have an exec that doesn't segfault when you just run it.
-
-	Alternatively, we could hand-code an _exit syscall and bypass glibc
-	all together.  But I'd rather fix this in a way that simplifies the test-case.
-
-	Taking a step back, the -nostartfiles -static was added to address that the
-	xmm registers were not zero at main (which AFAICT is a valid thing to happen).
-
-	[ The change itself silently broke the test-case, needing further fixing by
-	commit 40310f30a51 ("gdb: make gdb.arch/amd64-disp-step-avx.exp actually test
-	displaced stepping"). ]
-
-	Instead, simplify things by reverting to the original situation:
-	- no -nostartfiles -static compilation flags,
-	- no _start in the .S file,
-	- use exit instead of _exit in the .S file,
-	and fix the original problem by setting the xmm registers to zero rather than
-	checking that they're zero.
-
-	Now that we're no longer forcing -static, add nopie to the flags to prevent
-	compilation failure with target board unix/-fPIE/-pie.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30132
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30132
-
-2023-02-17  Alan Modra  <amodra@gmail.com>
-
-	ld test asciz and ascii fails
-	Fix these fails:
-	alpha-dec-vms  +FAIL: ld-scripts/asciz
-	alpha-dec-vms  +FAIL: ld-scripts/ascii
-	i386-go32  +FAIL: ld-scripts/asciz
-	sh-coff  +FAIL: ld-scripts/asciz
-
-	It's better to positively select targets for .section support than to
-	try to exclude all targets that don't.  Make a new is_coff_format so
-	we can easily select such.
-
-	binutils/
-		* testsuite/lib/binutils-common.exp (is_coff_format): New.
-	ld/
-		* testsuite/ld-scripts/ascii.d: Use is_elf_format and
-		is_coff_format to select targets, exclude ti coff.
-		* testsuite/ld-scripts/asciz.d: Likewise.  Accept trailing zeros.
-
-2023-02-17  Alan Modra  <amodra@gmail.com>
-
-	Wild pointer reads in _bfd_ecoff_locate_line
-		* ecofflink.c (mk_fdrtab): Sanity check fdr procedure descriptor
-		pointer and isymBase.  Set fdrtab_len after possible discards.
-		Use size_t vars and catch possible size overflows.
-
-2023-02-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-16  Alan Modra  <amodra@gmail.com>
-
-	PR30046, power cmpi leads to unknown architecture
-	PowerPC ELF always uses bfd_arch_powerpc, so we shouldn't allow the
-	gas -mpwr, -mpwr2 or -mpwrx options to choose bfd_arch_rs6000.
-	Given the possible values of ppc_cpu, I think the as_fatal at the end
-	of ppc_arch will never be reached, so it can be deleted and the code
-	simplified a little.
-
-		PR 30046
-		* config/tc-ppc.c (ppc_arch): Return bfd_arch_powerpc for ELF.
-		Delete dead code.
-
-2023-02-16  Tom Tromey  <tromey@adacore.com>
-
-	Rename parameter of create_ada_exception_catchpoint
-	create_ada_exception_catchpoint has a parameter named "disabled", but
-	both its callers and callees use it to mean "enabled".  This is
-	confusing, so this patch renames the parameter.
-
-2023-02-16  Tom Tromey  <tom@tromey.com>
-
-	Update the 'g' packet documentation
-	The 'g' packet documentation references a macro that no longer exists,
-	and it also claims that the 'x' response for an unavailable register
-	is limited to trace frames.  This patch updates the documentation to
-	reflect what I think is currently correct.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-	Change-Id: I863baa3b9293059cfd4aa3d534602cbcb693ba87
-
-2023-02-16  Nick Clifton  <nickc@redhat.com>
-
-	Add support for the ASCII directive inside linker scripts.
-	 * ldlex.l: Add ASCII token.
-	 * ldgram.y: Add parsing of the ASCII command.
-	 * ldlang.c (lang_add_string): Add maximum size parameter.  Move escape character handling code into separate function.
-	 * ldlang.h (lang_add_string): Update prototype.
-	 * NEWS: Mention the new feature.
-	 * ld.texi (Output Section Data): Document the new directives.
-	 * testsuite/ld-scripts/asciz.t: Adjust to work on more architectures and to test more aspects of the ASCIZ directive.
-	 * testsuite/ld-scripts/asciz.d: Adjust to match the changes to the test linker script.
-	 * testsuite/ld-scripts/ascii.d: New test driver.
-	 * testsuite/ld-scripts/ascii.s: New test assembler source.
-	 * testsuite/ld-scripts/ascii.t: New test script.
-	 * testsuite/ld-scripts/script.exp: Run the new test.
-
-2023-02-16  Tom Tromey  <tromey@adacore.com>
-
-	Constify ada_main_name
-	Unlike the other *_main_name functions, ada_main_name returns a
-	non-const "char *".  This is strange, though, because the caller
-	should not in fact modify or free this pointer.  This patch changes
-	this function to constify its return type.
-
-	Remove unused declaration from ada-lang.h
-	I stumbled across this declaration in ada-lang.h.  I don't know what
-	function did, but it no longer exists, so remove the declaration.
-	Tested by rebuilding.
-
-2023-02-16  Alan Modra  <amodra@gmail.com>
-
-	Delete PROGRESS macros
-	I don't see much point in cluttering the source with the PROGRESS
-	macros, which of course do nothing at all with the definitions in
-	progress.h.  progress.h is unchanged apart from the copyright comment
-	since commit d4d4c53c68f0 in 1994.
-
-	binutils/
-		* ar.c: Don't include progress.h, or invoke PROGRESS macros.
-		* nm.c: Likewise.
-		* objcopy.c: Likewise.
-		* objdump.c: Likewise.
-	gas/
-		* as.h: Don't include progress.h.
-		* as.c: Don't invoke PROGRESS macros.
-		* write.c: Likewise.
-	include/
-		* progress.h: Delete.
-	ld/
-		* ldmain.c: Don't include progress.h, or invoke PROGRESS macros.
-
-2023-02-16  Alan Modra  <amodra@gmail.com>
-
-	gas_init
-	Rename gas_late_init to plain gas_init, to reinforce the idea that
-	this is where the bulk of gas initialisation belongs.  Also reorder
-	some initialisation.
-
-		* as.c (gas_init): Rename from gas_late_init.  Open output
-		file and arrange for dump_statistics to be called here rather
-		than in main.  Create .gasversion. local symbol earlier,
-		because we can.
-
-2023-02-16  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: as_warn() already emits a newline
-	Therefore there shouldn't be any at the end of the format string.
-
-2023-02-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: document MI -remove-inferior command
-	Back in 2010 the -remove-inferior command was added in commit
-	a79b8f6ea8c2, unfortunately this command was never added to the
-	documentation.
-
-	This commit addresses that oversight.
-
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-02-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86/gas: replace inappropriate assertion when parsing registers
-	PR gas/30117
-	Once a symbol had its expression evaluated, the "segment" of the symbol
-	may be reg_section if a register is merely involved in the expression,
-	not just when the expression references a "plain" register. Therefore
-	the first of the assertions put in place by 4d1bb7955a8b was too strict.
-	Convert it to an if() to deal with situations like this one found by
-	fuzzing:
-
-		x=s
-		s=%eax+0
-		y=s
-		or $6,x
-
-	In non-debug builds this also avoids potentially silently generating bad
-	code.
-
-2023-02-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Return bool from more value methods
-	There are several more value methods that currently return 'int' but
-	that should return 'bool'.  This patch updates these.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Have value::bits_synthetic_pointer return bool
-	This changes value::bits_synthetic_pointer to return bool and fixes up
-	some fallout from this.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Change value::m_stack to bool
-	This changes value::m_stack to be a bool and updates the various uses.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Change value::m_initialized to bool
-	This changes value::m_initialized to be a bool and updates the various
-	uses.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Change value::m_lazy to bool
-	This changes value::m_lazy to be a bool and updates the various uses.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Change value::m_modifiable to bool
-	This changes value::m_modifiable to be a bool and updates the various
-	uses.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-02-15  Pedro Alves  <pedro@palves.net>
-
-	Don't throw quit while handling inferior events, part II
-	I noticed that if Ctrl-C was typed just while GDB is evaluating a
-	breakpoint condition in the background, and GDB ends up reaching out
-	to the Python interpreter, then the breakpoint condition would still
-	fail, like:
-
-	  c&
-	  Continuing.
-	  (gdb) Error in testing breakpoint condition:
-	  Quit
-
-	That happens because while evaluating the breakpoint condition, we
-	enter Python, and end up calling PyErr_SetInterrupt (it's called by
-	gdbpy_set_quit_flag, in frame #0):
-
-	 (top-gdb) bt
-	 #0  gdbpy_set_quit_flag (extlang=0x558c68f81900 <extension_language_python>) at ../../src/gdb/python/python.c:288
-	 #1  0x0000558c6845f049 in set_quit_flag () at ../../src/gdb/extension.c:785
-	 #2  0x0000558c6845ef98 in set_active_ext_lang (now_active=0x558c68f81900 <extension_language_python>) at ../../src/gdb/extension.c:743
-	 #3  0x0000558c686d3e56 in gdbpy_enter::gdbpy_enter (this=0x7fff2b70bb90, gdbarch=0x558c6ab9eac0, language=0x0) at ../../src/gdb/python/python.c:212
-	 #4  0x0000558c68695d49 in python_on_memory_change (inferior=0x558c6a830b00, addr=0x555555558014, len=4, data=0x558c6af8a610 "") at ../../src/gdb/python/py-inferior.c:146
-	 #5  0x0000558c6823a071 in std::__invoke_impl<void, void (*&)(inferior*, unsigned long, long, unsigned char const*), inferior*, unsigned long, long, unsigned char const*> (__f=@0x558c6a8ecd98: 0x558c68695d01 <python_on_memory_change(inferior*, CORE_ADDR, ssize_t, bfd_byte const*)>) at /usr/include/c++/11/bits/invoke.h:61
-	 #6  0x0000558c68237591 in std::__invoke_r<void, void (*&)(inferior*, unsigned long, long, unsigned char const*), inferior*, unsigned long, long, unsigned char const*> (__fn=@0x558c6a8ecd98: 0x558c68695d01 <python_on_memory_change(inferior*, CORE_ADDR, ssize_t, bfd_byte const*)>) at /usr/include/c++/11/bits/invoke.h:111
-	 #7  0x0000558c68233e64 in std::_Function_handler<void (inferior*, unsigned long, long, unsigned char const*), void (*)(inferior*, unsigned long, long, unsigned char const*)>::_M_invoke(std::_Any_data const&, inferior*&&, unsigned long&&, long&&, unsigned char const*&&) (__functor=..., __args#0=@0x7fff2b70bd40: 0x558c6a830b00, __args#1=@0x7fff2b70bd38: 93824992247828, __args#2=@0x7fff2b70bd30: 4, __args#3=@0x7fff2b70bd28: 0x558c6af8a610 "") at /usr/include/c++/11/bits/std_function.h:290
-	 #8  0x0000558c6830a96e in std::function<void (inferior*, unsigned long, long, unsigned char const*)>::operator()(inferior*, unsigned long, long, unsigned char const*) const (this=0x558c6a8ecd98, __args#0=0x558c6a830b00, __args#1=93824992247828, __args#2=4, __args#3=0x558c6af8a610 "") at /usr/include/c++/11/bits/std_function.h:590
-	 #9  0x0000558c6830a620 in gdb::observers::observable<inferior*, unsigned long, long, unsigned char const*>::notify (this=0x558c690828c0 <gdb::observers::memory_changed>, args#0=0x558c6a830b00, args#1=93824992247828, args#2=4, args#3=0x558c6af8a610 "") at ../../src/gdb/../gdbsupport/observable.h:166
-	 #10 0x0000558c68309d95 in write_memory_with_notification (memaddr=0x555555558014, myaddr=0x558c6af8a610 "", len=4) at ../../src/gdb/corefile.c:363
-	 #11 0x0000558c68904224 in value_assign (toval=0x558c6afce910, fromval=0x558c6afba6c0) at ../../src/gdb/valops.c:1190
-	 #12 0x0000558c681e3869 in expr::assign_operation::evaluate (this=0x558c6af8e150, expect_type=0x0, exp=0x558c6afcfe60, noside=EVAL_NORMAL) at ../../src/gdb/expop.h:1902
-	 #13 0x0000558c68450c89 in expr::logical_or_operation::evaluate (this=0x558c6afab060, expect_type=0x0, exp=0x558c6afcfe60, noside=EVAL_NORMAL) at ../../src/gdb/eval.c:2330
-	 #14 0x0000558c6844a896 in expression::evaluate (this=0x558c6afcfe60, expect_type=0x0, noside=EVAL_NORMAL) at ../../src/gdb/eval.c:110
-	 #15 0x0000558c6844a95e in evaluate_expression (exp=0x558c6afcfe60, expect_type=0x0) at ../../src/gdb/eval.c:124
-	 #16 0x0000558c682061ef in breakpoint_cond_eval (exp=0x558c6afcfe60) at ../../src/gdb/breakpoint.c:4971
-	 ...
-
-
-	The fix is to disable cooperative SIGINT handling while handling
-	inferior events, so that SIGINT is saved in the global quit flag, and
-	not in the extension language, while handling an event.
-
-	This commit augments the testcase added by the previous commit to test
-	this scenario as well.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Change-Id: Idf8ab815774ee6f4b45ca2d0caaf30c9b9f127bb
-
-2023-02-15  Pedro Alves  <pedro@palves.net>
-
-	GC get_active_ext_lang
-	get_active_ext_lang is not used anywhere.  Delete it.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Change-Id: I4c2b6d0d11291103c098e4db1d6ea449875c96b7
-
-2023-02-15  Pedro Alves  <pedro@palves.net>
-
-	Don't throw quit while handling inferior events
-	This implements what I suggested here:
-
-	 https://inbox.sourceware.org/gdb-patches/ab97c553-f406-b094-cdf3-ba031fdea925@palves.net/
-
-	Here is the current default quit_handler, a function that ends up
-	called by the QUIT macro:
-
-	 void
-	 default_quit_handler (void)
-	 {
-	   if (check_quit_flag ())
-	     {
-	       if (target_terminal::is_ours ())
-	 	quit ();
-	       else
-	 	target_pass_ctrlc ();
-	      }
-	 }
-
-	As we can see above, when the inferior is running in the foreground,
-	then a Ctrl-C is translated into a call to target_pass_ctrlc().
-
-	The target_terminal::is_ours() case above is there to handle the
-	scenario where GDB has the terminal, meaning it is handling some
-	command the user typed, like "list", or "p a + b" or some such.
-
-	However, when the inferior is running on the background, say with
-	"c&", GDB also has the terminal.  Run control handling is now done in
-	the "background".  The CLI is responsive to user commands.  If users
-	type Ctrl-C, they're expecting it to interrupt whatever command they
-	next type in the CLI, which again, could be "list", "p a + b", etc.
-	It's as if background run control was handled by a separate thread,
-	and the Ctrl-C is meant to go to the main thread, handling the CLI.
-
-	However, when handling an event, inside fetch_inferior_event &
-	friends, a Ctrl-C _also_ results in a Quit exception, from the same
-	default_quit_handler function shown above.  This quit aborts run
-	control handling, breakpoint condition evaluation, etc., and may even
-	leave run control in an inconsistent state.
-
-	The testcase added by this patch illustrates this.  The test program
-	just loops a number of times calling the "foo" function.
-
-	The idea is to set a breakpoint in the "foo" function with a condition
-	that sends SIGINT to GDB, and then evaluates to false, which results
-	in the program being re-resumed in the background.  The SIGINT-sending
-	emulates pressing Ctrl-C just while GDB was evaluating the breakpoint
-	condition, except, it's more deterministic.
-
-	It looks like this:
-
-	  (gdb) p $counter = 0
-	  $1 = 0
-	  (gdb) b foo if $counter++ == 10 || $_shell("kill -SIGINT `pidof gdb`") != 0
-	  Breakpoint 2 at 0x555555555131: file gdb.base/bg-exec-sigint-bp-cond.c, line 21.
-	  (gdb) c&
-	  Continuing.
-	  (gdb)
-
-	After that background continue, the breakpoint should be hit 10 times,
-	and we should see 10 "Quit" being printed on the screen.  As if the
-	user typed Ctrl-C on the prompt a number of times with no inferior
-	running:
-
-	  (gdb)        <<< Ctrl-C
-	  (gdb) Quit   <<< Ctrl-C
-	  (gdb) Quit   <<< Ctrl-C
-	  (gdb)
-
-	However, here's what you see instead:
-
-	  (gdb) c&
-	  Continuing.
-	  (gdb) Quit
-	  (gdb)
-
-	Just one Quit, and nothing else.  If we look at the thread's state, we see:
-
-	  (gdb) info threads
-	    Id   Target Id                                            Frame
-	  * 1    Thread 0x7ffff7d6f740 (LWP 112192) "bg-exec-sigint-" foo () at gdb.base/bg-exec-sigint-bp-cond.c:21
-
-	So the thread stopped, but we didn't report a stop...
-
-	Issuing another continue shows the same immediate-and-silent-stop:
-
-	  (gdb) c&
-	  Continuing.
-	  (gdb) Quit
-	  (gdb) p $counter
-	  $2 = 2
-
-	As mentioned, since the run control handling, and breakpoint and
-	watchpoint evaluation, etc. are running in the background from the
-	perspective of the CLI, when users type Ctrl-C in this situation,
-	they're thinking of aborting whatever other command they were typing
-	or running at the prompt, not the run control side, not the previous
-	"c&" command.
-
-	So I think that we should install a custom quit_handler while inside
-	fetch_inferior_event, where we already disable pagination and other
-	things for a similar reason.  This custom quit handler does nothing if
-	GDB has the terminal, and forwards Ctrl-C to the inferior otherwise.
-
-	With the patch implementing that, and the same testcase, here's what
-	you see instead:
-
-	 (gdb) p $counter = 0
-	 $1 = 0
-	 (gdb) b foo if $counter++ == 10 || $_shell("kill -SIGINT `pidof gdb`") != 0
-	 Breakpoint 2 at 0x555555555131: file gdb.base/bg-exec-sigint-bp-cond.c, line 21.
-	 (gdb) c&
-	 Continuing.
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb) Quit
-	 (gdb)
-	 Breakpoint 2, foo () at gdb.base/bg-exec-sigint-bp-cond.c:21
-	 21        return 0;
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Change-Id: I1f10d99496a7d67c94b258e45963e83e439e1778
-
-2023-02-15  Pedro Alves  <pedro@palves.net>
-
-	Add new "$_shell(CMD)" internal function
-	For testing a following patch, I wanted a way to send a SIGINT to GDB
-	from a breakpoint condition.  And I didn't want to do it from a Python
-	breakpoint or Python function, as I wanted to exercise non-Python code
-	paths.  So I thought I'd add a new $_shell internal function, that
-	runs a command under the shell, and returns the exit code.  With this,
-	I could write:
-
-	  (gdb) b foo if $_shell("kill -SIGINT $gdb_pid") != 0 || <other condition>
-
-	I think this is generally useful, hence I'm proposing it here.
-
-	Here's the new function in action:
-
-	 (gdb) p $_shell("true")
-	 $1 = 0
-	 (gdb) p $_shell("false")
-	 $2 = 1
-	 (gdb) p $_shell("echo hello")
-	 hello
-	 $3 = 0
-	 (gdb) p $_shell("foobar")
-	 bash: line 1: foobar: command not found
-	 $4 = 127
-	 (gdb) help function _shell
-	 $_shell - execute a shell command and returns the result.
-	 Usage: $_shell (command)
-	 Returns the command's exit code: zero on success, non-zero otherwise.
-	 (gdb)
-
-	NEWS and manual changes included.
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Approved-By: Eli Zaretskii <eliz@gnu.org>
-	Change-Id: I7e36d451ee6b428cbf41fded415ae2d6b4efaa4e
-
-2023-02-15  Pedro Alves  <pedro@palves.net>
-
-	Make "ptype INTERNAL_FUNCTION" in Ada print like other languages
-	Currently, printing the type of an internal function in Ada shows
-	double <>s, like:
-
-	 (gdb) with language ada -- ptype $_isvoid
-	 type = <<internal function>>
-
-	while all other languages print it with a single <>, like:
-
-	 (gdb) with language c -- ptype $_isvoid
-	 type = <internal function>
-
-	I don't think there's a reason that Ada needs to be different.  We
-	currently print the double <>s because we take this path in
-	ada_print_type:
-
-	    switch (type->code ())
-	      {
-	      default:
-		gdb_printf (stream, "<");
-		c_print_type (type, "", stream, show, level, language_ada, flags);
-		gdb_printf (stream, ">");
-		break;
-
-	... and the type's name already has the <>s.
-
-	Fix this by simply adding an early check for
-	TYPE_CODE_INTERNAL_FUNCTION.
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Change-Id: Ic2b6527b9240a367471431023f6e27e6daed5501
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30105
-
-2023-02-15  Pedro Alves  <pedro@palves.net>
-
-	Fix "ptype INTERNAL_FUNC" (PR gdb/30105)
-	Currently, looking at the type of an internal function, like below,
-	hits an odd error:
-
-	 (gdb) ptype $_isvoid
-	 type = <internal function>type not handled in c_type_print_varspec_prefix()
-
-	That is an error thrown from
-	c-typeprint.c:c_type_print_varspec_prefix, where it reads:
-
-	    ...
-	    case TYPE_CODE_DECFLOAT:
-	    case TYPE_CODE_FIXED_POINT:
-	      /* These types need no prefix.  They are listed here so that
-		 gcc -Wall will reveal any types that haven't been handled.  */
-	      break;
-	    default:
-	      error (_("type not handled in c_type_print_varspec_prefix()"));
-	      break;
-
-	Internal function types have type code TYPE_CODE_INTERNAL_FUNCTION,
-	which is not explicitly handled by that switch.
-
-	That comment quoted above says that gcc -Wall will reveal any types
-	that haven't been handled, but that's not actually true, at least with
-	modern GCCs.  You would need to enable -Wswitch-enum for that, which
-	we don't.  If I do enable that warning, then I see that we're missing
-	handling for the following type codes:
-
-	   TYPE_CODE_INTERNAL_FUNCTION,
-	   TYPE_CODE_MODULE,
-	   TYPE_CODE_NAMELIST,
-	   TYPE_CODE_XMETHOD
-
-	TYPE_CODE_MODULE and TYPE_CODE_NAMELIST and Fortran-specific, so it'd
-	be a little weird to handle them here.
-
-	I tried to reach this code with TYPE_CODE_XMETHOD, but couldn't figure
-	out how to.  ptype on an xmethod isn't treated specially, it just
-	complains that the method doesn't exist.  I've extended the
-	gdb.python/py-xmethods.exp testcase to make sure of that.
-
-	My thinking is that whatever type code we add next, the most likely
-	scenario is that it won't need any special handling, so we'd just be
-	adding another case to that "do nothing" list.  If we do need special
-	casing for whatever type code, I think that tests added at the same
-	time as the feature would uncover it anyhow.  If we do miss adding the
-	special casing, then it still looks better to me to print the type
-	somewhat incompletely than to error out and make it harder for users
-	to debug whatever they need.  So I think that the best thing to do
-	here is to just remove all those explicit "do nothing" cases, along
-	with the error default case.
-
-	After doing that, I decided to write a testcase that iterates over all
-	supported languages doing "ptype INTERNAL_FUNC".  That revealed that
-	Pascal has a similar problem, except the default case hits a
-	gdb_assert instead of an error:
-
-	 (gdb) with language pascal -- ptype $_isvoid
-	 type =
-	 ../../src/gdb/p-typeprint.c:268: internal-error: type_print_varspec_prefix: unexpected type
-	 A problem internal to GDB has been detected,
-	 further debugging may prove unreliable.
-
-	That is fixed by this patch in the same way.
-
-	You'll notice that the new testcase special-cases the Ada expected
-	output:
-
-		} elseif {$lang == "ada"} {
-		    gdb_test "ptype \$_isvoid" "<<internal function>>"
-		} else {
-		    gdb_test "ptype \$_isvoid" "<internal function>"
-		}
-
-	That will be subject of the following patch.
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-	Change-Id: I81aec03523cceb338b5180a0b4c2e4ad26b4c4db
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30105
-
-2023-02-15  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/dwarf2: split .debug_names reading code to own file
-	Move everything related to reading .debug_names from read.c to
-	read-debug-names.c.  The only entry point exposed by
-	read-debug-names.{c,h} is dwarf2_read_debug_names.
-
-	Change-Id: I18b23f3c7a61b14abc3a46e4bf559bc2d078e8bc
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-15  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/dwarf2: split .gdb_index reading code to own file
-	Move everything related to reading .gdb_index from read.c to
-	read-gdb-index.c.  The only entry point exposed by read-gdb-index.{c,h}
-	is dwarf2_read_gdb_index.
-
-	Change-Id: I1e32c8f0720086538de8d2f612f27545377099bc
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-15  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/dwarf2: move some things to read.h
-	The following 2 patches move .gdb_index and .debug_names reading code to
-	their own file.  Prepare this by exposing some things used by that code
-	to read.h.
-
-	Change-Id: If8ef135758a2ff0ab3b765cc92596da8189f3bbd
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-15  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix dealloc function not being called for frame 0
-	Tom de Vries reported [1] a regression in gdb.btrace/record_goto.exp
-	caused by 6d3717d4c4 ("gdb: call frame unwinders' dealloc_cache methods
-	through destroying the frame cache").  This issue is caught by ASan.  On
-	a non-ASan build, it may or may not cause a crash or some other issue, I
-	haven't tried.
-
-	I managed to narrow it down to:
-
-	    $ ./gdb -nx -q --data-directory=data-directory testsuite/outputs/gdb.btrace/record_goto/record_goto -ex "start" -ex "record btrace" -ex "next"
-
-	... and then doing repeatedly "record goto 19" and "record goto 27".
-	Eventually, I get:
-
-	    (gdb) record goto 27
-	    =================================================================
-	    ==1527735==ERROR: AddressSanitizer: heap-use-after-free on address 0x6210003392a8 at pc 0x55e4c26eef86 bp 0x7ffd229f24e0 sp 0x7ffd229f24d8
-	    READ of size 8 at 0x6210003392a8 thread T0
-	        #0 0x55e4c26eef85 in bfcache_eq /home/simark/src/binutils-gdb/gdb/record-btrace.c:1639
-	        #1 0x55e4c37cdeff in htab_find_slot_with_hash /home/simark/src/binutils-gdb/libiberty/hashtab.c:659
-	        #2 0x55e4c37ce24a in htab_find_slot /home/simark/src/binutils-gdb/libiberty/hashtab.c:703
-	        #3 0x55e4c26ef0c6 in bfcache_new /home/simark/src/binutils-gdb/gdb/record-btrace.c:1653
-	        #4 0x55e4c26f1242 in record_btrace_frame_sniffer /home/simark/src/binutils-gdb/gdb/record-btrace.c:1820
-	        #5 0x55e4c1b926a1 in frame_unwind_try_unwinder /home/simark/src/binutils-gdb/gdb/frame-unwind.c:136
-	        #6 0x55e4c1b930d7 in frame_unwind_find_by_frame(frame_info_ptr, void**) /home/simark/src/binutils-gdb/gdb/frame-unwind.c:196
-	        #7 0x55e4c1bb867f in get_frame_type(frame_info_ptr) /home/simark/src/binutils-gdb/gdb/frame.c:2925
-	        #8 0x55e4c2ae6798 in print_frame_info(frame_print_options const&, frame_info_ptr, int, print_what, int, int) /home/simark/src/binutils-gdb/gdb/stack.c:1049
-	        #9 0x55e4c2ade3e1 in print_stack_frame(frame_info_ptr, int, print_what, int) /home/simark/src/binutils-gdb/gdb/stack.c:367
-	        #10 0x55e4c26fda03 in record_btrace_set_replay /home/simark/src/binutils-gdb/gdb/record-btrace.c:2779
-	        #11 0x55e4c26fddc3 in record_btrace_target::goto_record(unsigned long) /home/simark/src/binutils-gdb/gdb/record-btrace.c:2843
-	        #12 0x55e4c2de2bb2 in target_goto_record(unsigned long) /home/simark/src/binutils-gdb/gdb/target.c:4169
-	        #13 0x55e4c275ed98 in record_goto(char const*) /home/simark/src/binutils-gdb/gdb/record.c:372
-	        #14 0x55e4c275edba in cmd_record_goto /home/simark/src/binutils-gdb/gdb/record.c:383
-
-	    0x6210003392a8 is located 424 bytes inside of 4064-byte region [0x621000339100,0x62100033a0e0)
-	    freed by thread T0 here:
-	        #0 0x7f6ca34a5b6f in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:123
-	        #1 0x55e4c38a4c17 in rpl_free /home/simark/src/binutils-gdb/gnulib/import/free.c:44
-	        #2 0x55e4c1bbd378 in xfree<void> /home/simark/src/binutils-gdb/gdb/../gdbsupport/gdb-xfree.h:37
-	        #3 0x55e4c37d1b63 in call_freefun /home/simark/src/binutils-gdb/libiberty/obstack.c:103
-	        #4 0x55e4c37d25a2 in _obstack_free /home/simark/src/binutils-gdb/libiberty/obstack.c:280
-	        #5 0x55e4c1bad701 in reinit_frame_cache() /home/simark/src/binutils-gdb/gdb/frame.c:2112
-	        #6 0x55e4c27705a3 in registers_changed_ptid(process_stratum_target*, ptid_t) /home/simark/src/binutils-gdb/gdb/regcache.c:564
-	        #7 0x55e4c27708c7 in registers_changed_thread(thread_info*) /home/simark/src/binutils-gdb/gdb/regcache.c:573
-	        #8 0x55e4c26fd922 in record_btrace_set_replay /home/simark/src/binutils-gdb/gdb/record-btrace.c:2772
-	        #9 0x55e4c26fddc3 in record_btrace_target::goto_record(unsigned long) /home/simark/src/binutils-gdb/gdb/record-btrace.c:2843
-	        #10 0x55e4c2de2bb2 in target_goto_record(unsigned long) /home/simark/src/binutils-gdb/gdb/target.c:4169
-	        #11 0x55e4c275ed98 in record_goto(char const*) /home/simark/src/binutils-gdb/gdb/record.c:372
-	        #12 0x55e4c275edba in cmd_record_goto /home/simark/src/binutils-gdb/gdb/record.c:383
-
-	    previously allocated by thread T0 here:
-	        #0 0x7f6ca34a5e8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
-	        #1 0x55e4c0b55c60 in xmalloc /home/simark/src/binutils-gdb/gdb/alloc.c:57
-	        #2 0x55e4c37d1a6d in call_chunkfun /home/simark/src/binutils-gdb/libiberty/obstack.c:94
-	        #3 0x55e4c37d1c20 in _obstack_begin_worker /home/simark/src/binutils-gdb/libiberty/obstack.c:141
-	        #4 0x55e4c37d1ed7 in _obstack_begin /home/simark/src/binutils-gdb/libiberty/obstack.c:164
-	        #5 0x55e4c1bad728 in reinit_frame_cache() /home/simark/src/binutils-gdb/gdb/frame.c:2113
-	        #6 0x55e4c27705a3 in registers_changed_ptid(process_stratum_target*, ptid_t) /home/simark/src/binutils-gdb/gdb/regcache.c:564
-	        #7 0x55e4c27708c7 in registers_changed_thread(thread_info*) /home/simark/src/binutils-gdb/gdb/regcache.c:573
-	        #8 0x55e4c26fd922 in record_btrace_set_replay /home/simark/src/binutils-gdb/gdb/record-btrace.c:2772
-	        #9 0x55e4c26fddc3 in record_btrace_target::goto_record(unsigned long) /home/simark/src/binutils-gdb/gdb/record-btrace.c:2843
-	        #10 0x55e4c2de2bb2 in target_goto_record(unsigned long) /home/simark/src/binutils-gdb/gdb/target.c:4169
-	        #11 0x55e4c275ed98 in record_goto(char const*) /home/simark/src/binutils-gdb/gdb/record.c:372
-	        #12 0x55e4c275edba in cmd_record_goto /home/simark/src/binutils-gdb/gdb/record.c:383
-
-	The problem is a stale entry in the bfcache hash table (in
-	record-btrace.c), left across a reinit_frame_cache.  This entry points
-	to something that used to be allocated on the frame obstack, that has
-	since been wiped by reinit_frame_cache.
-
-	Before the aforementioned, unwinder deallocation functions were called
-	by iterating on the frame chain, starting with the sentinel frame, like
-	so:
-
-	  /* Tear down all frame caches.  */
-	  for (frame_info *fi = sentinel_frame; fi != NULL; fi = fi->prev)
-	    {
-	      if (fi->prologue_cache && fi->unwind->dealloc_cache)
-		fi->unwind->dealloc_cache (fi, fi->prologue_cache);
-	      if (fi->base_cache && fi->base->unwind->dealloc_cache)
-		fi->base->unwind->dealloc_cache (fi, fi->base_cache);
-	    }
-
-	After that patch, we relied on the fact that all frames are (supposedly)
-	in the frame_stash.  A deletion function was added to the frame_stash
-	hash table, so that dealloc functions would be called when emptying the
-	frame stash.  There is one case, however, where a frame_info is not in
-	the frame stash.  That is when we create the frame_info for the current
-	frame (level 0, unwound from the sentinel frame), but don't compute its
-	frame id.  The computation of the frame id for that frame (and only that
-	frame, AFAIK) is done lazily.  And putting a frame_info in the frame stash
-	requires knowing its id.  So a frame 0 whose frame id is not computed
-	yet is necessarily not in the frame stash.
-
-	When replaying with btrace, record_btrace_frame_sniffer insert entries
-	corresponding to frames in the "bfcache" hash table.  It then relies on
-	record_btrace_frame_dealloc_cache being called for each frame to remove
-	all those entries when the frames get invalidated.  If a frame reinit
-	happens while frame 0's id is not computed  (and therefore that frame is
-	not in frame_stash), record_btrace_frame_dealloc_cache does not get
-	called for it, and it leaves a stale entry in bfcache.  That then leads
-	to a use-after-free when that entry is accessed later, which ASan
-	catches.
-
-	The proposed solution is to explicitly call frame_info_del on frame 0,
-	if it exists, and if its frame id is not computed.  If its frame id is
-	computed, it is expected that it will be in the frame stash, so it will
-	be "deleted" through that.
-
-	[1] https://inbox.sourceware.org/gdb-patches/20230130200249.131155-1-simon.marchi@efficios.com/T/#mcf1340ce2906a72ec7ed535ec0c97dba11c3d977
-
-	Reported-By: Tom de Vries <tdevries@suse.de>
-	Tested-By: Tom de Vries <tdevries@suse.de>
-	Change-Id: I2351882dd511f3bbc01e4152e9db13b69b3ba384
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Remove RETURNS from BFD chew comments
-	When reading the BFD manual, I noticed text like this:
-
-	     -- Function: bool bfd_close (bfd *abfd);
-		 Close a BFD. If the BFD was open for writing, then pending
-		 operations are completed and the file written out and closed.  If
-	    ...
-	       *Returns*
-	    'TRUE' is returned if all is ok, otherwise 'FALSE'.
-
-	The *Returns*, like the *Synopsis* in the earlier patch, is
-	un-info-like.  It's also used inconsistently.
-
-	This patch removes all the uses of the RETURNS word and removes it
-	entirely from the chew scripts.  Now this example reads:
-
-	     -- Function: bool bfd_close (bfd *abfd);
-		 Close a BFD. If the BFD was open for writing, then pending
-		 operations are completed and the file written out and closed.  If
-	    ...
-		 'TRUE' is returned if all is ok, otherwise 'FALSE'.
-
-	In a few cases I had to slightly reword the comment.  There were also
-	a couple of cases where there was redundant text.  In these cases I
-	just dropped the RETURNS copy.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* bfd.c, cache.c, compress.c, opncls.c: Remove RETURNS from
-		documentation comments.
-		* doc/doc.str, doc/proto.str (RETURNS): Remove.
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Use @deftypefn in chew output
-	When reading the BFD info manual, function definitions looked very
-	strange to me:
-
-	    *Synopsis*
-		 long bfd_get_mtime (bfd *abfd);
-	       *Description*
-	    Return the file modification time (as read from the file system, or from
-	    the archive header for archive members).
-
-	The *Synopsis* and *Description* text in particular is very un-info-like.
-
-	To fix this, I tried removing the *Synopsis* text and having FUNCTION
-	use @deftypefn instead.  However, this ended up requiring some new
-	state, because SYNOPSIS can appear without FUNCTION.  This in turn
-	required "catstrif" (I considered adding FORTH-style if-else-then, but
-	in the end decided on an ad hoc approach).
-
-	After this the result looks like:
-
-	 -- Function: long bfd_get_mtime (bfd *abfd);
-	     Return the file modification time (as read from the file system, or
-	     from the archive header for archive members).
-
-	This patch also reorders a few documentation comments to ensure that
-	SYNOPSIS comes before DESCRIPTION.  This is the more common style and
-	is also now required by doc.str.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* syms.c (bfd_decode_symclass, bfd_is_undefined_symclass)
-		(bfd_symbol_info): Reorder documentation comment.
-		* doc/doc.str (synopsis_seen): New variable.
-		(SYNOPSIS): Set synopsis_seen.  Emit @deftypefn.
-		(DESCRIPTION): Use synopsis_seen.
-		* doc/chew.c (catstrif): New function.
-		(main): Add catstrif intrinsic.
-		(compile): Recognize "variable" command.
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Change internalmode to be an intrinsic variable
-	Currently, internalmode is a special word to set an internal state
-	variable.  Because this series adds variables anyway, change this to
-	be a variable instead.
-
-	I saw some commits in the history that made sure that chew did not
-	leak memory, so I put some extra effort into trying to handle this for
-	variables as well.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* doc/proto.str (external, internal, ifinternal, ENUMEQ, ENUMDOC):
-		Update.
-		* doc/chew.c (internalmode): Remove.
-		(add_intrinsic_variable): New function.
-		(main): Add internalmode as intrinsic.
-		(internal_mode): Remove global.
-		(maybecatstr): Update.
-		(free_words): Free variables.
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Use intptr_t rather than long in chew
-	To implement variables in chew, it's convenient to have a
-	pointer-sized integer on the stack.  To this end, use intptr_t rather
-	than long.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* doc/chew.c (pcu) <l>: Now intptr_t.
-		(internal_mode, istack, isp): Likewise.
-		(bang, atsign): Use intptr_t.
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Remove the paramstuff word
-	The chew "paramstuff" word has been a no-op since:
-
-	    commit c58b95236ce4c9345c4fa76e7ef16762e5229380
-	    Author: Alan Modra <amodra@gmail.com>
-	    Date:   Sun Jun 29 10:06:40 2003 +0000
-
-		Convert to C90 and a few tweaks.
-
-	Remove it and its one use.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* doc/proto.str (SYNOPSIS): Don't use paramstuff.
-		* doc/chew.c (paramstuff): Remove.
-		(main): Don't add paramstuff intrinsic.
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Add copyright headers to the .str files
-	The .str script files don't have copyright headers, but I think they
-	should.  I used the same dates that chew.c uses, which I think makes
-	sense because these are inputs to chew.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* doc/doc.str, doc/proto.str: Add copyright header.
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Simplify @node use in BFD documentation
-	The BFD docs currently specify all the parameters to @node.  However,
-	this results in bad navigation in certain nodes -- the "space" command
-	in info doesn't know how to find the next node.
-
-	I think this style of @node is a leftover from ancient times.
-	Makeinfo can figure out the node structure on its own now, so simplify
-	everything to a single-argument @node.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* doc/webassembly.texi (File layout): Remove second argument from
-		@node.
-		* doc/bfd.texi: Use single-argument @node everywhere.
-
-2023-02-15  Tom Tromey  <tom@tromey.com>
-
-	Remove H_CFLAGS from doc/local.mk
-	I couldn't see that H_CFLAGS is defined anywhere, so remove it.
-
-	2023-02-07  Tom Tromey  <tom@tromey.com>
-
-		* Makefile.in: Rebuild.
-		* doc/local.mk (%D%/chew.stamp): Don't use H_CFLAGS.
-
-2023-02-15  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: store internalvars in an std::map
-	In a test downstream in ROCgdb, we had a test case failing when
-	GDB_REVERSE_INIT_FUNCTIONS was set.  The test was assuming a particular
-	order in the output of "show convenience".  And the order changes when
-	running with GDB_REVERSE_INIT_FUNCTIONS.
-
-	I think that a nice way to fix it is to make the output of "show
-	convenience" sorted, and therefore stable.  Ideally, I think that the
-	the user-visible behavior of GDB should not change when using
-	GDB_REVERSE_INIT_FUNCTIONS.  Plus, it makes the output of "show
-	convenience" look nice, not that it's really important.
-
-	Implement this by storing the internal vars in an std::map, which is a
-	sorted container.
-
-	Change-Id: I1fca7e7877cc984a3a3432c7639d45e68d437241
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-15  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add constructor to internalvar
-	Add a constructor that takes the name as a parameter.  Initialize the
-	next and kind fields inline.
-
-	Change-Id: Ic4db0aba85f1da9f12f3eee0ac62c0e5ef0cfe88
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-15  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: use std::string for internalvar::name
-	Change internalvar::name to std::string, automating memory management.
-	It becomes necessary to allocate internalvar with new instead of XNEW.
-
-	I didn't find how to trigger the code in complete_internalvar.  It is
-	called from condition_completer, so it should be by using the
-	"condition" command, but I never managed to get in the right code path.
-
-	Change-Id: I814d61361663e7becb8f3fb5f58c0180cdc414bc
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-15  Tom Tromey  <tromey@adacore.com>
-
-	Do not record a rejected target description
-	When connecting to a certain target, gdb issues a warning about the
-	target description:
-
-	    (gdb) target remote localhost:7947
-	    Remote debugging using localhost:7947
-	    warning: Architecture rejected target-supplied description
-
-	If you then kill the inferior and change the exec-file, this will
-	happen:
-
-	    (gdb) file bar
-	    Architecture of file not recognized.
-
-	After this, debugging doesn't work very well.
-
-	What happens here is that, despite the warning,
-	target_find_description records the downloaded description in the
-	target_desc_info.  Then the "file" command ends up calling
-	set_gdbarch_from_file, which uses that description.
-
-	It seems to me that, because the architecture rejected the
-	description, it should not be used.  That is what this patch
-	implements.
-
-2023-02-15  Pedro Alves  <pedro@palves.net>
-
-	gdb/manual: Move @findex entries
-	The manual currently has many cases like these:
-
-	 @item $_gdb_setting_str (@var{setting})
-	 @findex $_gdb_setting_str@r{, convenience function}
-
-	As suggested by Eli, move the @findex entries before @item so that the
-	index records the position of @item, and the Info reader places you
-	there when you use index-search.
-
-	I went over all @findex calls in the manual, and most are like the
-	above.  Most either appear before @item, or before @subheading, like:
-
-	 @subheading The @code{-break-after} Command
-	 @findex -break-after
-
-	I fixed all of them.
-
-	There are findex entries in annotate.texinfo,python.texi, and
-	stabs.texinfo as well, though those all look right to me already.
-
-	Tested by typing "i _isvoid" (@item case) and "i -complete"
-	(@subheading case) in an Info reader, and checking where those took
-	me.
-
-	Change-Id: Idb6903b0bb39ff03f93524628dcef86b5585c97e
-	Suggested-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-02-15  Alan Modra  <amodra@gmail.com>
-
-	objdump read_section_stabs
-	This function is used to read sections other than stabs, and there is
-	now another version of it that extracts different info from the bfd
-	section.  Rename it and return the bfd section instead of assorted
-	fields of the bfd section.
-
-		* objcopy.c (read_section): Renamed from read_section_stabs.
-		Delete size_ptr and entsize_ptr params, add contents param.
-		Return asection pointer.  Don't unnecessarily free contents on
-		failure from bfd_malloc_and_get_section.
-		(find_stabs_section): Use read_section.
-		(dump_ctf, dump_section_sframe): Likewise.
-		(read_section_sframe): Delete.
-
-2023-02-15  Alan Modra  <amodra@gmail.com>
-
-	objdump -G memory leak
-		* objdump.c (find_stabs_section): Free stabs.
-
-2023-02-15  Nick Clifton  <nickc@redhat.com>
-
-	Fix the linker's merge4 test for the HPPA architecture.
-	 PR 30078 * testsuite/ld-elf/merge4b.s: Use .asciz instead of .string in order to avoid the special behaviour of the .string directive on HPPA architectures.
-
-2023-02-15  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, fortran: Fix quad floating-point type for ifort compiler.
-	I fixed this a while ago for ifx, one of the two Intel compilers, in
-	8d624a9d8050ca96e154215c7858ac5c2d8b0b19.
-
-	Apparently I missed that the older ifort Intel compiler actually emits
-	slightly different debug info again:
-
-	0x0000007a:   DW_TAG_base_type
-	                DW_AT_byte_size	(0x20)
-	                DW_AT_encoding	(DW_ATE_complex_float)
-	                DW_AT_name	("COMPLEX(16)")
-
-	0x00000081:   DW_TAG_base_type
-	                DW_AT_byte_size	(0x10)
-	                DW_AT_encoding	(DW_ATE_float)
-	                DW_AT_name	("REAL(16)")
-
-	This fixes two failures in gdb.fortran/complex.exp with ifort.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-15  Jan Beulich  <jbeulich@suse.com>
-
-	gas: buffer_and_nest() needs to pass nul-terminated string to temp_ilp()
-	In 7545aa2dd2eb ("gas: improve interaction between read_a_source_file()
-	and s_linefile()") I didn't pay attention to the dual purpose of the
-	nul character previously used. This was to a fair degree because of the
-	open-coding of certain operations. Insert the earlier found line
-	terminator instead of a hard-coded newline, and do so early in this
-	special case (bypassing the later general insertion point). Plus
-	properly use sb_terminate() to mark the end of the string. (Note that
-	saved_eol_char was misnamed: Without calling sb_terminate() there's
-	simply random data at that position in the buffer.)
-
-2023-02-15  Alan Modra  <amodra@gmail.com>
-
-	More ecoff sanity checks
-	Change FIX so that unused pointers that escape the UPDATE_RAW_END
-	sanity checks won't result in overflows.  Also sanity check the local
-	sym fdr isymBase and csym values.
-
-		* ecoff.c (_bfd_ecoff_slurp_symbolic_info): Define FIX to set
-		pointers into swapped internal data to NULL if count is zero.
-		Sanity check local sym fdr_ptr->isymBase and fdr_ptr->csym.
-
-2023-02-15  Alan Modra  <amodra@gmail.com>
-
-	binutils stabs type list
-	Fuzzers have found that specifying a large stab type number results in
-	lots of memory being requested, as the list is extended with a 16
-	element array at a time until we reach the given stab type.  It also
-	takes a long time.  Of course normal sane stab types use small
-	positive integers, but it's not hard to modify the code to handle type
-	numbers starting anyhere.
-
-		* stabs.c (struct stab_types): Add base_index.
-		(stab_find_slot): Simplify filenum check.  Delete type number
-		check.  Don't allocate entire array from 0 to type number,
-		allocate a sparse array.
-
-2023-02-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-14  Tom Tromey  <tom@tromey.com>
-
-	Remove a use of pagination_enabled
-	I noticed that the TUI temporarily sets pagination_enabled and
-	gdb_stdout in one spot.  However, I don't believe these settings are
-	necessary here, as a ui_file is passed to
-	gdbarch_print_registers_info.  This patch removes these settings.
-
-2023-02-14  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/dwarf2: rename some things, index -> gdb_index
-	This renaming helps make it clearer that these entites (classes,
-	functions) are specific to .gdb_index only, they are not shared with the
-	.debug_names handling.
-
-	Change-Id: I1a3cf3dbf450b62d1a0879d9aedd26397abdfd13
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-14  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: cast return value of std::unique_ptr::release to void
-	My editor shows warnings like:
-
-	     value.c:2784: warning: The value returned by this function should be used
-	     value.c:2784: note: cast the expression to void to silence this warning [bugprone-unused-return-value]
-
-	These warnings come from clangd, so ultimately from one of the clang
-	static analyzers (probably clang-tidy).
-
-	Silence these warnings by casting to void.  Add a comment to explain
-	why this unusual thing is done.
-
-	Change-Id: I58323959c0baf9f1b20a8d596e4c58dc77c6809a
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-14  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove unnecessary tui directory check in configure
-	I suppose this was possible in the CVS days for the tui directory to be
-	missing, but it's not really possible nowaday.  Well, a user could
-	delete the directory from their source tree but... it doesn't make
-	sense.  Remove the check for that directory in configure.
-
-	Change-Id: Iea1412f5e5482ed003015030132ec22150c7d0b3
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-14  Tom Tromey  <tromey@adacore.com>
-
-	Do not cast away const in agent_run_command
-	While investigating something else, I noticed some weird code in
-	agent_run_command (use of memcpy rather than strcpy).  Then I noticed
-	that 'cmd' is used as both an in and out parameter, despite being
-	const.
-
-	Casting away const like this is bad.  This patch removes the const and
-	fixes the memcpy.  I also added a static assert to assure myself that
-	the code in gdbserver is correct -- gdbserver is passing its own
-	buffer directly to agent_run_command.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add xfail in gdb.python/py-record-btrace.exp
-	There's a HW bug affecting Processor Trace on some Intel processors
-	(Ice Lake to Raptor Lake microarchitectures).
-
-	The bug was exposed by linux kernel commit 670638477aed
-	("perf/x86/intel/pt: Opportunistically use single range output mode"),
-	added in version v5.5.0, and was worked around by commit ce0d998be927
-	("perf/x86/intel/pt: Fix sampling using single range output") in version
-	6.1.0.
-
-	The bug manifests (on a Performance-core of an i7-1250U, an Alder Lake cpu) in
-	a single test-case:
-	...
-	(gdb) python insn = r.instruction_history^M
-	warning: Decode error (-20) at instruction 33 (offset = 0x3d6a, \
-	  pc = 0x400501): compressed return without call.^M
-	(gdb) FAIL: gdb.python/py-record-btrace.exp: prepare record: \
-	  python insn = r.instruction_history
-	...
-
-	Add a corresponding XFAIL.
-
-	Note that the i7-1250U has both Performance-cores and Efficient-cores, and on
-	an Efficient-Core the test-case runs without any problems, so if the testsuite
-	run is not pinned to a specific cpu, the test may either PASS or XFAIL.
-
-	Tested on x86_64-linux:
-	- openSUSE Leap 15.4 with linux kernel version 5.14.21
-	- openSUSE Tumbleweed with linux kernel version 6.1.8
-
-	PR testsuite/30075
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30075
-
-2023-02-14  Nick Clifton  <nickc@redhat.com>
-
-	 Mention that the -plugin command line option is used to load plugins.
-
-2023-02-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Factor out proc linux_kernel_version
-	Factor out new proc linux_kernel_version from test-case
-	gdb.arch/i386-pkru.exp.
-
-	Tested on x86_64-linux.
-
-2023-02-14  Ulf Samuelsson  <ulf@emagii.com>
-
-	ASCIZ Command for output section
-	Adds a new directive to the linker script syntax: ASCIZ.
-	This inserts a zero-terminated string into the output at the place where it is used.
-
-2023-02-14  Jan Beulich  <jbeulich@suse.com>
-
-	gas: correct symbol name comparison in .startof./.sizeof. handling
-	In 162c6aef1f3a ("gas: fold symbol table entries generated for
-	.startof.() / .sizeof.()") I screwed up quite badly, inverting the case
-	sensitive and case insensitive comparison functions.
-
-	x86: {LD,ST}TILECFG use an extension opcode
-	It being zero and happening to work right now doesn't mean the insns
-	shouldn't be spelled out properly.
-
-2023-02-14  Jan Beulich  <jbeulich@suse.com>
-
-	gas: improve interaction between read_a_source_file() and s_linefile()
-	read_a_source_file() would bump line numbers only when seeing a newline,
-	whereas is_end_of_line[] indicates further end-of-line characters, in
-	particular the nul character. s_linefile() attempts to compensate for
-	the bump, but was too aggressive with this so far: It should only adjust
-	when a newline ends the line. To facilitate such a check, the check for
-	nothing else on the line needs to move ahead, which luckily is easily
-	possible: The relevant two conditions match, and the function can
-	simply return from the body of that earlier instance of the conditional.
-
-	The more strict treatment in s_linefile() then requires an adjustment
-	to buffer_and_nest()'s invocation of the function: The line terminator
-	now needs to be a newline, not nul.
-
-2023-02-14  Tom Tromey  <tom@tromey.com>
-
-	Fix build bug in ppc-linux-nat.c
-	The buildbot pointed out that my value refactoring series introduced a
-	bug in ppc-linux-nat.c:
-
-	../../binutils-gdb/gdb/ppc-linux-nat.c: In member function ‘int ppc_linux_nat_target::num_memory_accesses(const std::vector<gdb::ref_ptr<value, value_ref_policy> >&)’:
-	../../binutils-gdb/gdb/ppc-linux-nat.c:2458:44: error: expected unqualified-id before ‘->’ token
-	 2458 |       if (VALUE_LVAL (v) == not_lval || v->->deprecated_modifiable () == 0)
-
-	I don't know how that happened, but I am checking in this patch which
-	I think should fix it.  It just removes the second "->".
-
-	I can't readily test this, so perhaps there's another bug lurking
-	after this one.
-
-2023-02-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Rely on value_ref_ptr::operator->
-	Simon pointed out some spots were doing val.get()->mumble, where val
-	is a value_ref_ptr.  These were introduced by the function-to-method
-	script, replacing older code that passed the result of .get() to a
-	function.
-
-	Now that value.h is using methods, we can instead rely on operator->.
-	This patch replaces all the newly-introduced instances of this.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Remove deprecated_lval_hack
-	This removes deprecated_lval_hack and the VALUE_LVAL macro, replacing
-	all uses with a call to value::lval.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Introduce set_lval method on value
-	This introduces the set_lval method on value, one step toward removing
-	deprecated_lval_hack.  Ultimately I think the goal should be for some
-	of these set_* methods to be replaced with constructors; but I haven't
-	done this, as the series is already too long.  Other 'deprecated'
-	methods can probably be handled the same way.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Make ~value private
-	At the end of this series, I belatedly realized that values should
-	only be destroyed by value_decref.  This patch marks the the
-	destructor private to enforce this.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Make struct value data members private
-	This hoists the 'private' in struct value to also encompass the data
-	members.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn record_latest_value into a method
-	record_latest_value now access some internals of struct value, so turn
-	it into a method.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Add value::set_modifiable
-	This introduces a value::set_modifiable and changes a couple of spots
-	to use it.
-
-	I'm not completely sure the comments by deprecated_modifiable are
-	correct any more.  Perhaps they should be removed and the method
-	renamed.  Like so many before me, though, I've deferred investigation
-	of the issue.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn various value copying-related functions into methods
-	This patch turns a grab bag of value functions to methods of value.
-	These are done together because their implementations are
-	interrelated.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn preserve_one_value into method
-	This changes preserve_one_value to be a method of value.  Much of this
-	patch was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn some xmethod functions into methods
-	This turns value_from_xmethod, result_type_of_xmethod, and
-	call_xmethod to be methods of value.  value_from_xmethod is a static
-	"constructor" now.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Change some code to use value methods
-	A few functions in value.c were accessing the internal fields of
-	struct value.  However, in these cases it seemed simpler to change
-	them to use the public API rather than convert them to be methods.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn set_value_component_location into method
-	This turns set_value_component_location into a method of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_non_lval and value_force_lval into methods
-	This changes value_non_lval and value_force_lval to be methods of
-	value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn many optimized-out value functions into methods
-	This turns many functions that are related to optimized-out or
-	availability-checking to be methods of value.  The static function
-	value_entirely_covered_by_range_vector is also converted to be a
-	private method.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_copy into a method
-	This turns value_copy into a method of value.  Much of this was
-	written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Fully qualify calls to copy in value.c
-	A coming patch will add value::copy, so this namespace-qualifies
-	existing calls to 'copy' in value.c, to ensure it will still compile
-	after that change is done.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn remaining value_contents functions into methods
-	This turns the remaining value_contents functions -- value_contents,
-	value_contents_all, value_contents_for_printing, and
-	value_contents_for_printing_const -- into methods of value.  It also
-	converts the static functions require_not_optimized_out and
-	require_available to be private methods.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_incref and value_decref into methods
-	This changes value_incref and value_decref to be methods of value.
-	Much of this patch was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Move value_ref_policy methods out-of-line
-	This moves the value_ref_policy methods to be defined out-of-line.
-	This is a necessary step to change value_incref and value_decref to be
-	methods of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_bits_synthetic_pointer into a method
-	This changes value_bits_synthetic_pointer to be a method of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_contents_eq into a method
-	This changes value_contents_eq to be a method of value.  It also
-	converts the static function value_contents_bits_eq into a private
-	method.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn allocate_value_contents into a method
-	This turns the static function allocate_value_contents into a method
-	on value.  It is temporarily public, until some users are converted.
-	set_limited_array_length is converted as well.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_fetch_lazy into a method
-	This changes value_fetch_lazy to be a method of value.  A few helper
-	functions are converted as well, to avoid problems in later patches
-	when the data members are all made private.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn some value_contents functions into methods
-	This turns value_contents_raw, value_contents_writeable, and
-	value_contents_all_raw into methods on value.  The remaining functions
-	will be changed later in the series; they were a bit trickier and so I
-	didn't include them in this patch.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_zero into static "constructor"
-	This turns value_zero into a static "constructor" of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn allocate_optimized_out_value into static "constructor"
-	This turns allocate_optimized_out_value into a static "constructor" of
-	value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn allocate_computed_value into static "constructor"
-	This turns allocate_computed_value into a static "constructor" of
-	value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn allocate_value into a static "constructor"
-	This changes allocate_value to be a static "constructor" of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn allocate_value_lazy into a static "constructor"
-	This changes allocate_value_lazy to be a static "constructor" of
-	struct value.
-
-	I considered trying to change value to use ordinary new/delete, but it
-	seems to me that due to reference counting, we may someday want to
-	change these static constructors to return value_ref_ptr instead.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn more deprecated_* functions into methods
-	This changes deprecated_value_internalvar_hack,
-	deprecated_value_internalvar_hack, and deprecated_value_regnum_hack
-	into methods on value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_address and set_value_address functions into methods
-	This changes the value_address and set_value_address functions to be
-	methods of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_initialized and set_value_initialized functions into methods
-	This changes the value_initialized and set_value_initialized functions
-	to be methods of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Convert value_lval_const and deprecated_lval_hack to methods
-	This converts the value_lval_const and deprecated_lval_hack functions
-	to be methods on value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_computed_closure and value_computed_funcs functions into methods
-	This changes the value_computed_funcs and value_computed_closure
-	functions to be methods of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_stack and set_value_stack functions into methods
-	This changes the value_stack and set_value_stack functions to be
-	methods of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_lazy and set_value_lazy functions into methods
-	This changes the value_lazy and set_value_lazy functions to be methods
-	of value.  Much of this patch was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn some value offset functions into method
-	This changes various offset-related functions to be methods of value.
-	Much of this patch was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_enclosing_type into method
-	This changes value_enclosing_type to be a method of value.  Much of
-	this patch was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn deprecated_value_modifiable into method
-	This changes deprecated_value_modifiable to be a method of value.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_offset into method
-	This changes value_offset to be a method of value.  Much of this patch
-	was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_parent into method
-	This changes value_parent to be a method of value.  Much of this patch
-	was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_bitpos into method
-	This changes value_bitpos to be a method of value.  Much of this patch
-	was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_bitsize into method
-	This changes value_bitsize to be a method of value.  Much of this patch
-	was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_arch into method
-	This changes value_arch to be a method of value.  Much of this patch
-	was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn deprecated_set_value_type into a method
-	This changes deprecated_set_value_type to be a method of value.  Much
-	of this patch was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Turn value_type into method
-	This changes value_type to be a method of value.  Much of this patch
-	was written by script.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Move struct value to value.h
-	This moves struct value to value.h.  For now, all members remain
-	public, but this is a temporary state -- by the end of the series
-	we'll add 'private'.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Move ~value body out-of-line
-	struct value is going to move to value.h, but to avoid having
-	excessive code there, first move the destructor body out-of-line.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Tom Tromey  <tom@tromey.com>
-
-	Rename all fields of struct value
-	This renames all the fields of struct value, in preparation for the
-	coming changes.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Michael Matz  <matz@suse.de>
-
-	PR30120: fix x87 fucomp misassembled
-	this fixes the entry for 'fucomp' to use the correct Reg value
-	(otherwise it's assembled as 'fucom').
-
-2023-02-13  Tom Tromey  <tromey@adacore.com>
-
-	Remove unused imports from gdb's Python code
-	The "sys" import is unused in several Python files.  This removes this
-	line from all the places where it is unnecessary.
-
-2023-02-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: don't leak the known_window_types map
-	This commit finishes the task that was started in the previous
-	commit.
-
-	Now that all Python TUI window factories are correctly deleted when
-	the Python interpreter is shut down, we no longer need to dynamically
-	allocate the known_window_types map in tui-layout.c
-
-	This commit changes known_window_types to a statically allocated data
-	structure, removes the dynamic allocation from
-	initialize_known_windows, and then replaces lots of '->' with '.'
-	throughout this file.
-
-	There should be no user visible changes after this commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: deallocate tui window factories at Python shut down
-	The previous commit relied on spotting when a Python defined TUI
-	window factory was deleted.  I spotted that the window factories are
-	not deleted when GDB shuts down its Python environment, they are only
-	deleted when one window factory replaces another.  Consider this
-	example Python script:
-
-	  class TestWindowFactory:
-	      def __init__(self, msg):
-	          self.msg = msg
-	          print("Entering TestWindowFactory.__init__: %s" % self.msg)
-
-	      def __call__(self, tui_win):
-	          print("Entering TestWindowFactory.__call__: %s" % self.msg)
-	          return TestWindow(tui_win, self.msg)
-
-	      def __del__(self):
-	          print("Entering TestWindowFactory.__del__: %s" % self.msg)
-
-	  gdb.register_window_type("test_window", TestWindowFactory("A"))
-	  gdb.register_window_type("test_window", TestWindowFactory("B"))
-
-	And this GDB session:
-
-	  (gdb) source tui.py
-	  Entering TestWindowFactory.__init__: A
-	  Entering TestWindowFactory.__init__: B
-	  Entering TestWindowFactory.__del__: B
-	  (gdb) quit
-
-	Notice that when the 'B' window replaces the 'A' window we see the 'A'
-	object being deleted.  But, when Python is shut down (after the
-	'quit') the 'B' object is never deleted.
-
-	Instead, GDB retains a reference to the window factory object, which
-	forces the Python object to remain live even after the Python
-	interpreter itself has been shut down.
-
-	The references themselves are held in a dynamically allocated
-	std::unordered_map (in tui/tui-layout.c) which is never deallocated,
-	thus the underlying Python references are never decremented to zero,
-	and so GDB never tries to delete these Python objects.
-
-	This commit is the first half of the work to clean up this edge case.
-
-	All gdbpy_tui_window_maker objects (the objects that implement the
-	TUI window factory callback for Python defined TUI windows), are now
-	linked together into a global list using the intrusive list mechanism.
-
-	When GDB shuts down the Python interpreter we can now walk this global
-	list and release the reference that is held to the underlying Python
-	object.  By releasing this reference the Python object will now be
-	deleted.
-
-	I've added a new assert in gdbpy_tui_window_maker::operator(), this
-	will catch the case where we somehow end up in here after having
-	reset the reference to the underlying Python object.  I don't think
-	this should ever happen though as we only clear the references when
-	shutting down the Python interpreter, and the ::operator() function is
-	only called when trying to apply a new TUI layout - something that
-	shouldn't happen while GDB itself is shutting down.
-
-	This commit does not update the std::unordered_map in tui-layout.c,
-	that will be done in the next commit.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: allow Python TUI windows to be replaced
-	The documentation for gdb.register_window_type says:
-
-	  "...  It's an error to try to replace one of the built-in windows,
-	  but other window types can be replaced. ..."
-
-	I take this to mean that if I imported a Python script like this:
-
-	  gdb.register_window_type('my_window', FactoryFunction)
-
-	Then GDB would have a new TUI window 'my_window', which could be
-	created by calling FactoryFunction().  If I then, in the same GDB
-	session imported a script which included:
-
-	  gdb.register_window_type('my_window', UpdatedFactoryFunction)
-
-	Then GDB would replace the old 'my_window' factory with my new one,
-	GDB would now call UpdatedFactoryFunction().
-
-	This is pretty useful in practice, as it allows users to iterate on
-	their window implementation within a single GDB session.
-
-	However, right now, this is not how GDB operates.  The second call to
-	register_window_type is basically ignored and the old window factory
-	is retained.
-
-	This is because in tui_register_window (tui/tui-layout.c) we use
-	std::unordered_map::emplace to insert the new factory function, and
-	emplace doesn't replace an existing element in an unordered_map.
-
-	In this commit, before the emplace call, I now search for an already
-	existing element, and delete any matching element from the map, the
-	emplace call will then add the new factory function.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-13  Keith Seitz  <keiths@redhat.com>
-
-	Fix doc build dependencies for --with-system-readline
-	PR build/30108 concerns building gdb documentation with
-	--with-sytem-readline.  If the in-tree readline directory is
-	missing, though, the docs will fail to build:
-
-	make[4]: Entering directory '/home/keiths/work/readline-doc-issue/linux/gdb/doc'
-	make[4]: *** No rule to make target '../../../src/gdb/doc/../../readline/readline/doc/rluser.texi', needed by 'gdb.info'.  Stop.
-
-	The listed file (and hsuser.texi) are conditionally included by gdb.texinfo.
-	When system readline is used, gdb/configure.ac will leave
-	READLINE_TEXI_INCFLAGS empty, causing doc/Makefile.in to output a line to
-	$BUILD/doc/GDBvn.texi with "@set SYSTEM_READLINE".  This surpresses the
-	inclusion of the missing files. They are not needed or used in this
-	scenario.
-
-	However, GDB_DOC_SOURCE_INCLUDES always lists these two files as dependencies,
-	thus provoking the build error whenever readline/ is missing.
-
-	This patch fixes this by creating (essentially) a conditional setting of the
-	dependencies to be included from readline.
-
-2023-02-13  Michael Matz  <matz@suse.de>
-
-	Fix PR30079: abort on mingw
-	the early-out in wild_sort is not enough, it might still be
-	that filenames are equal _and_ the wildcard list doesn't specify
-	a sort order either.  Don't call compare_section then.
-
-	Tested on all targets.
-
-2023-02-13  Alan Modra  <amodra@gmail.com>
-
-	_bfd_ecoff_slurp_symbol_table buffer overflow
-	Add missing bounds check, and tidy the existing bounds checking.
-
-		* ecoff.c (_bfd_ecoff_slurp_symbol_table): Break overlong lines.
-		Set bfd_error.  Bounds check internal_sym.iss.
-
-2023-02-13  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/mips: disassemble unknown micromips instructions as two shorts
-	Before commit:
-
-	  commit 2438b771ee07be19d5b01ea55e077dd8b7cef445
-	  Date:   Wed Nov 2 15:53:43 2022 +0000
-
-	      opcodes/mips: use .word/.short for undefined instructions
-
-	unknown 32-bit microMIPS instructions were disassembled as a raw
-	32-bit number with no '.word' directive.  The above commit changed
-	this and added a '.word' directive before the 32-bit number.
-
-	It was pointed out on the mailing list, that for microMIPS it would be
-	better to display such 32-bit instructions using a '.short' directive
-	followed by two 16-bit values.
-
-	This commit updates the mips disassembler to do this, and adds a new
-	test that validates this output.
-
-2023-02-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: handle differences in guile error string output
-	A new guile test added in commit:
-
-	  commit 0a9ccb9dd79384f3ba3f8cd75940e8868f3b526f
-	  Date:   Mon Feb 6 13:04:16 2023 +0000
-
-	      gdb: only allow one of thread or task on breakpoints or watchpoints
-
-	fails for some versions of guile.  It turns out that some versions of
-	guile emit an error like this:
-
-	  (gdb) guile (set-breakpoint-thread! bp 1)
-	  ERROR: In procedure set-breakpoint-thread!:
-	  In procedure gdbscm_set_breakpoint_thread_x: cannot set both task and thread attributes
-	  Error while executing Scheme code.
-
-	while other versions of guile emit the error like this:
-
-	  (gdb) guile (set-breakpoint-thread! bp 1)
-	  ERROR: In procedure set-breakpoint-thread!:
-	  ERROR: In procedure gdbscm_set_breakpoint_thread_x: cannot set both task and thread attributes
-	  Error while executing Scheme code.
-
-	notice the extra 'ERROR: ' on the second line of output.  This commit
-	updates the test regexp to handle this optional 'ERROR: ' string.
-
-2023-02-13  Alan Modra  <amodra@gmail.com>
-
-	stabs.c static state
-	Move all the function local static state variables to file scope,
-	in order to tidy memory on exit and to reinit everything for that
-	annoying oss-fuzz.  Also fix a couple memory leaks.
-
-		* read.h (read_begin, read_end): Declare.
-		* read.c (read_begin): Call stabs_begin.
-		(read_end): Call stabs_end.
-		* stabs.c (stabs_begin, stabs_end): New functions.
-		(in_dot_func_p): Delete, use current_function_label instead.
-		(cached_sec): Move from s_stab_generic.
-		(last_asm_file, file_label_count): Move from generate_asm_file.
-		(line_label_count, prev_lineno, prev_line_file): Move from
-		stabs_generate_asm_lineno.
-		(void_emitted_p): Move from stabs_generate_asm_func.
-		(endfunc_label_count): Move from stabs_generate_asm_endfunc.
-		(stabs_generate_asm_lineno): Simplify setting of
-		prev_line_file.
-		(stabs_generate_asm_func): Don't leak current_function_label.
-		(stabs_generate_asm_endfunc): Likewise.
-
-2023-02-13  Alan Modra  <amodra@gmail.com>
-
-	Split off gas init to functions
-	With some slight reordering.
-
-		* as.c (gas_early_init, gas_late_init): New functions, split..
-		(main): ..from here.
-
-2023-02-13  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: look for hipcc in env(ROCM_PATH)
-	If the hipcc compiler cannot be found in dejagnu's tool_root_dir, look
-	for it in $::env(ROCM_PATH) (if set).  If hipcc is still not found,
-	fallback to "hipcc" so the compiler will be searched in the PATH.  This
-	removes the fallback to the hard-coded "/opt/rocm/bin" prefix.
-
-	This change is done so ROCM tools are searched in a uniform manner.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: allow_hipcc_tests tests the hipcc compiler
-	Update allow_hipcc_tests so all gdb.rocm tests are skipped if we do not
-	have a working hipcc compiler available.
-
-	To achieve this, adjust gdb_simple_compile to ensure that the hip
-	program is saved in a ".cpp" file before calling hipcc otherwise
-	compilation will fail.
-
-	One thing to note is that it is possible to have a hipcc installed with
-	a CUDA backend.  Compiling with this back-end will successfully result
-	in an application, but GDB cannot debug it (at least for the offload
-	part). In the context of the gdb.rocm tests, we want to detect such
-	situation where gdb_simple_compile would give a false positive.
-
-	To achieve this, this patch checks that there is at least one AMDGPU
-	device available and that hipcc can compile for this or those targets.
-	Detecting the device is done using the rocm_agent_enumerator tool which
-	is installed with the all ROCm installations (it is used by hipcc to
-	detect identify targets if this is not specified on the comand line).
-
-	This patch also makes the allow_hipcc_tests proc a cached proc.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: require amd-dbgapi support to run rocm tests
-	Update allow_hipcc_tests to check that GDB has the amd-dbgapi support
-	built-in.  Without this support, all tests using hipcc and the rocm
-	stack will fail.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: Rename skip_hipcc_tests to allow_hipcc_tests
-	Rename skip_hipcc_tests to allow_hipcc_tests so it can be used as a
-	"require" predicate in tests.
-
-	Use require in gdb.rocm/simple.exp.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: 'show config' shows --with[out]-amd-dbgapi
-	Ensure that the "show configuration" command and the "--configuration"
-	command line switch shows if GDB was built with the AMDGPU support or
-	not.
-
-	This will be used in a later patch in this series.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-13  Alan Modra  <amodra@gmail.com>
-
-	objcopy memory leaks
-	This fixes some objcopy memory leaks.  commit 450da4bd38ae used
-	xatexit to tidy most of the hash table memory, but of course that's
-	ineffective without a call to xexit.  The other major memory leak
-	happens if there is an error of some sort writing the output file, due
-	to not closing the input file and thus not freeing memory attached to
-	the bfd.
-
-		* objcopy.c (copy_file): Don't return when bfd_close of output
-		gives an error, always bfd_close input too.
-		(main): Call xexit.
-
-2023-02-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-12  Tom Tromey  <tom@tromey.com>
-
-	Move some code from dwarf2/read.c to die.c
-	This patch introduces a new file, dwarf2/die.c, and moves some
-	DIE-related code out of dwarf2/read.c and into this new file.  This is
-	just a small part of the long-term project to split up read.c.
-	(According to 'wc', dwarf2/read.c is the largest file in gdb by around
-	8000 LOC.)
-
-	Regression tested on x86-64 Fedora 36.
-
-2023-02-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix describe_other_breakpoints for default task being -1
-	Commit:
-
-	  commit 2ecee236752932672fb3d6cd63c6976927f747d8
-	  CommitDate: Sun Feb 12 05:46:44 2023 +0000
-
-	      gdb: use -1 for breakpoint::task default value
-
-	Failed to take account of an earlier commit:
-
-	  commit f1f517e81039f6aa673b7d87a66bfbd25a66e3d3
-	  CommitDate: Sat Feb 11 17:36:24 2023 +0000
-
-	      gdb: show task number in describe_other_breakpoints
-
-	That both of these are my own commits is only more embarrassing.
-
-	This small fix updates describe_other_breakpoints to take account of
-	the default task number now being -1.  This fixes regressions in
-	gdb.base/break.exp, gdb.base/break-always.exp, and many other tests.
-
-2023-02-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/c++: fix handling of breakpoints on @plt symbols
-	This commit should fix PR gdb/20091, PR gdb/17201, and PR gdb/17071.
-	Additionally, PR gdb/17199 relates to this area of code, but is more
-	of a request to refactor some parts of GDB, this commit does not
-	address that request, but it is probably worth reading that PR when
-	looking at this commit.
-
-	When the current language is C++, and the user places a breakpoint on
-	a function in a shared library, GDB will currently find two locations
-	for the breakpoint, one location will be within the function itself as
-	we would expect, but the other location will be within the PLT table
-	for the call to the named function.  Consider this session:
-
-	  $ gdb -q /tmp/breakpoint-shlib-func
-	  Reading symbols from /tmp/breakpoint-shlib-func...
-	  (gdb) start
-	  Temporary breakpoint 1 at 0x40112e: file /tmp/breakpoint-shlib-func.cc, line 20.
-	  Starting program: /tmp/breakpoint-shlib-func
-
-	  Temporary breakpoint 1, main () at /tmp/breakpoint-shlib-func.cc:20
-	  20	  int answer = foo ();
-	  (gdb) break foo
-	  Breakpoint 2 at 0x401030 (2 locations)
-	  (gdb) info breakpoints
-	  Num     Type           Disp Enb Address            What
-	  2       breakpoint     keep y   <MULTIPLE>
-	  2.1                         y   0x0000000000401030 <foo()@plt>
-	  2.2                         y   0x00007ffff7fc50fd in foo() at /tmp/breakpoint-shlib-func-lib.cc:20
-
-	This is not the expected behaviour.  If we compile the same test using
-	a C compiler then we see this:
-
-	  (gdb) break foo
-	  Breakpoint 2 at 0x7ffff7fc50fd: file /tmp/breakpoint-shlib-func-c-lib.c, line 20.
-	  (gdb) info breakpoints
-	  Num     Type           Disp Enb Address            What
-	  2       breakpoint     keep y   0x00007ffff7fc50fd in foo at /tmp/breakpoint-shlib-func-c-lib.c:20
-
-	Here's what's happening.  When GDB parses the symbols in the main
-	executable and the shared library we see a number of different symbols
-	for foo, and use these to create entries in GDB's msymbol table:
-
-	  - In the main executable we see a symbol 'foo@plt' that points at
-	    the plt entry for foo, from this we add two entries into GDB's
-	    msymbol table, one called 'foo@plt' which points at the plt entry
-	    and has type mst_text, then we create a second symbol, this time
-	    called 'foo' with type mst_solib_trampoline which also points at
-	    the plt entry,
-
-	  - Then, when the shared library is loaded we see another symbol
-	    called 'foo', this one points at the actual implementation in the
-	    shared library.  This time GDB creates a msymbol called 'foo' with
-	    type mst_text that points at the implementation.
-
-	This means that GDB creates 3 msymbols to represent the 2 symbols
-	found in the executable and shared library.
-
-	When the user creates a breakpoint on 'foo' GDB eventually ends up in
-	search_minsyms_for_name (linespec.c), this function then calls
-	iterate_over_minimal_symbols passing in the name we are looking for
-	wrapped in a lookup_name_info object.
-
-	In iterate_over_minimal_symbols we iterate over two hash tables (using
-	the name we're looking for as the hash key), first we walk the hash
-	table of symbol linkage names, then we walk the hash table of
-	demangled symbol names.
-
-	When the language is C++ the symbols for 'foo' will all have been
-	mangled, as a result, in this case, the iteration of the linkage name
-	hash table will find no matching results.
-
-	However, when we walk the demangled hash table we do find some
-	results.  In order to match symbol names, GDB obtains a symbol name
-	matching function by calling the get_symbol_name_matcher method on the
-	language_defn class.  For C++, in this case, the matching function we
-	use is cp_fq_symbol_name_matches, which delegates the work to
-	strncmp_iw_with_mode with mode strncmp_iw_mode::MATCH_PARAMS and
-	language set to language_cplus.
-
-	The strncmp_iw_mode::MATCH_PARAMS mode means that strncmp_iw_mode will
-	skip any parameters in the demangled symbol name when checking for a
-	match, e.g. 'foo' will match the demangled name 'foo()'.  The way this
-	is done is that the strings are matched character by character, but,
-	once the string we are looking for ('foo' here) is exhausted, if we
-	are looking at '(' then we consider the match a success.
-
-	Lets consider the 3 symbols GDB created.  If the function declaration
-	is 'void foo ()' then from the main executable we added symbols
-	'_Z3foov@plt' and '_Z3foov', while from the shared library we added
-	another symbol call '_Z3foov'.  When these are demangled they become
-	'foo()@plt', 'foo()', and 'foo()' respectively.
-
-	Now, the '_Z3foov' symbol from the main executable has the type
-	mst_solib_trampoline, and in search_minsyms_for_name, we search for
-	any symbols of type mst_solib_trampoline and filter these out of the
-	results.
-
-	However, the '_Z3foov@plt' symbol (from the main executable), and the
-	'_Z3foov' symbol (from the shared library) both have type mst_text.
-
-	During the demangled name matching, due to the use of MATCH_PARAMS
-	mode, we stop the comparison as soon as we hit a '(' in the demangled
-	name.  And so, '_Z3foov@plt', which demangles to 'foo()@plt' matches
-	'foo', and '_Z3foov', which demangles to 'foo()' also matches 'foo'.
-
-	By contrast, for C, there are no demangled hash table entries to be
-	iterated over (in iterate_over_minimal_symbols), we only consider the
-	linkage name symbols which are 'foo@plt' and 'foo'.  The plain 'foo'
-	symbol obviously matches when we are looking for 'foo', but in this
-	case the 'foo@plt' will not match due to the '@plt' suffix.
-
-	And so, when the user asks for a breakpoint in 'foo', and the language
-	is C, search_minsyms_for_name, returns a single msymbol, the mst_text
-	symbol for foo in the shared library, while, when the language is C++,
-	we get two results, '_Z3foov' for the shared library function, and
-	'_Z3foov@plt' for the plt entry in the main executable.
-
-	I propose to fix this in strncmp_iw_with_mode.  When the mode is
-	MATCH_PARAMS, instead of stopping at a '(' and assuming the match is a
-	success, GDB will instead search forward for the matching, closing,
-	')', effectively skipping the parameter list, and then resume
-	matching.  Thus, when comparing 'foo' to 'foo()@plt' GDB will
-	effectively compare against 'foo@plt' (skipping the parameter list),
-	and the match will fail, just as it does when the language is C.
-
-	There is one slight complication, which is revealed by the test
-	gdb.linespec/cpcompletion.exp, when searching for the symbol of a
-	const member function, the demangled symbol will have 'const' at the
-	end of its name, e.g.:
-
-	  struct_with_const_overload::const_overload_fn() const
-
-	Previously, the matching would stop at the '(' character, but after my
-	change the whole '()' is skipped, and the match resumes.  As a result,
-	the 'const' modifier results in a failure to match, when previously
-	GDB would have found a match.
-
-	To work around this issue, in strncmp_iw_with_mode, when mode is
-	MATCH_PARAMS, after skipping the parameter list, if the next character
-	is '@' then we assume we are looking at something like '@plt' and
-	return a value indicating the match failed, otherwise, we return a
-	value indicating the match succeeded, this allows things like 'const'
-	to be skipped.
-
-	With these changes in place I now see GDB correctly setting a
-	breakpoint only at the implementation of 'foo' in the shared library.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20091
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17201
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17071
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17199
-
-	Tested-By: Bruno Larsen <blarsen@redhat.com>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: use -1 for breakpoint::task default value
-	Within the breakpoint struct we have two fields ::thread and ::task
-	which are used for thread or task specific breakpoints.  When a
-	breakpoint doesn't have a specific thread or task then these fields
-	have the values -1 and 0 respectively.
-
-	There's no particular reason (as far as I can tell) why these two
-	"default" values are different, and I find the difference a little
-	confusing.  Long term I'd like to potentially fold these two fields
-	into a single field, but that isn't what this commit does.
-
-	What this commit does is switch to using -1 as the "default" value for
-	both fields, this means that the default for breakpoint::task has
-	changed from 0 to -1.   I've updated all the code I can find that
-	relied on the value of 0, and I see no test regressions, especially in
-	gdb.ada/tasks.exp, which still fully passes.
-
-	There should be no user visible changes after this commit.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: only allow one of thread or task on breakpoints or watchpoints
-	After this mailing list posting:
-
-	  https://sourceware.org/pipermail/gdb-patches/2023-February/196607.html
-
-	it seems to me that in practice an Ada task maps 1:1 with a GDB
-	thread, and so it doesn't really make sense to allow uses to give both
-	a thread and a task within a single breakpoint or watchpoint
-	condition.
-
-	This commit updates GDB so that the user will get an error if both
-	are specified.
-
-	I've added new tests to cover the CLI as well as the Python and Guile
-	APIs.  For the Python and Guile testing, as far as I can tell, this
-	was the first testing for this corner of the APIs, so I ended up
-	adding more than just a single test.
-
-	For documentation I've added a NEWS entry, but I've not added anything
-	to the docs themselves.  Currently we document the commands with a
-	thread-id or task-id as distinct command, e.g.:
-
-	  'break LOCSPEC task TASKNO'
-	  'break LOCSPEC task TASKNO if ...'
-	  'break LOCSPEC thread THREAD-ID'
-	  'break LOCSPEC thread THREAD-ID if ...'
-
-	As such, I don't believe there is any indication that combining 'task'
-	and 'thread' would be expected to work; it seems clear to me in the
-	above that those four options are all distinct commands.
-
-	I think the NEWS entry is enough that if someone is combining these
-	keywords (it's not clear what the expected behaviour would be in this
-	case) then they can figure out that this was a deliberate change in
-	GDB, but for a new user, the manual doesn't suggest combining them is
-	OK, and any future attempt to combine them will give an error.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: show task number in describe_other_breakpoints
-	I noticed that describe_other_breakpoints doesn't show the task
-	number, but does show the thread-id.  I can't see any reason why we'd
-	want to not show the task number in this situation, so this commit
-	adds this missing information, and extends gdb.ada/tasks.exp to check
-	this case.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't print global thread-id to CLI in describe_other_breakpoints
-	I noticed that describe_other_breakpoints was printing the global
-	thread-id to the CLI.  For CLI output we should be printing the
-	inferior local thread-id (e.g. "2.1").  This can be seen in the
-	following GDB session:
-
-	  (gdb) info threads
-	    Id   Target Id                                Frame
-	    1.1  Thread 4065742.4065742 "bp-thread-speci" main () at /tmp/bp-thread-specific.c:27
-	  * 2.1  Thread 4065743.4065743 "bp-thread-speci" main () at /tmp/bp-thread-specific.c:27
-	  (gdb) break foo thread 2.1
-	  Breakpoint 3 at 0x40110a: foo. (2 locations)
-	  (gdb) break foo thread 1.1
-	  Note: breakpoint 3 (thread 2) also set at pc 0x40110a.
-	  Note: breakpoint 3 (thread 2) also set at pc 0x40110a.
-	  Breakpoint 4 at 0x40110a: foo. (2 locations)
-
-	Notice that GDB says:
-
-	  Note: breakpoint 3 (thread 2) also set at pc 0x40110a.
-
-	The 'thread 2' in here is using the global thread-id, we should
-	instead say 'thread 2.1' which corresponds to how the user specified
-	the breakpoint.
-
-	This commit fixes this issue and adds a test.
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add test for readline handling very long commands
-	The test added in this commit tests for a long fixed readline issue
-	relating to long command lines.  A similar patch has existed in the
-	Fedora GDB tree for several years, but I don't see any reason why this
-	test would not be suitable for inclusion in upstream GDB.  I've
-	updated the patch to current testsuite standards.
-
-	The test is checking for an issue that was fixed by this readline
-	patch:
-
-	  https://lists.gnu.org/archive/html/bug-readline/2006-11/msg00002.html
-
-	Which was merged into readline 6.0 (released ~2010).  The issue was
-	triggered when the user enters a long command line, which wrapped over
-	multiple terminal lines.  The crash looks like this:
-
-	  free(): invalid pointer
-
-	  Fatal signal: Aborted
-	  ----- Backtrace -----
-	  0x4fb583 gdb_internal_backtrace_1
-	          ../../src/gdb/bt-utils.c:122
-	  0x4fb583 _Z22gdb_internal_backtracev
-	          ../../src/gdb/bt-utils.c:168
-	  0x6047b9 handle_fatal_signal
-	          ../../src/gdb/event-top.c:964
-	  0x7f26e0cc56af ???
-	  0x7f26e0cc5625 ???
-	  0x7f26e0cae8d8 ???
-	  0x7f26e0d094be ???
-	  0x7f26e0d10aab ???
-	  0x7f26e0d124ab ???
-	  0x7f26e1d32e12 rl_free_undo_list
-	          ../../readline-5.2/undo.c:119
-	  0x7f26e1d229eb readline_internal_teardown
-	          ../../readline-5.2/readline.c:405
-	  0x7f26e1d3425f rl_callback_read_char
-	          ../../readline-5.2/callback.c:197
-	  0x604c0d gdb_rl_callback_read_char_wrapper_noexcept
-	          ../../src/gdb/event-top.c:192
-	  0x60581d gdb_rl_callback_read_char_wrapper
-	          ../../src/gdb/event-top.c:225
-	  0x60492f stdin_event_handler
-	          ../../src/gdb/event-top.c:545
-	  0xa60015 gdb_wait_for_event
-	          ../../src/gdbsupport/event-loop.cc:694
-	  0xa6078d gdb_wait_for_event
-	          ../../src/gdbsupport/event-loop.cc:593
-	  0xa6078d _Z16gdb_do_one_eventi
-	          ../../src/gdbsupport/event-loop.cc:264
-	  0x6fc459 start_event_loop
-	          ../../src/gdb/main.c:411
-	  0x6fc459 captured_command_loop
-	          ../../src/gdb/main.c:471
-	  0x6fdce4 captured_main
-	          ../../src/gdb/main.c:1310
-	  0x6fdce4 _Z8gdb_mainP18captured_main_args
-	          ../../src/gdb/main.c:1325
-	  0x44f694 main
-	          ../../src/gdb/gdb.c:32
-	  ---------------------
-
-	I recreated the above crash by a little light hacking on GDB, and then
-	linking GDB against readline 5.2.  The above stack trace was generated
-	from the test included in this patch, and matches the trace that was
-	included in the original bug report.
-
-	It is worth acknowledging that without hacking things GDB has a
-	minimum requirement of readline 7.0.  This test is not about checking
-	whether GDB has been built against an older version of readline, it is
-	about checking that readline doesn't regress in this area.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove unnecessary 'dir' commands from gdb-gdb.gdb script
-	While debugging GDB I used 'show directories' and spotted lots of
-	entries that didn't make much sense. Here are all the entries that are
-	in my directories list:
-
-	  /tmp/binutils-gdb/build
-	  /tmp/binutils-gdb/build/../../src/gdb
-	  /tmp/binutils-gdb/build/../../src/gdb/../bfd
-	  /tmp/binutils-gdb/build/../../src/gdb/../libiberty
-	  $cdir
-	  $cwd
-
-	Notice the second, third, and fourth entries in this list, these
-	should really be:
-
-	  /tmp/binutils-gdb/build/../src/gdb
-	  /tmp/binutils-gdb/build/../src/gdb/../bfd
-	  /tmp/binutils-gdb/build/../src/gdb/../libiberty
-
-	The problem is because I generally run everything from the top level
-	build directory, not the gdb/ sub-directory, thus, I start GDB like:
-
-	  ./gdb/gdb --data-directory ./gdb/data-directory
-
-	If run GDB under GDB, then I end up loading the gdb/gdb-gdb.gdb
-	script, which contains these lines:
-
-	  dir ../../src/gdb/../libiberty
-	  dir ../../src/gdb/../bfd
-	  dir ../../src/gdb
-	  dir .
-
-	These commands only make sense when running within the gdb/
-	sub-directory.
-
-	However, my debugging experience doesn't seem to be degraded at all, I
-	can still see the GDB source code just fine; which is because the
-	directory list still contains $cdir.
-
-	The build/gdb/gdb-gdb.gdb script is created from the
-	src/gdb/gdb-gdb.gdb.in template, which includes the automake @srcdir@
-	markers.
-
-	The 'dir' commands have mostly been around since the sourceware
-	repository was first created, though this commit 67f0714670383a did
-	reorder some of the 'dir' commands, which would seem to indicate these
-	commands were important to some people, at some time.
-
-	One possible fix would be to replace @srcdir@ with @abs_srcdir@, this
-	would ensure that the entries added were all valid, no matter the
-	user's current directory when debugging GDB.
-
-	However... I'd like to propose that we instead remove all the extra
-	directories completely.  My hope is that, with more recent tools, the
-	debug information should allow us to correctly find all of the source
-	files without having to add any extra 'dir' entries.  Obviously,
-	commit 67f0714670383a does make me a little nervous, but the
-	gdb-gdb.gdb script isn't something a non-maintainer will be using, so
-	I think we can afford to be a little more aggressive here.  If it
-	turns out the 'dir' entries are needed then we can add them back, but
-	actually document why they are needed.  Plus, when we add them back we
-	will use @abs_srcdir@ instead of @srcdir@.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2023-02-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Don't use i386 unwinder for amd64
-	For i386 we have these unwinders:
-	...
-	$ gdb -q -batch -ex "set arch i386" -ex "maint info frame-unwinders"
-	The target architecture is set to "i386".
-	dummy                   DUMMY_FRAME
-	dwarf2 tailcall         TAILCALL_FRAME
-	inline                  INLINE_FRAME
-	i386 epilogue           NORMAL_FRAME
-	dwarf2                  NORMAL_FRAME
-	dwarf2 signal           SIGTRAMP_FRAME
-	i386 stack tramp        NORMAL_FRAME
-	i386 sigtramp           SIGTRAMP_FRAME
-	i386 prologue           NORMAL_FRAME
-	...
-	and for amd64:
-	...
-	$ gdb -q -batch -ex "set arch i386:x86-64" -ex "maint info frame-unwinders"
-	The target architecture is set to "i386:x86-64".
-	dummy                   DUMMY_FRAME
-	dwarf2 tailcall         TAILCALL_FRAME
-	inline                  INLINE_FRAME
-	python                  NORMAL_FRAME
-	amd64 epilogue          NORMAL_FRAME
-	i386 epilogue           NORMAL_FRAME
-	dwarf2                  NORMAL_FRAME
-	dwarf2 signal           SIGTRAMP_FRAME
-	amd64 sigtramp          SIGTRAMP_FRAME
-	amd64 prologue          NORMAL_FRAME
-	i386 stack tramp        NORMAL_FRAME
-	i386 sigtramp           SIGTRAMP_FRAME
-	i386 prologue           NORMAL_FRAME
-	...
-
-	ISTM me there's no reason for the i386 unwinders to be there for amd64.
-
-	Furthermore, there's a generic need to play around with enabling and disabling
-	unwinders, see PR8434.  Currently, that's only available for both the dwarf2
-	unwinders at once using "maint set dwarf unwinders on/off".
-
-	If I manually disable the "amd64 epilogue" unwinder, the "i386 epilogue"
-	unwinder becomes active and gives the wrong answer, while I'm actually
-	interested in the result of the dwarf2 unwinder.  Of course I can also
-	manually disable the "i386 epilogue", but I take the fact that I have to do
-	that as evidence that on amd64, the "i386 epilogue" is not only unnecessary,
-	but in the way.
-
-	Fix this by only adding the i386 unwinders if
-	"info.bfd_arch_info->bits_per_word == 32".
-
-	Note that the x32 abi (x86_64/-mx32):
-	- has the same unwinder list as amd64 (x86_64/-m64) before this commit,
-	- has info.bfd_arch_info->bits_per_word == 64, the same as amd64, and
-	  consequently,
-	- has the same unwinder list as amd64 after this commit.
-
-	Tested on x86_64-linux, -m64 and -m32.  Not tested with -mx32.
-
-	Reviewed-By: John Baldwin <jhb@freebsd.org>
-
-	PR tdep/30102
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30102
-
-2023-02-11  Alan Modra  <amodra@gmail.com>
-
-	objdump -D of bss sections and -s with -j
-	There is some inconsistency between the behaviour of objdump -D and
-	objdump -s, both supposedly operating on all sections by default.
-	objdump -s ignores bss sections, while objdump -D dissassembles the
-	zeros.  Fix this by making objdump -D ignore bss sections too.
-
-	Furthermore, "objdump -s -j .bss" doesn't dump .bss as it should,
-	since the user is specifically asking to look at all those zeros.
-
-	This change does find some tests that used objdump -D with expected
-	output in bss-style sections.  I've updated all the msp430 tests that
-	just wanted to find a non-empty section to look at section headers
-	instead, making the tests slightly more stringent.  The ppc xcoff and
-	spu tests are fixed by adding -j options to objdump, which makes the
-	tests somewhat more lenient.
-
-	binutils/
-		* objdump.c (disassemble_section): Ignore sections without
-		contents, unless overridden by -j.
-		(dump_section): Allow -j to override the default of not
-		displaying sections without contents.
-		* doc/binutils.texi (objdump options): Update -D, -s and -j
-		description.
-	gas/
-		* testsuite/gas/ppc/xcoff-tls-32.d: Select wanted objdump
-		sections with -j.
-		* testsuite/gas/ppc/xcoff-tls-64.d: Likewise.
-	ld/
-		* testsuite/ld-msp430-elf/main-bss-lower.d,
-		* testsuite/ld-msp430-elf/main-bss-upper.d,
-		* testsuite/ld-msp430-elf/main-const-lower.d,
-		* testsuite/ld-msp430-elf/main-const-upper.d,
-		* testsuite/ld-msp430-elf/main-text-lower.d,
-		* testsuite/ld-msp430-elf/main-text-upper.d,
-		* testsuite/ld-msp430-elf/main-var-lower.d,
-		* testsuite/ld-msp430-elf/main-var-upper.d: Expect -wh output.
-		* testsuite/ld-msp430-elf/msp430-elf.exp: Use objdump -wh
-		rather than objdump -D or objdump -d with tests checking for
-		non-empty given sections.
-		* testsuite/ld-spu/ear.d,
-		* testsuite/ld-spu/icache1.d,
-		* testsuite/ld-spu/ovl.d,
-		* testsuite/ld-spu/ovl2.d: Select wanted objdump sections.
-
-2023-02-11  Alan Modra  <amodra@gmail.com>
-
-	.debug sections without contents
-		* dwarf1.c (_bfd_dwarf1_find_nearest_line): Exclude .debug
-		sections without contents.
-
-2023-02-11  Aaron Merey  <amerey@redhat.com>
-
-	gdb/source: Fix open_source_file error handling
-	open_source_file relies on errno to communicate the reason for a missing
-	source file.
-
-	open_source_file may also call debuginfod_find_source.  It is possible
-	for debuginfod_find_source to set errno to a value unrelated to the
-	reason for a failed download.
-
-	This can result in bogus error messages being reported as the reason for
-	a missing source file.  The following error message should instead be
-	"No such file or directory":
-
-	  Temporary breakpoint 1, 0x00005555556f4de0 in main ()
-	  (gdb) list
-	  Downloading source file /usr/src/debug/glibc-2.36-8.fc37.x86_64/elf/<built-in>
-	  1       /usr/src/debug/glibc-2.36-8.fc37.x86_64/elf/<built-in>: Directory not empty.
-
-	Fix this by having open_source_file return a negative errno if it fails
-	to open a source file.  Use this value to generate the error message
-	instead of errno.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29999
-
-2023-02-11  Aaron Merey  <amerey@redhat.com>
-
-	Move implementation of perror_with_name to gdbsupport
-	gdbsupport/errors.h declares perror_with_name and leaves the
-	implementation to the clients.
-
-	However gdb and gdbserver's implementations are essentially the
-	same, resulting in unnecessary code duplication.
-
-	Fix this by implementing perror_with_name in gdbsupport.  Add an
-	optional parameter for specifying the errno used to generate the
-	error message.
-
-	Also move the implementation of perror_string to gdbsupport since
-	perror_with_name requires it.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-10  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	GDB: Introduce limited array lengths while printing values
-	This commit introduces the idea of loading only part of an array in
-	order to print it, what I call "limited length" arrays.
-
-	The motivation behind this work is to make it possible to print slices
-	of very large arrays, where very large means bigger than
-	`max-value-size'.
-
-	Consider this GDB session with the current GDB:
-
-	  (gdb) set max-value-size 100
-	  (gdb) p large_1d_array
-	  value requires 400 bytes, which is more than max-value-size
-	  (gdb) p -elements 10 -- large_1d_array
-	  value requires 400 bytes, which is more than max-value-size
-
-	notice that the request to print 10 elements still fails, even though 10
-	elements should be less than the max-value-size.  With a patched version
-	of GDB:
-
-	  (gdb) p -elements 10 -- large_1d_array
-	  $1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9...}
-
-	So now the print has succeeded.  It also has loaded `max-value-size'
-	worth of data into value history, so the recorded value can be accessed
-	consistently:
-
-	  (gdb) p -elements 10 -- $1
-	  $2 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9...}
-	  (gdb) p $1
-	  $3 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-	    20, 21, 22, 23, 24, <unavailable> <repeats 75 times>}
-	  (gdb)
-
-	Accesses with other languages work similarly, although for Ada only
-	C-style [] array element/dimension accesses use history.  For both Ada
-	and Fortran () array element/dimension accesses go straight to the
-	inferior, bypassing the value history just as with C pointers.
-
-	Co-Authored-By: Maciej W. Rozycki <macro@embecosm.com>
-
-2023-02-10  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/testsuite: Add `-nonl' option to `gdb_test'
-	Add a `-nonl' option to `gdb_test' making it possible to match output
-	from commands such as `output' that do not produce a new line sequence
-	at the end, e.g.:
-
-	  (gdb) output 0
-	  0(gdb)
-
-2023-02-10  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Only make data actually retrieved into value history available
-	While it makes sense to allow accessing out-of-bounds elements in the
-	debuggee and see whatever there might happen to be there in memory (we
-	are a debugger and not a programming rules enforcement facility and we
-	want to make people's life easier in chasing bugs), e.g.:
-
-	  (gdb) print one_hundred[-1]
-	  $1 = 0
-	  (gdb) print one_hundred[100]
-	  $2 = 0
-	  (gdb)
-
-	we shouldn't really pretend that we have any meaningful data around
-	values recorded in history (what these commands really retrieve are
-	current debuggee memory contents outside the original data accessed,
-	really confusing in my opinion).  Mark values recorded in history as
-	such then and verify accesses to be in-range for them:
-
-	  (gdb) print one_hundred[-1]
-	  $1 = <unavailable>
-	  (gdb) print one_hundred[100]
-	  $2 = <unavailable>
-
-	Add a suitable test case, which also covers integer overflows in data
-	location calculation.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-10  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Fix the mess with value byte/bit range types
-	Consistently use the LONGEST and ULONGEST types for value byte/bit
-	offsets and lengths respectively, avoiding silent truncation for ranges
-	exceeding the 32-bit span, which may cause incorrect matching.  Also
-	report a conversion overflow on byte ranges that cannot be expressed in
-	terms of bits with these data types, e.g.:
-
-	  (gdb) print one_hundred[1LL << 58]
-	  Integer overflow in data location calculation
-	  (gdb) print one_hundred[(-1LL << 58) - 1]
-	  Integer overflow in data location calculation
-	  (gdb)
-
-	Previously such accesses would be let through with unpredictable results
-	produced.
-
-2023-02-10  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Ignore `max-value-size' setting with value history accesses
-	We have an inconsistency in value history accesses where array element
-	accesses cause an error for entries exceeding the currently selected
-	`max-value-size' setting even where such accesses successfully complete
-	for elements located in the inferior, e.g.:
-
-	  (gdb) p/d one
-	  $1 = 0
-	  (gdb) p/d one_hundred
-	  $2 = {0 <repeats 100 times>}
-	  (gdb) p/d one_hundred[99]
-	  $3 = 0
-	  (gdb) set max-value-size 25
-	  (gdb) p/d one_hundred
-	  value requires 100 bytes, which is more than max-value-size
-	  (gdb) p/d one_hundred[99]
-	  $7 = 0
-	  (gdb) p/d $2
-	  value requires 100 bytes, which is more than max-value-size
-	  (gdb) p/d $2[99]
-	  value requires 100 bytes, which is more than max-value-size
-	  (gdb)
-
-	According to our documentation the `max-value-size' setting is a safety
-	guard against allocating an overly large amount of memory.  Moreover a
-	statement in documentation says, concerning this setting, that: "Setting
-	this variable does not affect values that have already been allocated
-	within GDB, only future allocations."  While in the implementer-speak
-	the sentence may be unambiguous I think the outside user may well infer
-	that the setting does not apply to values previously printed.
-
-	Therefore rather than just fixing this inconsistency it seems reasonable
-	to lift the setting for value history accesses, under an implication
-	that by having been retrieved from the debuggee they have already passed
-	the safety check.  Do it then, by suppressing the value size check in
-	`value_copy' -- under an observation that if the original value has been
-	already loaded (i.e. it's not lazy), then it must have previously passed
-	said check -- making the last two commands succeed:
-
-	  (gdb) p/d $2
-	  $8 = {0 <repeats 100 times>}
-	  (gdb) p/d $2 [99]
-	  $9 = 0
-	  (gdb)
-
-	Expand the testsuite accordingly, covering both value history handling
-	and the use of `value_copy' by `make_cv_value', used by Python code.
-
-2023-02-10  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Switch to using C++ standard integer type limits
-	Use <climits> instead of <limits.h> and ditch local fallback definitions
-	for minimum and maximum value macros provided by C++11.  Add LONGEST_MAX
-	and LONGEST_MIN definitions.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-10  Tom Tromey  <tromey@adacore.com>
-
-	Ensure all DAP requests are keyword-only
-	Python functions implementing DAP requests should not use positional
-	parameters -- it only makes sense to call them with keyword arguments.
-	This patch changes the few remaining cases to start with the special
-	"*" parameter, following this rule.
-
-2023-02-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: fix gdb.gdb/selftest.exp for native-extended-gdbserver
-	Following commit 4e2a80ba606 ("gdb/testsuite: expect SIGSEGV from top
-	GDB spawn id"), the next failure I get in gdb.gdb/selftest.exp, using
-	the native-extended-gdbserver, is:
-
-	    (gdb) PASS: gdb.gdb/selftest.exp: send ^C to child process
-	    signal SIGINT
-	    Continuing with signal SIGINT.
-	    FAIL: gdb.gdb/selftest.exp: send SIGINT signal to child process (timeout)
-
-	The problem is that in this gdb_test_multiple:
-
-	    set description "send SIGINT signal to child process"
-	    gdb_test_multiple "signal SIGINT" "$description" {
-		-re "^signal SIGINT\r\nContinuing with signal SIGINT.\r\nQuit\r\n.* $" {
-		    pass "$description"
-		}
-	    }
-
-	The "Continuing with signal SIGINT" portion is printed by the top GDB,
-	while the Quit portion is printed by the bottom GDB.  As the
-	gdb_test_multiple is written, it expects both the the top GDB's spawn
-	id.
-
-	Fix this by splitting the gdb_test_multiple in two.  The first one
-	expects the "Continuing with signal SIGINT" from the top GDB.  The
-	second one expect "Quit"  and the "(xgdb)" prompt from
-	$inferior_spawn_id.  When debugging natively, this spawn id will be the
-	same as the top GDB's spawn id, but it's different when debugging with
-	GDBserver.
-
-	Change-Id: I689bd369a041b48f4dc9858d38bf977d09600da2
-
-2023-02-10  Tom Tromey  <tom@tromey.com>
-
-	Use std::string in main_info
-	This changes main_info to use std::string.  It removes some manual
-	memory management.
-
-2023-02-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix linespec ambiguity in gdb.base/longjmp.exp
-	PR testsuite/30103 reports the following failure on aarch64-linux
-	(ubuntu 22.04):
-	...
-	(gdb) PASS: gdb.base/longjmp.exp: with_probes=0: pattern 1: next to longjmp
-	next
-	warning: Breakpoint address adjusted from 0x83dc305fef755015 to \
-	  0xffdc305fef755015.
-	Warning:
-	Cannot insert breakpoint 0.
-	Cannot access memory at address 0xffdc305fef755015
-
-	__libc_siglongjmp (env=0xaaaaaaab1018 <env>, val=1) at ./setjmp/longjmp.c:30
-	30	}
-	(gdb) KFAIL: gdb.base/longjmp.exp: with_probes=0: pattern 1: gdb/26967 \
-	  (PRMS: next over longjmp)
-	delete breakpoints
-	Delete all breakpoints? (y or n) y
-	(gdb) info breakpoints
-	No breakpoints or watchpoints.
-	(gdb) break 63
-	No line 63 in the current file.
-	Make breakpoint pending on future shared library load? (y or [n]) n
-	(gdb) FAIL: gdb.base/longjmp.exp: with_probes=0: pattern 2: setup: breakpoint \
-	  at pattern start (got interactive prompt)
-	...
-
-	The test-case intends to set the breakpoint on line number 63 in
-	gdb.base/longjmp.c.
-
-	It tries to do so by specifying "break 63", which specifies a line in the
-	"current source file".
-
-	Due to the KFAIL PR, gdb stopped in __libc_siglongjmp, and because of presence
-	of debug info, the "current source file" becomes glibc's ./setjmp/longjmp.c.
-
-	Consequently, setting the breakpoint fails.
-
-	Fix this by adding a $subdir/$srcfile: prefix to the breakpoint linespecs.
-
-	I've managed to reproduce the FAIL on x86_64/-m32, by installing the
-	glibc-32bit-debuginfo package.  This allowed me to confirm the "current source
-	file" that is used:
-	...
-	(gdb) KFAIL: gdb.base/longjmp.exp: with_probes=0: pattern 1: gdb/26967 \
-	  (PRMS: next over longjmp)
-	info source^M
-	Current source file is ../setjmp/longjmp.c^M
-	...
-
-	Tested on x86_64-linux, target boards unix/{-m64,-m32}.
-
-	Reported-By: Luis Machado <luis.machado@arm.com>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-	PR testsuite/30103
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30103
-
-2023-02-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Add maint info frame-unwinders
-	Add a new command "maint info frame-unwinders":
-	...
-	(gdb) help maint info frame-unwinders
-	List the frame unwinders currently in effect, starting with the highest \
-	  priority.
-	...
-
-	Output for i386:
-	...
-	$ gdb -q -batch -ex "set arch i386" -ex "maint info frame-unwinders"
-	The target architecture is set to "i386".
-	dummy                   DUMMY_FRAME
-	dwarf2 tailcall         TAILCALL_FRAME
-	inline                  INLINE_FRAME
-	i386 epilogue           NORMAL_FRAME
-	dwarf2                  NORMAL_FRAME
-	dwarf2 signal           SIGTRAMP_FRAME
-	i386 stack tramp        NORMAL_FRAME
-	i386 sigtramp           SIGTRAMP_FRAME
-	i386 prologue           NORMAL_FRAME
-	...
-
-	Output for x86_64:
-	...
-	$ gdb -q -batch -ex "set arch i386:x86-64" -ex "maint info frame-unwinders"
-	The target architecture is set to "i386:x86-64".
-	dummy                   DUMMY_FRAME
-	dwarf2 tailcall         TAILCALL_FRAME
-	inline                  INLINE_FRAME
-	python                  NORMAL_FRAME
-	amd64 epilogue          NORMAL_FRAME
-	i386 epilogue           NORMAL_FRAME
-	dwarf2                  NORMAL_FRAME
-	dwarf2 signal           SIGTRAMP_FRAME
-	amd64 sigtramp          SIGTRAMP_FRAME
-	amd64 prologue          NORMAL_FRAME
-	i386 stack tramp        NORMAL_FRAME
-	i386 sigtramp           SIGTRAMP_FRAME
-	i386 prologue           NORMAL_FRAME
-	...
-
-	Tested on x86_64-linux.
-
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-
-2023-02-10  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Reduce effective linker relaxation passses
-	Commit 43025f01a0c9 ("RISC-V: Improve link time complexity.") reduced the
-	time complexity of the linker relaxation but some code portions did not
-	reflect this change.
-
-	This commit fixes a comment describing each relaxation pass and reduces
-	actual number of passes for the RISC-V linker relaxation from 3 to 2.
-	Though it does not change the functionality, it marginally improves the
-	performance while linking large programs (with many relocations).
-
-	bfd/ChangeLog:
-
-		* elfnn-riscv.c (_bfd_riscv_relax_section): Fix a comment to
-		reflect current roles of each relaxation pass.
-
-	ld/ChangeLog:
-
-		* emultempl/riscvelf.em: Reduce the number of linker relaxation
-		passes from 3 to 2.
-
-2023-02-10  Alan Modra  <amodra@gmail.com>
-
-	Fix mmo memory leaks
-	The main one here is the section buffer, which can be quite large.
-	By using alloc rather than malloc we can leave tidying memory to the
-	generic bfd code when the bfd is closed.  bfd_check_format also
-	releases memory when object_p fails, so while it wouldn't be wrong
-	to bfd_release at bad_format_free in mmo_object_p, it's a little extra
-	code and work for no gain.
-
-		* mmo.c (mmo_object_p): bfd_alloc rather than bfd_malloc
-		lop_stab_symbol.  Don't free/release on error.
-		(mmo_get_spec_section): bfd_zalloc rather than bfd_zmalloc
-		section buffer.
-		(mmo_scan): Free fname on another error path.
-
-2023-02-10  Alan Modra  <amodra@gmail.com>
-
-	Local label checks in integer_constant
-	"Local labels are never absolute" says the comment.  Except when they
-	are.  Testcase
-	 .offset
-	0:
-	 a=0b
-	I don't see any particular reason to disallow local labels inside
-	struct definitions, so delete the comment and assertions.
-
-		* expr.c (integer_constant): Delete local label assertions.
-
-2023-02-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop use of VEX3SOURCES
-	The attribute really specifies that the sum of register and memory
-	operands is 4. Express it like that in most places, while using the 2nd
-	(apart from XOP) CPU feature flags (FMA4) in reversed operand matching
-	logic.
-
-	With the use in build_modrm_byte() gone, part of an assertion there
-	also becomes meaningless - simplify that at the same time.
-
-	With all uses of the opcode modifier field gone, also drop that.
-
-2023-02-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop use of XOP2SOURCES
-	The few XOP insns which used it wrongly didn't have VexVVVV specified.
-	With that added, the only further missing piece to use more generic code
-	elsewhere is SwapSources - see e.g. the BMI2 insns for similar operand
-	patterns.
-
-	With the only users gone, drop the #define as well as the special case
-	code.
-
-2023-02-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: limit use of XOP2SOURCES
-	The VPROT* forms with an immediate operand are entirely standard in the
-	way their ModR/M bytes are built. There's no reason to invoke special
-	case code. With that the handling of an immediate there can also be
-	dropped; it was partially bogus anyway, as in its "no memory operands"
-	portion it ignores the possibility of an immediate operand (which was
-	okay only because that case was already handled by more generic code).
-
-2023-02-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move (and rename) opcodespace attribute
-	This really isn't a "modifier" and rather ought to live next to the base
-	opcode anyway. Use the bits we presently have available to fit in the
-	field, renaming it to opcode_space. As an intended side effect this
-	helps readability at the use sites, by shortening the references quite a
-	bit.
-
-	In generated code arrange for human readable output, by using the
-	SPACE_* constants there rather than raw numbers. This may aid debugging
-	down the road.
-
-2023-02-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: simplify a few expressions
-	Fold adjacent comparisons when, by ORing in a certain mask, the same
-	effect can be achieved by a single one. In load_insn_p() this extends
-	to further uses of an already available local variable.
-
-2023-02-10  Jan Beulich  <jbeulich@suse.com>
-
-	x86: improve special casing of certain insns
-	Now that we have identifiers for the mnemonic strings we can avoid
-	opcode based comparisons, for (in many cases) being more expensive and
-	(in a few cases) being a little fragile and not self-documenting.
-
-	Note that the MOV optimization can be engaged by the earlier LEA one,
-	and hence LEA also needs checking for there.
-
-2023-02-10  Alan Modra  <amodra@gmail.com>
-
-	objcopy of mach-o indirect symbols
-	Anti-fuzzer measure.  I'm not sure what the correct fix is for
-	objcopy.  Probably the BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS,
-	BFD_MACH_O_S_LAZY_SYMBOL_POINTERS and BFD_MACH_O_S_SYMBOL_STUBS
-	contents should be read.
-
-		* mach-o.c (bfd_mach_o_section_get_nbr_indirect): Omit sections
-		with NULL sec->indirect_syms.
-
-2023-02-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-09  Tom Tromey  <tromey@adacore.com>
-
-	Add full display feature to dwarf-mode.el
-	I've found that I often use dwarf-mode with relatively small test
-	files.  In this situation, it's handy to be able to expand all the
-	DWARF, rather than moving to each "..." separately and using C-u C-m.
-
-	This patch implements this feature.  It also makes a couple of other
-	minor changes:
-
-	* I removed a stale FIXME from dwarf-mode.  In practice I find I often
-	  use "g" to restore the buffer to a pristine state; checking the file
-	  mtime would work against this.
-
-	* I tightened the regexp in dwarf-insert-substructure.  This prevents
-	  the C-m binding from trying to re-read a DIE which has already been
-	  expanded.
-
-	* Finally, I've bumped the dwarf-mode version number so that this
-	  version can easily be installed using package.el.
-
-	2023-02-09  Tom Tromey  <tromey@adacore.com>
-
-		* dwarf-mode.el: Bump version to 1.8.
-		(dwarf-insert-substructure): Tighten regexp.
-		(dwarf-refresh-all): New defun.
-		(dwarf-mode-map): Bind "A" to dwarf-refresh-all.
-		(dwarf-mode): Remove old FIXME.
-
-2023-02-09  Tom Tromey  <tom@tromey.com>
-
-	Fix comment in gdb.rust/fnfield.exp
-	gdb.rust/fnfield.exp has a comment that, I assume, I copied from some
-	other test.  This patch fixes it.
-
-2023-02-09  Tom Tromey  <tom@tromey.com>
-
-	Trivially simplify rust_language::print_enum
-	rust_language::print_enum computes:
-
-	  int nfields = variant_type->num_fields ();
-
-	... but then does not reuse this in one spot.  This patch corrects the
-	oversight.
-
-2023-02-09  Roland McGrath  <mcgrathr@google.com>
-
-	[aarch64] Avoid initializers for VLAs
-	Clang doesn't accept initializer syntax for variable-length
-	arrays in C. Just use memset instead.
-
-2023-02-09  Christina Schimpe  <christina.schimpe@intel.com>
-
-	gdb, testsuite: Remove unnecessary call of "set print pretty on"
-	The command has no effect for the loading of GDB pretty printers and is
-	removed by this patch to avoid confusion.
-
-	Documentation for "set print pretty"
-	"Cause GDB to print structures in an indented format with one member per line"
-
-2023-02-09  Tom Tromey  <tromey@adacore.com>
-
-	Increase size of main_type::nfields
-	main_type::nfields is a 'short', and has been for many years.  PR
-	c++/29985 points out that 'short' is too narrow for an enum that
-	contains more than 2^15 constants.
-
-	This patch bumps the size of 'nfields'.  To verify that the field
-	isn't directly used, it is also renamed.  Note that this does not
-	affect the size of main_type on x86-64 Fedora 36.  And, if it does
-	have a negative effect somewhere, it's worth considering that types
-	could be shrunk more drastically by using subclasses for the different
-	codes.
-
-	This is v2 of this patch, which has these changes:
-
-	* I changed nfields to 'unsigned', per Simon's request.  I looked at
-	  changing all the uses, but this quickly fans out into a very large
-	  patch.  (One additional tweak was needed, though.)
-
-	* I wrote a test case.  I discovered that GCC cannot compile a large
-	  enough C test case, so I resorted to using the DWARF assembler.
-	  This test doesn't reproduce the crash, but it does fail without the
-	  patch.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29985
-
-2023-02-09  Tom Tromey  <tromey@adacore.com>
-
-	Remove mention of cooked_index_vector
-	I noticed a leftover mention of cooked_index_vector.  This updates the
-	text.
-
-2023-02-09  Tom Tromey  <tromey@adacore.com>
-
-	Let user C-c when waiting for DWARF index finalization
-	In PR gdb/29854, Simon pointed out that it would be good to be able to
-	use C-c when the DWARF cooked index is waiting for finalization.  The
-	idea here is to be able to interrupt a command like "break" -- not to
-	stop the finalization process itself, which runs in a worker thread.
-
-	This patch implements this idea, by changing the index wait functions
-	to, by default, allow a quit.  Polling is done, because there doesn't
-	seem to be a better way to interrupt a wait on a std::future.
-
-	For v2, I realized that the thread compatibility code in thread-pool.h
-	also needed an update.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29854
-
-2023-02-09  Alan Modra  <amodra@gmail.com>
-
-	coff keep_relocs and keep_contents
-	keep_relocs is set by pe_ILF_save_relocs but not used anywhere in the
-	coff/pe code.  It is tested by the xcoff backend but not set.
-
-	keep_contents is only used by the xcoff backend when dealing with
-	the .loader section, and it's easy enough to dispense with it there.
-	keep_contents is set in various places but that's fairly useless when
-	the contents aren't freed anyway until later linker support functions,
-	add_dynamic_symbols and check_dynamic_ar_symbols.  There the contents
-	were freed if keep_contents wasn't set.  I reckon we can free them
-	unconditionally.
-
-		* coff-bfd.h (struct coff_section_tdata): Delete keep_relocs
-		and keep_contents.
-		* peicode.h (pe_ILF_save_relocs): Don't set keep_relocs.
-		* xcofflink.c (xcoff_get_section_contents): Cache contents.
-		Return the contents.  Update callers.
-		(_bfd_xcoff_canonicalize_dynamic_symtab): Don't set
-		keep_contents for .loader.
-		(xcoff_link_add_dynamic_symbols): Free .loader contents
-		unconditionally.
-		(xcoff_link_check_dynamic_ar_symbols): Likewise.
-
-2023-02-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-08  Alan Modra  <amodra@gmail.com>
-
-	coff-sh.c keep_relocs, keep_contents and keep_syms
-	keep_relocs and keep_contents are unused nowadays except by
-	xcofflink.c, and I can't see a reason why keep_syms needs to be set.
-	The external syms are read and used by sh_relax_section and used by
-	sh_relax_delete_bytes.  There doesn't appear to be any way that
-	freeing them will cause trouble.
-
-		* coff-sh.c (sh_relax_section): Don't set keep_relocs,
-		keep_contents or keep_syms.
-		(sh_relax_delete_bytes): Don't set keep_contents.
-
-2023-02-08  Alan Modra  <amodra@gmail.com>
-
-	Memory leak in bfd_init_section_compress_status
-		* compress.c (bfd_init_section_compress_status): Free
-		uncompressed_buffer on error return.
-
-2023-02-08  Alan Modra  <amodra@gmail.com>
-
-	Clear cached file size when bfd changed to BFD_IN_MEMORY
-	If file size is calculated by bfd_get_file_size, as it is by
-	_bfd_alloc_and_read calls in coff_object_p, then it is cached and when
-	pe_ILF_build_a_bfd converts an archive entry over to BFD_IN_MEMORY,
-	the file size is no longer valid.  Found when attempting objdump -t on
-	a very small (27 bytes) ILF file and hitting the pr24707 fix (commit
-	781152ec18f5).  So, clear file size when setting BFD_IN_MEMORY on bfds
-	that may have been read.  (It's not necessary in writable bfds,
-	because caching is ignored by bfd_get_size when bfd_write_p.)
-
-	I also think the PR 24707 fix is no longer neeeded.  All of the
-	testcases in that PR and in PR24712 are caught earlier by file size
-	checks when reading the symbols from file.  So I'm reverting that fix,
-	which just compared the size of an array of symbol pointers against
-	file size.  That's only valid if on-disk symbols are larger than a
-	host pointer, so the test is better done in format-specific code.
-
-	bfd/
-		* coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Clear cached
-		file size when making a BFD_IN_MEMORY bfd.
-		* opncls.c (bfd_make_readable): Likewise.
-		* peicode.h (pe_ILF_build_a_bfd): Likewise.
-	binutils/
-		PR 24707
-		* objdump.c (slurp_symtab): Revert PR24707 fix.  Tidy.
-		(slurp_dynamic_symtab): Tidy.
-
-2023-02-08  Alan Modra  <amodra@gmail.com>
-
-	Internal error at gas/expr.c:1814
-	This is the assertion
-	  know (*input_line_pointer != ' ');
-	after calling operand.
-
-	The usual exit from operand calls SKIP_ALL_WHITESPACE.
-
-		* expr.c (operand): Call SKIP_ALL_WHITESPACE after call to expr.
-
-2023-02-08  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: give sentinel for user frames distinct IDs, register sentinel frames to the frame cache
-	The test gdb.base/frame-view.exp fails like this on AArch64:
-
-	    frame^M
-	    #0  baz (z1=hahaha, /home/simark/src/binutils-gdb/gdb/value.c:4056: internal-error: value_fetch_lazy_register: Assertion `next_frame != NULL' failed.^M
-	    A problem internal to GDB has been detected,^M
-	    further debugging may prove unreliable.^M
-	    FAIL: gdb.base/frame-view.exp: with_pretty_printer=true: frame (GDB internal error)
-
-	The sequence of events leading to this is the following:
-
-	 - When we create the user frame (the "select-frame view" command), we
-	   create a sentinel frame just for our user-created frame, in
-	   create_new_frame.  This sentinel frame has the same id as the regular
-	   sentinel frame.
-
-	 - When printing the frame, after doing the "select-frame view" command,
-	   the argument's pretty printer is invoked, which does an inferior
-	   function call (this is the point of the test).  This clears the frame
-	   cache, including the "real" sentinel frame, which sets the
-	   sentinel_frame global to nullptr.
-
-	 - Later in the frame-printing process (when printing the second
-	   argument), the auto-reinflation mechanism re-creates the user frame
-	   by calling create_new_frame again, creating its own special sentinel
-	   frame again.  However, note that the "real" sentinel frame, the
-	   sentinel_frame global, is still nullptr.  If the selected frame had
-	   been a regular frame, we would have called get_current_frame at some
-	   point during the reinflation, which would have re-created the "real"
-	   sentinel frame.  But it's not the case when reinflating a user frame.
-
-	 - Deep down the stack, something wants to fill in the unwind stop
-	   reason for frame 0, which requires trying to unwind frame 1.  This
-	   leads us to trying to unwind the PC of frame 1:
-
-	     #0  gdbarch_unwind_pc (gdbarch=0xffff8d010080, next_frame=...) at /home/simark/src/binutils-gdb/gdb/gdbarch.c:2955
-	     #1  0x000000000134569c in dwarf2_tailcall_sniffer_first (this_frame=..., tailcall_cachep=0xffff773fcae0, entry_cfa_sp_offsetp=0xfffff7f7d450)
-	         at /home/simark/src/binutils-gdb/gdb/dwarf2/frame-tailcall.c:390
-	     #2  0x0000000001355d84 in dwarf2_frame_cache (this_frame=..., this_cache=0xffff773fc928) at /home/simark/src/binutils-gdb/gdb/dwarf2/frame.c:1089
-	     #3  0x00000000013562b0 in dwarf2_frame_unwind_stop_reason (this_frame=..., this_cache=0xffff773fc928) at /home/simark/src/binutils-gdb/gdb/dwarf2/frame.c:1101
-	     #4  0x0000000001990f64 in get_prev_frame_always_1 (this_frame=...) at /home/simark/src/binutils-gdb/gdb/frame.c:2281
-	     #5  0x0000000001993034 in get_prev_frame_always (this_frame=...) at /home/simark/src/binutils-gdb/gdb/frame.c:2376
-	     #6  0x000000000199b814 in get_frame_unwind_stop_reason (frame=...) at /home/simark/src/binutils-gdb/gdb/frame.c:3051
-	     #7  0x0000000001359cd8 in dwarf2_frame_cfa (this_frame=...) at /home/simark/src/binutils-gdb/gdb/dwarf2/frame.c:1356
-	     #8  0x000000000132122c in dwarf_expr_context::execute_stack_op (this=0xfffff7f80170, op_ptr=0xffff8d8883ee "\217\002", op_end=0xffff8d8883ee "\217\002")
-	         at /home/simark/src/binutils-gdb/gdb/dwarf2/expr.c:2110
-	     #9  0x0000000001317b30 in dwarf_expr_context::eval (this=0xfffff7f80170, addr=0xffff8d8883ed "\234\217\002", len=1) at /home/simark/src/binutils-gdb/gdb/dwarf2/expr.c:1239
-	     #10 0x000000000131d68c in dwarf_expr_context::execute_stack_op (this=0xfffff7f80170, op_ptr=0xffff8d88840e "", op_end=0xffff8d88840e "") at /home/simark/src/binutils-gdb/gdb/dwarf2/expr.c:1811
-	     #11 0x0000000001317b30 in dwarf_expr_context::eval (this=0xfffff7f80170, addr=0xffff8d88840c "\221p", len=2) at /home/simark/src/binutils-gdb/gdb/dwarf2/expr.c:1239
-	     #12 0x0000000001314c3c in dwarf_expr_context::evaluate (this=0xfffff7f80170, addr=0xffff8d88840c "\221p", len=2, as_lval=true, per_cu=0xffff90b03700, frame=..., addr_info=0x0,
-	         type=0xffff8f6c8400, subobj_type=0xffff8f6c8400, subobj_offset=0) at /home/simark/src/binutils-gdb/gdb/dwarf2/expr.c:1078
-	     #13 0x000000000149f9e0 in dwarf2_evaluate_loc_desc_full (type=0xffff8f6c8400, frame=..., data=0xffff8d88840c "\221p", size=2, per_cu=0xffff90b03700, per_objfile=0xffff9070b980,
-	         subobj_type=0xffff8f6c8400, subobj_byte_offset=0, as_lval=true) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:1513
-	     #14 0x00000000014a0100 in dwarf2_evaluate_loc_desc (type=0xffff8f6c8400, frame=..., data=0xffff8d88840c "\221p", size=2, per_cu=0xffff90b03700, per_objfile=0xffff9070b980, as_lval=true)
-	         at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:1557
-	     #15 0x00000000014aa584 in locexpr_read_variable (symbol=0xffff8f6cd770, frame=...) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:3052
-
-	 - AArch64 defines a special "prev register" function,
-	   aarch64_dwarf2_prev_register, to handle unwinding the PC.  This
-	   function does
-
-	     frame_unwind_register_unsigned (this_frame, AARCH64_LR_REGNUM);
-
-	 - frame_unwind_register_unsigned ultimately creates a lazy register
-	   value, saving the frame id of this_frame->next.  this_frame is the
-	   user-created frame, to this_frame->next is the special sentinel frame
-	   we created for it.  So the saved ID is the sentinel frame ID.
-
-	 - When time comes to un-lazify the value, value_fetch_lazy_register
-	   calls frame_find_by_id, to find the frame with the ID we saved.
-
-	 - frame_find_by_id sees it's the sentinel frame ID, so returns the
-	   sentinel_frame global, which is, if you remember, nullptr.
-
-	 - We hit the `gdb_assert (next_frame != NULL)` assertion in
-	   value_fetch_lazy_register.
-
-	The issues I see here are:
-
-	 - The ID of the sentinel frame created for the user-created frame is
-	   not distinguishable from the ID of the regular sentinel frame.  So
-	   there's no way frame_find_by_id could find the right frame, in
-	   value_fetch_lazy_register.
-	 - Even if they had distinguishable IDs, sentinel frames created for
-	   user frames are not registered anywhere, so there's no easy way
-	   frame_find_by_id could find it.
-
-	This patch addresses these two issues:
-
-	 - Give sentinel frames created for user frames their own distinct IDs
-	 - Register sentinel frames in the frame cache, so they can be found
-	   with frame_find_by_id.
-
-	I initially had this split in two patches, but I then found that it was
-	easier to explain as a single patch.
-
-	Rergarding the first part of the change: with this patch, the sentinel
-	frames created for user frames (in create_new_frame) still have
-	stack_status == FID_STACK_SENTINEL, but their code_addr and stack_addr
-	fields are now filled with the addresses used to create the user frame.
-	This ensures this sentinel frame ID is different from the "target"
-	sentinel frame ID, as well as any other "user" sentinel frame ID.  If
-	the user tries to create the same frame, with the same addresses,
-	multiple times, create_sentinel_frame just reuses the existing frame.
-	So we won't end up with multiple user sentinels with the same ID.
-
-	Regular "target" sentinel frames remain with code_addr and stack_addr
-	unset.
-
-	The concrete changes for that part are:
-
-	 - Remove the sentinel_frame_id constant, since there isn't one
-	   "sentinel frame ID" now.  Add the frame_id_build_sentinel function
-	   for building sentinel frame IDs and a is_sentinel_frame_id function
-	   to check if a frame id represents a sentinel frame.
-	 - Replace the sentinel_frame_id check in frame_find_by_id with a
-	   comparison to `frame_id_build_sentinel (0, 0)`.  The sentinel_frame
-	   global is meant to contain a reference to the "target" sentinel, so
-	   the one with addresses (0, 0).
-	 - Add stack and code address parameters to create_sentinel_frame, to be
-	   able to create the various types of sentinel frames.
-	 - Adjust get_current_frame to create the regular "target" sentinel.
-	 - Adjust create_new_frame to create a sentinel with the ID specific to
-	   the created user frame.
-	 - Adjust sentinel_frame_prev_register to get the sentinel frame ID from
-	   the frame_info object, since there isn't a single "sentinel frame ID"
-	   now.
-	 - Change get_next_frame_sentinel_okay to check for a
-	   sentinel-frame-id-like frame ID, rather than for sentinel_frame
-	   specifically, since this function could be called with another
-	   sentinel frame (and we would want the assert to catch it).
-
-	The rest of the change is about registering the sentinel frame in the
-	frame cache:
-
-	 - Change frame_stash_add's assertion to allow sentinel frame levels
-	   (-1).
-	 - Make create_sentinel_frame add the frame to the frame cache.
-	 - Change the "sentinel_frame != NULL" check in reinit_frame_cache for a
-	   check that the frame stash is not empty.  The idea is that if we only
-	   have some user-created frames in the cache when reinit_frame_cache is
-	   called, we probably want to emit the frames invalid annotation.  The
-	   goal of that check is to avoid unnecessary repeated annotations, I
-	   suppose, so the "frame cache not empty" check should achieve that.
-
-	After this change, I think we could theoritically get rid of the
-	sentienl_frame global.  That sentinel frame could always be found by
-	looking up `frame_id_build_sentinel (0, 0)` in the frame cache.
-	However, I left the global there to avoid slowing the typical case down
-	for nothing.  I however, noted in its comment that it is an
-	optimization.
-
-	With this fix applied, the gdb.base/frame-view.exp now passes for me on
-	AArch64.  value_of_register_lazy now saves the special sentinel frame ID
-	in the value, and value_fetch_lazy_register is able to find that
-	sentinel frame after the frame cache reinit and after the user-created
-	frame was reinflated.
-
-	Tested-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
-	Tested-By: Luis Machado <luis.machado@arm.com>
-	Change-Id: I8b77b3448822c8aab3e1c3dda76ec434eb62704f
-
-2023-02-08  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: call frame unwinders' dealloc_cache methods through destroying the frame cache
-	Currently, some frame resources are deallocated by iterating on the
-	frame chain (starting from the sentinel), calling dealloc_cache.  The
-	problem is that user-created frames are not part of that chain, so we
-	never call dealloc_cache for them.
-
-	I propose to make it so the dealloc_cache callbacks are called when the
-	frames are removed from the frame_stash hash table, by registering a
-	deletion function to the hash table.  This happens when
-	frame_stash_invalidate is called by reinit_frame_cache.  This way, all
-	frames registered in the cache will get their unwinder's dealloc_cache
-	callbacks called.
-
-	Note that at the moment, the sentinel frames are not registered in the
-	cache, so we won't call dealloc_cache for them.  However, it's just a
-	theoritical problem, because the sentinel frame unwinder does not
-	provide this callback.  Also, a subsequent patch will change things so
-	that sentinel frames are registered to the cache.
-
-	I moved the obstack_free / obstack_init pair below the
-	frame_stash_invalidate call in reinit_frame_cache, because I assumed
-	that some dealloc_cache would need to access some data on that obstack,
-	so it would be better to free it after clearing the hash table.
-
-	Change-Id: If4f9b38266b458c4e2f7eb43e933090177c22190
-
-2023-02-08  Tom Tromey  <tom@tromey.com>
-
-	Remove block.h includes from some tdep files
-	A few tdep files include block.h but do not need to.  This patch
-	removes the inclusions.  I checked that this worked correctly by
-	examining the resulting .Po file to make sure that block.h was not
-	being included by some other route.
-
-	Don't include block.h from expop.h
-	expop.h needs block.h for a single inline function.  However, I don't
-	think most of the check_objfile functions need to be defined in the
-	header (just the templates).  This patch moves the one offending
-	function and removes the include.
-
-2023-02-08  Pedro Alves  <pedro@palves.net>
-
-	Simplify interp::exec / interp_exec - let exceptions propagate
-	This patch implements a simplication that I suggested here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186320.html
-
-	Currently, the interp::exec virtual method interface is such that
-	subclass implementations must catch exceptions and then return them
-	via normal function return.
-
-	However, higher up the in chain, for the CLI we get to
-	interpreter_exec_cmd, which does:
-
-	  for (i = 1; i < nrules; i++)
-	    {
-	      struct gdb_exception e = interp_exec (interp_to_use, prules[i]);
-
-	      if (e.reason < 0)
-		{
-		  interp_set (old_interp, 0);
-		  error (_("error in command: \"%s\"."), prules[i]);
-		}
-	    }
-
-	and for MI we get to mi_cmd_interpreter_exec, which has:
-
-	  void
-	  mi_cmd_interpreter_exec (const char *command, char **argv, int argc)
-	  {
-	  ...
-	    for (i = 1; i < argc; i++)
-	      {
-		struct gdb_exception e = interp_exec (interp_to_use, argv[i]);
-
-		if (e.reason < 0)
-		  error ("%s", e.what ());
-	      }
-	  }
-
-	Note that if those errors are reached, we lose the original
-	exception's error code.  I can't see why we'd want that.
-
-	And, I can't see why we need to have interp_exec catch the exception
-	and return it via the normal return path.  That's normally needed when
-	we need to handle propagating exceptions across C code, like across
-	readline or ncurses, but that's not the case here.
-
-	It seems to me that we can simplify things by removing some
-	try/catch-ing and just letting exceptions propagate normally.
-
-	Note, the "error in command" error shown above, which only exists in
-	the CLI interpreter-exec command, is only ever printed AFAICS if you
-	run "interpreter-exec console" when the top level interpreter is
-	already the console/tui.  Like:
-
-	 (gdb) interpreter-exec console "foobar"
-	 Undefined command: "foobar".  Try "help".
-	 error in command: "foobar".
-
-	You won't see it with MI's "-interpreter-exec console" from a top
-	level MI interpreter:
-
-	 (gdb)
-	 -interpreter-exec console "foobar"
-	 &"Undefined command: \"foobar\".  Try \"help\".\n"
-	 ^error,msg="Undefined command: \"foobar\".  Try \"help\"."
-	 (gdb)
-
-	nor with MI's "-interpreter-exec mi" from a top level MI interpreter:
-
-	 (gdb)
-	 -interpreter-exec mi "-foobar"
-	 ^error,msg="Undefined MI command: foobar",code="undefined-command"
-	 ^done
-	 (gdb)
-
-	in both these cases because MI's -interpreter-exec just does:
-
-	  error ("%s", e.what ());
-
-	You won't see it either when running an MI command with the CLI's
-	"interpreter-exec mi":
-
-	 (gdb) interpreter-exec mi "-foobar"
-	 ^error,msg="Undefined MI command: foobar",code="undefined-command"
-	 (gdb)
-
-	This last case is because MI's interp::exec implementation never
-	returns an error:
-
-	 gdb_exception
-	 mi_interp::exec (const char *command)
-	 {
-	   mi_execute_command_wrapper (command);
-	   return gdb_exception ();
-	 }
-
-	Thus I think that "error in command" error is pretty pointless, and
-	since it simplifies things to not have it, the patch just removes it.
-
-	The patch also ends up addressing an old FIXME.
-
-	Change-Id: I5a6432a80496934ac7127594c53bf5221622e393
-	Approved-By: Tom Tromey <tromey@adacore.com>
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2023-02-08  Tom Tromey  <tromey@adacore.com>
-
-	Avoid FAILs in gdb.compile
-	Many gdb.compile C++ tests fail for me on Fedora 36.  I think these
-	are largely bugs in the plugin, though I didn't investigate too
-	deeply.  Once one failure is seen, this often cascades and sometimes
-	there are many timeouts.
-
-	For example, this can happen:
-
-	    (gdb) compile code var = a->get_var ()
-	    warning: Could not find symbol "_ZZ9_gdb_exprP10__gdb_regsE1a" for compiled module "/tmp/gdbobj-0xdI6U/out2.o".
-	    1 symbols were missing, cannot continue.
-
-	I think this is probably a plugin bug because, IIRC, in theory these
-	symbols should be exempt from a lookup via gdb.
-
-	This patch arranges to catch any catastrophic failure and then simply
-	exit the entire .exp file.
-
-2023-02-08  Tom Tromey  <tromey@adacore.com>
-
-	Don't let .gdb_history file cause failures
-	I had a .gdb_history file in my testsuite directory in the build tree,
-	and this provoked a failure in gdbhistsize-history.exp.  It seems
-	simple to prevent this file from causing a failure.
-
-2023-02-08  Tom Tromey  <tromey@adacore.com>
-
-	Merge fixup_section and fixup_symbol_section
-	fixup_symbol_section delegates all its work to fixup_section, so merge
-	the two.
-
-	Because there is only a single caller to fixup_symbol_section, we can
-	also remove some of the introductory logic.  For example, this will
-	never be called with a NULL objfile any more.
-
-	The LOC_BLOCK case can be removed, because such symbols are handled by
-	the buildsym code now.
-
-	Finally, a symbol can only appear in a SEC_ALLOC section, so the loop
-	is modified to skip sections that do not have this flag set.
-
-2023-02-08  Tom Tromey  <tromey@adacore.com>
-
-	Remove most calls to fixup_symbol_section
-	Nearly every call to fixup_symbol_section in gdb is incorrect, and if
-	any such call has an effect, it's purely by happenstance.
-
-	fixup_section has a long comment explaining that the call should only
-	be made before runtime section offsets are applied.  And, the loop in
-	this code (the fallback loop -- the minsym lookup code is "ok") is
-	careful to remove these offsets before comparing addresses.
-
-	However, aside from a single call in dwarf2/read.c, every call in gdb
-	is actually done after section offsets have been applied.  So, these
-	calls are incorrect.
-
-	Now, these calls could be made when the symbol is created.  I
-	considered this approach, but I reasoned that the code has been this
-	way for many years, seemingly without ill effect.  So, instead I chose
-	to simply remove the offending calls.
-
-2023-02-08  Tom Tromey  <tromey@adacore.com>
-
-	Set section index when setting a symbol's block
-	When a symbol's block is set, the block has the runtime section offset
-	applied.  So, it seems to me that the symbol implicitly is in the same
-	section as the block.  Therefore, this patch sets the symbol's section
-	index at this same spot.
-
-	Remove compunit_symtab::m_block_line_section
-	The previous patch hard-coded SECT_OFF_TEXT into the buildsym code.
-	After this, it's clear that there is only one caller of
-	compunit_symtab::set_block_line_section, and it always passes
-	SECT_OFF_TEXT.  So, remove compunit_symtab::m_block_line_section and
-	use SECT_OFF_TEXT instead.
-
-	Do not pass section index to end_compunit_symtab
-	Right now, the section index passed to end_compunit_symtab is always
-	SECT_OFF_TEXT.  Remove this parameter and simply always use
-	SECT_OFF_TEXT.
-
-2023-02-08  Tom Tromey  <tromey@adacore.com>
-
-	Set section indices when symbols are made
-	Most places in gdb that create a new symbol will apply a section
-	offset to the address.  It seems to me that the choice of offset here
-	is also an implicit choice of the section.  This is particularly true
-	if you examine fixup_section, which notes that it must be called
-	before such offsets are applied -- meaning that if any such call has
-	an effect, it's purely by accident.
-
-	This patch cleans up this area by tracking the section index and
-	applying it to a symbol when the address is set.  This is done for
-	nearly every case -- the remaining cases will be handled in later
-	patches.
-
-2023-02-08  Tom Tromey  <tromey@adacore.com>
-
-	Use default section indexes in fixup_symbol_section
-	If fixup_section does not find a matching section, it arbitrarily
-	chooses the first one.  However, it seems better to make this default
-	depend on the type of the symbol -- i.e., default data symbols to
-	.data and text symbols to .text.
-
-	I've also made fixup_section static, as it only has one caller.
-
-2023-02-08  Tom Tromey  <tom@tromey.com>
-
-	Simplify checks of cooked_index
-	This changes the cooked_index_functions to avoid an extra null check
-	now that checked_static_cast allows a null argument.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use maint ignore-probes in gdb.base/longjmp.exp
-	Test-case gdb.base/longjmp.exp handles both the case that there is a libc
-	longjmp probe, and the case that there isn't.
-
-	However, it only tests one of the two cases.
-
-	Use maint ignore-probes to test both cases, if possible.
-
-	Tested on x86_64-linux.
-
-2023-02-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use maint ignore-probes in gdb.base/solib-corrupted.exp
-	Test-case gdb.base/solib-corrupted.exp only works for a glibc without probes
-	interface, otherwise we run into:
-	...
-	XFAIL: gdb.base/solib-corrupted.exp: info probes
-	UNTESTED: gdb.base/solib-corrupted.exp: GDB is using probes
-	...
-
-	Fix this by using maint ignore-probes to simulate the absence of the relevant
-	probes.
-
-	Also, it requires glibc debuginfo, and if not present, it produces an XFAIL:
-	...
-	XFAIL: gdb.base/solib-corrupted.exp: make solibs looping
-	UNTESTED: gdb.base/solib-corrupted.exp: no _r_debug symbol has been found
-	...
-	This is incorrect, because an XFAIL indicates a known problem in the
-	environment.  In this case, there is no problem: the environment is
-	functioning as expected when glibc debuginfo is not installed.
-
-	Fix this by using UNSUPPORTED instead, and make the message less cryptic:
-	...
-	UNSUPPORTED: gdb.base/solib-corrupted.exp: make solibs looping \
-	  (glibc debuginfo required)
-	...
-
-	Finally, with glibc debuginfo present, we run into:
-	...
-	(gdb) PASS: gdb.base/solib-corrupted.exp: make solibs looping
-	info sharedlibrary^M
-	warning: Corrupted shared library list: 0x7ffff7ffe750 != 0x0^M
-	From                To                  Syms Read   Shared Object Library^M
-	0x00007ffff7dd4170  0x00007ffff7df4090  Yes         /lib64/ld-linux-x86-64.so.2^M
-	(gdb) FAIL: gdb.base/solib-corrupted.exp: corrupted list \
-	  (shared library list corrupted)
-	...
-	due to commit 44288716537 ("gdb, testsuite: extend gdb_test_multiple checks").
-
-	Fix this by rewriting into gdb_test_multiple and using -early.
-
-	Tested on x86_64-linux, with and without glibc debuginfo installed.
-
-2023-02-08  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix SIGSEGV when processing unusual dwarf
-	gprofng/ChangeLog
-	2023-02-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30093
-		* src/Dwarf.cc: add nullptr check.
-		* src/DwarfLib.cc: Likewise.
-
-2023-02-08  Alan Modra  <amodra@gmail.com>
-
-	Re: Resetting section vma after _bfd_dwarf2_find_nearest_line
-	f.bfd_ptr is set too early to be a reliable indicator of good debug
-	info.
-
-		* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Correct test for
-		debug info being previously found.
-
-2023-02-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix display of thread condition for multi-location breakpoints
-	This commit addresses the issue in PR gdb/30087.
-
-	If a breakpoint with multiple locations has a thread condition, then
-	the 'info breakpoints' output is a little messed up, here's an example
-	of the current output:
-
-	  (gdb) break foo thread 1
-	  Breakpoint 2 at 0x401114: foo. (3 locations)
-	  (gdb) break bar thread 1
-	  Breakpoint 3 at 0x40110a: file /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c, line 32.
-	  (gdb) info breakpoints
-	  Num     Type           Disp Enb Address            What
-	  2       breakpoint     keep y   <MULTIPLE>          thread 1
-	          stop only in thread 1
-	  2.1                         y   0x0000000000401114 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25
-	  2.2                         y   0x0000000000401146 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25
-	  2.3                         y   0x0000000000401168 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25
-	  3       breakpoint     keep y   0x000000000040110a in bar at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:32 thread 1
-	          stop only in thread 1
-
-	Notice that, at the end of the location for breakpoint 3, the 'thread
-	1' condition is printed, but this is then repeated on the next line
-	with 'stop only in thread 1'.
-
-	In contrast, for breakpoint 2, the 'thread 1' appears randomly, in the
-	"What" column, though slightly offset, non of the separate locations
-	have the 'thread 1' information.  Additionally for breakpoint 2 we
-	also get a 'stop only in thread 1' line.
-
-	There's two things going on here.  First the randomly placed 'thread
-	1' for breakpoint 2 is due to a bug in print_one_breakpoint_location,
-	where we check the variable part_of_multiple instead of
-	header_of_multiple.
-
-	If I fix this oversight, then the output is now:
-
-	  (gdb) break foo thread 1
-	  Breakpoint 2 at 0x401114: foo. (3 locations)
-	  (gdb) break bar thread 1
-	  Breakpoint 3 at 0x40110a: file /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c, line 32.
-	  (gdb) info breakpoints
-	  Num     Type           Disp Enb Address            What
-	  2       breakpoint     keep y   <MULTIPLE>
-	          stop only in thread 1
-	  2.1                         y   0x0000000000401114 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25 thread 1
-	  2.2                         y   0x0000000000401146 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25 thread 1
-	  2.3                         y   0x0000000000401168 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25 thread 1
-	  3       breakpoint     keep y   0x000000000040110a in bar at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:32 thread 1
-	          stop only in thread 1
-
-	The 'thread 1' condition is now displayed at the end of each location,
-	which makes the output the same for single location breakpoints and
-	multi-location breakpoints.
-
-	However, there's still some duplication here.  Both breakpoints 2 and
-	3 include a 'stop only in thread 1' line, and it feels like the
-	additional 'thread 1' is redundant.  In fact, there's a comment to
-	this very effect in the code:
-
-	  /* FIXME: This seems to be redundant and lost here; see the
-	     "stop only in" line a little further down.  */
-
-	So, lets fix this FIXME.  The new plan is to remove all the trailing
-	'thread 1' markers from the CLI output, we now get this:
-
-	  (gdb) break foo thread 1
-	  Breakpoint 2 at 0x401114: foo. (3 locations)
-	  (gdb) break bar thread 1
-	  Breakpoint 3 at 0x40110a: file /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c, line 32.
-	  (gdb) info breakpoints
-	  Num     Type           Disp Enb Address            What
-	  2       breakpoint     keep y   <MULTIPLE>
-	          stop only in thread 1
-	  2.1                         y   0x0000000000401114 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25
-	  2.2                         y   0x0000000000401146 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25
-	  2.3                         y   0x0000000000401168 in foo at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:25
-	  3       breakpoint     keep y   0x000000000040110a in bar at /tmp/src/gdb/testsuite/gdb.base/thread-bp-multi-loc.c:32
-	          stop only in thread 1
-
-	All of the above points are also true for the Ada 'task' breakpoint
-	condition, and the changes I've made also update how the task
-	information is printed, though in the case of the Ada task there was
-	no 'stop only in task XXX' line printed, so I've added one of those.
-
-	Obviously it can't be quite that easy.  For MI backwards compatibility
-	I've retained the existing code (but now only for MI like outputs),
-	which ensures we should generate backwards compatible output.
-
-	I've extended an Ada test to cover the new task related output, and
-	updated all the tests I could find that checked for the old output.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30087
-
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2023-02-07  Nick Clifton  <nickc@redhat.com>
-
-	Fix documentation of the 'n' symbol type displayed by nm.
-	PR 30080 * doc/binutils.texi (nm): Update description of the 'n' symbol type.
-
-2023-02-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Improve untested message in gdb.ada/finish-var-size.exp
-	I came across:
-	...
-	UNTESTED: gdb.ada/finish-var-size.exp: GCC too told for this test
-	...
-	The message only tells us that the compiler version too old, not what compiler
-	version is required.
-
-	Fix this by rewriting using required:
-	...
-	UNSUPPORTED: gdb.ada/finish-var-size.exp: require failed: \
-	  expr [gcc_major_version] >= 12
-	...
-
-	Tested on x86_64-linux.
-
-2023-02-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-06  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: adjust comment on target_desc_info::from_user_p
-	Remove the stale reference to INFO, which is now "this target
-	description info" now.
-
-	Change-Id: I35dbdb089048ed7cfffe730d3134ee391b176abf
-
-2023-02-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: extend the documentation for the 'handle' command
-	The documentation for the 'handle' command does not cover all of the
-	features of the command, and in one case, is just wrong.
-
-	The user can specify 'all' as signal name, the documentation implies
-	that this will change the behaviour of all signals, in reality, this
-	changes all signals except SIGINT and SIGTRAP (the signals used by
-	GDB).  I've updated the docs to list this limitation.
-
-	The 'handle' command also allows the user to specify multiple signals
-	for a single command, e.g. 'handle SIGFPE SIGILL nostop pass print',
-	however the documentation doesn't describe this, so I've updated the
-	docs to describe this feature.
-
-2023-02-06  Alan Modra  <amodra@gmail.com>
-
-	ppc32 and "LOAD segment with RWX permissions"
-	When using a bss-plt we'll always trigger the RWX warning, which
-	disturbs gcc test results.  On the other hand, there may be reason to
-	want the warning when gcc is configured with --enable-secureplt.
-	So turning off the warning entirely for powerpc might not be the best
-	solution.  Instead, we'll turn off the warning whenever a bss-plt is
-	generated, unless the user explicitly asked for the warning.
-
-	bfd/
-		* elf32-ppc.c (ppc_elf_select_plt_layout): Set
-		no_warn_rwx_segments on generating a bss plt, unless explicity
-		enabled by the user.  Also show the bss-plt warning when
-		--warn-rwx-segments is given without --bss-plt.
-	include/
-		* bfdlink.h (struct bfd_link_info): Add user_warn_rwx_segments.
-	ld/
-		* lexsup.c (parse_args): Set user_warn_rwx_segments.
-		* testsuite/ld-elf/elf.exp: Pass --secure-plt for powerpc to
-		the rwx tests.
-
-2023-02-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/schedlock.exp on fast cpu
-	Occasionally, I run into:
-	...
-	(gdb) PASS: gdb.threads/schedlock.exp: schedlock=on: cmd=continue: \
-	  set scheduler-locking on
-	continue^M
-	Continuing.^M
-	PASS: gdb.threads/schedlock.exp: schedlock=on: cmd=continue: \
-	  continue (with lock)
-	[Thread 0x7ffff746e700 (LWP 1339) exited]^M
-	No unwaited-for children left.^M
-	(gdb) Quit^M
-	(gdb) FAIL: gdb.threads/schedlock.exp: schedlock=on: cmd=continue: \
-	  stop all threads (with lock) (timeout)
-	...
-
-	What happens is that this loop which is supposed to run "just short of forever":
-	...
-	    /* Don't run forever.  Run just short of it :)  */
-	    while (*myp > 0)
-	      {
-	        /* schedlock.exp: main loop.  */
-	        MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
-	      }
-	...
-	finishes after 0x7fffffff iterations (when a signed wrap occurs), which on my
-	system takes only about 1.5 seconds.
-
-	Fix this by:
-	- changing the pointed-at type of myp from signed to unsigned, which makes the
-	  wrap defined behaviour (and which also make the loop run twice as long,
-	  which is already enough to make it impossible for me to reproduce the FAIL.
-	  But let's try to solve this more structurally).
-	- changing the pointed-at type of myp from int to long long, making the wrap
-	  unlikely.
-	- making sure the loop runs forever, by setting the loop condition to 1.
-	- making sure the loop still contains different lines (as far as debug info is
-	  concerned) by incrementing a volatile counter in the loop.
-	- making sure the program doesn't run forever in case of trouble, by adding an
-	  "alarm (30)".
-
-	Tested on x86_64-linux.
-
-	PR testsuite/30074
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30074
-
-2023-02-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: error if 'thread' or 'task' keywords are overused
-	When creating a breakpoint or watchpoint, the 'thread' and 'task'
-	keywords can be used to create a thread or task specific breakpoint or
-	watchpoint.
-
-	Currently, a thread or task specific breakpoint can only apply for a
-	single thread or task, if multiple threads or tasks are specified when
-	creating the breakpoint (or watchpoint), then the last specified id
-	will be used.
-
-	The exception to the above is that when the 'thread' keyword is used
-	during the creation of a watchpoint, GDB will give an error if
-	'thread' is given more than once.
-
-	In this commit I propose making this behaviour consistent, if the
-	'thread' or 'task' keywords are used more than once when creating
-	either a breakpoint or watchpoint, then GDB will give an error.
-
-	I haven't updated the manual, we don't explicitly say that these
-	keywords can be repeated, and (to me), given the keyword takes a
-	single id, I don't think it makes much sense to repeat the keyword.
-	As such, I see this more as adding a missing error to GDB, rather than
-	making some big change.  However, I have added an entry to the NEWS
-	file as I guess it is possible that some people might hit this new
-	error with an existing (I claim, badly written) GDB script.
-
-	I've added some new tests to check for the new error.
-
-	Just one test needed updating, gdb.linespec/keywords.exp, this test
-	did use the 'thread' keyword twice, and expected the breakpoint to be
-	created.  Looking at what this test was for though, it was checking
-	the use of '-force-condition', and I don't think that being able to
-	repeat 'thread' was actually a critical part of this test.
-
-	As such, I've updated this test to expect the error when 'thread' is
-	repeated.
-
-2023-02-06  Alan Modra  <amodra@gmail.com>
-
-	Resetting section vma after _bfd_dwarf2_find_nearest_line
-	There are failure paths in _bfd_dwarf2_slurp_debug_info that can
-	result in altered section vmas.  Also, when setting ET_REL section
-	vmas it's not too difficult to handle cases where the original vma was
-	non-zero, so do that too.
-
-	This patch was really in response to an addr2line buffer overflow
-	processing a fuzzed mips relocatable object file.  The file had a
-	number of .debug_info sections with relocations that included lo16 and
-	hi16 relocs, and in that order.  At least one section VMA was
-	non-zero.  This resulted in processing of DWARF info twice, once via
-	the call to _bfd_dwarf2_find_nearest_line in
-	_bfd_mips_elf_find_nearest_line, and because that failed leaving VMAs
-	altered, the second via the call in _bfd_elf_find_nearest_line.  The
-	first call left entries on mips_hi16_list pointing at buffers
-	allocated during the first call, the second call processed the
-	mips_hi16_list after the buffers had been freed.  (At least when
-	running with asan and under valgrind.  Under gdb with a non-asan
-	addr2line the second call allocated exactly the same buffer and the
-	bug didn't show.)  Now I don't really care too much what happens with
-	fuzzed files, but the logic in _bfd_dwarf2_find_nearest_line is meant
-	to result in only one read of .debug_info, not multiple reads of the
-	same info when there are errors.  This patch fixes that problem.
-
-		* dwarf2.c (struct adjusted_section): Add orig_vma.
-		(unset_sections): Reset vma to it.
-		(place_sections): Handle non-zero vma too.  Save orig_vma.
-		(_bfd_dwarf2_slurp_debug_info): Tidy.  Correct outdated comment.
-		On error returns after calling place_sections, call
-		unset_sections.
-		(_bfd_dwarf2_find_nearest_line_with_alt): Simplify call to
-		unset_sections.
-
-2023-02-06  Romain Geissler  <romain.geissler@amadeus.com>
-
-	[PR 30082] Pass $JANSSON_LIBS and $ZSTD_LIBS to ld-bootstrap/bootrap.exp
-
-2023-02-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-04  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: don't try to set non-stop mode on a running target
-	The test gdb.threads/thread-specific-bp.exp tries to set non-stop mode
-	on a running target, something which the manual makes clear is not
-	allowed.
-
-	This commit restructures the test a little, we now set the non-stop
-	mode as part of the GDBFLAGS, so the mode will be set before GDB
-	connects to the target.  As a consequence I'm able to move the
-	with_test_prefix out of the check_thread_specific_breakpoint proc.
-	The check_thread_specific_breakpoint proc is now called within a loop.
-
-	After this commit the gdb.threads/thread-specific-bp.exp test still
-	has some failures, this is because of an issue GDB currently has
-	printing "Thread ... exited" messages.  This problem should be
-	addressed by this patch:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-December/194694.html
-
-	when it is merged.
-
-2023-02-04  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-	ld: pru: Add optional section alignments
-	The Texas Instruments SoCs with AARCH64 host processors have stricter
-	alignment requirements than ones with ARM32 host processors.  It's not
-	only the requirement for resource_table to be aligned to 8.  But also
-	any loadable segment size must be a multiple of 4 [1].
-
-	The current PRU default linker script may output a segment size not
-	aligned to 4, which would cause firmware load failure on AARCH64 hosts.
-
-	Fix this by using COMMONPAGESIZE and MAXPAGESIZE to signify respectively
-	the section memory size requirement and the resource table section's
-	start address alignment.  This would avoid penalizing the ARM32 hosts,
-	for which the default values (1 and 1) are sufficient.
-
-	For AARCH64 hosts, the alignments would be overwritten from GCC spec
-	files using the linker command line, e.g.:
-	  -z common-page-size=4 -z max-page-size=8
-
-	[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/remoteproc/pru_rproc.c?h=v6.1#n555
-
-	ld/ChangeLog:
-
-		* scripttempl/pru.sc (_data_end): Remove the alignment.
-		(.data): Align output section size to COMMONPAGESIZE.
-		(.resource_table): Ditto.
-
-2023-02-04  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-	ld: pru: Merge the bss input sections into data
-	The popular method to load PRU firmware is through the remoteproc Linux
-	kernel driver.  In order to save a few bytes from the firmware, the PRU
-	CRT0 is spared from calling memset for the bss segment [1].  Instead the
-	host loader is supposed to zero out the bss segment.  This is important
-	for PRU, which typically has only 8KB for instruction memory.
-
-	The legacy non-mainline PRU host driver relied on the default
-	behaviour of the kernel core remoteproc [2].  That default is to zero
-	out the loadable memory regions not backed by file storage (i.e. the
-	bss sections).  This worked for the libgloss' CRT0.
-
-	But the PRU loader merged in mainline Linux explicitly changes the
-	default behaviour [3].  It no longer is zeroing out memory regions.
-	Hence the bss sections are not initialized - neither by CRT0, nor by the
-	host loader.
-
-	This patch fixes the issue by aligning the GNU LD default linker script
-	with the mainline Linux kernel expectation.  Since the mainline kernel
-	driver is submitted by the PRU manufacturer itself (Text Instruments),
-	we can consider that as defining the ABI.
-
-	This change has been tested on Beaglebone AI-64 [4].  Static counter
-	variables in the firmware are now always starting from zero, as
-	expected.  There was only one new toolchain test failure in orphan3.d,
-	due to reordering of the output sections.  I believe this is a harmless
-	issue.  I could not rewrite the PASS criteria to ignore the output
-	section ordering, so I have disabled that test case for PRU.
-
-	[1] https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=libgloss/pru/crt0.S;h=b3f0d53a93acc372f461007553e7688ca77753c9;hb=HEAD#l40
-	[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/remoteproc/remoteproc_elf_loader.c?h=v6.1#n228
-	[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/remoteproc/pru_rproc.c?h=v6.1#n641
-	[4] https://beagleboard.org/ai-64
-
-	ld/ChangeLog:
-
-		* scripttempl/pru.sc (.data): Merge .bss input sections into the
-		.data output section.
-		* testsuite/ld-elf/orphan3.d: Disable for PRU.
-
-2023-02-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-03  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
-
-	bpf: fix error conversion from long unsigned int to unsigned int [-Werror=overflow]
-	Regenerating BPF target using the maintainer mode emits:
-	.../opcodes/bpf-opc.c:57:11: error: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘18446744073709486335’ to ‘4294902015’ [-Werror=overflow]
-	  57 |   64, 64, 0xffffffffffff00ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-
-	The use of a narrow size to handle the mask CGEN in instruction format
-	is causing this error.  Additionally eBPF `call' instructions
-	constructed by expressions using symbols (BPF_PSEUDO_CALL) emits
-	annotations in `src' field of the instruction, used to identify BPF
-	target endianness.
-
-	cpu/
-		* bpf.cpu (define-call-insn): Remove `src' field from
-		instruction mask.
-
-	include/
-		*opcode/cge.h (CGEN_IFMT): Adjust mask bit width.
-
-	opcodes/
-		* bpf-opc.c: Regenerate.
-
-2023-02-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make target_desc_info_from_user_p a method of target_desc_info
-	Move the implementation over to target_desc_info.  Remove the
-	target_desc_info forward declaration in target-descriptions.h, it's no
-	longer needed.
-
-	Change-Id: Ic95060341685afe0b73af591ca6efe32f5e7e892
-
-2023-02-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove copy_inferior_target_desc_info
-	This function is now trivial, we can just copy inferior::tdesc_info
-	where needed.
-
-	Change-Id: I25185e2cd4ba1ef24a822d9e0eebec6e611d54d6
-
-2023-02-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove get_tdesc_info
-	Remove this function, since it's now a trivial access to
-	inferior::tdesc_info.
-
-	Change-Id: I3e88a8214034f1a4163420b434be11f51eef462c
-
-2023-02-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: change inferior::tdesc_info to non-pointer
-	I initially made this field a unique pointer, to have automatic memory
-	management.  But I then thought that the field didn't really need to be
-	allocated separately from struct inferior.  So make it a regular
-	non-pointer field of inferior.
-
-	Remove target_desc_info_free, as it's no longer needed.
-
-	Change-Id: Ica2b97071226f31c40e86222a2f6922454df1229
-
-2023-02-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: move target_desc_info to inferior.h
-	In preparation for the following patch, where struct inferior needs to
-	"see" struct target_desc_info, move target_desc_info to the header file.
-
-	I initially moved the structure to target-descriptions.h, and later made
-	inferior.h include target-descriptions.h.  This worked, but it then
-	occured to me that target_desc_info is really an inferior property that
-	involves a target description, so I think it makes sense to have it in
-	inferior.h.
-
-	Change-Id: I3e81d04faafcad431e294357389f3d4c601ee83d
-
-2023-02-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use assignment to initialize variable in tdesc_parse_xml
-	Since allocate_target_description returns a target_desc_up, use
-	assignment to initialize the description variable.
-
-	Change-Id: Iab3311642c09b95648984f305936f4a4cde09440
-
-2023-02-03  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop LOCK from XCHG when optimizing
-	Like with segment overrides on LEA, optimize away such a redundant
-	instruction prefix.
-
-	x86-64: respect {nooptimize} when building VEX prefix
-	Swapping operands for commutative insns occurs outside of
-	optimize_encoding() and hence needs explicit checking for a request to
-	avoid any optimizations.
-
-	x86: respect {nooptimize} for LEA
-	Dropping a meaningless segment prefix occurs outside of
-	optimize_encoding() and hence needs explicit checking for a request to
-	avoid any optimizations.
-
-	x86-64: respect MOVABS when choosing alternative encodings
-	The alternative encoding is valid for MOV, but there's no such thing for
-	MOVABS.
-
-	RISC-V: don't disassemble unrecognized insns as .byte
-	Insn width granularity being 16 bits, producing byte granular output
-	isn't very useful. With there being a way to specific otherwise
-	unknown insns to the assembler, use that same representation (to be
-	precise: its <length>,<encoding> flavor) for disassembly.
-
-2023-02-03  Alan Modra  <amodra@gmail.com>
-
-	Add ECOFF Symbolic Header sanity checks
-	Anti-fuzzer measures.  The checks don't ensure the various elements in
-	the header are distinct, but that isn't important as far as making
-	sure we don't overrun the buffer containing all the elements.  Also,
-	we now don't care about offsets where the corresponding count is zero.
-
-		* ecoff.c (_bfd_ecoff_slurp_symbolic_info): Sanity check offsets
-		in debug->symbolic_header.
-
-2023-02-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: initial support for ROCm platform (AMDGPU) debugging
-	This patch adds the foundation for GDB to be able to debug programs
-	offloaded to AMD GPUs using the AMD ROCm platform [1].  The latest
-	public release of the ROCm release at the time of writing is 5.4, so
-	this is what this patch targets.
-
-	The ROCm platform allows host programs to schedule bits of code for
-	execution on GPUs or similar accelerators.  The programs running on GPUs
-	are typically referred to as `kernels` (not related to operating system
-	kernels).
-
-	Programs offloaded with the AMD ROCm platform can be written in the HIP
-	language [2], OpenCL and OpenMP, but we're going to focus on HIP here.
-	The HIP language consists of a C++ Runtime API and kernel language.
-	Here's an example of a very simple HIP program:
-
-	    #include "hip/hip_runtime.h"
-	    #include <cassert>
-
-	    __global__ void
-	    do_an_addition (int a, int b, int *out)
-	    {
-	      *out = a + b;
-	    }
-
-	    int
-	    main ()
-	    {
-	      int *result_ptr, result;
-
-	      /* Allocate memory for the device to write the result to.  */
-	      hipError_t error = hipMalloc (&result_ptr, sizeof (int));
-	      assert (error == hipSuccess);
-
-	      /* Run `do_an_addition` on one workgroup containing one work item.  */
-	      do_an_addition<<<dim3(1), dim3(1), 0, 0>>> (1, 2, result_ptr);
-
-	      /* Copy result from device to host.  Note that this acts as a synchronization
-	         point, waiting for the kernel dispatch to complete.  */
-	      error = hipMemcpyDtoH (&result, result_ptr, sizeof (int));
-	      assert (error == hipSuccess);
-
-	      printf ("result is %d\n", result);
-	      assert (result == 3);
-
-	      return 0;
-	    }
-
-	This program can be compiled with:
-
-	    $ hipcc simple.cpp -g -O0 -o simple
-
-	... where `hipcc` is the HIP compiler, shipped with ROCm releases.  This
-	generates an ELF binary for the host architecture, containing another
-	ELF binary with the device code.  The ELF for the device can be
-	inspected with:
-
-	    $ roc-obj-ls simple
-	    1       host-x86_64-unknown-linux                                           file://simple#offset=8192&size=0
-	    1       hipv4-amdgcn-amd-amdhsa--gfx906                                     file://simple#offset=8192&size=34216
-	    $ roc-obj-extract 'file://simple#offset=8192&size=34216'
-	    $ file simple-offset8192-size34216.co
-	    simple-offset8192-size34216.co: ELF 64-bit LSB shared object, *unknown arch 0xe0* version 1, dynamically linked, with debug_info, not stripped
-	                                                                                 ^
-	                       amcgcn architecture that my `file` doesn't know about ----´
-
-	Running the program gives the very unimpressive result:
-
-	    $ ./simple
-	    result is 3
-
-	While running, this host program has copied the device program into the
-	GPU's memory and spawned an execution thread on it.  The goal of this
-	GDB port is to let the user debug host threads and these GPU threads
-	simultaneously.  Here's a sample session using a GDB with this patch
-	applied:
-
-	    $ ./gdb -q -nx --data-directory=data-directory ./simple
-	    Reading symbols from ./simple...
-	    (gdb) break do_an_addition
-	    Function "do_an_addition" not defined.
-	    Make breakpoint pending on future shared library load? (y or [n]) y
-	    Breakpoint 1 (do_an_addition) pending.
-	    (gdb) r
-	    Starting program: /home/smarchi/build/binutils-gdb-amdgpu/gdb/simple
-	    [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
-	    [New Thread 0x7ffff5db7640 (LWP 1082911)]
-	    [New Thread 0x7ffef53ff640 (LWP 1082913)]
-	    [Thread 0x7ffef53ff640 (LWP 1082913) exited]
-	    [New Thread 0x7ffdecb53640 (LWP 1083185)]
-	    [New Thread 0x7ffff54bf640 (LWP 1083186)]
-	    [Thread 0x7ffdecb53640 (LWP 1083185) exited]
-	    [Switching to AMDGPU Wave 2:2:1:1 (0,0,0)/0]
-
-	    Thread 6 hit Breakpoint 1, do_an_addition (a=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>,
-	        b=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>,
-	        out=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>) at simple.cpp:24
-	    24        *out = a + b;
-	    (gdb) info inferiors
-	      Num  Description       Connection           Executable
-	    * 1    process 1082907   1 (native)           /home/smarchi/build/binutils-gdb-amdgpu/gdb/simple
-	    (gdb) info threads
-	      Id   Target Id                                    Frame
-	      1    Thread 0x7ffff5dc9240 (LWP 1082907) "simple" 0x00007ffff5e9410b in ?? () from /opt/rocm-5.4.0/lib/libhsa-runtime64.so.1
-	      2    Thread 0x7ffff5db7640 (LWP 1082911) "simple" __GI___ioctl (fd=3, request=3222817548) at ../sysdeps/unix/sysv/linux/ioctl.c:36
-	      5    Thread 0x7ffff54bf640 (LWP 1083186) "simple" __GI___ioctl (fd=3, request=3222817548) at ../sysdeps/unix/sysv/linux/ioctl.c:36
-	    * 6    AMDGPU Wave 2:2:1:1 (0,0,0)/0                do_an_addition (
-	        a=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>,
-	        b=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>,
-	        out=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>) at simple.cpp:24
-	    (gdb) bt
-	    Python Exception <class 'gdb.error'>: Unhandled dwarf expression opcode 0xe1
-	    #0  do_an_addition (a=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>,
-	        b=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>,
-	        out=<error reading variable: DWARF-2 expression error: `DW_OP_regx' operations must be used either alone or in conjunction with DW_OP_piece or DW_OP_bit_piece.>) at simple.cpp:24
-	    (gdb) continue
-	    Continuing.
-	    result is 3
-	    warning: Temporarily disabling breakpoints for unloaded shared library "file:///home/smarchi/build/binutils-gdb-amdgpu/gdb/simple#offset=8192&size=67208"
-	    [Thread 0x7ffff54bf640 (LWP 1083186) exited]
-	    [Thread 0x7ffff5db7640 (LWP 1082911) exited]
-	    [Inferior 1 (process 1082907) exited normally]
-
-	One thing to notice is the host and GPU threads appearing under
-	the same inferior.  This is a design goal for us, as programmers tend to
-	think of the threads running on the GPU as part of the same program as
-	the host threads, so showing them in the same inferior in GDB seems
-	natural.  Also, the host and GPU threads share a global memory space,
-	which fits the inferior model.
-
-	Another thing to notice is the error messages when trying to read
-	variables or printing a backtrace.  This is expected for the moment,
-	since the AMD GPU compiler produces some DWARF that uses some
-	non-standard extensions:
-
-	  https://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html
-
-	There were already some patches posted by Zoran Zaric earlier to make
-	GDB support these extensions:
-
-	  https://inbox.sourceware.org/gdb-patches/20211105113849.118800-1-zoran.zaric@amd.com/
-
-	We think it's better to get the basic support for AMD GPU in first,
-	which will then give a better justification for GDB to support these
-	extensions.
-
-	GPU threads are named `AMDGPU Wave`: a wave is essentially a hardware
-	thread using the SIMT (single-instruction, multiple-threads) [3]
-	execution model.
-
-	GDB uses the amd-dbgapi library [4], included in the ROCm platform, for
-	a few things related to AMD GPU threads debugging.  Different components
-	talk to the library, as show on the following diagram:
-
-	    +---------------------------+     +-------------+     +------------------+
-	    | GDB   | amd-dbgapi target | <-> |     AMD     |     |    Linux kernel  |
-	    |       +-------------------+     |   Debugger  |     +--------+         |
-	    |       | amdgcn gdbarch    | <-> |     API     | <=> | AMDGPU |         |
-	    |       +-------------------+     |             |     | driver |         |
-	    |       | solib-rocm        | <-> | (dbgapi.so) |     +--------+---------+
-	    +---------------------------+     +-------------+
-
-	  - The amd-dbgapi target is a target_ops implementation used to control
-	    execution of GPU threads.  While the debugging of host threads works
-	    by using the ptrace / wait Linux kernel interface (as usual), control
-	    of GPU threads is done through a special interface (dubbed `kfd`)
-	    exposed by the `amdgpu` Linux kernel module.  GDB doesn't interact
-	    directly with `kfd`, but instead goes through the amd-dbgapi library
-	    (AMD Debugger API on the diagram).
-
-	    Since it provides execution control, the amd-dbgapi target should
-	    normally be a process_stratum_target, not just a target_ops.  More
-	    on that later.
-
-	  - The amdgcn gdbarch (describing the hardware architecture of the GPU
-	    execution units) offloads some requests to the amd-dbgapi library,
-	    so that knowledge about the various architectures doesn't need to be
-	    duplicated and baked in GDB.  This is for example for things like
-	    the list of registers.
-
-	  - The solib-rocm component is an solib provider that fetches the list of
-	    code objects loaded on the device from the amd-dbgapi library, and
-	    makes GDB read their symbols.  This is very similar to other solib
-	    providers that handle shared libraries, except that here the shared
-	    libraries are the pieces of code loaded on the device.
-
-	Given that Linux host threads are managed by the linux-nat target, and
-	the GPU threads are managed by the amd-dbgapi target, having all threads
-	appear in the same inferior requires the two targets to be in that
-	inferior's target stack.  However, there can only be one
-	process_stratum_target in a given target stack, since there can be only
-	one target per slot.  To achieve it, we therefore resort the hack^W
-	solution of placing the amd-dbgapi target in the arch_stratum slot of
-	the target stack, on top of the linux-nat target.  Doing so allows the
-	amd-dbgapi target to intercept target calls and handle them if they
-	concern GPU threads, and offload to beneath otherwise.  See
-	amd_dbgapi_target::fetch_registers for a simple example:
-
-	    void
-	    amd_dbgapi_target::fetch_registers (struct regcache *regcache, int regno)
-	    {
-	      if (!ptid_is_gpu (regcache->ptid ()))
-	        {
-	          beneath ()->fetch_registers (regcache, regno);
-	          return;
-	        }
-
-	      // handle it
-	    }
-
-	ptids of GPU threads are crafted with the following pattern:
-
-	  (pid, 1, wave id)
-
-	Where pid is the inferior's pid and "wave id" is the wave handle handed
-	to us by the amd-dbgapi library (in practice, a monotonically
-	incrementing integer).  The idea is that on Linux systems, the
-	combination (pid != 1, lwp == 1) is not possible.  lwp == 1 would always
-	belong to the init process, which would also have pid == 1 (and it's
-	improbable for the init process to offload work to the GPU and much less
-	for the user to debug it).  We can therefore differentiate GPU and
-	non-GPU ptids this way.  See ptid_is_gpu for more details.
-
-	Note that we believe that this scheme could break down in the context of
-	containers, where the initial process executed in a container has pid 1
-	(in its own pid namespace).  For instance, if you were to execute a ROCm
-	program in a container, then spawn a GDB in that container and attach to
-	the process, it will likely not work.  This is a known limitation.  A
-	workaround for this is to have a dummy process (like a shell) fork and
-	execute the program of interest.
-
-	The amd-dbgapi target watches native inferiors, and "attaches" to them
-	using amd_dbgapi_process_attach, which gives it a notifier fd that is
-	registered in the event loop (see enable_amd_dbgapi).  Note that this
-	isn't the same "attach" as in PTRACE_ATTACH, but being ptrace-attached
-	is a precondition for amd_dbgapi_process_attach to work.  When the
-	debugged process enables the ROCm runtime, the amd-dbgapi target gets
-	notified through that fd, and pushes itself on the target stack of the
-	inferior.  The amd-dbgapi target is then able to intercept target_ops
-	calls.  If the debugged process disables the ROCm runtime, the
-	amd-dbgapi target unpushes itself from the target stack.
-
-	This way, the amd-dbgapi target's footprint stays minimal when debugging
-	a process that doesn't use the AMD ROCm platform, it does not intercept
-	target calls.
-
-	The amd-dbgapi library is found using pkg-config.  Since enabling
-	support for the amdgpu architecture (amdgpu-tdep.c) depends on the
-	amd-dbgapi library being present, we have the following logic for
-	the interaction with --target and --enable-targets:
-
-	 - if the user explicitly asks for amdgcn support with
-	   --target=amdgcn-*-* or --enable-targets=amdgcn-*-*, we probe for
-	   the amd-dbgapi and fail if not found
-
-	 - if the user uses --enable-targets=all, we probe for amd-dbgapi,
-	   enable amdgcn support if found, disable amdgcn support if not found
-
-	 - if the user uses --enable-targets=all and --with-amd-dbgapi=yes,
-	   we probe for amd-dbgapi, enable amdgcn if found and fail if not found
-
-	 - if the user uses --enable-targets=all and --with-amd-dbgapi=no,
-	   we do not probe for amd-dbgapi, disable amdgcn support
-
-	 - otherwise, amd-dbgapi is not probed for and support for amdgcn is not
-	   enabled
-
-	Finally, a simple test is included.  It only tests hitting a breakpoint
-	in device code and resuming execution, pretty much like the example
-	shown above.
-
-	[1] https://docs.amd.com/category/ROCm_v5.4
-	[2] https://docs.amd.com/bundle/HIP-Programming-Guide-v5.4
-	[3] https://en.wikipedia.org/wiki/Single_instruction,_multiple_threads
-	[4] https://docs.amd.com/bundle/ROCDebugger-API-Guide-v5.4
-
-	Change-Id: I591edca98b8927b1e49e4b0abe4e304765fed9ee
-	Co-Authored-By: Zoran Zaric <zoran.zaric@amd.com>
-	Co-Authored-By: Laurent Morichetti <laurent.morichetti@amd.com>
-	Co-Authored-By: Tony Tye <Tony.Tye@amd.com>
-	Co-Authored-By: Lancelot SIX <lancelot.six@amd.com>
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-
-2023-02-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make gdb_printing_disassembler::stream public
-	In the ROCm port, we need to access the underlying stream of a
-	gdb_printing_disassembler, so make it public.  The reason we need to
-	access it is to know whether it supports style escape code.  We then
-	pass that information to a temporary string_file we use while
-	symbolizing addresses.
-
-	Change-Id: Ib95755a4a45b8f6478787993e9f904df60dd8dc1
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/solib-svr4: don't disable probes interface if probe not found
-	In ROCm-GDB, we install an solib provider for the GPU code objects on
-	top of the svr4 provider for the host, in order to add solibs
-	representing the GPU code objects to the solib list containing the host
-	process' shared libraries.  We override the target_so_ops::handle_event
-	function pointer with our own, in which we call svr4_so_ops.handle_event
-	(which contains svr4_handle_solib_event) manually.  When the host
-	(un)loads a library, the ROCm part of handle_event is a no-op.  When the
-	GPU (un)loads a code object, we want the host side (svr4) to be a no-op.
-
-	The problem is that when handle_event is called because of a GPU event,
-	svr4_handle_solib_event gets called while not stopped at an svr4
-	probe.  It then assumes this means there's a problem with the probes
-	interface and disables it through the following sequence of events:
-
-	  - solib_event_probe_at return nullptr
-	  - svr4_handle_solib_event returns early
-	  - the make_scope_exit callback calls disable_probes_interface
-
-	We could fix that by making the ROCm handle_event callback check if an
-	svr4 probe is that the stop address, and only call
-	svr4_so_ops.handle_event if so.  However, it doesn't feel right to
-	include some svr4 implementation detail in the ROCm event handler.
-
-	Instead, this patch changes svr4_handle_solib_event to not assume it is
-	an error if called while not at an svr4 probe location, and therefore
-	not disable the probes interface.  That just means moving the
-	make_scope_exit call below where we lookup the probe by pc.
-
-	Change-Id: Ie8ddf5beffa2e92b8ebfdd016454546252519244
-	Co-Authored-By: Lancelot SIX <lancelot.six@amd.com>
-
-2023-02-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add gdbarch_up
-	Add a gdbarch_up unique pointer type, that calls gdbarch_free on
-	deletion.  This is used in the ROCm support patch at the end of this
-	series.
-
-	Change-Id: I4b808892d35d69a590ce83180f41afd91705b2c8
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add inferior_pre_detach observable
-	Add an observable notified in target_detach just before calling the
-	detach method on the inferior's target stack.  This allows observer to
-	do some work on the inferior while it's still ptrace-attached, in the
-	case of a native Linux inferior.  Specifically, the amd-dbgapi target
-	will need it in order to call amd_dbgapi_process_detach before the
-	process gets ptrace-detached.
-
-	Change-Id: I28b6065e251012a4c2db8a600fe13ba31671e3c9
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: add type definitions for pid, lwp and tid
-	A following patch will want to declare variables of the same type as
-	some ptid_t components.  To make that easy (and avoid harcoding those
-	types everywhere), define some type definitions in the ptid_t struct for
-	each of them.  Use them throughout ptid.h.
-
-	I initially used pid_t, lwp_t and tid_t, but there is the risk of some
-	system defining the pid_t type using a macro instead of a typedef, which
-	would break things.  So, use the _type suffix instead.
-
-	Change-Id: I820b0bea9dafcb4914f1c9ba4bb96b5c666c8dec
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-02  Pedro Alves  <pedro@palves.net>
-
-	gdb: make install_breakpoint return a non-owning reference
-	A following patch will want to install a breakpoint and then keep a
-	non-owning reference to it.  Make install_breakpoint return a non-owning
-	reference, to make that easy.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: I2e8106a784021ff276ce251e24708cbdccc2d479
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-02  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: add supports_arch_info callback to gdbarch_register
-	In the ROCm GDB port, there are some amdgcn architectures known by BFD
-	that we don't actually support in GDB.  We don't want
-	gdbarch_printable_names to return these architectures.
-
-	gdbarch_printable_names is used for a few things:
-
-	 - completion of the "set architecture" command
-	 - the gdb.architecture_names function in Python
-	 - foreach-arch selftests
-
-	Add an optional callback to gdbarch_register that is a predicate
-	indicating whether the gdbarch supports the given bfd_arch_info.  by
-	default, it is nullptr, meaning that the gdbarch accepts all "mach"s for
-	that architecture known by BFD.
-
-	Change-Id: I712f94351b0b34ed1f42e5cf7fc7ba051315d860
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-02-02  Tom de Vries  <tdevries@suse.de>
-
-	[gas] Update .loc syntax comment in dwarf2dbg.c
-	I noticed that a comment in gas/dwarf2dbg.c describing .loc syntax was missing
-	the "view VALUE" option.
-
-	Fix this by adding the missing option.
-
-2023-02-02  Enze Li  <enze.li@hotmail.com>
-
-	gdb: remove gdb_indent.sh
-	GDB has been converted to a C++ program for many years[1], and the
-	gdb_indent.sh will not be used any more. Therefore, remove the script as
-	obvious.
-
-	[1] https://sourceware.org/gdb/wiki/cxx-conversion
-
-	Approved-By: Simon Marchi <simark@simark.ca>
-
-2023-02-02  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	ld/doc: use "stack trace" instead of "unwind" for SFrame
-	SFrame format is meant for generating stack traces only.
-
-	ld/
-		* ld.texi: Replace the use of "unwind" with "stack trace".
-
-2023-02-02  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	bfd: use "stack trace" instead of "unwind" for SFrame
-	SFrame format is meant for generating stack traces only.
-
-	bfd/
-		* elf-bfd.h: Replace the use of "unwind" with "stack trace".
-		* elf-sframe.c: Likewise.
-		* elf64-x86-64.c: Likewise.
-		* elfxx-x86.c: Likewise.
-
-	include/
-		* elf/common.h: Likewise.
-
-2023-02-02  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: use "stack trace" instead of "unwind" for SFrame
-	SFrame format is meant for generating stack traces only.
-
-	gas/
-		* as.c: Replace the use of "unwind" with "stack trace".
-		* config/tc-aarch64.c: Likewise.
-		* config/tc-aarch64.h: Likewise.
-		* config/tc-i386.c: Likewise.
-		* config/tc-i386.h: Likewise.
-		* gen-sframe.c: Likewise.
-		* gen-sframe.h: Likewise.
-		* testsuite/gas/cfi-sframe/cfi-sframe-aarch64-2.s: Likewise.
-		* testsuite/gas/cfi-sframe/cfi-sframe-common-8.s: Likewise.
-		* testsuite/gas/cfi-sframe/common-empty-2.s: Likewise.
-		* testsuite/gas/cfi-sframe/common-empty-3.s: Likewise.
-
-2023-02-02  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe: use "stack trace" instead of "unwind" for SFrame
-	SFrame format is meant for generating stack traces only.
-
-	include/
-		* sframe.h: Fix comments in the header file.
-
-2023-02-02  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe/doc: use "stack trace" instead of "unwind" for SFrame
-	SFrame format is meant for generating stack traces only.
-
-	libsframe/
-		* doc/sframe-spec.texi: Use "stack trace" instead of "unwind".
-
-2023-02-02  Alan Modra  <amodra@gmail.com>
-
-	ld-elf/merge test update
-	The merge test fais on numerous targets because they don't support the
-	necessary pc-relative relocs.  This patch removes that part of the
-	merge test, and makes references to the merged strings from .data
-	rather than .text to better support targets that relax text by
-	default.
-
-2023-02-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-02-01  Alan Modra  <amodra@gmail.com>
-
-	obj-elf.h BYTES_IN_WORD
-	Don't define this.  It is defined just before elf-bfd.h is included,
-	but doesn't have any relevance there.  Instead is for aout64.h where
-	the default is 4 anyway.
-
-2023-02-01  Alan Modra  <amodra@gmail.com>
-
-	gas obj_end
-	Provide a way for config/obj-* to clean up at end of assembly, and do
-	so for ELF.
-
-		* obj.h (struct format_ops): Add "end".
-		* config/obj-aout.c (aout_format_ops): Init new field.
-		* config/obj-coff.c (coff_format_ops): Likewise.
-		* config/obj-ecoff.c (ecoff_format_ops): Likewise.
-		* config/obj-elf.c (elf_format_ops): Likewise.
-		(elf_begin): Move later in file.  Clear some more variables.
-		(comment_section): Make file scope.
-		(free_section_idx): Rewrite.
-		(elf_adjust_symtab): Expand str_htab_create call and use
-		free_section_idx as delete function.
-		(elf_frob_file_after_relocs): Don't clean up groups.indexes here.
-		(elf_end): New function.
-		* config/obj-elf.h (obj_end): Define.
-		* config/obj-multi.h (obj_end): Define.
-		* output-file.c (output_file_close): Call obj_end.
-
-2023-02-01  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdbserver: Add PID parameter to linux_get_auxv and linux_get_hwcap
-	This patch doesn't change gdbserver behaviour, but after later changes are
-	made it avoids a null pointer dereference when HWCAP needs to be obtained
-	for a specific process while current_thread is nullptr.
-
-	Fixing linux_read_auxv, linux_get_hwcap and linux_get_hwcap2 to take a PID
-	parameter seems more correct than setting current_thread in one particular
-	code path.
-
-	Changes are propagated to allow passing the new parameter through the call
-	chain.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-01  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdbserver: Add assert in find_register_by_number
-	It helped me during development, catching bugs closer to when they actually
-	happened.
-
-	Also remove the equivalent gdb_assert in regcache_raw_read_unsigned, since
-	it's checking the same condition a few frames above.
-
-	Suggested-By: Simon Marchi <simon.marchi@efficios.com>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-02-01  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix fetch_src_and_symbols.exp with native-gdbserver board
-	I noticed that the gdb.debuginfod/fetch_src_and_symbols.exp script
-	doesn't work with the native-gdbserver board, I see this error:
-
-	  ERROR: tcl error sourcing /tmp/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp.
-	  ERROR: gdbserver does not support run without extended-remote
-	      while executing
-	  "error "gdbserver does not support $command without extended-remote""
-	      (procedure "gdb_test_multiple" line 51)
-	      invoked from within
-
-	This was introduced with this commit:
-
-	  commit 7dd38e31d67c2548b52bea313ab18e40824c05da
-	  Date:   Fri Jan 6 18:45:27 2023 -0500
-
-	      gdb/linespec.c: Fix missing source file during breakpoint re-set
-
-	The problem is that the above commit introduces a direct use of the
-	"run" command, which doesn't work with 'target remote' targets, as
-	exercised by the native-gdbserver board.
-
-	To avoid this, in this commit I switch to using runto_main.  However,
-	calling runto_main will, by default, delete all the currently set
-	breakpoints.  As the point of the above commit was to check that a
-	breakpoint set before stating an inferior would be correctly re-set,
-	we need to avoid this breakpoint deleting behaviour.
-
-	To do this I make use of with_override, and override the
-	delete_breakpoints proc with a dummy proc which does nothing.
-
-	By reverting the GDB changes in commit 7dd38e31d67c I have confirmed
-	that even after my changes in this commit, the test still fails.  But
-	with the fixes in commit 7dd38e31d67c, this test now passed using the
-	unix, native-gdbserver, and native-extended-gdbserver boards.
-
-2023-02-01  Alexandra Hájková  <ahajkova@redhat.com>
-
-	gdb: defer warnings when loading separate debug files
-	Currently, when GDB loads debug information from a separate debug
-	file, there are a couple of warnings that could be produced if things
-	go wrong.
-
-	In find_separate_debug_file_by_buildid (build-id.c) GDB can give a
-	warning if the separate debug file doesn't include any actual debug
-	information, and in separate_debug_file_exists (symfile.c) we can warn
-	if the CRC checksum in the separate debug file doesn't match the
-	checksum in the original executable.
-
-	The problem here is that, when looking up debug information, GDB will
-	try several different approaches, lookup by build-id, lookup by
-	debug-link, and then a lookup from debuginfod.  GDB can potentially
-	give a warning from an earlier attempt, and then succeed with a later
-	attempt.  In the cases I have run into this is primarily a warning
-	about some out of date debug information on my machine, but then GDB
-	finds the correct information using debuginfod.  This can be confusing
-	to a user, they will see warnings from GDB when really everything is
-	working just fine.
-
-	For example:
-
-	  warning: the debug information found in "/usr/lib/debug//lib64/ld-2.32.so.debug" \
-	      does not match "/lib64/ld-linux-x86-64.so.2" (CRC mismatch).
-
-	This diagnostic was printed on Fedora 33 even when the correct
-	debuginfo was downloaded.
-
-	In this patch I propose that we defer any warnings related to looking
-	up debug information from a separate debug file.  If any of the
-	approaches are successful then GDB will not print any of the warnings.
-	As far as the user is concerned, everything "just worked".  Only if
-	GDB completely fails to find any suitable debug information will the
-	warnings be printed.
-
-	The crc_mismatch test compiles two executables: crc_mismatch and
-	crc_mismatch-2 and then strips them of debuginfo creating separate
-	debug files. The test then replaces crc_mismatch-2.debug with
-	crc_mismatch.debug to trigger "CRC mismatch" warning. A local
-	debuginfod server is setup to supply the correct debug file, now when
-	GDB looks up the debug info no warning is given.
-
-	The build-id-no-debug-warning.exp is similar to the previous test. It
-	triggers the "separate debug info file has no debug info" warning by
-	replacing the build-id based .debug file with the stripped binary and
-	then loading it to GDB.  It then also sets up local debuginfod server
-	with the correct debug file to download to make sure no warnings are
-	emitted.
-
-2023-02-01  Nick Clifton  <nickc@redhat.com>
-
-	Fix compilation of the assembler with sanitization enabled.
-	  * dwarf2dbg.c (emit_inc_line_addr): Use unsigned constants when checking addr_delta.
-
-2023-02-01  Alan Modra  <amodra@gmail.com>
-
-	Recursion in as_info_where
-	This function has a gas_assert, ie. possible call to as_abort, which
-	calls as_report_context, which calls as_info_where.
-
-		* messages.c (as_info_where): Don't gas_assert.
-
-2023-02-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/dwarf: rename cooked_index_vector to cooked_index
-	See previous patch's commit message for rationale.
-
-	Change-Id: I6b8cdc045dffccc1c01ed690ff258af09f6ff076
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/dwarf: rename cooked_index to cooked_index_shard
-	I propose to rename cooked_index_vector and cooked_index such that the
-	"main" object, that is the entry point to the index, is called
-	cooked_index.  The fact that the cooked index is implemented as a vector
-	of smaller indexes is an implementation detail.
-
-	This patch renames cooked_index to cooked_index_shard.  The following
-	patch renames cooked_index_vector to cooked_index.
-
-	Change-Id: Id650f97dcb23c48f8409fa0974cd093ca0b75177
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-02-01  Tom de Vries  <tdevries@suse.de>
-
-	[gas] Emit v2 .debug_line for -gdwarf-2
-	Currently, when using -gdwarf-2, gas emits a v3 .debug_line contribution.
-
-	Fix this by emitting a v2 .debug_line contribution instead.
-
-	gas/ChangeLog:
-
-	2023-01-31  Tom de Vries  <tdevries@suse.de>
-
-		PR 23941
-		* dwarf2dbg.c (DWARF2_LINE_VERSION): Set to 2 for -gdwarf-2.
-		(DWARF2_LINE_OPCODE_BASE): Handle DWARF2_LINE_VERSION == 2.
-		(dwarf2_directive_loc): Bump dwarf_level when encountering
-		v3 .loc options.
-		(out_debug_line): Don't output v3 standard opcodes for v2.
-		* testsuite/gas/i386/debug1.d: Update.
-		* testsuite/gas/i386/dwarf2-line-1.d: Update.
-		* testsuite/gas/i386/dwarf2-line-4.d: Update.
-
-2023-02-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add nullptr check to cooked_index_functions::dump
-	Since commit 7d82b08e9e0a ("gdb/dwarf: dump cooked index contents in
-	cooked_index_functions::dump"), we see:
-
-	    maint print objfiles /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.dwarf2/dw2-error/dw2-error^M
-	    ^M
-	    Object file /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.dwarf2/dw2-error/dw2-error:  Objfile at 0x614000005040, bfd at 0x6120000e08c0, 15 minsyms^M
-	    ^M
-	    Cooked index in use:^M
-	    ^M
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/gdb-checked-static-cast.h:58: internal-error: checked_static_cast: Assertion `result != nullptr' failed.^M
-	    A problem internal to GDB has been detected,^M
-	    further debugging may prove unreliable.^M
-	    ----- Backtrace -----^M
-	    FAIL: gdb.dwarf2/dw2-error.exp: maint print objfiles /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.dwarf2/dw2-error/dw2-error (GDB internal error)
-
-	The problem is that when cooked_index_functions fails to build an index,
-	per_objfile->index_table is nullptr.  Therefore, add a nullptr check,
-	like other methods of cooked_index_functions already do.
-
-	Print the "Cooked index in use" message after the nullptr check, such
-	that if the cooked index failed to build, that message is not printed.
-
-	Change-Id: Id67aef592e76c41b1e3bde9838a4e36cef873253
-
-2023-01-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: allow passing nullptr to checked_static_cast
-	Both static_cast and dynamic_cast handle nullptr (they return nullptr),
-	so I think checked_static_cast should too.  This will allow doing a null
-	check after a checked_static_cast:
-
-	  cooked_index_vector *table
-	    = (gdb::checked_static_cast<cooked_index_vector *>
-	       (per_bfd->index_table.get ()));
-	  if (table != nullptr)
-	    return;
-
-	Change-Id: If5c3134e63696f8e417c87b5f3901240c9f7ea97
-
-2023-01-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: adjust ensure_gdb_index to cooked_index_functions::dump changes
-	Following 7d82b08e9e0a ("gdb/dwarf: dump cooked index contents in
-	cooked_index_functions::dump"), I see some failures like:
-
-	    (gdb) mt print objfiles with-mf^M
-	    ^M
-	    Object file /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.base/with-mf/with-mf:  Objfile at 0x614000005040, bfd at 0x6120000e08c0, 18 minsyms    ^M
-	    ^M
-	    Cooked index in use:^M
-	    ^M
-	    ...
-	    (gdb) FAIL: gdb.base/with-mf.exp: check if index present
-
-	This is because the format of the "Cooked index in use" line changed
-	slightly.  Adjust ensure_gdb_index to expect the trailing colon.
-
-	Change-Id: If0a87575c02d8a0bc0d4b8ead540c234c62760f8
-
-2023-01-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: fix xfail in gdb.ada/ptype_tagged_param.exp
-	I see:
-
-	    ERROR: wrong # args: should be "xfail message"
-	        while executing
-	    "xfail "no debug info" $gdb_test_name"
-	        ("uplevel" body line 3)
-	        invoked from within
-	    "uplevel {
-	            if {!$has_runtime_debug_info} {
-	                xfail "no debug info" $gdb_test_name
-	            } else {
-	                fail $gdb_test_name
-	            }
-	        }"
-
-	This is because the xfail takes only one argument, fix that.
-
-	Change-Id: I2e304d4fd3aa61067c04b5dac2be2ed34dab3190
-
-2023-01-31  Nick Clifton  <nickc@redhat.com>
-
-	Updated Swedish translation for the binutils sub-directory
-
-2023-01-31  Alan Modra  <amodra@gmail.com>
-
-	Re: Another fix for EFI generation with LTO enabled
-	Revert 1c66b8a03989 and instead fix the broken list pointer.
-
-		PR 29998
-		* pe-dll.c (build_filler_bfd): Revert last change.
-		* ldlang.c (lang_process): When rescanning archives for lto,
-		fix file_chain.tail pointer if the insert point happens to be
-		at the end of the list.
-
-2023-01-31  Andrew Burgess  <aburgess@redhat.com>
-
-	gas/ppc: Additional tests for DFP instructions
-	I noticed that some of the Power6 DFP instructions were not covered by
-	the assembler tests.  I've added a new test file which I believe
-	covers all the DFP Power6 instructions.
-
-	The existing gas/testsuite/gas/ppc/power6.d test is called:
-
-	  POWER6 tests (includes DFP and Altivec)
-
-	And does cover some of the DFP instructions.  But, given the number of
-	additional instructions I'm adding I opted to add a whole new test
-	file.  I've left the original power6.d unchanged, so there is now some
-	overlap, but I don't think that should hurt much.
-
-2023-01-31  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: make C-extension JAL available again for (32-bit) assembly
-	Along with the normal JAL alias, the C-extension one should have been
-	moved as well by 839189bc932e ("RISC-V: re-arrange opcode table for
-	consistent alias handling"), for the assembler to actually be able to
-	use it where/when possible.
-
-	Since neither this nor any other compressed branch insn was being tested
-	so far, take the opportunity and introduce a new testcase covering those.
-
-2023-01-31  Alan Modra  <amodra@gmail.com>
-
-	Silence ubsan warning about 1<<31
-		* merge.c (hash_blob): Write 1u << 31.
-
-2023-01-31  Alan Modra  <amodra@gmail.com>
-
-	PR 30060, ASAN error in bfd_cache_close
-	After bfd_close nothing should access bfd memory.  Now that bfd_close
-	always tidies up even after an error, attempting to tidy the cached
-	bfd list by calling bfd_cache_close is wrong and not needed.
-
-		PR 30060
-		* ar.c (remove_output): Don't call bfd_cache_close.
-		(output_bfd): Delete.
-		* arsup.c (ar_end): Call bfd_close_all_done, not bfd_cache_close.
-
-2023-01-31  Alan Modra  <amodra@gmail.com>
-
-	testsuite XPASSes
-	This adjusts the testsuite to get rid of a number of XPASSes that have
-	appeared.  Someone might like to look into a better patch for the s390
-	change.
-
-	aarch64-pe  XPASS: weak symbols
-	arm-nacl  XPASS: rgn-over8
-	mcore-pe  XPASS: ld-scripts/provide-8
-	mips64-linux-gnuabi64  XPASS: vers4
-	mips64-linux-gnuabi64  XPASS: vers4b
-	mips-linux-gnu  XPASS: vers4
-	mips-linux-gnu  XPASS: vers4b
-	s390-linux-gnu  XPASS: undefined line
-	sh4-linux-gnu  XPASS: --gc-sections with __start_SECTIONNAME
-	sh-coff  XPASS: objcopy object (simple copy)
-	sh-coff  XPASS: objcopy executable (pr25662)
-
-	binutils/
-		* testsuite/binutils-all/objcopy.exp: Don't xfail "simple
-		copy" and "pr25662" on sh-*-coff.  Remove all non-ELF xfails
-		on "ELF unknown section type" test.
-	ld/
-		* testsuite/ld-elfvers/vers.exp (vers4, vers4b): Don't xfail
-		all mips, just xfail mips irix.
-		* testsuite/ld-gc/pr19161.d: Don't xfail sh.
-		* testsuite/ld-scripts/rgn-over8-ok.d: Don't xfail nacl.
-		* testsuite/ld-scripts/weak.exp: Don't xfail aarch64-pe.
-		* testsuite/ld-undefined/undefined.exp: Conditionally xfail
-		"undefined line" depending on gcc version for s390.
-
-2023-01-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-30  Tom Tromey  <tom@tromey.com>
-
-	Remove value_next declaration
-	value_next is declared but not defined.  It's long obsolete.  This
-	patch removes the stray declaration.
-
-2023-01-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix dwarf2/cooked-index.c compilation on 32-bit systems
-	The i386 builder shows:
-
-	    ../../binutils-gdb/gdb/dwarf2/cooked-index.c: In member function ‘void cooked_index_vector::dump(gdbarch*) const’:
-	    ../../binutils-gdb/gdb/dwarf2/cooked-index.c:492:40: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘std::__underlying_type_impl<sect_offset, true>::type’ {aka ‘long long unsigned int’} [-Werror=format=]
-	      492 |       gdb_printf ("    DIE offset: 0x%lx\n",
-	          |                                      ~~^
-	          |                                        |
-	          |                                        long unsigned int
-	          |                                      %llx
-	      493 |     to_underlying (entry->die_offset));
-	          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	          |                   |
-	          |                   std::__underlying_type_impl<sect_offset, true>::type {aka long long unsigned int}
-
-	The die_offset's underlying type is uint64, so use PRIx64 in the format
-	string.
-
-	Change-Id: Ibdde4c624ed1bb50eced9a514a4e37aec70a1323
-
-2023-01-30  Mark Wielaard  <mark@klomp.org>
-
-	gdb: Replace memcpy with std::copy to avoid some g++ warnings on sparc
-	For some reason g++ 12.2.1 on sparc produces spurious warnings for
-	stringop-overread and restrict in fbsd-tdep.c for a memcpy call.
-	Use std::copy to avoid the warnings:
-
-	In function ‘void* memcpy(void*, const void*, size_t)’,
-	    inlined from ‘gdb::optional<std::vector<unsigned char, gdb::default_init_allocator<unsigned char, std::allocator<unsigned char> > > > fbsd_make_note_desc(target_object, uint32_t)’ at ../../binutils-gdb/gdb/fbsd-tdep.c:666:10:
-	/usr/include/bits/string_fortified.h:29:33: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ specified bound 18446744073709551612 exceeds maximum object size 9223372036854775807 [-Werror=stringop-overflow=]
-
-	In function ‘void* memcpy(void*, const void*, size_t)’,
-	    inlined from ‘gdb::optional<std::vector<unsigned char, gdb::default_init_allocator<unsigned char, std::allocator<unsigned char> > > > fbsd_make_note_desc(target_object, uint32_t)’ at ../../binutils-gdb/gdb/fbsd-tdep.c:673:10:
-	/usr/include/bits/string_fortified.h:29:33: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 18446744073709551612 bytes at offsets 0 and 0 overlaps 9223372036854775801 bytes at offset -9223372036854775805 [-Werror=restrict]
-
-	gdb/ChangeLog:
-
-		* fbsd-tdep.c (fbsd_make_note_desc): Use std::copy instead
-		of memcpy.
-
-2023-01-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/dwarf: dump cooked index contents in cooked_index_functions::dump
-	As I am investigating a crash I see with the cooked index, I thought it
-	would be useful to have a way to dump the index contents.  For those not
-	too familiar with it (that includes me), it can help get a feel of what
-	it contains and how it is structured.
-
-	The cooked_index_functions::dump function is called as part of the
-	"maintenance print objfiles" command.  I tried to make the output
-	well structured and indented to help readability, as this prints a lot
-	of text.
-
-	The dump function first dumps all cooked index entries, like this:
-
-	    [25] ((cooked_index_entry *) 0x621000121220)
-	    name:       __ioinit
-	    canonical:  __ioinit
-	    DWARF tag:  DW_TAG_variable
-	    flags:      0x2 [IS_STATIC]
-	    DIE offset: 0x21a4
-	    parent:     ((cooked_index_entry *) 0x6210000f9610) [std]
-
-	Then the information about the main symbol:
-
-	    main: ((cooked_index_entry *) 0x621000123b40) [main]
-
-	And finally the address map contents:
-
-	    [1] ((addrmap *) 0x6210000f7910)
-
-	      [0x0] ((dwarf2_per_cu_data *) 0)
-	      [0x118a] ((dwarf2_per_cu_data *) 0x60c000007f00)
-	      [0x1cc7] ((dwarf2_per_cu_data *) 0)
-	      [0x1cc8] ((dwarf2_per_cu_data *) 0x60c000007f00)
-	      [0x1cdf] ((dwarf2_per_cu_data *) 0)
-	      [0x1ce0] ((dwarf2_per_cu_data *) 0x60c000007f00)
-
-	The display of address maps above could probably be improved, to show it
-	more as ranges, but I think this is a reasonable start.
-
-	Note that this patch depends on Pedro Alves' patch "enum_flags
-	to_string" [1].  If my patch is to be merged before Pedro's series, I
-	will cherry-pick this patch from his series and merge it before mine.
-
-	[1] https://inbox.sourceware.org/gdb-patches/20221212203101.1034916-8-pedro@palves.net/
-
-	Change-Id: Ida13e479fd4c8d21102ddd732241778bc3b6904a
-
-2023-01-30  Pedro Alves  <pedro@palves.net>
-
-	enum_flags to_string
-	This commit introduces shared infrastructure that can be used to
-	implement enum_flags -> to_string functions.  With this, if we want to
-	support converting a given enum_flags specialization to string, we
-	just need to implement a function that provides the enumerator->string
-	mapping, like so:
-
-	 enum some_flag
-	   {
-	     SOME_FLAG1 = 1 << 0,
-	     SOME_FLAG2 = 1 << 1,
-	     SOME_FLAG3 = 1 << 2,
-	   };
-
-	 DEF_ENUM_FLAGS_TYPE (some_flag, some_flags);
-
-	 static std::string
-	 to_string (some_flags flags)
-	 {
-	   static constexpr some_flags::string_mapping mapping[] = {
-	     MAP_ENUM_FLAG (SOME_FLAG1),
-	     MAP_ENUM_FLAG (SOME_FLAG2),
-	     MAP_ENUM_FLAG (SOME_FLAG3),
-	   };
-	   return flags.to_string (mapping);
-	 }
-
-	.. and then to_string(SOME_FLAG2 | SOME_FLAG3) produces a string like
-	"0x6 [SOME_FLAG2 SOME_FLAG3]".
-
-	If we happen to forget to update the mapping array when we introduce a
-	new enumerator, then the string representation will pretty-print the
-	flags it knows about, and then the leftover flags in hex (one single
-	number).  For example, if we had missed mapping SOME_FLAG2 above, we'd
-	end up with:
-
-	  to_string(SOME_FLAG2 | SOME_FLAG3)  => "0x6 [SOME_FLAG2 0x4]");
-
-	Other than in the unit tests included, no actual usage of the
-	functionality is added in this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: I835de43c33d13bc0c95132f42c3f97318b875779
-
-2023-01-30  Tom Tromey  <tromey@adacore.com>
-
-	Fix comparator bug in cooked index
-	Simon pointed out that the cooked index template-matching patch
-	introduced a failure in libstdc++ debug mode.  In particular, the new
-	code violates the assumption of std::lower_bound and std::upper_bound
-	that the range is sorted with respect to the comparison.
-
-	When I first debugged this, I thought the problem was unfixable as-is
-	and that a second layer of filtering would have to be done.  However,
-	on irc, Simon pointed out that it could perhaps be solved if the
-	comparison function were assured that one operand always came from the
-	index, with the other always being the search string.
-
-	This patch implements this idea.
-
-	First, a new mode is introduced: a sorting mode for
-	cooked_index_entry::compare.  In this mode, strings are compared
-	case-insensitively, but we're careful to always sort '<' before any
-	other printable character.  This way, two names like "func" and
-	"func<param>" will be sorted next to each other -- i.e., "func1" will
-	not be seen between them.  This is important when searching.
-
-	Second, the compare function is changed to work in a strcmp-like way.
-	This makes it easier to test and (IMO) understand.
-
-	Third, the compare function is modified so that in non-sorting modes,
-	the index entry is always the first argument.  This allows consistency
-	in compares.
-
-	I regression tested this in libstdc++ debug mode on x86-64 Fedora 36.
-	It fixes the crash that Simon saw.
-
-	This is v2.  I believe it addresses the review comments, except for
-	the 'enum class' change, as I mentioned in email on the list.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-30  Tom Tromey  <tom@tromey.com>
-
-	Clean up lnp_state_machine constructor
-	This changes the lnp_state_machine constructor to initialize members
-	directly; and changes lnp_state_machine itself to initialize members
-	inline when possible.
-
-	Reviewed-By: Lancelot Six <lancelot.six@amd.com>
-
-2023-01-30  Tom Tromey  <tromey@adacore.com>
-
-	Make addrmap const-correct in cooked index
-	After the cooked index is created, the addrmaps should be const.
-
-	Change-Id: I8234520ab346ced40a8dd6e478ba21fc438c2ba2
-
-2023-01-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: provide const-correct versions of addrmap::find and addrmap::foreach
-	Users of addrmap::find and addrmap::foreach that have a const addrmap
-	should ideally receive const pointers to objects, to indicate they
-	should not be modified.  However, users that have a non-const addrmap
-	should still receive a non-const pointer.
-
-	To achieve this, without adding more virtual methods, make the existing
-	find and foreach virtual methods private and prefix them with "do_".
-	Add small non-const and const wrappers for find and foreach.
-
-	Obviously, the const can be cast away, but if using static_cast
-	instead of C-style casts, then the compiler won't let you cast
-	the const away.  I changed all the callers of addrmap::find and
-	addrmap::foreach I could find to make them use static_cast.
-
-	Change-Id: Ia8e69d022564f80d961413658fe6068edc71a094
-
-2023-01-30  Tom Tromey  <tromey@adacore.com>
-
-	Use xfail in ptype_tagged_param.exp
-	Pedro pointed out that ptype_tagged_param.exp used a kfail, but an
-	xfail would be more appropriate as the problem appears to be in gcc,
-	not gdb.
-
-2023-01-30  Christina Schimpe  <christina.schimpe@intel.com>
-
-	gdb: Remove workaround for the vCont packet
-	The workaround for the vCont packet is no longer required due to the
-	former commit "gdb: Make global feature array a per-remote target array".
-	The vCont packet is now checked once when the connection is started and
-	the supported vCont actions are set to the target's remote state
-	attribute.
-
-2023-01-30  Christina Schimpe  <christina.schimpe@intel.com>
-
-	gdb: Add per-remote target variables for memory read and write config
-	This patch adds per-remote target variables for the configuration of
-	memory read- and write packet size.  It is a further change to commit
-	"gdb: Make global feature array a per-remote target array" to apply the
-	fixme notes described in commit 5b6d1e4 "Multi-target support".
-
-	The former global variables for that configuration are still available
-	to allow the command line configuration for all future remote
-	connections.  Similar to the command line configuration of the per-
-	remote target feature array, the commands
-
-	- set remotewritesize (deprecated)
-	- set remote memory-read-packet-size
-	- set remote memory-write-packet-size
-
-	will configure the current target (if available).  If no target is
-	available, the default configuration for future remote connections is
-	adapted.  The show command will display the current remote target's
-	packet size configuration.  If no remote target is selected, the default
-	configuration for future connections will be shown.
-
-	It is required to adapt the test gdb.base/remote.exp which is failing
-	for --target_board=native-extended-gdbserver.  With that board GDB
-	connects to gdbserver at gdb start time.  Due to this patch two loggings
-	"The target may not be able to.." are shown if the command 'set remote
-	memory-write-packet-size fixed' is executed while a target is connected
-	for the current inferior.  To fix this, the clean_restart command is
-	moved to a later time point of the test.  It is sufficient to be
-	connected to the server when "runto_main" is executed.  Now the
-	connection time is similar to a testrun with
-	--target_board=native-gdbserver.
-
-	To allow the user to distinguish between the packet-size configuration
-	for future remote connections and for the currently selected target, the
-	commands' loggings are adapted.
-
-2023-01-30  Christina Schimpe  <christina.schimpe@intel.com>
-
-	gdb: Make global feature array a per-remote target array
-	This patch applies the appropriate FIXME notes described in commit 5b6d1e4
-	"Multi-target support".
-
-	"You'll notice that remote.c includes some FIXME notes.  These refer to
-	the fact that the global arrays that hold data for the remote packets
-	supported are still globals.  For example, if we connect to two
-	different servers/stubs, then each might support different remote
-	protocol features.  They might even be different architectures, like
-	e.g., one ARM baremetal stub, and a x86 gdbserver, to debug a
-	host/controller scenario as a single program.  That isn't going to
-	work correctly today, because of said globals.  I'm leaving fixing
-	that for another pass, since it does not appear to be trivial, and I'd
-	rather land the base work first.  It's already useful to be able to
-	debug multiple instances of the same server (e.g., a distributed
-	cluster, where you have full control over the servers installed), so I
-	think as is it's already reasonable incremental progress."
-
-	Using this patch it is possible to configure per-remote targets'
-	feature packets.
-
-	Given the following setup for two gdbservers:
-
-	~~~~
-	gdbserver --multi :1234
-	gdbserver --disable-packet=vCont --multi :2345
-	~~~~
-
-	Before this patch configuring of range-stepping was not possible for one
-	of two connected remote targets with different support for the vCont
-	packet.  As one of the targets supports vCont, it should be possible to
-	configure "set range-stepping".  However, the output of GDB looks like:
-
-	(gdb) target extended-remote :1234
-	Remote debugging using :1234
-	(gdb) add-inferior -no-connection
-	[New inferior 2]
-	Added inferior 2
-	(gdb) inferior 2
-	[Switching to inferior 2 [<null>] (<noexec>)]
-	(gdb) target extended-remote :2345
-	Remote debugging using :2345
-	(gdb) set range-stepping on
-	warning: Range stepping is not supported by the current target
-	(gdb) inferior 1
-	[Switching to inferior 1 [<null>] (<noexec>)]
-	(gdb) set range-stepping on
-	warning: Range stepping is not supported by the current target
-	~~~~
-
-	Two warnings are shown.  The warning for inferior 1 should not appear
-	as it is connected to a target supporting the vCont package.
-
-	~~~~
-	(gdb) target extended-remote :1234
-	Remote debugging using :1234
-	(gdb) add-inferior -no-connection
-	[New inferior 2]
-	Added inferior 2
-	(gdb) inferior 2
-	[Switching to inferior 2 [<null>] (<noexec>)]
-	(gdb) target extended-remote :2345
-	Remote debugging using :2345
-	(gdb) set range-stepping on
-	warning: Range stepping is not supported by the current target
-	(gdb) inferior 1
-	[Switching to inferior 1 [<null>] (<noexec>)]
-	(gdb) set range-stepping on
-	(gdb)
-	~~~~
-
-	Now only one warning is shown for inferior 2, which is connected to
-	a target not supporting vCont.
-
-	The per-remote target feature array is realized by a new class
-	remote_features, which stores the per-remote target array and
-	provides functions to determine supported features of the target.
-	A remote_target object now has a new member of that class.
-
-	Each time a new remote_target object is initialized, a new per-remote
-	target array is constructed based on the global remote_protocol_packets
-	array.  The global array is initialized in the function _initialize_remote
-	and can be configured using the command line.  Before this patch the
-	command line configuration affected current targets and future remote
-	targets (due to the global feature array used by all remote
-	targets).  This behavior is different and the configuration applies as
-	follows:
-
-	 - If a target is connected, the command line configuration affects the
-	   current connection.  All other existing remote targets are not
-	   affected.
-
-	 - If not connected, the command line configuration affects future
-	   connections.
-
-	The show command displays the current remote target's configuration.  If no
-	remote target is selected the default configuration for future
-	connections is shown.
-
-	If we have for instance the following setup with inferior 2 being
-	selected:
-	~~~~
-	(gdb) info inferiors
-	  Num  Description       Connection                Executable
-	  1    <null>             1 (extended-remote :1234)
-	* 2    <null>             2 (extended-remote :2345)
-	~~~~
-
-	Before this patch, if we run 'set remote multiprocess-feature-packet', the
-	following configuration was set:
-	The feature array of all remote targets (in this setup the two connected
-	targets) and all future remote connections are affected.
-
-	After this patch, it will be configured as follows:
-	The feature array of target with port :2345 which is currently selected
-	will be configured.  All other existing remote targets are not affected.
-	The show command 'show remote multiprocess-feature-packet' will display
-	the configuration of target with port :2345.
-
-	Due to this configuration change, it is required to adapt the test
-	"gdb/testsuite/gdb.multi/multi-target-info-inferiors.exp" to configure the
-	multiprocess-feature-packet before the connections are created.
-
-	To inform the gdb user about the new behaviour of the 'show remote
-	PACKET-NAME' commands and the new configuration impact for remote
-	targets using the 'set remote PACKET-NAME' commands the commands'
-	outputs are adapted.  Due to this change it is required to adapt each
-	test using the set/show remote 'PACKET-NAME' commands.
-
-2023-01-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-27  Tom Tromey  <tromey@adacore.com>
-
-	More const-correctness in cooked indexer
-	I noticed that iterating over the index yields non-const
-	cooked_index_entry objects.  However, after finalization, they should
-	not be modified.  This patch enforces this by adding const where
-	needed.
-
-	v2 makes the find, all_entries, and wait methods const as well.
-
-2023-01-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Simplify gdb.base/unwind-on-each-insn.exp.tcl
-	Recent commit 1d98e564c97 ("[gdb/testsuite] Add
-	gdb.base/unwind-on-each-insn-{amd64,i386}.exp") broke commit eb015bf86b6
-	("[gdb/testsuite] Avoid using .eh_frame in gdb.base/unwind-on-each-insn.exp"),
-	in the sense that gdb.base/unwind-on-each-insn.exp no longer uses
-	-fno-asynchronous-unwind-tables, due to trying to concatenate two lists using:
-	...
-	    lappend srcfile2_flags $nodebug_flags
-	...
-	which should instead be:
-	...
-	    lappend srcfile2_flags {*}$nodebug_flags
-	...
-
-	Fix this by simplifying gdb.base/unwind-on-each-insn.exp.tcl, completely
-	leaving the responsibility to set srcfile_flags and srcfile2_flags to each
-	includer.
-
-	Tested on x86_64-linux.
-
-2023-01-27  Tom Tromey  <tromey@adacore.com>
-
-	Invert test in gdb.ada/ptype_tagged_param.exp
-	Simon pointed out that the kfail check in
-	gdb.ada/ptype_tagged_param.exp is inverted.  See:
-
-	https://sourceware.org/pipermail/gdb-patches/2023-January/196296.html
-
-	This patch fixes the problem.
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: more debug output
-	Add some additional debug output that I've found really useful while
-	working on the previous set of patches.
-
-	Unless tui debug is turned on, then there should be no user visible
-	changes with this commit.
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: avoid extra refresh_window on vertical scroll
-	While working on the previous couple of patches I noticed that when I
-	scroll the src and asm windows vertically, I get two refresh_window
-	calls.
-
-	The two calls can be traced back to
-	tui_source_window_base::update_source_window_as_is, in here we call
-	show_source_content, which calls refresh_window, and then
-	update_exec_info, which also calls refresh_window.
-
-	In this commit I propose making the refresh_window call in
-	update_exec_info optional.  In update_source_window_as_is I'll then
-	call update_exec_info before calling show_source_content, and pass a
-	flag to update_exec_info to defer the refresh.
-
-	There are places where update_exec_info is used without any subsequent
-	refresh_window call (e.g. when a breakpoint is updated), so
-	update_exec_info does not to call refresh_window in some cases, which
-	is why I'm using a flag to control the refresh.
-
-	With this changes I'm now only seeing a single refresh_window call for
-	each vertical scroll.
-
-	There should be no user visible changes after this commit.
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: avoid extra refresh_window on horizontal scroll
-	While working on the previous patches I noticed that in some cases I
-	was seeing two calls to tui_source_window_base::refresh_window when
-	scrolling the window horizontally.
-
-	The two calls would trigger in for the tui-disasm-long-lines.exp test
-	when the pad needed to be refilled.  The two called both come from
-	tui_source_window_base::show_source_content.  The first call is nested
-	within check_and_display_highlight_if_needed, while the second call is
-	done directly at the end of show_source_content.
-
-	The check_and_display_highlight_if_needed is being used to draw the
-	window box to the window, this is needed here because
-	show_source_content is what gets called when the window needs
-	updating, e.g. after a resize.  We could potentially do the boxing in
-	refresh_window, but then we'd be doing it each time we scroll, even
-	though the box doesn't need changing in this case.
-
-	However, we can move the check_and_display_highlight_if_needed to be
-	the last thing done in show_source_content, this means that we can
-	rely on the refresh_window call within it to be our single refresh
-	call.
-
-	There should be no user visible changes after this commit.
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: rewrite of tui_source_window_base to handle very long lines
-	This commit addresses an issue that is exposed by the test script
-	gdb.tui/tui-disasm-long-lines.exp, that is, tui_source_window_base
-	does not handle very long lines.
-
-	The problem can be traced back to the newpad call in
-	tui_source_window_base::show_source_content, this is where we allocate
-	a backing pad to hold the window content.
-
-	Unfortunately, there appears to be a limit to the size of pad that can
-	be allocated, and the gdb.tui/tui-disasm-long-lines.exp test goes
-	beyond this limit.  As a consequence the newpad call fails and returns
-	nullptr.
-
-	It just so happens that the reset of the tui_source_window_base code
-	can handle the pad being nullptr (this happens anyway when the window
-	is first created, so we already depend on nullptr handling), so all
-	that happens is the source window displays no content.
-
-	... well, sort of ... something weird does happen in the command
-	window, we seem to see a whole bunch of blank lines.  I've not
-	bothered to track down exactly what's happening there, but it's some
-	consequence of GDB attempting to write content to a WINDOW* that is
-	nullptr.
-
-	Before explaining my solution, I'll outline how things currently work:
-
-	Consider we have the following window content to display:
-
-	  aaaaaaaaaa
-	  bbbbbbbbbbbbbbbbbbbb
-	  ccccccccccccccc
-
-	the longest line here is 20 characters.  If our display window is 10
-	characters wide, then we will create a pad that is 20 characters wide,
-	and then copy the lines of content into the pad:
-
-	  .--------------------.
-	  |aaaaaaaaaa          |
-	  |bbbbbbbbbbbbbbbbbbbb|
-	  |ccccccccccccccc     |
-	  .--------------------.
-
-	Now we will copy a 10 character wide view into this pad to the
-	display, our display will then see:
-
-	  .----------.
-	  |aaaaaaaaaa|
-	  |bbbbbbbbbb|
-	  |cccccccccc|
-	  .----------.
-
-	As the user scrolls left and right we adjust m_horizontal_offset and
-	use this to select which part of the pad is copied onto the display.
-
-	The benefit of this is that we only need to copy the content to the
-	pad once, which includes processing the ansi escape sequences, and
-	then the user can scroll left and right as much as they want
-	relatively cheaply.
-
-	The problem then, is that if the longest content line is very long,
-	then we try to allocate a very large pad, which can fail.
-
-	What I propose is that we allow both the pad and the display view to
-	scroll.  Once we allow this, then it becomes possible to allocate a
-	pad that is smaller than the longest display line.  We then copy part
-	of the content into the pad.  As the user scrolls the view left and
-	right GDB will continue to copy content from the pad just as it does
-	right now.  But, when the user scrolls to the edge of the pad, GDB
-	will copy a new block of content into the pad, and then update the
-	view as normal.  This all works fine so long as the maximum pad size
-	is larger than the current window size - which seems a reasonable
-	restriction, if ncurses can't support a pad of a given size it seems
-	likely it will not support a display window of that size either.
-
-	If we return to our example above, but this time we assume that the
-	maximum pad size is 15 characters, then initially the pad would be
-	loaded like this:
-
-	  .---------------.
-	  |aaaaaaaaaa     |
-	  |bbbbbbbbbbbbbbb|
-	  |ccccccccccccccc|
-	  .---------------.
-
-	Notice that the last 5 characters from the 'b' line are no longer
-	included in the pad.  There is still enough content though to fill the
-	10 character wide display, just as we did before.
-
-	The pad contents remain unchanged until the user scrolls the display
-	right to this point:
-
-	  .----------.
-	  |aaaaa     |
-	  |bbbbbbbbbb|
-	  |cccccccccc|
-	  .----------.
-
-	Now, when the user scrolls right once more GDB spots that the user has
-	reached the end of the pad, and the pad contents are reloaded, like
-	this:
-
-	  .---------------.
-	  |aaaaa          |
-	  |bbbbbbbbbbbbbbb|
-	  |cccccccccc     |
-	  .---------------.
-
-	The display can now be updated from the pad again just like normal.
-
-	With this change in place the gdb.tui/tui-disasm-long-lines.exp test
-	now correctly loads the assembler code, and we can scroll around as
-	expected.
-
-	Most of the changes are pretty mundane, just updating to match the
-	above.  One interesting change though is the new member function
-	tui_source_window_base::puts_to_pad_with_skip.  This replaces direct
-	calls to tui_puts when copying content to the pad.
-
-	The content strings contain ansi escape sequences.  When these strings
-	are written to the pad these escape sequences are translated into
-	ncurses attribute setting calls.
-
-	Now however, we sometimes only write a partial string to the pad,
-	skipping some of the leading content.  Imagine then that we have a
-	content line like this:
-
-	  "\033[31mABCDEFGHIJKLM\033[0m"
-
-	Now the escape sequences in this content mean that the actual
-	content (the 'ABCDEFGHIJKLM') will have a red foreground color.
-
-	If we want to copy this to the pad, but skip the first 3 characters,
-	then what we expect is to have the pad contain 'DEFGHIJKLM', but this
-	text should still have a red foreground color.
-
-	It is this problem that puts_to_pad_with_skip solves.  This function
-	skips some number of printable characters, but processes all the
-	escape sequences.  This means that when we do start printing the
-	actual content the content will have the expected attributes.
-	/
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: make m_horizontal_offset private
-	I noticed that tui_source_window_base::m_horizontal_offset was
-	protected, but could be made private, so lets do that.
-
-	This makes more sense in the context of a later commit where I plan to
-	add another member variable that is similar to m_horizontal_offset.
-	The new member variable could also be private.
-
-	So I had to choose, place the new member variable next to
-	m_horizontal_offset making it protected, but grouping similar
-	variables together, or make m_horizontal_offset private, and then add
-	the new variable as private too.
-
-	I chose to make m_horizontal_offset private, which is this commit.
-
-	There should be no user visible changes after this commit.
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: disable tui mode when an assert triggers
-	When an assert triggers in tui mode the output is not great, the
-	internal backtrace that is generated is printed directly to the file
-	descriptor for gdb_stderr, and, as a result, does not currently format
-	itself correctly - the output uses only '\n' at the end of each line,
-	and so, when the terminal is in raw mode, the cursor does not return
-	to the start of each line after the '\n'.
-
-	This is mostly fixable, we could update bt-utils.c to use '\r\n'
-	instead of just '\n', and this would fix most of the problems.  The
-	one we can't easily fix is if/when GDB is built to use execinfo
-	instead of libbacktrace, in this case we use backtrace_symbols_fd to
-	print the symbols, and this function only uses '\n' as the line
-	terminator.  Fixing this would require switching to backtrace_symbols,
-	but that API uses malloc, which is something we're trying to
-	avoid (this code is called when GDB hits an error, so ideally we don't
-	want to rely on malloc).
-
-	However, the execinfo code is only used when libbacktrace is not
-	available (or the user specifically disables libbacktrace) so maybe we
-	can ignore that problem...
-
-	... but there is another problem.  When the backtrace is printed in
-	raw mode, it is possible that the backtrace fills the screen.  With
-	the terminal in raw mode we don't have the ability to scroll back,
-	which means we loose some of the backtrace, which isn't ideal.
-
-	In this commit I propose that we should disable tui mode whenever we
-	handle a fatal signal, or when we hit the internal error code
-	path (e.g. when an assert triggers).  With this done then we don't
-	need to update the bt-utils.c code, and the execinfo version of the
-	code (using backtrace_symbols_fd) works just fine.  We also get the
-	ability to scroll back to view the error message and all of the
-	backtrace, assuming the users terminal supports scrolling back.
-
-	The only downside I see with this change is if the tui_disable call
-	itself causes an error for some reason, or, if we handle a single at a
-	time when it is not safe to call tui_disable, in these cases the extra
-	tui_disable call might cause GDB to loose the original error.
-
-	However, I think (just from personal experience) that the above two
-	issues are pretty rare and the benefits from this change far out
-	weighs the possible drawbacks.
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: improve errors from tui focus command
-	This commit improves (I think) the errors from the tui focus command.
-	There are a number of errors that can be triggered by the focus
-	command, they include:
-
-	  (1) Window name "NAME" is ambiguous
-
-	  (2) Unrecognized window name "NAME"
-
-	  (3) Window "NAME" cannot be focused
-
-	Error (1) is triggered when the user gives a partial window name, and
-	the name matches multiple windows in the current layout.
-
-	It is worth noting that the ambiguity must be within the current
-	layout; if the partial name matches one window in the current layout,
-	and one or more windows not in the current layout, then this is not
-	ambiguous, and focus will shift to the matching window in the current
-	layout.
-
-	This error was not previous being tested, but in this commit I make
-	use of the Python API to trigger and test this error.
-
-	Error (3) is simple enough, and was already being tested.  This is
-	triggered by something like 'focus status'.  The named window needs to
-	be present in the current layout, and non-focusable in order to
-	trigger the error.
-
-	Error (2) is what I'd like to improve in this commit.  This error
-	triggers if the name the user gives doesn't match any window in the
-	current layout.  Even if GDB does know about the window, but the
-	window isn't in the current layout, then GDB will say it doesn't
-	recognize the window name.
-
-	In this commit I propose to to split this error into three different
-	errors.  These will be:
-
-	  (a) Unrecognized window name "NAME"
-
-	  (b) No windows matching "NAME" in the current layout
-
-	  (c) Window "NAME" is not in the current layout
-
-	Error (a) is the same as before, but will now only trigger if GDB
-	doesn't know about window NAME at all.  If the window is known, but
-	not in the current layout then one of the other errors will trigger.
-
-	Error (b) will trigger if NAME is ambiguous for multiple windows that
-	are not in the current layout.  If NAME identifies a single window in
-	the current layout then that window will continue to be selected, just
-	as it currently is.  Only in the case where NAME doesn't identify a
-	window in the current layout do we then check all the other known
-	windows, if NAME matches multiple of these, then (b) is triggered.
-
-	Finally, error (c) is used when NAME uniquely identifies a single
-	window that is not in the current layout.
-
-	The hope with these new errors is that the user will have a better
-	understanding of what went wrong.  Instead of GDB claiming to not know
-	about a window, the mention of the current layout will hint to the
-	user that they should first switch layouts.
-
-	There are tests included for all the new errors.
-
-2023-01-27  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix line feed scrolling in tuiterm.exp
-	In a following commit I managed to trigger the line feed scrolling
-	case in tuiterm.exp.  This case is currently unhandled, and this
-	commit fills in this missing functionality.
-
-	The implementation is pretty simple, just scroll all the content up
-	one line at a time until the cursor is back on the screen (a single
-	line of scroll is all that should be needed).
-
-	This change is untested in this commit, but is required by the next
-	commit.
-
-2023-01-27  Nick Clifton  <nickc@redhat.com>
-
-	Another fix for EFI generation with LTO enabled.
-	PR 29998 * pe-dll.c (build_filler_bfd): Initialise the next field of the filler input statement, so that it does not break the file chain.
-
-2023-01-27  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move reg_operands adjustment
-	Ideally we'd do away with this somewhat questionable adjustment (leaving
-	i.types[] untouched). That's non-trivial though as it looks, so only
-	- move the logic into process_operands(), putting it closer to related
-	  logic and eliminating a conditional for operand-less insns,
-	- make it consistent (i.e. also affect %xmm0), eliminating an ugly
-	  special case later in the function.
-
-	x86: drop dead SSE2AVX-related code
-	All (there are just two) SSE2AVX templates with %xmm0 as first operand
-	also specify VEX3SOURCES. Hence there's no need for an "else" to the
-	respective if(), and the if() itself can become an assertion.
-
-	x86: use ModR/M for FPU insns with operands
-	This is the correct way of expressing things; encoding the ModR/M byte
-	directly in base_opcode has always been bogus.
-
-	x86/Intel: improve special casing of certain insns
-	Now that we have identifiers for the mnemonic strings we can avoid
-	opcode based comparisons, for (in many cases) being more expensive and
-	(in a few cases) being a little fragile and not self-documenting.
-
-2023-01-27  Jan Beulich  <jbeulich@suse.com>
-
-	opcodes: suppress internationalization on build helper tools
-	While one of the two actually having been instrumented (i386-gen.c) now
-	has that instrumentation dropped, there's still no point in honoring
-	such instrumentation in general (i.e. now for ia64-gen.c only), as that
-	only leads to a waste of resources.
-
-	With CFILES then being merely an alias of LIBOPCODES_CFILES, drop the
-	former variable altogether.
-
-2023-01-27  Jan Beulich  <jbeulich@suse.com>
-
-	x86: remove internationalization from i386-gen.c
-	This is a build time helper utility, which doesn't require translation.
-
-2023-01-27  Alan Modra  <amodra@gmail.com>
-
-	Call bfd_close_all_done in ld_cleanup
-	This is similar to "Call bfd_close_all_done in output_file_close",
-	but with some code tidying in the pe/pep write_build_id functions.
-	write_build_id is passed the output bfd as its parameter, so there is
-	no need to go looking for the output bfd via link_info (and doing so
-	will no longer work since I clear link_info.output_bfd before calling
-	bfd_close).
-
-		* emultempl/pe.em (write_build_id): Rename t to td.  Formatting.
-		Don't access pe_data(link_info.output_bfd), use td instead.
-		(setup_build_id): Rename t to td.  Formatting.
-		* emultempl/pep.em: As for pe.em.
-		* ldmain.c (ld_cleanup): Call bfd_close_all_done on linker bfds.
-		(main): Clear link_info.output_bfd when closing.
-
-2023-01-27  Alan Modra  <amodra@gmail.com>
-
-	Perform cleanup in bfd_close after errors
-	It seems reasonable to continue after errors in bfd_close_all_done,
-	particularly since bfd_close_all_done is typically called on an output
-	file after we've hit some sort of error elsewhere.  The iovec test is
-	necessary if bfd_close_all_done is to work on odd bfd's opened by
-	bfd_create.
-
-		* opncls.c (bfd_close): Call bfd_close_all_done after errors
-		from _bfd_write_contents.
-		(bfd_close_all_done): Call _bfd_delete_bfd after errors.
-		Don't call iovec->bclose when iovec is NULL.
-
-2023-01-27  Alan Modra  <amodra@gmail.com>
-
-	Call bfd_close_all_done in output_file_close
-	bfd_cache_close_all is good for closing file descriptors, but doesn't
-	do the cleanup of bfd memory as in bfd_close_all_done.
-
-		PR 13056
-		* output-file.c (output_file_close): Call bfd_close_all_done,
-		not bfd_cache_close_all.
-
-2023-01-27  Alan Modra  <amodra@gmail.com>
-
-	gas macro memory leaks
-	This tidies memory allocated for entries in macro_hash.  Freeing the
-	macro name requires a little restructuring of the define_macro
-	interface due to the name being used in the error message, and exposed
-	the fact that the name and other fields were not initialised by the
-	iq2000 backend.
-
-	There is also a fix for
-	 .macro .macro
-	 .endm
-	 .macro .macro
-	 .endm
-	which prior to this patch reported
-	mac.s:1: Warning: attempt to redefine pseudo-op `.macro' ignored
-	mac.s:3: Error: Macro `.macro' was already defined
-	rather than reporting the attempt to redefine twice.
-
-		* macro.c (macro_del_f): New function.
-		(macro_init): Use it when creating macro_hash.
-		(free_macro): Free macro name too.
-		(define_macro): Return the macro_entry, remove idx, file, line and
-		namep params.  Call as_where.  Report errors here.  Delete macro
-		from macro_hash on attempt to redefined pseudo-op.
-		(delete_macro): Don't call free_macro.
-		* macro.h (define_macro): Update prototype.
-		* read.c (s_macro): Adjust to suit.
-		* config/tc-iq2000.c (iq2000_add_macro): Init all fields of
-		macro_entry.
-
-2023-01-27  Mark Harmstone  <mark@harmstone.com>
-
-	gas/testsuite: Add -gcodeview test for aarch64-w64-mingw32
-	This is a copy of the x86 gas -gcodeview test, with changes made for the
-	differing instruction lengths between x86 and aarch64.
-
-	gas: Add CodeView constant for aarch64
-	Adds the correct constant to the S_COMPILE3 CodeView record when
-	assembling aarch64-w64-mingw32 with the -gcodeview flag.
-
-2023-01-27  Tom Tromey  <tom@tromey.com>
-
-	Use clean_restart in gdb.base
-	Change gdb.base to use clean_restart more consistently.
-
-	Use clean_restart in gdb.python
-	Change gdb.python to use clean_restart more consistently.
-
-	Use clean_restart in gdb.cp
-	Change gdb.cp to use clean_restart more consistently.
-
-	Use clean_restart in gdb.disasm
-	Change gdb.disasm to use clean_restart more consistently.
-
-	Use clean_restart in gdb.perf
-	Change gdb.perf to use clean_restart more consistently.
-
-	Use clean_restart in gdb.go
-	Change gdb.go to use clean_restart more consistently.
-
-	Use clean_restart in gdb.stabs
-	Change gdb.stabs to use clean_restart more consistently.
-
-	Use clean_restart in gdb.fortran
-	Change gdb.fortran to use clean_restart more consistently.
-
-	Use clean_restart in gdb.ada
-	Change gdb.ada to use clean_restart more consistently.
-
-	Use clean_restart in gdb.dwarf2
-	Change gdb.dwarf2 to use clean_restart more consistently.
-
-	Use clean_restart in gdb.reverse
-	Change gdb.reverse to use clean_restart more consistently.
-
-	Use clean_restart in gdb.arch
-	Change gdb.arch to use clean_restart more consistently.
-
-	Use clean_restart in gdb.guile
-	Change gdb.guile to use clean_restart more consistently.
-
-	Use clean_restart in gdb.threads
-	Change gdb.threads to use clean_restart more consistently.
-
-	Use clean_restart in gdb.objc
-	Change gdb.objc to use clean_restart more consistently.
-
-	Use clean_restart in gdb.trace
-	Change gdb.trace to use clean_restart more consistently.
-
-	Use clean_restart in gdb.opencl
-	Change gdb.opencl to use clean_restart more consistently.
-
-	Use clean_restart in gdb.linespec
-	Change gdb.linespec to use clean_restart more consistently.
-
-	Use clean_restart in gdb.pascal
-	Change gdb.pascal to use clean_restart more consistently.
-
-	Use mi_clean_restart more
-	This changes a number of MI tests to use mi_clean_restart rather than
-	separate calls.  This reduces the number of lines, which is nice, and
-	also provides a nicer model to copy for future tests.
-
-	Start gdb after building executable in mi-basics.exp
-	A lot of the MI tests start gdb and only then build the executable.
-	This just seemed weird to me, so I've fixed this up.  In this patch,
-	no other cleanups are done, the startup is just moved to a more
-	logical (to me) spot.
-
-	Remove unnecessary call to standard_testfile
-	This test does not build a program and does not need to call
-	standard_testfile.
-
-	Minor "require" fixups
-	I found a couple of spots that could use "require", and one spot where
-	hoisting the "require" closer to the top of the file made it more
-	clear.
-
-2023-01-27  Tom Tromey  <tom@tromey.com>
-
-	Remove some dead code in gdb.fortran/info-types.exp
-	An early "return" in this test case prevents a test from running.
-	This seems to have been intentional and has been in place since:
-
-	commit d57cbee932f86df06251498daa93154046dc77c0
-	Author: Andrew Burgess <andrew.burgess@embecosm.com>
-	Date:   Tue Dec 3 13:18:43 2019 +0000
-
-	    gdb/testsuite/fortran: Fix info-modules/info-types for gfortran 8+
-
-	This patch removes the dead code.
-
-2023-01-27  Tom Tromey  <tom@tromey.com>
-
-	Eliminate spurious returns from the test suite
-	A number of tests end with "return".  However, this is unnecessary.
-	This patch removes all of these.
-
-	Use clean_restart in gdb.dlang
-	Change gdb.dlang to use clean_restart more consistently.
-
-	Use ordinary calling convention for clean_restart
-	clean_restart accepts a single optional argument.  Rather than using
-	{args} and handling the argument by hand, change it to use Tcl's own
-	argument-checking.
-
-2023-01-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-26  Alan Modra  <amodra@gmail.com>
-
-	Free gas/dwarf2dbg.c dirs
-	Entries are allocated with xmemdup0.
-
-		* dwarf2dbg.c (dwarf2_cleanup): Free dirs entries.
-
-2023-01-26  Alan Modra  <amodra@gmail.com>
-
-	Sanity check dwarf5 form of .file
-	There's a comment a few lines earlier saying that demand_copy_C_string
-	has already reported an error if it returns NULL.  Given the proximity
-	I decided not to duplicate the comment.
-
-		* dwarf2dbg.c (dwarf2_directive_filename): Check return of
-		demand_copy_C_string for file.
-
-2023-01-26  Alan Modra  <amodra@gmail.com>
-
-	resolve gas shift expressions with large exponents to zero
-		* expr.c (resolve_expression <O_left_shift, O_right_shift>): Resolve
-		shifts exceeding bits in a valueT to zero.
-
-	segv in coff_aarch64_addr32nb_reloc
-		* coff-aarch64.c (coff_aarch64_addr32nb_reloc): When output_bfd
-		is NULL (which it is for objdump -W) get the output bfd via the
-		input section.
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: initialize "correct" variable in gdb.cp/cpexprs.exp.tcl
-	Due to a GDB bug (visible when building with -D_GLIBCXX_DEBUG), GDB
-	crashes somewhere in the middle of gdb.cp/cpexprs.exp, and thus fails to
-	read the string, at gdb.cp/cpexprs.exp.tcl:725.  The "correct" variable
-	doesn't get set, and I then see this TCL error:
-
-	  ERROR: can't read "correct": no such variable
-
-	Avoid the TCL error by initializing the "correct" variable to a dummy
-	value.
-
-	Change-Id: I828968d9b2d105ef47f8da2ef598aa16a518c059
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: fix gdb.dap/basic-dap.exp disassembly test for PIE
-	Prior to this patch, I get:
-
-	    >>> {"seq": 17, "type": "request", "command": "disassemble", "arguments": {"memoryReference": "0x115d", "instructionCount": 1}}
-	    Content-Length: 147
-
-	    {"request_seq": 17, "type": "response", "command": "disassemble", "success": false, "message": "Cannot access memory at address 0x115d", "seq": 41}FAIL: gdb.dap/basic-dap.exp: disassemble one instruction success
-	    FAIL: gdb.dap/basic-dap.exp: instructions in disassemble output
-
-	The problem is that the PC to disassemble is taken from the breakpoint
-	insertion response, which happens before running.  With a PIE
-	executable, that PC is unrelocated, but the disassembly request happens
-	after relocation.
-
-	I chose to fix this by watching for a breakpoint changed event giving
-	the new breakpoint address, and recording the address from there.  I
-	think this is an interesting way to fix it, because it adds a bit of
-	test coverage, I don't think these events are checked right now.
-
-	Other ways to fix it would be:
-
-	 - Get the address by doing a breakpoint insertion after the program is
-	   started, or some other way.
-	 - Do the disassembly by symbol instead of by address.
-	 - Do the disassembly before running the program.
-
-	Change-Id: I3c396f796ac4c8b22e7dfd2fa1c5467f7a47e84e
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: make dap_wait_for_event_and_check return preceding messages
-	In the following patch, I change gdb.dap/basic-dap.exp such that after
-	waiting for some event, it checks if it received another event
-	meanwhile.  To help with this, make dap_wait_for_event_and_check and
-	_dap_dap_wait_for_event return a list with everything received before
-	the event of interest.  This is similar to what
-	dap_check_request_and_response returns.
-
-	Change-Id: I85c8980203a2dec833937e7552c2196bc137935d
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: rename dap_read_event to dap_wait_for_event_and_check
-	I think that name describes a bit better what the proc does, it is
-	similar to "wait_for" in tuiterm.exp.
-
-	Change-Id: Ie55aa011e6595dd1b5a874db13881ba572ace419
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: pass around dicts instead of TON objects
-	The DAP helper functions generally return TON objects.  However, callers
-	almost all immediately use ton::2dict to convert them to dicts, to
-	access their contents.  This commits makes things a bit simpler for them
-	by having function return dicts directly instead.
-
-	The downside is that the TON objects contain type information.  For
-	instance, a "2" in a TCL dict could have been the integer 2 or the
-	string "2" in JSON.  By converting to TCL dicts, we lose that
-	information.  If some tests specifically want to check the types of some
-	fields, I think we can add intermediary functions that return TON
-	objects, without having to complicate other callers who don't care.
-
-	Change-Id: I2ca47bea355bf459090bae8680c6a917350b5c3f
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: remove catch from dap_read_event
-	This catch didn't cause me any trouble, but for the same reason as the
-	preceding patch, I think it's a bit better to just let any exception
-	propagate, to make for easier debugging.
-
-	Change-Id: I1779e62c788b77fef2d50434edf4c3d2ec5e1c4c
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: make dap_request_and_response not catch / issue test result
-	Following some of my changes, dap_request_and_response was failing and I
-	didn't know why.  I think it's better to make it not catch any
-	exception, and just make it do a simple "send request, read response".
-	If an exception is thrown while sending a request or reading a response,
-	things are going really badly, it's not like we'll want to recover from
-	that and continue the test.
-
-	Change-Id: I27568d3547f753c3a74e3e5a730d38a8caef9356
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: write requests to gdb.log
-	This helps following what happens when reading gdb.log.  The downside is
-	that it becomes harder to tell what text is from GDB and what text is
-	going to GDB, but I think that seeing responses without seeing requests
-	is even more confusing.  At least, the lines are prefix with >>>, so
-	when you see this, you know that until the end of the line, it's
-	something that was sent to GDB, and not GDB output.
-
-	Change-Id: I1ba1acd8b16f4e64686c5ad268cc41082951c874
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: prefix some procs with _
-	Prefix some procs that are only used internally with an underscore, to
-	make it clear they are internal.  If they need to be used by some test
-	later, we can always un-prefix them.
-
-	Change-Id: Iacb8e77363b5d1f8b98d9ba5a6d115aee5c8925d
-
-2023-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dap: use gdb_assert in gdb.dap/basic-dap.exp
-	Use gdb_assert instead of manual pass/fail.
-
-	Change-Id: I71fbc4e37a0a1ef4783056c7424e932651fa397f
-
-2023-01-26  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: PR30043 libgprofng.so.* are installed to a wrong location
-	gprofng/ChangeLog
-	2023-01-25  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/30043
-		PR gprofng/28972
-		* src/Makefile.am: Use lib_LTLIBRARIES instead of pkglib_LTLIBRARIES.
-		* src/Makefile.in: Rebuild.
-
-2023-01-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.base/unwind-on-each-insn-{amd64,i386}.exp
-	The gcc 4.4.x (and earlier) compilers had the problem that the unwind info in
-	the epilogue was inaccurate.
-
-	In order to work around this in gdb, epilogue unwinders were added with a
-	higher priority than the dwarf unwinders in the amd64 and i386 targets:
-	- amd64_epilogue_frame_unwind, and
-	- i386_epilogue_frame_unwind.
-
-	Subsequently, the epilogue unwind info problem got fixed in gcc 4.5.0.
-
-	However, the epilogue unwinders prevented gdb from taking advantage of the
-	fixed epilogue unwind info, so the scope of the epilogue unwinders was
-	limited, bailing out for gcc >= 4.5.0.
-
-	There was no regression test added for this preference scheme, so if we now
-	declare epilogue unwind info from all gcc versions as trusted, no test will
-	start failing.
-
-	Fix this by adding an amd64 and i386 regression test for this.
-
-	I have no gcc 4.4.x lying around, so I fabricated the assembly files by:
-	- commenting out some .cfi directives to break the epilogue unwind info, and
-	- hand-editing the producer info to 4.4.7 to activate the fix.
-
-	Tested on x86_64-linux, target boards unix/{-m64,-m32}.
-
-2023-01-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add and use is_x86_64_m64_target
-	Add new proc is_x86_64_m64_target and use it where appropriate.
-
-	Tested on x86_64-linux.
-
-2023-01-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-25  Mark Harmstone  <mark@harmstone.com>
-
-	ld/testsuite: Add missing targets to PDB tests
-
-2023-01-25  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Add pdb support to aarch64-w64-mingw32
-	This extends PDB support to the aarch64 PE targets.
-
-	The changes to the test files are just to make it so they can be assembled as
-	either x86, x86_64, or aarch64, mainly by changing the comment style.
-	The only actual code change here is in adding the architecture constants
-	to pdb.c.
-
-2023-01-25  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Use new dwarf2 function cache
-	This patch resolves the performance issue reported in pr/29738 by
-	caching the values for the stack pointers for the inner frame.  By
-	doing so, the impact can be reduced to checking the state and
-	returning the appropriate value.
-
-2023-01-25  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb: dwarf2 generic implementation for caching function data
-	When there is no dwarf2 data for a register, a function can be called
-	to provide the value of this register.  In some situations, it might
-	not be trivial to determine the value to return and it would cause a
-	performance bottleneck to do the computation each time.
-
-	This patch allows the called function to have a "cache" object that it
-	can use to store some metadata between calls to reduce the performance
-	impact of the complex logic.
-
-	The cache object is unique for each function and frame, so if there are
-	more than one function pointer stored in the dwarf2_frame_cache->reg
-	array, then the appropriate pointer will be supplied (the type is not
-	known by the dwarf2 implementation).
-
-	dwarf2_frame_get_fn_data can be used to retrieve the function unique
-	cache object.
-	dwarf2_frame_allocate_fn_data can be used to allocate and retrieve the
-	function unique cache object.
-
-2023-01-25  Tom Tromey  <tromey@adacore.com>
-
-	Clean up unusual code in mi-cmd-stack.c
-	I noticed some unusual code in mi-cmd-stack.c.  This code is a switch,
-	where one of the cases appears in the middle of another block.  It
-	seemed cleaner to me to have the earlier case just conditionally fall
-	through.
-
-2023-01-25  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Pass -Wl,--no-as-needed to compiler as needed
-	Pass -Wl,--no-as-needed to linker tests to fix
-
-	FAIL: Run pr19031
-	FAIL: Run got1
-	FAIL: Undefined weak symbol (-fPIE -no-pie)
-	FAIL: Undefined weak symbol (-fPIE -pie)
-
-	when --as-needed is passed to linker by compiler.
-
-		PR ld/30050
-		* testsuite/ld-i386/i386.exp: Pass -Wl,--no-as-needed to compiler
-		as needed.
-
-2023-01-25  Tom Tromey  <tom@tromey.com>
-
-	Move target check into allow_altivec_tests
-	Pedro pointed out that only PPC can possibly have altivec, so we can
-	move the target check into allow_altivec_tests.
-
-	Use require with is_remote
-	This changes some tests to use require with 'is_remote', rather than
-	an explicit test.  This adds uniformity helps clean up more spots
-	where a test might exit early without any notification.
-
-2023-01-25  Tom Tromey  <tom@tromey.com>
-
-	Add unsupported calls where needed
-	A number of tests will exit early without saying why.  This patch adds
-	"unsupported" at spots like this that I could readily find.
-
-	There are definitely more of these; for example dw2-ranges.exp fails
-	silently because a compilation fails.  I didn't attempt to address
-	these as that is a much larger task.
-
-2023-01-25  Tom Tromey  <tom@tromey.com>
-
-	Introduce and use is_any_target
-	A few tests work on two different targets that can't be detected with
-	a single call to istarget -- that proc only accepts globs, not regular
-	expressions.
-
-	This patch introduces a new is_any_target proc and then converts these
-	tests to use it in a 'require'.
-
-2023-01-25  Tom Tromey  <tom@tromey.com>
-
-	Use require with istarget
-	This changes many tests to use require when checking 'istarget'.  A
-	few of these conversions were already done in earlier patches.
-
-	No change was needed to 'require' to make this work, due to the way it
-	is written.  I think the result looks pretty clear, and it has the
-	bonus of helping to ensure that the reason that a test is skipped is
-	always logged.
-
-2023-01-25  Tom Tromey  <tom@tromey.com>
-
-	Rename skip_vsx_tests to allow form
-	This renames skip_vsx_tests to allow_vsx_tests and updates it users to
-	use require.
-
-	Rename skip_power_isa_3_1_tests to allow form
-	This renames skip_power_isa_3_1_tests to allow_power_isa_3_1_tests and
-	updates its users to use require.
-
-	Rename skip_float_test to allow form
-	This renames skip_float_test to allow_float_test and updates its users
-	to use require.
-
-	Convert skip_altivec_tests to allow form
-	This renames skip_altivec_tests to allow_altivec_tests and updates its
-	users to use require.
-
-2023-01-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/unwind-on-each-insn.exp for -m32
-	With test-case gdb.base/unwind-on-each-insn.exp and target board unix/-m32, I
-	now get:
-	...
-	 # of expected passes            25
-	...
-	instead of:
-	...
-	 # of expected passes            133
-	...
-	as I used to get before commit d25a8dbc7c3 ("[gdb/testsuite] Allow debug
-	srcfile2 in gdb.base/unwind-on-each-insn.exp"), due to the test-case trying to match
-	"rip = " and info frame printing "eip = " instead.
-
-	Fix this by dropping "rip" from the regexp.
-
-	Tested on x86_64-linux, target boards unix/{-m64,-m32}.
-
-2023-01-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Allow debug srcfile2 in gdb.base/unwind-on-each-insn.exp
-	Test-case gdb.base/unwind-on-each-insn.exp compiles $srcfile with debug info, and
-	$srcfile2 without.
-
-	Occasionally, I try both files with debug info:
-	...
-	-             $srcfile $debug_flags $srcfile2 $nodebug_flags]]} {
-	+             $srcfile $debug_flags $srcfile2 $debug_flags]]} {
-	...
-
-	This shortcuts the test due to no longer recognizing that stepi still lands
-	in foo.
-
-	Fix this by determining whether still in foo by checking the info frame output.
-
-	Tested on x86_64-linux.
-
-2023-01-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Allow nodebug srcfile in gdb.base/unwind-on-each-insn.exp
-	Test-case gdb.base/unwind-on-each-insn.exp compiles $srcfile with debug info, and
-	$srcfile2 without.
-
-	Occasionally, I try both files with debug info:
-	...
-	-             $srcfile $debug_flags $srcfile2 $nodebug_flags]]} {
-	+             $srcfile $debug_flags $srcfile2 $debug_flags]]} {
-	...
-	and both files without:
-	...
-	-             $srcfile $debug_flags $srcfile2 $nodebug_flags]]} {
-	+             $srcfile $nodebug_flags $srcfile2 $nodebug_flags]]} {
-	...
-
-	In the latter case, I run into:
-	...
-	FAIL: gdb.base/unwind-on-each-insn.exp: foo: instruction 1: bt 2
-	FAIL: gdb.base/unwind-on-each-insn.exp: foo: instruction 1: up
-	...
-	due to a mismatch between the regexp and the different output due to using
-	nodebug.
-
-	Fix this by making the regexp less strict.
-
-	Tested on x86_64-linux.
-
-2023-01-25  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, i386: Update stale comment in i386-tdep.h.
-	The comment seems no longer valid, the functions technically check for
-	non-pseudo registers, like zmmh.  Which is a valid use case.
-
-2023-01-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Analyze non-leaf fn in gdb.base/unwind-on-each-insn.exp
-	In test-case gdb.base/unwind-on-each-insn.exp, we stepi through function foo
-	to check various invariants at each insn, in particular hoping to excercise
-	insns that modify stack and frame pointers.
-
-	Function foo is a leaf function, so add a non-leaf function bar, and step
-	through it as well (using nexti instead of stepi).
-
-	With the updated test-case, on powerpc64le-linux, I run into PR tdep/30049:
-	...
-	FAIL: bar: instruction 5: bt 2
-	FAIL: bar: instruction 5: up
-	FAIL: bar: instruction 5: [string equal $fid $::main_fid]
-	FAIL: bar: instruction 6: bt 2
-	FAIL: bar: instruction 6: up
-	FAIL: bar: instruction 6: [string equal $fid $::main_fid]
-	...
-
-	Tested on:
-	- x86_64-linux (-m64 and -m32)
-	- s390x-linux (-m64 and -m31)
-	- aarch64-linux
-	- powerpc64le-linux
-
-2023-01-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Improve leaf fn in gdb.base/unwind-on-each-insn.exp
-	In test-case gdb.base/unwind-on-each-insn.exp, we stepi through function foo
-	to check various invariants at each insn, in particular hoping to excercise
-	insns that modify stack and frame pointers.
-
-	For x86_64-linux, we have a reasonably complex foo (and similar for -m32):
-	...
-	  4004bc:       55                      push   %rbp
-	  4004bd:       48 89 e5                mov    %rsp,%rbp
-	  4004c0:       90                      nop
-	  4004c1:       5d                      pop    %rbp
-	  4004c2:       c3                      ret
-	...
-	Both stack pointer (%rsp) and frame pointer (%rbp) are modified.
-
-	Also for s390x-linux (and similar for -m31):
-	...
-	0000000001000668 <foo>:
-	 1000668:       e3 b0 f0 58 00 24       stg     %r11,88(%r15)
-	 100066e:       b9 04 00 bf             lgr     %r11,%r15
-	 1000672:       e3 b0 b0 58 00 04       lg      %r11,88(%r11)
-	 1000678:       07 fe                   br      %r14
-	...
-	Frame pointer (%r11) is modified.
-
-	Likewise for powerpc64le-linux:
-	...
-	00000000100006c8 <foo>:
-	    100006c8:   f8 ff e1 fb     std     r31,-8(r1)
-	    100006cc:   d1 ff 21 f8     stdu    r1,-48(r1)
-	    100006d0:   78 0b 3f 7c     mr      r31,r1
-	    100006d4:   00 00 00 60     nop
-	    100006d8:   30 00 3f 38     addi    r1,r31,48
-	    100006dc:   f8 ff e1 eb     ld      r31,-8(r1)
-	    100006e0:   20 00 80 4e     blr
-	...
-	Both stack pointer (r1) and frame pointer (r31) are modified.
-
-	But for aarch64-linux, we have:
-	...
-	00000000004005fc <foo>:
-	  4005fc:       d503201f        nop
-	  400600:       d65f03c0        ret
-	...
-	There's no insn that modifies stack or frame pointer.
-
-	Fix this by making foo more complex, adding an (unused) argument:
-	...
-	0000000000400604 <foo>:
-	  400604:       d10043ff        sub     sp, sp, #0x10
-	  400608:       f90007e0        str     x0, [sp, #8]
-	  40060c:       d503201f        nop
-	  400610:       910043ff        add     sp, sp, #0x10
-	  400614:       d65f03c0        ret
-	...
-	such that the stack pointer (sp) is modified.
-
-	[ Note btw that we're seeing the effects of -momit-leaf-frame-pointer, with
-	-mno-omit-leaf-frame-pointer we have instead:
-	...
-	0000000000400604 <foo>:
-	  400604:       a9be7bfd        stp     x29, x30, [sp, #-32]!
-	  400608:       910003fd        mov     x29, sp
-	  40060c:       f9000fa0        str     x0, [x29, #24]
-	  400610:       d503201f        nop
-	  400614:       a8c27bfd        ldp     x29, x30, [sp], #32
-	  400618:       d65f03c0        ret
-	...
-	such that also the frame pointer (x29) is modified. ]
-
-	Having made foo more complex, we now run into the following fail on
-	x86_64/-m32:
-	...
-	FAIL: gdb.base/unwind-on-each-insn.exp: instruction 1: $sp_value == $main_sp
-	....
-
-	The problem is that the stack pointer has changed inbetween the sampling of
-	main_sp and *foo, in particular by the push insn:
-	...
-	 804841a:       68 c0 84 04 08          push   $0x80484c0
-	 804841f:       e8 10 00 00 00          call   8048434 <foo>
-	...
-
-	Fix this by updating main_sp.
-
-	On powerpc64le-linux, with gcc 7.5.0 I now run into PR tdep/30021:
-	...
-	FAIL: gdb.base/unwind-on-each-insn.exp: insn 7: $fba_value == $main_fba
-	FAIL: gdb.base/unwind-on-each-insn.exp: insn 7: [string equal $fid $main_fid]
-	...
-	but I saw the same failure before this commit with gcc 4.8.5.
-
-	Tested on:
-	- x86_64-linux (-m64 and -m32)
-	- s390x-linux (-m64 and -m31)
-	- powerpc64le-linux
-	- aarch64-linux
-
-	Also I've checked that the test-case still functions as regression test for PR
-	record/16678 on x86_64.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: make use of a scoped_restore
-	Make use of a scoped_restore object in tui_mld_read_key instead of
-	doing a manual save/restore.
-
-	I don't think the existing code can throw an exception, so this is
-	just a cleanup rather than a bug fix.
-
-	There should be no user visible changes after this commit.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: better filtering of tab completion results for focus command
-	While working on the previous couple of commits, I noticed that the
-	'focus' command would happily suggest 'status' as a possible focus
-	completion, even though the 'status' window is non-focusable, and,
-	after the previous couple of commits, trying to focus the status
-	window will result in an error.
-
-	This commit improves the tab-completion results for the focus command
-	so that the status window is not included.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: convert if/error to an assert
-	While working on the previous commit, I realised that there was an
-	error in tui_set_focus_command that could never be triggered.
-
-	Since the big tui rewrite (adding dynamic layouts) it is no longer
-	true that there is a tui_win_info object for every window at all
-	times.  We now only create a tui_win_info object for a particular
-	window, when the window is part of the current layout.  As a result,
-	if we have a tui_win_info pointer, then the window must be visible
-	inside tui_set_focus_command (this function calls tui_enable as its
-	first action, which makes the current layout visible).
-
-	The gdb.tui/tui-focus.exp test script exercises this area of code, and
-	doesn't trigger the assert, nor do any of our other existing tui
-	tests.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite/tui: more testing of the 'focus' command
-	I noticed that we didn't have many tests of the tui 'focus' command,
-	so I started adding some.  This exposed a bug in GDB; we are able to
-	focus windows that should not be focusable, e.g. the 'status' window.
-
-	This is harmless until we then do 'focus next' or 'focus prev', along
-	this code path we assert that the currently focused window is
-	focusable, which obviously, is not always true, so GDB fails with an
-	assertion error.
-
-	The fix is simple; add a check to the tui_set_focus_command function
-	to ensure that the selected window is focusable.  If it is not then an
-	error is thrown.  The new tests I've added cover this case.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: update gdb.tui/tui-nl-filtered-output.exp
-	Following on from the previous commit, in this commit I am updating
-	the test script gdb.tui/tui-nl-filtered-output.exp to take account of
-	the changes in commit:
-
-	  commit 9162a27c5f5828240b53379d735679e2a69a9f41
-	  Date:   Tue Nov 13 11:59:03 2018 -0700
-
-	      Change gdb test suite's TERM setting
-
-	In the above commit the TERM environment variable was changed to be
-	'dumb' by default, which means that tests, that previously activated
-	tui mode, no longer do unless TERM is set to 'ansi'.
-
-	As the gdb.tui/tui-nl-filtered-output.exp script didn't do this, the
-	test stopped working.  As the expect patterns in this script were
-	pretty generic no tests actually started failing, and we never
-	noticed.
-
-	In this commit I update the test script to correctly activate our
-	terminal emulator, the test continues to pass after this update, but
-	now we are testing in tui mode.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: update gdb.tui/tui-disasm-long-lines.exp
-	Following on from the previous commit, in this commit I am updating
-	the test script gdb.tui/tui-disasm-long-lines.exp to take account of
-	the changes in commit:
-
-	  commit 9162a27c5f5828240b53379d735679e2a69a9f41
-	  Date:   Tue Nov 13 11:59:03 2018 -0700
-
-	      Change gdb test suite's TERM setting
-
-	In the above commit the TERM environment variable was changed to be
-	'dumb' by default, which means that tests, that previously activated
-	tui mode, no longer do unless TERM is set to 'ansi'.
-
-	As the gdb.tui/tui-disasm-long-lines.exp script didn't do this, the
-	test stopped working.  As the expect patterns in this script were
-	pretty generic no tests actually started failing, and we never
-	noticed.
-
-	In this commit I update the script to use Term::clean_restart, which
-	correctly sets TERM to 'ansi'.  I've also added a check that the asm
-	box does appear on the screen, which should indicate that tui mode has
-	correctly activated.
-
-	However, I also notice that GDB doesn't appear to fully work
-	correctly.  The test should display the disassembly for the test
-	program, but it doesn't.
-
-	The test is trying to disassemble some code that (deliberately) uses a
-	very long symbol name, this eventually results in GDB entering
-	tui_source_window_base::show_source_content and trying to allocate an
-	ncurses pad in order to hold the current page of disassembler output.
-
-	Unfortunately, due to the very long line, the call to newpad fails,
-	meaning that tui_source_window_base::m_pad is nullptr.  Luckily non of
-	the following calls appear to crash when passed a nullptr, however,
-	all the output that is written to the pad is lost, which is why we
-	don't see any assembly code written to the screen.
-
-	As the test history indicates that the script was originally checking
-	for a crash in GDB when the long identifier was encountered, I think
-	there is value in just leaving the test as it is for now, I have a fix
-	for the issue of the newpad call failing, which I'll post in a follow
-	up commit later.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: extend gdb.tui/tui-layout.exp test script
-	In passing I noticed that the gdb.tui/tui-layout.exp test script was a
-	little strange, it tests the layout command multiple times, but never
-	sets up our ANSI terminal emulator, so every layout command fails with
-	a message about the terminal lacking the required abilities.
-
-	It turns out that this was caused by this commit:
-
-	  commit 9162a27c5f5828240b53379d735679e2a69a9f41
-	  Date:   Tue Nov 13 11:59:03 2018 -0700
-
-	      Change gdb test suite's TERM setting
-
-	This was when we changed the testsuite to set the TERM environment
-	variable to "dumb" by default.
-
-	After this, any tui test that didn't set the terminal mode back to
-	'ansi' would fail to activate tui mode.
-
-	For the tui-layout.exp test it just so happens that the test patterns
-	are generic enough that the test continued to pass, even after this
-	change.
-
-	In this commit I have updated the test so we now check the layout
-	command both with a 'dumb' terminal and with the 'ansi' terminal.
-	When testing with the 'ansi' terminal, I have some limited validation
-	that GDB correctly entered tui mode.
-
-	I figured that it is probably worth having at least one test in the
-	test suite that deliberately tries to enter tui mode in a dumb
-	terminal, it would be sad if we one day managed to break GDB such that
-	this caused a crash, and never noticed.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: rename test source file to match test script
-	The previous commit touched the source file for the test script
-	gdb.cp/cpcompletion.exp.  This source file is called pr9594.cc.  The
-	source file is only used by the one test script.
-
-	This commit renames the source file to cpcompletion.cc to match the
-	test script, this is more inline with how we name source files these
-	days.
-
-2023-01-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: use test_gdb_complete_unique more in C++ tests
-	Spotted in gdb.cp/cpcompletion.exp that we could replace some uses of
-	gdb_test with test_gdb_complete_unique, this will extend the
-	completion testing to check tab-completion as well as completion using
-	the 'complete' command in some additional cases.
-
-2023-01-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-24  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: PR29521 [docs] man pages are not in the release tarball
-	gprofng/ChangeLog
-	2023-01-20  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29521
-		* configure.ac: Check if $MAKEINFO and $HELP2MAN are missing.
-		* Makefile.am: Build doc if $MAKEINFO exists.
-		* doc/gprofng.texi: Update documentation for gprofng.
-		* doc/Makefile.am: Build gprofng.1.
-		* src/Makefile.am: Move the build of gprofng.1 to doc/Makefile.am.
-		* configure: Rebuild.
-		* Makefile.in: Rebuild.
-		* doc/Makefile.in: Rebuild.
-		* src/Makefile.in: Rebuild.
-
-2023-01-24  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe/doc: fix some warnings
-	'make pdf' in libsframe shows some warnings, some of which (especially
-	the Overfull warnings) are causing undesirable effects on the rendered
-	output.  Few examples of the warnings:
-
-	  Underfull \hbox (badness 10000) in paragraph at lines 406--407
-	   @texttt pauth_
-
-	  Underfull \hbox (badness 10000) in paragraph at lines 407--410
-	   @textrm Specify which key is used for signing the return
-
-	  ...
-
-	  Overfull \hbox (2.0987pt too wide) in paragraph at lines 412--413
-	   @texttt fdetype[]|
-
-	  ...
-
-	  Overfull \hbox (28.87212pt too wide) in paragraph at lines 446--447
-	   @textrm SFRAME[]FDE[]TYPE[]PCMASK|
-
-	  ...
-
-	This patch adjusts column widths of the affected cells to fix a subset
-	of these warnings.  For the rest of the warnings, use explicit newline
-	command to fix them.
-
-	libsframe/
-		* doc/sframe-spec.texi: Fix various underfull and overfull
-		warnings.
-
-2023-01-24  Nick Clifton  <nickc@redhat.com>
-
-	Fix seg-fault when generating an empty DLL with LTO enabled.
-	ld   PR 29998
-	     * pe-dll.c (generate_reloc): Handle sections
-	     with no assigned output section.
-	     Terminate early of there are no relocs to put
-	     in the .reloc section.
-	     (pe_exe_fill_sections): Do not emit an empty
-	     .reloc section.
-
-	bfd  * cofflink.c (_bfd_coff_generic_relocate_section):
-	     Add an assertion that the output section is set
-	     for defined, global symbols.
-
-2023-01-24  Enze Li  <enze.li@hotmail.com>
-
-	gdb: some int to bool conversion
-	When building GDB with clang 16, I got this,
-
-	  CXX    maint.o
-	maint.c:1045:23: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	      m_space_enabled = 1;
-	                      ^ ~
-	maint.c:1057:22: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	      m_time_enabled = 1;
-	                     ^ ~
-	maint.c:1073:24: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
-	      m_symtab_enabled = 1;
-	                       ^ ~
-	3 errors generated.
-
-	Work around this by using bool bitfields instead.
-
-	Tested by rebuilding on x86_64-linux with clang 16 and gcc 12.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-01-24  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Avoid magic numbers for subsystems in pe.em and pep.em
-
-2023-01-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-23  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Set default subsystem for arm-pe to IMAGE_SUBSYSTEM_WINDOWS_GUI
-	This fixes the test failures introduced by 87a5cf5c, by changing the
-	default subsystem for arm-pe from 9 (IMAGE_SUBSYSTEM_WINDOWS_CE_GUI) to
-	2 (IMAGE_SUBSYSTEM_WINDOWS_GUI), which matches what happens with other
-	PE targets.
-
-	As far as I can tell there's no working modern Windows CE toolchain
-	knocking about anyway, so this change shouldn't inconvenience anyone.
-
-2023-01-23  Mark Harmstone  <mark@harmstone.com>
-
-	Add support for secidx relocations to aarch64-w64-mingw32
-	This patch adds support for the .secidx directive and its corresponding
-	relocation to aarch64-w64-mingw32. As with x86, this is a two-byte LE
-	integer which gets filled in with the 1-based index of the output
-	section that a symbol ends up in.
-
-	This is needed for PDBs, which represent addresses as a .secrel32,
-	.secidx pair.
-
-	The test is substantially the same as for amd64, but with changes made
-	for padding and alignment.
-
-2023-01-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep, aarch64] Fix frame address of last insn
-	Consider the test-case test.c, compiled without debug info:
-	...
-	void
-	foo (const char *s)
-	{
-	}
-
-	int
-	main (void)
-	{
-	  foo ("foo");
-	  return 0;
-	}
-	...
-
-	Disassembly of foo:
-	...
-	0000000000400564 <foo>:
-	  400564:       d10043ff        sub     sp, sp, #0x10
-	  400568:       f90007e0        str     x0, [sp, #8]
-	  40056c:       d503201f        nop
-	  400570:       910043ff        add     sp, sp, #0x10
-	  400574:       d65f03c0        ret
-	...
-
-	Now, let's do "info frame" at each insn in foo, as well as printing $sp
-	and $x29 (and strip the output of info frame to the first line, for brevity):
-	...
-	$ gdb -q a.out
-	Reading symbols from a.out...
-	(gdb) b *foo
-	Breakpoint 1 at 0x400564
-	(gdb) r
-	Starting program: a.out
-
-	Breakpoint 1, 0x0000000000400564 in foo ()
-	(gdb) display /x $sp
-	1: /x $sp = 0xfffffffff3a0
-	(gdb) display /x $x29
-	2: /x $x29 = 0xfffffffff3a0
-	(gdb) info frame
-	Stack level 0, frame at 0xfffffffff3a0:
-	(gdb) si
-	0x0000000000400568 in foo ()
-	1: /x $sp = 0xfffffffff390
-	2: /x $x29 = 0xfffffffff3a0
-	(gdb) info frame
-	Stack level 0, frame at 0xfffffffff3a0:
-	(gdb) si
-	0x000000000040056c in foo ()
-	1: /x $sp = 0xfffffffff390
-	2: /x $x29 = 0xfffffffff3a0
-	(gdb) info frame
-	Stack level 0, frame at 0xfffffffff3a0:
-	(gdb) si
-	0x0000000000400570 in foo ()
-	1: /x $sp = 0xfffffffff390
-	2: /x $x29 = 0xfffffffff3a0
-	(gdb) info frame
-	Stack level 0, frame at 0xfffffffff3a0:
-	(gdb) si
-	0x0000000000400574 in foo ()
-	1: /x $sp = 0xfffffffff3a0
-	2: /x $x29 = 0xfffffffff3a0
-	(gdb) info frame
-	Stack level 0, frame at 0xfffffffff3b0:
-	 pc = 0x400574 in foo; saved pc = 0x40058c
-	(gdb) si
-	0x000000000040058c in main ()
-	1: /x $sp = 0xfffffffff3a0
-	2: /x $x29 = 0xfffffffff3a0
-	...
-
-	The "frame at" bit lists 0xfffffffff3a0 except at the last insn, where it
-	lists 0xfffffffff3b0.
-
-	The frame address is calculated here in aarch64_make_prologue_cache_1:
-	...
-	  unwound_fp = get_frame_register_unsigned (this_frame, cache->framereg);
-	  if (unwound_fp == 0)
-	    return;
-
-	  cache->prev_sp = unwound_fp + cache->framesize;
-	...
-
-	For insns after the prologue, we have cache->framereg == sp and
-	cache->framesize == 16, so unwound_fp + cache->framesize gives the wrong
-	answer once sp has been restored to entry value by the before-last insn.
-
-	Fix this by detecting the situation that the sp has been restored.
-
-	This fixes PRs tdep/30010 and tdep/30011.
-
-	This also fixes the aarch64 FAILs in gdb.reverse/solib-precsave.exp and
-	gdb.reverse/solib-reverse.exp I reported in PR gdb/PR29721.
-
-	Tested on aarch64-linux.
-	PR tdep/30010
-	PR tdep/30011
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30010
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30011
-
-2023-01-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Avoid using .eh_frame in gdb.base/unwind-on-each-insn.exp
-	One purpose of the gdb.base/unwind-on-each-insn.exp test-case is to test the
-	architecture-specific unwinders on foo, so unwind-on-each-insn-foo.c is
-	compiled with nodebug, to prevent the dwarf unwinders from taking effect.
-
-	For for instance gcc x86_64 though, -fasynchronous-unwind-tables is enabled by
-	default, generating an .eh_frame section contribution which might enable the
-	dwarf unwinders and bypass the architecture-specific unwinders.
-
-	Currently, that happens to be not the case due to the current implementation
-	of epilogue_unwind_valid, which assumes that in absence of debug info proving
-	that the compiler is gcc >= 4.5.0, the .eh_frame contribution is invalid.
-
-	That may change though, see PR30028, in which case
-	gdb.base/unwind-on-each-insn.exp stops being a regression test for commit
-	49d7cd733a7 ("Change calculation of frame_id by amd64 epilogue unwinder").
-
-	Fix this by making sure that we don't use .eh_frame info regardless of
-	epilogue_unwind_valid, simply by not generating it using
-	-fno-asynchronous-unwind-tables.
-
-	Tested on x86_64-linux, target boards unix/{-m64,-m32}, using compilers
-	gcc 7.5.0 and clang 13.0.1.
-
-2023-01-23  Nick Clifton  <nickc@redhat.com>
-
-	Updated Swedish translation for the binutils sub-directory
-
-2023-01-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Simplify gdb.base/unwind-on-each-insn.exp
-	In test-case gdb.base/unwind-on-each-insn.exp, we try to determine the last
-	disassembled insn in function foo.
-
-	This in it self is fragile, as demonstrated by commit 91836f41e20 ("Powerpc
-	fix for gdb.base/unwind-on-each-insn.exp").
-
-	The use of the last disassembled insn in the test-case is to stop stepping in
-	foo once reaching it.
-
-	However, the intent is to stop stepping just before returning to main.
-
-	There is no guarantee that the last disassembled insn:
-	- is actually executed
-	- is executed just before returning to main
-	- is executed only once.
-
-	Fix this by simplying the test-case to continue stepping till stepping out of
-	foo.
-
-	Tested on x86_64-linux.
-
-2023-01-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix untested in gdb.base/frame-view.exp
-	When running test-case gdb.base/frame-view.exp, I see:
-	...
-	gdb compile failed, ld: frame-view0.o: in function `main':
-	frame-view.c:73: undefined reference to `pthread_create'
-	ld: frame-view.c:76: undefined reference to `pthread_join'
-	collect2: error: ld returned 1 exit status
-	UNTESTED: gdb.base/frame-view.exp: failed to prepare
-	...
-
-	Fix this by adding pthreads to the compilation flags.
-
-	Tested on x86_64-linux.
-
-2023-01-23  Vladislav Khmelevsky  <och95@yandex.ru>
-
-	Fix objdump --reloc for specific symbol
-	If objdump is used with both --disassemble=symbol and --reloc options
-	skip relocations that have addresses before the symbol, so that they
-	are not displayed.
-
-2023-01-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-22  Tom Tromey  <tom@tromey.com>
-
-	Remove path name from test
-	The test suite reports several path names in tests.  I couldn't find
-	most of these, and I suspect they are false reports, but I did manage
-	to locate one.  This one is probably harmless, as I think the path
-	does not vary; but it's also easy to fix and suppress one warning.
-
-	Minor cleanup in gdb.btrace/enable.exp
-	I noticed a weird-looking bit of code in gdb.btrace/enable.exp that is
-	left over from an earlier change.  This patch moves the "!" inside the
-	braces, where it belongs.
-
-	Minor fixup in allow_aarch64_sve_tests
-	An earlier patch failed to update a string in allow_aarch64_sve_tests.
-
-2023-01-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make frame_info_ptr auto-reinflatable
-	This is the second step of making frame_info_ptr automatic, reinflate on
-	demand whenever trying to obtain the wrapper frame_info pointer, either
-	through the get method or operator->.  Make the reinflate method
-	private, it is used as a convenience method in those two.
-
-	Add an "is_null" method, because it is often needed to know whether the
-	frame_info_ptr wraps an frame_info or is empty.
-
-	Make m_ptr mutable, so that it's possible to reinflate const
-	frame_info_ptr objects.  Whether m_ptr is nullptr or not does not change
-	the logical state of the object, because we re-create it on demand.  I
-	believe this is the right use case for mutable.
-
-	Change-Id: Icb0552d0035e227f81eb3c121d8a9bb2f9d25794
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make frame_info_ptr grab frame level and id on construction
-	This is the first step of making frame_info_ptr automatic.  Remove the
-	frame_info_ptr::prepare_reinflate method, move that code to the
-	constructor.
-
-	Change-Id: I85cdae3ab1c043c70e2702e7fb38e9a4a8a675d8
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make user-created frames reinflatable
-	This patch teaches frame_info_ptr to reinflate user-created frames
-	(frames created through create_new_frame, with the "select-frame view"
-	command).
-
-	Before this patch, frame_info_ptr doesn't support reinflating
-	user-created frames, because it currently reinflates by getting the
-	current target frame (for frame 0) or frame_find_by_id (for other
-	frames).  To reinflate a user-created frame, we need to call
-	create_new_frame, to make it lookup an existing user-created frame, or
-	otherwise create one.
-
-	So, in prepare_reinflate, get the frame id even if the frame has level
-	0, if it is user-created.  In reinflate, if the saved frame id is user
-	create it, call create_new_frame.
-
-	In order to test this, I initially enhanced the gdb.base/frame-view.exp
-	test added by the previous patch by setting a pretty-printer for the
-	type of the function parameters, in which we do an inferior call.  This
-	causes print_frame_args to not reinflate its frame (which is a
-	user-created one) properly.  On one machine (my Arch Linux one), it
-	properly catches the bug, as the frame is not correctly restored after
-	printing the first parameter, so it messes up the second parameter:
-
-	    frame
-	    #0  baz (z1=hahaha, z2=<error reading variable: frame address is not available.>) at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/frame-view.c:40
-	    40        return z1.m + z2.n;
-	    (gdb) FAIL: gdb.base/frame-view.exp: with_pretty_printer=true: frame
-	    frame
-	    #0  baz (z1=hahaha, z2=<error reading variable: frame address is not available.>) at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/frame-view.c:40
-	    40        return z1.m + z2.n;
-	    (gdb) FAIL: gdb.base/frame-view.exp: with_pretty_printer=true: frame again
-
-	However, on another machine (my Ubuntu 22.04 one), it just passes fine,
-	without the appropriate fix.  I then thought about writing a selftest
-	for that, it's more reliable.  I left the gdb.base/frame-view.exp pretty
-	printer test there, it's already written, and we never know, it might
-	catch some unrelated issue some day.
-
-	Change-Id: I5849baf77991fc67a15bfce4b5e865a97265b386
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make it possible to restore selected user-created frames
-	I would like to improve frame_info_ptr to automatically grab the
-	information needed to reinflate a frame, and automatically reinflate it
-	as needed.  One thing that is in the way is the fact that some frames
-	can be created out of thin air by the create_new_frame function.  These
-	frames are not the fruit of unwinding from the target's current frame.
-	These frames are created by the "select-frame view" command.
-
-	These frames are not correctly handled by the frame save/restore
-	functions, save_selected_frame, restore_selected_frame and
-	lookup_selected_frame.  This can be observed here, using the test
-	included in this patch:
-
-	    $ ./gdb --data-directory=data-directory -nx -q testsuite/outputs/gdb.base/frame-view/frame-view
-	    Reading symbols from testsuite/outputs/gdb.base/frame-view/frame-view...
-	    (gdb) break thread_func
-	    Breakpoint 1 at 0x11a2: file /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/frame-view.c, line 42.
-	    (gdb) run
-	    Starting program: /home/simark/build/binutils-gdb/gdb/testsuite/outputs/gdb.base/frame-view/frame-view
-
-	    [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/usr/lib/../lib/libthread_db.so.1".
-	    [New Thread 0x7ffff7cc46c0 (LWP 4171134)]
-	    [Switching to Thread 0x7ffff7cc46c0 (LWP 4171134)]
-
-	    Thread 2 "frame-view" hit Breakpoint 1, thread_func (p=0x0) at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/frame-view.c:42
-	    42        foo (11);
-	    (gdb) info frame
-	    Stack level 0, frame at 0x7ffff7cc3ee0:
-	     rip = 0x5555555551a2 in thread_func (/home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/frame-view.c:42); saved rip = 0x7ffff7d4e8fd
-	     called by frame at 0x7ffff7cc3f80
-	     source language c.
-	     Arglist at 0x7ffff7cc3ed0, args: p=0x0
-	     Locals at 0x7ffff7cc3ed0, Previous frame's sp is 0x7ffff7cc3ee0
-	     Saved registers:
-	      rbp at 0x7ffff7cc3ed0, rip at 0x7ffff7cc3ed8
-	    (gdb) thread 1
-	    [Switching to thread 1 (Thread 0x7ffff7cc5740 (LWP 4171122))]
-	    #0  0x00007ffff7d4b4b6 in ?? () from /usr/lib/libc.so.6
-
-	Here, we create a custom frame for thread 1 (using the stack from thread
-	2, for convenience):
-
-	    (gdb) select-frame view 0x7ffff7cc3f80 0x5555555551a2
-
-	The first calls to "frame" looks good:
-
-	    (gdb) frame
-	    #0  thread_func (p=0x7ffff7d4e630) at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/frame-view.c:42
-	    42        foo (11);
-
-	But not the second one:
-
-	    (gdb) frame
-	    #0  0x00007ffff7d4b4b6 in ?? () from /usr/lib/libc.so.6
-
-	This second "frame" command shows the current target frame instead of
-	the user-created frame.
-
-	It's not totally clear how the "select-frame view" feature is expected
-	to behave, especially since it's not tested.  I heard accounts that it
-	used to be possible to select a frame like this and do "up" and "down"
-	to navigate the backtrace starting from that frame.  The fact that
-	create_new_frame calls frame_unwind_find_by_frame to install the right
-	unwinder suggest that it used to be possible.  But that doesn't work
-	today:
-
-	    (gdb) select-frame view 0x7ffff7cc3f80 0x5555555551a2
-	    (gdb) up
-	    Initial frame selected; you cannot go up.
-	    (gdb) down
-	    Bottom (innermost) frame selected; you cannot go down.
-
-	and "backtrace" always shows the actual thread's backtrace, it ignores
-	the user-created frame:
-
-	    (gdb) bt
-	    #0  0x00007ffff7d4b4b6 in ?? () from /usr/lib/libc.so.6
-	    #1  0x00007ffff7d50403 in ?? () from /usr/lib/libc.so.6
-	    #2  0x000055555555521a in main () at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/frame-view.c:56
-
-	I don't want to address all the `select-frame view` issues , but I think
-	we can agree that the "frame" command changing the selected frame, as
-	shown above, is a bug.  I would expect that command to show the
-	currently selected frame and not change it.
-
-	This happens because of the scoped_restore_selected_frame object in
-	print_frame_args.  The frame information is saved in the constructor
-	(the backtrace below), and restored in the destructor.
-
-	    #0  save_selected_frame (frame_id=0x7ffdc0020ad0, frame_level=0x7ffdc0020af0) at /home/simark/src/binutils-gdb/gdb/frame.c:1682
-	    #1  0x00005631390242f0 in scoped_restore_selected_frame::scoped_restore_selected_frame (this=0x7ffdc0020ad0) at /home/simark/src/binutils-gdb/gdb/frame.c:324
-	    #2  0x000056313993581e in print_frame_args (fp_opts=..., func=0x62100023bde0, frame=..., num=-1, stream=0x60b000000300) at /home/simark/src/binutils-gdb/gdb/stack.c:755
-	    #3  0x000056313993ad49 in print_frame (fp_opts=..., frame=..., print_level=1, print_what=SRC_AND_LOC, print_args=1, sal=...) at /home/simark/src/binutils-gdb/gdb/stack.c:1401
-	    #4  0x000056313993835d in print_frame_info (fp_opts=..., frame=..., print_level=1, print_what=SRC_AND_LOC, print_args=1, set_current_sal=1) at /home/simark/src/binutils-gdb/gdb/stack.c:1126
-	    #5  0x0000563139932e0b in print_stack_frame (frame=..., print_level=1, print_what=SRC_AND_LOC, set_current_sal=1) at /home/simark/src/binutils-gdb/gdb/stack.c:368
-	    #6  0x0000563139932bbe in print_stack_frame_to_uiout (uiout=0x611000016840, frame=..., print_level=1, print_what=SRC_AND_LOC, set_current_sal=1) at /home/simark/src/binutils-gdb/gdb/stack.c:346
-	    #7  0x0000563139b0641e in print_selected_thread_frame (uiout=0x611000016840, selection=...) at /home/simark/src/binutils-gdb/gdb/thread.c:1993
-	    #8  0x0000563139940b7f in frame_command_core (fi=..., ignored=true) at /home/simark/src/binutils-gdb/gdb/stack.c:1871
-	    #9  0x000056313994db9e in frame_command_helper<frame_command_core>::base_command (arg=0x0, from_tty=1) at /home/simark/src/binutils-gdb/gdb/stack.c:1976
-
-	Since the user-created frame has level 0 (identified by the saved level
-	-1), lookup_selected_frame just reselects the target's current frame,
-	and the user-created frame is lost.
-
-	My goal here is to fix this particular problem.
-
-	Currently, select_frame does not set selected_frame_id and
-	selected_frame_level for frames with level 0.  It leaves them at
-	null_frame_id / -1, indicating to restore_selected_frame to use the
-	target's current frame.  User-created frames also have level 0, so add a
-	special case them such that select_frame saves their selected id and
-	level.
-
-	save_selected_frame does not need any change.
-
-	Change the assertion in restore_selected_frame that checks `frame_level
-	!= 0` to account for the fact that we can restore user-created frames,
-	which have level 0.
-
-	Finally, change lookup_selected_frame to make it able to re-create
-	user-created frame_info objects from selected_frame_level and
-	selected_frame_id.
-
-	Add a minimal test case for the case described above, that is the
-	"select-frame view" command followed by the "frame" command twice.  In
-	order to have a known stack frame to switch to, the test spawns a second
-	thread, and tells the first thread to use the other thread's top frame.
-
-	Change-Id: Ifc77848dc465fbd21324b9d44670833e09fe98c7
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add create_new_frame(frame_id) overload
-	The subsequent patches will need to call create_new_frame with an
-	existing frame_id representing a user created frame.  They could call
-	the existing create_new_frame, passing both addresses, but it seems
-	nicer to have a version of the function that takes a frame_id directly.
-
-	Change-Id: If31025314fec0c3e644703e4391a5ef8079e1a32
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add user-created frames to stash
-	A subsequent patch makes it possible for frame_info_ptr to reinflate
-	user-created frames.  If two frame_info_ptr objects wrapping the same
-	user-created frame_info need to do reinflation, we want them to end up
-	pointing to the same frame_info instance, and not create two separate
-	frame_infos.  Otherwise, GDB gets confused down the line, as the state
-	kept in one frame_info object starts differing from the other
-	frame_info.
-
-	Achieve this by making create_new_frame place the user-created frames in
-	the frame stash.  This way, when the second frame_info_ptr does
-	reinflation, it will find the existing frame_info object, created by the
-	other frame_info_ptr, in the frame stash.
-
-	To make the frame stash differentiate between regular and user-created
-	frame infos which would otherwise be equal, change frame_addr_hash and
-	frame_id::operator== to account for frame_id::user_created_p.
-
-	I made create_new_frame look up existing frames in the stash, and only
-	create one if it doesn't find one.  The goal is to avoid the
-	"select-frame view"/"info frame view"/"frame view" commands from
-	overriding existing entries into the stash, should the user specify the
-	same frame more than once.  This will also help in the subsequent patch
-	that makes frame_info_ptr capable of reinflating user-created frames.
-	It will be able to just call create_new_frame and it will do the right
-	thing.
-
-	Change-Id: I14ba5799012056c007b4992ecb5c7adafd0c2404
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add frame_id::user_created_p
-	Later in this series, we'll need to differentiate frame ids for regular
-	frames (obtained from the target state and unwinding from it) vs frame
-	ids for user-created frames (created with create_new_frame).  Add the
-	frame_id::user_created_p field to indicate a frame is user-created, and
-	set it in create_new_frame.
-
-	The field is otherwise not used yet, so not changes in behavior are
-	expected.
-
-	Change-Id: I60de3ce581ed01bf0fddb30dff9bd932840120c3
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: move frame_info_ptr to frame.{c,h}
-	A patch later in this series will make frame_info_ptr access some
-	fields internal to frame_info, which we don't want to expose outside of
-	frame.c.  Move the frame_info_ptr class to frame.h, and the definitions
-	to frame.c.  Remove frame-info.c and frame-info.h.
-
-	Change-Id: Ic5949759e6262ea0da6123858702d48fe5673fea
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: move call site types to call-site.h
-	I hesitated between putting  the file in the dwarf2 directory (as
-	gdb/dwarf2/call-site.h) or in the common directory (as gdb/call-site.h).
-	The concept of call site is not DWARF-specific, another debug info
-	reader could provide this information.  But as it is, the implementation
-	is a bit DWARF-specific, as one form it can take is a DWARF expression
-	and parameters can be defined using a DWARF register number.  So I ended up
-	choosing to put it under dwarf2/.  If another debug info reader ever
-	wants to provide call site information, we can introduce a layer of
-	abstraction between the "common" call site and the "dwarf2" call site.
-
-	The copyright start year comes from the date `struct call_site` was
-	introduced.
-
-	Change-Id: I1cd84aa581fbbf729edc91b20f7d7a6e0377014d
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: move sect_offset and cu_offset to dwarf2/types.h
-	I want to move the call_site stuff out of gdbtypes.h, to a new header
-	file, to break some cyclic include problem.  The call_site stuff uses
-	cu_offset, also defined in gdbtypes.h, so cu_offset also needs to move
-	somewhere else (otherwise, call-site.h will need to include gdbtypes.h,
-	and we are back to square 1).  I could move cu_offset to the future new
-	file dwarf2/call-site.h, but it doesn't sound like a good place for it,
-	at cu_offset is not specific to call sites, it's used throughout
-	dwarf2/.  So, move it to its own file, dwarf2/types.h.  For now,
-	gdbtypes.h includes dwarf2/types.h, but that will be removed once the
-	call site stuff is moved to its own file.
-
-	Move sect_offset with it too.  sect_offset is not a DWARF-specific
-	concept, but for the moment it is only used in dwarf2/.
-
-	Change-Id: I1fd2a3b7b67dee789c4874244b044bde7db43d8e
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove language.h include from frame.h
-	This helps resolve some cyclic include problem later in the series.
-	The only language-related thing frame.h needs is enum language, and that
-	is in defs.h.
-
-	Doing so reveals that a bunch of files were relying on frame.h to
-	include language.h, so fix the fallouts here and there.
-
-	Change-Id: I178a7efec1953c2d088adb58483bade1f349b705
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: move compile_instance to compile/compile.h
-	struct compile_instance needs to be visible to users, since we use
-	std::unique<compile_instance>.  language.c and c-lang.c currently
-	includes compile-internal.h for this reason, which kind of defeats the
-	purpose of having an "internal" header file.
-
-	Change-Id: Iedffe5f1173b3de7bdc1be533ee2a68e6f6c549f
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: move type_map_instance to compile/compile.c
-	It's only used in compile/compile.c, it doesn't need to be in a header.
-
-	Change-Id: Ic5bec996b7b0cd7130055d1e8ff238b5ac4292a3
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-20  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	Upload SFrame spec files as well
-	binutils/
-		* README-how-to-make-a-release: Include sframe-spec html and pdf
-		files.
-
-2023-01-20  Tom Tromey  <tom@tromey.com>
-
-	Use bool in pc_in_* functions
-	I noticed that pc_in_unmapped_range had a weird return type -- it was
-	returning a CORE_ADDR but intending to return a bool.  This patch
-	changes all the pc_in_* functions to return bool instead.
-
-2023-01-20  Tom Tromey  <tromey@adacore.com>
-
-	Constify notif_client
-	It seems to me that a notif_client is read-only, so this patch changes
-	the code to use "const" everywhere.
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove struct trad_frame forward declaration
-	I found this forward declaration for a struct that doesn't exist, remove
-	it.
-
-	Change-Id: Ib9473435a949452160598035e5e0fe19fcdc4d20
-
-2023-01-20  Tom Tromey  <tromey@adacore.com>
-
-	Make gdb.ada/ptype_tagged_param.exp pass
-	gdb.ada/ptype_tagged_param.exp is failing for me on x86-64 Fedora 36.
-	However, it's actually generating the correct output -- it is just
-	that the test thinks that the "ptype" will not work because I do not
-	have the GNAT debuginfo installed.
-
-	This patch changes the code to accept either result, and then to issue
-	a kfail as appropriate.
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/dwarf: fix UBsan crash in read_subrange_type
-	When running gdb.ada/arrayptr.exp (and others) on Ubuntu 22.04, with the
-	`gnat-11` package installed (not `gnat`), with UBSan activated, I get:
-
-	    (gdb) break foo.adb:40
-	    /home/smarchi/src/binutils-gdb/gdb/dwarf2/read.c:17689:20: runtime error: shift exponent 127 is too large for 64-bit type 'long unsigned int'
-
-	The problematic DIEs are:
-
-	    0x00001460:       DW_TAG_subrange_type
-	                        DW_AT_lower_bound [DW_FORM_data1]   (0x00)
-	                        DW_AT_upper_bound [DW_FORM_data16]  (ffffffffffffffff3f00000000000000)
-	                        DW_AT_name [DW_FORM_strp]   ("foo__packed_array___XP7___XDLU_0__1180591620717411303423")
-	                        DW_AT_type [DW_FORM_ref4]   (0x0000153f "long_long_long_unsigned")
-	                        DW_AT_GNAT_descriptive_type [DW_FORM_ref4]  (0x0000147e)
-	                        DW_AT_artificial [DW_FORM_flag_present]     (true)
-
-	    0x0000153f:   DW_TAG_base_type
-	                    DW_AT_byte_size [DW_FORM_data1] (0x10)
-	                    DW_AT_encoding [DW_FORM_data1]  (DW_ATE_unsigned)
-	                    DW_AT_name [DW_FORM_strp]       ("long_long_long_unsigned")
-	                    DW_AT_artificial [DW_FORM_flag_present] (true)
-
-	When processed by this code:
-
-	    negative_mask =
-	      -((ULONGEST) 1 << (base_type->length () * TARGET_CHAR_BIT - 1));
-	    if (low.kind () == PROP_CONST
-	        && !base_type->is_unsigned () && (low.const_val () & negative_mask))
-	      low.set_const_val (low.const_val () | negative_mask);
-
-	When the base type's length (16 bytes in this case) is larger than a
-	ULONGEST (typically 8 bytes), the bit shift is too large.
-
-	My obvious fix is just to skip the fixup for base types larger than a
-	ULONGEST (8 bytes).  I don't think we really handle constant attribute
-	values larger than 8 bytes anyway, so this is part of a much larger
-	problem.
-
-	Add a test that replicates this situation, but uses bounds that fit in a
-	signed 64 bit, so we get a sensible result.
-
-	Change-Id: I8d0a24f3edd83b44e0761a0ce38922d3e2e112fb
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29386
-
-2023-01-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: add test for negative subrange bounds with unsigned form
-	I am looking at this code [1]:
-
-	  /* Normally, the DWARF producers are expected to use a signed
-	     constant form (Eg. DW_FORM_sdata) to express negative bounds.
-	     But this is unfortunately not always the case, as witnessed
-	     with GCC, for instance, where the ambiguous DW_FORM_dataN form
-	     is used instead.  To work around that ambiguity, we treat
-	     the bounds as signed, and thus sign-extend their values, when
-	     the base type is signed.  */
-	  negative_mask =
-	    -((ULONGEST) 1 << (base_type->length () * TARGET_CHAR_BIT - 1));
-	  if (low.kind () == PROP_CONST
-	      && !base_type->is_unsigned () && (low.const_val () & negative_mask))
-	    low.set_const_val (low.const_val () | negative_mask);
-	  if (high.kind () == PROP_CONST
-	      && !base_type->is_unsigned () && (high.const_val () & negative_mask))
-	    high.set_const_val (high.const_val () | negative_mask);
-
-	Nothing in the testsuite seems to exercise it, as when I remove it, all
-	of gdb.dwarf2 still passes.  And tests in other directories would be
-	compiler-dependent, so would rely on having a buggy compiler.
-
-	Update gdb.dwarf2/subrange.exp to have a test for it.  When removing the
-	code above, the new test fails with:
-
-	  ptype array_with_buggy_negative_bounds_type^M
-	  type = array [240..244] of signed_byte^M
-	  (gdb) FAIL: gdb.dwarf2/subrange.exp: ptype array_with_buggy_negative_bounds_type
-
-	instead of the expected:
-
-	  ptype array_with_buggy_negative_bounds_type^M
-	  type = array [-16..-12] of signed_byte^M
-	  (gdb) PASS: gdb.dwarf2/subrange.exp: ptype array_with_buggy_negative_bounds_type
-
-	[1] https://gitlab.com/gnutools/binutils-gdb/-/blob/5ea14aa4e53fa37f4ba4517497ed2c1e4c60dee2/gdb/dwarf2/read.c#L17681-17695
-
-	Change-Id: I1992a3ff0cb1e90fa8a9114dae6c591792f059c2
-
-2023-01-20  Michael Matz  <matz@suse.de>
-
-	Add testcase ld-elf/merge4
-	to check a situation that once failed with the new section merging
-	when it mishandled offsets pointing into alignment padding in mergable
-	string sections (i.e. pointing to zeros).  It made bootstrap.exp fail
-	but that depends on many factors to actually go wrong so this is a more
-	explicit variant of it.
-
-2023-01-20  Michael Matz  <matz@suse.de>
-
-	arm32: Fix rodata-merge-map
-	the test expects a second, but useless, $d mapping symbol for
-	the partially merged section, and specifically disallows one
-	for the completely merged section.  The new merging algorithm
-	makes it so that also the partially merged sections are conceptually
-	SEC_EXCLUDED, except the first merge section (e.g. as if the very
-	first object file already contains all strings).  So that second mapping
-	symbol is now missing.  It never was needed anyway.
-
-	So, adjust the test.
-
-2023-01-20  Michael Matz  <matz@suse.de>
-
-	Faster string merging
-	* use power-of-two hash table
-	* use better hash function (hashing 32bits at once and with better
-	  mixing characteristics)
-	* use input-offset-to-entry maps instead of retaining full input
-	  contents for lookup time
-	* don't reread SEC_MERGE section multiple times
-	* care for cache behaviour for the hot lookup routine
-
-	The overall effect is less usage in libz and much faster string merging
-	itself.  On a debug-info-enabled cc1 the effect at the time of this
-	writing on the machine I used was going from 14400 perf samples to 9300
-	perf samples or from 3.7 seconds to 2.4 seconds, i.e. about 33% .
-
-2023-01-20  Frederic Cambus  <fred@statdns.com>
-
-	Add OpenBSD ARM GAS support.
-
-2023-01-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: split i386-gen's opcode hash entry struct
-	All glibc malloc() implementations I've checked have a smallest
-	allocation size worth of 3 pointers, with an increment worth of 2
-	pointers. Hence mnemonics with multiple templates can be stored more
-	efficiently when maintaining the shared "name" field only in the actual
-	hash entry. (To express the shared nature, also convert "name" to by
-	pointer-to-const.)
-
-	While doing the conversation also pull out common code from the involved
-	if/else construct in expand_templates().
-
-2023-01-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: embed register and alike names in disassembler
-	Register names are (including their nul terminators) on average almost 4
-	bytes long. Otoh no register name is longer than 8 bytes. Hence even for
-	32-bit builds using a pointer is only slightly more space efficient than
-	embedding the strings. A level of indirection can be also avoided by
-	embedding the names as an array of 8 characters directly in the arrays,
-	and the number of base relocations in libopcodes.so (or PIE builds of
-	statically linked executables) goes down as well.
-
-	To amortize for the otherwise reduced folding of string literals by the
-	linker, use att_names_seg[] in place of string literals in append_seg()
-	and OP_ESreg().
-
-2023-01-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: embed register names in reg_entry
-	Register names are (including their nul terminators) on average almost 4
-	bytes long. Otoh no register name is longer than 7 bytes. Hence even for
-	32-bit builds using a pointer is only slightly more space efficient than
-	embedding the strings. A level of indirection can be also avoided by
-	embedding the names as an array of 8 characters directly in the struct,
-	and the number of base relocations in PIE builds of gas goes down as
-	well.
-
-	x86: avoid strcmp() in a few places
-	Now that we have identifiers for the mnemonic strings we can avoid
-	strcmp() in a number of places, comparing the offsets into the mnemonic
-	string table instead. While doing this also
-	- convert a leftover strncmp() to startswith() (apparently an oversight
-	  when rebasing the original patch introducing the startswith() uses),
-	- use the new shorthand for current_templates->start also elsewhere in
-	  md_assemble() (valid up to the point where match_template() is
-	  called).
-
-	x86: absorb allocation in i386-gen
-	When generating the mnemonic string table we already set up an
-	identifier for the following entry in a number of cases. Re-use that on
-	the next loop iteration rather than re-doing allocation and conversion.
-
-	x86: re-use insn mnemonic strings as much as possible
-	Compact the mnemonic string table such that the tails of longer
-	mnemonics are re-used for shorter ones, going beyond what compilers
-	would typically do, but matching what ELF linkers may do when processing
-	SHF_MERGE|SHF_STRINGS sections. This reduces table size by about 12.5%.
-
-2023-01-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move insn mnemonics to a separate table
-	Using full pointers to reference the insn mnemonic strings is not very
-	efficient. With overall string size presently just slightly over 20k,
-	even a 16-bit value would suffice. Use "unsigned int" for now, as
-	there's no good use we could presently make of the otherwise saved 16
-	bits.
-
-	For 64-bit builds this reduces table size by 6.25% (prior to the recent
-	ISA extension additions it would have been 12.5%), with a similar effect
-	on cache occupation of table entries accessed. For PIE builds of gas
-	this also reduces the number of base relocations quite a bit (obviously
-	independent of bitness).
-
-2023-01-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: abstract out obtaining of a template's mnemonic
-	In preparation for changing the representation of the "name" field
-	introduce a wrapper function. This keeps the mechanical change separate
-	from the functional one.
-
-2023-01-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-19  Tom Tromey  <tromey@adacore.com>
-
-	Use "maint ignore-probes" in no-libstdcxx-probe.exp
-	While looking at some test output, I saw that no-libstdcxx-probe.exp
-	was not being run.  However, it occurred to me that Tom de Vries' new
-	"maint ignore-probes" command could be used to enable this test
-	unconditionally.
-
-	Reviewed-by: Tom de Vries <tdevries@suse.de>
-
-2023-01-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	i386: Don't emit unsupported TLS relocs on Solaris
-	Emit R_386_TLS_LE and R_386_TLS_IE, instead of R_386_TLS_LE_32 and
-	R_386_TLS_IE_32, on Solaris.
-
-		PR ld/13671
-		* elf32-i386.c (elf_i386_tls_transition): Only emit R_386_TLS_LE,
-		R_386_TLS_IE on Solaris.
-		(elf_i386_relocate_section): Only use R_386_TLS_GD->R_386_TLS_LE
-		transition on Solaris.
-
-	Co-Authored-By: H.J. Lu <hjl.tools@gmail.com>
-
-2023-01-19  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	GDB/testsuite: Expand for character string limiting options
-	Modify test cases that verify the operation of the array element limit
-	with character strings such that they are executed twice, once with the
-	`set print characters' option set to `elements' and the limit controlled
-	with the `set print elements' option, and then again with the limit
-	controlled with the `set print characters' option instead.  Similarly
-	with the `-elements' and `-characters' options for the `print' command.
-	Additionally verify that said `print' command options combined yield the
-	expected result.
-
-	Verify correct $_gdb_setting and $_gdb_setting_str values for the `print
-	characters' setting, in particular the `void' value for the `elements'
-	default, which has no corresponding integer value exposed.
-
-	Add Guile and Python coverage for the `print characters' GDB setting.
-
-	There are new tests for Ada and Pascal, as the string printing code for
-	these languages is different than the generic string printing code used
-	by other languages.  Modula2 also has different string printing code,
-	but (a) this is similar to Pascal, and (b) there are no existing modula2
-	tests written in Modula2, so I'm not sure how I'd even test the Modula2
-	string printing.
-
-	Co-Authored-By: Maciej W. Rozycki <macro@embecosm.com>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-19  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	GDB: Add a character string limiting option
-	This commit splits the `set/show print elements' option into two.  We
-	retain `set/show print elements' for controlling how many elements of an
-	array we print, but a new `set/show print characters' setting is added
-	which is used for controlling how many characters of a string are
-	printed.
-
-	The motivation behind this change is to allow users a finer level of
-	control over how data is printed, reflecting that, although strings can
-	be thought of as arrays of characters, users often want to treat these
-	two things differently.
-
-	For compatibility reasons by default the `set/show print characters'
-	option is set to `elements', which makes the limit for character strings
-	follow the setting of the `set/show print elements' option, as it used
-	to.  Using `set print characters' with any other value makes the limit
-	independent from the `set/show print elements' setting, however it can
-	be restored to the default with the `set print characters elements'
-	command at any time.
-
-	A corresponding `-characters' option for the `print' command is added,
-	with the same semantics, i.e. one can use `elements' to make a given
-	`print' invocation follow the limit of elements, be it set with the
-	`-elements' option also given with the same invocation or taken from the
-	`set/show print elements' setting, for characters as well regardless of
-	the current setting of the `set/show print characters' option.
-
-	The GDB changes are all pretty straightforward, just changing references
-	to the old 'print_max' to use a new `get_print_max_chars' helper which
-	figures out which of the two of `print_max' and `print_max_chars' values
-	to use.
-
-	Likewise, the documentation is just updated to reference the new setting
-	where appropriate.
-
-	To make people's life easier the message shown by `show print elements'
-	now indicates if the setting also applies to character strings:
-
-	(gdb) set print characters elements
-	(gdb) show print elements
-	Limit on string chars or array elements to print is 200.
-	(gdb) set print characters unlimited
-	(gdb) show print elements
-	Limit on array elements to print is 200.
-	(gdb)
-
-	and the help text shows the dependency as well:
-
-	(gdb) help set print elements
-	Set limit on array elements to print.
-	"unlimited" causes there to be no limit.
-	This setting also applies to string chars when "print characters"
-	is set to "elements".
-	(gdb)
-
-	In the testsuite there are two minor updates, one to add `-characters'
-	to the list of completions now shown for the `print' command, and a bare
-	minimum pair of checks for the right handling of `set print characters'
-	and `show print characters', copied from the corresponding checks for
-	`set print elements' and `show print elements' respectively.
-
-	Co-Authored-By: Maciej W. Rozycki <macro@embecosm.com>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-19  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Allow arbitrary keywords in integer set commands
-	Rather than just `unlimited' allow the integer set commands (or command
-	options) to define arbitrary keywords for the user to use, removing
-	hardcoded arrangements for the `unlimited' keyword.
-
-	Remove the confusingly named `var_zinteger', `var_zuinteger' and
-	`var_zuinteger_unlimited' `set'/`show' command variable types redefining
-	them in terms of `var_uinteger', `var_integer' and `var_pinteger', which
-	have the range of [0;UINT_MAX], [INT_MIN;INT_MAX], and [0;INT_MAX] each.
-
-	Following existing practice `var_pinteger' allows extra negative values
-	to be used, however unlike `var_zuinteger_unlimited' any number of such
-	values can be defined rather than just `-1'.
-
-	The "p" in `var_pinteger' stands for "positive", for the lack of a more
-	appropriate unambiguous letter, even though 0 obviously is not positive;
-	"n" would be confusing as to whether it stands for "non-negative" or
-	"negative".
-
-	Add a new structure, `literal_def', the entries of which define extra
-	keywords allowed for a command and numerical values they correspond to.
-	Those values are not verified against the basic range supported by the
-	underlying variable type, allowing extra values to be allowed outside
-	that range, which may or may not be individually made visible to the
-	user.  An optional value translation is possible with the structure to
-	follow the existing practice for some commands where user-entered 0 is
-	internally translated to UINT_MAX or INT_MAX.  Such translation can now
-	be arbitrary.  Literals defined by this structure are automatically used
-	for completion as necessary.
-
-	So for example:
-
-	const literal_def integer_unlimited_literals[] =
-	  {
-	    { "unlimited", INT_MAX, 0 },
-	    { nullptr }
-	  };
-
-	defines an extra `unlimited' keyword and a user-visible 0 value, both of
-	which get translated to INT_MAX for the setting to be used with.
-
-	Similarly:
-
-	const literal_def zuinteger_unlimited_literals[] =
-	  {
-	    { "unlimited", -1, -1 },
-	    { nullptr }
-	  };
-
-	defines the same keyword and a corresponding user-visible -1 value that
-	is used for the requested setting.  If the last member were omitted (or
-	set to `{}') here, then only the keyword would be allowed for the user
-	to enter and while -1 would still be used internally trying to enter it
-	as a part of a command would result in an "integer -1 out of range"
-	error.
-
-	Use said error message in all cases (citing the invalid value requested)
-	replacing "only -1 is allowed to set as unlimited" previously used for
-	`var_zuinteger_unlimited' settings only rather than propagating it to
-	`var_pinteger' type.  It could only be used for the specific case where
-	a single extra `unlimited' keyword was defined standing for -1 and the
-	use of numeric equivalents is discouraged anyway as it is for historical
-	reasons only that they expose GDB internals, confusingly different
-	across variable types.  Similarly update the "must be >= -1" Guile error
-	message.
-
-	Redefine Guile and Python parameter types in terms of the new variable
-	types and interpret extra keywords as Scheme keywords and Python strings
-	used to communicate corresponding parameter values.  Do not add a new
-	PARAM_INTEGER Guile parameter type, however do handle the `var_integer'
-	variable type now, permitting existing parameters defined by GDB proper,
-	such as `listsize', to be accessed from Scheme code.
-
-	With these changes in place it should be trivial for a Scheme or Python
-	programmer to expand the syntax of the `make-parameter' command and the
-	`gdb.Parameter' class initializer to have arbitrary extra literals along
-	with their internal representation supplied.
-
-	Update the testsuite accordingly.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-19  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: Use AM_SILENT_RULES macro in configure.ac
-	Silence 'make' by default.
-
-	libsframe/
-		* configure.ac: Use AM_SILENT_RULES.
-		* configure: Regenerate.
-
-2023-01-19  Tom Tromey  <tom@tromey.com>
-
-	Remove some unused includes
-	I noticed a few spots that include gnu-stabs.h but that do not need
-	to.  This patch removes these unnecessary includes.  Tested by
-	rebuilding.
-
-2023-01-19  Tom de Vries  <tdevries@space.suse.cz>
-
-	[gdb/tdep, aarch64] Remove fp and sp reg aliases, add x31 reg alias
-	In aarch64-tdep.c we find these register aliases:
-	...
-	{
-	  /* 64-bit register names.  */
-	  {"fp", AARCH64_FP_REGNUM},
-	  {"lr", AARCH64_LR_REGNUM},
-	  {"sp", AARCH64_SP_REGNUM},
-	...
-
-	The sp alias is superfluous, because the canonical name of x31 is already sp.
-
-	The fp alias is superfluous, because it's already taken by the default meaning
-	of fp, assigned here in _initialize_frame_reg:
-	...
-	  user_reg_add_builtin ("fp", value_of_builtin_frame_fp_reg, NULL);
-	...
-
-	Fix this by removing the fp and sp aliases.
-
-	While we're at it, add an x31 alias for sp.
-
-	Approved-By: Luis Machado <luis.machado@arm.com>
-
-	Tested on aarch64-linux.
-	PR tdep/30012
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30012
-
-2023-01-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-value-cc.exp for big endian
-	On s390x-linux, I run into:
-	...
-	(gdb) python print(u[u_fields[0]])^M
-	99^M
-	(gdb) PASS: gdb.python/py-value-cc.exp: u's first field via field
-	python print(u[u_fields[1]])^M
-	0 '\000'^M
-	(gdb) FAIL: gdb.python/py-value-cc.exp: u's second field via field
-	...
-
-	There's a var u of this type:
-	...
-	union U {
-	  int a;
-	  char c;
-	};
-	...
-	and after assigning 99 to u.a, the test-case expects u.c to contain 99 (which
-	it does on x86_64), but instead it contains 0.
-
-	Fix this by instead assigning 0x63636363, to ensure that u.c == 99 for both
-	little and big endian.
-
-	Tested on x86_64-linux and s390x-linux.
-
-2023-01-19  Alan Modra  <amodra@gmail.com>
-
-	Reinitialise macro_nest
-		* input-scrub.c (input_scrub_begin): Init macro_nest.
-
-2023-01-19  Alan Modra  <amodra@gmail.com>
-
-	PR 30022, concurrent builds can fail
-	So let's not copy .libs/libbfd.a to libbfd.a now that nothing in the
-	binutils-gdb source tries to link against it.
-
-		PR 30022
-		* Makefile.am (noinst_LIBRARIES, libbfd_a_SOURCES, stamp-lib),
-		(libbfd.a): Delete rules.
-		(CLEANFILES): Adjust to suit.
-
-2023-01-19  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	toplevel: Makefile.def: add install-strip dependency on libsframe
-	As noted in PR libsframe/30014 - FTBFS: install-strip fails because
-	bfdlib relinks and fails to find libsframe, the install time
-	dependencies of libbfd need to be updated.
-
-		PR libsframe/30014
-		* Makefile.def: Reflect that libsframe needs to installed before
-		libbfd.  Reorder a bit to better track libsframe dependencies.
-		* Makefile.in: Regenerate.
-
-2023-01-19  Alan Modra  <amodra@gmail.com>
-
-	The fuzzers have found the reloc special functions in coff-aarch64.c
-	All of them need a bfd_reloc_offset_in_range check before accessing
-	data + reloc_entry->address.  This patch adds the missing checks and
-	sanity checks reloc offsets in coff_pe_aarch64_relocate_section too.
-
-	All of them also need changing to support objdump -W calls to
-	bfd_simple_get_relocated_section_contents.  At least, secrel_reloc
-	needs the support, the others might not be present in dwarf debug
-	sections.
-
-		* coff-aarch64.c (coff_aarch64_rel21_reloc): Range check
-		reloc offset.  Support final-linking.
-		(coff_aarch64_po12l_reloc): Likewise.
-		(coff_aarch64_addr32nb_reloc): Likewise.
-		(coff_aarch64_secrel_reloc): Likewise.
-		(coff_pe_aarch64_relocate_section): Range check reloc offset.
-
-2023-01-19  Alan Modra  <amodra@gmail.com>
-
-	Correct coff-aarch64 howtos and delete unnecessary special functions
-	The remaining special functions are still broken except when called
-	by gas bfd_install_relocation.
-
-		* coff-aarch64.c (coff_aarch64_addr64_reloc),
-		(coff_aarch64_addr32_reloc, coff_aarch64_branch26_reloc),
-		(coff_aarch64_branch19_reloc, coff_aarch64_branch14_reloc),
-		(coff_aarch64_po12a_reloc): Delete.
-		(HOWTO_INSTALL_ADDEND): Define as 1.
-		(HOW): Remove pcrel_off.  Correct all the howtos.
-		(CALC_ADDEND): Define.
-		(coff_aarch64_rtype_to_howto): New function.
-		(coff_rtype_to_howto): Define.
-
-2023-01-19  Alan Modra  <amodra@gmail.com>
-
-	coff-aarch64.c howtos
-	This is just a patch to fix overlong lines.  Wrapping the HOWTO macro
-	in a new HOW macro helps in this.  No functional changes here.
-
-		* coff-aarch64.c (HOW): Define and use for reloc howtos.
-
-2023-01-19  Alan Modra  <amodra@gmail.com>
-
-	howto install_addend
-	This adds a new flag to the reloc howtos that can be used to
-	incrementally change targets over to simple bfd_install_relocation
-	that just installs the addend without any weird adjustments.
-	I've made a few other changes to bfd_install_relocation, removing dead
-	code and comments that are really only applicable to
-	bfd_perform_relocation.
-
-	There is also a reloc offset bounds check change.  I've moved the
-	check to where data is accessed, as it seems reasonable to me to not
-	perform the check unless it is needed.  There is precedence for this;
-	Relocations against absolute symbols already avoided the check.
-
-	I also tried always performing the reloc offset check, and ran into
-	testsuite failures due to _NONE and _ALIGN relocs at the end of
-	sections.  These likely would be fixed if all such reloc howtos had
-	size set to zero, but I would rather not edit lots of files when it
-	involves checking that target code does not use the size.
-
-		* reloc.c (struct reloc_howto_struct): Add install_addend.
-		(HOWTO_INSTALL_ADDEND): Define.
-		(HOWTO): Init new field with HOWTO_INSTALL_ADDEND.
-		(bfd_install_relocation): Remove comments copied from
-		bfd_perform_relocation that aren't applicable here.  Remove
-		code dealing with output_offset and output_section.  Just set
-		relocation to addend if install_addend.  Move reloc offset
-		bounds check to just before section data is accessed, avoiding
-		the check when data is not accessed.
-		* bfd-in2.h: Regenerate.
-
-2023-01-19  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: info: convert verbose field to a bool
-	The verbose argument has always been an int treated as a bool, so
-	convert it to an explicit bool.  Further, update the API docs to
-	match the reality that the verbose value is actually used by some
-	of the internal modules.
-
-	sim: unify sim-signal.o building
-	Now that sim-main.h has been reduced significantly, we can remove it
-	from sim-signal.c and unify it across all boards since it compiles to
-	the same code.
-
-	sim: v850: reduce extra header inclusion to igen files
-	Limit these extra header includes to only when specific igen files
-	include us until we can move the includes to the igen fils directly.
-
-	sim: v850: drop redundant define
-	This is already in v850/local.mk, so we can drop it from sim-main.h.
-
-2023-01-19  Mark Wielaard  <mark@klomp.org>
-
-	sim: mn10300: minimize mn10300-sim.h include in sim-main.h
-	sim-main.h is special since it is one of the files automatically
-	included in igen generated files. But this means anything including
-	sim-main.h might get everything included just for the igen files.
-
-	To prevent clashing symbols/defines only include sim-fpu.h,
-	sim-signal.h, mn10300-sim.h from sim-main.h if it is included
-	from one of the generated igen C files. Add explicit includes
-	of mn10300-sim.h, sim-fpu.h and/or sim-signal.h to dv-mn103cpu.c,
-	interp.c and op_utils.c.
-
-2023-01-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-18  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Add references to erased args in cli-decode.c
-	Complement commit 1d7fe7f01b93 ("gdb: Introduce setting construct within
-	cmd_list_element") and commit 702991711a91 ("gdb: Have setter and getter
-	callbacks for settings") and update inline documentation accordingly for
-	`add_set_or_show_cmd' and `add_setshow_cmd_full_erased', documenting the
-	`args' parameter and removing references to `var', `set_setting_func'
-	and `get_setting_func'.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-18  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Add missing inline documentation for `add_setshow_cmd_full'
-	Complement commit 1d7fe7f01b93 ("gdb: Introduce setting construct
-	within cmd_list_element") and add missing description for
-	`add_setshow_cmd_full'.
-
-	GDB: Correct inline documentation for `add_setshow_cmd_full_erased'
-	Use proper English in the description of SET_LIST and SHOW_LIST.
-
-2023-01-18  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Fix documentation for `theclass' parameters in cli-decode.c
-	Rename CLASS to THECLASS in the documentation for `theclass' parameters
-	throughout cli-decode.c, complementing commit fe978cb071b4 ("C++ keyword
-	cleanliness, mostly auto-generated").
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-18  Tom Tromey  <tom@tromey.com>
-
-	Fix 'make TAGS' in gdbserver
-	PR build/29003 points out that "make TAGS" is broken in gdbserver.
-	This patch fixes the problem that is pointed out there, plus another
-	one I noticed while working on that -- namely that the "sed" computes
-	the wrong names for some source files.  Finally, a couple of obsolete
-	variable references are removed.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29003
-
-2023-01-18  Carl Love  <cel@us.ibm.com>
-
-	Revert "X86: reverse-finish fix"
-	This reverts commit b22548ddb30bfb167708e82d3bb932461c1b703a.
-
-	This patch is being reverted since the patch series is causing regressions.
-
-2023-01-18  Carl Love  <cel@us.ibm.com>
-
-	Revert "PowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-reverse.exp"
-	This reverts commit 92e07580db6a5572573d5177ca23933064158f89.
-
-	Reverting patch as the patch series is causing regressions.
-
-2023-01-18  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb: care for dynamic objfiles in build_id_bfd_get ()
-	Accessing gdb.Objfile.build_id caused GDB to crash when objfile is
-	dynamic, that is created by JIT reader API.
-
-	The issue was NULL-pointer dereferencing in build_id_bfd_get () because
-	dynamic objfiles have no underlaying BFD structure. This commit fixes
-	the problem by a NULL-check in build_id_bfd_get ().
-
-2023-01-18  Nick Clifton  <nickc@redhat.com>
-
-	Speed up objcopy's note merging.
-	   PR 29993
-	  * objcopy.c (merge_gnu_build_notes): Remember the last non-deleted note in order to speed up the scan for matching notes.
-
-2023-01-18  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: drop local psim link
-	This has never been installed, and it's not clear anyone cares about
-	it in the local build dir (when the main program is sim/ppc/run), so
-	drop all the logic to simplify.
-
-2023-01-18  Mark Harmstone  <mark@harmstone.com>
-
-	Use subsystem to distinguish between pei-arm-little and pei-arm-wince-little
-	Running objdump against a 32-bit ARM PE file currently needs
-	disambiguation, as it gets picked up by both pei-arm-little and
-	pei-arm-wince-little.
-
-	This adds a check in pe_bfd_object_p so that the subsystem in the PE
-	header is used to do the disambiguation for us, so that WinCE images get
-	assigned to pei-arm-wince-little, and everything else to pei-arm-little.
-
-2023-01-18  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	Revert "gprofng: PR29987 bfd/archive.c:1447: undefined reference to `filename_ncmp'"
-	This reverts commit c2a5d74050ea9d7897b4122ef57c627d395683b3.
-
-2023-01-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-17  Tom Tromey  <tromey@adacore.com>
-
-	Remove two unused fields from gdbarch
-	When I converted gdbarch to use the registry, I forgot to remove the
-	two fields that were used to implement the previous approach.  This
-	patch removes them.  Tested by rebuilding.
-
-	Use require in paramless.exp
-	The new paramless.exp test was not converted to the new "require"
-	approach.  This patch fixes the problem.
-
-2023-01-17  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: fix for gdb.reverse/finish-precsave.exp and gdb.reverse/finish-reverse.exp
-	PR record/29927 - reverse-finish requires two reverse next instructions to
-	reach previous source line
-
-	PowerPC uses two entry points called the local entry point (LEP) and the
-	global entry point (GEP).  Normally the LEP is used when calling a
-	function.  However, if the table of contents (TOC) value in register 2 is
-	not valid the GEP is called to setup the TOC before execution continues at
-	the LEP.  When executing in reverse, the function finish_backward sets the
-	break point at the alternate entry point (GEP).  However if the forward
-	execution enters via the normal entry point (LEP), the reverse execution
-	never sees the break point at the GEP of the function.  Reverse execution
-	continues until the next break point is encountered or the end of the
-	recorded log is reached causing gdb to stop at the wrong place.
-
-	This patch adds a new address to struct execution_control_state to hold the
-	address of the alternate function start address, known as the GEP on
-	PowerPC.  The finish_backwards function is updated.  If the stopping point
-	is between the two entry points (the LEP and GEP on PowerPC), the stepping
-	range is set to execute back to the alternate entry point (GEP on PowerPC).
-	Otherwise, a breakpoint is inserted at the normal entry point (LEP on
-	PowerPC).
-
-	Function process_event_stop_test checks uses a stepping range to stop
-	execution in the caller at the first instruction of the source code line.
-	Note, on systems that only support one entry point, the address of the two
-	entry points are the same.
-
-	Test finish-reverse-next.exp is updated to include tests for the
-	reverse-finish command when the function is entered via the normal entry
-	point (i.e. the LEP) and the alternate entry point (i.e. the GEP).
-
-	The patch has been tested on X86 and PowerPC with no regressions.
-
-2023-01-17  Carl Love  <cel@us.ibm.com>
-
-	X86: reverse-finish fix
-	PR record/29927  - reverse-finish requires two reverse next instructions to
-	reach previous source line
-
-	Currently on X86, when executing the finish command in reverse, gdb does a
-	single step from the first instruction in the callee to get back to the
-	caller.  GDB stops on the last instruction in the source code line where
-	the call was made.  When stopped at the last instruction of the source code
-	line, a reverse next or step command will stop at the first instruction
-	of the same source code line thus requiring two step/next commands to
-	reach the previous source code line.  It should only require one step/next
-	command to reach the previous source code line.
-
-	By contrast, a reverse next or step command from the first line in a
-	function stops at the first instruction in the source code line where the
-	call was made.
-
-	This patch fixes the reverse finish command so it will stop at the first
-	instruction of the source line where the function call was made.  The
-	behavior on X86 for the reverse-finish command now matches doing a
-	reverse-next from the beginning of the function.
-
-	The proceed_to_finish flag in struct thread_control_state is no longer
-	used.  This patch removes the declaration, initialization and setting of
-	the flag.
-
-	This patch requires a number of regression tests to be updated.  Test
-	gdb.mi/mi-reverse.exp no longer needs to execute two steps to get to the
-	previous line.  The gdb output for tests gdb.reverse/until-precsave.exp
-	and gdb.reverse/until-reverse.exp changed slightly.  The expected result in
-	tests gdb.reverse/amd64-failcall-reverse.exp and
-	gdb.reverse/singlejmp-reverse.exp are updated to the correct expected
-	result.
-
-	This patch adds a new test gdb.reverse/finish-reverse-next.exp to test the
-	reverse-finish command when returning from the entry point and from the
-	body of the function.
-
-	The step_until proceedure in test gdb.reverse/step-indirect-call-thunk.exp
-	was moved to lib/gdb.exp and renamed cmd_until.
-
-	The patch has been tested on X86 and PowerPC to verify no additional
-	regression failures occured.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29927
-
-2023-01-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: expect SIGSEGV from top GDB spawn id
-	When testing with the native-extended-gdbserver, I get:
-
-	    Thread 1 "xgdb" received signal SIGSEGV, Segmentation fault.
-	    0x00007ffff6d828f2 in GC_find_limit_with_bound () from /usr/lib/x86_64-linux-gnu/libgc.so.1
-	    (gdb) FAIL: gdb.gdb/selftest.exp: xgdb is at prompt
-
-	This is because the -re that is supposed to match this SIGSEGV is after
-	`-i $inferior_spawn_id`.  On native, the top and bottom GDB are on the
-	same spawn id, so it ends up working.  But with a gdbserver board,
-	that's not the case.  Move the SIGSEGV -re before the `-i
-	$inferior_spawn_id` line, such that it matches what the top GDB outputs.
-
-	Do the same fix in gdb.gdb/python-helper.exp.
-
-	Change-Id: I3291630e218a5a3a6a47805b999ddbc9b968c927
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-01-17  Tom Tromey  <tromey@adacore.com>
-
-	Fix parameter-less template regression in new DWARF reader
-	PR c++/29896 points out a regression in the new DWARF reader.  It does
-	not properly handle a case like "break fn", where "fn" is a template
-	function.
-
-	This happens because the new index uses strncasecmp to compare.
-	However, to make this work correctly, we need a custom function that
-	ignores template parameters.
-
-	This patch adds a custom comparison function and fixes the bug.  A new
-	test case is included.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29896
-
-2023-01-17  Tom Tromey  <tromey@adacore.com>
-
-	Move hash_entry and eq_entry into cooked_index::do_finalize
-	I was briefly confused by the hash_entry and eq_entry functions in the
-	cooked index.  They are only needed in a single method, and that
-	method already has a couple of local lambdas for a different hash
-	table.  So, it seemed cleaner to move these there as well.
-
-	Don't erase empty indices in DWARF reader
-	The DWARF reader has some code to remove empty indices.  However, I
-	think this code has been obsolete since some earlier changes to
-	parallel_for_each.  This patch removes this code.
-
-	Avoid submitting empty tasks in parallel_for_each
-	I found that parallel_for_each would submit empty tasks to the thread
-	pool.  For example, this can happen if the number of tasks is smaller
-	than the number of available threads.  In the DWARF reader, this
-	resulted in the cooked index containing empty sub-indices.  This patch
-	arranges to instead shrink the result vector and process the trailing
-	entries in the calling thread.
-
-2023-01-17  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
-
-	gas: arm: Change warning message to not reference specific A-class architecture revision
-	We noticed that a warning message about the use of scalar fp16
-	instructions being UNPREDICTABLE when conditionalized in an IT
-	block referenced the specific A-class architecture revision
-	ARMv8.2-A.
-	Many of these instructions are now also part of ARMv8.1-M, so
-	the warning message had become misleading.  Here we just change
-	the message to not specify an architecture revision at all and
-	update all testing accordingly.  This was done with a simple
-	find-n-replace within the binutils sources.  No tests have
-	regressed for the arm target.
-
-	gas/ChangeLog:
-
-	        * config/tc-arm.c (do_scalar_fp16_v82_encode): Remove
-	        ARMv8.2-A from the warning message.
-	        (do_neon_movhf): Likewise
-	        * testsuite/gas/arm/armv8-2-fp16-scalar-bad.l: Likewise
-	        * testsuite/gas/arm/mve-vaddsub-it-bad.l: Likewise
-	        * testsuite/gas/arm/mve-vcvtne-it-bad.l: Likewise
-	        * testsuite/gas/arm/mve-vcvtne-it.d: Likewise
-
-2023-01-17  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
-
-	gas: arm: Fix a further IT-predicated vcvt issue in the presense of MVE vcvtn
-	Previously we had experienced issues with assembling a "VCVTNE" instruction
-	in the presence of the MVE architecture extension, because it could be
-	interpreted both as:
-
-	* The base instruction VCVT + NE for IT predication when inside an IT block.
-	* The MVE instruction VCVTN + E in the Else of a VPT block.
-
-	Given a C reproducer of:
-	```
-	int test_function(float value)
-	{
-	  int ret_val = 10;
-	  if (value != 0.0)
-	  {
-	    ret_val = (int) value;
-	  }
-	  return ret_val;
-	}
-	```
-	GCC generates a VCVTNE instruction based on the `truncsisf2_vfp`
-	pattern, which will look like:
-	`vcvtne.s32.f32 s-reg, s-reg`
-	This still triggers an error due to being misidentified as "vcvtn+e"
-	Similar errors were found with other type combinations and instruction
-	patterns (these have all been added to the testing of this patch).
-
-	This class of errors was previously worked around by:
-	https://sourceware.org/pipermail/binutils/2020-August/112728.html
-	which addressed this by looking at the operand types, however,
-	that isn't adequate to cover all the extra cases that have been
-	found.  Instead, we add some special-casing logic earlier when
-	the instructions are parsed that is conditional on whether we are
-	in a VPT block or not, when the instruction is parsed.
-
-	gas/ChangeLog:
-
-		* config/tc-arm.c (opcode_lookup): Add special vcvtn handling.
-		* testsuite/gas/arm/mve-vcvtne-it-bad.l: Add further testing.
-		* testsuite/gas/arm/mve-vcvtne-it-bad.s: Likewise.
-		* testsuite/gas/arm/mve-vcvtne-it.d: Likewise.
-		* testsuite/gas/arm/mve-vcvtne-it.s: Likewise.
-
-2023-01-17  Nick Clifton  <nickc@redhat.com>
-
-	Fix snafu in previous delta for elf32-csky.c
-
-2023-01-17  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
-
-	C-SKY: Fix machine flag.
-	* elf32-csky.c (elf32_csky_merge_attributes): Don't save and restore the ARCH attribute, it will actually clear the ARCH attribute. (csky_elf_merge_private_bfd_data): Store the machine flag correctly.
-
-2023-01-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-16  Enze Li  <enze.li@hotmail.com>
-
-	libctf: update regexp to allow makeinfo to build document
-	While trying to build gdb on latest openSUSE Tumbleweed, I noticed the
-	following warning,
-
-	 checking for makeinfo... makeinfo --split-size=5000000
-	 configure: WARNING:
-	 *** Makeinfo is too old. Info documentation will not be built.
-
-	then I checked the version of makeinfo, it said,
-	======
-	$ makeinfo --version
-	texi2any (GNU texinfo) 7.0.1
-
-	Copyright (C) 2022 Free Software Foundation, Inc.
-	License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-	This is free software: you are free to change and redistribute it.
-	There is NO WARRANTY, to the extent permitted by law.
-	======
-
-	After digging a little bit, it became quite obvious that a dot is
-	missing in regexp that makes it impossible to match versions higher than
-	7.0, and here's the solution:
-
-	-       | egrep 'texinfo[^0-9]*(6\.[3-9]|[7-9][0-9])' >/dev/null 2>&1; then
-	+       | egrep 'texinfo[^0-9]*(6\.[3-9]|[7-9]\.[0-9])' >/dev/null 2>&1; then
-
-	However, Eli pointed out that the solution above has another problem: it
-	will stop working when Texinfo 10.1 will be released.  Meanwhile, he
-	suggested to solve this problem permanently.  That is, we don't care
-	about the minor version for Texinfo > 6.9, we only care about the major
-	version.
-
-	In this way, the problem will be resolved permanently, thanks to Eli.
-
-	libctf/ChangeLog:
-
-		* configure: Regenerated.
-		* configure.ac: Update regexp to match versions higher than 7.0.
-
-2023-01-16  Alan Modra  <amodra@gmail.com>
-
-	Correct ld-pe/aarch64.d test output
-	"foo" is at 0x2010.  This corrects the expected output for .long and
-	.word referencing foo, showing a problem with relocation handling.
-
-		* testsuite/ld-pe/aarch64.d: Correct expected output.
-
-2023-01-16  Alan Modra  <amodra@gmail.com>
-
-	Tidy gas/expr.c static state
-		* expr.c (seen, nr_seen): Make file scope.
-		(expr_begin): Clear seen, nr_seen, and expr_symbol_lines.
-		(expr_end): New function.
-		* expr.h (expr_end): Declare.
-		* output-file.c (output_file_close): Call expr_end.
-		* config/tc-hppa.c (expr_end): Rename to expr_parse_end.
-		* config/tc-mips.c: Likewise.
-		* config/tc-riscv.c: Likewise.
-		* config/tc-sparc.c: Likewise.
-
-	Leftover hack from i960-coff
-		* reloc.c (bfd_perform_relocation, bfd_install_relocation): Remove
-		i960-coff target hack.
-
-2023-01-16  Alan Modra  <amodra@gmail.com>
-
-	COFF CALC_ADDEND comment
-	Old COFF (and AOUT) targets have unusual relocation addends.
-
-		* coffcode.h (<Reading relocations>): Describe COFF addends.
-
-2023-01-16  Alan Modra  <amodra@gmail.com>
-
-	PR29991, MicroMIPS flag erased after align directives
-		PR 29991
-		* config/tc-mips.c (s_align): Call file_mips_check_options and
-		mips_mark_labels.
-		* testsuite/gas/mips/align-after-label.s,
-		* testsuite/gas/mips/mips-align-after-label.d,
-		* testsuite/gas/mips/micromips-align-after-label.d: New test.
-		* testsuite/gas/mips/mips.exp: Run it.
-
-2023-01-16  Nick Clifton  <nickc@redhat.com>
-
-	Update release making howto
-
-	Updated translations for the gas and binutils sub-directories
-
-2023-01-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: assume sys/stat.h always exists (via gnulib)
-	We have many uses of sys/stat.h that are unprotected by HAVE_SYS_STAT_H,
-	so this is more formalizing the reality that we require this header.
-	Since we switched to gnulib, it guarantees that a sys/stat.h exists
-	for us to include, so we're doubly OK.
-
-	sim: formally assume unistd.h always exists (via gnulib)
-	We have many uses of unistd.h that are unprotected by HAVE_UNISTD_H,
-	so this is more formalizing the reality that we require this header.
-	Since we switched to gnulib, it guarantees that a unistd.h exists
-	for us to include, so we're doubly OK.
-
-	sim: build: stop probing system extensions (ourselves)
-	This logic was added in order to expose the strsignal prototype for
-	nrun.c.  Since then, we've migrated to gnulib as our portability layer,
-	and it takes care of probing system extensions for us, so there's no
-	need to duplicate the work.
-
-2023-01-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: modules.c: fix generation after recent refactors
-	Add explicit arch-specific modules.c rules to keep the build from
-	generating an incorrect common/modules.c.  Otherwise the pattern
-	rules would cascade such that it'd look for $arch/modules.o which
-	turned into common/modules.c which triggered the gen rule.
-
-	My local testing of this code didn't catch this bug because of how
-	Automake manages .Po (dependency files) in incremental builds -- it
-	was adding extra rules that override the pattern rules which caused
-	the build to generate correct modules.c files.  But when building
-	from a cold cache, the pattern rules would force common/modules.c to
-	be used leading to crashes at runtime.
-
-2023-01-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-15  Mark Wielaard  <mark@klomp.org>
-
-	sim: microblaze, mn10300: remove signal.h include in interp.c
-	signal.h isn't needed in microblaze and mn10300 interp.c
-	so don't include it.
-
-2023-01-15  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: m32r: fix typos in stamp depends
-	Copying & pasting the first rule missed updating the dep to the right
-	stamp file.
-
-	sim: igen: simplify build logic a little
-	Now that all ports (that use igen) build in the top-level and depend
-	on igen, we can move the conditional logic out of configure.  We also
-	switch from noinst_LIBRARIES to EXTRA_LIBRARIES so that the library
-	is only built when needed (i.e. the igen tool is used).
-
-	sim: build: drop depdir subdir hack
-	Now that all the ports compile some C files in their arch dirs, Automake
-	guarantees creating the depdir for us, so we can drop our configure hack.
-
-	sim: common: simplify modules.c deps
-	Now that all ports (other than ppc) build in the top-level, we don't
-	need to expand all the modules.c targets as a recursive dep.  Each
-	port depends on their respective file now, and the ppc port doesn't
-	use it at all.
-
-	sim: common: move modules.c to source tracking
-	This makes sure the arch-specific modules.c wildcard is matched and
-	not the common/%.c so that we compile it correctly.  It also makes
-	sure each subdir has depdir logic enabled.
-
-	sim: common: move libcommon.a dep to ppc code
-	Rather than force this to be built ahead of time for all targets,
-	move the dep to the ppc code since it's the only user of it now.
-
-	sim: build: drop most recursive build deps
-	Now that we build these objects in the top dir & generate modules.c
-	there, we don't need to generate them all first -- we can let the
-	normal dependency graph take care of building things in parallel.
-
-	sim: common: move libcommon.a objects to sources
-	This simplifies the build logic and avoids an Automake bug where the
-	common_libcommon_a_OBJECTS variable isn't set in the arch libsim.a
-	DEPENDENCIES for targets that, alphabetically, come before "common".
-	We aren't affected by that bug with the current code, but as we move
-	things out of SIM_ALL_RECURSIVE_DEPS and rely on finer dependencies,
-	we will trip over it.
-
-	sim: igen: simplify build dep
-	Now that all ports (other than ppc) build in the top-level, we don't
-	need to mark the igen tool as a recursive dep.  Each port depends on
-	the tool if it actually uses it, and ppc doesn't use it at all.
-
-	sim: common: simplify hw-config.h deps
-	Now that all ports (other than ppc) build in the top-level, we don't
-	need to expand all the hw-config.h targets as a recursive dep.  Each
-	port depends on their respective header now, and the ppc port doesn't
-	use it at all.
-
-	sim: build: drop AM_MAKEFLAGS settings
-	We don't have any recursive builds anymore, so we can drop this logic.
-
-2023-01-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-14  Tom Tromey  <tom@tromey.com>
-
-	Pass internal gdb flags to --configuration invocations
-	The test suite uses the --configuration flag to feature-test gdb.
-	However, when I added this, I neglected to pass the internal gdbflags
-	to this, causing an error, which then caused failures in the test
-	suite (which would not be seen if you'd ever run "make install").
-
-	This patch fixes the bug.  Tested by removing my install tree first,
-	to verify that I could reproduce the failure.
-
-2023-01-14  Nick Clifton  <nickc@redhat.com>
-
-	Update how-to-make-a-release file now that the 2.40 release is out
-
-2023-01-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-13  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: delete Make-common.in logic
-	Now that all (other than ppc) build in the top-level, this logic is
-	unused, so punt it all.
-
-2023-01-13  Tom Tromey  <tom@tromey.com>
-
-	Rename to allow_tui_tests
-	This changes skip_tui_tests to invert the sense, and renames it to
-	allow_tui_tests.  It also rewrites this function to use the output of
-	"gdb --configuration", and it adds a note about the state of the TUI
-	to that output.
-
-	Rename to allow_guile_tests
-	This changes skip_guile_tests to invert the sense, and renames it to
-	allow_guile_tests.  It also rewrites this proc to check the output of
-	"gdb --configuration", as was done for Python.  Then it changes the
-	code to use "require" where possible.
-
-	Rename to allow_hw_breakpoint_tests
-	This changes skip_hw_breakpoint_tests to invert the sense, and renames
-	it to allow_hw_breakpoint_tests.  This also converts some tests to use
-	"require" -- I missed this particular check in the first series.
-
-	Rename to allow_tsx_tests
-	This changes skip_tsx_tests to invert the sense, and renames it to
-	allow_tsx_tests.
-
-	Rename to allow_shlib_tests
-	This changes skip_shlib_tests to invert the sense, and renames it to
-	allow_shlib_tests.
-
-	Rename to allow_rust_tests
-	This changes skip_rust_tests to invert the sense, and renames it to
-	allow_rust_tests.
-
-	Rename to allow_python_tests
-	This changes skip_python_tests to invert the sense, and renames it to
-	allow_python_tests.
-
-	Rename to allow_perf_tests
-	This changes skip_perf_tests to invert the sense, and renames it to
-	allow_perf_tests.
-
-	Rename to allow_opencl_tests
-	This changes skip_opencl_tests to invert the sense, and renames it to
-	allow_opencl_tests.
-
-	Rename to allow_ifunc_tests
-	This changes skip_ifunc_tests to invert the sense, and renames it to
-	allow_ifunc_tests.
-
-	Rename to allow_hw_watchpoint_tests
-	This changes skip_hw_watchpoint_tests to invert the sense, and renames
-	it to allow_hw_watchpoint_tests.
-
-	Rename to allow_hw_watchpoint_multi_tests
-	This changes skip_hw_watchpoint_multi_tests to invert the sense, and
-	renames it to allow_hw_watchpoint_multi_tests.
-
-	Rename to allow_hw_watchpoint_access_tests
-	This changes skip_hw_watchpoint_access_tests to invert the sense, and
-	renames it to allow_hw_watchpoint_access_tests.
-
-	Rename to allow_go_tests
-	This changes skip_go_tests to invert the sense, and renames it to
-	allow_go_tests.
-
-	Rename to allow_gdbserver_tests
-	This changes skip_gdbserver_tests to invert the sense, and renames it
-	to allow_gdbserver_tests.
-
-	Rename to allow_fortran_tests
-	This changes skip_fortran_tests to invert the sense, and renames it to
-	allow_fortran_tests.
-
-	Rename to allow_d_tests
-	This changes skip_d_tests to invert the sense, and renames it to
-	allow_d_tests.
-
-	Rename to allow_dlmopen_tests
-	This changes skip_dlmopen_tests to invert the sense, and renames it to
-	allow_dlmopen_tests.
-
-	Rename to allow_debuginfod_tests
-	This changes skip_debuginfod_tests to invert the sense, and renames it
-	to allow_debuginfod_tests.
-
-	Rename to allow_ctf_tests
-	This changes skip_ctf_tests to invert the sense, and renames it to
-	allow_ctf_tests.
-
-	Rename to allow_cplus_tests and allow_stl_tests
-	This changes skip_cplus_tests to invert the sense, and renames it to
-	allow_cplus_tests.  This one also converts skip_stl_tests to
-	allow_stl_tests, as that was convenient to do at the same time.
-
-	Rename to allow_btrace_tests
-	This changes skip_btrace_tests to invert the sense, and renames it to
-	allow_btrace_tests.
-
-	Rename to allow_btrace_pt_tests
-	This changes skip_btrace_pt_tests to invert the sense, and renames it
-	to allow_btrace_pt_tests.
-
-	Rename to allow_avx512fp16_tests
-	This changes skip_avx512fp16_tests to invert the sense, and renames it
-	to allow_avx512fp16_tests.
-
-	Rename to allow_avx512bf16_tests
-	This changes skip_avx512bf16_tests to invert the sense, and renames it
-	to allow_avx512bf16_tests.
-
-	Rename to allow_ada_tests
-	This changes skip_ada_tests to invert the sense, and renames it to
-	allow_ada_tests.
-
-	Rename to allow_aarch64_sve_tests
-	This changes skip_aarch64_sve_tests to invert the sense, and renames
-	it to allow_aarch64_sve_tests.
-
-	Rename to allow_xml_test
-	This changes gdb_skip_xml_test to invert the sense, and renames it to
-	allow_xml_test.
-
-	Use "require" for Python tests
-	This changes various tests to use "require" for the Python feature.
-
-2023-01-13  Tom Tromey  <tom@tromey.com>
-
-	Fix latent bug in default_prompt_gdb_start
-	default_prompt_gdb_start mimics default_gdb_start, but does not set
-	the use_gdb_stub global.  This caused one Python test to work only
-	because it used the ordinary gdb_start before later using
-	default_prompt_gdb_start.
-
-	This patch updates default_prompt_gdb_start to set this global as
-	well.
-
-2023-01-13  Tom Tromey  <tom@tromey.com>
-
-	Remove mi_skip_python_tests
-	mi_skip_python_tests was necessary because skip_python_tests used the
-	running gdb, and so needed to know what prompt to expect.  Now that
-	skip_python_tests has been rewritten, mi_skip_python_tests is no
-	longer needed.
-
-	Rewrite skip_python_tests
-	This rewrites skip_python_tests to examine the output of
-	"gdb --configuration".  This is a bit nicer because it
-	does not require an already-running gdb.
-
-	Use require gnat_runtime_has_debug_info
-	This changes some tests to use "require gnat_runtime_has_debug_info".
-
-	Use require !skip_debuginfod_tests
-	This changes some tests to use "require !skip_debuginfod_tests".
-
-	Use require using_fission
-	This changes some tests to use "require using_fission".
-
-	Use require target_can_use_run_cmd
-	This changes some tests to use "require target_can_use_run_cmd".
-
-	Use require !skip_opencl_tests
-	This changes some tests to use "require !skip_opencl_tests".
-
-	Use require !skip_perf_tests
-	This changes some tests to use "require !skip_perf_tests".
-
-	Use require gdb_trace_common_supports_arch
-	This changes some tests to use "require gdb_trace_common_supports_arch".
-
-	Use require gdb_skip_xml_test
-	This changes some tests to use "require gdb_skip_xml_test".
-
-	Use require !gdb_debug_enabled
-	This changes some tests to use "require !gdb_debug_enabled".
-
-	Use require is_c_compiler_gcc
-	This changes some tests to use "require is_c_compiler_gcc".
-
-	Use require !skip_shlib_tests
-	This changes some tests to use "require !skip_shlib_tests".  This patch
-	cleans up a few spots that were missed in the earlier patch.
-
-	Use require !skip_gdbserver_tests
-	This changes some tests to use "require !skip_gdbserver_tests".
-
-	Use require isnative
-	This changes some tests to use "require isnative".
-
-	Use require can_spawn_for_attach
-	This changes some tests to use "require can_spawn_for_attach".
-
-	Use require !use_gdb_stub
-	This changes some tests to use "require !use_gdb_stub".
-
-	Use require support_go_compile
-	This changes some tests to use "require support_go_compile".
-
-	Use require supports_get_siginfo_type
-	This changes some tests to use "require supports_get_siginfo_type".
-
-	Use require can_single_step_to_signal_handler
-	This changes some tests to use "require can_single_step_to_signal_handler".
-
-	Use require is_elf_target
-	This changes some tests to use "require is_elf_target".
-
-	Use require is_amd64_regs_target
-	This changes some tests to use "require is_amd64_regs_target".
-
-	Use require is_aarch32_target
-	This changes some tests to use "require is_aarch32_target".
-
-	Use require is_aarch64_target
-	This changes some tests to use "require is_aarch64_target".
-
-	Use require support_displaced_stepping
-	This changes some tests to use "require support_displaced_stepping".
-
-	Use require !skip_avx_*
-	This changes some tests to use "require" with !skip_avx_*.
-
-	Use require !skip_btrace_tests
-	This changes some tests to use "require !skip_btrace_tests".
-
-	Use require !skip_btrace_pt_tests
-	This changes some tests to use "require !skip_btrace_pt_tests" and
-	"require !skip_tsx_tests".
-
-	Use require !skip_aarch64_sve_tests
-	This changes some tests to use "require !skip_aarch64_sve_tests".
-
-	Use require !skip_ifunc_tests
-	This changes some tests to use "require !skip_ifunc_tests".
-
-	Use require !skip_hw_watchpoint_tests
-	This changes some tests to use "require !skip_hw_watchpoint_tests".
-
-	Use require !skip_ctf_tests
-	This changes some tests to use "require !skip_ctf_tests".
-
-	Use require !skip_d_tests
-	This changes some tests to use "require !skip_d_tests".
-
-	Use require !skip_go_tests
-	This changes some tests to use "require !skip_go_tests".
-
-	Use require !skip_ada_tests
-	This changes some tests to use "require !skip_ada_tests".
-
-	Use require !skip_fortran_tests
-	This changes some tests to use "require !skip_fortran_tests".
-
-	Use require !skip_rust_tests
-	This changes some tests to use "require !skip_rust_tests".
-
-	Use require !skip_stl_tests
-	This changes some tests to use "require !skip_stl_tests".
-
-	Use require !skip_dlmopen_tests
-	This changes some tests to use "require !skip_dlmopen_tests".
-
-	Use require !skip_shlib_tests
-	This changes some tests to use "require !skip_shlib_tests".
-
-	Use require !skip_cplus_tests
-	This changes some tests to use "require !skip_cplus_tests".
-
-	Use require is_x86_like_target
-	This changes some tests to use "require is_x86_like_target".
-
-	Use require dwarf2_support
-	This changes some tests to use "require dwarf2_support".
-
-	Use require supports_process_record
-	This changes some tests to use "require supports_process_record".
-
-	Use require supports_reverse
-	This changes some tests to use "require supports_reverse".
-
-2023-01-13  Tom Tromey  <tom@tromey.com>
-
-	Use unsupported in 'require'
-	This changes 'require' to use 'unsupported' rather than 'untested'.
-	The latter doesn't really seem to be correct according to the DejaGNU
-	documentation:
-
-	    Declares a test was not run.  `untested' writes in the log file a
-	    message beginning with _UNTESTED_, appending the `message' argument.
-	    For example, you might use this in a dummy test whose only role is to
-	    record that a test does not yet exist for some feature.
-
-	The example there, and some text elsewhere, is what makes me think
-	this isn't a great fit.  On the other hand, 'unsupported' says:
-
-	    Declares that a test case depends on some facility that does not exist
-	    in the testing environment.
-
-2023-01-13  Tom Tromey  <tom@tromey.com>
-
-	Change 'require' to accept a list of predicates
-	This changes 'require' to accept a list of simple predicates.  For
-	now, each predicate is just the name of a proc, optionally prefixed
-	with "!" to indicate that the result should be inverted.
-
-	It's possible to make this fancier, but so far I haven't done so.  One
-	idea I had is to allow a predicate to have associated text to display
-	on failure.  Another is to convert the predicates that need a running
-	gdb (e.g., skip_python_tests) to start their own gdb, and then
-	'require' could enforce the rule that gdb not be running when it is
-	called.
-
-2023-01-13  Tom Tromey  <tom@tromey.com>
-
-	Don't use ensure_gdb_index with require
-	This series changes 'require' to take a list of simple predicates.
-	This patch backs out the one use of 'require' that doesn't conform to
-	this -- calling ensure_gdb_index.
-
-2023-01-13  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: PR29987 bfd/archive.c:1447: undefined reference to `filename_ncmp'
-	gprofng/ChangeLog
-	2023-01-12  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29987
-		* configure.ac: Remove dependencies on libbfd and libiberty.
-		* gprofng/src/Makefile.am: Likewise.
-		* configure: Rebuild.
-		* Makefile.in: Rebuild.
-		* src/Makefile.in: Rebuild.
-		* doc/Makefile.in: Rebuild.
-		* gp-display-html/Makefile.in: Rebuild.
-
-2023-01-13  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: replace an strncat with strcat
-	Calling strncat with the size of the src string is not so meaningful.
-	The length argument to strncat should specify the remaining bytes
-	bytes in the destination; although in this case, it appears to be
-	unncessary altogether to use strncat in the first place.
-
-	libsframe/
-	        * sframe-dump.c (dump_sframe_func_with_fres): Use of strcat is
-		just as fine.
-
-2023-01-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbserver: add comments to read_inferior_memory function
-	Just adding some comments to the gdbserver read_inferior_memory
-	function.  No actual code changes.
-
-	gdb/infrun: add debug print in print_signal_received_reason
-	It would have helped me to see an infrun debug line being printed from
-	print_signal_received_reason, so I'm adding one.
-
-2023-01-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: int to bool conversion for normal_stop
-	Change the return type of normal_stop (infrun.c) from int to bool.
-	Update callers.
-
-	I've also converted the (void) to () in the function declaration and
-	definition, given I was changing those lines anyway.
-
-	There should be no user visible changes after this commit.
-
-2023-01-13  Nick Clifton  <nickc@redhat.com>
-
-	Updated Romainian translation for the bfd sub-directory
-
-2023-01-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-12  Tom Tromey  <tromey@adacore.com>
-
-	Disable ptype/o for dynamic types
-	A user pointed out that "ptype/o" of a certain Ada type -- while in C
-	mode -- caused gdb to crash.
-
-	The bug here is that dynamic types can't really be printed this way.
-	This patch avoids the bug by disabling the "/o" feature in this case.
-
-	Note that using "ptype/o" in this way makes sense for the time being,
-	because the Ada code doesn't support the "/o" feature (yet); and in
-	any case gdb should not crash.
-
-2023-01-12  Hans-Peter Nilsson  <hp@axis.com>
-
-	ARM: Fix ld bloat introduced between binutils-2.38 and 2.39
-	Since commit 9833b7757d24, "PR28824, relro security issues",
-	ELF_MAXPAGESIZE matters much more, with regards to layout of
-	the linked file.  That commit fixed an actual bug, but also
-	exposes a problem for targets were that value is too high.
-
-	For example, for ARM(32, a.k.a. "Aarch32") specifically
-	bfd_arch_arm, it's set to 64 KiB, making all Linux(/GNU)
-	targets pay an extra amount of up to 60 KiB of bloat in
-	DSO:s and executables.  This matters when there are many
-	such files, and where storage is expensive.
-
-	It's *mostly* bloat when using a Linux kernel, as ARM(32) is
-	a good example of an target where ELF_MAXPAGESIZE is set to
-	an extreme value for an obscure corner-case.  The ARM
-	(32-bit) kernel has 4 KiB pages, has had that value forever,
-	and can't be configured to any other value.  The use-case is
-	IIUC "Aarch32" emulation on an "Aarch64" (arm64) kernel, but
-	not just that, but a setup where the Linux page-size is
-	configured to something other than the *default* 4 KiB.  Not
-	sure there actually any such systems in use, again with
-	both Aarch32 compatibility support and a non-4KiB pagesize,
-	with all the warnings in the kernel config and requiring the
-	"EXPERT" level set on.
-
-	So, let's do like x86-64 in a2267dbfc9e1 "x86-64: Use only
-	one default max-page-size" and set ELF_MAXPAGESIZE to 4096.
-
-	bfd:
-		* elf32-arm.c (ELF_MAXPAGESIZE): Always set to 0x1000.
-
-2023-01-12  Hans-Peter Nilsson  <hp@axis.com>
-
-	ld/testsuite: Adjust for ELF_MAXPAGESIZE 0x1000
-	Many tests reflect a setting of ELF_MAXPAGESIZE to 64 KiB.
-	With ELF_MAXPAGESIZE changed to 4 KiB, layout is sometimes
-	different and symbols end up in other places.  Avoid churn
-	and regexpification of old test patterns by passing the
-	max-page-size setting active at the time.
-
-	ld/testsuite:
-
-		* testsuite/ld-arm/arm-elf.exp,
-	        testsuite/ld-arm/non-contiguous-arm2.d,
-	        testsuite/ld-arm/non-contiguous-arm3.d,
-	        testsuite/ld-arm/non-contiguous-arm5.d,
-	        testsuite/ld-arm/non-contiguous-arm6.d,
-	        testsuite/ld-arm/thumb-plt-got.d, testsuite/ld-arm/thumb-plt.d:
-		Pass -z max-page-size=0x10000 explicitly to test that rely on
-		that value in output-matching patterns.
-
-2023-01-12  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: ctf-link outdated input check faulty
-	This check has a pair of faults which, combined, can lead to memory
-	corruption.  Firstly, it assumes that the values of the ctf_link_inputs
-	hash are ctf_dict_t's: they are not, they are ctf_link_input_t's, a much
-	shorter structure.  So the flags check which is the core of this is
-	faulty (but happens, by chance, to give the right output on most
-	architectures, since usually we happen to get a 0 here, so the test that
-	checks this usually passes).  Worse, the warning that is emitted when
-	the test fails is added to the wrong dict -- it's added to the input
-	dict, whose warning list is never consumed, rendering the whole check
-	useless.  But the dict it adds to is still the wrong type, so we end up
-	overwriting something deep in memory (or, much more likely,
-	dereferencing a garbage pointer and crashing).
-
-	Fixing both reveals another problem: the link input is an *archive*
-	consisting of multiple members, so we have to consider whether to check
-	all of them for the outdated-func-info thing we are checking here.
-	However, no compiler exists that emits a mixture of members with this
-	flag on and members with it off, and the linker always reserializes (and
-	upgrades) such things when it sees them: so all members in a given
-	archive must have the same value of the flag, so we only need to check
-	one member per input archive.
-
-	libctf/
-		PR libctf/29983
-		* ctf-link.c (ctf_link_warn_outdated_inputs): Get the types of
-	        members of ctf_link_inputs right, fixing a possible spurious
-	        tesst failure / wild pointer deref / overwrite.  Emit the
-	        warning message into the right dict.
-
-2023-01-12  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: skip the testsuite from inside dejagnu
-	The libctf testsuite uses Tcl try/catch to trap run_output errors.  This
-	is only supported in reasonably recent Tcls, so we detect the lack of
-	try/catch and suppress the testsuite via an Automake conditional in its
-	absence.
-
-	But this turns out not to work: Automake produces a check-DEJAGNU target
-	regardless of the value of this conditional and sticks it in an
-	unconditionally-executed part of the makefile, so the testsuite gets
-	executed anyway, and fails with a nasty-looking syntax error.  We can't
-	disable it by taking "dejagnu" out of AUTOMAKE_OPTIONS, because if you
-	do that Automake stops you using RUNTEST, RUNTESTFLAGS and other
-	variables users would expect to work.
-
-	So move to disabling the testsuite from inside the testsuite itself,
-	importing the value of the former Automake conditional as a Tcl variable
-	and exiting very early in default.exp if it's false.
-
-		* configure.ac (TCL_TRY): No longer an Automake conditional.
-		Rename to...
-		(HAVE_TCL_TRY): ... this.
-		* Makefile.am: Drop TCL_TRY.
-		(development.exp): Set have_tcl_try.
-		* testsuite/config/default.exp: Exit if have_tcl_try is false.
-
-		* configure: Regenerated.
-		* Makefile.in: Likewise.
-
-2023-01-12  Nick Alcock  <nick.alcock@oracle.com>
-
-	ctf: fix various dreadful typos in the ctf_archive format comments
-	When defining a format it helps to a) get the endianness right when you
-	explicitly state what it is and b) define things in terms of fields that
-	exist rather than fields that don't.
-
-	(A bunch of changes of names during implementation were not reflected in
-	these comments...)
-
-	Thanks to Jose "Eye of the Eagle" Marchesi for spotting these.
-
-	include/
-		* ctf.h (struct ctf_archive) [ctfa_ctfs]: The size element of
-		this is in little-endian byte order, not network byte order.
-		(struct ctf_archive_modent): This is positioned right after the
-		end fo the struct ctf_archive, not at the offset of a
-		nonexistent field.  The number of elements in the array depends
-		on ctfa_ndicts, not another nonexistent field.
-
-2023-01-12  Nick Clifton  <nickc@redhat.com>
-
-	Ensure that libbacktrace/allocfail.sh is not deleted when creating release tarballs.
-	        * Makefile.am (CLEANFILES): Import patch from upstream to prevent
-	        allocafail.sh from being removed when running 'make clean'.
-
-2023-01-12  Alan Modra  <amodra@gmail.com>
-
-	Use __func__ rather than __FUNCTION__
-	We already use C99's __func__ in places, use it more generally.  This
-	patch doesn't change uses in the testsuite.  I've also left one in
-	gold.h that is protected by GCC_VERSION < 4003.  If any of the
-	remaining uses bothers anyone I invite patches.
-
-	bfd/
-		* bfd-in.h: Replace __FUNCTION__ with __func__.
-		* elf32-bfin.c: Likewise.
-		* elfnn-aarch64.c: Likewise.
-		* elfxx-sparc.c: Likewise.
-		* bfd-in2.h: Regenerate.
-	gas/
-		* config/tc-cris.c: Replace __FUNCTION__ with __func__.
-		* config/tc-m68hc11.c: Likewise.
-		* config/tc-msp430.c: Likewise.
-	gold/
-		* dwp.h: Replace __FUNCTION__ with __func__.
-		* gold.h: Likewise, except for use inside GCC_VERSION < 4003.
-	ld/
-		* emultempl/pe.em: Replace __FUNCTION__ with __func__.
-		* emultempl/pep.em: Likewise.
-		* pe-dll.c: Likewise.
-
-2023-01-12  Alan Modra  <amodra@gmail.com>
-
-	Remove myself as hppa32 maintainer
-	Reflects the reality that I haven't done much on hppa32 for years.
-
-2023-01-12  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: drop subdir Makefile.in files
-	These aren't used anymore, so punt them all.
-
-2023-01-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-11  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/doc: fix install-html with Texinfo 7
-	Starting with Texinfo 7 (this commit [1]), the output directory for the
-	HTML doc format is gdb/doc/gdb_html, rather than gdb/doc/gdb previously.
-	This breaks the install-html target, which expects the HTML doc to be in
-	gdb/doc/gdb:
-
-	    $ make install-html MAKEINFO=makeinfo DESTDIR=/tmp/install
-	    make[1]: Entering directory '/home/simark/build/binutils-gdb/gdb'
-	    make[2]: Entering directory '/home/simark/build/binutils-gdb/gdb/doc'
-	    makeinfo  -DHAVE_MAKEINFO_CLICK --html  -I /home/simark/src/binutils-gdb/gdb/doc/../../readline/readline/doc -I /home/simark/src/binutils-gdb/gdb/doc/../mi -I /home/simark/src/binutils-gdb/gdb/doc /home/simark/src/binutils-gdb/gdb/doc/gdb.texinfo
-	    makeinfo  -DHAVE_MAKEINFO_CLICK --html  -I /home/simark/src/binutils-gdb/gdb/doc /home/simark/src/binutils-gdb/gdb/doc/stabs.texinfo
-	    makeinfo  -DHAVE_MAKEINFO_CLICK --html  -I /home/simark/src/binutils-gdb/gdb/doc /home/simark/src/binutils-gdb/gdb/doc/annotate.texinfo
-	    test -z "/usr/local/share/doc/gdb" || /bin/sh /home/simark/src/binutils-gdb/gdb/doc/../../mkinstalldirs "/tmp/install/usr/local/share/doc/gdb"
-	     /usr/bin/install -c -m 644 '/home/simark/src/binutils-gdb/gdb/doc/gdb' '/tmp/install/usr/local/share/doc/gdb/gdb'
-	    /usr/bin/install: cannot stat '/home/simark/src/binutils-gdb/gdb/doc/gdb': No such file or directory
-	     /usr/bin/install -c -m 644 '/home/simark/src/binutils-gdb/gdb/doc/stabs' '/tmp/install/usr/local/share/doc/gdb/stabs'
-	    /usr/bin/install: cannot stat '/home/simark/src/binutils-gdb/gdb/doc/stabs': No such file or directory
-	     /usr/bin/install -c -m 644 '/home/simark/src/binutils-gdb/gdb/doc/annotate' '/tmp/install/usr/local/share/doc/gdb/annotate'
-	    /usr/bin/install: cannot stat '/home/simark/src/binutils-gdb/gdb/doc/annotate': No such file or directory
-	    make[2]: *** [Makefile:278: install-html] Error 1
-	    make[2]: Leaving directory '/home/simark/build/binutils-gdb/gdb/doc'
-	    make[1]: *** [Makefile:2240: subdir_do] Error 1
-	    make[1]: Leaving directory '/home/simark/build/binutils-gdb/gdb'
-	    make: *** [Makefile:2006: install-html] Error 2
-
-	Fix this by adding -o switches to the HTML targets, to force the output
-	directories.
-
-	[1] https://git.savannah.gnu.org/cgit/texinfo.git/commit/?id=a868421baf9c44227c43490687f8d6b8d6c95414
-
-	Change-Id: Ie147dc7b4a52eb2348005b8dc006a41b0784621f
-
-2023-01-11  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdb: Update gdbarch.py with latest changes in gdbarch.c
-	Commit 2b16913cdca2 ("gdb: make gdbarch_alloc take ownership of the tdep")
-	changed gdbarch.c without updating gdbarch.py.  As a result, running
-	gdbarch.py reverts those changes and causes the build to fail.
-
-	So change gdbarch.py to generate the current version of gdbarch.c.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-11  Tom Tromey  <tromey@adacore.com>
-
-	Set _WIN32_WINNT in common.m4 configure check
-	GCC recently added support for the Windows thread model, enabling
-	libstdc++ to support Windows natively.  However, this supporrt
-	requires a version of Windows later than the minimum version that is
-	supported by GDB.
-
-	PR build/29966 points out that the GDB configure test for std::thread
-	does not work in this situation, because _WIN32_WINNT is not defined
-	in test program, and so <thread> seems to be fine.
-
-	This patch is an attempt to fix the problem, by using the same setting
-	for _WIN32_WINNT at configure time as is used at build time.
-
-	I don't have access to one of the older systems so I don't think I can
-	truly test this.  I did do a mingw cross build, though.  I'm going to
-	ask the bug reporter to test it.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29966
-
-2023-01-11  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	[gdb/testsuite] Fix regexp in gdb.threads/dlopen-libpthread.exp
-	Fix regexp in gdb.threads/dlopen-libpthread.exp:
-	'libpthread\\.so' -> '/libpthread\\.so'.
-
-	Tested on x86_64-linux.
-
-2023-01-11  Alan Modra  <amodra@gmail.com>
-
-	Fix XPASS weak symbols on x86_64-mingw32
-	Fixes commit 16fea92ccd99.
-
-		* testsuite/ld-scripts/weak.exp: Don't xfail x86_64 PE targets.
-		Do xfail other PE OS triplets by moving code setting xfails.
-
-2023-01-11  Nick Clifton  <nickc@redhat.com>
-
-	Fix a potential illegal memory access in the BFD library when parsing a corrupt DWARF file.
-		PR 29988
-		* dwarf2.c (read_indexed_address): Fix check for an out of range
-		offset.
-
-2023-01-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/dlopen-libpthread.exp for upstream glibc, again
-	On an x86_64 laptop running ubuntu 22.04.1 with unity desktop:
-	...
-	$ echo $XDG_CURRENT_DESKTOP
-	Unity:Unity7:ubuntu
-	...
-	I have:
-	...
-	$ echo $LD_PRELOAD
-	libgtk3-nocsd.so.0
-	...
-	due to package gtk3-nocsd, a package recommended by unity-session.
-
-	Consequently, for each exec these dependencies are pulled in, including
-	libpthread.so.0:
-	...
-	$ lddtree /lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
-	libgtk3-nocsd.so.0 => /lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (interpreter => none)
-	    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
-	    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
-	    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
-	        ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
-	...
-
-	So, while test-case gdb.threads/dlopen-libpthread.exp appears to run ok:
-	...
-	 # of expected passes		12
-	 # of unsupported tests		1
-	...
-	with LD_PRELOAD="" we have instead:
-	...
-	(gdb) PASS: gdb.threads/dlopen-libpthread.exp: continue to breakpoint: notify
-	info sharedlibrary^M
-	From  To                  Syms Read   Shared Object Library^M
-	$hex  $hex  Yes         /lib64/ld-linux-x86-64.so.2^M
-	$hex  $hex  Yes         /lib/x86_64-linux-gnu/libc.so.6^M
-	$hex  $hex  Yes         dlopen-libpthread.so^M
-	(gdb) FAIL: gdb.threads/dlopen-libpthread.exp: libpthread.so found
-	...
-
-	The problem is that libpthread is expected as dependency of
-	dlopen-libpthread.so, but it's missing:
-	...
-	$ lddtree dlopen-libpthread.so
-	dlopen-libpthread.so => ./dlopen-libpthread.so (interpreter => none)
-	    libc.so.6 => $outputs/gdb.threads/dlopen-libpthread/dlopen-libpthread.so.d/libc.so.6
-	        ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
-	...
-	due to having glibc 2.35, which has libpthread integrated into libc.
-
-	Fix this by:
-	- adding a proc has_dependency
-	- using [has_dependency $exec libpthread.so] as hint that libpthread
-	  may be preloaded
-	- using ![has_dependency $shlib libpthread.so] to detect that
-	  the libpthread.so dependency is missing.
-
-	Also add a missing return after untested "no matching probes".
-
-	Tested on x86_64-linux, with and without LD_PRELOAD="".
-
-2023-01-11  Jan Beulich  <jbeulich@suse.com>
-
-	gas/RISC-V: adjust assembler for opcode table re-ordering
-	PR gas/29940
-
-	With the single-operand JAL entry now sitting ahead of the two-operand
-	one, the parsing of a two-operand insn would first try to parse an 'a'-
-	style operand, resulting in the insertion of bogus (and otherwise
-	unused) undefined symbols in the symbol table, having register names.
-	Since 'a' is used as 1st operand only with J and JAL, and since JAL is
-	the only insn _also_ allowing for a register as 1st operand (and then
-	there being a 2nd one), special case this parsing aspect right there.
-
-	Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
-
-2023-01-11  Alan Modra  <amodra@gmail.com>
-
-	Tidy some global bfd state used by gas
-		* subsegs.c (subsegs_end): Clear abs and und userdata.
-
-2023-01-11  Alan Modra  <amodra@gmail.com>
-
-	now_seg after closing output file
-	now_seg, a pointer into the output file sections, isn't valid after
-	the output file is closed.  gas doesn't and shouldn't use now_seg
-	after this point of course, but let's be safe.
-
-		* output-file.c (output_file_close): Clear now_seg and now_subseg.
-
-2023-01-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-10  Tom Tromey  <tom@tromey.com>
-
-	Fix bug in 'say_where' transform
-	The patch to change say_where into a method introduced a bug.  This
-	patch fixes it.
-
-2023-01-10  Mark Harmstone  <mark@harmstone.com>
-
-	gas: Restore tc_pe_dwarf2_emit_offset for pe-aarch64
-	Restores tc_pe_dwarf2_emit_offset in tc-aarch64.c, which is needed to
-	make sure that DWARF offsets are encoded correctly (they're secrels in
-	COFF). There were remnants of this there before, but they were removed
-	by Jedidiah's original patch - presumably because we didn't yet have
-	.secrel32.
-
-2023-01-10  Mark Harmstone  <mark@harmstone.com>
-
-	Add aarch64-w64-mingw32 target
-	This adds a mingw target for aarch64, including windres and dlltool.
-
-	Note that the old value of jmp_aarch64_bytes was wrong, and this does
-	the same thing as MSVC does.
-
-2023-01-10  Mark Harmstone  <mark@harmstone.com>
-
-	Add .secrel32 for pe-aarch64
-	Adds the .secrel32 pseudo-directive and its corresponding relocation.
-
-	Add pe-aarch64 relocations
-	This adds the remaining pe-aarch64 relocations, and gets them working.
-	It also brings in the constant directives from ELF, as otherwise .word
-	would be 2 rather than 4 bytes, and .xword and .dword wouldn't be
-	defined.
-
-2023-01-10  Mark Harmstone  <mark@harmstone.com>
-
-	Fix size of external_reloc for pe-aarch64
-	This patch series finishes off the work by Jedidiah Thompson, and adds
-	support for creating aarch64 PE images.
-
-	This should be essentially complete: I've used this to create a "hello
-	world" Windows program in asm, and (with GCC patches) a UEFI program in
-	C. I think the only things missing are the .secidx relocation, which is
-	needed for PDBs, and the SEH pseudos used for C++ exceptions.
-
-	This first patch fixes the size of RELSZ; I'm not sure why it was 14 in
-	the first place. This is the size of the "Base Relocation Block" in
-	https://learn.microsoft.com/en-us/windows/win32/debug/pe-format, and
-	AFAIK should be 10 for everything.
-
-2023-01-10  Rohr, Stephan  <stephan.rohr@intel.com>
-
-	gdb/dwarf2: Fix 'rw_pieced_value' for values casted to different type.
-	The 'rw_pieced_value' function is executed when fetching a (lazy)
-	variable described by 'DW_OP_piece' or 'DW_OP_bit_piece'.  The
-	function checks the 'type' and 'enclosing_type' fields of the value
-	for identity.
-
-	  * The 'type' field describes the type of a value.
-	  * In most cases, the 'enclosing_type' field is identical to the
-	    'type' field.
-	  * Scenarios where the 'type' and 'enclosing_type' of an object
-	    differ are described in 'gdb/value.c'.  Possible cases are:
-	    * If a value represents a C++ object, then the 'type' field
-	      gives the object's compile-time type.  If the object actually
-	      belongs to some class derived from `type', perhaps with other
-	      base classes and additional members, then `type' is just a
-	      subobject of the real thing, and the full object is probably
-	      larger than `type' would suggest.
-	    * If 'type' is a dynamic class (i.e. one with a vtable), then GDB
-	      can actually determine the object's run-time type by looking at
-	      the run-time type information in the vtable.  GDB may then elect
-	      to read the entire object.
-	    * If the user casts a variable to a different type
-	      (e.g. 'print (<type> []) <variable>'), the value's type is
-	      updated before reading the value.
-
-	If a lazy value is fetched, GDB allocates space based on the enclosing
-	type's length and typically reads the 'full' object.  This is not
-	implemented for pieced values and causes an internal error if 'type'
-	and 'enclosing_type' of a value are not identical.
-
-	However, GDB can read the value based on its type.  Thus, this patch
-	fixes the previously mentioned cases by removing the check for identity.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28605
-
-	gdb/ChangeLog:
-	2022-04-13  Stephan Rohr  <stephan.rohr@intel.com>
-
-		* dwarf2/loc.c (rw_pieced_value): Fix check on 'type' and
-		'enlcosing_type' when reading pieced value 'v'.
-
-	gdb/testsuite/ChangeLog:
-	2022-04-13  Stephan Rohr  <stephan.rohr@intel.com>
-
-		* gdb.dwarf2/shortpiece.exp: Added test cases.
-
-2023-01-10  Tom Tromey  <tromey@adacore.com>
-
-	Convert say_where to method on code_breakpoint
-	'say_where' is only useful (and only called for) code breakpoints, so
-	convert it to be a protected method on code_breakpoint.
-
-2023-01-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/doc: use @value{GDBP} in some spots
-	Examples are supposed to use @value{GDBP} instead of the literal "(gdb)"
-	(many of them already do).  Update a bunch of spots where it wasn't the
-	case.
-
-	Change-Id: I601adaad61fd277a5fceea1759e49cede72e456d
-
-2023-01-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/doc: use @value{GDBN} in some spots
-	Change some spots to use "@value{GDBN}" instead of just "GDB".
-
-	Change-Id: I3fc26438e603538271cf33e4d148be5fda9ece7e
-
-2023-01-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/doc: some whitespace fixes
-	For consistency, replace tabs with spaces in all gdb.texinfo menus.
-
-	Change-Id: I0801a72cf82a8afe49ec842244f42d30719634ce
-
-2023-01-10  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
-
-	IBM zSystems: Fix offset relative to static TLS
-	For local exec TLS relocations of the form foo@NTPOFF+x the addend was
-	ignored.
-
-	bfd/ChangeLog:
-
-		* elf32-s390.c (elf_s390_relocate_section): Honor addend for
-		R_390_TLS_LE32.
-		* elf64-s390.c (elf_s390_relocate_section): Honor addend for
-		R_390_TLS_LE64.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-s390/reloctlsle-1.d: New test.
-		* testsuite/ld-s390/reloctlsle-1.s: New test.
-
-2023-01-10  Pekka Seppänen  <pexu@sourceware.mail.kapsi.fi>
-
-	PR 29981 references to init.texi
-
-2023-01-10  Alan Modra  <amodra@gmail.com>
-
-	Re: Move bfd_init to bfd.c
-	Commit b1c95bc4dd73 resulted in
-	...bfd.texi:246: @include: could not find init.texi
-	which went unnoticed due to not building in a clean directory.
-
-	This fixes the problem by moving bfd_init earlier, giving it a
-	doc node, and stitching the nodes back together.
-
-		* bfd.c (bfd_init): Move earlier.  Give it a doc inode.
-		Adjust other inodes to suit.
-		* doc/bfd.texi: Don't include init.texi.  Adjust nodes to suit.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: disable recursive make in (most) subdirs
-	Now that all (other than ppc) build in the top-level, we can disable
-	the recursive make calls to them.  This speeds things up nicely.
-
-	sim: common: move test-hw-events to top-level build
-	This is an internal developer target that isn't normally compiled,
-	but it can still be occasionally useful.  Move it to the top-level
-	build so we can kill off common/Make-common.in.
-
-	sim: move arch-specific file compilation of common/ files to top-level
-
-	sim: v850: move arch-specific file compilation to top-level
-	The arch-specific compiler flags are duplicated, but they'll be cleaned
-	up once we move all subdir compiles to the top-level.
-
-	sim: sh: move arch-specific file compilation to top-level
-
-	sim: rx: move arch-specific file compilation to top-level
-	The arch-specific flags are only used by the arch-specific modules,
-	not the common/ files, so we can delete them too.
-
-	sim: rl78: move arch-specific file compilation to top-level
-
-	sim: riscv: move arch-specific file compilation to top-level
-	The arch-specific compiler flags are duplicated, but they'll be cleaned
-	up once we move all subdir compiles to the top-level.
-
-	sim: pru: move arch-specific file compilation to top-level
-
-	sim: or1k: move arch-specific file compilation to top-level
-	The arch-specific compiler flags are duplicated, but they'll be cleaned
-	up once we move all subdir compiles to the top-level.
-
-	sim: msp430: move arch-specific file compilation to top-level
-
-	sim: moxie: move arch-specific file compilation to top-level
-	The arch-specific flags are only used by the arch-specific modules,
-	not the common/ files, so we can delete them too.
-
-	sim: mn10300: move arch-specific file compilation to top-level
-	The arch-specific compiler flags are duplicated, but they'll be cleaned
-	up once we move all subdir compiles to the top-level.
-
-	sim: mips: move arch-specific file compilation to top-level
-	The arch-specific compiler flags are duplicated, but they'll be cleaned
-	up once we move all subdir compiles to the top-level.
-
-	sim: microblaze: move arch-specific file compilation to top-level
-
-	sim: mcore: move arch-specific file compilation to top-level
-
-	sim: m68hc11: move arch-specific file compilation to top-level
-	The arch-specific compiler flags are duplicated, but they'll be cleaned
-	up once we move all subdir compiles to the top-level.
-
-	sim: m32r: move arch-specific file compilation to top-level
-
-	sim: m32c: move arch-specific file compilation to top-level
-	The arch-specific flags are only used by the arch-specific modules,
-	not the common/ files, so we can delete them too.
-
-	sim: lm32: move arch-specific file compilation to top-level
-
-	sim: iq2000: move arch-specific file compilation to top-level
-
-	sim: h8300: move arch-specific file compilation to top-level
-
-	sim: ft32: move arch-specific file compilation to top-level
-
-	sim: frv: move arch-specific file compilation to top-level
-	The arch-specific flags are only used by the arch-specific modules,
-	not the common/ files, so we can delete them too.
-
-	sim: example-synacor: move arch-specific file compilation to top-level
-
-	sim: erc32: move arch-specific file compilation to top-level
-	The arch-specific flags are only used by the arch-specific modules,
-	not the common/ files, so we can delete them too.
-
-	sim: d10v: move arch-specific file compilation to top-level
-
-	sim: cris: move arch-specific file compilation to top-level
-
-	sim: cr16: move arch-specific file compilation to top-level
-
-	sim: bfin: move arch-specific file compilation to top-level
-	The arch-specific flags are only used by the arch-specific modules,
-	not the common/ files, so we can delete them too.
-
-	sim: bpf: move arch-specific file compilation to top-level
-	We can drop the arch-specific rules from the subdir as they're no
-	longer used.
-
-	sim: avr: move arch-specific file compilation to top-level
-
-	sim: arm: move arch-specific file compilation to top-level
-	The arch-specific flags are only used by the arch-specific modules,
-	not the common/ files, so we can delete them too.
-
-	sim: aarch64: move arch-specific file compilation to top-level
-
-	sim: build: add basic framework for compiling arch objects in top-level
-	The code so far has been assuming that we only compile common/ objects.
-	Now that we're ready to compile arch-specific objects, refactor some of
-	the flags & checks a bit to support both.
-
-	sim: modules.c: move generation to top-level
-	Now that all arches create libsim.a from the top-level, we have full
-	access to their inputs, and can move the actual generation from the
-	subdir up to the top-level.  This avoids recursive makes and will
-	help simplify state passing between the two.
-
-	sim: build: drop common/nrun.o subdir hack
-	Now that all the subdirs handle their own builds, we can drop this
-	common rule as it's unused, and we don't want to use it anymore.
-
-	sim: build: drop support for creating libsim.a in subdirs
-	Now that all ports have moved to creating libsim.a in the top-level,
-	drop all the support code to create it in a subdir.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: v850: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: rx: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: rl78: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: riscv: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: pru: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: or1k: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: msp430: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: moxie: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mn10300: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-	The mips code is a little more tricky than others because, for multi-run
-	targets, it generates the list of sources & objects on the fly in the
-	configure script.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: microblaze: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mcore: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: m68hc11: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: m32r: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: m32c: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: lm32: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: iq2000: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: h8300: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ft32: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: frv: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: example-synacor: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: erc32: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: d10v: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cris: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cr16: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: bpf: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: bfin: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: avr: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: arm: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: aarch64: move libsim.a creation to top-level
-	The objects are still compiled in the subdir, but the creation of the
-	archive itself is in the top-level.  This is a required step before we
-	can move compilation itself up, and makes it easier to review.
-
-	The downside is that each object compile is a recursive make instead of
-	a single one.  On my 4 core system, it adds ~100msec to the build per
-	port, so it's not great, but it shouldn't be a big deal.  This will go
-	away of course once the top-level compiles objects.
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: drop support for subdir extra deps
-	Nothing uses this hook anymore, so punt it.  It was largely used to
-	track generated files (which we do in the top-level now) and extra
-	header files (which we use automake depgen for now).
-
-2023-01-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: modules: trigger generation from top-level
-	Add rules for tracking generated subdir modules.c files.  This doesn't
-	actually generate the file from the top-level, but allows us to add
-	rules that need to be ordered wrt it.  Once those changes land, we can
-	rework this to actually generate from the top-level.
-
-	This currently builds off of the objects that go into the libsim.a as
-	we don't build those from the top-level either.  Once we migrate that
-	up, we can switch this to the source files directly.  It's a bit hacky
-	overall, but makes it easier to migrate things in smaller chunks, and
-	we aren't going to keep this logic long term.
-
-2023-01-10  Aaron Merey  <amerey@redhat.com>
-
-	gdb/linespec.c: Fix missing source file during breakpoint re-set
-	During breakpoint re-setting, the source_filename of an
-	explicit_location_spec is used to lookup the symtabs associated with
-	the breakpoint being re-set.  This source_filename is compared with each
-	known symtab filename in order to retrieve the breakpoint's symtabs.
-
-	However the source_filename may have been originally copied from a
-	symtab's fullname (the path where GDB found the source file) when the
-	breakpoint was first created.  If a breakpoint symtab's filename and
-	fullname differ and there is no substitute-path rule that converts the
-	fullname to the filename, this will cause a NOT_FOUND_ERROR to be thrown
-	during re-setting.
-
-	Fix this by using a symtab's filename to set the explicit_location_spec
-	source_filename instead of the symtab's fullname.
-
-2023-01-10  Aaron Merey  <amerey@redhat.com>
-
-	gdb/linespec.c: Fix -Wmaybe-uninitialized warning
-	Although the bool want_start_sal isn't actually used without being assigned
-	a value, initialize it to be false in order to prevent the following
-	-Wmaybe-uninitialized warning:
-
-	    linespec.c: In function ‘void minsym_found(linespec_state*, objfile*, minimal_symbol*, std::vector<symtab_and_line>*)’:
-	    linespec.c:4150:19: warning: ‘want_start_sal’ may be used uninitialized [-Wmaybe-uninitialized]
-	     4150 |   if (is_function && want_start_sal)
-
-2023-01-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-09  Alan Modra  <amodra@gmail.com>
-
-	Set dwarf2 stash pointer earlier
-	This fixes a memory leak in the vanishingly rare cases (found by
-	fuzzers of course) when something goes wrong in the save_section_vma,
-	htab_create_alloc or alloc_trie_leaf calls before *pinfo is written.
-	If *pinfo is not written, _bfd_dwarf2_cleanup_debug_info won't be able
-	to free that memory.
-
-		* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Save stash pointer
-		on setting up stash.
-
-2023-01-09  Alan Modra  <amodra@gmail.com>
-
-	peXXigen.c sanity checks
-	Also fix a memory leak, and make some style changes.  I tend to read
-	(sizeof * x) as a multiplication of two variables, which I would not
-	do if binutils followed the gcc coding conventions consistently (see
-	https://gcc.gnu.org/codingconventions.html#Expressions).  (sizeof *x)
-	looks a lot better to me, or even (sizeof (*x)) which I've used here.
-
-		* peXXigen.c (get_contents_sanity_check): New function.
-		(pe_print_idata): Use it here..
-		(pe_print_edata): ..and here.  Free data on error return.
-		(rsrc_parse_entry): Check entry size read from file.
-		(rsrc_parse_entries): Style fixes.
-		(rsrc_process_section): Use bfd_malloc_and_get_section.
-		(_bfd_XXi_final_link_postscript): Likewise.
-
-2023-01-09  Alan Modra  <amodra@gmail.com>
-
-	Move mips_refhi_list to bfd tdata
-	Similar to commit c799eddb3512, but for mips-ecoff.  mips-ecoff is
-	marked obsolete, but we still allow reading of these object files in
-	a number of mips targets.
-
-		* coff-mips.c (struct mips_hi, mips_refhi_list): Delete.
-		(mips_refhi_reloc, mips_reflo_reloc): Access mips_refhi_list
-		in ecoff_data.
-		* ecoff.c (_bfd_ecoff_close_and_cleanup): New function.
-		* libecoff.h (struct mips_hi): Moved from coff-mips.c.
-		(struct ecoff_tdata): Add mips_refhi_list.
-		(_bfd_ecoff_close_and_cleanup): Declare.
-
-2023-01-09  Alan Modra  <amodra@gmail.com>
-
-	Move bfd_init to bfd.c
-	init.c contains just one function that doesn't do much.  Move it to
-	bfd.c and give it something to do, initialising static state.  So far
-	the only initialisation is for bfd.c static variables.
-
-	The idea behind reinitialising state is to see whether some set of
-	flaky oss-fuzz crashes go away.  oss-fuzz stresses binutils in ways
-	that can't occur in reality, feeding multiple testcases into the
-	internals of binutils.  So one testcase may affect the result of the
-	next testcase.
-
-		* init.c: Delete file.  Move bfd_init to..
-		* bfd.c (bfd_init): ..here.  Init static variables.
-		* Makefile.am (BFD32_LIBS): Remove init.lo.
-		(BFD32_LIBS_CFILES, BFD_H_FILES): Remove init.c.
-		* doc/local.mk: Remove mention of init.texi and init.c.
-		* Makefile.in: Regenerate.
-		* bfd-in2.h: Regenerate.
-		* po/SRC-POTFILES.in: Regenerate.
-
-2023-01-09  Tom Tromey  <tom@tromey.com>
-
-	Fix crash with C++ qualified names
-	PR c++/29503 points out that something like "b->Base::member" will
-	crash when 'b' does not have pointer type.  This seems to be a simple
-	oversight in eval_op_member.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29503
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-09  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/doc: fix @code{GDBN} -> @value{GDBN}
-	Change-Id: I928d6f8d6e6bc41d8c7ddbfae8f6ae0614f4993e
-
-2023-01-09  Christophe Lyon  <christophe.lyon@arm.com>
-
-	Skip ld/pr23169 test on arm.
-	The test is already skipped on several targets (including AArch64)
-	because it's invalid.
-
-		* testsuite/ld-ifunc/ifunc.exp: Skip pr23169 on arm.
-
-2023-01-09  Christophe Lyon  <christophe.lyon@arm.com>
-
-	Fix PR18841 ifunc relocation ordering
-	In order to get the ifunc relocs properly sorted the correct class
-	needs to be returned.  The code mimics what has been done for AArch64.
-
-	Fixes:
-	FAIL: Run pr18841 with libpr18841b.so
-	FAIL: Run pr18841 with libpr18841c.so
-	FAIL: Run pr18841 with libpr18841bn.so (-z now)
-	FAIL: Run pr18841 with libpr18841cn.so (-z now)
-
-		bfd/
-		PR ld/18841
-		* elf32-arm.c (elf32_arm_reloc_type_class): Return
-		reloc_class_ifunc for ifunc symbols.
-
-		ld/testsuite/
-		* ld-arm/ifunc-12.rd: Update relocations order.
-		* ld-arm/ifunc-3.rd: Likewise.
-		* ld-arm/ifunc-4.rd: Likewise.
-
-2023-01-09  Nick Clifton  <nickc@redhat.com>
-
-	Updated transaltions for the gprof and binutils sub-directories
-
-2023-01-09  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	testsuite: add -O0 to Intel compilers if no 'optimize' option is given
-	icpx/icx give the following warning if '-g' is used without '-O'.
-
-	   icpx: remark: Note that use of '-g' without any optimization-level
-	   option will turn off most compiler optimizations similar to use of
-	   '-O0'; use '-Rno-debug-disables-optimization' to disable this
-	   remark [-Rdebug-disables-optimization]
-
-	The warning makes dejagnu think that compilation has failed.  E.g.:
-
-	  $ make check TESTS="gdb.cp/local.exp" RUNTESTFLAGS="CXX_FOR_TARGET='icpx' CC_FOR_TARGET=icx"
-	  ...
-	  gdb compile failed, icpx: remark: Note that use of '-g' without any optimization-level option will turn off most compiler optimizations similar to use of '-O0'; use '-Rno-debug-disables-optimization' to disable this remark [-Rdebug-disables-optimization]
-
-	                  === gdb Summary ===
-
-	  # of untested testcases         1
-
-	Furthermore, if no -O flag is passed, icx/icc optimize
-	the code by default.  This breaks assumptions in many GDB tests
-	that the code is unoptimized by default.  E.g.:
-
-	  $ make check TESTS="gdb.cp/cmpd-minsyms.exp" RUNTESTFLAGS="CXX_FOR_TARGET='icpx' CC_FOR_TARGET=icx"
-	  ...
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at 'GDB<int>::a() const'
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at 'GDB<int>::b() volatile'
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at 'GDB<int>::c() const volatile'
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::operator ==
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::operator==(GDB<int> const&)
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<char>::harder(char)
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::harder(int)
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at "int GDB<char>::even_harder<int>(char)"
-	  FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::simple()
-
-	                  === gdb Summary ===
-
-	  # of expected passes            1
-	  # of unexpected failures        9
-
-	To fix both problems, pass the -O0 flag explicitly, if no optimization
-	option is given.
-
-	With this patch we get, e.g.:
-
-	  $ make check TESTS="gdb.cp/cmpd-minsyms.exp gdb.cp/local.exp" RUNTESTFLAGS="CXX_FOR_TARGET='icpx' CC_FOR_TARGET=icx"
-	  ...
-	                  === gdb Summary ===
-
-	  # of expected passes            19
-	  # of known failures             1
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-01-09  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	testsuite: handle icc and icpc deprecated remarks
-	Starting with icc/icpc version 2021.7.0 and higher both compilers emit a
-	deprecation remark when used.  E.g.
-
-	  >> icc --version
-	  icc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is
-	  deprecated and will be removed from product release in the second half
-	  of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended
-	  compiler moving forward. Please transition to use this compiler. Use
-	  '-diag-disable=10441' to disable this message.
-	  icc (ICC) 2021.7.0 20220713
-	  Copyright (C) 1985-2022 Intel Corporation.  All rights reserved.
-
-	  >> icpc --version
-	  icpc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is
-	  deprecated ...
-	  icpc (ICC) 2021.7.0 20220720
-	  Copyright (C) 1985-2022 Intel Corporation.  All rights reserved.
-
-	As the testsuite compile fails when unexpected output by the compiler is
-	seen this change in the compiler breaks all existing icc and icpc tests.
-	This patch makes the gdb testsuite more forgiving by a) allowing the
-	output of the remark when trying to figure out the compiler version
-	and by b) adding '-diag-disable=10441' to the compile command whenever
-	gdb_compile is called without the intention to detect the compiler.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2023-01-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-08  Alan Modra  <amodra@gmail.com>
-
-	PR29972, inconsistent format specification in singular form
-		PR 29972
-		* readelf.c (process_dynamic_section): Correct format string.
-
-2023-01-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-06  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe: fix the defined SFRAME_FRE_TYPE_*_LIMIT constants
-	An earlier commit 3f107464 defined the SFRAME_FRE_TYPE_*_LIMIT
-	constants.  These constants are used (by gas and libsframe) to pick an
-	SFrame FRE type based on the function size.  Those constants, however,
-	were buggy, causing the generated SFrame sections to be bloated as
-	SFRAME_FRE_TYPE_ADDR2/SFRAME_FRE_TYPE_ADDR4 got chosen more often than
-	necessary.
-
-	gas/
-		* sframe-opt.c (sframe_estimate_size_before_relax): Use
-		typecast.
-		(sframe_convert_frag): Likewise.
-
-	libsframe/
-		* sframe.c (sframe_calc_fre_type): Use a more appropriate type
-		for argument.  Adjust the check for SFRAME_FRE_TYPE_ADDR4_LIMIT
-		to keep it warning-free but meaningful.
-
-	include/
-		* sframe-api.h (sframe_calc_fre_type): Use a more appropriate
-		type for the argument.
-		* sframe.h (SFRAME_FRE_TYPE_ADDR1_LIMIT): Correct the constant.
-		(SFRAME_FRE_TYPE_ADDR2_LIMIT): Likewise.
-		(SFRAME_FRE_TYPE_ADDR4_LIMIT): Likewise.
-
-2023-01-06  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: adjust an incorrect check in flip_sframe
-	When sframe_encoder_write needs to flip the buffer containing the SFrame
-	section before writing, it is not necessary that the SFrame FDES are in
-	the order of their sfde_func_start_fre_off.  On the contrary, SFrame
-	FDEs will be sorted in the order of their start address.  So, remove
-	this incorrect assumption which is basically assuming that the last
-	sfde_func_start_fre_off seen will help determine the end of the flipped
-	buffer.
-
-	The function now keeps track of the bytes_flipped and then compares it with
-	the expected value.  Also, added two more checks at appropriate places:
-	 - check that the SFrame FDE read is within bounds
-	 - check that the SFrame FRE read is within bounds
-
-	libsframe/
-
-		* sframe.c (flip_sframe): Adjust an incorrect check.
-		Add other checks to ensure reads are within the buffer size.
-
-2023-01-06  Jan Beulich  <jbeulich@suse.com>
-
-	ld: yet another PDB build fix (or workaround)
-	Older bash looks to improperly deal with backslashes in here-documents,
-	leaving them in place on the escaped double quotes inside the parameter
-	expansion. Convert to a model without using such a construct, by simply
-	splitting the here-documents into three ones.
-
-2023-01-06  Nick Clifton  <nickc@redhat.com>
-
-	Updated Bulgarian and Russian translations for LD and BFD respectively
-
-2023-01-06  Alan Modra  <amodra@gmail.com>
-
-	Fix an aout memory leak
-		* aoutx.h (aout_bfd_free_cached_info): Free line_buf.
-
-	Tidy pe flag in coff_data
-	Make it a bool, use obj_pe accessor everywhere.
-
-2023-01-06  Alan Modra  <amodra@gmail.com>
-
-	Make coff backend data read-only
-	The bfd_coff_backend_data struct should be read-only, the only thing
-	preventing this is that objcopy writes to one of the fields,
-	_bfd_coff_long_section_names.  This patch creates a copy of the field
-	in bfd coff_obj_tdata, which makes more sense anyway.  When enabling
-	long section names the intent is to do so for a particular bfd, not
-	for all bfds that might happen to be using the target xvec.
-
-	bfd/
-		* coffcode.h: Update coff long section name comment.
-		(bfd_coff_set_long_section_names_allowed): Use macro accessor
-		to set flag.
-		(bfd_coff_set_long_section_names_disallowed): Tidy.
-		(coff_backend_info): Return a const pointer.
-		(bfd_coff_std_swap_table, ticoff0_swap_table, ticoff1_swap_table),
-		(bigobj_swap_table): Make const.
-		(bfd_coff_long_section_names): Use tdata copy.
-		(coff_mkobject): Set long_section_names from coff_backend_info.
-		* coff-go32.c (_bfd_go32_mkobject): Likewise.
-		* peicode.h (pe_mkobject): Likewise.
-		* coff-sh.c (bfd_coff_small_swap_table): Make const.
-		* libcoff-in.h (struct coff_tdata): Add long_section_names,
-		reorder fields.
-		* libcoff.h: Regenerate.
-	binutils/
-		* objcopy.c (set_long_section_mode): Move earlier in file.
-		(copy_object): Call set_long_section_mode here, after setting
-		output format.
-		(copy_file): Don't call set_long_section_mode.
-
-2023-01-06  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/c++: Detect ambiguous variables in imported namespaces
-	When running gdb.cp/nsusing.cc and stopping at line 17, we can ask GDB
-	to print x and get a compiler-dependent answer. Using gcc 12.2.1, GDB
-	will print M::x, and using clang 16.0.0 prints N::x. Not only is this
-	behavior confusing to users, it is also not consistent with compiler
-	behaviors, which would warn that using x is ambiguous at this point.
-
-	This commit makes GDB behavior consistent with compilers. it achieves
-	this by making it so instead of exiting early when finding any symbol
-	with the correct name, GDB continues searching through all include
-	directives, storing all matching symbols in a relational map betwen the
-	mangled name and the found symbols.
-
-	If the resulting map has more than one entry, GDB says that the
-	reference is ambiguous and lists all possibilities. Otherwise it returns
-	the block_symbol structure for the desired symbol, or an empty struct if
-	nothing was found.
-
-	The commit also changes gdb.cp/nsusing.exp to test the ambiguous
-	detection.
-
-2023-01-06  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/mi: add no-history stop reason
-	When executing in reverse and runs out of recorded history, GDB prints
-	a warning to the user, but does not add a reason in the stopped record,
-	for example:
-
-	*stopped,frame={addr="0x000000000040113e",func="main",args=[],file="/home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.reverse/solib-reverse.c",fullname="/home/blarsen/Documents/binutils-gdb/gdb/testsuite/gdb.reverse/solib-reverse.c",line="27",arch="i386:x86-64"},thread-id="1",stopped-threads="all",core="1"
-
-	This problem was reported as record/29260.
-
-	This commit adds the reason no-history to the record, making it easier
-	for interfaces using the mi interpreter to report the result.  It also
-	changes the test gdb.mi/mi-reverse.exp to test that the reason shows up
-	correctly.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29260
-
-2023-01-06  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: Fix FAILs in gdb.linespec/cpcompletion.exp when using clang
-	When using clang 16.0.0 to test gdb.linespec/cpcompletion.exp, I get 99
-	unexpected failures.  They all fail to produce a complete list of
-	completion options for a function, either overload2_function,
-	overload3_function or anon_ns_function.  This happens because clang is
-	optimizing them away, since they are never used.
-
-	Fix this by adding __attribute__((used)) to all declarations to the
-	aforementioned functions.
-
-2023-01-06  Clément Chigot  <chigot@adacore.com>
-
-	configure: remove dependencies on gmp and mpfr when gdb is disabled
-	Since 991180627851801f1999d1ebbc0e569a17e47c74, the configure checks
-	about GMP and MPFR for gdb builds have been moved to the toplevel
-	configure.
-	However, it doesn't take into account the --disable-gdb option. Meaning
-	that a build without gdb will require these libraries even if not
-	needed.
-
-	ChangeLog:
-
-		* configure.ac: Skip GMP and MPFR when --disable-gdb is
-		provided.
-		* configure: Regenerate.
-
-2023-01-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: fix scoped_debug_start_end's move constructor
-	I spotted a problem with scoped_debug_start_end's move constructor.
-	When constructing a scoped_debug_start_end through it, it doesn't
-	disable the moved-from object, meaning there are now two objects that
-	will do the side-effects of decrementing the debug_print_depth global
-	and printing the "end" message.  Decrementing the debug_print_depth
-	global twice is actually problematic, because the increments and
-	decrements get out of sync, meaning we should hit this assertion, in
-	theory:
-
-	    gdb_assert (debug_print_depth > 0);
-
-	However, in practice, we don't see that.  This is because despite the
-	move constructor being required for this to compile:
-
-	    template<typename PT>
-	    static inline scoped_debug_start_end<PT &> ATTRIBUTE_NULL_PRINTF (6, 7)
-	    make_scoped_debug_start_end (PT &&pred, const char *module, const char *func,
-	    			     const char *start_prefix,
-	    			     const char *end_prefix, const char *fmt, ...)
-	    {
-	      va_list args;
-	      va_start (args, fmt);
-	      auto res = scoped_debug_start_end<PT &> (pred, module, func, start_prefix,
-	    					   end_prefix, fmt, args);
-	      va_end (args);
-
-	      return res;
-	    }
-
-	... it is never actually called, because compilers elide the move
-	constructors all the way (the scoped_debug_start_end gets constructed
-	directly in the instance of the top-level caller).  To confirm this, I
-	built GDB with -fno-elide-constructors, and now I see it:
-
-	    /home/simark/src/binutils-gdb/gdb/../gdbsupport/common-debug.h:147: internal-error: ~scoped_debug_start_end: Assertion `debug_print_depth > 0' failed.
-
-	    #9  0x00005614ba5f17c3 in internal_error_loc (file=0x5614b8749960 "/home/simark/src/binutils-gdb/gdb/../gdbsupport/common-debug.h", line=147, fmt=0x5614b8733fa0 "%s: Assertion `%s' failed.") at /home/simark/src/binutils-gdb/gdbsupport/errors.cc:58
-	    #10 0x00005614b8e1b2e5 in scoped_debug_start_end<bool&>::~scoped_debug_start_end (this=0x7ffc6c5e7b40, __in_chrg=<optimized out>) at /home/simark/src/binutils-gdb/gdb/../gdbsupport/common-debug.h:147
-	    #11 0x00005614b96dbe34 in make_scoped_debug_start_end<bool&> (pred=@0x5614baad7200: true, module=0x5614b891d840 "infrun", func=0x5614b891d800 "infrun_debug_show_threads", start_prefix=0x5614b891d7c0 "enter", end_prefix=0x5614b891d780 "exit", fmt=0x0) at /home/simark/src/binutils-gdb/gdb/../gdbsupport/common-debug.h:235
-
-	Fix this by adding an m_disabled field to scoped_debug_start_end, and
-	setting it in the move constructor.
-
-	Change-Id: Ie5213269c584837f751d2d11de831f45ae4a899f
-
-2023-01-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: add gdb::string_view_hash
-	Add the string_view_hash type, which will be useful to be able to use
-	gdb::string_view as std::unordered_map keys.
-
-	Use it in gdb/symtab.c, to exercise it.
-
-	Change-Id: Id69a466ab19a9f6620b5df8a2dd29b5cddd94c00
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-01-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: move fast_hash to gdbsupport/common-utils.h
-	The following patch adds a hash type for gdb::string_view in gdbsupport,
-	which will use the fast_hash function.  Move the latter to gdbsupport.
-
-	Change-Id: Id74510e17801e775bd5ffa5f443713d79adf14ad
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-01-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: move libxxhash configure check to gdbsupport
-	The following patch moves the fast_hash function, which uses libxxhash,
-	to gdbsupport.  Move the libxxhash configure check to gdbsupport (and
-	transitively to gdbserver).
-
-	Change-Id: I242499e50c8cd6fe9f51e6e92dc53a1b3daaa96e
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-01-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make gdbarch_alloc take ownership of the tdep
-	It's currently not clear how the ownership of gdbarch_tdep objects
-	works.  In fact, nothing ever takes ownership of it.  This is mostly
-	fine because we never free gdbarch objects, and thus we never free
-	gdbarch_tdep objects.  There is an exception to that however: when
-	initialization fails, we do free the gdbarch object that is not going to
-	be used, and we free the tdep too.  Currently, i386 and s390 do it.
-
-	To make things clearer, change gdbarch_alloc so that it takes ownership
-	of the tdep.  The tdep is thus automatically freed if the gdbarch is
-	freed.
-
-	Change all gdbarch initialization functions to pass a new gdbarch_tdep
-	object to gdbarch_alloc and then retrieve a non-owning reference from
-	the gdbarch object.
-
-	Before this patch, the xtensa architecture had a single global instance
-	of xtensa_gdbarch_tdep.  Since we need to pass a dynamically allocated
-	gdbarch_tdep_base instance to gdbarch_alloc, remove this global
-	instance, and dynamically allocate one as needed, like we do for all
-	other architectures.  Make the `rmap` array externally visible and
-	rename it to the less collision-prone `xtensa_rmap` name.
-
-	Change-Id: Id3d70493ef80ce4bdff701c57636f4c79ed8aea2
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2023-01-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: add back needed -re clause in gdb_breakpoint
-	Commit 4b9728be ("gdb: use gdb_test_multiple in gdb_breakpoint") caused,
-	amongst others:
-
-	   (gdb) break 1^M
-	   No line 1 in the current file.^M
-	   Make breakpoint pending on future shared library load? (y or [n]) n^M
-	   (gdb) FAIL: gdb.dwarf2/dw2-main-no-line-number.exp: gdb_breakpoint: set breakpoint at 1
-	   FAIL: gdb.dwarf2/dw2-main-no-line-number.exp: !$breakpoint_at_missing_lineno_set
-
-	This is because it removed one empty -re clause (matching just the
-	prompt) that is necessary after replying "n" to the pending breakpoint
-	question.  Add this clause back.
-
-	Change-Id: Ibfaa059d58bbea660bc29f0547e2f75c323fcbc6
-	Approved-By: Tom de Vries <tdevries@suse.de>
-
-2023-01-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/python] Avoid queue.SimpleQueue for python 3.6
-	On openSUSE Leap 15.4 with python 3.6, the gdb.dap/basic-dap.exp test-case
-	fails as follows:
-	...
-	ERROR: eof reading json header
-	    while executing
-	"error "eof reading json header""
-	    invoked from within
-	"expect {
-	-i exp19 -timeout 10
-	        -re "^Content-Length: (\[0-9\]+)\r\n" {
-	            set length $expect_out(1,string)
-	            exp_continue
-	        }
-	        -re "^(\[^\r\n\]+)..."
-	    ("uplevel" body line 1)
-	    invoked from within
-	"uplevel $body" NONE eof reading json header
-	UNRESOLVED: gdb.dap/basic-dap.exp: startup - initialize
-	...
-
-	Investigation using a "catch throw" shows that:
-	...
-	(gdb)
-	    at gdb/python/py-utils.c:396
-	396             error (_("Error occurred in Python: %s"), msg.get ());
-	(gdb) p msg.get ()
-	$1 = 0x2b91d10 "module 'queue' has no attribute 'SimpleQueue'"
-	...
-
-	The python class queue.SimpleQueue was introduced in python 3.7.
-
-	Fix this by falling back to queue.Queue for python <= 3.6.
-
-	Tested on x86_64-linux, by successfully running the test-case:
-	...
-	 # of expected passes            47
-	...
-
-2023-01-05  Tom Tromey  <tromey@adacore.com>
-
-	Add type to expression dump of symbol
-	I recently had cause to dump some expressions from gdb.  I got output
-	like this:
-
-	 Operation: BINOP_GTR
-	  Operation: OP_VAR_VALUE
-	   Block symbol:
-	    Symbol: small_value
-	    Block: 0x39b4c20
-	  Operation: OP_LONG
-	   Operation: OP_LONG
-	    Type: int
-	    Constant: 0x0000000000000014
-
-	This is ok, but it would have been handy to see the type of the
-	symbol.  This patch adds this information.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2023-01-05  Nick Clifton  <nickc@redhat.com>
-
-	Remove Stephen Casner as the PDP11 maintainer.
-
-	Add an extra emulation called arm64pe to the aarch64pe emulation.
-
-2023-01-05  Andreas K. Huettel  <dilfridge@gentoo.org>
-
-	Un xfail the PR19719 test for the AArch64 architecture
-
-2023-01-05  Nick Clifton  <nickc@redhat.com>
-
-	Updated Bulgarian and Russian translations for the gprof subdirectory
-
-2023-01-05  Paul Koning  <paulkoning@comcast.net>
-
-	PR29963, PDP11 link produces spurious relocation truncated messages
-	PDP11 is a 16-bit processor with 16-bit logical addresses.  Therefore
-	wrapping should be allowed on the 16-bit relocs, and may as well be
-	allowed for the 32-bit reloc too.
-
-		PR 29963
-		* pdp11.c (howto_table_pdp11): Use complain_overflow_dont.
-
-2023-01-05  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: add multi source to built sources
-	The multirun generation mode is a bit of a mess as generated run files
-	depend on generate igen files, all with unknown names ahead of time.
-	In the multirun mode, be lazy and declare all of these generated source
-	files as built sources so they'll be created early on.
-
-2023-01-05  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Move getopt checking inside SIM_AC_PLATFORM
-	This commit moves getopt declaration checker originally in sim/
-	configure.ac; added in commit 340aa4f6872c ("sim: Check known getopt
-	definition existence") to sim/m4/sim_ac_platform.m4 (inside the
-	SIM_AC_PLATFORM macro).
-
-	It also regenerates configuration files using the maintainer mode.
-
-2023-01-05  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
-
-	sim: bpf: fix testsuite due to linker warnings [PR sim/29954]
-	On a bpf-*-* testsuite fails:
-		./ld/ld-new: warning: test has a LOAD segment with RWX permissions
-
-	Adjusting `--memory-size=10Mb' to the simulator bpf testsuite passes.
-
-	Tested on bpf-*-*:
-
-	Bug: https://sourceware.org/PR29954
-
-	sim/testsuite:
-		* bpf/allinsn.exp (SIMFLAGS_FOR_TARGET): Adjust sim flags.
-
-2023-01-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-04  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	MAINTAINERS: add myself as maintainer of libsframe
-	binutils/
-		* MAINTAINERS: Add myself as maintainer of libsframe.
-
-2023-01-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Remove duplicated I386_PCREL_TYPE_P/X86_64_PCREL_TYPE_P
-	I386_PCREL_TYPE_P and X86_64_PCREL_TYPE_P are defined twice.  Remove
-	the duplications.
-
-		* elfxx-x86.h (I386_PCREL_TYPE_P): Remove duplication.
-		(X86_64_PCREL_TYPE_P): Likewise.
-
-2023-01-04  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: ensure test_name is initialized in gdb_breakpoint
-	A refactoring in 4b9728bec15 (gdb: use gdb_test_multiple in
-	gdb_breakpoint) left the $test_name variable undefined.
-
-	This patch fixes this.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2023-01-04  Tom Tromey  <tromey@adacore.com>
-
-	Use first_opcode in another spot
-	I found one place that could use expression::first_opcode.
-
-	Reviewed-By: Lancelot Six <lancelot.six@amd.com>
-
-2023-01-04  Tom Tromey  <tromey@adacore.com>
-
-	Convert exp_uses_objfile to a method of expression
-	This changes the exp_uses_objfile function to be a method of
-	'expression'.
-
-	Reviewed-By: Lancelot Six <lancelot.six@amd.com>
-
-2023-01-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use gdb_test_multiple in gdb_breakpoint
-	When running the testsuite in a non-optimized build on a slow machine, I
-	sometimes get:
-
-	    UNTESTED: gdb.gdb/selftest.exp: Cannot set breakpoint at captured_main, skipping testcase.
-
-	do_self_tests, in lib/selftest-support.exp, uses `with_timeout_factor
-	10`, to account for the fact that reading the debug info of the gdb
-	binary (especially in a non-optimized GDB) can take time.  But then it
-	ends up calling gdb_breakpoint, which uses gdb_expect with a hard-coded
-	timeout of 30 seconds.
-
-	Fix this by making gdb_breakpoint use gdb_test_multiple, which is a
-	desired change anyway for this kind of simple command / expected
-	output case.
-
-	Change-Id: I9b06ce991cc584810d8cc231b2b4893980b8be75
-	Reviewed-By: Lancelot Six <lancelot.six@amd.com>
-
-2023-01-04  Alan Modra  <amodra@gmail.com>
-
-	Re: Avoid unaligned pointer reads in PEP .idata section
-	Fix testsuite fallout.
-
-		* testsuite/ld-pe/cfi.d: Adjust for changed .idata padding.
-		* testsuite/ld-pe/secidx_64.d: Likewise.
-		* testsuite/ld-pe/secrel_64.d: Likewise.
-
-2023-01-04  Alan Modra  <amodra@gmail.com>
-
-	objcopy fuzzed pe out of memory
-	This occurs when attempting to read back a section from the output
-	file in _bfd_XX_bfd_copy_private_bfd_data_common.  The copy of the
-	section failed size sanity checking, thus it won't be written.
-
-		* objcopy.c (copy_object): Return false if copy_section or
-		copy_relocations_in_section fails.
-
-2023-01-04  Alan Modra  <amodra@gmail.com>
-
-	fuzzed file timeout
-	objcopy of archive, element containing an object with a fuzzed section
-	size far exceeding the element size.  copy_section detects this, but
-	the temp file is laid out for the large section.  It can take a long
-	time to write terabytes of sparse file, a waste of time when it will
-	be deleted.
-
-		* objcopy.c (copy_archive): Don't write element contents after
-		bad status result from copy_object.
-
-2023-01-04  Alan Modra  <amodra@gmail.com>
-
-	asan: segv in parse_module
-		* vms-alpha.c (parse_module): Ignore DST__K_SRC_SETFILE data
-		if out of range.
-
-2023-01-04  Alan Modra  <amodra@gmail.com>
-
-	addr2line out of memory on fuzzed file
-	Another case of fuzzers finding the section size sanity checks are
-	avoided with SHT_NOBITS sections.
-
-		* dwarf2.c (read_section): Check that the DWARF section being
-		read has contents.
-
-2023-01-04  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix some #ifdef logic in bt-utils.h
-	In passing I spotted some incorrect #ifdef logic in bt-utils.h.  The
-	logic in question has existed since the file was originally added in
-	commit:
-
-	  commit abbbd4a3e0ca51132e7fb31a43f896d29894dae0
-	  Date:   Wed Aug 11 13:24:33 2021 +0100
-
-	      gdb: use libbacktrace to create a better backtrace for fatal signals
-
-	The code is trying to select between using libbacktrace or using the
-	execinfo supplied backtrace API.
-
-	First we check to see if we can use libbacktrace.  If we can then we
-	include some header files, and then set some defines to indicate that
-	libbacktrace is being used.
-
-	Then we check if execinfo is available, if it is then we include
-	<execinfo.h> and set some alternative defines.
-
-	In theory the second block of logic should not trigger if the first
-	block (that uses libbacktrace) has also triggered, but we incorrectly
-	check the define 'PRINT_BACKTRACE_ON_FATAL_SIGNAL' instead of checking
-	for 'GDB_PRINT_INTERNAL_BACKTRACE_USING_LIBBACKTRACE', so the second
-	block triggers more than it should.  The
-	'PRINT_BACKTRACE_ON_FATAL_SIGNAL' define is not defined anywhere, this
-	was a mistake in the original commit.
-
-	In reality this is harmless, we include <execinfo.h> when we don't
-	need too, but in by-utils.c the libbacktrace define is always checked
-	for before the execinfo define, so we never actually end up using the
-	execinfo path (when libbacktrace is available).  But I figure its
-	still worth cleaning this up.
-
-	I've tested GDB in a "default" build where libbacktrace is used, and
-	when configuring with --disable-libbacktrace which causes the execinfo
-	backtrace API to be used instead, both still appear to work fine.
-
-	There should be no user visible changes after this commit.
-
-2023-01-04  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb: add 'maintenance print record-instruction' command
-	While chasing some reverse debugging bugs, I found myself wondering what
-	was recorded by GDB to undo and redo a certain instruction. This commit
-	implements a simple way of printing that information.
-
-	If there isn't enough history to print the desired instruction (such as
-	when the user hasn't started recording yet or when they request 2
-	instructions back but only 1 was recorded), GDB warns the user like so:
-
-	(gdb) maint print record-instruction
-	Not enough recorded history
-
-	If there is enough, GDB prints the instruction like so:
-
-	(gdb) maint print record-instruction
-	4 bytes of memory at address 0x00007fffffffd5dc changed from: 01 00 00 00
-	Register eflags changed: [ IF ]
-	Register rip changed: (void (*)()) 0x401115 <main+15>
-
-	Approved-by: Eli Zaretskii <eliz@gnu.org>
-	Reviewed-by: Alexandra Hajkova <ahajkova@redhat.com>
-	Reviewed-by: Lancelot Six <lsix@lancelotsix.com>
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2023-01-04  Andreas K. Huettel  <dilfridge@gentoo.org>
-
-	Fix AArch64 linker testsuite failures trigeered by differences in build environments.
-		PR 29843
-		* testsuite/ld-aarch64/bti-plt-5.d: Relax regxps slightly to allow
-		for differences in build environments.
-		* testsuite/ld-aarch64/tls-relax-gdesc-le-now.d: Likewise.
-
-2023-01-04  Mark Harmstone  <mark@harmstone.com>
-
-	Avoid unaligned pointer reads in PEP .idata section
-	This is something I discovered when working on aarch64, though it's
-	relevant to x86_64 too.
-
-	The PE32+ imports are located in the .idata section, which starts off
-	with a 20-byte structure for each DLL, containing offsets into the rest
-	of the section. This is the Import Directory Table in
-	https://learn.microsoft.com/en-us/windows/win32/debug/pe-format, which
-	is a concatenation of the .idata$2 sections. This is then followed by an
-	20 zero bytes generated by the linker script, which calls this .idata$3.
-
-	After this comes the .idata$4 entries for each function, which the
-	loader overwrites with the function pointers. Because there's no padding
-	between .idata$3 and .idata$4, this means that if there's an even number
-	of DLLs, the function pointers won't be aligned on an 8-byte boundary.
-
-	Misaligned reads are slower on x86_64, but this is more important on
-	aarch64, as the e.g. `ldr x0, [x0, :lo12:__imp__func]` the compiler
-	might generate requires __imp__func (the .idata$4 entry) to be aligned
-	to 8 bytes. Without this you get IMAGE_REL_ARM64_PAGEOFFSET_12L overflow
-	errors.
-
-2023-01-04  Alan Modra  <amodra@gmail.com>
-
-	Merge config/picflag.m4 from gcc
-	and regen libiberty/configure
-
-2023-01-04  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Regenerate using the maintainer mode
-	Those files have changed by regenerating using the maintainer mode.
-	The first line of sim/ppc/pk.h have changed by an effect of the commit
-	319e41e83a40 ("sim: ppc: inline the sim-packages option").
-
-2023-01-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-03  Max Filippov  <jcmvbkbc@gmail.com>
-
-	opcodes: xtensa: fix jump visualization for FLIX
-	opcodes/
-		* xtensa-dis.c (print_insn_xtensa): Add local variables
-		insn_type, target and imm_pcrel to track control flow across
-		multiple slots.
-
-	opcodes: xtensa: implement styled disassembly
-	opcodes/
-		* xtensa-dis.c (print_xtensa_operand)
-		(print_insn_xtensa): Replace fprintf_func with
-		fprintf_styled_func.
-
-2023-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Add test case for "finish" with variably-sized types
-	This adds a test case for "finish" with variably-sized types, and for
-	inferior calls as well.  This also extends the "runto" proc to handle
-	temporary breakpoints.
-
-	Use value_at_non_lval in get_call_return_value
-	get_call_return_value can handle RETURN_VALUE_STRUCT_CONVENTION,
-	because the call is completely managed by gdb.  However, it does not
-	handle variably-sized types correctly.  The simplest way to fix this
-	is to use value_at_non_lval, which does type resolution.
-
-	Fix inferior calls with variably-sized return type
-	This patch updates the gdbarch_return_value_as_value implementations
-	to work correctly with variably-sized return types.
-
-	Convert selected architectures to gdbarch_return_value_as_value
-	This converts a few selected architectures to use
-	gdbarch_return_value_as_value rather than gdbarch_return_value.  The
-	architectures are just the ones that I am able to test.  This patch
-	should not introduce any behavior changes.
-
-2023-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Don't let property evaluation affect the current language
-	On PPC, we saw that calling an inferior function could sometimes
-	change the current language, because gdb would select the call dummy
-	frame -- associated with _start.
-
-	This patch changes gdb so that the current language is never affected
-	by DWARF property evaluation.
-
-2023-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Introduce value_at_non_lval
-	In some cases, while a value might be read from memory, gdb should not
-	record the value as being equivalent to that memory.
-
-	In Ada, the inferior call code will call ada_convert_actual -- and
-	here, if the argument is already in memory, that address will simply
-	be reused.  However, for a call like "f(g())", the result of "g" might
-	be on the stack and thus overwritten by the call to "f".
-
-	This patch introduces a new function that is like value_at but that
-	ensures that the result is non-lvalue.
-
-2023-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Don't emit gdbarch_return_value
-	The previous patch introduced a new overload of gdbarch_return_value.
-	The intent here is that this new overload always be called by the core
-	of gdb -- the previous implementation is effectively deprecated,
-	because a call to the old-style method will not work with any
-	converted architectures (whereas calling the new-style method is will
-	delegate when needed).
-
-	This patch changes gdbarch.py so that the old gdbarch_return_value
-	wrapper function can be omitted.  This will prevent any errors from
-	creeping in.
-
-2023-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Add new overload of gdbarch_return_value
-	The gdbarch "return_value" can't correctly handle variably-sized
-	types.  The problem here is that the TYPE_LENGTH of such a type is 0,
-	until the type is resolved, which requires reading memory.  However,
-	gdbarch_return_value only accepts a buffer as an out parameter.
-
-	Fixing this requires letting the implementation of the gdbarch method
-	resolve the type and return a value -- that is, both the contents and
-	the new type.
-
-	After an attempt at this, I realized I wouldn't be able to correctly
-	update all implementations (there are ~80) of this method.  So,
-	instead, this patch adds a new method that falls back to the current
-	method, and it updates gdb to only call the new method.  This way it's
-	possible to incrementally convert the architectures that I am able to
-	test.
-
-2023-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Fix crash in amd64-tdep.c
-	amd64-tdep.c could crash when 'finish'ing from a function whose return
-	type had variable length.  In this situation, the value will be passed
-	by reference, and this patch avoids the crash.
-
-	(Note that this does not fully fix the bug reported, but it does fix
-	the crash, so it seems worthwhile to land independently.)
-
-2023-01-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add xfail in gdb.arch/i386-pkru.exp
-	On a x86_64-linux machine with pkru register, I run into:
-	...
-	(gdb) PASS: gdb.arch/i386-pkru.exp: set pkru value
-	info register pkru^M
-	pkru           0x12345678          305419896^M
-	(gdb) FAIL: gdb.arch/i386-pkru.exp: read value after setting value
-	...
-
-	This is a regression due to kernel commit e84ba47e313d ("x86/fpu: Hook up PKRU
-	onto ptrace()").  This is fixed by recent kernel commit 4a804c4f8356
-	("x86/fpu: Allow PKRU to be (once again) written by ptrace.").
-
-	The regression occurs for kernel versions v5.14-rc1 (the first tag containing
-	the regression) up to but excluding v6.2-rc1 (the first tag containing the fix).
-
-	Fix this by adding an xfail for the appropriate kernel versions.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/29790
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29790
-
-2023-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Do not use PyObject_CallNoArgs
-	PyObject_CallNoArgs was introduced in Python 3.9, so avoid it in favor
-	of PyObject_CallObject.
-
-2023-01-03  Himal  <himalr@proton.me>
-
-	Fix a potential problem in the BFD library when accessing the Windows' nul device driver.
-		PR 29947
-		* bfdio.c (_bfd_real_fopen): Do not add a prefix to the Windows'
-		nul device filename.
-
-2023-01-03  Nick Clifton  <nickc@redhat.com>
-
-	Fix a translation problem in the x86 assembler.
-		PR 29952
-		* config/tc-i386.c (md_assemble): Avoid constructing translatable
-		strings.
-
-	Updated translations for various languages and sub-directories
-
-2023-01-03  Luis Machado  <luis.machado@arm.com>
-
-	Add new NT_ARM_ZA and NT_ARM_SSVE register set constants.
-
-2023-01-03  Andrew Burgess  <aburgess@redhat.com>
-
-	[gdb] Fix segfault during inferior call to ifunc
-	With a simple test-case:
-	...
-	$ cat test.c
-	char *p = "a";
-	int main (void) {
-	  return strlen (p);
-	}
-	$ gcc -g test.c
-	...
-	we run into this segfault:
-	...
-	$ gdb -q -batch a.out -ex start -ex "p strlen (p)"
-	Temporary breakpoint 1 at 0x1151: file test.c, line 4.
-	[Thread debugging using libthread_db enabled]
-	Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
-
-	Temporary breakpoint 1, main () at test.c:4
-	4	  return strlen (p);
-
-	Fatal signal: Segmentation fault
-	...
-
-	The strlen is an ifunc, and consequently during the call to
-	call_function_by_hand_dummy for "p strlen (p)" another call
-	to call_function_by_hand_dummy is used to resolve the ifunc.
-
-	This invalidates the get_current_frame () result in the outer call.
-
-	Fix this by using prepare_reinflate and reinflate.
-
-	Note that this series (
-	https://inbox.sourceware.org/gdb-patches/20221214033441.499512-1-simon.marchi@polymtl.ca/ )
-	should address this problem, but this patch is a simpler fix which is easy to
-	backport.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-	PR gdb/29941
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29941
-
-2023-01-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: move some generated source files to built sources
-	This should have been part of the previous commit 80636a54bcfa2bca3dc8f
-	("sim: build: move generated headers to built sources"), but they were
-	missed because they're .c files effectively treated as .h files.
-
-	sim: build: add var for tracking sim enable directly
-	Rather than rely on SIM_SUBDIRS being set, add a dedicated variable
-	to track whether to enable the sim.  While the current code works
-	fine, it won't work as we remove the recursive make logic (i.e. the
-	SIM_SUBDIRS variable).
-
-	sim: common: drop libcommon.a linkage
-	All of these objects should be in libsim.a already, so don't link to
-	it too.  In practice it never gets used, but no point in listing it.
-
-2023-01-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: move generated headers to built sources
-	Automake's automatic header deptracking has a bootstrap problem where
-	it can't detect generated headers when compiling.  We've been handling
-	that by adding a custom SIM_ALL_RECURSIVE_DEPS variable, but that only
-	works when building objects recursively in subdirs.  As we move those
-	out to the top-level, we don't have any recursive steps anymore.  The
-	Automake approach is to declare those headers in BUILT_SOURCES.
-
-	This isn't completely foolproof as the Automake manual documents: it
-	only activates for `make all`, not `make foo.o`, but that shouldn't be
-	a huge limitation as it only affects the initial compile.  After that,
-	rebuilds should work fine.
-
-2023-01-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cgen: drop common subdir build rules
-	Now that everything has been hoisted to the top-level, we can delete
-	this unused logic.
-
-	sim: or1k: hoist cgen rules to top-level
-
-	sim: m32r: hoist cgen rules to top-level
-
-	sim: lm32: hoist cgen rules to top-level
-
-	sim: iq2000: hoist cgen rules to top-level
-
-	sim: frv: hoist cgen rules to top-level
-
-	sim: cris: hoist cgen rules to top-level
-
-	sim: bpf: hoist cgen rules to top-level
-
-	sim: cgen: hoist rules to the top-level build
-	The rules seem to generate the same output as existing subdir cgen
-	rules with cgen ports, so hopefully this should be correct.  These
-	are the last set of codegen rules that we run in subdirs, so this
-	will help unblock killing off subdir builds entirely.
-
-	sim: build: use Automake include vars
-	Rather than define our own hack for emitting an include statement,
-	use the existing Automake include variables.  These have the nice
-	side-effect of being more portable.
-
-2023-01-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-02  Tom Tromey  <tromey@adacore.com>
-
-	Simplify debug_exp
-	debug_exp should call expression::dump rather than using the 'op'
-	member.
-
-2023-01-02  Tom Tromey  <tromey@adacore.com>
-
-	Initial implementation of Debugger Adapter Protocol
-	The Debugger Adapter Protocol is a JSON-RPC protocol that IDEs can use
-	to communicate with debuggers.  You can find more information here:
-
-	    https://microsoft.github.io/debug-adapter-protocol/
-
-	Frequently this is implemented as a shim, but it seemed to me that GDB
-	could implement it directly, via the Python API.  This patch is the
-	initial implementation.
-
-	DAP is implemented as a new "interp".  This is slightly weird, because
-	it doesn't act like an ordinary interpreter -- for example it doesn't
-	implement a command syntax, and doesn't use GDB's ordinary event loop.
-	However, this seemed like the best approach overall.
-
-	To run GDB in this mode, use:
-
-	    gdb -i=dap
-
-	The DAP code will accept JSON-RPC messages on stdin and print
-	responses to stdout.  GDB redirects the inferior's stdout to a new
-	pipe so that output can be encapsulated by the protocol.
-
-	The Python code uses multiple threads to do its work.  Separate
-	threads are used for reading JSON from the client and for writing JSON
-	to the client.  All GDB work is done in the main thread.  (The first
-	implementation used asyncio, but this had some limitations, and so I
-	rewrote it to use threads instead.)
-
-	This is not a complete implementation of the protocol, but it does
-	implement enough to demonstrate that the overall approach works.
-
-	There is a rudimentary test suite.  It uses a JSON parser written in
-	pure Tcl.  This parser is under the same license as Tcl itself, so I
-	felt it was acceptable to simply import it into the tree.
-
-	There is also a bit of documentation -- just documenting the new
-	interpreter name.
-
-2023-01-02  Jonas Hoerberg  <JHorberg@danfoss.com>
-
-	Fix target remote pipe command for MinGW
-	The cced7cacecad104fff0 ("gdb: preserve `|` in connection details string")
-	commit added '|' detection and removal to ser-pipe.c, but missed to add it
-	to ser-mingw.c.
-
-	This results in the error message below for MinGW hosts:
-	error starting child process '| <executable> <args>': CreateProcess: No such file or directory
-
-	This commit add the missing '|' detection and removal to ser-mingw.c.
-
-2023-01-02  Tom Tromey  <tromey@adacore.com>
-
-	Remove target: prefix from gdb_sysroot in find_separate_debug_file
-	I noticed that, when using gdbserver, gdb might print:
-
-	Reading /usr/lib/debug/lib64//libcap.so.2.48-2.48-4.fc36.x86_64.debug from remote target...
-	Reading target:/usr/lib/debug/lib64//libcap.so.2.48-2.48-4.fc36.x86_64.debug from remote target...
-
-	The second line has the "target:" prefix, but from the code it's clear
-	that this string is being passed verbatim to gdbserver -- which seems
-	wrong.
-
-	I filed PR remote/29929 for this.
-
-	The problem here is that find_separate_debug_file uses gdb_sysroot
-	without checking to see if it starts with the "target:" prefix.  This
-	patch changes this code to be a little more careful.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29929
-
-2023-01-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-breakpoint.exp with libstdc++ debug info
-	On x86_64-linux, I run into:
-	...
-	(gdb) python hbp1 = gdb.Breakpoint("add", type=gdb.BP_HARDWARE_BREAKPOINT)^M
-	Hardware assisted breakpoint 2 at 0x40072e: add. (7 locations)^M
-	(gdb) FAIL: gdb.python/py-breakpoint.exp: test_hardware_breakpoints: \
-	  Set hardware breakpoint
-	...
-	due to libstdc++ debug info:
-	...
-	$ gdb -q -batch outputs/gdb.python/py-breakpoint/py-breakpoint \
-	  -ex start \
-	  -ex "b add" \
-	  -ex "info break"
-	Temporary breakpoint 1 at 0x40076a: file py-breakpoint.c, line 50.
-
-	Temporary breakpoint 1, main (argc=1, argv=$hex) at py-breakpoint.c:50
-	50        int foo = 5;
-	Breakpoint 2 at 0x40072e: add. (7 locations)
-	Num     Type           Disp Enb Address            What
-	2       breakpoint     keep y   <MULTIPLE>
-	2.1                         y   0x000000000040072e in add(int) at \
-	  py-breakpoint.c:39
-	2.2                         y   0x00007ffff7b131de in \
-	  (anonymous namespace)::fast_float::bigint::add at \
-	  ../../../../../libstdc++-v3/src/c++17/fast_float/fast_float.h:1815
-	  ...
-	2.7                         y   0x00007ffff7b137e4 in \
-	  (anonymous namespace)::fast_float::bigint::add at \
-	  ../../../../../libstdc++-v3/src/c++17/fast_float/fast_float.h:1815
-	...
-
-	Fix this by using qualified=True.
-
-	Tested on x86_64-linux.
-	PR testsuite/29910
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29910
-
-2023-01-02  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: replace -I$srcroot/bfd include with -I$srcroot
-	Clean up includes a bit by making ports include bfd/ headers
-	explicitly.  This matches other projects, and makes it more clear
-	where these headers are coming from.
-
-	sim: replace -I$srcroot/opcodes include with -I$srcroot
-	Clean up includes a bit by making ports include opcodes/ headers
-	explicitly.  This matches other projects, and makes it more clear
-	where these headers are coming from.
-
-2023-01-02  Alan Modra  <amodra@gmail.com>
-
-	obsolete target tidy
-	Delete a few files only used for obsolete targets, and tidy config,
-	xfails and other pieces of support specific to those targets.  And
-	since I was editing target triplets in test files, fix the nm
-	alpha-linuxecoff fails.
-
-2023-01-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2023-01-01  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: drop unused SIM_EXTRA_LIBS
-	Now that all run binaries are linked in the topdir, this subdir libs
-	variable isn't used anywhere, so punt it.
-
-	sim: erc32: drop -I$(srcroot)
-	Since the port doesn't actually use this include, drop it.
-	No other port is doing this either.
-
-	sim: drop mention of & support for subdir configure
-	Now that no ports use these common configure APIs, delete the logic
-	and remove it from the documentation.
-
-	sim: refresh copyright dates a bit
-	Update a few files that were missed, and revert the generated Automake
-	output that uses dates from Automake itself.
-
-	sim: or1k: drop unused rules
-	These rules are the same as the common ones, so drop them to simplify.
-
-	sim: iq2000: drop unused cpu define logic
-	These defines seem to have been added in anticipation of adding another
-	cpu port (IQ10BF?), but that was over 20 years ago, and that port has
-	yet to materialize.  So drop these compile flags since they don't do
-	anything to the generated code.  If another port ever shows up, it's
-	easy enough to readd things as needed.
-
-2023-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	manual copyright year range of various GDB files to add 2023
-	This commit updates the following file...
-
-	   gdb/doc/gdb.texinfo
-	   gdb/doc/refcard.tex
-	   gdb/syscalls/update-netbsd.sh
-
-	... by hand as instructed by the gdb/copyright.py script.
-	The update by hand is needed because the copyright headers
-	to update are actually nested inside those files, rather
-	than located at the start of the file.
-
-2023-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	Update copyright year range in header of all files managed by GDB
-	This commit is the result of running the gdb/copyright.py script,
-	which automated the update of the copyright year range for all
-	source files managed by the GDB project to be updated to include
-	year 2023.
-
-2023-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	gdb/copyright.py: Adjust following rename of sim/ppc/ppc-instructions...
-	... to sim/ppc/powerpc.igen
-
-	This file is in the NOT_FSF_LIST because this file has a copyright
-	which is not assigned to the FSF. Since the file got renamed,
-	the corresponding entry in NOT_FSF_LIST needs to be renamed as well.
-
-2023-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	Update copyright year in help message of gdb, gdbserver, gdbreplay
-	This commit updates the copyright year displayed by gdb, gdbserver
-	and gdbreplay's help message from 2022 to 2023, as per our Start
-	of New Year procedure. The corresponding source files' copyright
-	header are also updated accordingly.
-
-2023-01-01  Alan Modra  <amodra@gmail.com>
-
-	Update year range in gprofng copyright notices
-	This adds 'Innovative Computing Labs' as an external author to
-	update-copyright.py, to cover the copyright notice in
-	gprofng/common/opteron_pcbe.c, and uses that plus another external
-	author 'Oracle and' to update gprofng copyright dates.  I'm not going
-	to commit 'Oracle and' as an accepted author, but that covers the
-	string "Copyright (c) 2006, 2012, Oracle and/or its affiliates. All
-	rights reserved." found in gprofng/testsuite/gprofng.display/jsynprog
-	files.
-
-	Update year range in copyright notice of binutils files
-	The newer update-copyright.py fixes file encoding too, removing cr/lf
-	on binutils/bfdtest2.c and ld/testsuite/ld-cygwin/exe-export.exp, and
-	embedded cr in binutils/testsuite/binutils-all/ar.exp string match.
-
-2023-01-01  Alan Modra  <amodra@gmail.com>
-
-	Update etc/update-copyright.py
-	This picks up some improvements from gcc/contrib.  exceptions must
-	derive from BaseException, port to python3, retain original file mode,
-	fix name of script in examples.
-
-	Adds libsframe to list of default dirs.  I would have added gprofng
-	too but there are some files claiming copyright by authors other than
-	the Free Software Foundation.
-
-2023-01-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-31  Nick Clifton  <nickc@redhat.com>
-
-	Update version numbers in howto-make-a-release document
-
-	Update version number and regenerate files
-
-	Add markers for 2.40 branch
-
-	sync libiberty sources with gcc mainline
-
-2022-12-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Add maintenance ignore-probes
-	There's a command "disable probes", but SystemTap probes, for instance
-	libc:longjmp cannot be disabled:
-	...
-	$ gdb -q -batch a.out -ex start -ex "disable probes libc ^longjmp$"
-	  ...
-	Probe libc:longjmp cannot be disabled.
-	Probe libc:longjmp cannot be disabled.
-	Probe libc:longjmp cannot be disabled.
-	...
-
-	Add a command "maintenance ignore-probes" that ignores probes during
-	get_probes, such that we can easily pretend to use a libc without the
-	libc:longjmp probe:
-	...
-	(gdb) maint ignore-probes -verbose libc ^longjmp$
-	ignore-probes filter has been set to:
-	PROVIDER: 'libc'
-	PROBE_NAME: '^longjmp$'
-	OBJNAME: ''
-	(gdb) start ^M
-	  ...
-	Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M
-	Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M
-	Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M
-	...
-
-	The "Ignoring ..." messages can be suppressed by not using -verbose.
-
-	Note that as with "disable probes", running simply "maint ignore-probes"
-	ignores all probes.
-
-	The ignore-probes filter can be reset by using:
-	...
-	(gdb) maint ignore-probes -reset
-	ignore-probes filter has been reset
-	...
-
-	For now, the command is only supported for SystemTap probes.
-
-	PR cli/27159
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27159
-
-2022-12-31  Mark Harmstone  <mark@harmstone.com>
-
-	ld/testsuite: Don't add index to sizes in pdb.exp
-
-	ld: Handle LF_VFTABLE types in PDBs
-
-2022-12-31  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Handle extended-length data structures in PDB types
-	A few fixes to minor issues I've discovered in my PDB patches.
-
-	* If sizes or offsets are greater than 0x8000, they get encoded as
-	extended values in the same way as for enum values - e.g. a LF_ULONG
-	.short followed by a .long.
-
-	* I've managed to coax MSVC to produce another type, LF_VFTABLE, which
-	is seen when dealing with COM. I don't think LLVM emits this. Note that
-	we can't just implement everything in Microsoft's header files, as most
-	of it is obsolete.
-
-	* Fixes a stupid bug in the test program, where I was adding an index to
-	a size. The index was hard-coded to 0, so this didn't cause any actual
-	issues.
-
-2022-12-31  Nick Clifton  <nickc@redhat.com>
-
-	Updated Romanian translation for the binutils sub-directory
-
-2022-12-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/python] Fix gdb.python/py-finish-breakpoint2.exp for -m32
-	[ Partial resubmission of an earlier submission by Andrew (
-	https://sourceware.org/pipermail/gdb-patches/2012-September/096347.html ), so
-	listing him as co-author. ]
-
-	With x86_64-linux and target board unix/-m32, we have:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	Exception #10^M
-	^M
-	Breakpoint 3, throw_exception_1 (e=10) at py-finish-breakpoint2.cc:23^M
-	23        throw new int (e);^M
-	(gdb) FAIL: gdb.python/py-finish-breakpoint2.exp: \
-	  check FinishBreakpoint in catch()
-	...
-
-	The following scenario happens:
-	- set breakpoint in throw_exception_1, a function that throws an exception
-	- continue
-	- hit breakpoint, with call stack main.c:38 -> throw_exception_1
-	- set a finish breakpoint
-	- continue
-	- hit the breakpoint again, with call stack main.c:48 -> throw_exception
-	  -> throw_exception_1
-
-	Due to the exception, the function call did not properly terminate, and the
-	finish breakpoint didn't trigger.  This is expected behaviour.
-
-	However, the intention is that gdb detects this situation at the next stop
-	and calls the out_of_scope callback, which would result here in this test-case
-	in a rather confusing "exception did not finish" message.  So the problem is
-	that this message doesn't show up, in other words, the out_of_scope callback
-	is not called.
-
-	[ Note that the fact that the situation is detected only at the next stop
-	(wherever that happens to be) could be improved upon, and the earlier
-	submission did that by setting a longjmp breakpoint.  But I'm considering this
-	problem out-of-scope for this patch. ]
-
-	Note that the message does show up later, at thread exit:
-	...
-	[Inferior 1 (process 20046) exited with code 0236]^M
-	exception did not finish ...^M
-	...
-
-	The decision on whether to call the out_of_scope call back is taken in
-	bpfinishpy_detect_out_scope_cb, and the interesting bit is here:
-	...
-	             if (b->pspace == current_inferior ()->pspace
-	                 && (!target_has_registers ()
-	                     || frame_find_by_id (b->frame_id) == NULL))
-	               bpfinishpy_out_of_scope (finish_bp);
-	...
-
-	In the case of the thread exit, the callback triggers because
-	target_has_registers () == 0.
-
-	So why doesn't the callback trigger in the case of the breakpoint?
-
-	Well, the b->frame_id is the frame_id of the frame of main (the frame
-	in which the finish breakpoint is supposed to trigger), so AFAIU
-	frame_find_by_id (b->frame_id) == NULL will only be true once we've
-	left main, at which point I guess we don't stop till thread exit.
-
-	Fix this by saving the frame in which the finish breakpoint was created, and
-	using frame_find_by_id () == NULL on that frame instead, such that we have:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	Exception #10^M
-	^M
-	Breakpoint 3, throw_exception_1 (e=10) at py-finish-breakpoint2.cc:23^M
-	23        throw new int (e);^M
-	exception did not finish ...^M
-	(gdb) FAIL: gdb.python/py-finish-breakpoint2.exp: \
-	  check FinishBreakpoint in catch()
-	...
-
-	Still, the test-case is failing because it's setup to match the behaviour that
-	we get on x86_64-linux with target board unix/-m64:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	Exception #10^M
-	stopped at ExceptionFinishBreakpoint^M
-	(gdb) PASS: gdb.python/py-finish-breakpoint2.exp: \
-	  check FinishBreakpoint in catch()
-	...
-
-	So what happens here?  Again, due to the exception, the function call did not
-	properly terminate, but the finish breakpoint still triggers.  This is somewhat
-	unexpected.  This happens because it just so happens to be that the frame
-	return address at which the breakpoint is set, is also the first instruction
-	after the exception has been handled.  This is a know problem, filed as
-	PR29909, so KFAIL it, and modify the test-case to expect the out_of_scope
-	callback.
-
-	Also add a breakpoint after setting the finish breakpoint but before throwing
-	the exception, to check that we don't call the out_of_scope callback too early.
-
-	Tested on x86_64-linux, with target boards unix/-m32.
-
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-	PR python/27247
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27247
-
-2022-12-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/print-symbol-loading.exp on ubuntu 22.04.1
-	On ubuntu 22.04.1 x86_64, I run into:
-	...
-	(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib off: \
-	  set print symbol-loading off
-	sharedlibrary .*^M
-	Symbols already loaded for /lib/x86_64-linux-gnu/libc.so.6^M
-	Symbols already loaded for /lib/x86_64-linux-gnu/libpthread.so.0^M
-	(gdb) FAIL: gdb.base/print-symbol-loading.exp: shlib off: load shared-lib
-	...
-
-	The test-case expects the libc.so line, but not the libpthread.so line.
-
-	However, we have:
-	...
-	$ ldd /lib/x86_64-linux-gnu/libc.so.6
-		linux-vdso.so.1 (0x00007ffd7f7e7000)
-		libgtk3-nocsd.so.0 => /lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (0x00007f4468c00000)
-		/lib64/ld-linux-x86-64.so.2 (0x00007f4469193000)
-		libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4468f3e000)
-		libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4468f39000)
-	...
-	so it's not unexpected that libpthread.so is loaded if libc.so is loaded.
-
-	Fix this by accepting the libpthread.so line.
-
-	Tested on x86_64-linux.
-
-	PR testsuite/29919
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29919
-
-2022-12-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Replace deprecated pthread_yield in gdb.threads/watchpoint-fork.exp
-	On Ubuntu 22.04.1 x86_64, with glibc 2.35 I run into:
-	...
-	watchpoint-fork-mt.c: In function 'start':^M
-	watchpoint-fork-mt.c:67:7: warning: 'pthread_yield' is deprecated: \
-	  pthread_yield is deprecated, use sched_yield instead \
-	  [-Wdeprecated-declarations]^M
-	   67 |       i = pthread_yield ();^M
-	      |       ^^M
-	...
-
-	Fix this as suggested, by using sched_yield instead.
-
-	Tested on x86_64-linux.
-
-2022-12-31  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/corefile.exp with glibc 2.35
-	On Ubuntu 22.04.1 x86_64 (with glibc 2.35), I run into:
-	...
-	(gdb) PASS: gdb.base/corefile.exp: $_exitcode is void
-	bt^M
-	 #0  __pthread_kill_implementation (...) at ./nptl/pthread_kill.c:44^M
-	 #1  __pthread_kill_internal (...) at ./nptl/pthread_kill.c:78^M
-	 #2  __GI___pthread_kill (...) at ./nptl/pthread_kill.c:89^M
-	 #3  0x00007f4985e1a476 in __GI_raise (...) at ../sysdeps/posix/raise.c:26^M
-	 #4  0x00007f4985e007f3 in __GI_abort () at ./stdlib/abort.c:79^M
-	 #5  0x0000556b4ea4b504 in func2 () at gdb.base/coremaker.c:153^M
-	 #6  0x0000556b4ea4b516 in func1 () at gdb.base/coremaker.c:159^M
-	 #7  0x0000556b4ea4b578 in main (...) at gdb.base/coremaker.c:171^M
-	(gdb) PASS: gdb.base/corefile.exp: backtrace
-	up^M
-	 #1  __pthread_kill_internal (...) at ./nptl/pthread_kill.c:78^M
-	 78      in ./nptl/pthread_kill.c^M
-	(gdb) FAIL: gdb.base/corefile.exp: up
-	...
-
-	The problem is that the regexp used here:
-	...
-	gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up"
-	...
-	does not fit the __pthread_kill_internal line which lacks the instruction
-	address due to inlining.
-
-	Fix this by making the regexp less strict.
-
-	Tested on x86_64-linux.
-
-2022-12-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/dlopen-libpthread.exp for upstream glibc
-	On ubuntu 22.04.1 x86_64, I run into:
-	...
-	(gdb) info probes all rtld rtld_map_complete^M
-	No probes matched.^M
-	(gdb) XFAIL: gdb.threads/dlopen-libpthread.exp: info probes all rtld rtld_map_complete
-	UNTESTED: gdb.threads/dlopen-libpthread.exp: no matching probes
-	...
-	This has been filed as PR testsuite/17016.
-
-	The problem is that the name rtld_map_complete is used, which was only
-	available in Fedora 17, and upstream the name map_complete was used.
-
-	In the email thread discussing a proposed patch (
-	https://sourceware.org/legacy-ml/gdb-patches/2014-09/msg00712.html ) it was
-	suggested to make the test-case handle both names.
-
-	So, handle both names: map_complete and rtld_map_complete.
-
-	This exposes the following FAIL:
-	...
-	(gdb) info sharedlibrary^M
-	From To    Syms Read Shared Object Library^M
-	$hex $hex  Yes       /lib64/ld-linux-x86-64.so.2^M
-	$hex $hex  Yes (*)   /lib/x86_64-linux-gnu/libgtk3-nocsd.so.0^M
-	$hex $hex  Yes       /lib/x86_64-linux-gnu/libc.so.6^M
-	$hex $hex  Yes       /lib/x86_64-linux-gnu/libdl.so.2^M
-	$hex $hex  Yes       /lib/x86_64-linux-gnu/libpthread.so.0^M
-	(*): Shared library is missing debugging information.^M
-	(gdb) FAIL: gdb.threads/dlopen-libpthread.exp: libpthread.so not found
-	...
-	due to using a glibc (v2.35) that has libpthread integrated into libc.
-
-	Fix this by changing the FAIL into UNSUPPORTED.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17016
-
-2022-12-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.reverse/step-indirect-call-thunk.exp with -fcf-protection
-	On Ubuntu 22.04.1 x86_64, I run into:
-	...
-	gdb.reverse/step-indirect-call-thunk.c: In function 'inc':^M
-	gdb.reverse/step-indirect-call-thunk.c:22:1: error: '-mindirect-branch' and \
-	  '-fcf-protection' are not compatible^M
-	   22 | {                /* inc.1 */^M
-	      | ^^M
-	...
-
-	Fix this by forcing -fcf-protection=none, if supported.
-
-	Tested on x86_64-linux.
-
-2022-12-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/step-and-next-inline.exp with -fcf-protection
-	On Ubuntu 22.04.1 x86_64, I run into:
-	...
-	(gdb) PASS: gdb.cp/step-and-next-inline.exp: no_header: not in inline 1
-	next^M
-	51        if (t != NULL^M
-	(gdb) FAIL: gdb.cp/step-and-next-inline.exp: no_header: next step 1
-	...
-
-	This is due to -fcf-protection, which adds the endbr64 at the start of get_alias_set:
-	...
-	0000000000001180 <_Z13get_alias_setP4tree>:
-	    1180:       f3 0f 1e fa             endbr64
-	    1184:       48 85 ff                test   %rdi,%rdi
-	...
-	so the extra insn gets an is-stmt line number entry:
-	...
-	INDEX  LINE   ADDRESS            IS-STMT PROLOGUE-END
-	  ...
-	11     50     0x0000000000001180 Y
-	12     50     0x0000000000001180
-	13     51     0x0000000000001184 Y
-	14     54     0x0000000000001184
-	...
-	and when stepping into get_alias_set we step to line 50:
-	...
-	(gdb) PASS: gdb.cp/step-and-next-inline.exp: no_header: in main
-	step^M
-	get_alias_set (t=t@entry=0x555555558018 <xx>) at step-and-next-inline.cc:50^M
-	50      {^M
-	...
-
-	In contrast, with -fcf-protection=none, we get:
-	...
-	0000000000001170 <_Z13get_alias_setP4tree>:
-	    1170:       48 85 ff                test   %rdi,%rdi
-	...
-	and:
-	...
-	INDEX  LINE   ADDRESS            IS-STMT PROLOGUE-END
-	  ...
-	11     50     0x0000000000001170 Y
-	12     51     0x0000000000001170 Y
-	13     54     0x0000000000001170
-	...
-	so when stepping into get_alias_set we step to line 51:
-	...
-	(gdb) PASS: gdb.cp/step-and-next-inline.exp: no_header: in main
-	step^M
-	get_alias_set (t=t@entry=0x555555558018 <xx>) at step-and-next-inline.cc:51^M
-	51        if (t != NULL^M
-	...
-
-	Fix this by rewriting the gdb_test issuing the step command to check which
-	line the step lands on, and issuing an extra next if needed.
-
-	Tested on x86_64-linux, both with and without -fcf-protection=none.
-
-	PR testsuite/29920
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29920
-
-2022-12-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Make comp_unit_head.length private
-	Make comp_unit_head.length private, to enforce using accessor functions.
-
-	Replace accessor function get_length with get_length_with_initial and
-	get_length_without_initial, to make it explicit which variant we're using.
-
-	Tested on x86_64-linux.
-
-	PR symtab/29343
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29343
-
-2022-12-30  Alan Modra  <amodra@gmail.com>
-
-	PR29948, heap-buffer-overflow in display_debug_lines_decoded
-	This fixes a couple of places in display_debug_lines_decoded that were
-	off by one in checking DWARF5 .debug_line directory indices.  It also
-	displays the DWARF5 entry 0 for the program current directory rather
-	than "." as is done for pre-DWARF5.  I decided against displaying
-	DW_AT_comp_dir for pre-DWARF5 since I figure it is better for readelf
-	to minimally interpret debug info.
-
-	binutils/
-		PR 29948
-		* dwarf.c (display_debug_lines_decoded): Display the given
-		directory entry 0 for DWARF5.  Properly check directory index
-		against number of entries in the table.  Revert to using
-		unsigned int for n_directories and associated variables.
-		Correct warning messages.
-	gas/
-		* testsuite/gas/elf/dwarf-5-loc0.d: Update.
-
-2022-12-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Simplify riscv_csr_address logic on state enable extensions
-	This commit makes CSR class handling for 'Smstateen' and 'Ssstateen'
-	extensions simpler using fall-throughs (as used in CSR_CLASS_I{,_32}).
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (riscv_csr_address): Simplify the logic for
-		'Smstateen' and 'Ssstateen' extensions.
-
-2022-12-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-28  Tom Tromey  <tom@tromey.com>
-
-	Use $decimal in timestamp.exp
-	This patch fixes a review comment by Tom de Vries.  He pointed out
-	that the new timestamp.exp should use the $decimal convenience regexp.
-
-2022-12-28  Tom Tromey  <tom@tromey.com>
-
-	Fix "set debug timestamp"
-	PR cli/29945 points out that "set debug timestamp 1" stopped working
-	-- this is a regression due to commit b8043d27 ("Remove a ui-related
-	memory leak").
-
-	This patch fixes the bug and adds a regression test.
-
-	I think this should probably be backported to the gdb 13 branch.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29945
-
-2022-12-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-27  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86-64: Allocate input section memory if needed
-	When --no-keep-memory is used, the input section memory may not be cached.
-	Allocate input section memory for -z pack-relative-relocs if needed.
-
-	bfd/
-
-		PR ld/29939
-		* elfxx-x86.c (elf_x86_size_or_finish_relative_reloc): Allocate
-		input section memory if needed.
-
-	ld/
-
-		PR ld/29939
-		* testsuite/ld-elf/dt-relr-2i.d: New test.
-
-2022-12-27  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Fix T-Head Fmv vendor extension encoding
-	A recent change in the XTheadFmv spec fixed an encoding bug in the
-	document. This patch changes the code to follow this bugfix.
-
-	Spec patch can be found here:
-	  https://github.com/T-head-Semi/thead-extension-spec/pull/11
-
-2022-12-27  Tom Tromey  <tromey@adacore.com>
-
-	Handle SIGSEGV in gdb selftests
-	The gdb.gdb self-tests were timing out for me, which turned out to be
-	PR testsuite/29325.  Looking into it, the problem is that the version
-	of the Boehm GC that is used by Guile on my machine causes a SEGV
-	during stack probing.  This unexpected stop confuses the tests and
-	causes repeated timeouts.
-
-	This patch adapts the two failing tests.  This makes them work for me,
-	and reduces the running time of gdb.gdb from 20 minutes to about 11
-	seconds.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29325
-
-2022-12-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: clean up unused codegen logic
-	Now that all igen ports are in the top-level makefile, we don't need
-	this logic in any subdirs anymore, so clean it up.
-
-	sim: mips: hoist "multi" igen rules up to common builds
-	Since these are the last mips igen rules, we can clean up a number of
-	bits in the local Makefile.in.
-
-	sim: mips: hoist "m16" igen rules up to common builds
-
-	sim: mips: hoist "single" igen rules up to common builds
-
-	sim: mips: rename "igen" generation mode to "single"
-	The naming in here has grown organically and is confusing to follow.
-	Originally there was only one set of rules for generating code from
-	the igen sources, so calling it "tmp-igen" and such made sense.  But
-	when other multigen modes were added ("m16" & "multi") which also
-	used igen, it's not clear what's common igen and what's specific to
-	this generation  mode.  So rename the set of rules from "igen" to
-	"single" so it's easier to follow.
-
-	sim: mips: hoist itable igen rules up to common builds
-	Since this rule is pretty simple, hoist it up to the common build.
-
-2022-12-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: unify itable generation (a bit)
-	The m16 & multi targets generate itable once even when all the other
-	modules are generated multiple times.  The default igen target will
-	generate itable with everything else out of convenience.  This means
-	flags are passed which don't affect the generated itable there.
-
-	We can unify the itable generation by making sure the right -F/-M
-	filter variables are passed down.  Since there's already a dedicated
-	rule & variable in the multi build mode, generalize that and switch
-	the m16 & igen builds over too.
-
-	I spent a lot of time staring at this code, building for diff mips
-	targets, and exploring all the shell code paths.  I think this is
-	safe, but only time (and users) will really tell.
-
-2022-12-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: rename multi_flags to igen_itable_flags
-	This variable is only used to generate the itable files.  In preparation
-	for merging the itable logic among all ports, rename "multi_flags" to a
-	more appropriate "igen_itable_flags" variable.  There should be no real
-	chagnes here otherwise.
-
-	sim: mips: drop unused micromips igen logic
-	This code appears to be unused since it was first merged.  When
-	micromips was enabled, it was via the "MULTI" config, not the
-	"MICROMIPS" config, and the multi configs have sep vars.  Since
-	nothing sets SIM_MIPS_GEN=MICROMIPS in the config, all of this
-	should be unreachable, so punt it to simplify.  Further, the
-	SIM_MIPS_MICROMIPS16_FLAGS & SIM_MIPS_MICROMIPS_FLAGS settings
-	rely on sim_mips_micromips{,16}_{filter,machine} variables that
-	are never set in the configure script.
-
-2022-12-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-26  Tom Tromey  <tom@tromey.com>
-
-	Add initializers to comp_unit_head
-	PR symtab/29343 points out that it would be beneficial if
-	comp_unit_head had a constructor and used initializers.  This patch
-	implements this.  I'm unsure if this is sufficient to close the bug,
-	but at least it's a step.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29343
-
-2022-12-26  Alan Modra  <amodra@gmail.com>
-
-	bfd/dwarf2.c: allow use of DWARF5 directory entry 0
-	I think the test for table->files[file].dir being non-zero is wrong
-	for DWARF5 where index zero is allowed and is the current directory of
-	the compilation.  Most times this will be covered by the use of
-	table->comp_dir (from DW_AT_comp_dir) in concat_filename but the point
-	of putting the current dir in .debug_line was so the section could
-	stand alone without .debug_info.
-
-	Also, there is no need to check for table->dirs non-NULL, the
-	table->num_dirs test is sufficient.
-
-		* dwarf2.c (concat_filename): Correct and simplify tests of
-		directory index.
-
-2022-12-26  Flavio Cruz  <flaviocruz@gmail.com>
-
-	Add support for x86_64-*-gnu-* targets to build x86_64 gnumach/hurd
-
-2022-12-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-25  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: drop support for subdir distclean
-	All ports that need to clean things up at distclean time have moved
-	to the top-level build, so we can drop support for this hook.
-
-	sim: mips: move distclean settings to common build
-	This was missed when mips/configure was merged into the top-level.
-
-2022-12-25  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: write out SFrame FRE start address correctly
-	The following test was failing on ppc64 and s390x:
-	  "FAIL: encode-1: Encode buffer match"
-
-	The offending stub was how we memcpy the FRE start address to the buffer
-	(on-disk format).  When the host is big-endian, the address of the
-	source buffer for the memcpy needs to point to the uint8_t/uint16_t sized
-	value of the FRE start addr, not uint32_t sized value; we intend to copy
-	out only the fre_start_addr_sz number of bytes.
-
-	ChangeLog:
-
-		* libsframe/sframe.c (sframe_encoder_write_fre_start_addr): New
-		function.
-		(sframe_encoder_write_fre): Use it instead of memcpy.
-
-2022-12-25  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: smp: plumb igen flag down to all users
-	While mips has respected sim_igen_smp at configure time (which was
-	always empty since it defaulted smp to off), no other igen port did.
-	Move this to a makefile variable and plumb it through the common
-	IGEN_RUN variable instead so everyone gets it by default.  We also
-	clean up some redundant -N0 setting with multirun mips.
-
-	sim: smp: make option available again
-	At some point we want this to work, but it's not easy to test if
-	the configure option isn't available.  Restore it, but keep the
-	default off.
-
-	sim: cpu: change default init to handle all cpus
-	All the runtimes were only initializing a single CPU.  When SMP is
-	enabled, things quickly crash as none of the other CPU structs are
-	setup.  Change the default from 0 to the compile time value.
-
-	sim: msp430: add basic SMP cpu init
-	There's no need to assert there's only 1 CPU when setting them all
-	up here is trivial.
-
-	sim: m32r: fix iterator typo when setting up cpus
-	This code loops over available cpus with "c", but then looks up the
-	cpu with "i".  Fix the typo so the code works correctly with smp.
-
-	sim: v850: fix SMP compile
-	The igen tool sets up the SD & CPU defines for code fragments to use,
-	but v850 was expecting "sd".  Change all the igen related code to use
-	SD so it actually compiles, and fix a few places to use "CPU" instead
-	of hardcoding cpu0.
-
-	sim: or1k: fix iterator typo when setting up cpus
-	This code loops over available cpus with "c", but then looks up the
-	cpu with "i".  Fix the typo so the code works correctly with smp.
-
-	sim: mn10300: fix SMP compile
-	The igen tool sets up the SD define for code fragments to use, but
-	mn10300 was expecting "sd".  Change all the igen related code to use
-	SD so it actually compiles.
-
-	sim: cpu: fix SMP msg prefix helper
-	This code fails to compile when SMP is enabled due to some obvious
-	errors.  Fix those and change the logic to avoid CPP to prevent any
-	future rot from creeping back in.
-
-	sim: mips: clean up a bit after mips/configure removal
-	Now that there is no subdir configure script, we can clean up some
-	logic that was spread between the files.
-
-	sim: mips: move igen settings to top-level configure
-	This is the last bit of logic that exists in the mips configure
-	script, so move it to the top-level configure to kill it off.
-	We still have to move the Makefile.in igen logic to local.mk,
-	but this is a required first step for that.
-
-	sim: mips: namespace igen configure vars
-	To prepare moving this logic to the top-level configure, the vars
-	need to be namespaced.  Do that here to make it easier to review.
-	Basically sim_xxx -> SIM_MIPS_XXX when a var is exported from the
-	configure script to the Makefile, and sim_xxx -> sim_mips_xxx when
-	the var is internal in the configure script.
-
-	sim: mips: add igen recursive dep
-	Make sure the igen tool exists before trying to compile the mips
-	subdir.  This happens to work when mips has a subconfigure, but
-	hits a race condition when that is removed.
-
-	sim: mips: drop unused ENGINE_ISSUE_POSTFIX_HOOK
-	Nothing defines this, and it isn't called in all the engine runtimes,
-	so drop it entirely to avoid confusion.
-
-	sim: igen: drop move-if-changed usage
-	Now that igen itself has this logic, drop these custom build rules
-	to greatly simplify.
-
-	sim: igen: support in-place updates ourself
-	Every file that igen outputs is then processed with the move-if-changed
-	shell script.  This creates a lot of boilerplate in the build and not an
-	insignificant amount of build-time overhead.  Move the simple "is the file
-	changed" logic into igen itself.
-
-	sim: igen: constify itable data structures
-	These are const data arrays of strings and numbers.  We don't want
-	or need them to be writable, so mark them all const.
-
-2022-12-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix buffer overflow in gdb.base/signed-builtin-types.exp
-	In commit:
-
-	  commit 9f50fe0835850645bd8ea9bb1efe1fe6c48dfb12
-	  Date:   Wed Dec 7 15:55:25 2022 +0000
-
-	      gdb/testsuite: new test for recent dwarf reader issue
-
-	A new test (gdb.base/signed-builtin-types.exp) was added that made use
-	of 'info sources' to figure out if the debug information for a
-	particular object file had been fully expanded or not.  Unfortunately
-	some lines of the 'info sources' output can be very long, this was
-	observed on some systems where the debug information for the
-	dynamic-linker was installed, in this case, the list of source files
-	associated with the dynamic linker was so long it would cause expect's
-	internal buffer to overflow.
-
-	This commit switches from using 'info sources' to 'maint print
-	objfile', the output from the latter command is more compact, but
-	also, can be restricted to a single named object file.
-
-	With this change in place I am no longer seeing buffer overflow errors
-	from expect when running gdb.base/signed-builtin-types.exp.
-
-2022-12-24  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: or1k: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to the existing or1k-sim.h.
-	Unfortunately, we can't yet drop the or1k-sim.h include from sim-main.h
-	as many of the generated CGEN files refer only to sim-main.h.  We'll
-	have to improve the CGEN interface before we can make more progress,
-	but this is at least a minor improvement.
-
-2022-12-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-23  Tom Tromey  <tom@tromey.com>
-
-	Use bool for dwarf2_has_info
-	This changes dwarf2_has_info to return bool.
-
-2022-12-23  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: testsuite: fix memory leaks in testcases
-	ChangeLog:
-
-		* libsframe/testsuite/libsframe.decode/be-flipping.c: Free
-		SFrame buffer.
-		* libsframe/testsuite/libsframe.decode/frecnt-1.c: Likewise.
-		* libsframe/testsuite/libsframe.decode/frecnt-2.c: Likewise.
-
-2022-12-23  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: fix a memory leak in sframe_decode
-	sframe_decode () needs to malloc a temporary buffer of the same size as
-	the input buffer (containing the SFrame section bytes) when endian
-	flipping is needed.  The decoder keeps the endian flipped contents in
-	this buffer for its usage.  This code is necessary when the target
-	endianneess is not the same as host endianness.
-
-	The malloc'd buffer needs to be kept track of, so that it can freed up in
-	sframe_decoder_free () later.
-
-	ChangeLog:
-
-		* libsframe/sframe-impl.h (struct sframe_decoder_ctx): Add new
-		member to keep track of the internally malloc'd buffer.
-		* libsframe/sframe.c (sframe_decoder_free): Free it up.
-		(sframe_decode): Update the reference to the buffer.
-
-2022-12-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: remove MPFR detection in gdb.base/float128.exp
-	I see this fail since commit 991180627851 ("Use toplevel configure for
-	GMP and MPFR for gdb"):
-
-	    FAIL: gdb.base/float128.exp: show configuration
-
-	The test fails to find --with-mpfr or --without-mpfr in the "show
-	configuration" output.  Since MPFR has become mandatory, we can just
-	remove that check and simplify the test to assume MPFR support is there.
-
-	Change-Id: I4f3458470db0029705b390dfefed3a66dfc0633a
-	Approved-By: Tom de Vries <tdevries@suse.de>
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: m32r: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to the existing m32r-sim.h.
-	Unfortunately, we can't yet drop the m32r-sim.h include from sim-main.h
-	as many of the generated CGEN files refer only to sim-main.h.  We'll
-	have to improve the CGEN interface before we can make more progress,
-	but this is at least a minor improvement.
-
-	sim: bfin: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so drop the bfin.h include and move the remaining
-	bfin-specific settings into it.
-
-	sim: m68hc11: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	sim: sh: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	sim: mcore: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	sim: h8300: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	sim: pru: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so drop the pru.h include and move the remaining
-	pru-specific settings into it.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mn10300: standardize the arch-specific settings a little
-	Rename mn10300_sim.h to mn10300-sim.h to match other ports, and move most
-	of the arch-specific content out of sim-main.h to it.  This isn't a big
-	win though as we still have to include the header in sim-main.h due to the
-	igen interface: it hardcodes including sim-main.h in its files.  So until
-	we can fix that, we have to keep bleeding these settings into the common
-	codes.
-
-	Also take the opportunity to purge a lot of unused headers from these.
-	The local modules should already include the right headers, so there's
-	no need to force everyone to pull them in.  A lot of this is a hold over
-	from the pre-igen days of this port.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: microblaze: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	sim: example-synacor: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	sim: moxie: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: riscv: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	We can also move the machs.h include out since the model logic was all
-	generalized from compile-time to runtime last year.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: v850: standardize the arch-specific settings a little
-	Rename v850_sim.h to v850-sim.h to match other ports, and move most
-	of the arch-specific content out of sim-main.h to it.  This isn't a
-	big win though as we still have to include the header in sim-main.h
-	due to the igen interface: it hardcodes including sim-main.h in its
-	files.  So until we can fix that, we have to keep bleeding these
-	settings into the common codes.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: msp430: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so drop the msp430-sim.h include and move it to
-	the few files that actually need it.
-
-	While we're here, drop redundant includes from sim-main.h:
-	* sim-config.h & sim-types.h included by sim-basics.h already
-	* sim-engine.h included by sim-base.h already
-	And move sim-options.h to the one file that needs it.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ft32: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so drop the ft32-sim.h include and move it to
-	the few files that actually need it.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: d10v: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so drop the d10v_sim.h include and move it to
-	the few files that actually need it.
-
-	Also rename the file to standardize it a bit better with other ports.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cr16: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so drop the cr16_sim.h include and move it to
-	the few files that actually need it.
-
-	Also rename the file to standardize it a bit better with other ports.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: arm: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	The BIT override would be better in the place where it's redefined, so
-	move it to armdefs.h instead.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: aarch64: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-	While we're here, drop redundant includes from sim-main.h:
-	* sim-types.h is included by sim-base.h already
-	* sim-base.h is included twice
-	* sim-io.h is included by sim-base.h already
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: avr: move arch-specific settings to internal header
-	There's no need for these settings to be in sim-main.h which is shared
-	with common/ sim code, so move it all out to a new header which only
-	this port will include.
-
-2022-12-23  Nick Clifton  <nickc@redhat.com>
-
-	Fix illegal memory access parsing corrupt DWARF information.
-		PR 29936
-		* dwarf2.c (concat_filename): Fix check for a directory index off
-		the end of the directory table.
-
-2022-12-23  Eli Zaretskii  <eliz@gnu.org>
-
-	Fix MinGW build using mingw.org's MinGW
-	This allows to build GDB even though the default value of
-	_WIN32_WINNT is lower than the one needed to expose some
-	new APIs used here, and leave the test for their actual
-	support to run time.
-	* gdb/nat/windows-nat.c (EXTENDED_STARTUPINFO_PRESENT): Define if
-	not defined.
-	(create_process_wrapper): Use 'gdb_lpproc_thread_attribute_list'
-	instead of 'PPROC_THREAD_ATTRIBUTE_LIST' (which might not be defined
-	at compile time).  This fixes compilation error using mingw.org's
-	MinGW.
-
-2022-12-23  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Write linker symbols in PDB
-
-	ld: Copy other symbols into PDB file
-
-	ld: Write globals stream in PDB
-
-	ld: Parse LF_UDT_SRC_LINE records when creating PDB file
-
-	ld: Write types into IPI stream of PDB
-
-	ld: Write types into TPI stream of PDB
-
-	ld: Write DEBUG_S_LINES entries in PDB file
-
-	ld: Fix segfault in populate_publics_stream
-
-	ld: Write DEBUG_S_FILECHKSMS entries in PDBs
-
-	ld: Generate PDB string table
-
-2022-12-23  Alan Modra  <amodra@gmail.com>
-
-	pdb build fixes
-	Enable compilation of ld/pdb.c just for x86, as is done for bfd/pdb.c.
-	This reduces the size of ld and is necessary with the following
-	patches that call a COFF-only bfd function from ld/pdb.c.  Without it
-	we'd break every non-COFF target build.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: lm32/m32r: drop redundant opcode/cgen.h include
-	The xxx-desc.h header file already includes this, and it's how the
-	other cgen ports are getting it, so drop it from these two.
-
-	sim: ppc: drop unused types from sim-main.h
-	The common sim headers should define these for us already, so there's
-	no need for the ppc header to set them up.
-
-	sim: cgen: move symcat.h include to where it's used
-	Move this out of the global sim-main.h and to the few files that
-	actually use functions from it.  Only the cgen ports were pulling
-	this, so this makes cgen & non-cgen behave more the same.
-
-	sim: cgen: move cgen-types.h include to cgen-defs.h
-	The cgen-types.h header sets up types that are needed by cgen-defs.h,
-	so move the include out of sim-main.h and to that header.  It might
-	be needed in other specific modules, but for now let's kick it out of
-	sim-main.h to make some progress.  Things still build with just this.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	Revert "sim: mn10300: drop unused sim-main.c"
-	This reverts commit 681a422b855e4b20086554b170dae051361f00c7.
-
-	I missed that this was included via common/sim-inline.c.  I thought
-	I had grepped the top of the tree, but I must have only done mn10300.
-
-	Add a comment to make it clear where/how this file is used.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mn10300: drop unused sim-main.c
-	Nothing compiles or references this, so punt it.
-
-	sim: endian: move bfd.h from header to source
-	The bfd APIs are used only by sim-n-endian.h which is only included by
-	sim-endian.c, so move the bfd.h include there and out of sim-endian.h
-	which is included by many other modules.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: move bfd.h include out of sim-main.h
-	Not all arches include this in sim-main.h, and the ones that do don't
-	actually use bfd defines in the sim-main.h header.  Prune it to make
-	sim-main.h simpler so we can kill it off entirely in the future.
-
-	We add the include to the files that utilize e.g. bfd_vma though.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mcore: replace custom "word" type with int32_t
-	This is a 32-bit architecture with 32-bit registers, so replace the
-	custom "word" long int typedef with an explicit int32_t.  This is
-	a correctness fix since long will be 64-bits on most 64-bit hosts.
-
-	sim: moxie: replace custom "word" type with int32_t
-	This is a 32-bit architecture with 32-bit registers, so replace the
-	custom "word" int typedef with an explicit int32_t.  Practically
-	speaking, this produces the same code, but it should hopefully make
-	it easier to merge common code in the future.
-
-	sim: cr16/d10v/mcore/moxie: clean up unused word & uword types
-	Nothing actually uses these, so punt them.  Some of the ports are
-	using local "word" types, but we'll clean those up in a follow up.
-
-	sim: mips: trim redundant igen settings
-	These variables are setting the same value as the defaults.  Trim
-	this redundant logic to make it easier to see the real differences
-	so we can try to keep unifying cases.
-
-	sim: mips: merge mips64* with existing multi-run build
-	Change the default (unhandled) mips64* targets to use the existing
-	mips64 multi-run build.  It already handles the formats, we just
-	have to list the mips8000 bfd for it.
-
-	sim: mips: merge mips64vr5000 with existing multi-run build
-	The existing mips64vr-* multi-run build already handles mips5000
-	targets, so reuse that for mips64vr5* targets too.  This moves
-	more logic from build-time to runtime so we can have a single
-	binary that supports many targets.
-
-2022-12-23  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Relax the order checking for the architecture string
-	* riscv-toolchain-conventions,
-	PR, https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/14
-	Issue, https://github.com/riscv-non-isa/riscv-toolchain-conventions/issues/11
-
-	* Refer to the commit afc41ffb,
-	RISC-V: Reorder the prefixed extensions which are out of order.
-
-	In the past we only allow to reorder the prefixed extensions.  But according
-	to the PR 14 in the riscv-toolchain-convention, we can also relax the order
-	checking to allow the whole extensions be written out of orders, including
-	the single standard extensions and the prefixed multi-letter extensions.
-	Just that we still need to follow the following rules as usual,
-
-	1. prefixed extensions need to be seperated with `_'.
-	2. prefixed extensions need complete <major>.<minor> version if set.
-
-	Please see the details in the march-ok-reorder gas testcase.
-
-	Passed the riscv-gnu-toolchain regressions.
-
-	bfd/
-	    * elfxx-riscv.c (enum riscv_prefix_ext_class): Changed RV_ISA_CLASS_UNKNOWN
-	    to RV_ISA_CLASS_SINGLE, since everything that does not belong to the
-	    multi-keyword will possible be a single extension for the current parser.
-	    (parse_config): Likewise.
-	    (riscv_get_prefix_class): Likewise.
-	    (riscv_compare_subsets): Likewise.
-	    (riscv_parse_std_ext): Removed, and merged with riscv_parse_prefixed_ext
-	    into riscv_parse_extensions.
-	    (riscv_parse_prefixed_ext): Likewise.
-	    (riscv_parse_subset): Only need to call riscv_parse_extensions to parse
-	    both single standard and prefixed extensions.
-	gas/
-	    * testsuite/gas/riscv/march-fail-order-std.d: Removed since the relaxed
-	    order checking.
-	    * testsuite/gas/riscv/march-fail-order-std.l: Likewise.
-	    * testsuite/gas/riscv/march-fail-order-x-std.d: Likewise.
-	    * testsuite/gas/riscv/march-fail-order-z-std.d: Likewise.
-	    * testsuite/gas/riscv/march-fail-order-zx-std.l: Likewise.
-	    * testsuite/gas/riscv/march-fail-unknown-std.l: Updated.
-	    * testsuite/gas/riscv/march-ok-reorder.d: New testcase.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: drop unused SIM_ADDR type [PR sim/7504]
-	Now that sim APIs either use 64-bit addresses all the time, or more
-	appropriate target-specific types, drop this now-unused 32-bit-only
-	address type.
-
-	Bug: https://sourceware.org/PR7504
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: switch from SIM_ADDR to address_word
-	The latter type matches the address size configured for this sim.
-
-	Also take the opportunity to simplify printf logic by leveraging
-	PRI* macros.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: v850: switch from SIM_ADDR to address_word
-	The latter type matches the address size configured for this sim.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: switch sim_{read,write} APIs to 64-bit all the time [PR sim/7504]
-	We've been using SIM_ADDR which has always been 32-bit.  This means
-	the upper 32-bit address range in 64-bit sims is inaccessible.  Use
-	64-bit addresses all the time since we want the APIs to be stable
-	regardless of the active arch backend (which can be 32 or 64-bit).
-
-	The length is also 64-bit because it's completely feasible to have
-	a program that is larger than 4 GiB in size/image/runtime.  Forcing
-	the caller to manually chunk those accesses up into 4 GiB at a time
-	doesn't seem useful to anyone.
-
-	Bug: https://sourceware.org/PR7504
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: use bfd_vma when reading start addr from bfd info
-	Since SIM_ADDR is always 32-bit, it might truncate the address with
-	64-bit ELFs.  Since we load that addr from the bfd, use the bfd_vma
-	type which matches the bfd_get_start_address API.
-
-	sim: m32r: include sim-hw.h for sim_hw_parse
-
-2022-12-23  Alan Modra  <amodra@gmail.com>
-
-	COFF build-id writes uninitialised data to file
-	1) The first write in write_build_id wrote rubbish past the struct
-	external_IMAGE_DEBUG_DIRECTORY, which was later overwritten with
-	correct data.  No user visible problem there, except that tools like
-	valgrind complain.
-	2) The size for the pdb name was incorrectly calculated.
-
-		* emultempl/pe.em (write_build_id): Write the debug directory,
-		not the entire section contents.
-		(setup_build_id): Add size for the base name of pdb_name, not
-		the full path.
-		* emultempl/pep.em: Likewise.
-		* testsuite/ld-pe/pdb2-section-contrib.d: Update.
-
-2022-12-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: merge mips64vr4300 with existing multi-run build
-	The existing mips64vr-* multi-run build already handles mips4300
-	targets, so reuse that for mips64vr43* targets too.  This moves
-	more logic from build-time to runtime so we can have a single
-	binary that supports many targets.
-
-2022-12-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-22  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe: doc: update documentation for pauth key in SFrame FDE
-	ChangeLog:
-
-		* libsframe/doc/sframe-spec.texi
-
-2022-12-22  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: sframe: testsuite: add testcase for .cfi_b_key_frame
-	This is actually a composite test that checks SFrame unwind information
-	generation for both the .cfi_negate_ra_state and .cfi_b_key_frame
-	directives on aarch64.
-
-	ChangeLog:
-
-		* testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.d:
-		New test.
-		* testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.s:
-		Likewise.
-		* testsuite/gas/cfi-sframe/cfi-sframe.exp: Run new test.
-
-2022-12-22  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	objdump/readelf: sframe: emit marker for SFrame FDE with B key
-	ChangeLog:
-
-		* libsframe/sframe-dump.c (is_sframe_abi_arch_aarch64): New
-		definition.
-		(dump_sframe_func_with_fres): Emit a string if B key is used.
-
-2022-12-22  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: sframe: add support for .cfi_b_key_frame
-	Gather the information from the DWARF FDE on whether frame's return
-	addresses are signed using the B key or A key.  Reflect the information in
-	the SFrame counterpart data structure, the SFrame FDE.
-
-	ChangeLog:
-
-		* gas/gen-sframe.c (get_dw_fde_pauth_b_key_p): New definition.
-		(sframe_v1_set_func_info): Add new argument for pauth_key.
-		(sframe_set_func_info): Likewise.
-		(output_sframe_funcdesc): Likewise.
-		* gas/gen-sframe.h (struct sframe_version_ops): Add new argument
-		to the function pointer declaration.
-		* gas/sframe-opt.c (sframe_convert_frag): Handle pauth_key.
-
-2022-12-22  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe.h: add support for .cfi_b_key_frame
-	ARM 8.3 provides five separate keys that can be used to authenticate
-	pointers. There are two key for executable (instruction) pointers. The
-	enum pointer_auth_key in gas/config/tc-aarch64.h currently holds two keys:
-	  enum pointer_auth_key {
-	    AARCH64_PAUTH_KEY_A,
-	    AARCH64_PAUTH_KEY_B
-	  };
-
-	Analogous to the above, in SFrame format V1, a bit is reserved in the SFrame
-	FDE to indicate which key is used for signing the frame's return addresses:
-	  - SFRAME_AARCH64_PAUTH_KEY_A has a value of 0
-	  - SFRAME_AARCH64_PAUTH_KEY_B has a value of 1
-
-	Note that the information in this bit will always be used along with the
-	mangled_ra_p bit, the latter indicates whether the return addresses are
-	mangled/contain PAC auth bits.
-
-	include/ChangeLog:
-
-		* sframe.h (SFRAME_AARCH64_PAUTH_KEY_A): New definition.
-		(SFRAME_AARCH64_PAUTH_KEY_B): Likewise.
-		(SFRAME_V1_FUNC_INFO): Adjust to accommodate pauth_key.
-		(SFRAME_V1_FUNC_PAUTH_KEY): New macro.
-		(SFRAME_V1_FUNC_INFO_UPDATE_PAUTH_KEY): Likewise.
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	gas: re-arrange listing output for .irp and alike
-	It is kind of odd to have the expansions of such constructs ahead of
-	their definition in listings with macro expansion enabled. Adjust this
-	by pulling ahead the output of the definition lines, taking care to
-	avoid producing a listing line for (non-existing) line 0 when the source
-	is stdin.
-
-	Note that with the code movement the conditional operator isn't
-	necessary anymore - list->line now match up.
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct/improve TSX controls
-	TSXLDTRK takes RTM as a prereq. Additionally introduce an umbrella "tsx"
-	extension option covering both RTM and HLE, paralleling the "abm" one we
-	already have.
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: add dependencies on SVME
-	SEV-ES is an extension to SVME. SNP in turn is an extension to SEV-ES,
-	and yet in turn RMPQUERY is a SNP extension.
-
-	Note that cpu_arch[] has no SNP entry, so CPU_ANY_SNP_FLAGS remains
-	unused (just like CPU_SNP_FLAGS already is).
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: add dependencies on VMX
-	Both EPT and VMFUNC are extensions to VMX.
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct XSAVE* dependencies
-	Like various other features AMX-TILE takes XSAVE as a prereq.
-
-	XSAVES, unconditionally using compacted format, in turn effectively
-	takes XSAVEC as a prereq (an SDM clarification to this effect is in the
-	works).
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct dependencies of a few AVX512 sub-features
-	Like AVX512-FP16, several other extensions require wider than 16-bit
-	mask registers. As a result they take AVX512BW as a prereq, not (just)
-	AVX512F. Which in turn points out wrong expectations in the noavx512-1
-	testcase.
-
-	x86: rework noavx512-1 testcase
-	So far the set of ".noavx512*" has been accumulating, which isn't ideal.
-	In particular this hides issues with dependencies between features.
-	Switch back to the default ISA before disabling a particular subset.
-	Furthermore limit redundancy by wrapping the repeated block of insns in
-	an .irp.
-
-	x86: add dependencies on AVX2
-	Like AVX-VNNI both VAES and VPCLMUL take AVX2 as a prereq, for operating
-	on up to 256-bit packed integer vectors.
-
-	x86: correct SSE dependencies
-	SSE itself takes FXSR as a prereq. Like AES, PCLMUL, and SHA both GFNI
-	and KL take SSE2 as a prereq, for operating on packed integers. And
-	while correcting KL also record it as a prereq to WIDEKL.
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct what gets disabled by certain ".arch .no*"
-	Features with prereqs as well as features with dependents cannot re-use
-	CPU_*_MASK for the 3rd argument of SUBARCH() - they need to use
-	CPU_ANY_*_MASK in order to avoid disabling too many (when there are
-	prereqs) and/or too few (when there are dependents) features.
-
-	Generally any CPU_ANY_*_MASK which exist should not remain unused.
-	Exceptions are
-	- FISTTP which has no corresponding entry in cpu_arch[],
-	- IAMCU which is a base architecture and hence uses ARCH(), not
-	  SUBARCH() (only extensions can be disabled, but unlike for Cpu*86 it
-	  would be a little more clumsy to suppress generating of the #define).
-
-2022-12-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: re-work ISA extension dependency handling
-	Getting both forward and reverse ISA dependencies right / consistent has
-	been a permanent source of mistakes. Reduce what needs specifying
-	manually to just the direct forward dependencies. Transitive forward
-	dependencies as well as reverse ones are now derived and hence cannot go
-	out of sync anymore (at least in the vast majority of cases; there are a
-	few special cases to still take care of manually). In the course of this
-	several CPU_ANY_*_FLAGS disappear, requiring adjustment to the
-	assembler's cpu_arch[].
-
-	Note that to retain the correct reverse dependency of AVX512F wrt
-	AVX512-VP2INTERSECT, the latter has the previously missing AVX512F
-	prereq added.
-
-	Note further that to avoid adding the following undue prereqs:
-	* ATHLON, K8, and AMDFAM10 gain CMOV and FXSR,
-	* IAMCU gains 387,
-	auxiliary table entries (including a colon-separated modifier) are
-	introduced in addition to the ones representing from converting the old
-	table.
-
-	To maintain forward-only dependencies between AVX (XOP) and SSE* (SSE4a)
-	(i.e. "nosse" not disabling AVX), reverse dependency tracking is
-	artifically suppressed.
-
-	As a side effect disabling of SSE or SSE2 will now also disable AES,
-	PCLMUL, and SHA (respective elements were missing from
-	CPU_ANY_SSE2_FLAGS).
-
-2022-12-22  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: match target on cpu settings
-	We don't need to enforce larger target settings when the only thing
-	the sim should care about is the CPU target.  So reduce most of the
-	target matches to only check the CPU.
-
-	sim: mips: move fpu bitsize defines to top-level configure
-	This drops support for the --enable-sim-float configure option,
-	but it's not clear anyone ever actually used that.  Eventually
-	we'll want this to be a runtime option anyways.
-
-	sim: mips: move bitsize defines to top-level configure
-	Since the msb value is always defined as the wordsize-1, stop
-	hardcoding that value directly, and use a CPP value instead.
-
-	sim: mips: move subtarget defines to top-level configure
-	We want to kill off mips/configure entirely.  Move this small part
-	out now to get started.
-
-	sim: mips: always resolve active bfd mach dynamically
-	Don't assume that the default bfd that we configured for is the one
-	that is always active when running a program.  We already have access
-	to the real runtime value, so use it directly.  This simplifies the
-	code quite a bit, and will make it easier to support multiple mach's
-	in a single binary.
-
-	sim: hw-config.h: move generation to top-level
-	In order to compile arch objects from the top-level, we need to
-	generate the hw-config.h header, so move that logic up to the top
-	level first.
-
-	sim: build: hoist lists of hw devices up
-	We need these in the top-level to generate libsim.a, but also in the
-	subdirs to generate hw-config.h.  Move it to the local.mk, and pass
-	it down when running recursive make.  This avoids duplication, and
-	makes it available to both.  We can simplify this once we move the
-	various steps up to the top-level too.
-
-	sim: build: hoist lists of common objects up
-	In order to create libsim.a in the common dir, we need the list of
-	objects for each target.  To avoid duplicating the list with the
-	recursive make in each port, pass it down as a variable.  This is
-	a temporary hack until the top-level creates libsim.a for ports.
-
-2022-12-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-21  Alan Modra  <amodra@gmail.com>
-
-	PR29925, Memory leak in find_abstract_instance
-	The testcase in the PR had a variable with both DW_AT_decl_file and
-	DW_AT_specification, where the DW_AT_specification also specified
-	DW_AT_decl_file.  This leads to a memory leak as the file name is
-	malloced and duplicates are not expected.
-
-	I've also changed find_abstract_instance to not use a temp for "name",
-	because that can result in a change in behaviour from the usual last
-	of duplicate attributes wins.
-
-		PR 29925
-		* dwarf2.c (find_abstract_instance): Delete "name" variable.
-		Free *filename_ptr before assigning new file name.
-		(scan_unit_for_symbols): Similarly free func->file and
-		var->file before assigning.
-
-2022-12-21  Andrew Pinski  <apinski@marvell.com>
-
-	Fix compiling of top.c
-	When I moved my last patch forward, somehow I missed removing
-	the #endif for the HAVE_LIBMPFR case.
-
-	Committed as obvious after a quick build.
-
-	gdb/ChangeLog:
-		* top.c: Remove the extra #endif which was missed.
-
-2022-12-21  Andrew Pinski  <apinski@marvell.com>
-
-	Use toplevel configure for GMP and MPFR for gdb
-	This patch uses the toplevel configure parts for GMP/MPFR for
-	gdb. The only thing is that gdb now requires MPFR for building.
-	Before it was a recommended but not required library.
-	Also this allows building of GMP and MPFR with the toplevel
-	directory just like how it is done for GCC.
-	We now error out in the toplevel configure of the version
-	of GMP and MPFR that is wrong.
-
-	OK after GDB 13 branches? Build gdb 3 ways:
-	with GMP and MPFR in the toplevel (static library used at that point for both)
-	With only MPFR in the toplevel (GMP distro library used and MPFR built from source)
-	With neither GMP and MPFR in the toplevel (distro libraries used)
-
-	Changes from v1:
-	* Updated gdb/README and gdb/doc/gdb.texinfo.
-	* Regenerated using unmodified autoconf-2.69
-
-	Thanks,
-	Andrew Pinski
-
-	ChangeLog:
-		* Makefile.def: Add configure-gdb dependencies
-		on all-gmp and all-mpfr.
-		* configure.ac: Split out MPC checking from MPFR.
-		Require GMP and MPFR if the gdb directory exist.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-
-	gdb/ChangeLog:
-
-		PR bug/28500
-		* configure.ac: Remove AC_LIB_HAVE_LINKFLAGS
-		for gmp and mpfr.
-		Use GMPLIBS and GMPINC which is provided by the
-		toplevel configure.
-		* Makefile.in (LIBGMP, LIBMPFR): Remove.
-		(GMPLIBS, GMPINC): Add definition.
-		(INTERNAL_CFLAGS_BASE): Add GMPINC.
-		(CLIBS): Exchange LIBMPFR and LIBGMP
-		for GMPLIBS.
-		* target-float.c: Make the code conditional on
-		HAVE_LIBMPFR unconditional.
-		* top.c: Remove code checking HAVE_LIBMPFR.
-		* configure: Regenerate.
-		* config.in: Regenerate.
-		* README: Update GMP/MPFR section of the config
-		options.
-		* doc/gdb.texinfo: Likewise.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28500
-
-2022-12-21  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/c++: validate 'using' directives based on the current line
-	When asking GDB to print a variable from an imported namespace, we only
-	want to see variables imported in lines that the inferior has already
-	gone through, as is being tested last in gdb.cp/nsusing.exp. However
-	with the proposed change to gdb.cp/nsusing.exp, we get the following
-	failures:
-
-	(gdb) PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker10 stop
-	print x
-	$9 = 911
-	(gdb) FAIL: gdb.cp/nsusing.exp: print x, before using statement
-	next
-	15        y += x;
-	(gdb) PASS: gdb.cp/nsusing.exp: using namespace M
-	print x
-	$10 = 911
-	(gdb) PASS: gdb.cp/nsusing.exp: print x, only using M
-
-	Showing that the feature wasn't functioning properly, it just so
-	happened that gcc ordered the namespaces in a convenient way.
-	This happens because GDB doesn't take into account the line where the
-	"using namespace" directive is written. So long as it shows up in the
-	current scope, we assume it is valid.
-
-	To fix this, add a new member to struct using_direct, that stores the
-	line where the directive was written, and a new function that informs if
-	the using directive is valid already.
-
-	Unfortunately, due to a GCC bug, the failure still shows up. Compilers
-	that set the declaration line of the using directive correctly (such as
-	Clang) do not show such a bug, so the test includes an XFAIL for gcc
-	code.
-
-	Finally, because the final test of gdb.cp/nsusing.exp has turned into
-	multiple that all would need XFAILs for older GCCs (<= 4.3), and that
-	GCC is very old, if it is detected, the test just exits early.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-12-21  Nick Clifton  <nickc@redhat.com>
-
-	Updated Romanian translation for the BFD sub-directory.
-
-	Fix an attempt to allocate an unreasonably large amount of memory when parsing a corrupt ELF file.
-		PR  29924
-		* objdump.c (load_specific_debug_section): Check for excessively
-		large sections.
-
-	Keep the .drectve section when performing a relocateable link.
-		PR 29900
-		* scripttempl/pe.sc: Keep the .drectve section when performing a
-		relocateable link.
-		* scripttempl/pep.sc: Likewise.
-
-2022-12-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: rename CheckRegSize to CheckOperandSize
-	While originally indeed used for register size checking only, the
-	attribute has been used for memory operand size checking as well already
-	for quite a while, with more such uses recently having been added.
-
-	gprofng/testsuite: restrict testing to native configurations
-	The binaries involved in testing gprofng are native ones, and hence a
-	cross build of binutils won't really test intended functionality. Since
-	this testing takes quite a bit of time (typically more than running all
-	of binutils, gas, and ld testsuites together), restrict the testing to
-	native configurations only.
-
-2022-12-21  Alan Modra  <amodra@gmail.com>
-
-	enable-non-contiguous-regions warnings
-	The warning about discarded sections in elf_link_input_bfd doesn't
-	belong there since the code is dealing with symbols.  Multiple symbols
-	in a discarded section will result in multiple identical warnings
-	about the section.  Move the warning to a new function in ldlang.c.
-
-	The patch also tidies the warning quoting of section and file names,
-	consistently using `%pA' and `%pB'.  I'm no stickler for one style of
-	section and file name quoting, but they ought to be consistent within
-	a warning, eg. see the first one fixed in ldlang.c, and when a warning
-	is emitted for multiple targets they all ought to use exactly the same
-	format string to reduce translation work.  elf64-ppc.c loses the
-	build_one_stub errors since we won't get there before hitting the
-	fatal errors in size_one_stub.
-
-	bfd/
-		* elflink.c (elf_link_input_bfd): Don't warn here about
-		discarded sections.
-		* elf32-arm.c (arm_build_one_stub): Use consistent style in
-		--enable-non-contiguous-regions error.
-		* elf32-csky.c (csky_build_one_stub): Likewise.
-		* elf32-hppa.c (hppa_build_one_stub): Likewise.
-		* elf32-m68hc11.c (m68hc11_elf_build_one_stub): Likewise.
-		* elf32-m68hc12.c (m68hc12_elf_build_one_stub): Likewise.
-		* elf32-metag.c (metag_build_one_stub): Likewise.
-		* elf32-nios2.c (nios2_build_one_stub): Likewise.
-		* elfnn-aarch64.c (aarch64_build_one_stub): Likewise.
-		* xcofflink.c (xcoff_build_one_stub): Likewise.
-		* elf64-ppc.c (ppc_size_one_stub): Likewise.
-		(ppc_build_one_stub): Delete dead code.
-	ld/
-		* ldlang.c (lang_add_section): Use consistent style in
-		--enable-non-contiguous-regions warnings.
-		(size_input_section): Likewise.
-		(warn_non_contiguous_discards): New function.
-		(lang_process): Call it.
-		* testsuite/ld-arm/non-contiguous-arm.d: Update.
-		* testsuite/ld-arm/non-contiguous-arm4.d: Update.
-		* testsuite/ld-arm/non-contiguous-arm7.d: Add
-		--enable-non-contiguous-regions-warnings.
-		* testsuite/ld-arm/non-contiguous-arm7.err: New.
-		* testsuite/ld-powerpc/non-contiguous-powerpc.d: Update.
-		* testsuite/ld-powerpc/non-contiguous-powerpc64.d: Update.
-
-2022-12-21  Alan Modra  <amodra@gmail.com>
-
-	PR29922, SHT_NOBITS section avoids section size sanity check
-		PR 29922
-		* dwarf2.c (find_debug_info): Ignore sections without
-		SEC_HAS_CONTENTS.
-
-2022-12-21  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: fully merge sim_cpu_base into sim_cpu
-	Now that all ports have migrated to the new framework, drop support
-	for the old sim_cpu_base layout.  There's a lot of noise here, so
-	it's been split into a dedicated commit.
-
-	sim: enable common sim_cpu usage everywhere
-	All ports should be migrated now.  Drop the SIM_HAVE_COMMON_SIM_CPU
-	knob and require it be used everywhere now.
-
-	sim: or1k: invert sim_cpu storage
-	The cpu.h change is in generated cgen code, but that has been sent
-	upstream too, so the next regen should include it automatically.
-
-	sim: m32r: invert sim_cpu storage
-	The cpu*.h changes are in generated cgen code, but that has been sent
-	upstream too, so the next regen should include it automatically.
-
-	sim: lm32: invert sim_cpu storage
-	The cpu.h change is in generated cgen code, but that has been sent
-	upstream too, so the next regen should include it automatically.
-
-	sim: iq2000: invert sim_cpu storage
-	The cpu.h change is in generated cgen code, but that has been sent
-	upstream too, so the next regen should include it automatically.
-
-	sim: frv: invert sim_cpu storage
-	The cpu.h change is in generated cgen code, but that has been sent
-	upstream too, so the next regen should include it automatically.
-
-	sim: cris: invert sim_cpu storage
-	The cpu*.h changes are in generated cgen code, but that has been sent
-	upstream too, so the next regen should include it automatically.
-
-	sim: bpf: invert sim_cpu storage
-	The cpu.h change is in generated cgen code, but that has been sent
-	upstream too, so the next regen should include it automatically.
-
-	sim: cgen: prep for inverting sim_cpu storage
-	Some common cgen code changes to allow cgen ports to invert their
-	sim_cpu storage one-by-one.
-
-	sim: riscv: invert sim_cpu storage
-
-	sim: pru: invert sim_cpu storage
-
-	sim: example-synacor: invert sim_cpu storage
-
-	sim: h8300: invert sim_cpu storage
-
-	sim: m68hc11: invert sim_cpu storage
-
-	sim: mips: invert sim_cpu storage
-
-	sim: v850: invert sim_cpu storage
-
-	sim: mcore: invert sim_cpu storage
-
-	sim: aarch64: invert sim_cpu storage
-
-	sim: microblaze: invert sim_cpu storage
-
-	sim: avr: invert sim_cpu storage
-
-	sim: moxie: invert sim_cpu storage
-
-	sim: msp430: invert sim_cpu storage
-
-	sim: ft32: invert sim_cpu storage
-
-	sim: bfin: invert sim_cpu storage
-
-2022-12-21  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sim_cpu: invert sim_cpu storage
-	Currently all ports have to declare sim_cpu themselves in their
-	sim-main.h and then embed the common sim_cpu_base in it.  This
-	dynamic makes it impossible to share common object code among
-	multiple ports because the core data structure is always different.
-
-	Let's invert this relationship: common code declares sim_cpu, and
-	the port uses the new arch_data field for its per-cpu state.
-
-	This is the first in a series of changes: it adds a define to select
-	between the old & new layouts, then converts all the ports that don't
-	need custom state over to the new layout.  This includes mn10300 that,
-	while it defines custom fields in its cpu struct, never uses them.
-
-2022-12-21  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: move register headers into sim/ namespace [PR sim/29869]
-	These headers define the register numbers for each port to implement
-	the sim_fetch_register & sim_store_register interfaces.  While gdb
-	uses these, the APIs are part of the sim, not gdb.  Move the headers
-	out of the gdb/ include namespace and into sim/ instead.
-
-	sim: ppc: drop old dgen.c generator
-	The spreg.[ch] files live in the source tree now and are created
-	with the dgen.py script, so we don't need this old tool anymore.
-
-2022-12-21  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: move spreg.[ch] files to the source tree
-	Simplify the build by moving the generation of these files from
-	build-time (via dgen.c that we have to compile & execute on the
-	build system) to maintainer/release mode (via spreg-gen.py that
-	we only ever execute when the spreg table actually changes).  It
-	speeds up the build process and makes it easier for us to reason
-	about & review changes to the code generator.
-
-	The tool is renamed from "dgen" because it's hardcoded to only
-	generated spreg files.  It isn't a generalized tool for creating
-	lookup tables.
-
-2022-12-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-20  Hannes Domani  <ssbssa@yahoo.de>
-
-	Fix install-strip target
-	The libtool patch broke install-strip of gdb:
-
-	/bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/share/gdb/python/gdb
-	transformed_name=`t='s,y,y,'; \
-	                  echo gdb | sed -e "$t"` ; \
-	        if test "x$transformed_name" = x; then \
-	          transformed_name=gdb ; \
-	        else \
-	          true ; \
-	        fi ; \
-	        /bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/bin ; \
-	        /bin/sh ./libtool --mode=install STRIPPROG='strip' /bin/sh /src/gdb/gdb.git/install-sh -c -s \
-	                gdb \
-	                /src/gdb/inst/bin/$transformed_name ; \
-	        /bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/include/gdb ; \
-	        /usr/bin/install -c -m 644 jit-reader.h /src/gdb/inst/include/gdb/jit-reader.h
-	libtool: install: `/src/gdb/inst/bin/gdb' is not a directory
-	libtool: install: Try `libtool --help --mode=install' for more information.
-
-	Since INSTALL_PROGRAM_ENV is no longer at the beginning of the command, the
-	gdb executable is not installed with install-strip.
-
-2022-12-20  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	bfd: Discard symbol regardless of warning flag
-	The discard of symbols should be performed whether the warning for
-	the discard is enabled or not.
-	Without this patch, ld would segfault in bfd_section_removed_from_list,
-	called in the if-statement right after this block, as the argument
-	isec->output_section can be NULL.
-
-	Co-Authored-By: Yvan ROUX <yvan.roux@foss.st.com>
-
-2022-12-20  Alan Modra  <amodra@gmail.com>
-
-	PR29915, bfdio.c does not compile with mingw.org's MinGW
-		PR 29915
-		* configure.ac: Add AC_CHECK_DECLS test ___lc_codepage_func.
-		* configure: Regenerate.
-		* config.in: Regenerate.
-		* bfdio.c (___lc_codepage_func): Move declaration to..
-		(_bfd_real_fopen): ..here, and use !HAVE_DECL____LC_CODEPAGE_FUNC.
-
-	Re: x86: remove i386-opc.c
-	Regen opcodes/po/POTFILES.in
-
-2022-12-20  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: change spreg switch table generation to compile-time
-	Simplify the generator by always outputting the switch tables, and
-	leave the choice of whether to use them to the compiler via a -D
-	flag.
-
-2022-12-20  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: dv-core: add hw_detach_address method [PR sim/25211]
-	The core device has an attach address method as the root of the tree
-	which calls out to the sim API.  But it doesn't have a corresponding
-	detach method which means we just crash if anything tries to detach
-	itself from the core.  In practice, the m68hc11 is the only model
-	that actually tries to detach itself on the fly, so no one noticed
-	earlier.
-
-	With this in place, we can delete the existing detach code from the
-	m68hc11 model since it defaults to "passthru" callback which will in
-	turn call the dv-core detach, and they have the same behavior -- call
-	the sim core API to detach from the address space.
-
-	Bug: https://sourceware.org/PR25211
-
-2022-12-20  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: PR29646 Various warnings
-	gprofng/ChangeLog
-	2022-12-19  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29646
-		* common/core_pcbe.c: Fix missingReturn warning.
-		* libcollector/iolib.c: Fix -Waddress warnings.
-		* src/Settings.cc: Likewise.
-		* src/checks.cc: Likewise.
-		* libcollector/linetrace.c: Likewise.
-		* libcollector/iotrace.c: Fix va_end_missing error.
-		* libcollector/libcol_util.c: Fix uninitvar warning.
-		* src/Command.cc: Fix arrayIndexOutOfBounds error.
-		* src/Function.cc: Fix uninitStructMember warning.
-		* src/ipc.cc: Fix -Wwrite-strings warnings.
-
-2022-12-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-19  Tom Tromey  <tromey@adacore.com>
-
-	Avoid compiler warning in dwarf-do-refresh
-	The Emacs 28 compiler warns about dwarf-mode.el:
-
-	Warning (comp): dwarf-mode.el:180:32: Warning: Unused lexical argument `ignore'
-
-	This is easily fixed by prepending "_" to the parameter's name.
-
-	binutils/ChangeLog
-	2022-12-19  Tom Tromey  <tromey@adacore.com>
-
-		* dwarf-mode.el (dwarf-do-refresh): Avoid compiler warning.
-
-2022-12-19  Tom Tromey  <tom@tromey.com>
-
-	Use bool in bpstat
-	This changes bpstat to use 'bool' rather than 'char', and updates the
-	uses.
-
-	Use bool constants for value_print_options
-	This changes the uses of value_print_options to use 'true' and 'false'
-	rather than integers.
-
-	Remove quick_symbol_functions::relocated
-	quick_symbol_functions::relocated is only needed for psymtabs, and
-	there it is only needed for Rust.  However, because we've switched the
-	DWARF reader away from psymtabs, this means there's no longer a need
-	for this method at all.
-
-2022-12-19  Tom Tromey  <tom@tromey.com>
-
-	Remove MI version 1
-	MI version 1 is long since obsolete.  Several years ago, I filed
-	PR mi/23170 for this.  I think it's finally time to remove this.
-	Any users of MI 1 can and should upgrade to a newer version.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23170
-
-2022-12-19  Tom Tromey  <tom@tromey.com>
-
-	Remove vestiges of MI version 0
-	I found a few vestiges of MI version 0 in the test suite.  This patch
-	removes them.
-
-2022-12-19  Alan Modra  <amodra@gmail.com>
-
-	Tidy PR29893 and PR29908 fix
-		PR 29893
-		PR 29908
-		* dwarf.c (display_debug_addr): Combine dwarf5 unit_length checks.
-		Delete dead code.
-
-2022-12-19  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb: fix command lookup in execute_command ()
-	Commit b5661ff2 ("gdb: fix possible use-after-free when
-	executing commands") used lookup_cmd_exact () to lookup
-	command again after its execution to avoid possible
-	use-after-free error.
-
-	However this change broke test gdb.base/define.exp which
-	defines a post-hook for subcommand ("target testsuite").
-	In this case,  lookup_cmd_exact () returned NULL because
-	there's no command 'testsuite' in top-level commands.
-
-	This commit fixes this case by looking up the command again
-	using the original command line via lookup_cmd ().
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-19  Nick Clifton  <nickc@redhat.com>
-
-	Fix potential illegal memory accesses when parsing corrupt DWARF data.
-		PR 29914
-		* dwarf.c (fetch_indexed_value): Fail if the section is not big
-		enough to contain a header size field.
-		(display_debug_addr): Fail if the computed address size is too big
-		or too small.
-
-	New Romainian translation for the GOLD subdirectory.
-
-2022-12-19  Jan Beulich  <jbeulich@suse.com>
-
-	gprofng/testsuite: skip Java test without JDK
-	There's no point in even trying the Java test when gprofng was built
-	without Java support, and when the building of the constituents of the
-	testcase also would fail. On such systems this converts the respective
-	tests from "unresolved" to "unsupported", making the overall testsuite
-	run no longer report failure just because of this.
-
-	gprofng/testsuite: eliminate bogus casts
-	Casting pointers to unsigned int is generally problematic and hence
-	compilers tend to warn about such. While here they're used only in
-	fprintf(), it still seems better to omit such casts, even if only to
-	avoid setting bad precedents.
-
-	gprofng/testsuite: correct line continuation in endcases.c
-	A backslash used to indicate line continuation (in a macro definition
-	here) is not supposed to be followed by blanks or other white space; the
-	end-of-line indicator is to follow immediately.
-
-	gprofng/testsuite: correct names for signal handling tests
-	The signal handling tests spend most of their time in the signal
-	handlers, and hence for profile output to match anything in program
-	output, the respective name fields need to hold the handler function
-	names. This converts both respective tests from "unresolved" to actually
-	succeeding.
-
-	gprofng/testsuite: adjust linking of synprog
-	In order for so_syn.so and so_syx.so to be able to access the main
-	program's "testtime" variable, that variable needs exposing in the
-	dynamic symbol table. Since this is a test program only, do it the brute
-	force way and simply expose all global symbols.
-
-	Arm: break gas dependency on libopcodes
-	gas doesn't use anything from libopcodes (anymore?) - suppress linking
-	in that library.
-
-	x86: omit Cpu prefixes from opcode table
-	These enumerators can be used in only one specific field, and hence the
-	Cpu prefix isn't needed ther for disambiguation / name space separation.
-
-2022-12-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-18  Alan Modra  <amodra@gmail.com>
-
-	Comment bfd_get_section_limit_octets and bfd_get_section_alloc_size
-		* bfd.c (bfd_get_section_limit_octets): Add comment.
-		(bfd_get_section_alloc_size): Likewise.
-		* libbfd.c (_bfd_generic_get_section_contents): Use
-		bfd_get_section_limit_octets.
-		* section.c (bfd_get_section_contents): Likewise.
-		* bfd-in2.h: Regenerate.
-
-2022-12-18  Alan Modra  <amodra@gmail.com>
-
-	ld bootstrap test in build dir with path containing symlinks
-	This allows the bootstrap test to run if you have a symlink somewhere
-	in the build path directory.  $ld depends on $base_dir which is set
-	via tcl [pwd], collapsing the symlink like /usr/bin/pwd, while $objdir
-	contains the symlink.
-
-		* testsuite/ld-bootstrap/bootstrap.exp: Normalize paths when
-		checking for ld build directory.
-
-2022-12-18  Joel Brobecker  <brobecker@adacore.com>
-
-	Update gdb/NEWS after GDB 13 branch creation.
-	This commit a new section for the next release branch, and renames
-	the section of the current branch, now that it has been cut.
-
-2022-12-18  Joel Brobecker  <brobecker@adacore.com>
-
-	Bump version to 14.0.50.DATE-git.
-	Now that the GDB 13 branch has been created,
-	this commit bumps the version number in gdb/version.in to
-	14.0.50.DATE-git
-
-	For the record, the GDB 13 branch was created
-	from commit 71c90666e601c511a5f495827ca9ba545e4cb463.
-
-	Also, as a result of the version bump, the following changes
-	have been made in gdb/testsuite:
-
-		* gdb.base/default.exp: Change $_gdb_major to 14.
-
-2022-12-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-17  Alan Modra  <amodra@gmail.com>
-
-	bfd_get_relocated_section_contents allow NULL data buffer
-	This patch removes the bfd_malloc in default_indirect_link_order and
-	bfd_simple_get_relocated_section_contents, pushing the allocation down
-	to bfd_get_relocated_section_contents.  The idea is to make use of the
-	allocation done with sanity checking in bfd_get_full_section_contents,
-	which is called by bfd_generic_get_relocated_section_contents.
-
-	Doing this exposed a bug in bfd_get_full_section_contents.  With
-	relaxation it is possible that an input section rawsize is different
-	to the section size.  In that case we want to use the larger of
-	rawsize (the on-disk size for input sections) and size.
-
-		* reloc.c (bfd_generic_get_relocated_section_contents),
-		* reloc16.c (bfd_coff_reloc16_get_relocated_section_contents),
-		* coff-alpha.c (alpha_ecoff_get_relocated_section_contents),
-		* coff-sh.c (sh_coff_get_relocated_section_contents),
-		* elf-m10200.c (mn10200_elf_get_relocated_section_contents),
-		* elf-m10300.c (mn10300_elf_get_relocated_section_contents),
-		* elf32-avr.c (elf32_avr_get_relocated_section_contents),
-		* elf32-cr16.c (elf32_cr16_get_relocated_section_contents),
-		* elf32-crx.c (elf32_crx_get_relocated_section_contents),
-		* elf32-h8300.c (elf32_h8_get_relocated_section_contents),
-		* elf32-nds32.c (nds32_elf_get_relocated_section_contents),
-		* elf32-sh.c (sh_elf_get_relocated_section_contents),
-		* elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents):
-		Handle NULL data buffer.
-		* bfd.c (bfd_get_section_alloc_size): New function.
-		* bfd-in2.h: Regenerate.
-		* compress.c (bfd_get_full_section_contents): Correct section
-		malloc size.
-		* linker.c (default_indirect_link_order): Don't malloc memory
-		here before calling bfd_get_relocated_section_contents.
-		* simple.c (bfd_simple_get_relocated_section_contents): Likewise.
-
-2022-12-17  Alan Modra  <amodra@gmail.com>
-
-	asan: elf.c:12621:18: applying zero offset to null pointer
-	That's this line in elf_parse_notes:
-	  while (p < buf + size)
-
-		* elf.c (_bfd_elf_make_section_from_shdr): Don't call
-		elf_parse_notes when sh_size is zero.
-
-2022-12-17  Alan Modra  <amodra@gmail.com>
-
-	Re: The problem with warning in elf_object_p
-	Commit 5aa0f10c424e added a per_xvec_warn array to provide support for
-	warnings from elf_object_p (and a later patch for warnings from
-	pe_bfd_object_p) to be cached and then only printed if the target
-	matches.  It was quite limited in the style of message supported, only
-	one message could be printed, and didn't really meet the stated aim of
-	only warning when a target matches:  There are many other errors and
-	warnings that can be emitted by functions called from elf_object_p.
-
-	So this patch extends the error handler functions to support printing
-	to a string buffer, extends per_xvec_warn to support multiple errors/
-	warnings, and hooks this all into bfd_check_format_matches.  If
-	bfd_check_format_matches succeeds then any errors/warnings are printed
-	for the matching target.  If bfd_check_format_matches fails either due
-	to no match or to multiple matches and only one target vector produced
-	errors, then those errors are printed.
-
-		* bfd.c (MAX_ARGS): Define, use throughout.
-		(print_func): New typedef.
-		(_bfd_doprnt): Add new print param.  Replace calls to fprintf
-		with print.
-		(PRINT_TYPE): Similarly.
-		(error_handler_fprintf): Renamed from error_handler_internal.
-		Use _bfd_get_error_program_name.  Add fprintf arg.  Move code
-		setting up args..
-		(_bfd_doprnt_scan): ..to here.  Add ap param.
-		(struct buf_stream): New.
-		(err_sprintf): New function.
-		(error_handler_bfd): New static variable.
-		(error_handler_sprintf): New function.
-		(_bfd_set_error_handler_caching): New function.
-		(_bfd_get_error_program_name): New function.
-		* elfcode.h (elf_swap_shdr_in): Use _bfd_error_handler in
-		warning messages.
-		(elf_object_p): Likewise.
-		* format.c (print_warnmsg): New function.
-		(clear_warnmsg): Rewrite.
-		(null_error_handler): New function.
-		(bfd_check_format_matches): Ignore warnings from recursive calls
-		checking first element of an archive.  Use caching error handler
-		otherwise.  Print warnings on successful match, or when only one
-		target has emitted warnings/errors.
-		* peicode.h (pe_bfd_object_p): Use _bfd_error_handler in
-		warning messages.
-		* targets.c (per_xvec_warn): Change type of array elements.
-		(struct per_xvec_message): New.
-		(_bfd_per_xvec_warn): Rewrite.
-		* Makefile.am (LIBBFD_H_FILES): Add bfd.c.
-		* Makefile.in: Regenerate.
-		* bfd-in2.h: Regenerate.
-		* libbfd.h: Regenerate.
-
-2022-12-17  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe: doc: update spec for the mangled-RA bit in FRE
-	ChangeLog:
-
-		* libsframe/doc/sframe-spec.texi
-
-2022-12-17  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: sframe: testsuite: add testcase for .cfi_negate_ra_state
-	Add a new test to check that .cfi_negate_ra_state on aarch64 is handled
-	well (a non-empty SFrame section with valid SFrame FREs is generated).
-
-	ChangeLog:
-
-		* testsuite/gas/cfi-sframe/cfi-sframe-aarch64-2.d: New test.
-		* testsuite/gas/cfi-sframe/cfi-sframe-aarch64-2.s: Likewise.
-		* testsuite/gas/cfi-sframe/cfi-sframe.exp: Adjust the list
-		accordingly.
-
-2022-12-17  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	objdump/readelf: sframe: emit marker for FREs with mangled RA
-	In the textual dump of the SFrame section, when an SFrame FRE recovers a
-	mangled RA, use string "[s]" in the output to indicate that the return
-	address is a signed (mangled) one.
-
-	ChangeLog:
-
-	        * libsframe/sframe-dump.c (dump_sframe_func_with_fres): Postfix
-		with "[s]" if RA is signed with authorization code.
-
-2022-12-17  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: provide new access API for mangled RA bit
-	include/ChangeLog:
-
-		* sframe-api.h (sframe_fre_get_ra_mangled_p): New declaration.
-
-	ChangeLog:
-
-		* libsframe/sframe.c (sframe_get_fre_ra_mangled_p): New
-		definition.
-		(sframe_fre_get_ra_mangled_p): New static function.
-
-2022-12-17  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: sframe: add support for .cfi_negate_ra_state
-	DW_CFA_AARCH64_negate_ra_state in aarch64 is multiplexed with
-	DW_CFA_GNU_window_save in the DWARF format.
-
-	Remove the common-empty-4 testcase because the generated SFrame section
-	will not be be empty anymore.  A relevant test will be added in a later
-	commit.
-
-	ChangeLog:
-
-		* gas/gen-sframe.c (sframe_v1_set_fre_info): Add new argument
-		for mangled_ra_p.
-		(sframe_set_fre_info): Likewise.
-		(output_sframe_row_entry): Handle mangled_ra_p.
-		(sframe_row_entry_new): Reset mangled_ra_p.
-		(sframe_row_entry_initialize): Initialize mangled_ra_p.
-		(sframe_xlate_do_gnu_window_save): New definition.
-		(sframe_do_cfi_insn): Handle DW_CFA_GNU_window_save.
-		* gas/gen-sframe.h (struct sframe_row_entry): New member.
-		(struct sframe_version_ops): Add a new argument for
-		mangled_ra_p.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe.exp: Remove test.
-		* gas/testsuite/gas/cfi-sframe/common-empty-4.d: Removed.
-		* gas/testsuite/gas/cfi-sframe/common-empty-4.s: Removed.
-
-2022-12-17  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe.h: add support for .cfi_negate_ra_state
-	Use the last remaining bit in the 'SFrame FRE info' word to store whether
-	the RA is signed/unsigned with PAC authorization code: this bit is named
-	as the "mangled RA" bit.  This bit is still unused for x86-64.
-
-	The behaviour of the mangled-RA info bit in SFrame format closely
-	follows the behaviour of DW_CFA_AARCH64_negate_ra_state in DWARF.  During
-	unwinding, whenever an SFrame FRE with non-zero "mangled RA" bit is
-	encountered, it means the upper bits of the return address contain Pointer
-	Authentication code.  The unwinder, hence, must use appropriate means to
-	restore LR correctly in such cases.
-
-	include/ChangeLog:
-
-		* sframe.h (SFRAME_V1_FRE_INFO_UPDATE_MANGLED_RA_P): New macro.
-		(SFRAME_V1_FRE_MANGLED_RA_P): Likewise.
-
-2022-12-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-16  Pedro Alves  <pedro@palves.net>
-
-	Delay checking whether /proc/pid/mem is writable (PR gdb/29907)
-	As of 1bcb0708f229 ("gdb/linux-nat: Check whether /proc/pid/mem is
-	writable"), GDB checks if /proc/pid/mem is writable.  This is done
-	early at GDB startup, in order to get a consistent warning, instead of
-	a warning that depends on whenever GDB writes to inferior memory.
-
-	PR gdb/29907 points out that some build systems (like QEMU's,
-	apparently) may call 'gdb --version' to check GDB's presence & its
-	version on the system, and that Gentoo's build process has sandboxing
-	which blocks the /proc/pid/mem access and thus GDB warns, which
-	results in build fails.
-
-	To help with that, this patch delays the /proc/pid/mem check until we
-	start or attach to an inferior.  Ends up potentially emiting a warning
-	close where we already emit other ptrace- and /proc- related warnings,
-	which just Feels Right.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29907
-	Change-Id: I5537653ecfbbe76a04ab035e40e59d09b4980763
-
-2022-12-16  Nick Clifton  <nickc@redhat.com>
-
-	Fix previous delta to allow for compilation on 32-bit systems
-
-2022-12-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix race in gdb.threads/detach-step-over.exp
-	Once in a while I run into:
-	...
-	FAIL: gdb.threads/detach-step-over.exp: \
-	  breakpoint-condition-evaluation=host: target-non-stop=off: non-stop=off: \
-	  displaced=off: iter 1: all threads running
-	...
-
-	In can easily reproduce this by doing:
-	...
-	     # Wait a bit, to give time for the threads to hit the
-	     # breakpoint.
-	-    sleep 1
-
-	     return true
-	...
-
-	Fix this by counting the running threads in a loop, effectively allowing 10
-	seconds (instead of 1) for the threads to start running, but only sleeping if
-	needed.
-
-	Reduces total execution time from 1m27s to 56s.
-
-	Tested on x86_64-linux.
-
-2022-12-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix crash when getting the value of a label symbol
-	When the source program contains a goto label, it turns out it's
-	actually pretty hard for a user to find out more about that label.
-	For example:
-
-	  (gdb) p some_label
-	  No symbol "some_label" in current context.
-	  (gdb) disassemble some_label
-	  No symbol "some_label" in current context.
-	  (gdb) x/10i some_label
-	  No symbol "some_label" in current context.
-	  (gdb) break some_label
-	  Breakpoint 2 at 0x401135: file /tmp/py-label-symbol-value.c, line 35.
-
-	In all cases, some_label is a goto label within the current frame.
-	Only placing a breakpoint on the label worked.
-
-	This all seems a little strange to me, it feels like asking about a
-	goto label would not be an unreasonable thing for a user to do.
-
-	This commit doesn't fix any of the above issues, I mention them just
-	to provide a little context for why the following issue has probably
-	not been seen before.
-
-	It turns out there is one way a user can access the symbol for a goto
-	label, through the Python API:
-
-	  python frame = gdb.selected_frame()
-	  python frame_pc = frame.pc()
-	  python block = gdb.current_progspace().block_for_pc(frame_pc)
-	  python symbol,_ = gdb.lookup_symbol('some_label', block, gdb.SYMBOL_LABEL_DOMAIN)
-	  python print(str(symbol.value()))
-	  ../../src/gdb/findvar.c:204: internal-error: store_typed_address: Assertion `type->is_pointer_or_reference ()' failed.
-
-	The problem is that label symbols are created using the
-	builtin_core_addr type, which is a pure integer type.
-
-	When GDB tries to fetch the value of a label symbol then we end up in
-	findvar.c, in the function language_defn::read_var_value, in the
-	LOC_LABEL case.  From here store_typed_address is called to store the
-	address of the label into a value object with builtin_core_addr type.
-
-	The problem is that store_typed_address requires that the destination
-	type be a pointer or reference, which the builtin_core_addr type is
-	not.
-
-	Now it's not clear what type a goto label address should have, but
-	GCC has an extension that allows users to take the address of a goto
-	label (using &&), in that case the result is of type 'void *'.
-
-	I propose that when we convert the CORE_ADDR value to a GDB value
-	object, we use builtin_func_ptr type instead of builtin_core_addr,
-	this means the result will be of type 'void (*) ()'.  The benefit of
-	this approach is that when gdbarch_address_to_pointer is called the
-	target type will be correctly identified as a pointer to code, which
-	should mean any architecture specific adjustments are done correctly.
-
-	We can then cast the new value to 'void *' type with a call to
-	value_cast_pointer, this should not change the values bit
-	representation, but will just update the type.
-
-	After this asking for the value of a label symbol works just fine:
-
-	  (gdb) python print(str(symbol.value()))
-	  0x401135 <main+35>
-
-	And the type is maybe what we'd expect:
-
-	  (gdb) python print(str(symbol.value().type))
-	  void *
-
-2022-12-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: convert linux-osdata.c from buffer to std::string
-	Replace the use of struct buffer in linux-osdata.c with std::string.
-	There is no change in the logic, so there should be no user-visible
-	change.
-
-	Change-Id: I27f53165d401650bbd0bebe8ed88221e25545b3f
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2022-12-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: add string_xml_appendf
-	Add a version of buffer_xml_printf (defined in gdbsupport/buffer.{c,h})
-	that appends to an std::string, rather than a struct buffer.  Call it
-	"string" rather than "buffer" since it operates on an std::string rather
-	than a buffer.  And call it "appendf" rather than "printf", since it
-	appends to and does not replace the string's content.  This mirrors
-	string_appendf.
-
-	Place the new version in gdbsupport/xml-utils.h.
-
-	The code is a direct copy of buffer_xml_printf.  The old version is
-	going to disappear at some point, which is why I didn't do any effort to
-	share code.
-
-	Change-Id: I30e030627ab4970fd0b9eba3b7e8cec78fa561ba
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2022-12-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: clean up some inefficient std::string usage
-	This commit:
-
-	  commit 53cf95c3389a3ecd97276d322e4a60fe3396a201
-	  Date:   Wed Dec 14 14:17:44 2022 +0000
-
-	      gdb: make more use of make_target_connection_string
-
-	Introduced a couple of inefficient uses of std::string, both of which
-	are fixed in this commit.
-
-	There should be no user visible changes after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-16  Nick Clifton  <nickc@redhat.com>
-
-	Fix a potential illegal memory access when parsing corrupt DWARF information.
-		PR 29908
-		* dwarf.c (display_debug_addr): Check for corrupt header lengths.
-
-2022-12-16  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/testsuite: add test for Python commands redefining itself
-	This commit adds a test that creates a Python command that redefines
-	itself during its execution. This is to test use-after-free in
-	execute_command ().
-
-	This test needs run with ASan enabled in order to fail when it
-	should.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-16  Luis Machado  <luis.machado@arm.com>
-
-	[aarch64] Fix removal of non-address bits for PAuth
-	PR gdb/28947
-
-	The address_significant gdbarch setting was introduced as a way to remove
-	non-address bits from pointers, and it is specified by a constant.  This
-	constant represents the number of address bits in a pointer.
-
-	Right now AArch64 is the only architecture that uses it, and 56 was a
-	correct option so far.
-
-	But if we are using Pointer Authentication (PAuth), we might use up to 2 bytes
-	from the address space to store the required information.  We could also have
-	cases where we're using both PAuth and MTE.
-
-	We could adjust the constant to 48 to cover those cases, but this doesn't
-	cover the case where GDB needs to sign-extend kernel addresses after removal
-	of the non-address bits.
-
-	This has worked so far because bit 55 is used to select between kernel-space
-	and user-space addresses.  But trying to clear a range of bits crossing the
-	bit 55 boundary requires the hook to be smarter.
-
-	The following patch renames the gdbarch hook from significant_addr_bit to
-	remove_non_address_bits and passes a pointer as opposed to the number of
-	bits.  The hook is now responsible for removing the required non-address bits
-	and sign-extending the address if needed.
-
-	While at it, make GDB and GDBServer share some more code for aarch64 and add a
-	new arch-specific testcase gdb.arch/aarch64-non-address-bits.exp.
-
-	Bug-url: https://sourceware.org/bugzilla/show_bug.cgi?id=28947
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-16  Jan Beulich  <jbeulich@suse.com>
-
-	gas: restore Dwarf info generation after macro diagnostic adjustments
-	While 6fdb723799e2 ("gas: re-work line number tracking for macros and
-	their expansions") was meant to leave generated Dwarf as is, it really
-	didn't (and the testcase intended to catch that wasn't covering the case
-	which broke). Its adjustment to buffer_and_nest() didn't go far enough,
-	leading to the "linefile" directive inserted at the top to also be
-	processed later in the PR gas/16908 workaround (which clearly isn't
-	intended - it's being put there for processing during macro expansion
-	only). That unnoticed flaw in turn led me to work around it by a
-	(suspicious to me already at the time) conditional in as_where().
-
-	x86: change representation of extension opcode
-	Having a "None" field in the vast majority of entries is needlessly
-	cluttering the overall table. Instead of this being a separate field,
-	use a representation matching that of Intel SDM and AMD PM for the main
-	use of the field: Append the value after a / as the separator.
-
-2022-12-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: change xml_escape_text_append's parameter from pointer to reference
-	The passed in string can't be nullptr, it makes more sense to pass in a
-	reference.
-
-	Change-Id: Idc8bd38abe1d6d9b44aa227d7856956848c233b3
-
-2022-12-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove static buffer in command_line_input
-	[I sent this earlier today, but I don't see it in the archives.
-	Resending it through a different computer / SMTP.]
-
-	The use of the static buffer in command_line_input is becoming
-	problematic, as explained here [1].  In short, with this patch [2] that
-	attempt to fix a post-hook bug, when running gdb.base/commands.exp, we
-	hit a case where we read a "define" command line from a script file
-	using command_command_line_input.  The command line is stored in
-	command_line_input's static buffer.  Inside the define command's
-	execution, we read the lines inside the define using command_line_input,
-	which overwrites the define command, in command_line_input's static
-	buffer.  After the execution of the define command, execute_command does
-	a command look up to see if a post-hook is registered.  For that, it
-	uses a now stale pointer that used to point to the define command, in
-	the static buffer, causing a use-after-free.  Note that the pointer in
-	execute_command points to the dynamically-allocated buffer help by the
-	static buffer in command_line_input, not to the static object itself,
-	hence why we see a use-after-free.
-
-	Fix that by removing the static buffer.  I initially changed
-	command_line_input and other related functions to return an std::string,
-	which is the obvious but naive solution.  The thing is that some callees
-	don't need to return an allocated string, so this this an unnecessary
-	pessimization.  I changed it to passing in a reference to an std::string
-	buffer, which the callee can use if it needs to return
-	dynamically-allocated content.  It fills the buffer and returns a
-	pointers to the C string inside.  The callees that don't need to return
-	dynamically-allocated content simply don't use it.
-
-	So, it started with modifying command_line_input as described above, all
-	the other changes derive directly from that.
-
-	One slightly shady thing is in handle_line_of_input, where we now pass a
-	pointer to an std::string's internal buffer to readline's history_value
-	function, which takes a `char *`.  I'm pretty sure that this function
-	does not modify the input string, because I was able to change it (with
-	enough massaging) to take a `const char *`.
-
-	A subtle change is that we now clear a UI's line buffer using a
-	SCOPE_EXIT in command_line_handler, after executing the command.
-	This was previously done by this line in handle_line_of_input:
-
-	  /* We have a complete command line now.  Prepare for the next
-	     command, but leave ownership of memory to the buffer .  */
-	  cmd_line_buffer->used_size = 0;
-
-	I think the new way is clearer.
-
-	[1] https://inbox.sourceware.org/gdb-patches/becb8438-81ef-8ad8-cc42-fcbfaea8cddd@simark.ca/
-	[2] https://inbox.sourceware.org/gdb-patches/20221213112241.621889-1-jan.vrany@labware.com/
-
-	Change-Id: I8fc89b1c69870c7fc7ad9c1705724bd493596300
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2022-12-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe asan: avoid generating misaligned loads
-	There are two places where unaligned loads were seen on aarch64:
-	  - #1. access to the SFrame FRE stack offsets in the in-memory
-	    representation/abstraction provided by libsframe.
-	  - #2. access to the SFrame FRE start address in the on-disk representation
-	    of the frame row entry.
-
-	For #1, we can fix this by reordering the struct members of
-	sframe_frame_row_entry in libsframe/sframe-api.h.
-
-	For #2, we need to default to using memcpy instead, and copy out the bytes
-	to a location for output.
-
-	SFrame format is an unaligned on-disk format. As such, there are other blobs
-	of memory in the on-disk SFrame FRE that are on not on their natural
-	boundaries.  But that does not pose further problems yet, because the users
-	are provided access to the on-disk SFrame FRE data via libsframe's
-	sframe_frame_row_entry, the latter has its' struct members aligned on their
-	respective natural boundaries (and initialized using memcpy).
-
-	PR 29856 libsframe asan: load misaligned at sframe.c:516
-
-	ChangeLog:
-
-		PR libsframe/29856
-		* bfd/elf64-x86-64.c: Adjust as the struct members have been
-		reordered.
-		* libsframe/sframe.c (sframe_decode_fre_start_address): Use
-		memcpy to perform 16-bit/32-bit reads.
-		* libsframe/testsuite/libsframe.encode/encode-1.c: Adjust as the
-		struct members have been reordered.
-
-	include/ChangeLog:
-
-		PR libsframe/29856
-		* sframe-api.h: Reorder fre_offsets for natural alignment.
-
-2022-12-15  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: don't delete command files in gdb.base/commands.exp
-	Don't delete the runtime-generated command files.  This makes it easier
-	to reproduce tests by hand.
-
-	Change-Id: I4e53484eea216512f1c5d7dfcb5c464b36950946
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-12-15  Tom Tromey  <tromey@adacore.com>
-
-	Move streq and compare_cstrings to gdbsupport
-	It seems to me that streq and compare_cstrings belong near the other
-	string utility functions in common-utils.h; and furthermore that streq
-	ought to be inlined.  This patch makes this change.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-15  Tom Tromey  <tromey@adacore.com>
-
-	Remove subset_compare
-	I stumbled across subset_compare today, and after looking at the
-	callers I realized it could be removed and replaced with calls to
-	startswith.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: use gdb_assert not internal_error
-	Spotted a couple of places in findvar.c where we use:
-
-	  if ( ! CONDITION )
-	    internal_error ("...");
-
-	this commit changes these to be:
-
-	  gdb_assert ( CONDITION );
-
-	which I think is better.
-
-	Unless we happen to hit the internal_error calls (which was bad) there
-	should be no user visible changes after this commit.
-
-2022-12-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: some int to bool conversion in remote-sim.c
-	Some obvious int to bool conversion in remote-sim.c, there should be
-	no user visible changes after this commit.
-
-2022-12-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make more use of make_target_connection_string
-	I noticed that we have a function make_target_connection_string which
-	wraps all the logic for creating a string that describes a target
-	connection - but in some places we are not calling this function,
-	instead we duplicate the function's logic.
-
-	This commit cleans this up, and calls make_target_connection_string
-	where possible.
-
-	There should be no user visible changes after this commit.
-
-2022-12-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: int to bool conversion in tracefile.c
-	Some obvious int to bool conversion in tracefile.c.
-
-	Should be no user visible changes after this commit.
-
-2022-12-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/condbreak-multi-context.exp with gcc 4.8.5
-	With gcc 4.8.5, I run into:
-	...
-	Running gdb.base/condbreak-multi-context.exp ...
-	gdb compile failed, condbreak-multi-context.cc:21:11: warning: non-static \
-	  data member initializers only available with -std=c++11 or -std=gnu++11 \
-	  [enabled by default]
-	   int b = 20;
-	           ^
-	...
-
-	Fix this by making it a static const.
-
-	Tested on x86_64-linux, with gcc 4.8.5, 7.5.0 and clang 13.0.1.
-
-2022-12-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/maint: add core file name to 'maint info program-spaces' output
-	Each program space can have an associated core file.  Include this
-	information in the output of 'maint info program-spaces'.
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: ensure all targets are popped before an inferior is destructed
-	Now that the inferiors target_stack automatically manages target
-	reference counts, we might think that we don't need to unpush targets
-	when an inferior is deleted...
-
-	...unfortunately that is not the case.  The inferior::unpush function
-	can do some work depending on the type of target, so it is important
-	that we still pass through this function.
-
-	To ensure that this is the case, in this commit I've added an assert
-	to inferior::~inferior that ensures the inferior's target_stack is
-	empty (except for the ever present dummy_target).
-
-	I've then added a pop_all_targets call to delete_inferior, otherwise
-	the new assert will fire in, e.g. the gdb.python/py-inferior.exp test.
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove the pop_all_targets (and friends) global functions
-	This commit removes the global functions pop_all_targets,
-	pop_all_targets_above, and pop_all_targets_at_and_above, and makes
-	them methods on the inferior class.
-
-	As the pop_all_targets functions will unpush each target, which
-	decrements the targets reference count, it is possible that the target
-	might be closed.
-
-	Right now, closing a target, in some cases, depends on the current
-	inferior being set correctly, that is, to the inferior from which the
-	target was popped.
-
-	To facilitate this I have used switch_to_inferior_no_thread within the
-	new methods.  Previously it was the responsibility of the caller to
-	ensure that the correct inferior was selected.
-
-	In a couple of places (event-top.c and top.c) I have been able to
-	remove a previous switch_to_inferior_no_thread call.
-
-	In remote_unpush_target (remote.c) I have left the
-	switch_to_inferior_no_thread call as it is required for the
-	generic_mourn_inferior call.
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove decref_target
-	The decref_target function is not really needed.  Calling
-	target_ops::decref will just redirect to decref_target anyway, so why
-	not just rename decref_target to target_ops::decref?
-
-	That's what this commit does.
-
-	It's not exactly renaming to target_ops::decref, because the decref
-	functionality is handled by a policy class, so the new name is now
-	target_ops_ref_policy::decref.
-
-	There should be no user visible change after this commit.
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: have target_stack automate reference count handling
-	This commit changes the target_stack class from using a C style array
-	of 'target_ops *' to using a C++ std::array<target_ops_ref, ...>.  The
-	benefit of this change is that some of the reference counting of
-	target_ops objects is now done automatically.
-
-	This commit fixes a crash in gdb.python/py-inferior.exp where GDB
-	crashes at exit, leaving a core file behind.
-
-	The crash occurs in connpy_connection_dealloc, and is actually
-	triggered by this assert:
-
-	gdb_assert (conn_obj->target == nullptr);
-
-	Now a little aside...
-
-	    ... the assert is never actually printed, instead GDB crashes due
-	    to calling a pure virtual function.  The backtrace at the point of
-	    crash looks like this:
-
-	      #7  0x00007fef7e2cf747 in std::terminate() () from /lib64/libstdc++.so.6
-	      #8  0x00007fef7e2d0515 in __cxa_pure_virtual () from /lib64/libstdc++.so.6
-	      #9  0x0000000000de334d in target_stack::find_beneath (this=0x4934d78, t=0x2bda270 <the_dummy_target>) at ../../s>
-	      #10 0x0000000000df4380 in inferior::find_target_beneath (this=0x4934b50, t=0x2bda270 <the_dummy_target>) at ../.>
-	      #11 0x0000000000de2381 in target_ops::beneath (this=0x2bda270 <the_dummy_target>) at ../../src/gdb/target.c:3047
-	      #12 0x0000000000de68aa in target_ops::supports_terminal_ours (this=0x2bda270 <the_dummy_target>) at ../../src/gd>
-	      #13 0x0000000000dde6b9 in target_supports_terminal_ours () at ../../src/gdb/target.c:1112
-	      #14 0x0000000000ee55f1 in internal_vproblem(internal_problem *, const char *, int, const char *, typedef __va_li>
-
-	    Notice in frame #12 we called target_ops::supports_terminal_ours,
-	    however, this is the_dummy_target, which is of type dummy_target,
-	    and so we should have called dummy_target::supports_terminal_ours.
-	    I believe the reason we ended up in the wrong implementation of
-	    supports_terminal_ours (which is a virtual function) is because we
-	    made the call during GDB's shut-down, and, I suspect, the vtables
-	    were in a weird state.
-
-	    Anyway, the point of this patch is not to fix GDB's ability to
-	    print an assert during exit, but to address the root cause of the
-	    assert.  With that aside out of the way, we can return to the main
-	    story...
-
-	Connections are represented in Python with gdb.TargetConnection
-	objects (or its sub-classes).  The assert in question confirms that
-	when a gdb.TargetConnection is deallocated, the underlying GDB
-	connection has itself been removed from GDB.  If this is not true then
-	we risk creating multiple different gdb.TargetConnection objects for
-	the same connection, which would be bad.
-
-	To ensure that we have one gdb.TargetConnection object for each
-	connection, the all_connection_objects map exists, this maps the
-	process_stratum_target object (the connection) to the
-	gdb.TargetConnection object that represents the connection.
-
-	When a connection is removed in GDB the connection_removed observer
-	fires, which we catch with connpy_connection_removed, this function
-	then sets conn_obj->target to nullptr, and removes the corresponding
-	entry from the all_connection_objects map.
-
-	The first issue here is that connpy_connection_dealloc is being called
-	as part of GDB's exit code, which is run after the Python interpreter
-	has been shut down.  The connpy_connection_dealloc function is used to
-	deallocate the gdb.TargetConnection Python object.  Surely it is
-	wrong for us to be deallocating Python objects after the interpreter
-	has been shut down.
-
-	The reason why connpy_connection_dealloc is called during GDB's exit
-	is that the global all_connection_objects map is still holding a
-	reference to the gdb.TargetConnection object.  When the map is
-	destroyed during GDB's exit, the gdb.TargetConnection objects within
-	the map can finally be deallocated.
-
-	The reason why all_connection_objects has contents when GDB exits, and
-	the reason the assert fires, is that, when GDB exits, there are still
-	some connections that have not yet been removed from GDB, that is,
-	they have a non-zero reference count.
-
-	If we take a look at quit_force (top.c) you can see that, for each
-	inferior, we call pop_all_targets before we (later in the function)
-	call do_final_cleanups.  It is the do_final_cleanups call that is
-	responsible for shutting down the Python interpreter.  The
-	pop_all_targets calls should, in theory, cause all the connections to
-	be removed from GDB.
-
-	That this isn't working indicates that some targets have a non-zero
-	reference count even after this final pop_all_targets call, and
-	indeed, when I debug GDB, that is what I see.
-
-	I tracked the problem down to delete_inferior where we do some house
-	keeping, and then delete the inferior object, which calls
-	inferior::~inferior.
-
-	In neither delete_inferior or inferior::~inferior do we call
-	pop_all_targets, and it is this missing call that means we leak some
-	references to the target_ops objects on the inferior's target_stack.
-
-	In this commit I will provide a partial fix for the problem.  I say
-	partial fix, but this will actually be enough to resolve the crash.
-	In a later commit I will provide the final part of the fix.
-
-	As mentioned at the start of the commit message, this commit changes
-	the m_stack in target_stack to hold target_ops_ref objects.  This
-	means that when inferior::~inferior is called, and m_stack is
-	released, we automatically decrement the target_ops reference count.
-	With this change in place we no longer leak any references, and now,
-	in quit_force the final pop_all_targets calls will release the final
-	references.  This means that the targets will be correctly closed at
-	this point, which means the connections will be removed from GDB and
-	the Python objects deallocated before the Python interpreter shuts
-	down.
-
-	There's a slight oddity in target_stack::unpush, where we std::move
-	the reference out of m_stack like this:
-
-	  auto ref = std::move (m_stack[stratum]);
-
-	the `ref' isn't used explicitly, but it serves to hold the
-	target_ops_ref until the end of the scope while allowing the m_stack
-	entry to be reset back to nullptr.  The alternative would be to
-	directly set the m_stack entry to nullptr, like this:
-
-	  m_stack[stratum] = nullptr;
-
-	The problem here is that when we set the m_stack entry to nullptr we
-	first decrement the target_ops reference count, and then set the array
-	entry to nullptr.
-
-	If the decrement means that the target_ops object reaches a zero
-	reference count then the target_ops object will be closed by calling
-	target_close.  In target_close we ensure that the target being closed
-	is not in any inferiors target_stack.
-
-	As we decrement before clearing, then this check in target_close will
-	fail, and an assert will trigger.
-
-	By using std::move to move the reference out of m_stack, this clears
-	the m_stack entry, meaning the inferior no longer contains the
-	target_ops in its target_stack.  Now when the REF object goes out of
-	scope and the reference count is decremented, target_close can run
-	successfully.
-
-	I've made use of the Python connection_removed listener API to add a
-	test for this issue.  The test installs a listener and then causes
-	delete_inferior to be called, we can then see that the connection is
-	then correctly removed (because the listener triggers).
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/remote: remove some manual reference count handling
-	While working on some other target_ops reference count related code, I
-	spotted that in remote.c we do some manual reference count handling,
-	i.e. we call target_ops::incref and decref_target (which wraps
-	target_ops::decref).
-
-	I think it would be better to make use of gdb::ref_ptr to automate the
-	reference count management.
-
-	So, this commit updates scoped_mark_target_starting in two ways,
-	first, I use gdb::ref_ptr to handle the reference counts.  Then,
-	instead of using the scoped_mark_target_starting constructor and
-	destructor to set and reset the starting_up flag, I now use a
-	scoped_restore_tmpl object to set and restore the flag.
-
-	The above changes mean that the scoped_mark_target_starting destructor
-	can be completely removed, and the constructor body is now empty.
-
-	I've also fixed a typo in the class comment.
-
-	The only change in behaviour after this commit is that previously we
-	didn't care what the value of starting_up was, we just set it to true
-	in the constructor and false in the destructor.
-
-	Now, I assert that the flag is initially false, then set the flag true
-	when the scoped_mark_target_starting is created.
-
-	As the starting_up flag is initialized to false then, for the assert
-	to fire, we would need to recursively enter
-	remote_target::start_remote_1, which I don't think is something we
-	should be doing, so I think the new assert is an improvement.
-
-2022-12-14  Alan Modra  <amodra@gmail.com>
-
-	Re: ld, gold: remove support for -z bndplt (MPX prefix)
-	Don't attempt to run gold tests with -z bndplt
-
-		* testsuite/Makefile.am (exception_x86_64_bnd_test, bnd_plt_1.sh),
-		(bnd_ifunc_1.sh, bnd_ifunc_2.sh): Delete rules.
-		* testsuite/Makefile.in: Regenerate.
-		* testsuite/bnd_ifunc_1.s: Delete.
-		* testsuite/bnd_ifunc_1.sh: Delete.
-		* testsuite/bnd_ifunc_2.s: Delete.
-		* testsuite/bnd_ifunc_2.sh: Delete.
-		* testsuite/bnd_plt_1.s: Delete.
-		* testsuite/bnd_plt_1.sh: Delete.
-
-2022-12-14  Alan Modra  <amodra@gmail.com>
-
-	asan: buffer overflow in sh_reloc
-		* coff-sh.c (sh_reloc): Use bfd_reloc_offset_in_range.
-
-2022-12-14  Alan Modra  <amodra@gmail.com>
-
-	Fix haiku ld dependencies
-	I noticed after commit 8ad93045ed, "ld, gold: remove support for -z
-	bndplt (MPX prefix)", that some of my builds were failing with
-
-	eelf_x86_64_haiku.c:650:9: error: no member named 'bndplt' in 'struct elf_linker_x86_params'
-	        params.bndplt = true;
-	        ~~~~~~ ^
-
-		* emulparams/aarch64haiku.sh: Use "source_sh" rather than ".".
-		* emulparams/armelf_haiku.sh: Likewise.
-		* emulparams/elf32ppchaiku.sh: Likewise.
-		* emulparams/elf_mipsel_haiku.sh: Likewise.
-		* emulparams/elf_x86_64_haiku.sh: Likewise.
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT
-	After the previous commit converted symbol-lookup debug to use the new
-	debug scheme, this commit adds SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT.
-
-	The previous commit didn't add SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT
-	because symbol-lookup debug is controlled by an 'unsigned int' rather
-	than a 'bool' control variable, we use the numeric value to offer
-	different levels of verbosity for symbol-lookup debug.
-
-	The *_SCOPED_DEBUG_ENTER_EXIT mechanism currently relies on capturing
-	a reference to the bool control variable, and evaluating the variable
-	both on entry, and at exit, this is done in the scoped_debug_start_end
-	class (see gdbsupport/common-debug.h).
-
-	This commit templates scoped_debug_start_end so that the class can
-	accept either a 'bool &' or an invokable object, e.g. a lambda
-	function, or a function pointer.
-
-	The existing scoped_debug_start_end and scoped_debug_enter_exit macros
-	in common-debug.h are updated to support scoped_debug_enter_exit being
-	templated, however, nothing outside of common-debug.h needs to change.
-
-	I've then added SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT in symtab.h, and
-	added a couple of token uses in symtab.c.  I didn't want to add too
-	much in this first commit, this is really about updating
-	common-debug.h to support this new functionality.
-
-	Within symtab.h I created a couple of global functions that can be
-	used to query the status of the symbol_lookup_debug control variable,
-	these functions are then used within the two existing macros:
-
-	  symbol_lookup_debug_printf
-	  symbol_lookup_debug_printf_v
-
-	and also in the new SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT macro.
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: convert 'set debug symbol-lookup' to new debug printing scheme
-	Convert the implementation of 'set debug symbol-lookup' to the new
-	debug printing scheme.
-
-	In a few places I've updated the debug output to remove places where
-	the printed debug message included the function name, the new debug
-	scheme already adds that, but I haven't done all the possible updates.
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: new test for recent dwarf reader issue
-	This commit provides a test for this commit:
-
-	  commit 55fc1623f942fba10362cb199f9356d75ca5835b
-	  Date:   Thu Nov 3 13:49:17 2022 -0600
-
-	      Add name canonicalization for C
-
-	Which resolves PR gdb/29105.  My reason for writing this test was a
-	desire to better understand the above commit, my process was to study
-	the commit until I thought I understood it, then write a test to
-	expose the issue.  As the original commit didn't have a test, I
-	thought it wouldn't hurt to commit this upstream.
-
-	The problem tested for here is already described in the above commit,
-	but I'll give a brief description here.  This description describes
-	GDB prior to the above commit:
-
-	  - Builtin types are added to GDB using their canonical name,
-	    e.g. "short", not "signed short",
-
-	  - When the user does something like 'p sizeof(short)', then this is
-	    handled in c-exp.y, and results in a call to lookup_signed_type
-	    for the name "int".  The "int" here is actually being looked up as
-	    the type for the result of the 'sizeof' expression,
-
-	  - In lookup_signed_type GDB first adds a 'signed' and looks for that
-	    type, so in this case 'signed int', and, if that lookup fails, GDB
-	    then looks up 'int',
-
-	  - The problem is that 'signed int' is not the canonical name for a
-	    signed int, so no builtin type with that name will be found, GDB
-	    will then go to each object file in turn looking for a matching
-	    type,
-
-	  - When checking each object file, GDB will first check the partial
-	    symtab to see if the full symtab should be expanded or not.
-	    Remember, at this point GDB is looking for 'signed int', there
-	    will be no partial symbols with that name, so GDB will not expand
-	    anything,
-
-	  - However, GDB checks each partial symbol using multiple languages,
-	    not just the current language (C in this case), so, when GDB
-	    checks using the C++ language, the symbol name is first
-	    canonicalized (the code that does this can be found
-	    lookup_name_info::language_lookup_name).  As the canonical form of
-	    'signed int' is just 'int', GDB then looks for any symbols with
-	    the name 'int', most partial symtabs will contain such a symbol,
-	    so GDB ends up expanding pretty much every symtab.
-
-	The above commit fixes this by avoiding the use of non-canonical names
-	with C, now the initial builtin type lookup will succeed, and GDB
-	never even considers whether to expand any additional symtabs.
-
-	The test case creates a library that includes char, short, int, and
-	long types, and a test program that links against the library.
-
-	In the test script we start the inferior, but don't allow it to
-	progress far enough that the debug information for the library has
-	been fully expanded yet.
-
-	Then we evaluate some 'sizeof(TYPE)' expressions.
-
-	In the buggy version of GDB this would cause the debug information
-	for the library to be fully expanded, while in the fixed version of
-	GDB this will not be the case.
-
-	We use 'info sources' to determine if the debug information has been
-	fully expanded or not.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29105
-
-2022-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix readnow detection
-	The following commit broke the readnow detection in the testsuite:
-
-	  commit dfaa040b440084dd73ebd359326752d5f44fc02c
-	  Date:   Mon Mar 29 18:31:31 2021 -0600
-
-	      Remove some "OBJF_READNOW" code from dwarf2_debug_names_index
-
-	The testsuite checks if GDB was started with the -readnow flag by
-	using the 'maintenance print objfiles' command, and looking for the
-	string 'faked for "readnow"' in the output.  This is implemented in
-	two helper procs `readnow` (gdb.exp) and `mi_readnow` (mi-support.exp).
-
-	The following tests all currently depend on this detection:
-
-	  gdb.base/maint.exp
-	  gdb.cp/nsalias.exp
-	  gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp
-	  gdb.dwarf2/dw2-stack-boundary.exp
-	  gdb.dwarf2/dw2-zero-range.exp
-	  gdb.dwarf2/gdb-index-nodebug.exp
-	  gdb.mi/mi-info-sources.exp
-	  gdb.python/py-symbol.exp
-	  gdb.rust/traits.exp
-
-	The following test also includes detection of 'readnow', but does the
-	detection itself by checking $::GDBFLAGS for the readnow flag:
-
-	  gdb.opt/break-on-_exit.exp
-
-	The above commit removed from GDB the code that produced the 'faked
-	for "readnow"' string, as a consequence the testsuite can no longer
-	correctly spot when readnow is in use, and many of the above tests
-	will fail (at least partially).
-
-	When looking at the above tests, I noticed that gdb.rust/traits.exp
-	does call `readnow`, but doesn't actually use the result, so I've
-	removed the readnow call, this simplifies the next part of this patch
-	as gdb.rust/traits.exp was the only place an extra regexp was passed
-	to the readnow call.
-
-	Next I have rewritten `readnow` to check the $GDBFLAGS for the
-	-readnow flag, and removed the `maintenance print objfiles` check.  At
-	least for all the tests above, when using the readnow board, this is
-	good enough to get everything passing again.
-
-	For the `mi_readnow` proc, I changed this to just call `readnow` from
-	gdb.exp, I left the mi_readnow name in place - in the future it might
-	be the case that we want to do some different checks here.
-
-	Finally, I updated gdb.opt/break-on-_exit.exp to call the `readnow`
-	proc.
-
-	With these changes, all of the tests listed above now pass correctly
-	when using the readnow board.
-
-2022-12-14  Li Xu  <xuli1@eswincomputing.com>
-
-	RISC-V: Add string length check for operands in AS
-	The current AS accepts invalid operands due to miss of operands length check.
-	For example, "e6" is an invalid operand in (vsetvli a0, a1, e6, mf8, tu, ma),
-	but it's still accepted by assembler.  In detail, the condition check "strncmp
-	(array[i], *s, len) == 0" in arg_lookup function passes with "strncmp ("e64",
-	"e6", 2)" in the case above.  So the generated encoding is same as that of
-	(vsetvli a0, a1, e64, mf8, tu, ma).
-
-	This patch fixes issue above by prompting an error in such case and also adds
-	a new testcase.
-
-	gas/ChangeLog:
-
-	        * config/tc-riscv.c (arg_lookup): Add string length check for operands.
-	        * testsuite/gas/riscv/vector-insns-fail-vsew.d: New testcase for an illegal vsew.
-	        * testsuite/gas/riscv/vector-insns-fail-vsew.l: Likewise.
-	        * testsuite/gas/riscv/vector-insns-fail-vsew.s: Likewise.
-
-2022-12-14  Jan Beulich  <jbeulich@suse.com>
-
-	x86: adjust type checking constructs
-	As Alan points out, ASAN takes issue with these constructs, for
-	current_templates being NULL. Wrap them in sizeof(), so the expressions
-	aren't actually evaluated.
-
-2022-12-14  Martin Liska  <mliska@suse.cz>
-
-	ld, gold: remove support for -z bndplt (MPX prefix)
-	bfd/ChangeLog:
-
-		* elf-linker-x86.h (struct elf_linker_x86_params): Remove
-		bndplt.
-		* elf64-x86-64.c (elf_x86_64_scan_relocs): Ignore
-	        R_X86_64_PLT32_BND.
-		(elf_x86_64_relocate_section): Similarly here.
-		(elf_x86_64_link_setup_gnu_properties): Ignore bndplt.
-		* elfxx-x86.c: Likewise.
-		* elfxx-x86.h: Likewise.
-
-	gold/ChangeLog:
-
-		* NEWS: Document -z bndplt.
-		* options.h (class General_options): Remove bndplt option.
-		* x86_64.cc (class Output_data_plt_x86_64_bnd): Remove.
-		(Target_x86_64::do_make_data_plt): Do not use
-		Output_data_plt_x86_64_bnd.
-		(Target_x86_64::Scan::get_reference_flags): Likewise.
-		(Target_x86_64::Scan::check_non_pic): Likewise.
-		(Target_x86_64::Scan::local): Likewise.
-		(Target_x86_64::Scan::global): Likewise.
-
-	ld/ChangeLog:
-
-		* NEWS: Document -z bndplt.
-		* emulparams/elf_x86_64.sh: Remove bndplt option.
-		* ld.texi: Likewise.
-		* testsuite/ld-x86-64/x86-64.exp:
-		* testsuite/ld-x86-64/bnd-branch-1-now.d: Removed.
-		* testsuite/ld-x86-64/bnd-branch-1.d: Removed.
-		* testsuite/ld-x86-64/bnd-branch-1.s: Removed.
-		* testsuite/ld-x86-64/bnd-ifunc-1-now.d: Removed.
-		* testsuite/ld-x86-64/bnd-ifunc-1.d: Removed.
-		* testsuite/ld-x86-64/bnd-ifunc-1.s: Removed.
-		* testsuite/ld-x86-64/bnd-ifunc-2-now.d: Removed.
-		* testsuite/ld-x86-64/bnd-ifunc-2.d: Removed.
-		* testsuite/ld-x86-64/bnd-ifunc-2.s: Removed.
-		* testsuite/ld-x86-64/bnd-plt-1-now.d: Removed.
-		* testsuite/ld-x86-64/bnd-plt-1.d: Removed.
-		* testsuite/ld-x86-64/mpx.exp: Removed.
-		* testsuite/ld-x86-64/mpx1.out: Removed.
-		* testsuite/ld-x86-64/mpx1a.c: Removed.
-		* testsuite/ld-x86-64/mpx1a.rd: Removed.
-		* testsuite/ld-x86-64/mpx1b.c: Removed.
-		* testsuite/ld-x86-64/mpx1c.c: Removed.
-		* testsuite/ld-x86-64/mpx1c.rd: Removed.
-		* testsuite/ld-x86-64/mpx2.out: Removed.
-		* testsuite/ld-x86-64/mpx2a.c: Removed.
-		* testsuite/ld-x86-64/mpx2a.rd: Removed.
-		* testsuite/ld-x86-64/mpx2b.c: Removed.
-		* testsuite/ld-x86-64/mpx2c.c: Removed.
-		* testsuite/ld-x86-64/mpx2c.rd: Removed.
-		* testsuite/ld-x86-64/mpx3.dd: Removed.
-		* testsuite/ld-x86-64/mpx3a.s: Removed.
-		* testsuite/ld-x86-64/mpx3b.s: Removed.
-		* testsuite/ld-x86-64/mpx3n.dd: Removed.
-		* testsuite/ld-x86-64/mpx4.dd: Removed.
-		* testsuite/ld-x86-64/mpx4a.s: Removed.
-		* testsuite/ld-x86-64/mpx4b.s: Removed.
-		* testsuite/ld-x86-64/mpx4n.dd: Removed.
-		* testsuite/ld-x86-64/pr20800a.S: Removed.
-		* testsuite/ld-x86-64/pr20800b.S: Removed.
-		* testsuite/ld-x86-64/pr21038a-now.d: Removed.
-		* testsuite/ld-x86-64/pr21038a.d: Removed.
-		* testsuite/ld-x86-64/pr21038a.s: Removed.
-		* testsuite/ld-x86-64/pr21038b-now.d: Removed.
-		* testsuite/ld-x86-64/pr21038b.d: Removed.
-		* testsuite/ld-x86-64/pr21038b.s: Removed.
-		* testsuite/ld-x86-64/pr21038c-now.d: Removed.
-		* testsuite/ld-x86-64/pr21038c.d: Removed.
-		* testsuite/ld-x86-64/pr21038c.s: Removed.
-
-2022-12-14  Alan Modra  <amodra@gmail.com>
-
-	asan: signed integer overflow in display_debug_frames
-		* dwarf.c (struct Frame_Chunk): Make col_offset an int64_t.
-		Adjust all places allocating col_offset and col_type to use
-		the size of the array element rather than the size of a type.
-		(frame_display_row): Adjust printing of col_offset.
-		(display_debug_frames): Factor out multiplication by
-		code_factor and data_factor.  Avoid signed overflow.  Use
-		64-bit variables.
-
-2022-12-14  Alan Modra  <amodra@gmail.com>
-
-	Don't access freed memory printing objcopy warning
-	abfd->filename will be freed if bfd_close gets far enough to delete
-	the bfd.  It's possible to have an error from fclose at this point.
-
-		* objcopy.c (copy_archive): Dup filename before closing bfd for
-		potential use in bfd_nonfatal_message.
-
-2022-12-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-13  Tom Tromey  <tromey@adacore.com>
-
-	Fix control-c handling on Windows
-	As Hannes pointed out, the Windows target-async patches broke C-c
-	handling there.  Looking into this, I found a few oddities, fixed
-	here.
-
-	First, windows_nat_target::interrupt calls GenerateConsoleCtrlEvent.
-	I think this event can be ignored by the inferior, so it's not a great
-	way to interrupt.  Instead, using DebugBreakProcess (or a more
-	complicated thing for Wow64) seems better.
-
-	Second, windows_nat_target did not implement the pass_ctrlc method.
-	Implementing this lets us remove the special code to call
-	SetConsoleCtrlHandler and instead integrate into gdb's approach to C-c
-	handling.  I believe that this should also fix the race that's
-	described in the comment that's being removed.
-
-	Initially, I thought a simpler version of this patch would work.
-	However, I think what happens is that some other library (I'm not sure
-	what) calls SetConsoleCtrlHandler while gdb is running, and this
-	intercepts and handles C-c -- so that the gdb SIGINT handler is not
-	called.  C-break continues to work, presumably because whatever
-	handler is installed ignores it.
-
-	This patch works around this issue by ensuring that the gdb handler
-	always comes first.
-
-2022-12-13  Tom Tromey  <tromey@adacore.com>
-
-	Refactor code to check for terminal sharing
-	This refactors the code to check for terminal sharing.
-	is_gdb_terminal is exported, and sharing_input_terminal_1 is renamed,
-	slightly refactored, and moved to posix-hdep.c.  A new
-	Windows-specific implementation of this function is added to
-	mingw-hdep.c.
-
-	MSDN has a warning about GetConsoleProcessList
-
-	    This API is not recommended and does not have a virtual terminal
-	    equivalent. [...] Applications remoting via cross-platform
-	    utilities and transports like SSH may not work as expected if
-	    using this API.
-
-	However, we believe this isn't likely to be an issue for gdb.
-
-2022-12-13  Tom Tromey  <tromey@adacore.com>
-
-	Use gdb::optional for sigint_ours
-	sigint_ours (and sigquit_ours) can be used without being set.  Avoid
-	this problem by changing them to gdb::optional and checking that they
-	are in fact set before using the value.
-
-	Rename install_sigint_handler
-	A subsequent patch will introduce a global 'install_sigint_handler'
-	function, so first rename the static one in extension.c.
-
-2022-12-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix s390_linux_nat_target::stopped_by_watchpoint
-	On s390x-linux, I run into:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	breakpoint.c:5784: internal-error: bpstat_stop_status_nowatch: \
-	  Assertion `!target_stopped_by_watchpoint ()' failed.^M
-	A problem internal to GDB has been detected,^M
-	further debugging may prove unreliable.^M
-	FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: \
-	  breakpoint after the first fork (GDB internal error)
-	...
-
-	What happens is the follow:
-	- a watchpoint event triggers
-	- the event is processed, s390_linux_nat_target::stopped_by_watchpoint is called and
-	  it returns true, as expected
-	- the watchpoint event is reported by gdb, and gdb stops
-	- we issue a continue command
-	- a fork event triggers
-	- the event is processed, and during processing that event
-	  s390_linux_nat_target::stopped_by_watchpoint is called again, and returns
-	  true
-	- the assertion fails, because the function is expected to return false
-
-	The function s390_linux_nat_target::stopped_by_watchpoint returns true the
-	second time, because it looks at the exact same data that was looked at when
-	it was called the first time, and that data hasn't changed.
-
-	There's code in the same function that intends to prevent that from happening:
-	...
-	      /* Do not report this watchpoint again.  */
-	      memset (&per_lowcore, 0, sizeof (per_lowcore));
-	      if (ptrace (PTRACE_POKEUSR_AREA, s390_inferior_tid (), &parea, 0) < 0)
-	       perror_with_name (_("Couldn't clear watchpoint status"));
-	...
-	and that probably used to work for older kernels, but no longer does since
-	linux kernel commit 5e9a26928f55 ("[S390] ptrace cleanup").
-
-	Fix this by copying this:
-	...
-	  siginfo_t siginfo;
-	  if (!linux_nat_get_siginfo (inferior_ptid, &siginfo))
-	    return false;
-	  if (siginfo.si_signo != SIGTRAP
-	      || (siginfo.si_code & 0xffff) != TRAP_HWBKPT)
-	    return false;
-	...
-	from aarch64_linux_nat_target::stopped_data_address and remove the
-	obsolete watchpoint status clearing code.
-
-	Tested on s390x-linux.
-
-	Approved-By: Ulrich Weigand <uweigand@de.ibm.com>
-
-2022-12-13  H.J. Lu  <hjl.tools@gmail.com>
-
-	gold: Remove BND from 64-bit x86-64 IBT PLT
-	Since MPX support has been removed from x86-64 psABI, remove BND from
-	64-bit IBT PLT by using 32-bit IBT PLT.
-
-		PR gold/29851
-		* x86_64.cc (Output_data_plt_x86_64_ibt<32>::first_plt_entry):
-		Renamed to ...
-		(Output_data_plt_x86_64_ibt<size>::first_plt_entry): This.
-		(Output_data_plt_x86_64_ibt<64>::first_plt_entry): Removed.
-		(Output_data_plt_x86_64_ibt<size>::do_fill_first_plt_entry):
-		Drop the size == 32 check.
-		(Output_data_plt_x86_64_ibt<32>::plt_entry): Renamed to ...
-		(Output_data_plt_x86_64_ibt<size>::plt_entry): This.
-		(Output_data_plt_x86_64_ibt<64>::plt_entry): Removed.
-		(Output_data_plt_x86_64_ibt<32>::aplt_entry): Renamed to ...
-		(Output_data_plt_x86_64_ibt<size>::aplt_entry): This.
-		(Output_data_plt_x86_64_ibt<64>::aplt_entry): Removed.
-		(Output_data_plt_x86_64_ibt<size>::do_fill_plt_entry): Drop the
-		size == 32 check.
-		(Output_data_plt_x86_64_ibt<size>::fill_aplt_entry): Likewise.
-
-2022-12-13  Tom Tromey  <tromey@adacore.com>
-
-	Remove two unnecessary casts
-	A couple of calls to parse_probe_linespec had an unnecessary cast.  I
-	suspect this cast was never needed, but once commands were changed to
-	take a 'const' argument, they became completely obsolete.  Tested by
-	rebuilding.
-
-2022-12-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: avoid creating temp file in gdb/testsuite/ directory
-	After this commit:
-
-	  commit 33c1395cf5e9deec7733691ba32c450e5c27f757
-	  Date:   Fri Nov 11 15:26:46 2022 +0000
-
-	      gdb/testsuite: fix gdb.trace/unavailable-dwarf-piece.exp with Clang
-
-	The gdb.trace/unavailable-dwarf-piece.exp test script was creating a
-	temporary file in the build/gdb/testsuite/ directory, instead of in
-	the expected place in the outputs directory.
-
-	Fix this by adding a call to standard_output_file.
-
-2022-12-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-disasm.exp on s390x
-	On s390x-linux, I run into:
-	...
-	(gdb) disassemble test^M
-	Dump of assembler code for function test:^M
-	   0x0000000001000638 <+0>:     stg     %r11,88(%r15)^M
-	   0x000000000100063e <+6>:     lgr     %r11,%r15^M
-	   0x0000000001000642 <+10>:    nop     0^M
-	=> 0x0000000001000646 <+14>:    nop     0^M
-	   0x000000000100064a <+18>:    nop     0^M
-	   0x000000000100064e <+22>:    lhi     %r1,0^M
-	   0x0000000001000652 <+26>:    lgfr    %r1,%r1^M
-	   0x0000000001000656 <+30>:    lgr     %r2,%r1^M
-	   0x000000000100065a <+34>:    lg      %r11,88(%r11)^M
-	   0x0000000001000660 <+40>:    br      %r14^M
-	End of assembler dump.^M
-	(gdb) FAIL: gdb.python/py-disasm.exp: global_disassembler=: disassemble test
-	...
-
-	The problem is that the test-case expects "nop" but on s390x we have instead
-	"nop\t0".
-
-	Fix this by allowing the insn.
-
-	Tested on s390x-linux and x86_64-linux.
-
-2022-12-13  Jan Beulich  <jbeulich@suse.com>
-
-	gas: re-work line number tracking for macros and their expansions
-	The PR gas/16908 workaround aimed at uniformly reporting line numbers
-	to reference macro invocation sites. As mentioned in a comment this may
-	be desirable for small macros, but often isn't for larger ones. As a
-	first step improve diagnostics to report both locations, while aiming at
-	leaving generated debug info unaltered.
-
-	Note that macro invocation context is lost for any diagnostics issued
-	only after all input was processed (or more generally for any use of
-	as_*_where(), as the functions can't know whether the passed in location
-	is related to [part of] the present stack of locations). To maintain the
-	intended workaround behavior for PR gas/16908, a new as_where() is
-	introduced to "look through" macro invocations, while the existing
-	as_where() is renamed (and used in only very few places for now). Down
-	the road as_where() will likely want to return a list of (file,line)
-	pairs.
-
-2022-12-13  Jan Beulich  <jbeulich@suse.com>
-
-	Arm: avoid unhelpful uses of .macro in testsuite
-	Macros with just a single use site are a little pointless to have, and
-	even in further cases .irp is more suitable for the purpose. Expand such
-	inline, avoiding the need to touch the testcases when diagnostics are
-	changed for code resulting from macro expansion.
-
-	While there also make what was "iter_mla" in sp-usage-thumb2-relax cover
-	smlatt as well, rather than testing smlabt twice.
-
-2022-12-13  Tom Tromey  <tom@tromey.com>
-
-	Fix crash in is_nocall_function
-	is_nocall_function anticipates only being called for a function or a
-	method.  However, PR gdb/29871 points out a situation where an unusual
-	expression -- but one that parses to a valid, if extremely weird,
-	function call -- breaks this assumption.
-
-	This patch changes is_nocall_function to remove this assert and
-	instead simply return 'false' in this case.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29871
-
-2022-12-13  Johnson Sun  <j3.soon777@gmail.com>
-
-	Replace gdbpy_should_stop with gdbpy_breakpoint_cond_says_stop
-	In 2014, the function `gdbpy_should_stop' has been replaced with
-	`gdbpy_breakpoint_cond_says_stop'
-
-	This replaces `gdbpy_should_stop' with `gdbpy_breakpoint_cond_says_stop' in the
-	comments.
-
-	Since `gdbpy_should_stop' has been renamed as noted in `gdb/ChangeLog-2014':
-
-		* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Renamed
-		from gdbpy_should_stop.  Change result type to enum scr_bp_stop.
-
-	Change-Id: I0ef3491ce5e057c5e75ef8b569803b30a5838575
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-13  Alan Modra  <amodra@gmail.com>
-
-	asan: mips_hi16_list segfault in bfd_get_section_limit_octets
-	static variables like mips_hi16_list are nasty for applications using
-	bfd.  It is possible when opening and closing bfds with mis-matched
-	hi/lo relocs to leave a stale section pointer on the list.  That can
-	cause a segfault if multiple bfds are being processed.
-
-	Tidying the list when closing is sufficient to stop this happening
-	(and fixes small memory leaks).  This patch goes further and moves
-	mips_hi16_list to where it belongs in the bfd tdata.
-
-		* elf32-mips.c (bfd_elf32_close_and_cleanup(: Define.
-		* elf64-mips.c (bfd_elf64_close_and_cleanup): Define.
-		* elfn32-mips.c (bfd_elf32_close_and_cleanup(: Define.
-		* elfxx-mips.c (struct mips_hi16): Move earlier.
-		(mips_hi16_list): Move to..
-		(struct mips_elf_obj_tdata): ..here.
-		(_bfd_mips_elf_close_and_cleanup): New function.
-		(_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_lo16_reloc),
-		(_bfd_elf_mips_get_relocated_section_contents): Adjust uses of
-		mips_hi16_list.
-		* elfxx-mips.h (_bfd_mips_elf_close_and_cleanup): Declare.
-
-2022-12-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-12  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libctf: remove unnecessary zstd constructs
-	This patch is essentially a revert of
-	commit-id: 8818c80cbd4116ef5af171ec47c61167179e225c
-	(libctf: Add ZSTD_LIBS to LIBS so that ac_cv_libctf_bfd_elf can be true)
-
-	As the specific configure check now uses libtool, this explicit mention of the
-	dependency $ZSTD_LIBS is not needed anymore.
-
-	ChangeLog:
-
-		* libctf/Makefile.in: Regenerated.
-		* libctf/aclocal.m4: Likewise.
-		* libctf/config.h.in: Likewise.
-		* libctf/configure: Likewise.
-		* libctf/configure.ac: Remove ZSTD_LIBS from LIBS.  Cleanup
-		unused AC_ZSTD.
-
-2022-12-12  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libctf: remove AC_CONFIG_MACRO_DIR
-	ACLOCAL_AMFLAGS is being set already.  So using AC_CONFIG_MACRO_DIR is
-	unnecessary.
-
-	ChangeLog:
-
-		* libctf/configure: Regenerated.
-		* libctf/configure.ac: remove AC_CONFIG_MACRO_DIR usage.
-
-2022-12-12  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libctf: remove unnecessary zlib constructs
-	This dependency is managed via libtool.  So explicit addition to LDFLAGS
-	and LIBS is not necessary anymore.
-
-	ChangeLog:
-
-		* libctf/configure: Regenerated.
-		* libctf/configure.ac: remove zlib from LDFLAGS and LIBS.
-
-2022-12-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix PR20630 regression test in gdb.base/printcmds.exp
-	On s390x-linux, I run into:
-	...
-	(gdb) print {unsigned char}{65}^M
-	$749 = 0 '\000'^M
-	(gdb) FAIL: gdb.base/printcmds.exp: print {unsigned char}{65}
-	...
-
-	In contrast, on x86_64-linux, we have:
-	...
-	(gdb) print {unsigned char}{65}^M
-	$749 = 65 'A'^M
-	(gdb) PASS: gdb.base/printcmds.exp: print {unsigned char}{65}
-	...
-
-	The first problem here is that the test is supposed to be a regression test
-	for PR20630, which can be reproduced (for an unfixed gdb) like this:
-	...
-	(gdb) p {unsigned char[]}{0x17}
-	gdbtypes.c:4641: internal-error: copy_type: \
-	  Assertion `TYPE_OBJFILE_OWNED (type)' failed.
-	...
-	but it's not due to insufficient quoting (note the dropped '[]').
-
-	That's easy to fix, but after that we have on s390 (big endian):
-	...
-	(gdb) print {unsigned char[]}{65}^M
-	$749 = ""^M
-	...
-	and on x86_64 (little endian):
-	...
-	(gdb) print {unsigned char[]}{65}^M
-	$749 = "A"^M
-	...
-
-	Fix this by using 0xffffffff, such that in both cases we have:
-	...
-	(gdb) print {unsigned char[]}{0xffffffff}^M
-	$749 = "\377\377\377\377"^M
-	...
-
-	Tested on x86_64-linux and s390x-linux.
-
-2022-12-12  Alan Modra  <amodra@gmail.com>
-
-	PR29893, buffer overflow in display_debug_addr
-		PR 29893
-		* dwarf.c (display_debug_addr): Sanity check dwarf5 unit_length
-		field.  Don't read past end.
-
-2022-12-12  Tom Tromey  <tom@tromey.com>
-
-	Another Rust operator precedence bug
-	My earlier patch to fix PR rust/29859 introduced a new operator
-	precedence bug in the Rust parser.  Assignment operators are
-	right-associative in Rust.  And, while this doesn't often matter, as
-	Rust assignments always have the value (), still as a matter of
-	principle we should get this correct.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29859
-
-2022-12-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/write_mem.exp for big endian
-	On s390x-linux (big endian), I run into:
-	...
-	(gdb) x /xh main^M
-	0x1000638 <main>:       0x0000^M
-	(gdb) FAIL: gdb.base/write_mem.exp: x /xh main
-	...
-
-	In contrast, on x86_64-linux (little endian), we have the expected:
-	...
-	(gdb) x /xh main^M
-	0x4004a7 <main>:        0x4242^M
-	(gdb) PASS: gdb.base/write_mem.exp: x /xh main
-	...
-
-	The problem is that the test-case hard-codes expectations about endiannes by
-	writing an int-sized value (4 bytes in this case) and then printing only a
-	halfword by using "/h" (so, two bytes).
-
-	If we print 4 bytes, we have for s390x:
-	...
-	0x1000638 <main>:       0x00004242^M
-	...
-	and for x86_64:
-	...
-	0x4004a7 <main>:        0x00004242^M
-	...
-
-	Fix this by removing the "/h".
-
-	Tested on x86_64-linux and s390x-linux.
-
-2022-12-12  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb: fix possible use-after-free when executing commands
-	In principle, `execute_command()` does following:
-
-	   struct cmd_list_element *c;
-	   c = lookup_cmd ( ... );
-	   ...
-	   /* If this command has been pre-hooked, run the hook first.  */
-	   execute_cmd_pre_hook (c);
-	   ...
-	   /* ...execute the command `c` ...*/
-	   ...
-	   execute_cmd_post_hook (c);
-
-	This may lead into use-after-free error.  Imagine the command
-	being executed is a user-defined Python command that redefines
-	itself.  In that case, struct `cmd_list_element` pointed to by
-	`c` is deallocated during its execution so it is no longer valid
-	when post hook is executed.
-
-	To fix this case, this commit looks up the command once again
-	after it is executed to get pointer to (possibly newly allocated)
-	`cmd_list_element`.
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: further re-work insn/suffix recognition to also cover MOVSX
-	PR gas/29524
-
-	Having templates with a suffix explicitly present has always been
-	quirky. After prior adjustment all that's left to also eliminate the
-	anomaly from move-with-sign-extend is to consolidate the insn templates
-	and to make may_need_pass2() cope (plus extend testsuite coverage).
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop (now) stray IsString
-	The need for them on the operand-less string insns has gone away with
-	the removal of maybe_adjust_templates() and associated logic. Since
-	i386_index_check() needs adjustment then anyway, take the opportunity
-	and also simplify it, possible again as a result of said removal (plus
-	the opcode template adjustments done here).
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move bad-use-of-TLS-reloc check
-	Having it in match_template() is unhelpful. Neither does looking for the
-	next template to possibly match make any sense in that case, nor is the
-	resulting diagnostic making clear what the problem is.
-
-	While moving the check, also generalize it to include all SIMD and VEX-
-	encoded insns. This way an existing conditional can be re-used in
-	md_assemble(). Note though that this still leaves a lof of insns which
-	are also wrong to use with these relocations.
-
-	Further fold the remaining check (BFD_RELOC_386_GOT32) with the XRELEASE
-	related one a few lines down. This again allows re-using an existing
-	conditional.
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86-64: allow HLE store of accumulator to absolute 32-bit address
-	In commit 1212781b35c9 ("ix86: allow HLE store of accumulator to
-	absolute address") I was wrong to exclude 64-bit code. Dropping the
-	check also leads to better diagnostics in 64-bit code ("MOV", after
-	all, isn't invalid with "XRELEASE").
-
-	While there also limit the amount of further checks done: The operand
-	type checks that were there were effectively redundant with other ones
-	anyway, plus it's quite fine to also have "xrelease mov <disp>, %eax"
-	look for the next MOV template (in fact again also improving
-	diagnostics).
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	ix86: don't recognize/derive Q suffix in the common case
-	Have its use, except where actually legitimate, result in the same "only
-	supported in 64-bit mode" diagnostic as emitted for other 64-bit only
-	insns. Also suppress deriving of the suffix in Intel mode except in the
-	legitimate cases. This in exchange allows dropping the respective code
-	from match_template().
-
-	To maintain reasonable diagnostics (in particular to avoid "`mov' is
-	only supported in 64-bit mode" on the SIMD forms of MOVQ) we need to
-	defer parse_insn()'s emitting of errors unrelated to prefix parsing.
-	Utilize i.error just like match_template() does.
-
-	Oddly enough despite gcc's preference towards FILDQ and FIST{,T}Q we
-	had no testcase whatsoever for these. Therefore such tests are being
-	added. Note that the removed line in the x86-64-lfence-load testcase
-	was redundant with the exact same one a few lines up.
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: re-work insn/suffix recognition
-	Having templates with a suffix explicitly present has always been
-	quirky. Introduce a 2nd matching pass in case the 1st one couldn't find
-	a suitable template _and_ didn't itself already need to trim off a
-	suffix to find a match at all. This requires error reporting adjustments
-	(albeit luckily fewer than I was afraid might be necessary), as errors
-	previously reported during matching now need deferring until after the
-	2nd pass (because, obviously, we must not emit any error if the 2nd pass
-	succeeds). While also related to PR gas/29524, it was requested that
-	move-with-sign-extend be left as broken as it always was.
-
-	PR gas/29525
-	Note that with the dropped CMPSD and MOVSD Intel Syntax string insn
-	templates taking operands, mixed IsString/non-IsString template groups
-	(with memory operands) cannot occur anymore. With that
-	maybe_adjust_templates() becomes unnecessary (and is hence being
-	removed).
-
-	PR gas/29526
-	Note further that while the additions to the intel16 testcase aren't
-	really proper Intel syntax, we've been permitting all of those except
-	for the MOVD variant. The test therefore is to avoid re-introducing such
-	an inconsistency.
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: constify parse_insn()'s input
-	The function doesn't alter its input buffer: Reflect this in its
-	prototype. To avoid using any kind of cast, simply calculate the update
-	of "line" from the function's input and output.
-
-	x86: revert disassembler parts of "x86: Allow 16-bit register source for LAR and LSL"
-	This reverts the disassembler parts of 859aa2c86dc9 ("x86: Allow 16-bit
-	register source for LAR and LSL"), adjusting testcases as necessary.
-	That change was itself a partial revert of c9f5b96bdab0 ("x86: correct
-	handling of LAR and LSL"), without actually saying so. While the earlier
-	commit was properly agreed upon, the partial revert was not, and hence
-	should not have been committed. This is even more so that the revert
-	part of that change wasn't even necessary to address PR gas/29844.
-
-2022-12-12  Alan Modra  <amodra@gmail.com>
-
-	PR29892, Field file_table of struct module is uninitialized
-		PR 29892
-		* vms-alphs.c (new_module): Use bfd_zmalloc to alloc file_table.
-		(parse_module): Rewrite file_table reallocation code and clear.
-
-	Lack of bounds checking in vms-alpha.c parse_module
-		PR 29873
-		PR 29874
-		PR 29875
-		PR 29876
-		PR 29877
-		PR 29878
-		PR 29879
-		PR 29880
-		PR 29881
-		PR 29882
-		PR 29883
-		PR 29884
-		PR 29885
-		PR 29886
-		PR 29887
-		PR 29888
-		PR 29889
-		PR 29890
-		PR 29891
-		* vms-alpha.c (parse_module): Make length param bfd_size_type.
-		Delete length == -1 checks.  Sanity check record_length.
-		Sanity check DST__K_MODBEG, DST__K_RTNBEG, DST__K_RTNEND lengths.
-		Sanity check DST__K_SOURCE and DST__K_LINE_NUM elements
-		before accessing.
-		(build_module_list): Pass dst_section size to parse_module.
-
-2022-12-12  Alan Modra  <amodra@gmail.com>
-
-	PR29872, uninitialised value in display_debug_lines_decoded dwarf.c:5413
-	Plus segvs if the C-library doesn't handle printf %s of NULL.
-
-		PR 29872
-		* dwarf.c (null_name): New function.
-		(process_debug_info): Use it here..
-		(display_debug_lines_raw): ..and here..
-		(display_debug_lines_decoded): ..and here.  xcalloc directory_table.
-		Simplify xcalloc of file_table.
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	gas/codeview: avoid "shadowing" of glibc function name
-	While not "index" this time, old enough glibc also has an (unguarded)
-	declaration of fileno() in stdio.h, which triggers a "shadows a global
-	declaration" warning with our choice of warning level and with at least
-	some gcc versions.
-
-	x86: generate template sets data at build time
-	Speed up gas startup by avoiding runtime allocation of the instances of
-	type "templates". At the same time cut the memory requirement to just
-	very little over half (not even accounting for any overhead
-	notes_alloc() may incur) by reusing the "end" slot of a preceding entry
-	for the "start" slot of the subsequent one.
-
-	x86: drop sentinel from i386_optab[]
-	Now that the table is local to gas, ARRAY_SIZE() can be used to
-	determine the end of the table. Re-arrange the processing loop in
-	md_begin() accordingly, at the same time folding the two calls to
-	notes_alloc() into just one.
-
-	x86: add generated tables dependency check to gas
-	As requested by H.J., just for the sake of people potentially building
-	in gas/ alone, add a check that the generated files in opcodes/ are
-	actually up-to-date. Personally I think this should at best be a
-	warning, but I can see how this may not be easily noticable among other
-	make output (depending in particular on the verbosity level).
-
-	x86: break gas dependency on libopcodes
-	gas doesn't use anything from libopcodes anymore - suppress linking in
-	that library.
-
-	x86: remove i386-opc.c
-	Remove the now empty i386-opc.c. To compensate, tie table generation in
-	opcodes/ to the building of i386-dis.o, despite the file not really
-	depending on the generated data.
-
-2022-12-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: instantiate i386_{op,reg}tab[] in gas instead of in libopcodes
-	Unlike many other architectures, x86 does not share an opcode table
-	between assembly and disassembly. Any consumer of libopcodes would only
-	ever access one of the two. Since gas is the only consumer of the
-	assembly data, move it there. While doing so mark respective entities
-	"static" in i386-gen (we may want to do away with i386_regtab_size
-	altogether).
-
-	This also shrinks the number of relocations to be processed for
-	libopcodes.so by about 30%.
-
-2022-12-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-11  Alan Modra  <amodra@gmail.com>
-
-	PR29870, objdump SEGV in display_debug_lines_decoded dwarf.c:5524
-	DWARF5 directory and file table allow more opportunity for fuzzers
-	to break things.  There are likely other places in dwarf.c that should
-	be fixed too.
-
-		PR 29870
-		* dwarf.c (display_debug_lines_decoded): Handle NULL file_table
-		name entry.
-
-2022-12-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix larl handling in s390_displaced_step_fixup
-	On s390x-linux with target board unix/-m31, I run into:
-	...
-	(gdb) PASS: gdb.guile/scm-lazy-string.exp: bad length
-	print ptr^M
-	$1 = 0x804006b0 <error: Cannot access memory at address 0x804006b0>^M
-	(gdb) FAIL: gdb.guile/scm-lazy-string.exp: ptr: print ptr
-	...
-
-	A minimal example is:
-	...
-	$ gdb -q -batch -ex "set trace-commands on" -x gdb.in
-	+file scm-lazy-string
-	+break main
-	Breakpoint 1 at 0x4005d2: file scm-lazy-string.c, line 23.
-	+run
-
-	Breakpoint 1, main () at scm-lazy-string.c:23
-	23        const char *ptr = "pointer";
-	+step
-	24        const char array[] = "array";
-	+print ptr
-	$1 = 0x804006b0 <error: Cannot access memory at address 0x804006b0>
-	...
-
-	If we delete the breakpoint after running to it, we have instead the expected:
-	...
-	+delete
-	+step
-	24        const char array[] = "array";
-	+print ptr
-	$1 = 0x4006b0 "pointer"
-	...
-
-	The problem is in displaced stepping, forced by the presence of the breakpoint,
-	when stepping over this insn:
-	...
-	  0x4005d2 <main+10>      larl    %r1,0x4006b0
-	...
-
-	With normal stepping we have:
-	...
-	(gdb) p /x $r1
-	$2 = 0x3ff004006b0
-	...
-	but with displaced stepping we have instead (note the 0x80000000 difference):
-	...
-	(gdb) p /x $r1
-	$1 = 0x3ff804006b0
-	(gdb)
-	...
-
-	The difference comes from this code in s390_displaced_step_fixup:
-	...
-	  /* Handle LOAD ADDRESS RELATIVE LONG.  */
-	  else if (is_ril (insn, op1_larl, op2_larl, &r1, &i2))
-	    {
-	      /* Update PC.  */
-	      regcache_write_pc (regs, from + insnlen);
-	      /* Recompute output address in R1.  */
-	      regcache_cooked_write_unsigned (regs, S390_R0_REGNUM + r1,
-	                                      amode | (from + i2 * 2));
-	    }
-	...
-	where the "amode |" adds the 0x80000000.
-
-	Fix this by removing the "amode |".
-
-	Tested on s390-linux, with native and target board unix/-m31.
-
-	Approved-By: Ulrich Weigand <uweigand@de.ibm.com>
-
-2022-12-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	objdump: sframe: fix memory leaks
-	ChangeLog:
-
-		* binutils/objdump.c (dump_section_sframe): free up contents and
-		SFrame decoder context on exit.
-
-2022-12-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: rename API sframe_fde_func_info to sframe_fde_create_func_info
-	The new name better reflects the purpose of the function.
-
-	ChangeLog:
-
-		* bfd/elfxx-x86.c (_bfd_x86_elf_create_sframe_plt): Use new
-		name.
-		* libsframe/sframe.c (sframe_fde_create_func_info): Rename
-		sframe_fde_func_info to this.
-		* libsframe/testsuite/libsframe.encode/encode-1.c: Use new name.
-
-	include/ChangeLog:
-
-		* sframe-api.h (sframe_fde_create_func_info): Rename
-		sframe_fde_func_info to this.
-
-2022-12-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: sframe: fine tune the fragment fixup for SFrame func info
-	SFrame function info is an unsigned 8-bit field comprising of the following
-	(from LSB to MSB):
-	  - 4-bits: FRE type
-	  - 1-bit: FRE start address encoding
-	  - 3-bits: Unused
-
-	At the moment, the most-significat 4-bits are zero (The FRE start
-	address encoding of SFRAME_FDE_TYPE_PCINC has a value of zero, and the upper
-	3-bits are unused). So the current implementation works without this patch.
-
-	To be precise, however, the fragment fixup logic is meant to fixup only the
-	least-significant 4-bits (i.e., only the FRE type needs to be updated
-	according to the function size).
-
-	This patch makes the gas implementation a bit more resilient: In the
-	future, when the format does evolve to make use of the currently unused
-	3-bits in various ways, the values in those 3-bits can be propagated
-	unchanged while the fragment fixup continues to update the lowermost
-	4-bits to indicate the selected FRE type.
-
-	ChangeLog:
-
-		* gas/gen-sframe.c (create_func_info_exp): New definition.
-		(output_sframe_funcdesc): Call create_func_info_exp.
-		* gas/sframe-opt.c (sframe_estimate_size_before_relax): The
-		associated fragment uses O_modulus now.
-		(sframe_convert_frag): Adjust the fragment fixup code according
-		to the new composite exp.
-
-2022-12-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe: gas: libsframe: define constants and remove magic numbers
-	Define constants in sframe.h for the various limits associated with the
-	range of offsets that can be encoded in the start address of an SFrame
-	FRE. E.g., sframe_frame_row_entry_addr1 is used when start address
-	offset can be encoded as 1-byte unsigned value.
-
-	Update the code in gas to use these defined constants as it checks for
-	these limits, and remove the usage of magic numbers.
-
-	ChangeLog:
-
-		* gas/sframe-opt.c (sframe_estimate_size_before_relax):
-		(sframe_convert_frag): Do not use magic numbers.
-		* libsframe/sframe.c (sframe_calc_fre_type): Likewise.
-
-	include/ChangeLog:
-
-		* sframe.h (SFRAME_FRE_TYPE_ADDR1_LIMIT): New constant.
-		(SFRAME_FRE_TYPE_ADDR2_LIMIT): Likewise.
-		(SFRAME_FRE_TYPE_ADDR4_LIMIT): Likewise.
-
-2022-12-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe.h: make some macros more precise
-	include/ChangeLog:
-
-		* sframe.h (SFRAME_V1_FUNC_INFO): Use specific bits only.
-		(SFRAME_V1_FRE_INFO): Likewise.
-
-2022-12-09  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libsframe: minor formatting nits
-	ChangeLog:
-
-		* libsframe/sframe.c: Fix formatting nits.
-
-2022-12-09  Luis Machado  <luis.machado@arm.com>
-
-	[aarch64] Add TPIDR2 register support for Linux
-	With the AArch64 Scalable Matrix Extension we have a new TPIDR2 register, and
-	it will be added to the existing NT_ARM_TLS register set. Kernel patches are
-	being reviewed here:
-
-	https://lore.kernel.org/linux-arm-kernel/20220818170111.351889-1-broonie@kernel.org/
-
-	From GDB's perspective, we handle it in a similar way to the existing TPIDR
-	register. But we need to consider cases of systems that only have TPIDR and
-	systems that have both TPIDR and TPIDR2.
-
-	With that in mind, the following patch adds the required code to support
-	TPIDR2 and turns the org.gnu.gdb.aarch64.tls feature into a
-	dynamically-generated target description as opposed to a static target
-	description containing only TPIDR.
-
-	That means we can remove the gdb/features/aarch64-tls.xml file and replace the
-	existing gdb/features/aarch64-tls.c auto-generated file with a new file that
-	dynamically generates the target description containing either TPIDR alone or
-	TPIDR and TPIDR2.
-
-	In the future, when *BSD's start to support this register, they can just
-	enable it as is being done for the AArch64 Linux target.
-
-	The core file read/write code has been updated to support TPIDR2 as well.
-
-	On GDBserver's side, there is a small change to the find_regno function to
-	expose a non-throwing version of it.
-
-	It always seemed strange to me how find_regno causes the whole operation to
-	abort if it doesn't find a particular register name. The patch moves code
-	from find_regno into find_regno_no_throw and makes find_regno call
-	find_regno_no_throw instead.
-
-	This allows us to do register name lookups to find a particular register
-	number without risking erroring out if nothing is found.
-
-	The patch also adjusts the feature detection code for aarch64-fbsd, since
-	the infrastructure is shared amongst all aarch64 targets. I haven't added
-	code to support TPIDR2 in aarch64-fbsd though, as I'm not sure when/if
-	that will happen.
-
-2022-12-09  Alan Modra  <amodra@gmail.com>
-
-	PR28306, segfault in _bfd_mips_elf_reloc_unshuffle
-	Access to section data during relocation processing should be bounds
-	checked, as it is in bfd_perform_relocation.  bfd_perform_relocation
-	does these checks after any special_function is called.  So a reloc
-	special_function needs to do its own bounds checking before accessing
-	section data.  This patch adds many such checks to the mips backend.
-
-	Checking mips relocs is not without some difficulty.  See the comment
-	in _bfd_mips_reloc_offset_in_range.  In a multitple reloc sequence
-	applied to the same location, relocs that may appear somewhere other
-	than the last one of the sequence need to be treated specially since
-	they apply to the addend for the next relocation rather than the
-	section contents.  If the addend is in the section then it needs to be
-	checked but not when the addend is in the reloc.  check_inplace
-	handles this situation.  _bfd_mips_reloc_offset_in_range with
-	check_shuffle handles the case where contents are shuffled before
-	applying the relocation.
-
-		PR 28306
-		* elf32-mips.c (_bfd_mips_elf32_gprel16_reloc): Check reloc
-		address using _bfd_mips_reloc_offset_in_range.
-		(gprel32_with_gp, mips16_gprel_reloc): Likewise.
-		* elf64-mips.c (mips_elf64_gprel32_reloc): Likewise.
-		(mips16_gprel_reloc): Likewise.
-		* elfn32-mips.c (mips16_gprel_reloc): Likewise.
-		(gprel32_with_gp): Check reloc address using
-		bfd_reloc_offset_in_range.
-		* elfxx-mips.h (enum reloc_check): Define.
-		(_bfd_mips_reloc_offset_in_range): Declare.
-		* elfxx-mips.c (needs_shuffle): New function.
-		(_bfd_mips_elf_reloc_unshuffle, _bfd_mips_elf_reloc_shuffle): Use it.
-		(_bfd_mips_reloc_offset_in_range): New function.
-		(_bfd_mips_elf_gprel16_with_gp): Move reloc address checks to
-		partial_inplace handling.  Use bfd_reloc_offset_in_range.
-		(_bfd_mips_elf_lo16_reloc): Check reloc address using
-		bfd_reloc_offset_in_range.
-		(_bfd_mips_elf_generic_reloc): Check reloc address using
-		_bfd_mips_reloc_offset_in_range.
-		(mips_elf_calculate_relocation): Check reloc address before calling
-		mips_elf_nullify_got_load.
-		(_bfd_mips_elf_check_relocs): Likewise.
-		(mips_elf_read_rel_addend): Add sec param, check reloc address
-		before reading.  Adjust callers.
-		(mips_elf_add_lo16_rel_addend): Add sec param, adjust callers.
-
-2022-12-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/scm-symtab.exp for ppc64le
-	On powerpc64le-linux, I run into:
-	...
-	(gdb) PASS: gdb.guile/scm-symtab.exp: step out of func2
-	guile (print (> (sal-line (find-pc-line (frame-pc (selected-frame)))) line))^M
-	= #f^M
-	(gdb) FAIL: gdb.guile/scm-symtab.exp: test find-pc-line with resume address
-	...
-
-	The problem is as follows: the instructions for the call to func2 are:
-	...
-	    1000070c:   39 00 00 48     bl      10000744 <func1>
-	    10000710:   00 00 00 60     nop
-	    10000714:   59 00 00 48     bl      1000076c <func2>
-	    10000718:   00 00 00 60     nop
-	    1000071c:   00 00 20 39     li      r9,0
-	...
-	and the corresponding line number info is:
-	...
-	scm-symtab.c:
-	File name     Line number    Starting address    View    Stmt
-	scm-symtab.c           42          0x1000070c               x
-	scm-symtab.c           43          0x10000714               x
-	scm-symtab.c           44          0x1000071c               x
-	...
-
-	The test-case looks at the line numbers for two insns:
-	- the insn of the call to func2 (0x10000714), and
-	- the insn after that (0x10000718),
-	and expects the line number of the latter to be greater than the line number
-	of the former.
-
-	However, both insns have the same line number: 43.
-
-	Fix this by replacing ">" with ">=".
-
-	Tested on x86_64-linux and powerpc64le-linux.
-
-2022-12-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-08  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86-64: Remove BND from 64-bit IBT PLT
-	Since MPX support has been removed from x86-64 psABI, remove BND from
-	64-bit IBT PLT by using x32 IBT PLT.
-
-	bfd/
-
-		PR ld/29851
-		* elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Also check
-		x32 IBT PLT for 64-bit.
-		(elf_x86_64_link_setup_gnu_properties): Always use x32 IBT PLT.
-
-	ld/
-
-		PR ld/29851
-		* testsuite/ld-x86-64/ibt-plt-1.d: Updated.
-		* testsuite/ld-x86-64/ibt-plt-2a.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-2b.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-2c.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-2d.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-3a.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-3b.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-3c.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-3d.d: Likewise.
-		* testsuite/ld-x86-64/plt-main-ibt-x32.dd: Moved to ...
-		* testsuite/ld-x86-64/plt-main-ibt.dd: This.
-		* testsuite/ld-x86-64/x86-64.exp: Don't use plt-main-ibt-x32.dd.
-
-2022-12-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require debug info for gdb.tui/tui-layout-asm-short-prog.exp
-	When running test-case gdb.tui/tui-layout-asm-short-prog.exp on SLE-12-SP3
-	aarch64, I run into:
-	...
-	FAIL: gdb.tui/tui-layout-asm-short-prog.exp: check asm box contents
-	FAIL: gdb.tui/tui-layout-asm-short-prog.exp: check asm box contents again
-	...
-	due to:
-	...
-	(gdb) file tui-layout-asm-short-prog^M
-	Reading symbols from tui-layout-asm-short-prog...^M
-	(No debugging symbols found in tui-layout-asm-short-prog)^M
-	...
-
-	I managed to reproduce the same behaviour on openSUSE Leap 15.4 x86_64, by
-	removing the debug option.
-
-	Fix this by making the test-case unsupported if no debug info is found.
-
-	Tested on x86_64-linux.
-
-2022-12-08  Enze Li  <enze.li@hotmail.com>
-
-	gdb/testsuite: update a pattern in gdb_file_cmd
-	When building GDB with the following CFLAGS and CXXFLAGS as part of
-	configure line:
-
-	    CFLAGS=-std=gnu11 CXXFLAGS=-std=gnu++11
-
-	Then run the selftest.exp, I see:
-
-	======
-	Running /home/lee/dev/binutils-gdb/gdb/testsuite/gdb.gdb/selftest.exp
-	...
-	FAIL: gdb.gdb/selftest.exp: run until breakpoint at captured_main
-	WARNING: Couldn't test self
-
-	                === gdb Summary ===
-
-	 # of unexpected failures        1
-	/home/lee/dev/binutils-gdb/gdb/gdb version  13.0.50.20221206-git -nw -nx
-	-iex "set height 0" -iex "set width 0" -data-directory
-	/home/lee/dev/binutils-gdb/gdb/testsuite/../data-directory
-	======
-
-	It is the fact that when I use the previously mentioned CFLAGS and
-	CXXFLAGS as part of the configuration line, the default value (-O2 -g)
-	is overridden, then GDB has no debug information.  When there's no debug
-	information, GDB should not run the testcase in selftest.exp.
-
-	The root cause of this FAIL is that the $gdb_file_cmd_debug_info didn't
-	get the right value ("nodebug") during the gdb_file_cmd procedure.
-
-	That's because in this commit,
-
-	  commit 3453e7e409f44a79ac6695589836edb8a49bfb08
-	  Date:   Sat May 19 11:25:20 2018 -0600
-
-	    Clean up "Reading symbols" output
-
-	It changed "no debugging..." to "No debugging..." which causes the above
-	problem.  This patch only updates the corresponding pattern to fix this
-	issue.
-
-	With this patch applied, I see:
-
-	======
-	Running /home/lee/dev/binutils-gdb/gdb/testsuite/gdb.gdb/selftest.exp
-	...
-
-	                === gdb Summary ===
-
-	 # of untested testcases         1
-	/home/lee/dev/binutils-gdb/gdb/gdb version  13.0.50.20221206-git -nw -nx
-	-iex "set height 0" -iex "set width 0" -data-directory
-	/home/lee/dev/binutils-gdb/gdb/testsuite/../data-directory
-	======
-
-	Tested on x86_64-linux.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-08  Nick Clifton  <nickc@redhat.com>
-
-	Update the description of the linker script's TYPE directive.
-		PR 29861
-		* ld.texi (Output Section Type): Note that setting the output
-		section type only works if the section contains untyped data.
-
-2022-12-08  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb: skip objfiles with no BFD in DWARF unwinder
-	While playing with JIT reader I experienced GDB to crash on null-pointer
-	dereference when stepping through non-jitted code.
-
-	The problem was that dwarf2_frame_find_fde () assumed that all objfiles
-	have BFD but that's not always true. To address this problem, this
-	commit skips such objfiles.
-
-	To test the fix we put breakpoint in jit_function_add (). The JIT reader
-	does not know how unwind this function so unwinding eventually falls
-	back to DWARF unwinder which in turn iterates over objfiles. Since the
-	the code is jitted, it is guaranteed it would eventually process JIT
-	objfile.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-08  Alan Modra  <amodra@gmail.com>
-
-	libctf: avoid potential double free
-		* ctf-link.c (ctf_link_add_cu_mapping): Set t NULL after free.
-
-2022-12-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-07  Peter Bergner  <bergner@linux.ibm.com>
-
-	PowerPC: Add support for RFC02655 - Saturating Subtract Instruction
-	opcodes/
-		* ppc-opc.c (XOL): New define.
-		(XOL_MASK): Likewise.
-		(powerpc_opcodes): Add subfus, subfus., subwus, subwus., subdus, subdus.
-
-	gas/
-		* testsuite/gas/ppc/rfc02655.s: New test.
-		* testsuite/gas/ppc/rfc02655.d: Likewise
-		* testsuite/gas/ppc/future-raw.s: Likewise.
-		* testsuite/gas/ppc/future-raw.d: Likewise.
-		* testsuite/gas/ppc/ppc.exp: Run them.
-
-2022-12-07  Peter Bergner  <bergner@linux.ibm.com>
-
-	PowerPC: Add support for RFC02656 - Enhanced Load Store with Length Instructions
-	opcodes/
-		* ppc-opc.c (PPCVSXF): New define.
-		(powerpc_opcodes): Add lxvrl, lxvrll, lxvprl, lxvprll, stxvrl,
-		stxvrll, stxvprl, stxvprl.
-
-	gas/
-		* testsuite/gas/ppc/rfc02656.s: New test.
-		* testsuite/gas/ppc/rfc02656.d: Likewise.
-		* testsuite/gas/ppc/ppc.exp: Run it.
-
-2022-12-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add invalidate_selected_frame function
-	Instead of using `select_frame (nullptr)` to invalidate the selected
-	frame, introduce a function to do that.  There is no change in behavior,
-	but it makes the intent a bit clearer.  It also allows adding an assert
-	in select_frame that fi is not nullptr, so it avoids passing nullptr by
-	mistake.
-
-	Change-Id: I61643f46bc8eca428334513ebdaadab63997bdd0
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2022-12-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add KFAILs in gdb.base/longjmp.exp
-	Add KFAILs in test-case gdb.base/longjmp.exp for PR gdb/26967, covering
-	various ways that gdb is unable to recover the longjmp target if the libc
-	probe is not supported.
-
-	Tested on x86_64-linux.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-07  Tom Tromey  <tromey@adacore.com>
-
-	Remove unnecessary xstrdup from bppy_init
-	I saw that bppy_init used a non-const "char *".  Fixing this revealed
-	that the xstrdup here was also unnecessary, so this patch removes it.
-
-2022-12-07  Alan Modra  <amodra@gmail.com>
-
-	coff make_a_section_from_file tidy
-	Also support compressing a few more sections.
-
-		* coffgen.c (make_a_section_from_file): Rename return_section
-		to newsect.  Don't try to be clever matching section name.
-		Compress .gnu.debuglto_.debug_ and .gnu.linkonce.wi. too.
-		Only rename debug sections when decompressing for linker.
-
-2022-12-07  Alan Modra  <amodra@gmail.com>
-
-	gas compress_debug tidy
-		* write.c (compress_debug): Don't set up "ob" until after
-		seginfo NULL check.  Simplify SEC_CONTENTS test.  Localise
-		variables.  Use bfd_debug_name_to_zdebug.
-
-	_bfd_elf_slurp_secondary_reloc_section sanity check
-		* elf.c (_bfd_elf_slurp_secondary_reloc_section): Sanity check
-		section header against file size.  Avoid overflow in
-		reloc_count.
-
-	bfd_compress_section_contents access to elf_section_data
-		* compress.c (bfd_compress_section_contents): Don't access
-		elf_section_data for non-ELF.
-
-2022-12-07  Alan Modra  <amodra@gmail.com>
-
-	Compression tidy and fixes
-	Tidies:
-	- Move stuff from bfd-in.h and libbfd.c to compress.c
-	- Delete COMPRESS_DEBUG from enum compressed_debug_section_type
-	- Move compress_debug field out of link_info to ld_config.
-	Fixes:
-	- Correct test in bfd_convert_section_setup to use obfd flags,
-	  not ibfd.
-	- Apply bfd_applicable_file_flags to compression bfd flags added
-	  by gas and ld to the output bfd.
-
-	bfd/
-		* bfd-in.h (enum compressed_debug_section_type),
-		(struct compressed_type_tuple),
-		(bfd_get_compression_algorithm),
-		(bfd_get_compression_algorithm_name),
-		* libbfd.c (compressed_debug_section_names),
-		(bfd_get_compression_algorithm),
-		(bfd_get_compression_algorithm_name): Move..
-		* compress.c: ..to here, deleting COMPRESS_DEBUG from
-		enum compressed_debug_section_type.
-		(bfd_convert_section_setup): Test obfd flags not ibfd for
-		compression flags.
-		* elf.c (elf_fake_sections): Replace link_info->compress_debug
-		test with abfd->flags test.
-		* bfd-in2.h: Regenerate.
-	binutils/
-		* objcopy.c (copy_file): Tidy setting of bfd compress flags.
-		Expand comment.
-	gas/
-		* write.c (compress_debug): Test bfd compress flags rather than
-		flag_compress_debug.
-		(write_object_file): Apply bfd_applicable_file_flags to compress
-		debug flags added to output bfd.
-	include/
-		* bfdlink.h (struct bfd_link_info): Delete compress_debug.
-	ld/
-		* ld.h (ld_config_type): Add compress_debug.
-		* emultempl/elf.em: Replace references to link_info.compress_debug
-		with config.compress_debug.
-		* lexsup.c (elf_static_list_options): Likewise.
-		* ldmain.c (main): Likewise.  Apply bfd_applicable_file_flags
-		to compress debug flags added to output bfd.
-
-2022-12-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-06  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Avoid signed overflow for new_size adjustment
-	When bfd_size_type is unsigned 64-bit integer and sizeof is unsigned
-	32-bit integer, subtraction in
-
-	*new_size += sizeof (Elf32_External_Chdr) - sizeof (Elf64_External_Chdr);
-
-	will overflow.  Use
-
-	*new_size -= sizeof (Elf64_External_Chdr) - sizeof (Elf32_External_Chdr);
-
-	to avoid overflow.
-
-		PR binutils/29860
-		* compress.c (bfd_convert_section_setup): Avoid signed overflow
-		for new_size adjustment.
-
-2022-12-06  Tom Tromey  <tromey@adacore.com>
-
-	Cosmetic fix in ppc-sysv-tdep.c
-	This is just a couple of cosmetic fixes in ppc-sysv-tdep.c: fixing
-	some formatting and correcting a typo.
-
-	Fix operator precedence bug in Rust parser
-	PR rust/29859 points out an operator precedence bug in the Rust
-	parser.  This patch fixes it and adds a regression test.
-
-2022-12-06  Nick Clifton  <nickc@redhat.com>
-
-	Fix a dereference of NULL when scanning the symbol hashes array in the ARM linker.
-		PR 29852
-		* elf32-arm.c (cmse_scan): Check for NULL entries in the
-		sym_hashes array.
-		(elf32_arm_gc_mark_extra_sections): Likewise.
-
-2022-12-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix test names in gdb.base/longjmp.exp
-	When running test-case gdb.base/longjmp.exp, we have:
-	...
-	PASS: gdb.base/longjmp.exp: next over setjmp (1)
-	  ...
-	PASS: gdb.base/longjmp.exp: next over setjmp (2)
-	...
-
-	The trailing " (1)" and " (2)" are interpreted as comments rather than parts
-	of the test name, and therefore this is a duplicate, which is currently not
-	detected by our duplicate detection mechanism (PR testsuite/29772).
-
-	Fix the duplicate by using with_test_prefix.
-
-	Tested on x86_64-linux.
-
-2022-12-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Make gdb.base/longjmp.exp FAIL more stable across archs
-	When running test-case gdb.base/longjmp.exp on x86_64-linux, the master
-	longjmp breakpoint is set using probes and the test-case passes:
-	...
-	(gdb) PASS: gdb.base/longjmp.exp: next to longjmp (1)
-	next^M
-	0x00000000004005cc      49        if (setjmp (env) == 0) /* patt1 */^M
-	(gdb) PASS: gdb.base/longjmp.exp: next over longjmp(1)
-	next^M
-	56            resumes++;^M
-	(gdb) PASS: gdb.base/longjmp.exp: next into else block (1)
-	...
-
-	However, if I disable
-	create_longjmp_master_breakpoint_probe, we have instead:
-	...
-	(gdb) PASS: gdb.base/longjmp.exp: next to longjmp (1)
-	next^M
-	56            resumes++;^M
-	(gdb) FAIL: gdb.base/longjmp.exp: next over longjmp(1)
-	...
-
-	At first glance, the failure mode doesn't look too bad: we stop
-	a few insns later than the passing scenario.
-
-	For contrast, if we do the same on powerpc64le, the failure mode is:
-	...
-	(gdb) PASS: gdb.base/longjmp.exp: next to longjmp (1)
-	next^M
-	^M
-	Breakpoint 3, main () at longjmp.c:59^M
-	59        i = 1; /* miss_step_1 */^M
-	(gdb) FAIL: gdb.base/longjmp.exp: next over longjmp(1)
-	...
-	Here we only stop because of running into the safety net breakpoint at
-	miss_step_1.
-
-	So, how does this happen on x86_64?  Let's look at the code:
-	...
-	4005c7: e8 94 fe ff ff    call 400460 <_setjmp@plt>
-	4005cc: 85 c0             test %eax,%eax
-	4005ce: 75 1e             jne  4005ee <main+0x3b>
-	4005d0: 8b 05 8e 0a 20 00 mov  0x200a8e(%rip),%eax # 601064 <longjmps>
-	4005d6: 83 c0 01          add  $0x1,%eax
-	4005d9: 89 05 85 0a 20 00 mov  %eax,0x200a85(%rip) # 601064 <longjmps>
-	4005df: be 01 00 00 00    mov  $0x1,%esi
-	4005e4: bf 80 10 60 00    mov  $0x601080,%edi
-	4005e9: e8 82 fe ff ff    call 400470 <longjmp@plt>
-	4005ee: 8b 05 74 0a 20 00 mov  0x200a74(%rip),%eax # 601068 <resumes>
-	...
-	The next over the longjmp call at 4005e9 is supposed to stop at the longjmp
-	target at 4005cc, but instead we stop at 4005ee, where we have the step-resume
-	breakpoint inserted by the next.  In other words, we accidentally "return"
-	from the longjmp call to the insn immediately after it (even though
-	a longjmp is a noreturn function).
-
-	Try to avoid this accident and make the failure mode on x86_64 the same as on
-	powerpc64le, by switching the then and else branch.
-
-	Tested on x86_64-linux.
-
-2022-12-06  Xiao Zeng  <zengxiao@eswincomputing.com>
-
-	gdb/riscv: correct dwarf to gdb register number mapping
-	According to the riscv psabi, the mapping relationship between the
-	DWARF registers and the machine registers is as follows:
-
-	  DWARF Number | Register Name | Description
-	  0 - 31       | x0 - x31      | Integer Registers
-	  32 - 63      | f0 - f31      | Floating-point Registers
-
-	This is not modelled quite right in riscv_dwarf_reg_to_regnum, the
-	DWARF register numbers 31 and 63 are not handled correctly due to a
-	use of '<' instead of '<='.  This commit fixes this issue.
-
-2022-12-06  Haochen Jiang  <haochen.jiang@intel.com>
-
-	x86: Remove unnecessary vex.w check for xh_mode in disassembler
-	For all the xh_mode usage in table, they are all using %XH, which will
-	print "{bad}" while EVEX.W=1. This makes this vex.w check unnecessary.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (OP_E_memory): Remove vex.w check for xh_mode.
-
-2022-12-06  Alan Modra  <amodra@gmail.com>
-
-	Get rid of SEC_ELF_COMPRESS
-	This flag also isn't needed, except for some sanity checks which we
-	can omit.
-
-		* elf.c (elf_fake_sections): Don't set SEC_ELF_COMPRESS for
-		compressed debug sections, just leave sh_name as -1.
-		(assign_file_positions_for_non_load_sections),
-		(assign_file_positions_except_relocs): Decide whether a section
-		needs compressing and thus should not have its file offset set
-		by looking at sh_name.
-		(_bfd_elf_assign_file_positions_for_non_load): Similarly decide
-		which sections need compressing.
-		* elflink.c (bfd_elf_final_link): Don't test SEC_ELF_COMPRESS.
-		* merge.c (_bfd_write_merged_section): Likewise.
-		* section.c (SEC_ELF_COMPRESS): Don't define.
-		(SEC_ELF_PURECODE): Renumber.
-		* bfd-in2.h: Regenerate.
-
-2022-12-06  Alan Modra  <amodra@gmail.com>
-
-	Get rid of SEC_ELF_RENAME
-	SEC_ELF_RENAME is a flag used to effect section name changes when
-	compressing/decompressing zlib-gnu debug sections.  This can be
-	accomplished more directly in one of the objcopy specific bfd
-	functions.  Renaming for ld input is simplified too.  Ld input object
-	files always have BFD_DECOMPRESS set.
-
-	bfd/
-		* compress.c (bfd_convert_section_size): Rename to..
-		(bfd_convert_section_setup): ..this.  Handle objcopy renaming
-		of compressed/decompressed debug sections.
-		* elf.c (_bfd_elf_make_section_from_shdr): Only rename zdebug
-		input for linker.
-		(elf_fake_sections): Don't handle renaming of debug sections for
-		objcopy here.
-		* section.c (SEC_ELF_RENAME): Delete.
-		* bfd-in2.h: Regenerate.
-	binutils/
-		* objcopy.c (setup_section): Call bfd_convert_section_setup.
-		Don't call bfd_convert_section_size.
-
-2022-12-06  Alan Modra  <amodra@gmail.com>
-
-	Compression header enum
-	Define an enum instead of using ELFCOMPRESS_ZLIB and ELFCOMPRESS_ZSTD
-	in bfd and binutils, and move some functions from bfd.c to compress.c.
-	When looking at the COFF/PE debug compression support, I wondered
-	about extending it to support zstd.  I likely won't do that, but
-	the compression header ch_type field isn't just ELF specific if these
-	headers are to be used in COFF/PE too.
-
-	bfd/
-		* bfd.c (bfd_update_compression_header),
-		(bfd_check_compression_header, bfd_get_compression_header_size),
-		(bfd_convert_section_size, bfd_convert_section_contents): Move to..
-		* compress.c: ..here.
-		(enum compression_type): New.  Use it throughout file.
-		* elf.c (_bfd_elf_make_section_from_shdr): Replace uses of
-		ELFCOMPRESS_ZLIB and ELFCOMPRESS_ZSTD with ch_compress_zlib and
-		ch_compress_zstd.
-		* bfd-in2.h: Regenerate.
-	binutils/
-		* readelf.c (process_section_headers, dump_section_as_strings),
-		(dump_section_as_bytes, load_specific_debug_section): Replace
-		uses of ELFCOMPRESS_ZLIB and ELFCOMPRESS_ZSTD with
-		ch_compress_zlib and ch_compress_zstd.
-
-2022-12-06  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: Fix dynamic reloc not generated bug in some cases.
-	bfd/ChangeLog:
-
-		* elfnn-loongarch.c (loongarch_elf_relocate_section): Likewise.
-
-2022-12-06  Alan Modra  <amodra@gmail.com>
-
-	PR29855, ch_type in bfd_init_section_decompress_status can be uninitialized
-		PR 29855
-		* compress.c (bfd_init_section_decompress_status): Set ch_type
-		to zero for zlib-gnu case.
-
-2022-12-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: add ptid parameter to linux_xfer_siginfo
-	Make the inferior_ptid bubble up to linux_nat_target::xfer_partial.
-
-	Change-Id: I62dbc5734c26648bb465f449c2003c73751cd812
-
-2022-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: use l linux_nat_get_siginfo in linux_xfer_siginfo
-	I noticed we could reduce duplication a bit here.
-
-	Change-Id: If24e54d1dac71b46f7c1f68a18a073d4c084b644
-
-2022-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: check ptrace return value in linux_nat_get_siginfo
-	Not a big deal, but it seems strange to check errno instead of the
-	ptrace return value to know whether it succeeded.
-
-	Change-Id: If0a6d0280ab0e5ecb077e546af0d6fe489c5b9fd
-
-2022-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: don't memset siginfo on failure in linux_nat_get_siginfo
-	No caller cares about the value of *SIGINFO on failure.  It's also
-	documented in the function doc that *SIGINFO is uninitialized (I
-	understand "untouched") on failure.
-
-	Change-Id: I5ef38a5f58e3635e109b919ddf6f827f38f1225a
-
-2022-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: bool-ify linux_nat_get_siginfo
-	Change return type to bool.
-
-	Change-Id: I1bf0360bfdd1b5994cd0f96c268d806f96fe51a4
-
-2022-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: use get_ptrace_pid in two spots
-	No behavior change expected.
-
-	Change-Id: Ifaa64ecd619483646b024fd7c62e571e92a8eedb
-
-2022-12-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: remove perror calls when failing to run
-	I noticed that when running these two tests in sequence:
-
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/arrayptr.exp ...
-	    ERROR: GDB process no longer exists
-	    ERROR: Couldn't run foo-all
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/assign_1.exp ...
-
-	The results in gdb.sum are:
-
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/arrayptr.exp ...
-	    PASS: gdb.ada/arrayptr.exp: scenario=all: compilation foo.adb
-	    ERROR: GDB process no longer exists
-	    UNRESOLVED: gdb.ada/arrayptr.exp: scenario=all: gdb_breakpoint: set breakpoint at foo.adb:40 (eof)
-	    ERROR: Couldn't run foo-all
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/assign_1.exp ...
-	    UNRESOLVED: gdb.ada/assign_1.exp: changing the language to ada
-	    PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1
-
-	The UNRESOLVED for arrayptr.exp is fine, as GDB crashes in that test,
-	while trying to run to main.  However, the UNRESOLVED in assign_1.exp
-	doesn't make sense, GDB behaves as expected in that test:
-
-	    (gdb) set lang ada^M
-	    (gdb) UNRESOLVED: gdb.ada/assign_1.exp: changing the language to ada
-	    print $xxx := 1^M
-	    $1 = 1^M
-	    (gdb) PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1
-
-	The problem is that arrayptr.exp calls perror when failing to run to
-	main, then returns.  perror makes it so that the next test (as in
-	pass/fail) will be recorded as UNRESOLVED.  However, here, the next test
-	(as in pass/fail) is in the next test (as in .exp).  Hence the spurious
-	UNRESOLVED in assign_1.exp.
-
-	These perror when failing to run to X are not really useful, especially
-	since runto records a FAIL on error, by default.  Remove all the
-	perrors on runto failure I could find.
-
-	When there wasn't one already, add a return statement when failing to
-	run, to avoid running the test of the test unnecessarily.
-
-	I thought of adding a check ran between test (in gdb_finish
-	probably) where we would emit a warning if errcnt > 0, meaning a test
-	quit and left a perror "active".  However, reading that variable would
-	poke into the DejaGNU internals, not sure it's a good idea.
-
-	Change-Id: I2203df6d06e199540b36f56470d1c5f1dc988f7b
-
-2022-12-05  Luis Machado  <luis.machado@arm.com>
-
-	Add missing newline to gdbarch_tdep debugging output
-	The missing newline causes testsuite issues because the gdb prompt gets output
-	to an unexpected location.
-
-2022-12-05  Nick Clifton  <nickc@redhat.com>
-
-	Prevent an illegal memory access when comparing the prefix of a section name regexp.
-		PR 29849
-		* ldlang.c (spec_match): Check that there is sufficient length in
-		the target name to match the spec's prefix.
-
-2022-12-05  Martin Liska  <mliska@suse.cz>
-
-	testsuite: support mold linker
-	Mold linker demotes symbols like main to be local and the patch
-	adjusts expected output from nm.
-
-	Moreover, simplify the regex patterns.
-
-2022-12-05  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdbarch.py: Fix indentation in the generated set_gdbarch_* definitions
-	Use as many tabs as possible for indentation and pad with spaces to keep
-	the argument aligned to the opening parenthesis in the line above.
-
-	Co-developed-by: Simon Marchi <simon.marchi@efficios.com>
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-05  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdbarch.py: Fix indentation in the generated gdbarch_dump function
-	Use tab for the first eight spaces of indentation, and align the gdb_printf
-	arguments to the open parenthesis of the function call.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-05  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	gdb: Update my email address in MAINTAINERS
-
-2022-12-05  Jan Beulich  <jbeulich@suse.com>
-
-	gas: add Dwarf line number test for .macro expansions
-	Before fiddling with the code let's put in place a test covering what
-	PR/gas 16908 aimed at.
-
-	gas: squash (some) .linefile from listings
-	Not so long ago we started to insert these artificially when expanding
-	certain macro-like constructs; zap them as cluttering what actually
-	results from user input.
-
-2022-12-05  Jan Beulich  <jbeulich@suse.com>
-
-	gas: avoid inserting extra newline in buffer_and_nest()
-	In "-alm" listings I've noticed an odd blank line following the inserted
-	.linefile one. This results from the explicit NL inserted being
-	redundant with the one left in place from the original input line by all
-	respective callers. Note that we need to compensate for the removed line
-	by bumping the directive argument (which in turn is decremented again in
-	s_linefile() before calling new_logical_line_flags(), and I have to
-	confess that when putting together the original change I was a little
-	puzzled by the imbalance of increments/decrements, but then I forgot to
-	actually go look for the cause).
-
-	While there also switch to sb_add_string() instead of effectively open-
-	coding it to some degree.
-
-2022-12-05  Jan Beulich  <jbeulich@suse.com>
-
-	Arm: .noinit and .persistent are not supported for Linux targets
-	Respective tests being run means guaranteed failures.
-
-2022-12-05  Nick Clifton  <nickc@redhat.com>
-
-	Fix an illegal memory access when parsing a corrupt VMS Alpha file.
-		PR 29848
-		* vms-alpha.c (parse_module): Fix potential out of bounds memory
-		access.
-
-2022-12-05  Andrew Burgess  <aburgess@redhat.com>
-
-	libopcodes/mips: add support for disassembler styling
-	This commit adds disassembler styling support for MIPS.  After this
-	commit objdump and GDB will style disassembler output.
-
-	This is a pretty straight forward change, we switch to use the
-	disassemble_info::fprintf_styled_func callback, and pass an
-	appropriate style through as needed.  No additional tricks were
-	needed (compared to say i386, or ARM).
-
-	Tested by running all of the objdump commands used by the gas
-	testsuite and manually inspecting the styled output, everything looks
-	reasonable, though I'm not a MIPS expert, so it is possible that I've
-	missed some corner cases.  Worst case though is that something will be
-	styled incorrectly, the actual content should be unchanged.
-
-	All the gas, ld, and binutils tests still pass for me.
-
-2022-12-05  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/mips: use .word/.short for undefined instructions
-	While working on disassembler styling for MIPS, I noticed that
-	undefined instructions are printed by the disassembler as raw number
-	with no assembler directive prefix (e.g. without .word or .short).
-
-	I think adding something like .word, or .short, helps to make it
-	clearer the size of the value that is being displayed, and is inline
-	with what many of the other libopcode disassemblers do.
-
-	In this commit I've added the .word and .short directives, and updated
-	all the tests that I spotted that failed as a result.
-
-2022-12-05  Alan Modra  <amodra@gmail.com>
-
-	Re: Renaming .debug to .zdebug and vice versa
-		* compress.c (bfd_debug_name_to_zdebug): Fix C++ compile error.
-		(bfd_zdebug_name_to_debug): Likewise.
-		* bfd-in2.h: Regenerate.
-
-2022-12-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-04  Alan Modra  <amodra@gmail.com>
-
-	PR29846, segmentation fault in objdump.c compare_symbols
-	Fixes a fuzzed object file problem where plt relocs were manipulated
-	in such a way that two synthetic symbols were generated at the same
-	plt location.  Won't occur in real object files.
-
-		PR 29846
-		PR 20337
-		* objdump.c (compare_symbols): Test symbol flags to exclude
-		section and synthetic symbols before attempting to check flavour.
-
-2022-12-04  Alan Modra  <amodra@gmail.com>
-
-	COFF compressed debug support
-	Since commit 4bea06d73c04 COFF support for compressed debug sections
-	has been broken due to the "flags" variable not getting SEC_HAS_CONTENTS.
-
-		* coffgen.c (make_a_section_from_file): Correct section flags
-		handling.  Delete extraneous condition.  Update error messages
-		to be the same as in elf.c.
-
-2022-12-04  Alan Modra  <amodra@gmail.com>
-
-	Renaming .debug to .zdebug and vice versa
-	Move a couple of elf.c functions to compress.c.
-
-		* compress.c (bfd_debug_name_to_zdebug): New inline function.
-		(bfd_zdebug_name_to_debug): Likewise.
-		* elf.c (convert_debug_to_zdebug, convert_zdebug_to_debug): Delete.
-		(_bfd_elf_make_section_from_shdr, elf_fake_sections),
-		(_bfd_elf_assign_file_positions_for_non_load): Adjust to suit.
-		* coffgen.c (make_a_section_from_file): Use new inlines here.
-
-2022-12-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-03  H.J. Lu  <hjl.tools@gmail.com>
-
-	Revert "ld: Add .note.GNU-stack to ld-plugin/dummy.s"
-	This reverts commit 44e59b5a7d8a874f6546a1471b8a003911853aa0.
-
-	It works only for ELF targets.
-
-2022-12-03  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Add .note.GNU-stack to ld-plugin/dummy.s
-		* testsuite/ld-plugin/dummy.s: Add .note.GNU-stack.
-
-2022-12-03  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Allow 16-bit register source for LAR and LSL
-	Since LAR and LSL only access 16 bits of the source operand, regardless
-	of operand size, allow 16-bit register source for LAR and LSL, and always
-	disassemble LAR and LSL with 16-bit source operand.
-
-	gas/
-
-		PR gas/29844
-		* testsuite/gas/i386/i386.s: Add tests for LAR and LSL.
-		* testsuite/gas/i386/x86_64.s: Likewise.
-		* testsuite/gas/i386/intelbad.s: Remove "lar/lsl eax, ax".
-		* testsuite/gas/i386/i386-intel.d: Updated.
-		* testsuite/gas/i386/i386.d: Likewise.
-		* testsuite/gas/i386/intel-intel.d: Likewise.
-		* testsuite/gas/i386/intel.d: Likewise.
-		* testsuite/gas/i386/intelbad.l: Likewise.
-		* testsuite/gas/i386/x86_64-intel.d: Likewise.
-		* testsuite/gas/i386/x86_64.d: Likewise.
-
-	opcodes/
-
-		PR gas/29844
-		* i386-dis.c (MOD_0F02): Removed.
-		(MOD_0F03): Likewise.
-		(dis386_twobyte): Restore larS and lslS.
-		(mod_table): Remove MOD_0F02 and MOD_0F03.
-		* i386-opc.tbl: Allow 16-bit register source for LAR and LSL.
-		* i386-tbl.h: Regenerated.
-
-2022-12-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: add pid parameter to linux_proc_xfer_memory_partial
-	Add a pid parameter to linux_proc_xfer_memory_partial, making the
-	inferior_ptid reference bubble up close to the target_ops::xfer_partial
-	boundary.  No behavior change expected.
-
-	Change-Id: I58171b00ee1bba1ea22efdbb5dcab8b1ab3aac4c
-
-2022-12-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add some debug statements to solib-svr4.c
-	Add a few debug statements that were useful to me when debugging why the
-	glibc probes interface wasn't getting used.
-
-	Change-Id: Ic20744f9fc80a90f196896b0829949411620c540
-
-2022-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: merge solib-frv aix-solib debug options into "set/show debug solib"
-	solib implementations are typically used one at a time.  So it will be
-	rare that you will want to enable debug for one solib kind, and
-	absolutely want to keep the others disabled.  To make things simpler,
-	instead of adding separate variables / macros / commands for each solib
-	implementation, merge the existing ones (frv and aix) into a unified
-	"set/show debug solib", with the solib_debug_printf macro.
-
-	Change-Id: I6e18bbc7401724f37ae66681badb079d75ecf7fa
-
-2022-12-02  Nick Clifton  <nickc@redhat.com>
-
-	Add Jan Beulich as an x86_64 maintainer.
-
-2022-12-02  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop most OPERAND_TYPE_* (and rework the rest)
-	With the general use of C99 there's no need anymore to have i386-gen
-	produce these. For more frequently used ones introduce local #define-s,
-	while others are simply spelled out directly. While doing this move
-	some static constants into more narrow scopes.
-
-	Note that as a "side effect" this corrects type_names[]'es imm8s entry.
-
-2022-12-02  Jan Beulich  <jbeulich@suse.com>
-
-	x86: simplify and slightly correct XCHG vs NOP checking
-	For one, because of CheckRegSize, there's no need to check the size of
-	both (register) operands. And then in process_suffix() check opcode
-	space rather than the (potentially ambiguous) extension opcode.
-
-	x86: also use D for XCHG and TEST
-	Leverage the C (commutative) attribute to also reduce the number of XCHG
-	and TEST templates we have. This way the reg <-> r/m (and reg <-> reg for
-	XCHG) forms can also be folded into a single template each, utilizing D.
-
-2022-12-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Prevent timeout in gdb.ada/float-bits.exp
-	Recent commit 32a5aa26256 ("[gdb/testsuite] Fix gdb.ada/float-bits.exp
-	for powerpc64le") started using command "maint print architecture", which
-	produces ~275 lines.
-
-	Rewrite the corresponding gdb_test_multiple to read line-by-line, to prevent
-	timeouts on slower test setups.
-
-	Note that this doesn't fix a timeout in the test-case on aarch64 due to:
-	...
-	gdbarch_dump: read_core_file_mappings = <0x817438>
-	(gdb) aarch64_dump_tdep: Lowest pc = 0x0x8000
-	...
-
-	Tested on x86_64-linux.
-
-2022-12-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-12-01  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, fix gdb.reverse/finish-reverse-bkpt.exp and gdb.reverse/next-reverse-bkpt-over-sr.exp
-	The tests set a break point with the command break *func.  This sets a
-	breakpoint on the first instruction of the function.  PowerPC uses
-	Global Entry Points (GEP) and Local Entry Points (LEP).  The first
-	instruction in the function is the GEP.  The GEP sets up register
-	r2 before reaching the LEP.  When the function is called with func() the
-	function is entered via the LEP and the test fails because GDB does not
-	see the breakpoint on the GEP.  However, if the function is called via a
-	function pointer, execution begins at the GEP as the test expects.
-
-	Currently finish-reverse-bkpt.exp uses source file finish-reverse.c and
-	next-reverse-bpkt-over-sr.exp uses source file step-reverse.c  A new
-	source file was created for tests finish-reverse-bkpt.exp and
-	next-reverse-bkpt-over-sr.exp.  The new files use the new function
-	pointer method to call the functions so the tests will work correctly on
-	both PowerPC with a GEP and LEP as well as on other systems.  The GEP is
-	the same as the LEP on non PowerPC systems.
-
-	The expect files were changed to use the new source files and to set the
-	initial break point for the rest of the test on the function pointer call
-	for the function.
-
-	This patch fixes two PowerPC test failures in each of the tests
-	gdb.reverse/finish-reverse-bkpt.exp and
-	gdb.reverse/next-reverse-bkpt-over-sr.exp.
-
-	Patch tested on PowerPC and Intel X86-64 with no regressions.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2022-12-01  Tom Tromey  <tromey@adacore.com>
-
-	Remove call to registers_changed from windows-nat.c
-	I noticed that windows_nat_target::interrupt calls registers_changed.
-	However, I don't think there's any reason to do this, because this
-	will happen automatically when the inferior stop is processed.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-01  Tom Tromey  <tromey@adacore.com>
-
-	Remove the_windows_nat_target global
-	I belatedly realized that the "the_windows_nat_target" global isn't
-	really necessary.  It's only used in one place, where 'this' would be
-	simpler and clearer.  This patch removes the global entirely.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-12-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make frame_register static
-	It is only used inside frame.c.
-
-	Change-Id: I44eb46a5992412f8f8b4954b2284b0ef3b549504
-
-2022-12-01  Tom Tromey  <tromey@adacore.com>
-
-	Add name canonicalization for C
-	PR symtab/29105 shows a number of situations where symbol lookup can
-	result in the expansion of too many CUs.
-
-	What happens is that lookup_signed_typename will try to look up a type
-	like "signed int".  In cooked_index_functions::expand_symtabs_matching,
-	when looping over languages, the C++ case will canonicalize this type
-	name to be "int" instead.  Then this method will proceed to expand
-	every CU that has an entry for "int" -- i.e., nearly all of them.  A
-	crucial component of this is that the caller, objfile::lookup_symbol,
-	does not do this canonicalization, so when it tries to find the symbol
-	for "signed int", it fails -- causing the loop to continue.
-
-	This patch fixes the problem by introducing name canonicalization for
-	C.  The idea here is that, by making C and C++ agree on the canonical
-	name when a symbol name can have multiple spellings, we avoid the bad
-	behavior in objfile::lookup_symbol (and any other such code -- I don't
-	know if there is any).
-
-	Unlike C++, C only has a few situations where canonicalization is
-	needed.  And, in particular, due to the lack of overloading (thus
-	avoiding any issues in linespec) and due to the way c-exp.y works, I
-	think that no canonicalization is needed during symbol lookup -- only
-	during symtab construction.  This explains why lookup_name_info is not
-	touched.
-
-	The stabs reader is modified on a "best effort" basis.
-
-	The DWARF reader needed one small tweak in dwarf2_name to avoid a
-	regression in dw2-unusual-field-names.exp.  I think this is adequately
-	explained by the comment, but basically this is a scenario that should
-	not occur in real code, only the gdb test suite.
-
-	lookup_signed_typename is simplified.  It used to search for two
-	different type names, but now gdb can search just for the canonical
-	form.
-
-	gdb.dwarf2/enum-type.exp needed a small tweak, because the
-	canonicalizer turns "unsigned integer" into "unsigned int integer".
-	It seems better here to use the correct C type name.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29105
-	Tested-by: Simon Marchi <simark@simark.ca>
-	Reviewed-by: Andrew Burgess <aburgess@redhat.com>
-
-2022-12-01  Tom Tromey  <tromey@adacore.com>
-
-	Refactor cooked_index::do_finalize
-	This refactors cooked_index::do_finalize, reordering an 'if' to make
-	it a little less redundant.  This change makes a subsequent patch
-	easier to read.
-
-	Reviewed-by: Andrew Burgess <aburgess@redhat.com>
-
-2022-12-01  Tom Tromey  <tromey@adacore.com>
-
-	Remove language check from dwarf2_compute_name
-	dwarf2_compute_name has a redundant check of the CU's language -- this
-	is also checked in dwarf2_canonicalize_name.  Removing this slightly
-	simplifies a future patch.
-
-	Reviewed-by: Andrew Burgess <aburgess@redhat.com>
-
-2022-12-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/dwarf: add some QUIT macros
-	While testing the fix for PR 29105, I noticed I couldn't ctrl-C my way
-	out of GDB expanding many symtabs.  GDB was busy in a loop in
-	cooked_index_functions::expand_symtabs_matching.  Add a QUIT there.  I
-	also happened to see a spot in
-	cooked_index_functions::expand_matching_symbols where a QUIT would be
-	useful too, since we iterate over a potentially big number of index
-	entries and expand CUs in the loop.  Add one there too.
-
-	Change-Id: Ie1d650381df7f944c16d841b3e592d2dce7306c3
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-12-01  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove prune_threads in thread_db_target::update_thread_list
-	Pedro mentioned that this prune_threads call in
-	thread_db_target::update_thread_list was not needed, and it was probably
-	an oversight to leave it there in the work following commit e8032dde10b
-	("Push pruning old threads down to the target").  That commit changed
-	the "find new threads" target operation to "update thread list", making
-	the target responsible of adding new threads and removing exited
-	threads, rather than just adding new threads.  Commit e8032dde10b moved
-	the prune_threads calls previously done in common code into each
-	target's update_thread_list method, in order to keep the existing
-	behavior, which is why this prune_threads call ended up there.
-
-	In the mean time, the linux-nat target was taught to update_thread_list,
-	and thread_db_target::update_thread_list defers to that for any live
-	inferior, so the prune_threads call is not needed there.  Otherwise, the
-	thread_db_target::update_thread_list implementation based on
-	td_ta_thr_iter_p only knows how to add new threads, not how to delete
-	exited threads, but that is only used for non-live inferiors, where
-	threads can't exit anyway.  So the prune_threads call is not needed for
-	that case either.
-
-	Change-Id: I127fd4f84c25086f97853dadf34c5cec6816840d
-	Approved-By: Pedro Alves <pedro@palves.net>
-
-2022-12-01  H.J. Lu  <hjl.tools@gmail.com>
-
-	opcodes: Remove i386-init.h and i386-tbl.h from HFILES
-	i386-init.h and i386-tbl.h are generated files.  There is nothing to
-	translate.  Remove them from HFILES (POTFILES).
-
-		* Makefile.am (HFILES): Remove i386-init.h and i386-tbl.h.
-		* Makefile.in: Regenerated.
-		* po/POTFILES.in: Likewise.
-
-2022-12-01  Tom Tromey  <tromey@adacore.com>
-
-	Avoid timeouts in gdb.compile
-	PR compile/29541 points out that some of the C++ tests in gdb.compile
-	will time out when the glibc debuginfo is installed.  This was
-	interfering with my hacking on gdb by making test runs extremely long,
-	so I looked into it.
-
-	Internally the bug seems to be that gdb tries to convert multiple
-	symbols named "var" via the compiler interface; one such symbol (I
-	didn't track it down too far) causes the C++ compiler plugin to crash.
-
-	Unfortunately, the crash is reported as a timeout, as the gdb side of
-	the plugin simply hangs.  This seems like a bug in the plugin RPC
-	mechanism and, worse, apparently when I wrote this stuff I didn't
-	really consider error reporting very much at all, so gdb can't really
-	detect failures in the first place.
-
-	Anyway... this patch works around the timeout by compiling a simple
-	test that should provoke this bug, and then using "untested" if it
-	notices a GCC crash.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29541
-
-2022-12-01  Tom Tromey  <tromey@adacore.com>
-
-	Remove obsolete check from skip_compile_feature_tests
-	skip_compile_feature_tests checks for "Command not supported on this
-	host", but this error was removed by commit e8d8cce6 ("Import mkdtemp
-	gnulib module, fix mingw build").  This patch removes the obsolete
-	test.
-
-	Remove one copy of skip_compile_feature_tests
-	I noticed that there are two identical copies of
-	skip_compile_feature_tests in the test suite.  This removes one from
-	gdb.exp, in favor of the one in compile-support.exp.
-
-2022-12-01  Clément Chigot  <chigot@adacore.com>
-
-	binutils: improve holes detection in .debug_loclists.
-	The previous warnings about holes in .debug_loclists sections don't
-	take into account the headers of each CU and could include the locviews
-	if they precede the loclist.
-
-	The following warning can be triggered between two CU.
-	    ... <previous CU views> ...
-	    0000001d <End of list>
-
-	    0000002a v000000000000000 v000000000000000 location view pair
-	    0000002c v000000000000000 v000000000000000 location view pair
-
-	readelf: Warning: There is a hole [0x1e - 0x2e] in .debug_loclists section.
-	    0000002e v000000000000000 v000000000000000 views at 0000002a for:
-	    ...
-
-	But [0x1e - 0x2a] corresponds to the CU header and  [0x2a - 0x2e] are
-	the locviews.  Thus there is no hole here.
-
-	binutils/ChangeLog:
-
-		* dwarf.c (display_debug_loc): Adjust holes detections for
-		headers and locviews.
-
-2022-12-01  Nick Clifton  <nickc@redhat.com>
-
-	Fix verilog output when the width is > 1.
-		PR 25202
-	bfd	* bfd.c (VerilogDataEndianness): New variable.
-		(verilog_write_record): Use VerilogDataEndianness, if set, to
-		choose the endianness of the output.
-		(verilog_write_section): Adjust the address by the data width.
-
-	binutils* objcopy.c (copy_object): Set VerilogDataEndianness to the
-		endianness of the input file.
-		(copy_main): Verifiy the value set by the --verilog-data-width
-		option.
-		* testsuite/binutils-all/objcopy.exp: Add tests of the new behaviour.
-		* testsuite/binutils-all/verilog-I4.hex: New file.
-
-2022-12-01  Jan Beulich  <jbeulich@suse.com>
-
-	x86: rework of match_template()'s suffix checking
-	(Ab)using i386_opcode_modifier for this has been overkill, as the logic
-	doesn't really require the full structure. With the removal of
-	LONG_DOUBLE_MNEM_SUFFIX and No_ldSuf there's no good reason at all
-	anymore to pull out such a loop invariant: We're dealing a check of a
-	bit in the loop for a simple comparison. Do the original compares inside
-	the loop, thus also making it easier to understand what is actually
-	being checked.
-
-	x86: drop No_ldSuf
-	With LONG_DOUBLE_MNEM_SUFFIX gone there'salso no use for No_ldSuf
-	anymore.
-
-	x86/Intel: drop LONG_DOUBLE_MNEM_SUFFIX
-	With the removal of its use for FPU insns the suffix is now finally
-	properly misnamed. Drop its use altogether, replacing it by a separate
-	boolean instead.
-
-	x86/Intel: restrict use of LONG_DOUBLE_MNEM_SUFFIX
-	As a comment near the top of match_template() already says: We really
-	only need this pseudo-suffix for far branch handling. Stop "deriving" it
-	for floating point insns. (Don't bother renaming the now properly
-	misnamed LONG_DOUBLE_MNEM_SUFFIX, to e.g. FAR_BRANCH_SUFFIX - it's going
-	to disappear anyway.)
-
-2022-12-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Wait longer for core generation
-	When I run the gdb testsuite on a powerpc64le-linux system with (slow) nfs
-	file system, I run into timeouts due to core generation, like for instance:
-	...
-	(gdb) gcore $outputs/gdb.ada/task_switch_in_core/crash.gcore^M
-	FAIL: gdb.ada/task_switch_in_core.exp: save a corefile (timeout)
-	...
-
-	Fix this by using with_timeout_factor 3 in gdb_gcore_cmd.
-
-	Tested on powerpc64le-linux.
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-12-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/float-bits.exp for powerpc64le
-	On powerpc64le-linux, I run into:
-	...
-	(gdb) print 16llf#4000921fb54442d18469898cc51701b8#^M
-	$9 = <invalid float value>^M
-	(gdb) FAIL: gdb.ada/float-bits.exp: print \
-	  16llf#4000921fb54442d18469898cc51701b8#
-	...
-
-	The problem is that we're using a hex string for the 128-bit IEEE quad long
-	double format, but the actual long double float format is:
-	...
-	gdbarch_dump: long_double_format = floatformat_ibm_long_double_little^M
-	...
-
-	Fix this by using the hex string obtained by compiling test.c:
-	...
-	long double a = 5.0e+25L;
-	...
-	like so:
-	...
-	$ gcc -mlittle test.c -c -g
-	...
-	and running gdb:
-	...
-	$ gdb -q -batch test.o -ex "p /x a"
-	$1 = 0xc1e1c000000000004544adf4b7320335
-	...
-	and likewise for -mbig:
-	...
-	$ gdb -q -batch test.o -ex "p /x a"
-	$1 = 0x4544adf4b7320335c1e1c00000000000
-	...
-
-	Tested on powerpc64le-linux.
-
-	I excercised the case of floatformat_ibm_long_double_big by
-	using "set endian big" in the test-case.
-
-	Note that for this patch to work correctly, recent commit aaa79cd62b8 ("[gdb]
-	Improve printing of float formats") is required.
-
-	PR testsuite/29816
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29816
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-12-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATEs in s390-multiarch.exp
-	On s390x-linux, I run into:
-	...
-	DUPLICATE: gdb.arch/s390-multiarch.exp: Linux v2
-	DUPLICATE: gdb.arch/s390-multiarch.exp: Linux v2
-	DUPLICATE: gdb.arch/s390-multiarch.exp: Linux v2
-	...
-
-	Fix this by using with_test_prefix.
-
-	Tested on s390x-linux.
-
-2022-11-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Enable gdb.arch/s390-disassembler-options.exp for --enable-targets=all
-	On s390x-linux, I run into:
-	...
-	DUPLICATE: gdb.arch/s390-disassembler-options.exp: \
-	  show disassembler-options esa
-	...
-
-	First, reproduce this on x86_64-linux with --enable-targets=all, by replacing
-	the test for 'istarget "s390*-*-*"' with a test for 'get_set_option_choices
-	"set architecture" "s390"'.
-
-	Fix the DUPLICATE by using with_test_prefix.
-
-	Also modernize the test-case by using clean_restart instead of gdb_exit/gdb_start.
-
-	Tested on x86_64-linux.
-
-2022-11-30  Michael Matz  <matz@suse.de>
-
-	section-select: Fix exclude-file-3
-	this testcase wasn't correctly testing everything, it passed, even
-	though sections from an excluded file were included.  Fixing this
-	reveals a problem in the new section selector.  This fixes that as
-	well.
-
-	section-select: Remove unused code
-	walk_wild_file, hence walk_wild_section and walk_wild_section_handler
-	aren't called with the prefix tree.  Hence initialization of the latter
-	and all potential special cases for it aren't used anymore.  That also
-	removes the need to handler_data[] and some associated helper functions.
-	So, remove all of that.
-
-2022-11-30  Michael Matz  <matz@suse.de>
-
-	section-select: Implement a prefix-tree
-	Now that we have a list of potentially matching sections per wild
-	statement we can actually pre-fill that one by going once over all input
-	sections and match their names against a prefix-tree that points to the
-	potentially matching wild statements.
-
-	So instead of looking at all sections names for each glob for each wild
-	statement we now look at the sections only once and then only check
-	against those globs that have a possibility of a match at all (usually
-	only one or two).
-
-	This pushes the whole section selection off the profiles.
-
-2022-11-30  Michael Matz  <matz@suse.de>
-
-	section-select: Completely rebuild matches
-	The check_relocs callback (and others) might have created new
-	section behind our back and some of them (e.g. on powerpc the
-	"linker stubs" .got) need to come in front of all others, despite
-	being created late (a symptom would be "TOC opt*" failing on powerpc).
-
-	This resets all section matches before updating for newly created
-	sections (i.e. completely rebuilds the matches).
-
-2022-11-30  Michael Matz  <matz@suse.de>
-
-	section-select: Lazily resolve section matches
-	and remember the results.  Before this the order of section matching
-	is basically:
-
-	  foreach script-wild-stmt S
-	    foreach pattern P of S
-	      foreach inputfile I
-	        foreach section S of I
-		  match S against P
-		    if match: do action for S
-
-	And this process is done three or four times: for each top-level call to
-	walk_wild() or wild(), that is: check_input_sections, lang_gc_sections,
-	lang_find_relro_sections and of course map_input_to_output_sections.
-
-	So we iterate over all sections of all files many many times (for each
-	glob).  Reality is a bit more complicated (some special glob types don't
-	need the full iteration over all sections, only over all files), but
-	that's the gist of it.
-
-	For future work this shuffles the whole ordering a bit by lazily doing
-	the matching process and memoizing results, trading a little memory for
-	a 75% speedup of the overall section selection process.
-
-	This lazy resolution introduces a problem with sections added late
-	that's corrected in the next patch.
-
-2022-11-30  Tom Tromey  <tromey@adacore.com>
-
-	Bounds check access to Ada task state names
-	While looking into Ada tasking a little, I noticed that no bounds
-	checking is done on accesses to the Ada task state names arrays.  This
-	isn't a problem currently, but if the runtime ever added numbers -- or
-	if there was some kind of runtime corruption -- it could cause a gdb
-	crash.
-
-	This patch adds range checking.  It also adds a missing _() call when
-	printing from the 'task_states' array.
-
-2022-11-30  Tom Tromey  <tromey@adacore.com>
-
-	Use ui_file_up in mi_interp
-	This changes mi_interp to use ui_file_up rather than explicit
-	management.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-30  Tom Tromey  <tromey@adacore.com>
-
-	Rename fields of cli_interp_base::saved_output_files
-	This renames the fields of cli_interp_base::saved_output_files, as
-	requested by Simon.  I tried to choose names that more obviously
-	reflect what the field is used for.  I also added a couple of
-	comments.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Improve printing of float formats
-	Currently, on x86_64, a little endian target, I get:
-	...
-	$ gdb -q -batch -ex "maint print architecture" | grep " = floatformat"
-	gdbarch_dump: bfloat16_format = floatformat_bfloat16_big
-	gdbarch_dump: double_format = floatformat_ieee_double_big
-	gdbarch_dump: float_format = floatformat_ieee_single_big
-	gdbarch_dump: half_format = floatformat_ieee_half_big
-	gdbarch_dump: long_double_format = floatformat_i387_ext
-	...
-	which suggests big endian.
-
-	This is due to this bit of code in pformat:
-	...
-	    /* Just print out one of them - this is only for diagnostics.  */
-	    return format[0]->name;
-	...
-
-	Fix this by using gdbarch_byte_order to pick the appropriate index, such that
-	we have the more accurate:
-	...
-	gdbarch_dump: bfloat16_format = floatformat_bfloat16_little
-	gdbarch_dump: half_format = floatformat_ieee_half_little
-	gdbarch_dump: float_format = floatformat_ieee_single_little
-	gdbarch_dump: double_format = floatformat_ieee_double_little
-	gdbarch_dump: long_double_format = floatformat_i387_ext
-	...
-
-	Tested on x86_64-linux.
-
-2022-11-30  Alan Modra  <amodra@gmail.com>
-
-	Correct ordering problem in comm-data.exp
-		* testsuite/ld-elf/comm-data.exp: Build libcomm-data.so before
-		attempting to read it to set ELF64.
-
-	regen SRC-POTFILES.in
-
-2022-11-30  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: adjustment to restricted suffix derivation
-	In "x86/Intel: restrict suffix derivation" I think I screwed up
-	slightly, bringing a piece of code out of sync with its comment, and
-	resulting in a suffix potentially being derived when one isn't needed.
-
-2022-11-30  Jan Beulich  <jbeulich@suse.com>
-
-	x86: clean up after removal of support for gcc <= 2.8.1
-	At the very least a comment in process_operands() is stale. Beyond that
-	there are effectively two options:
-	1) It is possible that FADDP and FMULP were mistakenly not marked as
-	   being in need of dealing with the compiler anomaly, and hence the
-	   respective templates weren't removed at the time when they should
-	   have been.
-	2) It is also possible that there are indeed uses known beyond compiler
-	   generated output for these two commutative opcodes, and hence the
-	   templates need to stay.
-	To be on the safe side assume 2: Update the comment and fold the
-	templates into their "normal" ones (utilizing D), adjusting consuming
-	code accordingly.
-
-	For FMULP also add a comment paralleling a similar one FADDP has.
-
-2022-11-30  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop FloatR
-	There are just 4 templates using it, which can be easily identified by
-	other means, as D is set only on a very limited number of FPU templates.
-	Also move the respective conditional out of the code path taken by all
-	"reverse match" insns (it probably should have been this way already
-	before, to avoid the one conditional in the common case).
-
-	With this the templates which had FloatR dropped no longer differ from
-	their AT&T syntax + mnemonic counterparts - the only difference is now
-	which of the two would be recognized. For this, however, we don't need
-	two templates - we can simply arrange the condition for setting
-	Opcode_FloatR accordingly.
-
-2022-11-30  Jan Beulich  <jbeulich@suse.com>
-
-	x86: extend FPU test coverage for AT&T / Intel mnemonic differences
-	Before touching the templates, let's ensure we actually cover things:
-	For one FSUB{,R} and FDIV{,R} would better be tested with operands in
-	both possible orders. And then -mmnemonic=intel wasn't tested at all.
-
-2022-11-30  Joel Brobecker  <brobecker@adacore.com>
-
-	src-release.sh: Fix gdb source tarball build failure due to libsframe
-	This script was recently changed as follow:
-
-	    | commit e619dddb3a45780ae66d762756882a3b896b617d
-	    | Date:   Tue Nov 15 15:07:13 2022 -0800
-	    | Subject: src-release.sh: Add libsframe
-	    |
-	    | Add libsframe to the list of top level directories that will be included
-	    | in a release.
-
-	Since then, the gdb source tarball has been failing with the error
-	below during the "make configure-host configure-target" phase:
-
-	    | make[3]: *** No rule to make target '../libsframe/libsframe.la',
-	    |     needed by 'libbfd.la'.  Stop.
-	    | make[3]: Leaving directory '/tmp/gdb-public/bfd'
-
-	This patch fixes the issue by adding libsframe to the list of
-	GDB_SUPPORT_DIRS, similar to what was done for BINUTILS.
-
-	ChangeLog:
-
-	        * src-release.sh (GDB_SUPPORT_DIRS): Add libsframe.
-
-2022-11-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/vla-optimized-out.exp for ppc64le
-	On powerpc64le-linux, I run into:
-	...
-	(gdb) PASS: gdb.base/vla-optimized-out.exp: o1: printed optimized out vla
-	p sizeof (a)^M
-	$2 = <optimized out>^M
-	(gdb) FAIL: gdb.base/vla-optimized-out.exp: o1: \
-	  printed size of optimized out vla
-	...
-
-	The problem happens as follows.
-
-	In order to find the size of the optimized out vla, gdb needs to evaluate:
-	...
-	<155> DW_AT_upper_bound : 13 byte block: f3 1 53 23 1 8 20 24 8 20 26 31 1c \
-	  (DW_OP_GNU_entry_value: (DW_OP_reg3 (r3)); DW_OP_plus_uconst: 1;
-	   DW_OP_const1u: 32; DW_OP_shl; DW_OP_const1u: 32; DW_OP_shra; DW_OP_lit1;
-	   DW_OP_minus)
-	...
-
-	When trying to evaluate DW_OP_GNU_entry_value, it looks for a call site
-	matching the pc, but doesn't find it:
-	...
-	$ gdb -q -batch outputs/gdb.base/vla-optimized-out/vla-optimized-out-o1 \
-	  -ex "break f1" -ex run -ex "set debug entry-values 1" -ex "print sizeof (a)"
-	Breakpoint 1 at 0x1000067c: file vla-optimized-out.c, line 34.
-
-	Breakpoint 1, f1 (i=5) at vla-optimized-out.c:34
-	34      }
-	DW_OP_entry_value resolving cannot find DW_TAG_call_site 0x100006b0 in main
-	$1 = <optimized out>
-	....
-
-	The call site lookup fails because the call site label .LVL4:
-	...
-	        bl f1    # 11   *call_value_nonlocal_aixdi      [length = 8]
-	        nop
-	.LVL4:
-	...
-	is not placed directly after the bl insn.  This is gcc PR target/107909.
-
-	However, after manually fixing the .s file we have instead:
-	...
-	Cannot find matching parameter at DW_TAG_call_site 0x10000690 at main
-	$1 = <optimized out>
-	...
-	due to the fact that the call site has no call site parameters.
-
-	The call site does have a reference to the corresponding function f1, with
-	parameter i, for which we find location list entries:
-	...
-	  0037 1000067c 10000680 (DW_OP_reg3 (r3))
-	  004a 10000680 10000690 (DW_OP_GNU_entry_value: (DW_OP_reg3 (r3));
-	                          DW_OP_stack_value)
-	...
-	and we could use the fact that the current pc is in the 1000067c-10000680
-	range, and that that the range starts at the start of the function, to deduce
-	that DW_OP_GNU_entry_value: (DW_OP_reg3 (r3)) == DW_OP_reg3 (r3).
-	But that's a non-trivial enhancement, filed as enhancement PR symtab/29836.
-
-	Fix this by allowing <optimized out> for target powerpc and the gcc compiler.
-
-	Reviewed-By: Carl Love <cel@us.ibm.com>
-	Tested-By: Carl Love <cel@us.ibm.com>
-	PR testsuite/29813
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29813
-
-2022-11-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: make gdb_unload use gdb_test_multiple
-	In the failure seen by Philippe here:
-
-	  https://inbox.sourceware.org/gdb-patches/20221120173024.3647464-1-philippe.waroquiers@skynet.be/
-
-	gdb_unload crashed GDB, leaving no trace in the test results.  Change it
-	to use gdb_test_multiple, so that it leaves an UNRESOLVED result.  I
-	think it is good practice anyway.
-
-	Make it return the result of gdb_test_multiple directly, change
-	gdb.python/py-objfile.exp accordingly.
-
-	Change gdb.base/endian.exp as well to avoid duplicate test names.
-
-	Change gdb.base/gnu-debugdata.exp to avoid recording a test result,
-	since gdb_unload does it already now.
-
-	Change-Id: I59a1e4947691330797e6ce23277942547c437a48
-	Approved-By: Tom de Vries <tdevries@suse.de>
-
-2022-11-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: make gdb_test_multiple return immediately if send_gdb fails
-	In the failure seen by Philippe here:
-
-	  https://inbox.sourceware.org/gdb-patches/20221120173024.3647464-1-philippe.waroquiers@skynet.be/
-
-	... the testsuite only outputs PASSes, and an ERROR, resulting from an
-	uncaught exception.  This is a bit sneaky, because ERRORs are not
-	reported in the test summary.  In certain circumstances, it can be easy
-	to miss.
-
-	Normally, gdb_test_multiple outputs an UNRESOLVED when GDB crashes.  But
-	this is only if it manages to send the command, and it's that command
-	that crashes GDB.  Here, the ERROR is due to the fact that GDB had
-	already crashed by the time we entered gdb_test_multiple and tried to
-	send a command.  GDB was crashed by the previous "file" command, sent by
-	gdb_unload.  Because gdb_unload uses bare expect, it didn't record a
-	test failure when crashing GDB (this will be addressed separately).
-
-	In this patch, I propose to make gdb_test_multiple call unresolved
-	directly and return -1 send_gdb fails.  This way, if GDB is already
-	crashed by the time we enter gdb_test_multiple, it will leave a trace in
-	the test results in the form of an UNRESOLVED.  It will also spare us
-	the not-so-useful-in-my-opinion TCL backtrace.
-
-	Before, it looks like:
-
-	    ERROR: Couldn't send python print(objfile.filename) to GDB.
-	    ERROR: : spawn id exp9 not open
-	        while executing
-	    "expect {
-	    -i exp9 -timeout 10
-	            -re ".*A problem internal to GDB has been detected" {
-	                fail "$message (GDB internal error)"
-	                gdb_internal_error..."
-	        ("uplevel" body line 1)
-	        invoked from within
-	    "uplevel $body" NONE : spawn id exp9 not open
-
-	And after:
-
-	    Couldn't send python print(objfile.filename) to GDB.
-	    UNRESOLVED: gdb.python/py-objfile.exp: objfile.filename after objfile is unloaded
-
-	Change-Id: I72af8dc0d687826fc3f76911c27a9e5f91b677ba
-	Approved-By: Tom de Vries <tdevries@suse.de>
-
-2022-11-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: remove unused gprofng/src/DbeSession.cc.1
-
-2022-11-29  Max Filippov  <jcmvbkbc@gmail.com>
-
-	xtensa: allow dynamic configuration
-	Import include/xtensa-dynconfig.h that defines XCHAL_* macros as fields
-	of a structure returned from the xtensa_get_config_v<x> function call.
-	Define that structure and fill it with default parameter values
-	specified in the include/xtensa-config.h.
-	Define reusable function xtensa_load_config that tries to load
-	configuration and return an address of an exported object from it.
-	Define functions xtensa_get_config_v{1,2} that use xtensa_load_config
-	to get structures xtensa_config_v{1,2}, either dynamically configured
-	or the default.
-
-	bfd/
-		* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Append
-		xtensa-dynconfig.c.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-		* configure.ac (xtensa_elf32_be_vec, xtensa_elf32_le_vec): Add
-		xtensa-dynconfig.lo to the tb.
-		* elf32-xtensa.c (xtensa-config.h): Replace #include with
-		xtensa-dynconfig.h.
-		(XSHAL_ABI, XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): Remove
-		definitions.
-		* xtensa-dynconfig.c: New file.
-		* xtensa-isa.c (xtensa-dynconfig.h): New #include.
-		(xtensa_get_modules): New function.
-		(xtensa_isa_init): Call xtensa_get_modules instead of taking
-		address of global xtensa_modules.
-
-	gas/
-		* config/tc-xtensa.c (xtensa-config.h): Replace #include with
-		xtensa-dynconfig.h.
-		(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0, XTENSA_MARCH_EARLIEST):
-		Remove definitions.
-		* config/tc-xtensa.h (xtensa-config.h): Replace #include with
-		xtensa-dynconfig.h.
-		* config/xtensa-relax.c (xtensa-config.h): Replace #include with
-		xtensa-dynconfig.h.
-		(XCHAL_HAVE_WIDE_BRANCHES): Remove definition.
-
-	include/
-		* xtensa-dynconfig.h: New file.
-
-	ld/
-		* emultempl/xtensaelf.em (xtensa-config.h): Replace #include
-		with xtensa-dynconfig.h.
-		(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): Remove definitions.
-
-2022-11-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from library files
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the testsuite
-	library files (in boards/, config/, and lib/).  Previous commits have
-	removed all uses of the 'then' keyword from the test script files,
-	this commit just cleans up the library files.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.*/*.exp scripts
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the remaining
-	gdb.*/*.exp scripts.  Previous commits have done the bulk of this
-	removal, this commit just handles the remaining directories that each
-	contain a low number of instances.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.multi/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.multi/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.fortran/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.fortran/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.disasm/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.disasm/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.reverse/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.reverse/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.trace/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.trace/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.threads/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.threads/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.python/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.python/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.cp/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.cp/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.arch/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.arch/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.base/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.base/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove use of then keyword from gdb.ada/*.exp
-	The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
-	still a bunch of places in the testsuite where we make use of the
-	'then' keyword, and sometimes these get copies into new tests, which
-	just spreads poor practice.
-
-	This commit removes all use of the 'then' keyword from the gdb.ada/
-	test script directory.
-
-	There should be no changes in what is tested after this commit.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove DOS line endings from a test script
-	The gdb.fortran/nested-funcs.exp test script has DOS line endings.  I
-	can see no reason why this script needs DOS line endings.
-
-	Convert to UNIX line endings.
-
-	There should be no change in what is tested after this commit.
-
-2022-11-28  Tom Tromey  <tromey@adacore.com>
-
-	Don't let gdb_stdlog use pager
-	When using the "set logging" commands, cli_interp_base::set_logging
-	will send gdb_stdlog output (among others) to the tee it makes for
-	gdb_stdout.  However, this has the side effect of also causing logging
-	to use the pager.  This is PR gdb/29787.
-
-	This patch fixes the problem by keeping stderr and stdlog separate
-	from stdout, preserving the rule that only gdb_stdout should page.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29787
-
-2022-11-28  Tom Tromey  <tromey@adacore.com>
-
-	Don't let tee_file own a stream
-	Right now, tee_file owns the second stream it writes to.  This is done
-	for the convenience of the users.  In a subsequent patch, this will no
-	longer be convenient, so this patch moves the responsibility for
-	ownership to the users of tee_file.
-
-	Remove 'saved_output' global
-	CLI redirect uses a global variable, 'saved_output'.  However, globals
-	are generally bad, and there is no need for this one -- it can be a
-	member of cli_interp_base.  This patch makes this change.
-
-2022-11-28  Hannes Domani  <ssbssa@yahoo.de>
-
-	Remove no longer used jump label
-	The out label is unused since wait_for_debug_event is in a different thread.
-
-	Actually set m_is_async to current async mode
-	Looks like this was missed in the async mode implementation.
-
-2022-11-28  Hannes Domani  <ssbssa@yahoo.de>
-
-	Don't use auto for lambda parameter
-	Older gcc versions (here 4.9.2) can't handle auto for a lambda parameter:
-
-	../../gdb/windows-nat.c: In member function 'void windows_nat_target::delete_thread(ptid_t, DWORD, bool)':
-	../../gdb/windows-nat.c:629:12: error: use of 'auto' in lambda parameter declaration only available with -std=c++1y or -std=gnu++1y [-Werror]
-	        [=] (auto &th)
-	            ^
-
-2022-11-28  Hannes Domani  <ssbssa@yahoo.de>
-
-	Fix calling convention of thread entry point
-	For i686 the CreateThread entry point function needs the WINAPI (stdcall)
-	calling convention:
-
-	../../gdb/windows-nat.c: In constructor 'windows_nat_target::windows_nat_target()':
-	../../gdb/windows-nat.c:450:56: error: invalid user-defined conversion from 'windows_nat_target::windows_nat_target()::<lambda(LPVOID)>' to 'LPTHREAD_START_ROUTINE' {aka 'long unsigned int (__attribute__((stdcall)) *)(void*)'} [-fpermissive]
-	  450 |   HANDLE bg_thread = CreateThread (nullptr, 64 * 1024, fn, this, 0, nullptr);
-	      |                                                        ^~
-	../../gdb/windows-nat.c:444:13: note: candidate is: 'constexpr windows_nat_target::windows_nat_target()::<lambda(LPVOID)>::operator DWORD (*)(LPVOID)() const' (near match)
-	  444 |   auto fn = [] (LPVOID self) -> DWORD
-	      |             ^
-	../../gdb/windows-nat.c:444:13: note:   no known conversion from 'DWORD (*)(LPVOID)' {aka 'long unsigned int (*)(void*)'} to 'LPTHREAD_START_ROUTINE' {aka 'long unsigned int (__attribute__((stdcall)) *)(void*)'}
-
-	Since it's not possible to change the calling convention of a lambda, I've
-	moved it to a separate function.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: mark disassembler function callback types as noexcept
-	In disasm.h we define a set of types that are used by the various
-	disassembler classes to hold callback functions before passing the
-	callbacks into libopcodes.
-
-	Because libopcodes is C code, and on some (many?) targets, C code is
-	compiled without exception support, it is important that GDB not try
-	to throw an exception over libopcode code.
-
-	In the previous commit all the existing callbacks were marked as
-	noexcept, however, this doesn't protect us from a future change to GDB
-	either adding a new callback that is not noexcept, or removing the
-	noexcept keyword from an existing callback.
-
-	In this commit I mark all the callback types as noexcept.  This means
-	that GDB's disassembler classes will no longer compile if we try to
-	pass a callback that is not marked as noexcept.
-
-	At least, that's the idea.  Unfortunately, it's not that easy.
-
-	Before C++17, the noexcept keyword on a function typedef would be
-	ignored, thus:
-
-	  using func_type = void (*) (void) noexcept;
-
-	  void
-	  a_func ()
-	  {
-	    throw 123;
-	  }
-
-	  void
-	  some_func (func_type f)
-	  {
-	    f ();
-	  }
-
-	  int
-	  main ()
-	  {
-	    some_func (a_func);
-	    return 0;
-	  }
-
-	Will compile just fine for C++11 and C++14 with GCC.  Clang on the
-	other hand complains that 'noexcept' should not appear on function
-	types, but then does appear to correctly complain that passing a_func
-	is a mismatch in the set of exceptions that could be thrown.
-
-	Switching to C++17 and both GCC and Clang correctly point out that
-	passing a_func is an invalid conversion relating to the noexcept
-	keyword.  Changing a_func to:
-
-	  void
-	  a_func () noexcept
-	  { /* Nothing.  */ }
-
-	And for C++17 both GCC and Clang compile this just fine.
-
-	My conclusion then is that adding the noexcept keyword to the function
-	types is pointless while GDB is not compiled as C++17, and silencing
-	the warnings would require us to jump through a bunch of hoops.
-
-	And so, in this commit, I define a macro LIBOPCODE_CALLBACK_NOEXCEPT,
-	this macro expands to noexcept when compiling for C++17, but otherwise
-	expands to nothing.  I then add this macro to the function types.
-
-	I've compiled GDB as the default C++11 and also forced the compile to
-	C++17.  When compiling as C++17 I spotted a few additional places
-	where callbacks needed to be marked noexcept (these fixes were merged
-	into the previous commit, but this confirmed to be that the macro is
-	working as expected).
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/disasm: mark functions passed to the disassembler noexcept
-	While working on another patch, Simon pointed out that GDB could be
-	improved by marking the functions passed to the disassembler as
-	noexcept.
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-October/193084.html
-
-	The reason this is important is the on some hosts, libopcodes, being C
-	code, will not be compiled with support for handling exceptions.  As
-	such, an attempt to throw an exception over libopcodes code will cause
-	GDB to terminate.
-
-	See bug gdb/29712 for an example of when this happened.
-
-	In this commit all the functions that are passed to the disassembler,
-	and which might be used as callbacks by libopcodes are marked
-	noexcept.
-
-	Ideally, I would have liked to change these typedefs:
-
-	  using read_memory_ftype = decltype (disassemble_info::read_memory_func);
-	  using memory_error_ftype = decltype (disassemble_info::memory_error_func);
-	  using print_address_ftype = decltype (disassemble_info::print_address_func);
-	  using fprintf_ftype = decltype (disassemble_info::fprintf_func);
-	  using fprintf_styled_ftype = decltype (disassemble_info::fprintf_styled_func);
-
-	which are declared in disasm.h, as including the noexcept keyword.
-	However, when I tried this, I ran into this warning/error:
-
-	  In file included from ../../src/gdb/disasm.c:25:
-	  ../../src/gdb/disasm.h: In constructor ‘gdb_printing_disassembler::gdb_printing_disassembler(gdbarch*, ui_file*, gdb_disassemble_info::read_memory_ftype, gdb_disassemble_info::memory_error_ftype, gdb_disassemble_info::print_address_ftype)’:
-	  ../../src/gdb/disasm.h:116:3: error: mangled name for ‘gdb_printing_disassembler::gdb_printing_disassembler(gdbarch*, ui_file*, gdb_disassemble_info::read_memory_ftype, gdb_disassemble_info::memory_error_ftype, gdb_disassemble_info::print_address_ftype)’ will change in C++17 because the exception specification is part of a function type [-Werror=noexcept-type]
-	    116 |   gdb_printing_disassembler (struct gdbarch *gdbarch,
-	        |   ^~~~~~~~~~~~~~~~~~~~~~~~~
-
-	So I've left that change out.  This does mean that if somebody adds a
-	new use of the disassembler classes in the future, and forgets to mark
-	the callbacks as noexcept, this will compile fine.  We'll just have to
-	manually check for that during review.
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: avoid throwing an exception over libopcodes code
-	Bug gdb/29712 identifies a problem with the Python disassembler API.
-	In some cases GDB will try to throw an exception through the
-	libopcodes disassembler code, however, not all targets include
-	exception unwind information when compiling C code, for targets that
-	don't include this information GDB will terminate when trying to pass
-	the exception through libopcodes.
-
-	To explain what GDB is trying to do, consider the following trivial
-	use of the Python disassembler API:
-
-	  class ExampleDisassembler(gdb.disassembler.Disassembler):
-
-	      class MyInfo(gdb.disassembler.DisassembleInfo):
-	          def __init__(self, info):
-	              super().__init__(info)
-
-	          def read_memory(self, length, offset):
-	              return super().read_memory(length, offset)
-
-	      def __init__(self):
-	          super().__init__("ExampleDisassembler")
-
-	      def __call__(self, info):
-	          info = self.MyInfo(info)
-	          return gdb.disassembler.builtin_disassemble(info)
-
-	This disassembler doesn't add any value, it defers back to GDB to do
-	all the actual work, but it serves to allow us to discuss the problem.
-
-	The problem occurs when a Python exception is raised by the
-	MyInfo.read_memory method.  The MyInfo.read_memory method is called
-	from the C++ function gdbpy_disassembler::read_memory_func.  The C++
-	stack at the point this function is called looks like this:
-
-	  #0  gdbpy_disassembler::read_memory_func (memaddr=4198805, buff=0x7fff9ab9d2a8 "\220ӹ\232\377\177", len=1, info=0x7fff9ab9d558) at ../../src/gdb/python/py-disasm.c:510
-	  #1  0x000000000104ba06 in fetch_data (info=0x7fff9ab9d558, addr=0x7fff9ab9d2a9 "ӹ\232\377\177") at ../../src/opcodes/i386-dis.c:305
-	  #2  0x000000000104badb in ckprefix (ins=0x7fff9ab9d100) at ../../src/opcodes/i386-dis.c:8571
-	  #3  0x000000000104e28e in print_insn (pc=4198805, info=0x7fff9ab9d558, intel_syntax=-1) at ../../src/opcodes/i386-dis.c:9548
-	  #4  0x000000000104f4d4 in print_insn_i386 (pc=4198805, info=0x7fff9ab9d558) at ../../src/opcodes/i386-dis.c:9949
-	  #5  0x00000000004fa7ea in default_print_insn (memaddr=4198805, info=0x7fff9ab9d558) at ../../src/gdb/arch-utils.c:1033
-	  #6  0x000000000094fe5e in i386_print_insn (pc=4198805, info=0x7fff9ab9d558) at ../../src/gdb/i386-tdep.c:4072
-	  #7  0x0000000000503d49 in gdbarch_print_insn (gdbarch=0x5335560, vma=4198805, info=0x7fff9ab9d558) at ../../src/gdb/gdbarch.c:3351
-	  #8  0x0000000000bcc8c6 in disasmpy_builtin_disassemble (self=0x7f2ab07f54d0, args=0x7f2ab0789790, kw=0x0) at ../../src/gdb/python/py-disasm.c:324
-
-	  ### ... snip lots of frames as we pass through Python itself ...
-
-	  #22 0x0000000000bcd860 in gdbpy_print_insn (gdbarch=0x5335560, memaddr=0x401195, info=0x7fff9ab9e3c8) at ../../src/gdb/python/py-disasm.c:783
-	  #23 0x00000000008995a5 in ext_lang_print_insn (gdbarch=0x5335560, address=0x401195, info=0x7fff9ab9e3c8) at ../../src/gdb/extension.c:939
-	  #24 0x0000000000741aaa in gdb_print_insn_1 (gdbarch=0x5335560, vma=0x401195, info=0x7fff9ab9e3c8) at ../../src/gdb/disasm.c:1078
-	  #25 0x0000000000741bab in gdb_disassembler::print_insn (this=0x7fff9ab9e3c0, memaddr=0x401195, branch_delay_insns=0x0) at ../../src/gdb/disasm.c:1101
-
-	So gdbpy_disassembler::read_memory_func is called from the libopcodes
-	disassembler to read memory, this C++ function then calls into user
-	supplied Python code to do the work.
-
-	If the user supplied Python code raises an gdb.MemoryError exception
-	indicating the memory read failed, this is fine.  The C++ code
-	converts this exception back into a return value that libopcodes can
-	understand, and returns to libopcodes.
-
-	However, if the user supplied Python code raises some other exception,
-	what we want is for this exception to propagate through GDB and appear
-	as if raised by the call to gdb.disassembler.builtin_disassemble.  To
-	achieve this, when gdbpy_disassembler::read_memory_func spots an
-	unknown Python exception, we must pass the information about this
-	exception from frame #0 to frame #8 in the above backtrace.  Frame #8
-	is the C++ implementation of gdb.disassembler.builtin_disassemble, and
-	so it is this function that we want to re-raise the unknown Python
-	exception, so the user can, if they want, catch the exception in their
-	code.
-
-	The previous mechanism by which the exception was passed was to pack
-	the details of the Python exception into a C++ exception, then throw
-	the exception from frame #0, and catch the exception in frame #8,
-	unpack the details of the Python exception, and re-raise it.
-
-	However, this relies on the exception passing through frames #1 to #7,
-	some of which are in libopcodes, which is C code, and so, might not be
-	compiled with exception support.
-
-	This commit proposes an alternative solution that does not rely on
-	throwing a C++ exception.
-
-	When we spot an unhandled Python exception in frame #0, we will store
-	the details of this exception within the gdbpy_disassembler object
-	currently in use.  Then we return to libopcodes a value indicating
-	that the memory_read failed.
-
-	libopcodes will now continue to disassemble as though that memory read
-	failed (with one special case described below), then, when we
-	eventually return to disasmpy_builtin_disassemble we check to see if
-	there is an exception stored in the gdbpy_disassembler object.  If
-	there is then this exception can immediately be installed, and then we
-	return back to Python, when the user will be able to catch the
-	exception.
-
-	There is one extra change in gdbpy_disassembler::read_memory_func.
-	After the first call that results in an exception being stored on the
-	gdbpy_disassembler object, any future calls to the ::read_memory_func
-	function will immediately return as if the read failed.  This avoids
-	any additional calls into user supplied Python code.
-
-	My thinking here is that should the first call fail with some unknown
-	error, GDB should not keep trying with any additional calls.  This
-	maintains the illusion that the exception raised from
-	MyInfo.read_memory is immediately raised by
-	gdb.disassembler.builtin_disassemble.  I have no tests for this change
-	though - to trigger this issue would rely on a libopcodes disassembler
-	that will try to read further memory even after the first failed
-	read.  I'm not aware of any such disassembler that currently does
-	this, but that doesn't mean such a disassembler couldn't exist in the
-	future.
-
-	With this change in place the gdb.python/py-disasm.exp test should now
-	pass on AArch64.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29712
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-28  Tom Tromey  <tom@tromey.com>
-
-	Remove reset_ecs and execution_control_state::reset
-	I noticed that execution_control_state has a 'reset' method, and
-	there's also a 'reset_ecs' function that calls it.  This patch cleans
-	this area up a little by adding a parameter to the constructor and (a
-	change Simon suggested) removing the reset method.  Some extraneous
-	variables are also removed, like:
-
-	-      struct execution_control_state ecss;
-	-      struct execution_control_state *ecs = &ecss;
-
-	Here 'ecs' is never changed, so this patch removes it entirely in
-	favor of just using the object everywhere.
-
-	Regression tested on x86-64 Fedora 34.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: relax requirement for the map_failed stap probe to be present
-	From glibc 2.35 and later, the "map_failed" stap probe is no longer
-	included in glibc.  The removal of the probe looks like an accident,
-	but it was caused by a glibc commit which meant that the "map_failed"
-	probe could no longer be reached; the compiler then helpfully
-	optimised out the probe.
-
-	In GDB, in solib-svr4.c, we have a list of probes that we look for
-	related to the shared library loading detection.  If any of these
-	probes are missing then GDB will fall back to the non-probe based
-	mechanism for detecting shared library loading.  The "map_failed"
-	probe is include in the list of required probes.
-
-	This means that on glibc 2.35 (or later) systems, GDB is going to
-	always fall back to the non-probes based mechanism for detecting
-	shared library loading.
-
-	I raised a glibc bug to discuss this issue:
-
-	  https://sourceware.org/bugzilla/show_bug.cgi?id=29818
-
-	But, whatever the ultimate decision from the glibc team, given there
-	are version of glibc in the wild without the "map_failed" probe, we
-	probably should update GDB to handle this situation.
-
-	The "map_failed" probe is already a little strange, very early
-	versions of glibc didn't include this probe, so, in some cases, if
-	this probe is missing GDB is happy to ignore it.  This is fine, the
-	action associated with this probe inside GDB is DO_NOTHING, this means
-	the probe isn't actually required in order for GDB to correctly detect
-	the loading of shared libraries.
-
-	In this commit I propose changing the rules so that any probe whose
-	action is DO_NOTHING, is optional.
-
-	There is one possible downside to this change, and that concerns 'set
-	stop-on-solib-events on'.  If a probe is removed from glibc, but the
-	old style breakpoint based mechanism is still in place within glibc
-	for that same event, then GDB will stop when using the old style
-	non-probe based mechanism, but not when using the probes based
-	mechanism.
-
-	For the map_failed case this is not a problem, both the map_failed
-	probe, and the call to the old style breakpoint location were
-	optimised out, and so neither event (probes based, or breakpoint
-	based) will trigger.  This would only become an issue if glibc removed
-	a probe, but left the breakpoint in place (this would almost certainly
-	be a bug in glibc).
-
-	For now, I'm proposing that we just don't worry about this.  Because
-	some probes have actions that are not DO_NOTHING, then we know the
-	user will always seem _some_ stops when a shared library is
-	loaded/unloaded, and (I'm guessing), in most cases, that's all they
-	care about.  I figure when someone complains then we can figure out
-	what the right solution is then.
-
-	With this commit in place, then, when using a glibc 2.35 or later
-	system, GDB will once again use the stap probes for shared library
-	detection.
-
-	Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
-
-2022-11-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require hw watchpoint in gdb.ada/task_watch.exp
-	On powerpc64le-linux I run into:
-	...
-	(gdb) PASS: gdb.ada/task_watch.exp: info tasks before inserting breakpoint
-	watch -location value task 3^M
-	Watchpoint 2: -location value^M
-	(gdb) PASS: gdb.ada/task_watch.exp: watch -location value task 3
-	continue^M
-	Continuing.^M
-	[Thread 0x7ffff7ccf170 (LWP 65550) exited]^M
-	[Thread 0x7ffff7abf170 (LWP 65551) exited]^M
-	FAIL: gdb.ada/task_watch.exp: continue to watchpoint (timeout)
-	...
-
-	On x86_64-linux (where the test-case passes), a hardware watchpoint is used:
-	...
-	(gdb) PASS: gdb.ada/task_watch.exp: info tasks before inserting breakpoint
-	watch -location value task 3^M
-	Hardware watchpoint 2: -location value^M
-	...
-	and after forcing "set can-use-hw-watchpoints 0" we can intermittently
-	reproduce the same failure.
-
-	In the gdb documentation related to watchpoints in multi-threaded programs, we
-	read:
-	...
-	Warning: In multi-threaded programs, software watchpoints have only limited
-	usefulness.  If GDB creates a software watchpoint, it can only watch the value
-	of an expression in a single thread.  If you are confident that the expression
-	can only change due to the current thread’s activity (and if you are also
-	confident that no other thread can become current), then you can use software
-	watchpoints as usual.  However, GDB may not notice when a non-current thread’s
-	activity changes the expression.  (Hardware watchpoints, in contrast, watch an
-	expression in all threads.)
-	...
-
-	Since the ada task construct is mapped onto threads, it seems that the
-	same limitation holds for tasks.
-
-	Fix this by using skip_hw_watchpoint_tests.
-
-	Tested on powerpc64-linux.
-	Tested-By: Carl Love <cel@us.ibm.com>
-
-2022-11-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/out_of_line_in_inlined.exp for ppc64le
-	On powerpc64le-linux, with test-case gdb.ada/out_of_line_in_inlined.exp I run
-	into:
-	...
-	(gdb) run ^M
-	Starting program: foo_o224_021-all ^M
-	^M
-	Breakpoint 1, 0x0000000010002f48 in foo_o224_021.child1.child2 (s=...) at \
-	  foo_o224_021.adb:24^M
-	24              function Child2 (S : String) return Boolean is -- STOP^M
-	(gdb) FAIL: gdb.ada/out_of_line_in_inlined.exp: scenario=all: \
-	  run to foo_o224_021.child1.child2
-	...
-
-	The breakpoint is correctly set at the local entry point, and given that the
-	local entry point doesn't correspond to a line number entry, the instruction
-	address of the breakpoint is shown.
-
-	The problem is that test-case doesn't expect the breakpoint address.
-
-	Fix this by allowing the breakpoint address to occur.
-
-	Tested on powerpc64le-linux.
-
-2022-11-28  Michael Matz  <matz@suse.de>
-
-	Only use wild_sort_fast
-	there's no reason why the tree-based variant can't always be used
-	when sorting is required, it merely needs to also support filename
-	sorting and have a fast path for insertion at end (aka rightmost tree
-	leaf).
-
-	The filename sorting isn't tested anywhere and the only scripttempl
-	that uses it is avr (for 'SORT(*)(.ctors)'), and I believe even there it
-	was a mistake.  Either way, this adds a testcase for filename sorting as
-	well.
-
-	Then the non-BST based sorting can be simplified to only support
-	the fast case of no sorting required at all (at the same time renaming
-	the two variants to _sort and _nosort).
-
-2022-11-28  Michael Matz  <matz@suse.de>
-
-	Special case more simple patterns
-	fnmatch is slow, so avoiding it in more cases is good.  This implements
-	a more generic version of match_simple_wild which needs some
-	pre-processing of patterns.  In particular it supports patterns of the
-	form PREFIX*SUFFIX (where all parts are optional), i.e. a super set of
-	what's handled now.  Most section matchers of this form and hence don't
-	need any calls to fnmatch anymore.
-
-	We retain the implementation of match_simple_wild for the filename
-	matchers (they aren't called often enough to matter).
-
-2022-11-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: fail if gdb_start_cmd fails
-	I broke gdb.ada/start.exp, and did not notice it, because it outputs an
-	UNTESTED if gdb_start_cmd fails.  I don't really see when start would
-	fail and it's not a problem that should be looked at.  Change all spots
-	that call untested after a gdb_start_cmd failure, use fail instead.
-
-	Doing so caused some failures with the native-gdbserver board.  Some
-	tests that use "start" were relying on the fact that start would fail
-	with that board to just return with "untested".  Change them to add an
-	early return if use_gdb_stub returns true.
-
-	Some gdb.pascal tests also failed with native-gdbserver, because they
-	did use gdb_start_cmd to start the inferior, for no good reason.
-	Convert them to use runto_main instead, which does the right thing if
-	the target is a stub.
-
-	A further refactoring could be to make gdb_start_cmd match the expected
-	breakpoint hit and the prompt, which it doesn't do currently (it leaves
-	that to the callers, but not all of them do).
-
-	Change-Id: I097370851213e798ff29fb6cf8ba25ef7d2be007
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-11-28  Tom Tromey  <tromey@adacore.com>
-
-	Fix range type signed-ness heuristic
-	The code to create a range type has a heuristic to decide whether the
-	range is unsigned.  However, this heuristic can fail if the upper
-	bound of the range has its high bit set, because the test is done
-	using LONGEST.
-
-	With this patch, if the underlying type of a range is unsigned, then
-	the range will always be unsigned.  A new test is included.
-
-	Regression tested on x86-64 Fedora 34.  We've also been using this
-	internally at AdaCore for a while.
-
-2022-11-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: disable commit resumed in target_kill
-	New in this version:
-
-	 - Better comment in target_kill
-	 - Uncomment line in test to avoid hanging when exiting, when testing on
-	   native-extended-gdbserver
-
-	PR 28275 shows that doing a sequence of:
-
-	 - Run inferior in background (run &)
-	 - kill that inferior
-	 - Run again
-
-	We get into this assertion:
-
-	    /home/smarchi/src/binutils-gdb/gdb/target.c:2590: internal-error: target_wait: Assertion `!proc_target->commit_resumed_state' failed.
-
-	    #0  internal_error_loc (file=0x5606b344e740 "/home/smarchi/src/binutils-gdb/gdb/target.c", line=2590, fmt=0x5606b344d6a0 "%s: Assertion `%s' failed.") at /home/smarchi/src/binutils-gdb/gdbsupport/errors.cc:54
-	    #1  0x00005606b6296475 in target_wait (ptid=..., status=0x7fffb9390630, options=...) at /home/smarchi/src/binutils-gdb/gdb/target.c:2590
-	    #2  0x00005606b5767a98 in startup_inferior (proc_target=0x5606bfccb2a0 <the_amd64_linux_nat_target>, pid=3884857, ntraps=1, last_waitstatus=0x0, last_ptid=0x0) at /home/smarchi/src/binutils-gdb/gdb/nat/fork-inferior.c:482
-	    #3  0x00005606b4e6c9c5 in gdb_startup_inferior (pid=3884857, num_traps=1) at /home/smarchi/src/binutils-gdb/gdb/fork-child.c:132
-	    #4  0x00005606b50f14a5 in inf_ptrace_target::create_inferior (this=0x5606bfccb2a0 <the_amd64_linux_nat_target>, exec_file=0x604000039f50 "/home/smarchi/build/binutils-gdb/gdb/test", allargs="", env=0x61500000a580, from_tty=1)
-	        at /home/smarchi/src/binutils-gdb/gdb/inf-ptrace.c:105
-	    #5  0x00005606b53b6d23 in linux_nat_target::create_inferior (this=0x5606bfccb2a0 <the_amd64_linux_nat_target>, exec_file=0x604000039f50 "/home/smarchi/build/binutils-gdb/gdb/test", allargs="", env=0x61500000a580, from_tty=1)
-	        at /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:978
-	    #6  0x00005606b512b79b in run_command_1 (args=0x0, from_tty=1, run_how=RUN_NORMAL) at /home/smarchi/src/binutils-gdb/gdb/infcmd.c:468
-	    #7  0x00005606b512c236 in run_command (args=0x0, from_tty=1) at /home/smarchi/src/binutils-gdb/gdb/infcmd.c:526
-
-	When running the kill command, commit_resumed_state for the
-	process_stratum_target (linux-nat, here) is true.  After the kill, when
-	there are no more threads, commit_resumed_state is still true, as
-	nothing touches this flag during the kill operation.  During the
-	subsequent run command, run_command_1 does:
-
-	    scoped_disable_commit_resumed disable_commit_resumed ("running");
-
-	We would think that this would clear the commit_resumed_state flag of
-	our native target, but that's not the case, because
-	scoped_disable_commit_resumed iterates on non-exited inferiors in order
-	to find active process targets.  And after the kill, the inferior is
-	exited, and the native target was unpushed from it anyway.  So
-	scoped_disable_commit_resumed doesn't touch the commit_resumed_state
-	flag of the native target, it stays true.  When reaching target_wait, in
-	startup_inferior (to consume the initial expect stop events while the
-	inferior is starting up and working its way through the shell),
-	commit_resumed_state is true, breaking the contract saying that
-	commit_resumed_state is always false when calling the targets' wait
-	method.
-
-	(note: to be correct, I think that startup_inferior should toggle
-	commit_resumed between the target_wait and target_resume calls, but I'll
-	ignore that for now)
-
-	I can see multiple ways to fix this.  In the end, we need
-	commit_resumed_state to be cleared by the time we get to that
-	target_wait.  It could be done at the end of the kill command, or at the
-	beginning of the run command.
-
-	To keep things in a coherent state, I'd like to make it so that after
-	the kill command, when the target is left with no threads, its
-	commit_resumed_state flag is left to false.  This way, we can keep
-	working with the assumption that a target with no threads (and therefore
-	no running threads) has commit_resumed_state == false.
-
-	Do this by adding a scoped_disable_commit_resumed in target_kill.  It
-	clears the target's commit_resumed_state on entry, and leaves it false
-	if the target does not have any resumed thread on exit.  That means,
-	even if the target has another inferior with stopped threads,
-	commit_resumed_state will be left to false, which makes sense.
-
-	Add a test that tries to cover various combinations of actions done
-	while an inferior is running (and therefore while commit_resumed_state
-	is true on the process target).
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28275
-	Change-Id: I8e6fe6dc1f475055921520e58cab68024039a1e9
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-11-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver: switch to right process in find_one_thread
-	New in this version: add a dedicated test.
-
-	When I do this:
-
-	    $ ./gdb -nx --data-directory=data-directory -q \
-	        /bin/sleep \
-		-ex "maint set target-non-stop on" \
-		-ex "tar ext :1234" \
-		-ex "set remote exec-file /bin/sleep" \
-		-ex "run 1231 &" \
-		-ex add-inferior \
-		-ex "inferior 2"
-	    Reading symbols from /bin/sleep...
-	    (No debugging symbols found in /bin/sleep)
-	    Remote debugging using :1234
-	    Starting program: /bin/sleep 1231
-	    Reading /lib64/ld-linux-x86-64.so.2 from remote target...
-	    warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
-	    Reading /lib64/ld-linux-x86-64.so.2 from remote target...
-	    Reading /usr/lib/debug/.build-id/a6/7a1408f18db3576757eea210d07ba3fc560dff.debug from remote target...
-	    [New inferior 2]
-	    Added inferior 2 on connection 1 (extended-remote :1234)
-	    [Switching to inferior 2 [<null>] (<noexec>)]
-	    (gdb) Reading /lib/x86_64-linux-gnu/libc.so.6 from remote target...
-	    attach 3659848
-	    Attaching to process 3659848
-	    /home/smarchi/src/binutils-gdb/gdb/thread.c:85: internal-error: inferior_thread: Assertion `current_thread_ != nullptr' failed.
-
-	Note the "attach" command just above.  When doing it on the command-line
-	with a -ex switch, the bug doesn't trigger.
-
-	The internal error of GDB is actually caused by GDBserver crashing, and
-	the error recovery of GDB is not on point.  This patch aims to fix just
-	the GDBserver crash, not the GDB problem.
-
-	GDBserver crashes with a segfault here:
-
-	    (gdb) bt
-	    #0  0x00005555557fb3f4 in find_one_thread (ptid=...) at /home/smarchi/src/binutils-gdb/gdbserver/thread-db.cc:177
-	    #1  0x00005555557fd5cf in thread_db_thread_handle (ptid=<error reading variable: Cannot access memory at address 0xffffffffffffffa0>, handle=0x7fffffffc400, handle_len=0x7fffffffc3f0)
-	        at /home/smarchi/src/binutils-gdb/gdbserver/thread-db.cc:461
-	    #2  0x000055555578a0b6 in linux_process_target::thread_handle (this=0x5555558a64c0 <the_x86_target>, ptid=<error reading variable: Cannot access memory at address 0xffffffffffffffa0>, handle=0x7fffffffc400,
-	        handle_len=0x7fffffffc3f0) at /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:6905
-	    #3  0x00005555556dfcc6 in handle_qxfer_threads_worker (thread=0x60b000000510, buffer=0x7fffffffc8a0) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:1645
-	    #4  0x00005555556e00e6 in operator() (__closure=0x7fffffffc5e0, thread=0x60b000000510) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:1696
-	    #5  0x00005555556f54be in for_each_thread<handle_qxfer_threads_proper(buffer*)::<lambda(thread_info*)> >(struct {...}) (func=...) at /home/smarchi/src/binutils-gdb/gdbserver/gdbthread.h:159
-	    #6  0x00005555556e0242 in handle_qxfer_threads_proper (buffer=0x7fffffffc8a0) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:1694
-	    #7  0x00005555556e04ba in handle_qxfer_threads (annex=0x629000000213 "", readbuf=0x621000019100 '\276' <repeats 200 times>..., writebuf=0x0, offset=0, len=4097)
-	        at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:1732
-	    #8  0x00005555556e1989 in handle_qxfer (own_buf=0x629000000200 "qXfer:threads", packet_len=26, new_packet_len_p=0x7fffffffd630) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:2045
-	    #9  0x00005555556e720a in handle_query (own_buf=0x629000000200 "qXfer:threads", packet_len=26, new_packet_len_p=0x7fffffffd630) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:2685
-	    #10 0x00005555556f1a01 in process_serial_event () at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:4176
-	    #11 0x00005555556f4457 in handle_serial_event (err=0, client_data=0x0) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:4514
-	    #12 0x0000555555820f56 in handle_file_event (file_ptr=0x607000000250, ready_mask=1) at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:573
-	    #13 0x0000555555821895 in gdb_wait_for_event (block=1) at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:694
-	    #14 0x000055555581f533 in gdb_do_one_event (mstimeout=-1) at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:264
-	    #15 0x00005555556ec9fb in start_event_loop () at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:3512
-	    #16 0x00005555556f0769 in captured_main (argc=4, argv=0x7fffffffe0d8) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:3992
-	    #17 0x00005555556f0e3f in main (argc=4, argv=0x7fffffffe0d8) at /home/smarchi/src/binutils-gdb/gdbserver/server.cc:4078
-
-	The reason is a wrong current process when find_one_thread is called.
-	The current process is the 2nd one, which was just attached.  It does
-	not yet have thread_db data (proc->priv->thread_db is nullptr).  As we
-	iterate on all threads of all process to fulfull the qxfer:threads:read
-	request, we get to a thread of process 1 for which we haven't read
-	thread_db information yet (lwp_info::thread_known is false), so we get
-	into find_one_thread.  find_one_thread uses
-	`current_process ()->priv->thread_db`, assuming the current process
-	matches the ptid passed as a parameter, which is wrong.  A segfault
-	happens when trying to dereference that thread_db pointer.
-
-	Fix this by making find_one_thread not assume what the current process /
-	current thread is.  If it needs to call into libthread_db, which we know
-	will try to read memory from the current process, then temporarily set
-	the current process.
-
-	In the case where the thread is already know and we return early, we
-	don't need to switch process.
-
-	Add a test to reproduce this specific situation.
-
-	Change-Id: I09b00883e8b73b7e5f89d0f47cb4e9c0f3d6caaa
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-11-28  Tom Tromey  <tromey@adacore.com>
-
-	Fix crash in "document" command
-	PR cli/29800 points out that "document" will now crash when the
-	argument is an undefined command.  This is a regression due to the
-	"document user-defined aliases" patch.
-
-	Approved-By: Joel Brobecker <brobecker@adacore.com>
-	Reviewed-By: Philippe Waroquiers <philippe.waroquiers@skynet.be>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29800
-
-2022-11-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.opt/solib-intra-step.exp for powerpc64le
-	On powerpc64le-linux, I run into:
-	...
-	(gdb) PASS: gdb.opt/solib-intra-step.exp: first-hit
-	step^M
-	28      { /* first-retry */^M
-	(gdb) FAIL: gdb.opt/solib-intra-step.exp: second-hit
-	...
-
-	It's a bit easier to understand what happens if we do a full stepping session:
-	...
-	Temporary breakpoint 1, main ()
-	    at solib-intra-step-main.c:23
-	23        shlib_first ();
-	(gdb) step
-	shlib_first () at solib-intra-step-lib.c:29
-	29        shlib_second (0); /* first-hit */
-	(gdb) step
-	28      { /* first-retry */
-	(gdb) step
-	29        shlib_second (0); /* first-hit */
-	(gdb) step
-	shlib_second (dummy=0)
-	    at solib-intra-step-lib.c:23
-	23        abort (); /* second-hit */
-	...
-	and compare that to the line info:
-	...
-	CU: solib-intra-step-lib.c:
-	File name                    Line number    Starting address    View    Stmt
-	solib-intra-step-lib.c                22               0x710               x
-	solib-intra-step-lib.c                23               0x724               x
-	solib-intra-step-lib.c                28               0x740               x
-	solib-intra-step-lib.c                29               0x74c               x
-	solib-intra-step-lib.c                28               0x750               x
-	solib-intra-step-lib.c                29               0x758               x
-	solib-intra-step-lib.c                30               0x760               x
-	solib-intra-step-lib.c                 -               0x77c
-	...
-
-	So we step from line 29 to line 28, and back to line 29, which is behaviour
-	that matches the line table.  The peculiar order is due to using optimization.
-	The problem is that the test-case doesn't expect this order.
-
-	Fix this by allowing this order in the test-case.
-
-	Tested on powerpc64le-linux.
-
-	PR testsuite/29792
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29792
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix assert when quitting GDB while a thread is stepping
-	This commit addresses one of the issues identified in PR gdb/28275.
-
-	Bug gdb/28275 identifies a number of situations in which this assert:
-
-	  Assertion `!proc_target->commit_resumed_state' failed.
-
-	could be triggered.  There's actually a number of similar places where
-	this assert is found in GDB, the two of interest in gdb/28275 are in
-	target_wait and target_stop.
-
-	In one of the comments:
-
-	  https://sourceware.org/bugzilla/show_bug.cgi?id=28275#c1
-
-	steps to trigger the assertion within target_stop were identified when
-	using a modified version of the gdb.threads/detach-step-over.exp test
-	script.
-
-	In the gdb.threads/detach-step-over.exp test, we attach to a
-	multi-threaded inferior, and continue the inferior in asynchronous
-	(background) mode.  Each thread is continuously hitting a conditional
-	breakpoint where the condition is always false.  While the inferior is
-	running we detach.  The goal is that we detach while GDB is performing a
-	step-over for the conditional breakpoint in at least one thread.
-
-	While detaching, if a step-over is in progress, then GDB has to
-	complete the step over before we can detach.  This involves calling
-	target_stop and target_wait (see prepare_for_detach).
-
-	As far as gdb/28275 is concerned, the interesting part here, is the
-	the process_stratum_target::commit_resumed_state variable must be
-	false when target_stop and target_wait are called.
-
-	This is currently ensured because, in detach_command (infrun.c), we
-	create an instance of scoped_disable_commit_resumed, this ensures that
-	when target_detach is called, ::commit_resumed_state will be false.
-
-	The modification to the test that I propose here, and which exposed
-	the bug, is that, instead of using "detach" to detach from the
-	inferior, we instead use "quit".  Quitting GDB after attaching to an
-	inferior will cause GDB to first detach, and then exit.
-
-	When we quit GDB we end up calling target_detach via a different code
-	path, the stack looks like:
-
-	  #0 target_detach
-	  #1 kill_or_detach
-	  #2 quit_force
-	  #3 quit_command
-
-	Along this path there is no scoped_disable_commit_resumed created.
-	::commit_resumed_state can be true when we reach prepare_for_detach,
-	which calls target_wait and target_stop, so the assertion will trigger.
-
-	In this commit, I propose fixing this by adding the creation of a
-	scoped_disable_commit_resumed into target_detach.  This will ensure
-	that ::commit_resumed_state is false when calling prepare_for_detach
-	from within target_detach.
-
-	I did consider placing the scoped_disable_commit_resumed in
-	prepare_for_detach, however, placing it in target_detach ensures that
-	the target's commit_resumed_state flag is left to false if the detached
-	inferior was the last one for that target.  It's the same rationale as
-	for patch "gdb: disable commit resumed in target_kill" that comes later
-	in this series, but for detach instead of kill.
-
-	detach_command still includes a scoped_disable_commit_resumed too, but I
-	think it is still relevant to cover the resumption at the end of the
-	function.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28275
-	Change-Id: Ie128f7aba6ef0e018859275eca372e6ea738e96f
-
-2022-11-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: refactor gdb.threads/detach-step-over.exp
-	Factor out some bits of gdb.threads/detach-step-over.exp to procs in
-	preparation to adding some new variations of the test.  Rename the
-	existing "test" proc and make it use proc_with_prefix.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: Ib4412545c81c8556029e0f7bfa9dd48d7a9f3189
-
-2022-11-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: remove global declarations in gdb.threads/detach-step-over.exp
-	Before doing further changes to this file, change to use the :: notation
-	instead of declaring global variables with the `global` keyword.
-
-	Change-Id: I72301fd8f4693fea61aac054ba17245a1f4442fb
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-11-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/altivec-regs.exp with gcc 4.8.5
-	On powerpc64le-linux, using gcc 4.8.5, I run into:
-	...
-	(gdb) PASS: gdb.arch/altivec-regs.exp: next (1)
-	next^M
-	11        c = vec_add (a, b);^M
-	(gdb) PASS: gdb.arch/altivec-regs.exp: next (2)
-	print/x a^M
-	$67 = {0xfefefefe, 0xfefefefe, 0xfefefefe, 0xfefefefe}^M
-	(gdb) FAIL: gdb.arch/altivec-regs.exp: print vector parameter a
-	...
-
-	Looking at the disassembly and the debug info, it's clear why there's
-	a FAIL.
-
-	The debug info says that the variable can be found at some stack location, but
-	the instructions don't seem to be writing there.
-
-	We can work around this by marking variable a volatile.  Likewise for b.
-
-	Note that marking the variables as volatile doesn't change the location
-	information.
-
-	Tested on power64le-linux.
-
-2022-11-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix gdb.base/msym-bp-shl.exp for ppc64le
-	With test-case gdb.base/msym-bp-shl.exp on powerpc64le-linux, I run into:
-	...
-	(gdb) PASS: gdb.base/msym-bp-shl.exp: debug=0: before run: break foo
-	info breakpoint^M
-	Num     Type           Disp Enb Address            What^M
-	1       breakpoint     keep y   <MULTIPLE>         ^M
-	1.1                         y   0x00000000000008d4 <foo+12>^M
-	1.2                         y   0x0000000000000a34 crti.S:88^M
-	(gdb) FAIL: gdb.base/msym-bp-shl.exp: debug=0: before run: info breakpoint
-	...
-
-	The problem is that the prologue skipper walks from foo@plt at 0xa28 to 0xa34:
-	...
-	0000000000000a28 <foo@plt>:
-	 a28:   c0 ff ff 4b     b       9e8 <__glink_PLTresolve>
-
-	Disassembly of section .fini:
-
-	0000000000000a2c <_fini>:
-	 a2c:   02 00 4c 3c     addis   r2,r12,2
-	 a30:   d4 74 42 38     addi    r2,r2,29908
-	 a34:   a6 02 08 7c     mflr    r0
-	...
-
-	This is caused by ppc_elfv2_elf_make_msymbol_special which marks foo@plt as
-	having a local entry point, due to incorrectly accessing an asymbol struct
-	using a (larger) elf_symbol_type.
-
-	Fix this by simply ignoring artificial symbols in
-	ppc_elfv2_elf_make_msymbol_special.
-
-	Tested on powerpc64le.
-
-	Approved-By: Ulrich Weigand <uweigand@de.ibm.com>
-	Reviewed-By: Carl Love <cel@us.ibm.com>
-	Tested-By: Carl Love <cel@us.ibm.com>
-	PR tdep/29814
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29814
-
-2022-11-28  Alan Modra  <amodra@gmail.com>
-
-	PR10368, ISO 8859 mentioned as 7bit encoding in strings documentation
-		PR 10368
-		* doc/binutils.texi (strings): Delete example of 7-bit encoding.
-
-	Use bfd_rename_section in msp430.em
-		* emultempl/msp430.em (add_region_prefix <REGION_EITHER>): Use
-		bfd_rename_section.
-		* testsuite/ld-msp430-elf/msp430-tiny-rom.ld: Handle varian data
-		and bss input sections.
-
-	asan: pef: buffer overflow
-		* pef.c (bfd_pef_parse_traceback_table): Correct size moved when
-		stripping leading dot.
-
-	regen gas/Makefile.in
-
-2022-11-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Allow merging 'H' extension
-	Because riscv_merge_std_ext function did not merge the 'H' extension, linked
-	executables lacked 'H' extension when multiple objects are merged.
-
-	This issue is found while building OpenSBI with 'H' extension (resulting
-	ELF files did not contain "h1p0" in "Tag_RISCV_arch" even if *all* linked
-	object files contained it).
-
-	This commit adds 'h' to standard_exts variable to merge 'H' extension.
-
-	bfd/ChangeLog:
-
-		* elfnn-riscv.c (riscv_merge_std_ext): Add 'H' extension merging.
-
-2022-11-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Better support for long instructions (tests)
-	This commit tests both (assembler and disassembler) fixes of "Better support
-	for long instructions".
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/insn.s: Add testcases such that big number
-		handling is required and should be disassembled as long ".byte"
-		sequence with correct instruction bits.
-		* testsuite/gas/riscv/insn.d: Likewise.
-		* testsuite/gas/riscv/insn-na.d: Likewise.
-		* testsuite/gas/riscv/insn-dwarf.d: Likewise.
-
-2022-11-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Better support for long instructions (assembler)
-	Commit bb996692bd96 ("RISC-V/gas: allow generating up to 176-bit
-	instructions with .insn") tried to start supporting long instructions but
-	it was insufficient.
-
-	1.  It heavily depended on the bignum internals (radix of 2^16),
-	2.  It generates "value conflicts with instruction length" even if a big
-	    number instruction encoding does not exceed its expected length and
-	3.  Because long opcode was handled separately (from struct riscv_cl_insn),
-	    some information like DWARF line number correspondence was missing.
-
-	To resolve these problems, this commit:
-
-	1.  Handles bignum (and its encodings) precisely and
-	2.  Incorporates long opcode handling into regular instruction handling.
-
-	This commit will be tested on the separate commit.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (struct riscv_cl_insn): Add long opcode field.
-		(create_insn) Clear long opcode marker.
-		(install_insn) Install longer opcode as well.
-		(s_riscv_insn) Likewise.
-		(riscv_ip_hardcode): Make big number handling stricter. Length and
-		the value conflicts only if the bignum size exceeds the expected
-		maximum length.
-
-2022-11-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Better support for long instructions (disassembler)
-	Commit bb996692bd96 ("RISC-V/gas: allow generating up to 176-bit
-	instructions with .insn") tried to start supporting long instructions but
-	it was insufficient.
-
-	On the disassembler, correct ".byte" output was limited to the first 64-bits
-	of an instruction.  After that, zeroes are incorrectly printed.
-
-	Note that, it only happens on ".byte" output (instruction part) and not on
-	hexdump (data) part.  For example, before this commit, hexdump and ".byte"
-	produces different values:
-
-	Assembly:
-	  .insn 22, 0xfedcba98765432100123456789abcdef55aa33cc607f
-	objdump output example (before the fix):
-	  10:   607f 33cc 55aa cdef     .byte   0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-	  18:   89ab 4567 0123 3210
-	  20:   7654 ba98 fedc
-
-	Note that, after 0xcd (after first 64-bits of the target instruction), all
-	".byte" values are incorrectly printed as zero while hexdump prints correct
-	instruction bits.
-
-	To resolve this, this commit adds "packet" argument to support dumping
-	instructions longer than 64-bits (to print correct instruction bits on
-	".byte").  This commit will be tested on the separate commit.
-
-	Assembly:
-	  .insn 22, 0xfedcba98765432100123456789abcdef55aa33cc607f
-	objdump output example (after the fix):
-	  10:   607f 33cc 55aa cdef     .byte   0x7f, 0x60, 0xcc, 0x33, 0xaa, 0x55, 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe
-	  18:   89ab 4567 0123 3210
-	  20:   7654 ba98 fedc
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (riscv_disassemble_insn): Print unknown instruction
-		using the new argument packet.
-		(riscv_disassemble_data): Add unused argument packet.
-		(print_insn_riscv): Pass packet to the disassemble function.
-
-2022-11-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-27  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Fix leak in the dwarf reader
-	Valgrind reports a leak in the dwarf reader (see details below).
-	The function dw2_get_file_names_reader is interning in the per_objfile
-	all the file names it finds, except the name of 'fnd file name and directory'.
-	Instead, it was xstrdup-ing the name.
-	Fix the leaks by also interning the name.
-
-	This was validated running the tests natively, and under valgrind.
-	Leaks have decreased as mentionned below.
-	Valgrind detected no error such as double free or use after free.
-
-	Stack trace of the leak:
-	==4113266== 490,735 bytes in 17,500 blocks are definitely lost in loss record 7,061 of 7,074
-	==4113266==    at 0x483979B: malloc (vg_replace_malloc.c:393)
-	==4113266==    by 0x25A454: xmalloc (alloc.c:57)
-	==4113266==    by 0x7D1E1E: xstrdup (xstrdup.c:34)
-	==4113266==    by 0x39D141: dw2_get_file_names_reader (read.c:2825)
-	==4113266==    by 0x39D141: dw2_get_file_names(dwarf2_per_cu_data*, dwarf2_per_objfile*) (read.c:2851)
-	==4113266==    by 0x39DD6C: dw_expand_symtabs_matching_file_matcher(dwarf2_per_objfile*, gdb::function_view<bool (char const*, bool)>) (read.c:4149)
-	==4113266==    by 0x3BC8B5: cooked_index_functions::expand_symtabs_matching(objfile*, gdb::function_view<bool (char const*, bool)>, lookup_name_info const*, gdb::function_view<bool (char const*)>, gdb::function_view<bool (compunit_symtab*)>, enum_flags<block_search_flag_values>, domain_enum, search_domain) (read.c:18688)
-	==4113266==    by 0x5DD1EA: objfile::map_symtabs_matching_filename(char const*, char const*, gdb::function_view<bool (symtab*)>) (symfile-debug.c:207)
-	==4113266==    by 0x5F04CC: iterate_over_symtabs(char const*, gdb::function_view<bool (symtab*)>) (symtab.c:633)
-	==4113266==    by 0x477EE3: collect_symtabs_from_filename(char const*, program_space*) (linespec.c:3712)
-	==4113266==    by 0x477FC1: symtabs_from_filename(char const*, program_space*) (linespec.c:3726)
-	==4113266==    by 0x47A9B8: convert_explicit_location_spec_to_linespec(linespec_state*, linespec*, char const*, char const*, symbol_name_match_type, char const*, line_offset) (linespec.c:2329)
-	==4113266==    by 0x47E86E: convert_explicit_location_spec_to_sals (linespec.c:2388)
-	==4113266==    by 0x47E86E: location_spec_to_sals(linespec_parser*, location_spec const*) (linespec.c:3104)
-	==4113266==    by 0x47EDAC: decode_line_full(location_spec*, int, program_space*, symtab*, int, linespec_result*, char const*, char const*) (linespec.c:3149)
-	...
-
-	Without the fix, the top 10 leaks are:
-	./gdb/testsuite/outputs/gdb.base/condbreak-bad/gdb.log:345:==3213924==    definitely lost: 130,937 bytes in 5,409 blocks
-	./gdb/testsuite/outputs/gdb.base/hbreak2/gdb.log:619:==3758919==    definitely lost: 173,323 bytes in 7,204 blocks
-	./gdb/testsuite/outputs/gdb.mi/mi-var-cp/gdb.log:1320:==4152873==    definitely lost: 172,826 bytes in 7,207 blocks
-	./gdb/testsuite/outputs/gdb.base/advance-until-multiple-locations/gdb.log:398:==2992643==    definitely lost: 172,965 bytes in 7,211 blocks
-	./gdb/testsuite/outputs/gdb.mi/mi-var-cmd/gdb.log:2302:==4159476==    definitely lost: 173,129 bytes in 7,211 blocks
-	./gdb/testsuite/outputs/gdb.cp/gdb2384/gdb.log:222:==3811851==    definitely lost: 218,106 bytes in 7,761 blocks
-	./gdb/testsuite/outputs/gdb.cp/mb-templates/gdb.log:310:==3787344==    definitely lost: 290,311 bytes in 10,340 blocks
-	./gdb/testsuite/outputs/gdb.mi/mi-var-rtti/gdb.log:2568:==4158350==    definitely lost: 435,427 bytes in 15,507 blocks
-	./gdb/testsuite/outputs/gdb.mi/mi-catch-cpp-exceptions/gdb.log:1704:==4119722==    definitely lost: 435,405 bytes in 15,510 blocks
-	./gdb/testsuite/outputs/gdb.mi/mi-vla-fortran/gdb.log:768:==4113266==    definitely lost: 508,585 bytes in 18,109 blocks
-
-	With the fix:
-	./gdb/testsuite/outputs/gdb.base/fork-running-state/gdb.log:1536:==2924193==    indirectly lost: 13,848 bytes in 98 blocks
-	./gdb/testsuite/outputs/gdb.base/fork-running-state/gdb.log:1675:==2928777==    indirectly lost: 13,848 bytes in 98 blocks
-	./gdb/testsuite/outputs/gdb.python/py-inferior-leak/gdb.log:4729:==3353335==    definitely lost: 3,360 bytes in 140 blocks
-	./gdb/testsuite/outputs/gdb.base/kill-detach-inferiors-cmd/gdb.log:210:==2746927==    indirectly lost: 13,246 bytes in 154 blocks
-	./gdb/testsuite/outputs/gdb.base/inferior-clone/gdb.log:179:==3034984==    indirectly lost: 12,921 bytes in 161 blocks
-	./gdb/testsuite/outputs/gdb.base/interrupt-daemon/gdb.log:209:==3006248==    indirectly lost: 20,683 bytes in 174 blocks
-	./gdb/testsuite/outputs/gdb.threads/watchpoint-fork/gdb.log:714:==3512403==    indirectly lost: 20,707 bytes in 175 blocks
-	./gdb/testsuite/outputs/gdb.threads/watchpoint-fork/gdb.log:962:==3514498==    indirectly lost: 20,851 bytes in 178 blocks
-	./gdb/testsuite/outputs/gdb.base/multi-forks/gdb.log:336:==2585839==    indirectly lost: 53,630 bytes in 386 blocks
-	./gdb/testsuite/outputs/gdb.base/multi-forks/gdb.log:1338:==2592417==    indirectly lost: 100,008 bytes in 1,154 blocks
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-27  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	fix leak in gdb_environ
-	valgrind reports a leak when assigning a gdb_environ to another gdb_environ.
-	The memory allocated for the target gdb_environ env variables is not released.
-	The gdb_environ selftest reproduces the leak (see below).
-	Fix the leak by clearing the target gdb_environ before std::move-ing the
-	members.
-
-	Tested natively and re-running all tests under valgrind.
-
-	==3261873== 4,842 bytes in 69 blocks are definitely lost in loss record 6,772 of 6,839
-	==3261873==    at 0x483979B: malloc (vg_replace_malloc.c:393)
-	==3261873==    by 0x25A454: xmalloc (alloc.c:57)
-	==3261873==    by 0x7D1E4E: xstrdup (xstrdup.c:34)
-	==3261873==    by 0x7E2A51: gdb_environ::from_host_environ() (environ.cc:56)
-	==3261873==    by 0x66F1C8: test_reinit_from_host_environ (environ-selftests.c:78)
-	==3261873==    by 0x66F1C8: selftests::gdb_environ_tests::run_tests() (environ-selftests.c:285)
-	==3261873==    by 0x7EFC43: operator() (std_function.h:622)
-	=
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-27  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Use false/true for some inferior class members instead of 0/1
-	Some class members were changed to bool, but there was
-	still some assignments or comparisons using 0/1.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/server] Emit warning for SIGINT failure
-	Consider the executable from test-case gdb.base/interrupt-daemon.exp.
-
-	When starting it using gdbserver:
-	...
-	$ ./build/gdbserver/gdbserver localhost:2345 \
-	  ./outputs/gdb.base/interrupt-daemon/interrupt-daemon
-	...
-	and connecting to it using gdb:
-	...
-	$ gdb -q -ex "target remote localhost:2345" \
-	    -ex "set follow-fork-mode child" \
-	    -ex "break daemon_main" -ex cont
-	...
-	we are setup to do the same as in the test-case: interrupt a running inferior
-	using ^C.
-
-	So let's try:
-	...
-	(gdb) continue
-	Continuing.
-	^C
-	...
-	After pressing ^C, nothing happens.  This a known problem, filed as
-	PR remote/18772.
-
-	The problem is that in linux_process_target::request_interrupt, a kill is used
-	to send a SIGINT, but it fails.  And it fails silently.
-
-	Make the failure verbose by adding a warning, such that the gdbserver output
-	becomes more helpful:
-	...
-	Process interrupt-daemon created; pid = 15068
-	Listening on port 2345
-	Remote debugging from host ::1, port 35148
-	Detaching from process 15068
-	Detaching from process 15085
-	gdbserver: Sending SIGINT to process group of pid 15068 failed: \
-	  No such process
-	...
-
-	Note that the failure can easily be reproduced using the test-case and target
-	board native-gdbserver:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	PASS: gdb.base/interrupt-daemon.exp: fg: continue
-	^CFAIL: gdb.base/interrupt-daemon.exp: fg: ctrl-c stops process (timeout)
-	...
-	as reported in PR server/23382.
-
-	Tested on x86_64-linux.
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Don't generate core in gdb.base/bt-on-fatal-signal.exp
-	When running test-case gdb.base/bt-on-fatal-signal.exp on powerpc64le-linux I
-	noticed:
-	...
-	FAIL: gdb.base/bt-on-fatal-signal.exp: SEGV: scan for backtrace (timeout)
-	...
-
-	The timeout is 10 seconds, but generating the core file takes more than a
-	minute, probably due to slow NFS.
-
-	I managed to reproduce this behaviour independently of gdb, by compiling
-	"int main (void) { __builtin_abort (); }" and running it, which took 1.5
-	seconds for a core file 50 times smaller than the one for gdb.
-
-	Fix this by preventing the core file from being generated, using a wrapper
-	around gdb that does "ulimit -c 0".
-
-	Tested on x86_64-linux.
-
-2022-11-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Handle failure to open .gnu_debugaltlink file
-	If we instrument cc-with-tweaks.sh to remove the .gnu_debugaltlink file after
-	dwz has created it, with test-case
-	gdb.threads/access-mem-running-thread-exit.exp and target board cc-with-dwz-m
-	we run into:
-	...
-	(gdb) file access-mem-running-thread-exit^M
-	Reading symbols from access-mem-running-thread-exit...^M
-	could not find '.gnu_debugaltlink' file for access-mem-running-thread-exit^M
-	...
-	followed a bit later by:
-	...
-	(gdb) file access-mem-running-thread-exit^M
-	Reading symbols from access-mem-running-thread-exit...^M
-	gdb/dwarf2/read.c:7284: internal-error: create_all_units: \
-	  Assertion `per_objfile->per_bfd->all_units.empty ()' failed.^M
-	...
-
-	The problem is that create_units does not catch the error thrown by
-	dwarf2_get_dwz_file.
-
-	Fix this by catching the error and performing the necessary cleanup, getting
-	the same result for the first and second file command.
-
-	PR symtab/29805
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29805
-
-2022-11-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Fix jump on uninit producer_is_clang bit of cu.h dwarf2_cu struct.
-	Valgrind reports a "jump on unitialised bit error" when running
-	    e.g. gdb.base/macro-source-path.exp (see details below).
-
-	    Fix this by initializing producer_is_clang member variable of dwarf2_cu.
-
-	    Tested on amd64/debian11 and re-running gdb.base/macro-source-path.exp
-	    under valgrind.
-
-	    ==2140965== Conditional jump or move depends on uninitialised value(s)
-	    ==2140965==    at 0x5211F7: dwarf_decode_macro_bytes(dwarf2_per_objfile*, buildsym_compunit*, bfd*, unsigned char const*, unsigned char const*, macro_source_file*, line_header const*, dwarf2_section_info const*, int, int, unsigned int, dwarf2_section_info*, dwarf2_section_info*, gdb::optional<unsigned long>, htab*, dwarf2_cu*) (macro.c:676)
-	    ==2140965==    by 0x52158A: dwarf_decode_macros(dwarf2_per_objfile*, buildsym_compunit*, dwarf2_section_info const*, line_header const*, unsigned int, unsigned int, dwarf2_section_info*, dwarf2_section_info*, gdb::optional<unsigned long>, int, dwarf2_cu*) (macro.c:967)
-	    ==2140965==    by 0x523BC4: dwarf_decode_macros(dwarf2_cu*, unsigned int, int) (read.c:23379)
-	    ==2140965==    by 0x552AB5: read_file_scope(die_info*, dwarf2_cu*) (read.c:9687)
-	    ==2140965==    by 0x54F7B2: process_die(die_info*, dwarf2_cu*) (read.c:8660)
-	    ==2140965==    by 0x5569C7: process_full_comp_unit (read.c:8429)
-	    ==2140965==    by 0x5569C7: process_queue (read.c:7675)
-	    ==2140965==    by 0x5569C7: dw2_do_instantiate_symtab (read.c:2063)
-	    ==2140965==    by 0x5569C7: dw2_instantiate_symtab(dwarf2_per_cu_data*, dwarf2_per_objfile*, bool) (read.c:2085)
-	    ==2140965==    by 0x55700B: dw2_expand_symtabs_matching_one(dwarf2_per_cu_data*, dwarf2_per_objfile*, gdb::function_view<bool (char const*, bool)>, gdb::function_view<bool (compunit_symtab*)>) (read.c:3984)
-	    ==2140965==    by 0x557EA3: cooked_index_functions::expand_symtabs_matching(objfile*, gdb::function_view<bool (char const*, bool)>, lookup_name_info const*, gdb::function_view<bool (char const*)>, gdb::function_view<bool (compunit_symtab*)>, enum_flags<block_search_flag_values>, domain_enum, search_domain) (read.c:18781)
-	    ==2140965==    by 0x778977: objfile::lookup_symbol(block_enum, char const*, domain_enum) (symfile-debug.c:276)
-	    ....
-	    ==2140965==  Uninitialised value was created by a heap allocation
-	    ==2140965==    at 0x4839F01: operator new(unsigned long) (vg_replace_malloc.c:434)
-	    ==2140965==    by 0x533A64: cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*, abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) (read.c:6264)
-	    ==2140965==    by 0x5340C2: load_full_comp_unit(dwarf2_per_cu_data*, dwarf2_per_objfile*, dwarf2_cu*, bool, language) (read.c:7729)
-	    ==2140965==    by 0x548338: load_cu(dwarf2_per_cu_data*, dwarf2_per_objfile*, bool) (read.c:2021)
-	    ==2140965==    by 0x55634C: dw2_do_instantiate_symtab (read.c:2048)
-	    ==2140965==    by 0x55634C: dw2_instantiate_symtab(dwarf2_per_cu_data*, dwarf2_per_objfile*, bool) (read.c:2085)
-	    ==2140965==    by 0x55700B: dw2_expand_symtabs_matching_one(dwarf2_per_cu_data*, dwarf2_per_objfile*, gdb::function_view<bool (char const*, bool)>, gdb::function_view<bool (compunit_symtab*)>) (read.c:3984)
-	    ==2140965==    by 0x557EA3: cooked_index_functions::expand_symtabs_matching(objfile*, gdb::function_view<bool (char const*, bool)>, lookup_name_info const*, gdb::function_view<bool (char const*)>, gdb::function_view<bool (compunit_symtab*)>, enum_flags<block_search_flag_values>, domain_enum, search_domain) (read.c:18781)
-	    ==2140965==    by 0x778977: objfile::lookup_symbol(block_enum, char const*, domain_enum) (symfile-debug.c:276)
-	    ....
-
-2022-11-26  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	remove the declared but undefined/unused method find_partial_die
-	The method
-	       struct partial_die_info *find_partial_die (sect_offset sect_off);
-	in cu.h is defined, but is used nowhere and not implemented.
-
-2022-11-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-25  Martin Liska  <mliska@suse.cz>
-
-	Revert "readelf: Do not require EI_OSABI for IFUNC."
-	This reverts commit ffbbab0b3a1000f862b6d4ce3d9a76ed14f08801.
-
-2022-11-25  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	riscv: Add AIA extension support (Smaia, Ssaia)
-	This commit adds the AIA extensions (Smaia and Ssaia) CSRs.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c: Add 'smaia' and 'ssaia' to the list
-		of known standard extensions.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (enum riscv_csr_class):
-		(riscv_csr_address): Add CSR classes for Smaia/Ssaia.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Add new CSRs.
-		* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-		* testsuite/gas/riscv/csr.s: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (CSR_MISELECT): New CSR macro.
-		(CSR_MIREG): Likewise.
-		(CSR_MTOPEI): Likewise.
-		(CSR_MTOPI): Likewise.
-		(CSR_MVIEN): Likewise.
-		(CSR_MVIP): Likewise.
-		(CSR_MIDELEGH): Likewise.
-		(CSR_MIEH): Likewise.
-		(CSR_MVIENH): Likewise.
-		(CSR_MVIPH): Likewise.
-		(CSR_MIPH): Likewise.
-		(CSR_SISELECT): Likewise.
-		(CSR_SIREG): Likewise.
-		(CSR_STOPEI): Likewise.
-		(CSR_STOPI): Likewise.
-		(CSR_SIEH): Likewise.
-		(CSR_SIPH): Likewise.
-		(CSR_HVIEN): Likewise.
-		(CSR_HVICTL): Likewise.
-		(CSR_HVIPRIO1): Likewise.
-		(CSR_HVIPRIO2): Likewise.
-		(CSR_VSISELECT): Likewise.
-		(CSR_VSIREG): Likewise.
-		(CSR_VSTOPEI): Likewise.
-		(CSR_VSTOPI): Likewise.
-		(CSR_HIDELEGH): Likewise.
-		(CSR_HVIENH): Likewise.
-		(CSR_HVIPH): Likewise.
-		(CSR_HVIPRIO1H): Likewise.
-		(CSR_HVIPRIO2H): Likewise.
-		(CSR_VSIEH): Likewise.
-		(CSR_VSIPH): Likewise.
-		(DECLARE_CSR): Add CSRs for Smaia and Ssaia.
-
-	Changes for v3:
-	- Imply ssaia for smaia
-	- Imply zicsr for ssaia (and transitively smaia)
-	- Move hypervisor CSRs to Ssaia+H
-	- Rebase on upstream/master
-
-	Changes for v2:
-	- Add hypervisor and VS CSRs
-	- Fix whitespace issue
-
-2022-11-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-24  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe/doc: remove usage of xrefautomaticsectiontitle
-	xrefautomaticsectiontitle appears to be available from texinfo 5.0 or
-	greater.  As such, it is not worthwhile to add requirement for a minimum
-	necessary makeinfo version.  So remove the usage of it.
-
-	Also align node name with section title where possible.
-
-	ChangeLog:
-
-		* libsframe/doc/sframe-spec.texi: Remove usage of
-		xrefautomaticsectiontitle.
-
-2022-11-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix typo in debug output message
-	Spotted a minor type, a missing ')', in a debug message.
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break
-	Move all the remaining tests to a single test_break proc.  It's a bit
-	big, but all of these are kind of tied together.  The procs starts by
-	setting breakpoints, checks that we can see them in "info breakpoints",
-	and tries stopping on them.
-
-	Move all the "set bp_locationX" calls together at the top.
-
-	Change-Id: Id05f98957e1a3462532d2dbd577cd0a7c7263900
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: split test_tbreak
-	Leave setting bp_location11 in the global scope, so that it's accessible
-	to other procs.
-
-	Change-Id: I8928f01640d3a1e993649b2168b9eda0724ee1d9
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: split test_no_break_on_catchpoint
-	Change-Id: Ifa7070943f1de22c2839fedf5f346d6591bb5a76
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_nonexistent_line
-	Change-Id: I4390dd5da23bae83ccc513ad0de0169ddff7df12
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_default
-	One special thing here is that the part just above this one, that sets
-	catchpoints and verifies they are not hit, requires that we resume
-	execution to verify that the catchpoints are indeed not hit.   I guess
-	it was previously achieved by the until command, but it doesn't happen
-	now that the until is moved into test_break_default.  Add a
-	gdb_continue_to_end after setting the catchpoints.  If any catchpoint
-	were to be hit, it would catch the problem.
-
-	Change-Id: I5d4b43da91886b1beda9f6e56b05aa04331a9c05
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_silent_and_more
-	This one is a bit tricky.  The clear tests seem to depend on the various
-	breakpoints that have been set before, starting with the "silent"
-	breakpoints.  So, move all this in a single chunk, it can always be
-	split later if needed.
-
-	Change-Id: I7ba61a5b130ade63eda0c4790534840339f8a72f
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_line_convenience_var
-	Change-Id: I593002373da971a0a4d6b5355d3fe321873479ab
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_user_call
-	Change-Id: I9151ce9db9435722b758f41c6606b461bf15f320
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-	gdb/testsuite/gdb.base/break.exp: split test_finish_arguments
-	Change-Id: Id84babed1eeb3ce7d14b94ff332795964e8ead51
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: use proc_with_prefix for test_next_with_recursion
-	This one is already in a proc, just make the proc use proc_with_prefix,
-	for consistency.
-
-	Change-Id: I313ecf5097ff04526c29396529baeba84e37df5a
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_optimized_prologue
-	Change-Id: Ibf17033c8ce72aa5cfe1b739be2902e84a5e945d
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-	gdb/testsuite/gdb.base/break.exp: split test_rbreak_shlib
-	Change-Id: I130e8914c2713095aab03e84aba1481b4c7af978
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_file_line_convenience_var
-	Change-Id: I0c31b037669b2917e062bf431372fb6531f8f53c
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-	gdb/testsuite/gdb.base/break.exp: split test_break_commands_clear
-	Change-Id: Ia58f90117d52fc419fc494836d9b4ed5d902fe9b
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-24  Nick Clifton  <nickc@redhat.com>
-
-	Impport libiberty commit: 885b6660c17f from gcc mainline.  Fix gas's acinclude.m4 to stop a potwntial configure time warning message.
-
-2022-11-24  Martin Liska  <mliska@suse.cz>
-
-	readelf: Do not require EI_OSABI for IFUNC.
-		PR 29718
-
-	binutils/ChangeLog:
-
-		* readelf.c (get_symbol_type): Consider STT_GNU_IFUNC as
-		reserved name.
-
-2022-11-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: widen applicability and use of CheckRegSize
-	First of all make operand_type_register_match() apply to all sized
-	operands, i.e. in Intel Syntax also to respective memory ones. This
-	addresses gas wrongly accepting certain SIMD insns where register and
-	memory operand sizes should match but don't. This apparently has
-	affected all templates with one memory-only operand and one or more
-	register ones, both permitting at least two sizes, due to CheckRegSize
-	not taking effect.
-
-	Then also add CheckRegSize to a couple of non-SIMD templates matching
-	that same pattern of memory-only vs register operands. This replaces
-	bogus (for Intel Syntax) diagnostics referring to a wrong suffix (when
-	none was used at all) by "type mismatch" ones, just like already emitted
-	for insns where the template allows a register operand alongside a
-	memory one at any particular position.
-
-	This also is a prereq to limiting (ideally eliminating in the long run)
-	suffix "derivation" in Intel Syntax mode.
-
-	While making the code adjustment also flip order of checks to do the
-	cheaper one first in both cases.
-
-2022-11-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: add missing CheckRegSize
-	To properly and predictably determine operand size encoding (operand
-	size or REX.W prefixes), consistent operand sizes need to be specified.
-	Add CheckRegSize where this was previously missing.
-
-	x86: correct handling of LAR and LSL
-	Both uniformly only ever take 16-bit memory operands while at the same
-	time requiring matching (in size) register operands, which then also
-	should disassemble that way. This in particular requires splitting each
-	of the templates for the assembler and separating decode of the
-	register and memory forms in the disassembler.
-
-2022-11-24  Alan Modra  <amodra@gmail.com>
-
-	Tidy objdump printing of section size
-		* objdump.c (load_specific_debug_section): Use PRIx64 format.
-
-	Constify nm format array
-		* nm.c (formats, format): Make const.
-
-2022-11-24  Alan Modra  <amodra@gmail.com>
-
-	PR16995, m68k coldfire emac immediate to macsr incorrect disassembly
-	Mode/reg bits for these insns are 000 Dy, 001 Ay, and 111 100 for the
-	move immediate.
-
-		* m68k-opc.c (m68k_opcodes): Only accept 000 and 001 as mode
-		for move reg to macsr/mask insns.
-
-2022-11-24  Mark Harmstone  <mark@harmstone.com>
-
-	gas: Disable --gcodeview on PE targets with no O_secrel
-
-2022-11-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-23  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Include FType bit in EXC_RETURN pattern on v8m
-	For v8m, the EXC_RETURN pattern, without security extension, consists of
-	FType, Mode and SPSEL.  These are the same bits that are used in v7m.
-	This patch extends the list of patterns to include also the FType bit
-	and not just Mode and SPSEL bits for v8m targets without security
-	extension.
-
-2022-11-23  Alan Modra  <amodra@gmail.com>
-
-	regen POTFILES.in
-
-2022-11-23  Alan Modra  <amodra@gmail.com>
-
-	PR22509 - Null pointer dereference on coff_slurp_reloc_table
-	This extends the commit 4581a1c7d304 fix to more targets, which
-	hardens BFD a little.  I think the real underlying problem was the
-	bfd_canonicalize_reloc call in load_specific_debug_section which
-	passed a NULL for "symbols".  Fix that too.
-
-		PR 22509
-	bfd/
-		* aoutx.h (swap_ext_reloc_out): Gracefully handle NULL symbols.
-		* i386lynx.c (swap_ext_reloc_out): Likewise.
-		* pdp11.c (pdp11_aout_swap_reloc_out): Likewise.
-		* coff-tic30.c (reloc_processing): Likewise.
-		* coff-tic4x.c (tic4x_reloc_processing): Likewise.
-		* coff-tic54x.c (tic54x_reloc_processing): Likewise.
-		* coff-z80.c (reloc_processing): Likewise.
-		* coff-z8k.c (reloc_processing): Likewise.
-		* ecoff.c (ecoff_slurp_reloc_table): Likewise.
-		* som.c (som_set_reloc_info): Likewise.
-	binutils/
-		* objdump.c (load_specific_debug_section): Pass syms to
-		bfd_canonicalize_reloc.
-
-2022-11-23  Alan Modra  <amodra@gmail.com>
-
-	asan: NULL deref in filter_symbols
-	If tdata->symbols is NULL, make tdata->symcount zero too.  This makes
-	wasm_get_symtab_upper_bound return the proper result and stops
-	cascading errors.
-
-		* wasm-module.c (wasm_scan_name_function_section): Clear
-		tdata->symcount on error.
-
-2022-11-23  Luis Machado  <luis.machado@arm.com>
-
-	Document the memory_tagged argument for memory region callbacks
-	There were no comments in some instances (gdb/defs.h, gdb/core.c and
-	gdb/linux-tdep.c), so address that by adding comments where those are missing.
-
-2022-11-23  Tom de Vries  <tdevries@loganberry-1.arch.suse.de>
-
-	Fix gdb.cp/gdb2495.exp on powerpc64le
-	On powerpc64le-linux I ran into this FAIL:
-	...
-	(gdb) p exceptions.throw_function()^M
-	terminate called after throwing an instance of 'int'^M
-	^M
-	Program received signal SIGABRT, Aborted.^M
-	0x00007ffff7979838 in raise () from /lib64/libc.so.6^M
-	The program being debugged was signaled while in a function called from GDB.^M
-	GDB remains in the frame where the signal was received.^M
-	To change this behavior use "set unwindonsignal on".^M
-	Evaluation of the expression containing the function^M
-	(SimpleException::throw_function()) will be abandoned.^M
-	When the function is done executing, GDB will silently stop.^M
-	(gdb) FAIL: gdb.cp/gdb2495.exp: call a function that raises an exception \
-	  without a handler.
-	...
-
-	The following happens:
-	- we start an inferior call
-	- an internal breakpoint is set on the global entry point of std::terminate
-	- the inferior call uses the local entry point
-	- the breakpoint is not triggered
-	- we run into std::terminate
-
-	We can fix this by simply adding the missing gdbarch_skip_entrypoint call in
-	create_std_terminate_master_breakpoint, but we try to do this a bit more
-	generic, by:
-	- adding a variant of function create_internal_breakpoint which takes a
-	  minimal symbol instead of an address as argument
-	- in the new function:
-	  - using both gdbarch_convert_from_func_ptr_addr and gdbarch_skip_entrypoint
-	  - documenting why we don't need to use gdbarch_addr_bits_remove
-	  - adding a note about possibly
-	    needing gdbarch_deprecated_function_start_offset.
-	- using the new function in:
-	  - create_std_terminate_master_breakpoint
-	  - create_exception_master_breakpoint_hook, which currently uses only
-	    gdbarch_convert_from_func_ptr_addr.
-
-	Note: we could use the new function in more locations in breakpoint.c, but
-	as we're not aware of any related failures, we declare this out of scope for
-	this patch.
-
-	Tested on x86_64-linux, powerpc64le-linux.
-
-	Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
-	Tested-by: Carl Love <cel@us.ibm.com>
-	PR tdep/29793
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29793
-
-2022-11-23  Xiao Zeng  <zengxiao@eswincomputing.com>
-
-	RISC-V: Make R_RISCV_SUB6 conforms to riscv ABI standard
-	According to the riscv psabi, R_RISCV_SUB6 only allows 6 least significant
-	bits are valid, but since binutils implementation, we usually get 8 bits
-	field for it.  That means, the high 2 bits could be other field and have
-	different purpose.  Therefore, we should filter the 8 bits to 6 bits before
-	calculate, and then only encode the valid 6 bits back.  By the way, we also
-	need the out-of-range check for R_RISCV_SUB6, and the overflow checks for
-	all R_RISCV_ADD/SUB/SET relocations, but we can add them in the future patches.
-
-	Passing riscv-gnu-toolchain regressions.
-
-	bfd/ChangeLog:
-
-	        * elfnn-riscv.c (riscv_elf_relocate_section): Take the R_RISCV_SUB6
-		lower 6 bits as the significant bit.
-	        * elfxx-riscv.c (riscv_elf_add_sub_reloc): Likewise.
-
-2022-11-23  Mark Harmstone  <mark@harmstone.com>
-
-	gas: Add --gcodeview option
-
-	ld: Add section contributions substream to PDB files
-
-2022-11-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-22  John Baldwin  <jhb@FreeBSD.org>
-
-	aarch64-fbsd: Use a static regset for the TLS register set.
-	This uses custom collect/supply regset handlers which pass the TLS
-	register number from the gdbarch_tdep as the base register number.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-22  John Baldwin  <jhb@FreeBSD.org>
-
-	arm-fbsd: Use a static regset for the TLS register set.
-	This uses custom collect/supply regset handlers which pass the TLS
-	register number from the gdbarch_tdep as the base register number.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-22  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Pass an optional register base to the register set helpers.
-	This is needed to permit using the helpers for register sets with a
-	variable base.  In particular regnum needs to be converted into a
-	relative register number before passed to regcache_map_supplies.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-22  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Use regset supply/collect methods.
-	fbsd-nat includes various helper routines for fetching and storing
-	register sets via ptrace where the register set is described by a
-	regset.  These helper routines directly invoke the
-	supply/collect_regset regcache methods which doesn't permit a regset
-	to provide custom logic when fetching or storing a register set.
-	Instead, just use the function pointers from the struct regset
-	directly.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-22  John Baldwin  <jhb@FreeBSD.org>
-
-	regcache: Add collect/supply_regset variants that accept a register base.
-	Some register sets described by an array of regcache_map_entry
-	structures do not have fixed register numbers in their associated
-	architecture but do describe a block of registers whose numbers are at
-	fixed offsets relative to some base register value.  An example of
-	this are the TLS register sets for the ARM and AArch64 architectures.
-
-	Currently OS-specific architectures create register maps and register
-	sets dynamically using the register base number.  However, this
-	requires duplicating the code to create the register map and register
-	set.  To reduce duplication, add variants of the collect_regset and
-	supply_regset regcache methods which accept a base register number.
-	For valid register map entries (i.e. not REGCACHE_MAP_SKIP), add this
-	base register number to the value from the map entry to determine the
-	final register number.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-22  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Don't define _TLS_MODULE_BASE_ for ld -r
-	bfd/
-
-		PR ld/29820
-		* elfxx-x86.c (_bfd_x86_elf_always_size_sections): Don't define
-		 _TLS_MODULE_BASE_ for ld -r.
-
-	ld/
-
-		PR ld/29820
-		* testsuite/ld-x86-64/pr29820.d: New file.
-		* testsuite/ld-x86-64/pr29820.s: Likewise.
-		* testsuite/ld-x86-64/x86-64.ex: Run pr29820.
-
-2022-11-22  Alan Modra  <amodra@gmail.com>
-
-	Don't use "long" in readelf for file offsets
-	The aim here is to improve readelf handling of large 64-bit object
-	files on LLP64 hosts (Windows) where long is only 32 bits.  The patch
-	changes more than just file offsets.  Addresses and sizes are also
-	changed to avoid "long".  Most places get to use uint64_t even where
-	size_t may be more appropriate, because that allows some overflow
-	checks to be implemented easily (*alloc changes).
-
-		* dwarf.c (cmalloc, xcmalloc, xcrealloc, xcalloc2): Make nmemb
-		parameter uint64_t.
-		* dwarf.h: Update prototypes.
-		(struct dwarf_section): Make num_relocs uint64_t.
-		* elfcomm.c (setup_archive): Update error format.
-		* elfcomm.h (struct archive_info): Make sym_size, longnames_size,
-		nested_member_origin, next_arhdr_offset uint64_t.
-		* readelf.c (struct filedata): Make archive_file_offset,
-		archive_file_size, string_table_length, dynamic_addr,
-		dynamic_nent, dynamic_strings_length, num_dynamic_syms,
-		dynamic_syminfo_offset uint64_t.
-		(many functions): Replace uses of "unsigned long" with
-		"uint64_t" or "size_t".
-
-2022-11-22  Alan Modra  <amodra@gmail.com>
-
-	Re: readelf: use fseeko64 or fseeko if possible
-	Replace the macros with a small wrapper function that verifies the fseek
-	offset arg isn't overlarge.
-
-		* readelf.c (FSEEK_FUNC): Delete, replace uses with..
-		(fseek64): ..this new function.
-		(process_program_headers): Don't cast p_offset to long.
-
-2022-11-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Fix obvious typo in b0b23e06c3a
-	As part of the rebase of the patch, I managed to loose the local
-	changes I had for the comments from Tomas in
-	https://sourceware.org/pipermail/gdb-patches/2022-November/193413.html
-	This patch corrects the obvious two typos.
-
-2022-11-22  Michael Matz  <matz@suse.de>
-
-	binutils/configure.ac: integrate last change
-	Integrate back checks for fseeko{,64} into configure.ac, so
-	that regeneration works.
-
-	binutils/
-		* configure.ac: Add fseeko, fseeko64 checks.
-		* configure: Regenerate.
-
-2022-11-22  Shahab Vahedi  <shahab@synopsys.com>
-
-	opcodes: Correct address for ARC's "isa_config" aux reg
-	This patch changes the address for "isa_config" auxiliary register
-	from 0xC2 to the correct value 0xC1.  Moreover, it only exists in
-	arc700+ and not all ARCs.
-
-	opcodes/ChangeLog:
-
-		* arc-regs.h: Change isa_config address to 0xc1.
-		isa_config exists for ARC700 and ARCV2 and not ARCALL.
-
-2022-11-22  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: remove gcc restriction from gdb.dwarf2/clang-cli-macro.exp
-	With the recent changes to the dwarf assembler, there is no longer a
-	need to test for gcc in gdb.dwarf2/clang-cli-macro.exp and mark it as
-	untested. This commit removes that logic.
-
-2022-11-22  Jan Beulich  <jbeulich@suse.com>
-
-	gas/sframe: avoid "shadowing" of glibc function name
-	Once again: Old enough glibc has an (unguarded) declaration of index()
-	in string.h, which triggers a "shadows a global declaration" warning
-	with our choice of wanring level and with at least some gcc versions.
-
-2022-11-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-21  Brett Werling  <bwerl.dev@gmail.com>
-
-	readelf: use fseeko64 or fseeko if possible
-	Changes readelf to make use first of fseeko64 and then fseeko,
-	depending on which of those is available. If neither is available,
-	reverts to the previous behavior of using fseek.
-
-	This is necessary when building readelf for LLP64 systems, where a
-	long will only be 32 bits wide. If the elf file in question is >= 2 GiB,
-	that is greater than the max long value and therefore fseek will fail
-	indicating that the offset is negative. On such systems, making use of
-	fseeko64 or fseeko will result in the ability so seek past the 2 GiB
-	max long boundary.
-
-	Note that large archive handling in readelf remains to be fixed.
-
-2022-11-21  Alan Modra  <amodra@gmail.com>
-
-	PR29807, SIGSEGV when linking fuzzed PE object
-		PR 29807
-		* cofflink.c (_bfd_coff_generic_relocate_section): Skip relocs
-		against symbols with a NULL section.
-
-2022-11-21  Alan Modra  <amodra@gmail.com>
-
-	Re: ld: Always output local symbol for relocatable link
-	Remove this code dating back to commit 98790d3a95fc entirely, what it
-	was trying to do is done elsewhere.
-
-		PR ld/29761
-		* elflink.c (elf_link_output_symstrtab): Don't handle symbols
-		in SEC_EXCLUDE sections here.
-
-2022-11-21  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	When getting the locno of a bpstat, handle the case of bp with null locations.
-	The test py-objfile.exp unloads the current file while debugging the process.
-	This results in bpstat bs->b->loc to become nullptr.
-	Handle this case in breakpoint.c:bpstat_locno.
-
-	Note: GDB crashes on this problem with an internal error,
-	but the end of gdb summary shows:
-	  ...
-	                  === gdb Summary ===
-
-	  # of expected passes		36
-
-	The output also does not contain a 'FAIL:'.
-	After the fix, the nr of expected passes increased.
-
-	In the gdb.log output, one can see:
-	  ...
-	  Fatal signal: Segmentation fault
-	  ----- Backtrace -----
-	  0x55698905c5b9 gdb_internal_backtrace_1
-	          ../../binutils-gdb/gdb/bt-utils.c:122
-	  0x55698905c5b9 _Z22gdb_internal_backtracev
-	  ...
-
-	  ERROR: Couldn't send python print(objfile.filename) to GDB.
-	  ERROR: : spawn id exp9 not open
-	      while executing
-	  "expect {
-	  -i exp9 -timeout 10
-	          -re ".*A problem internal to GDB has been detected" {
-	              fail "$message (GDB internal error)"
-	              gdb_internal_error..."
-	      ("uplevel" body line 1)
-	      invoked from within
-	  ....
-
-	Wondering if it might be possible to improve gdb_test to have
-	  gdb_test "python print(objfile.filename)" "None" \
-	      "objfile.filename after objfile is unloaded"
-	reporting a failed result instead of just producing the internal error.
-
-2022-11-21  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Fix use after free introduced by $_hit_bpnum/$_hit_locno variables.
-	If the commands of the bpstat bs contain commands such as step or next or
-	continue, the BS and its commands are freed by execute_control_command.
-
-	So, we cannot remember the BS that was printed. Instead, remember
-	the bpnum and locno.
-
-	Regtested on debian/amd64 and re-run a few tests under valgrind.
-
-2022-11-21  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Fix step-over-syscall.exp matching regexp for $bpnum.$locno matching
-	step-over-syscall.exp has some specific tests for gdbserver.
-	The regexp matching breakpoint hit must take the added locno into account.
-
-	Test re-run in 3 modes (normal, native-gdbserver and native-extended-gdbserver).
-
-2022-11-21  Nick Clifton  <nickc@redhat.com>
-
-	Fix ARM and AArch64 assembler tests to work in a multi-arch environment.
-		PR 29764
-	gas	* testsuite/gas/arm/cpu-cortex-a76ae.d: Add arm prefix to the -m
-		option passed to objdump.
-		* testsuite/gas/arm/cpu-cortex-a77.d: Likewise.
-		* testsuite/gas/aarch64/cpu-cortex-a76ae.d: Add aarch64 prefix to
-		the -m option passed to objdump.
-		* testsuite/gas/aarch64/cpu-cortex-a77.d: Likewise.
-
-	bfd	* cpu-arm.c (scan): Accept machine names prefixed with "arm:".
-		* cpu-aarch64.c (scan): Accept machine names prefixed with "aarch64:".
-
-	bin	* doc/binutils.texi (objdump): Note that the -m option supports
-		the <architecture>:<machine> syntax.
-
-2022-11-21  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Ensure that stack pointers are in sync
-	For targets with secext, msp and psp can be seen as an alias for one
-	of msp_s, msp_ns, psp_s or psp_ns.
-	Without this patch, sp might be secure, but msp or psp is non-secure
-	(this state can not happen in the hardware).
-
-	gdb/arm: Update active msp/psp when switching stack
-	For targets with secext, msp and psp can be seen as an alias for one
-	of msp_s, msp_ns, psp_s or psp_ns. When switching active sp, the
-	corresponding msp/psp needs to be switched too.
-
-2022-11-21  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky just return type from csky_vector_type() for vector resgisters
-	Some gdb stubs may not describe the type for vector registers in the
-	tdesc-xml and only send bitsize="128", gdb can't deal with a reg
-	with default type int with bitsize==128. So Just return csky_vector_type()
-	for vector resgisters.
-
-	gdb/csky return type int32 for float and vector pseudo regs
-	When reg_nr is one of the float and vector pseudo registers,
-	return builtin_type (gdbarch)->builtin_int32 for it.
-
-2022-11-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	[PR build/29791] gnulib: Disable _GL_ATTRIBUTE_DEALLOC on Solaris
-	gdbsupport compilation badly fails with GCC 12 on Solaris, with errors
-	like
-
-	../gnulib/config.h:1693:72: error: ‘malloc’ attribute argument 1 is ambiguous
-	 1693 | # define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
-	      |                                                                        ^
-	../gnulib/config.h:1693:72: note: use a cast to the expected type to disambiguate
-
-	We've not yet been able to determine where the ambiguity actually lies,
-	so this patch works around the issue by disabling _GL_ATTRIBUTE_DEALLOC
-	on Solaris, at least as a workaround for GDB 13.
-
-	As Tom suggested in the PR, this is done using our infrastructure for
-	local gnulib patches.
-
-	Tested on sparcv9-sun-solaris2.11, amd64-pc-solaris2.11, and
-	x86_64-pc-linux-gnu.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	Fix sol-thread.c compilation on 32-bit Solaris
-	sol-thread.c fails to compile on 32-bit Solaris: there are several
-	instances of
-
-	In file included from /vol/src/gnu/gdb/hg/master/local/gdb/../gdbsupport/common-defs.h:203,
-	                 from /vol/src/gnu/gdb/hg/master/local/gdb/defs.h:28,
-	                 from /vol/src/gnu/gdb/hg/master/local/gdb/sol-thread.c:51:
-	/vol/src/gnu/gdb/hg/master/local/gdb/sol-thread.c: In member function ‘virtual void sol_thread_target::resume(ptid_t, int, gdb_signal)’:
-	/vol/src/gnu/gdb/hg/master/local/gdb/sol-thread.c:416:20: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘ULONGEST’ {aka ‘long long unsigned int’} [-Werror=format=]
-	  416 |         warning (_("Specified thread %ld seems to have terminated"),
-	      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	/vol/src/gnu/gdb/hg/master/local/gdb/../gdbsupport/gdb_locale.h:28:29:
-	note: in definition of macro ‘_’
-	   28 | # define _(String) gettext (String)
-	      |                             ^~~~~~
-	/vol/src/gnu/gdb/hg/master/local/gdb/sol-thread.c:416:40: note: format
-	string is defined here
-	  416 |         warning (_("Specified thread %ld seems to have terminated"),
-	      |                                      ~~^
-	      |                                        |
-	      |                                        long int
-	      |                                      %lld
-
-	Fixed by using pulongest () instead.
-
-	Tested on i386-pc-solaris2.11, amd64-pc-solaris2.11,
-	sparc-sun-solaris2.11, and sparcv9-sun-solaris2.11 (together with
-	Simon's patch for PR build/29798).
-
-2022-11-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-19  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Add missing gdb_prompt in ctxobj.exp to avoid random failure, fix typo.
-	ctxobj.exp fails randomly when computer is loaded.
-	With the addition of $gdb_prompt in the regexp testing for breakpoint hit,
-	I could not make it fail anymore.
-
-	Also fixed a typo in a comment.
-
-2022-11-19  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Show locno for 'multi location' breakpoint hit msg+conv var $_hit_bbnum $_hit_locno PR breakpoints/12464
-	This implements the request given in PR breakpoints/12464.
-
-	Before this patch, when a breakpoint that has multiple locations is reached,
-	GDB printed:
-	  Thread 1 "zeoes" hit Breakpoint 1, some_func () at somefunc1.c:5
-
-	This patch changes the message so that bkpt_print_id prints the precise
-	encountered breakpoint:
-	  Thread 1 "zeoes" hit Breakpoint 1.2, some_func () at somefunc1.c:5
-
-	In mi mode, bkpt_print_id also (optionally) prints a new table field "locno":
-	  locno is printed when the breakpoint hit has more than one location.
-	Note that according to the GDB user manual node 'GDB/MI Development and Front
-	Ends', it is ok to add new fields without changing the MI version.
-
-	Also, when a breakpoint is reached, the convenience variables
-	$_hit_bpnum and $_hit_locno are set to the encountered breakpoint number
-	and location number.
-
-	$_hit_bpnum and $_hit_locno can a.o. be used in the command list of a
-	breakpoint, to disable the specific encountered breakpoint, e.g.
-	   disable $_hit_bpnum.$_hit_locno
-
-	In case the breakpoint has only one location, $_hit_locno is set to
-	the value 1, so as to allow a command such as:
-	  disable $_hit_bpnum.$_hit_locno
-	to disable the breakpoint even when the breakpoint has only one location.
-
-	This also fixes a strange behaviour: when a breakpoint X has only
-	one location,
-	  enable|disable X.1
-	is accepted but transforms the breakpoint in a multiple locations
-	breakpoint having only one location.
-
-	The changes in RFA v4 handle the comments of Tom Tromey:
-	 - Changed convenience var names from $bkptno/$locno to
-	   $_hit_bpnum/$_hit_locno.
-	 - updated the tests and user manual accordingly.
-	   User manual also explictly describes that $_hit_locno is set to 1
-	   for a breakpoint with a single location.
-	 - The variable values are now set in bpstat_do_actions_1 so that
-	   they are set for silent breakpoints, and when several breakpoints
-	   are hit at the same time, that the variables are set to the printed
-	   breakpoint.
-
-	The changes in RFA v3 handle the additional comments of Eli:
-	 GDB/NEW:
-	  - Use max 80-column
-	  - Use 'code location' instead of 'location'.
-	  - Fix typo $bkpno
-	  - Ensure that disable $bkptno and disable $bkptno.$locno have
-	    each their explanation inthe example
-	  - Reworded the 'breakpoint-hit' paragraph.
-	 gdb.texinfo:
-	  - Use 'code location' instead of 'location'.
-	  - Add a note to clarify the distinction between $bkptno and $bpnum.
-	  - Use @kbd instead of examples with only one command.
-
-	Compared to RFA v1, the changes in v2 handle the comments given by
-	Keith Seitz and Eli Zaretskii:
-	  - Use %s for the result of paddress
-	  - Use bkptno_numopt_re instead of 2 different -re cases
-	  - use C@t{++}
-	  - Add index entries for $bkptno and $locno
-	  - Added an example for "locno" in the mi interface
-	  - Added examples in the Break command manual.
-
-2022-11-19  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add 'Ssstateen' extension and its CSRs
-	This commit adds 'Ssstateen' extension, which is a supervisor-visible view
-	of the 'Smstateen' extension.  It means, this extension implements sstateen*
-	and hstateen* CSRs of the 'Smstateen' extension.
-
-	Note that 'Smstateen' extension itself is unchanged but due to
-	implementation simplicity, it is implemented so that 'Smstateen' implies
-	'Ssstateen' (just like 'M' implies 'Zmmul').
-
-	This is based on the latest version of RISC-V Profiles
-	(version 0.9-draft, Frozen):
-	<https://github.com/riscv/riscv-profiles/commit/226b7f643067b29abc6723fac60d5f6d3f9eb901>
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_implicit_subsets): Update implication rules.
-		(riscv_supported_std_s_ext) Add 'Ssstateen' extension.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (enum riscv_csr_class): Rename
-		CSR_CLASS_SMSTATEEN_AND_H{,_32} to CSR_CLASS_SSSTATEEN_...
-		Add CSR_CLASS_SSSTATEEN.
-		(riscv_csr_address): Support new/renamed CSR classes.
-		* testsuite/gas/riscv/csr.s: Add 'Ssstateen' extension to comment.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Reflect changes to
-		error messages.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-		* testsuite/gas/riscv/ssstateen-csr.s: Test for 'Ssstateen' CSRs.
-		* testsuite/gas/riscv/ssstateen-csr.d: Likewise.
-		* testsuite/gas/riscv/smstateen-csr-s.d: Test to make sure that
-		supervisor/hypervisor part of 'Smstateen' CSRs are accessible from
-		'RV32IH_Smstateen', not just from 'RV32IH_Ssstateen' that is tested
-		in ssstateen-csr.d.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h: Update DECLARE_CSR declarations with
-		new CSR classes.
-
-2022-11-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver/linux-x86: move lwp declaration out of __x86_64__ region
-	Commit 4855cbdc3d8f ("gdbserver/linux-x86: make is_64bit_tdesc accept
-	thread as a parameter") caused this when building in 32 bits / i386
-	mode:
-
-	      CXX    linux-x86-low.o
-	    In file included from /home/smarchi/src/binutils-gdb/gdbserver/linux-x86-low.cc:24:
-	    /home/smarchi/src/binutils-gdb/gdbserver/linux-x86-low.cc: In member function ‘virtual int x86_target::low_get_thread_area(int, CORE_ADDR*)’:
-	    /home/smarchi/src/binutils-gdb/gdbserver/linux-x86-low.cc:357:47: error: ‘lwp’ was not declared in this scope
-	      357 |     struct thread_info *thr = get_lwp_thread (lwp);
-	          |                                               ^~~
-	    /home/smarchi/src/binutils-gdb/gdbserver/linux-low.h:709:31: note: in definition of macro ‘get_lwp_thread’
-	      709 | #define get_lwp_thread(lwp) ((lwp)->thread)
-	          |                               ^~~
-
-	This is because it moved the lwp variable declaration inside the
-	__x86_64__ guard, making it unavailable when building in 32 bits mode.
-	Move the lwp variable outside of the __x86_64__ region.
-
-	Change-Id: I7fa3938c6b44b345c27a52c8b8d3ea12aba53e05
-
-2022-11-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver: use current_process in ps_getpid
-	The following patch ("gdbserver: switch to right process in
-	find_one_thread") makes it so find_one_thread calls into libthread_db
-	with a current process but no current thread.  This tripped on ps_getpid
-	using current_thread in order to get the process' pid.  Get the pid from
-	`current_process ()` instead, which removes the need to have a current
-	thread.  Eventually, it would be good to get it from the
-	gdb_ps_prochandle_t structure, to avoid the need for a current process
-	as well.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-	Change-Id: I9d2fae266419199a2fbc2fde0a5104c6e0dbd2d5
-
-2022-11-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver/linux-x86: make is_64bit_tdesc accept thread as a parameter
-	ps_get_thread_area receives as a parameter the lwpid it must work on.
-	It then calls is_64bit_tdesc, which uses the current_thread as the
-	thread to work on.  However, it is not said that both are the same.
-
-	This became a problem when working in a following patch that makes
-	find_one_thread switch to a process but to no thread (current_thread ==
-	nullptr).  When libthread_db needed to get the thread area,
-	is_64bit_tdesc would try to get the regcache of a nullptr thread.
-
-	Fix that by making is_64bit_tdesc accept the thread to work on as a
-	parameter.  Find the right thread from the context, when possible (when
-	we know the lwpid to work on).  Otherwise, pass "current_thread", to
-	retain the existing behavior.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-	Change-Id: I44394d6be92392fa28de71982fd04517ce8a3007
-
-2022-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver/linux: take condition out of callback in find_lwp_pid
-	Just a small optimization, it's not necessary to recompute lwp at each
-	iteration.
-
-	While at it, change the variable type to long, as ptid_t::lwp returns a
-	long.
-
-	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
-	Change-Id: I181670ce1f90b59cb09ea4899367750be2ad9105
-
-2022-11-18  Johnson Sun  <j3.soon777@gmail.com>
-
-	Fix deletion of FinishBreakpoints
-	Currently, FinishBreakpoints are set at the return address of a frame based on
-	the `finish' command, and are meant to be temporary breakpoints. However, they
-	are not being cleaned up after use, as reported in PR python/18655. This was
-	happening because the disposition of the breakpoint was not being set
-	correctly.
-
-	This commit fixes this issue by correctly setting the disposition in the
-	post-stop hook of the breakpoint. It also adds a test to ensure this feature
-	isn't regressed in the future.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18655
-
-2022-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix symtab.c build on 32 bit targets
-	When building on Ubuntu 22.04, gcc 12, x86-64 with -m32 and -O2, I get:
-
-	      CXX    symtab.o
-	    /home/smarchi/src/binutils-gdb/gdb/symtab.c: In member function ‘std::vector<symbol_search> global_symbol_searcher::search() const’:
-	    /home/smarchi/src/binutils-gdb/gdb/symtab.c:4961:44: error: ‘__builtin___sprintf_chk’ may write a terminating nul past the end of the destination [-Werror=format-overflow=]
-	     4961 |               sprintf (tmp, "operator%.*s%s", fix, " ", opname);
-	          |                                            ^
-	    In file included from /usr/include/stdio.h:894,
-	                     from ../gnulib/import/stdio.h:43,
-	                     from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/common-defs.h:86,
-	                     from /home/smarchi/src/binutils-gdb/gdb/defs.h:28,
-	                     from /home/smarchi/src/binutils-gdb/gdb/symtab.c:20:
-	    In function ‘int sprintf(char*, const char*, ...)’,
-	        inlined from ‘std::vector<symbol_search> global_symbol_searcher::search() const’ at /home/smarchi/src/binutils-gdb/gdb/symtab.c:4961:16:
-	    /usr/include/i386-linux-gnu/bits/stdio2.h:38:34: note: ‘__builtin___sprintf_chk’ output between 9 and 2147483648 bytes into a destination of size 2147483647
-	       38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
-	          |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	       39 |                                   __glibc_objsize (__s), __fmt,
-	          |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	       40 |                                   __va_arg_pack ());
-	          |                                   ~~~~~~~~~~~~~~~~~
-
-	PR build/29798 shows a similar error message but on Solaris.
-
-	Work around that by using string_printf.  It is a good thing to get rid
-	of the alloca anyway.
-
-	Change-Id: Ifbac11fee3062ad7f134d596b4e2229dc5d166f9
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29798
-
-2022-11-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: rewrite gdb.cp/call-method-register.exp with dwarf assembler
-	Convert the gdb.cp/call-method-register.exp test to make use of the
-	DWARF assembler.
-
-	The existing gdb.cp/call-method-register.exp test relies on a GCC
-	extension - forcing a local variable into a particular named register.
-
-	This means that the test will only work with Clang, and, as we have to
-	name the register into which the variable will be placed, will only
-	work for those targets where we've selected a suitable register,
-	currently this is x86-64, i386, and ppc64.
-
-	By switching to the DWARF assembler, the test will work with gcc and
-	clang, and should work on most, if not all, architectures.
-
-	The test creates a small structure, something that can fit within a
-	register, and then tries to call a method on the structure from within
-	GDB.  This should fail because GDB can't take the address of the in
-	register structure (for the `this` pointer).
-
-	As the test is for a failure case, then we don't really care _which_
-	register the structure is in, and I take advantage of this for the
-	DWARF assembler test, I just declare that the variable is in
-	DW_OP_reg0, whatever that might be.  I've tested the new test on
-	x86-64, ppc, aarch64, and risc-v, and the test runs, and passes on all
-	these architectures, which is already more than we used to cover.
-
-	Additionally, on x86-64, I've tested with Clang and gcc, and the test
-	runs and passed with both compilers.
-
-	Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
-
-2022-11-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix gdb.debuginfod/fetch_src_and_symbols.exp with Clang
-	The gdb.debuginfod/fetch_src_and_symbols.exp test is showing a single
-	failure when run with some older versions of Clang, e.g. 9.0.1.
-
-	The problem appears to be with Clang's generated line table.  The test
-	source looks like this:
-
-	  int
-	  main()
-	  {
-	    asm ("main_label: .globl main_label");
-	    return 0;
-	  }
-
-	In GDB, when we 'start', we expect to stop at the 'return 0;' line.
-	This is the behaviour when the compiler is gcc, or later versions of
-	Clang.
-
-	However, with Clang 9.0.2, I see GDB stop on the 'asm' line.
-
-	In this commit I'll fix this issue by placing a breakpoint on the
-	return line, and then using gdb_continue_to_breakpoint to ensure we
-	have stopped in the correct place.
-
-	Of course, using gdb_continue_to_breakpoint will only work if we are
-	not already stopped at the breakpoint location, so I've added some
-	filler work before the 'return 0;' line.  With this done we can use
-	gdb_continue_to_breakpoint in all cases.
-
-	As a result of adding the new filler work, one of the later tests,
-	that used the 'list' command, no longer see the correct expected
-	output (the top line of the source file is no longer included in the
-	output).  I've fixed this by listing a known specific line, the test
-	is checking that GDB managed to find the source file, it doesn't
-	matter which source line we list, as long as we can list something.
-
-2022-11-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: rename source file gdb.debuginfod/main.c
-	The test gdb.debuginfod/fetch_src_and_symbols.exp uses a source file
-	named main.c.  I can't see any particular reason why the file is named
-	as such.
-
-	Usually test source files are named after the test script.
-
-	This commit just renames the source file inline with the test script,
-	and updates the call to standard_testfile (removing the reference to
-	main.c).
-
-	There's no particular reason for this change other than seeing the
-	file named main.c made me thing that the source file must be shared
-	with some other test (it isn't).
-
-	There should be no change in what is tested after this commit.
-
-2022-11-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: add (and use) a new build-id compile option
-	I noticed that the gdb.debuginfod/fetch_src_and_symbols.exp test was
-	failing when run with Clang as the compiler.
-
-	This test relies on the compiled binaries having a build-id within
-	them.  For GCC, really GNU ld, the default is to always include a
-	build-id.
-
-	When compiling with Clang though, the default is for no build-id.
-
-	I did consider *always* turning on the build-id feature when the
-	compiler is Clang, but that felt a little weird.
-
-	Instead, I propose that we add a new 'build-id' compiler option to
-	gdb_compile, this flag indicates that the test _requires_ a build-id.
-	In gcc_compile we can then add the required flags if the compiler is
-	Clang so that we do get a build-id.
-
-	With this change the gdb.debuginfod/fetch_src_and_symbols.exp test
-	now (mostly) passes with Clang 9.0.1 and 15.0.2, and still passes with
-	gcc.  The 'mostly' part is an unrelated issue, and will be addressed
-	in a later commit in this series.
-
-	Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
-
-2022-11-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix gdb.compile/compile-ops.exp with clang
-	I noticed that the gdb.compile/compile-ops.exp test was failing when
-	run with Clang as the compiler.
-
-	This test makes use of the DWARF assembler, and, it turns out, uses
-	a technique which is not portable to Clang.   This problem is
-	described in the comment on the function_range proc in lib/dwarf.exp,
-	the explanation is:
-
-	  # If the compiler is gcc, we can do the following to get function start
-	  # and end address too:
-	  #
-	  # asm ("func_start: .globl func_start");
-	  # static void func (void) {}
-	  # asm ("func_end: .globl func_end");
-	  #
-	  # however, this isn't portable, because other compilers, such as clang,
-	  # may not guarantee the order of global asms and function.  The code
-	  # becomes:
-	  #
-	  # asm ("func_start: .globl func_start");
-	  # asm ("func_end: .globl func_end");
-	  # static void func (void) {}
-
-	These start/end labels are used for computing the function start, end,
-	and length.  The portable solution is to place a label within the
-	function, like this:
-
-	  #  int main (void)
-	  #  {
-	  #    asm ("main_label: .globl main_label");
-	  #    return 0;
-	  #  }
-
-	And make use of 'proc function_range' (from lib/dwarf.exp).
-
-	So, that's what I do in this commit.
-
-	One consequence of this change is that we need to compile the source
-	file, and have it loaded into a GDB session, before calling
-	function_range, so I've added an early call to prepare_for_testing.
-
-	Additionally, this test script was generating the DWARF assembler into
-	a file called gdbjit-ops.S, I suspect a copy and paste issue there, so
-	I've switched this to use compile-ops-dbg.S instead, which is more
-	inline with what other DWARF assembler tests do.
-
-	The only other change, which might be a problem, is that I also
-	deleted these two lines from the source file:
-
-	  asm (".section \".text\"");
-	  asm (".balign 8");
-
-	These lines were setting the alignment of the .text section.  What I
-	don't know is whether this was significant or not.  If it is
-	significant, then I can't see why.
-
-	On x86-64, the test still passes fine without these lines, but that
-	doesn't mean the test wont start failing on some other architecture.
-
-	Still, I figure, lets remove them, then, if/when we find a test that
-	starts failing, we can add the lines back, along with an explanation
-	for why the extra alignment is required.
-
-	But, if people would prefer to be more conservative, then I'm happy to
-	just add the lines back.
-
-	Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
-
-2022-11-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix gdb.trace/unavailable-dwarf-piece.exp with Clang
-	I noticed that the test gdb.trace/unavailable-dwarf-piece.exp was
-	failing when run with Clang.  Or rather, the test was not running as
-	the test executable failed to compile.
-
-	The problem is that Clang was emitting this warning:
-
-	  warning: argument unused during compilation: '-fdiagnostics-color=never' [-Wunused-command-line-argument]
-
-	This warning is emitted when compiling the assembler file generated
-	by the DWARF assembler.
-
-	Most DWARF assembler tests generate the assembler file into a file
-	with the '.S' extension.  However, this particular test uses a '.s'
-	extension.
-
-	Now a .S file will be passed through the preprocessor, while a .s will
-	be sent straight to the assembler.  My guess is that Clang doesn't
-	support the -fdiagnostics-color=never option for the assembler, but
-	does for the preprocessor.
-
-	That's a little annoying, but easily worked around.  We don't care if
-	our assembler file is passed through the preprocessor, so, in this
-	commit, I just change the file extension from .s to .S, and the
-	problem is fixed.
-
-	Currently, the unavailable-dwarf-piece.exp script names the assembler
-	file using standard_output_file, in this commit I've switched to make
-	use of standard_testfile, as that seems to be the more common way of
-	doing this sort of thing.
-
-	With these changes the test now passes with Clang 9.0.1 and 15.0.2,
-	and also still passes with gcc.
-
-	Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
-
-2022-11-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: don't avoid DWARF assembler tests with Clang
-	Two tests make the claim that the DWARF assembler requires gcc,
-	however, this isn't true.  I think at one point, when the DWARF
-	assembler was first added, we did use some techniques that were not
-	portable (see the comments in lib/dwarf.exp on function_range for
-	details), however, I think most DWARF assembler tests will now work
-	fine with Clang.
-
-	The two tests that I modify in this commit both work fine with Clang,
-	at least, I've tested with Clang 9.0.1 and 15.0.2, and don't see any
-	problems, so I'm removing the early return logic that stops these
-	tests from running with Clang.
-
-	Reviewed-By: Lancelot SIX <lancelot.six@amd.com>
-
-2022-11-18  Zac Walker  <zac.walker@linaro.org>
-
-	GAS fix alignment for aarch64-pe
-	Fixes issue where various values of '.align' causes writing of COFF files to fail.
-	Specific to the aarch64-pe target.
-
-2022-11-18  Alan Modra  <amodra@gmail.com>
-
-	PR29799 heap buffer overflow in display_gdb_index dwarf.c:10548
-		PR 29799
-		* dwarf.c (display_gdb_index): Typo fix.
-
-	go32 sanity check
-		* coff-stgo32 (go32exe_check_format): Sanity check stubsize against
-		filesize before malloc.
-
-	Regen potfiles for sframe
-
-2022-11-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-17  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	[gas, aarch64]: fix build breakage for aarch64-pe
-	SFrame is supported for ELF only.  Keep the definitions and declarations
-	guarded with OBJ_ELF consistently.
-
-	ChangeLog:
-
-		* gas/config/tc-aarch64.h:  Guard SFrame related definitions
-		  with OBJ_ELF.
-
-2022-11-17  Tom Tromey  <tromey@adacore.com>
-
-	Fix static initialization order problem in windows-nat.c
-	This patch fixes a static initialization order problem in
-	windows-nat.c that was pointed out by Jon Turney.  The underlying
-	problem is that the windows_nat_target constructor relies on
-	serial_logfile already being constructed, but this is not enforced by
-	C++ rules.  This patch fixes the problem by initializing the global
-	windows_nat_target later.
-
-2022-11-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	opcodes: Define NoSuf in i386-opc.tbl
-	Use NoSuf to replace No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf
-	and add the explicit NoSuf to AddrPrefixOpReg in templates.
-
-		* i386-opc.tbl (NoSuf): New macro.
-		(AddrPrefixOpReg): Remove No_?Suf.
-		Replace No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf with
-		NoSuf in templates.
-		Add NoSuf to AddrPrefixOpReg in templates.
-
-2022-11-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Move i386_seg_prefixes to gas
-	gas/
-
-		* config/tc-i386.c (i386_seg_prefixes): New. Moved from opcodes.
-
-	opcodes/
-
-		* i386-opc.c (i386_seg_prefixes): Removed.
-		* i386-opc.h (i386_seg_prefixes): Likewise.
-
-2022-11-17  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, fix gdb.base/retval-large-struct.exp
-	Support for printining non-trivial return values was recently added in
-	commit:
-
-	  commit a0eda3df5b750ae32576a9be092b361281a41787
-	  Author: Carl Love <cel@us.ibm.com>
-	  Date:   Mon Nov 14 16:22:37 2022 -0500
-
-	    PowerPC, fix support for printing the function return value for non-trivial values.
-
-	The functionality can now be used to fix gdb.base/retval-large-struct.exp.
-	The test just needs to be compiled with -fvar-tracking to enable GDB to
-	determine the address off the return buffer when the function is called.
-
-	The current output from the test:
-
-	34        return big_struct;
-	(gdb) PASS: gdb.base/retval-large-struct.exp: continue to breakpoint: Break in print_large_struct
-	finish
-	warning: Cannot determine the function return value.
-	Try compiling with -fvar-tracking.
-	Run till exit from #0  return_large_struct () at binutils-gdb-current/gdb/testsuite/gdb.base/retval-large-struct.c:34
-	main (argc=1, argv=0x7fffffffcd58) at binutils-gdb-current/gdb/testsuite/gdb.base/retval-large-struct.c:44
-	44        return 0;
-	Value returned has type: struct big_struct_t. Cannot determine contents
-	(gdb) FAIL: gdb.base/retval-large-struct.exp: finish from return_large_struct
-	testcase binutils-gdb-current/gdb/testsuite/gdb.base/retval-large-struct.exp completed in 1 seconds
-
-	This patch adds the command line argument -fvar-tracking to enable gdb to
-	determine the return vaule and thus fixing the test.
-
-	Patch tested on Power 10 with no regressions.
-
-2022-11-17  Tom Tromey  <tromey@adacore.com>
-
-	Use boolean literals for pagination_enabled
-	I noticed a couple of spots that used '0' rather than 'false' when
-	modifying pagination_enabled.  This patch cleans these up.
-
-2022-11-17  Carl Love  <cel@us.ibm.com>
-
-	Change NULL to nullptr in gdb/infcmd.c and gdb/infrun.c
-	The GDB coding standard specifies that nullptr should be used instead of
-	NULL.  There are numerous uses of NULL and nullptr in files infcmd.c and
-	infrun.c.  This patch replaces the various uses of NULL with nullptr in
-	the source files.  The use of NULL in the comments was not changed.
-
-	The patch does not introduce any functional changes.
-
-	The patch has been tested on PowerPC and Intel X86_64 with no new unexpected
-	test failures, unresolved tests, new core files etc.
-
-2022-11-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Always call elf_backend_output_arch_local_syms
-	Always call elf_backend_output_arch_local_syms since only the backend
-	knows if elf_backend_output_arch_local_syms is needed when all symbols
-	are striped.  elf_backend_output_arch_local_syms is defined only for
-	x86, ARM and AARCH64.  On x86, elf_backend_output_arch_local_syms must
-	be called to handle local IFUNC symbols even if all symbols are striped.
-	Update ARM and AARCH64 to skip elf_backend_output_arch_local_syms when
-	symbols aren't needed.
-
-	bfd/
-
-		PR ld/29797
-		* elf32-arm.c (elf32_arm_output_arch_local_syms): Skip if symbols
-		aren't needed.
-		* elfnn-aarch64.c (elfNN_aarch64_output_arch_local_syms):
-		Likewise.
-		* elflink.c (bfd_elf_final_link): Always call
-		elf_backend_output_arch_local_syms if available.
-
-	ld/
-
-		PR ld/29797
-		* testsuite/ld-elf/linux-x86.exp: Run PR ld/29797 test.
-		* testsuite/ld-elf/pr29797.c: New file.
-
-2022-11-17  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: new $_inferior_thread_count convenience variable
-	Add a new convenience variable $_inferior_thread_count that contains
-	the number of live (non-exited) threads in the current inferior.  This
-	can be used in command scripts, or breakpoint conditions, etc to
-	adjust the behaviour for multi-threaded inferiors.
-
-	This value is only stable in all-stop mode.  In non-stop mode, where
-	new threads can be started, and existing threads exit, at any time,
-	this convenience variable can give a different value each time it is
-	evaluated.
-
-2022-11-17  Tom Tromey  <tromey@adacore.com>
-
-	Remove two obsolete declarations
-	I happened to find a couple of obsolete declarations in cli-interp.h.
-	This patch removes them.  Tested by rebuilding.
-
-2022-11-17  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix failure in gdb.python/py-send-packet.exp
-	While working on another patch I noticed that, when run on an AArch64
-	target, the test gdb.python/py-send-packet.exp was failing:
-
-	  Traceback (most recent call last):
-	    File "<string>", line 1, in <module>
-	    File "/tmp/build/gdb/testsuite/outputs/gdb.python/py-send-packet/py-send-packet.py",
-	  line 106, in run_auxv_send_packet_test
-	      assert string == expected_result
-	  AssertionError
-	  Error while executing Python code.
-	  (gdb) FAIL: gdb.python/py-send-packet.exp: call python run_auxv_send_packet_test function
-
-	The test uses 'maint packet ...' to send a packet to gdbserver, and
-	then captures the output in TCL.  This output is then passed through
-	to a Python function, which performs some actions using the Python
-	API, and compares the results from the Python API to the results
-	captured in TCL from 'maint packet ...'.
-
-	The problem is that the output captured in TCL contains lots of things
-	like '\x000', when this is passed through to Python the '\x' causes
-	this to be treated as an escape code, which isn't what we want - we
-	want the actual string "\x000".
-
-	So, in the TCL part of the test we were expanding '\x' to '\\x', this
-	seemed to work fine for my testing on x86-64.
-
-	However, on AArch64 what I see is that the results from 'maint packet
-	...' contain a literal '\' character followed by a literal 'x'
-	character.  When GDB prints this in the 'maint packet' output, GDB
-	escapes the '\' for us, thus we get '\\x' printed by 'maint packet'.
-
-	However, now our TCL test script kicks in and tries to "fix" the '\x',
-	this means we now have '\\\x', which isn't correct.
-
-	The problem is that in the TCL script we are too restrictive, we
-	expand '\x' to '\\x', but really, we should be expanding all '\'
-	characters, regardless of what follows them.  This is what this patch
-	does.
-
-	After this the gdb.python/py-send-packet.exp test passes on AArch64
-	for me.
-
-2022-11-17  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Fix call functions command bug in 64 bits programs for AIX
-	In AIX for 64 bit programs we need to zero extend variables
-	of integer or enum or char data type.
-
-	Otherwise a zero will get dumped in the register as we memset
-	our word to 0 and we copy non zero extended contents to the cache.
-
-2022-11-17  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/fortran/testsuite: print values and types of string variables
-	While looking through the Fortran tests, I couldn't find a test of GDB
-	printing the value and type of a Fortran string defined using the
-	'character*SIZE' notation.
-
-	This works fine in GDB right now, but I thought it wouldn't hurt to
-	have a test for this, so this commit adds such a test.
-
-	The test also includes printing a string that includes some embedded
-	special characters: \n \r \t \000 - that's right, as Fortran strings
-	are stored as an address and length, it is fine to include an embedded
-	null, so this test includes an example of that.
-
-	Standard Fortran doesn't support backslash escape sequences within
-	strings, the special characters must be generated using the `achar`
-	function.  However, when GDB prints the strings we currently print
-	using the standard C like backslash sequences.
-
-	I'm not currently proposing to change that behaviour, the backslash
-	sequences are more compact than the standard Fortran way of doing
-	things, and are so widely used that I suspect most Fortran programmers
-	will understand them.
-
-2022-11-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	Fix various procfs.c compilation errors
-	procfs.c has accumulated several compilation errors lately (some of them
-	new with GCC 12), which are fixed by this patch:
-
-	* auxv_parse gets:
-
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c:144:7: error: ‘int
-	procfs_target::auxv_parse(gdb_byte**, gdb_byte*, CORE_ADDR*, CORE_ADDR*)’
-	marked ‘override’, but does not override
-	  144 |   int auxv_parse (gdb_byte **readptr,
-	      |       ^~~~~~~~~~
-
-	  Obviouly, procfs.c was missed in the auxv_parse constification.
-
-	* dead_procinfo has:
-
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c: In function ‘void
-	dead_procinfo(procinfo*, const char*, int)’:
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c:563:11: warning: the address
-	of ‘procinfo::pathname’ will never be NULL [-Waddress]
-	  563 |   if (pi->pathname)
-	      |       ~~~~^~~~~~~~
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c:238:8: note:
-	‘procinfo::pathname’ declared here
-	  238 |   char pathname[MAX_PROC_NAME_SIZE];    /* Pathname to /proc entry */
-	      |        ^~~~~~~~
-
-	  The warning is correct, so the code can lose support for the NULL
-	  pathname case.
-
-	* create_inferior has this ugly warning:
-
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c: In member function ‘virtual void procfs_target::create_inferior(const char*, const std::string&, char**, int)’:
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c:2815:19: warning: ‘char* std::strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
-	 2815 |           strncpy (tryname, p, len);
-	      |           ~~~~~~~~^~~~~~~~~~~~~~~~~
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c:2814:26: note: length computed here
-	 2814 |             len = strlen (p);
-	      |                   ~~~~~~~^~~
-
-	  It seems that this is another case of GCC PR middle-end/88059, which
-	  Martin Sebor refuses to fix.  So I'm using the hack suggested in the
-	  PR to use memcpy instead of strncpy.
-
-	* find_memory_regions_callback fails with
-
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c: In function ‘int find_memory_regions_callback(prmap*, find_memory_region_ftype, void*)’:
-	/vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c:3167:18: error: too few arguments to function
-	 3167 |   return (*func) ((CORE_ADDR) map->pr_vaddr,
-	      |          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 3168 |                   map->pr_size,
-	      |                   ~~~~~~~~~~~~~
-	 3169 |                   (map->pr_mflags & MA_READ) != 0,
-	      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 3170 |                   (map->pr_mflags & MA_WRITE) != 0,
-	      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 3171 |                   (map->pr_mflags & MA_EXEC) != 0,
-	      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 3172 |                   1, /* MODIFIED is unknown, pass it as true.  */
-	      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 3173 |                   data);
-	      |                   ~~~~~
-
-	  Again, procfs.c was overlooked when adding the new memory_tagged arg.
-	  Unfortunately, it wasn't even documented in gdb/defs.h when it was
-	  added in
-
-	commit 68cffbbd4406b4efe1aa6e18460b1d7ca02549f1
-	Author: Luis Machado <luis.machado@arm.com>
-	Date:   Thu Mar 31 11:42:35 2022 +0100
-
-	    [AArch64] MTE corefile support
-
-	With those changes, procfs.c compiles again.  Together with the hack
-	from the Solaris gdbsupport breakage reported in PR build/29791, I was
-	able to build and test gdb on both amd64-pc-solaris2.11 and
-	sparcv9-sun-solaris2.11.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-17  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head Int vendor extension
-	This patch adds the XTheadInt extension, which provides interrupt
-	stack management instructions.
-
-	The XTheadFmv extension is documented in the RISC-V toolchain
-	contentions:
-	  https://github.com/riscv-non-isa/riscv-toolchain-conventions
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-11-17  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head Fmv vendor extension
-	This patch adds the XTheadFmv extension, which allows to access the
-	upper 32 bits of a double-precision floating-point register in RV32.
-
-	The XTheadFmv extension is documented in the RISC-V toolchain
-	contentions:
-	  https://github.com/riscv-non-isa/riscv-toolchain-conventions
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-11-17  Tom de Vries  <tdevries@jostaberry-8.arch.suse.de>
-
-	[gdb/testsuite] Fix DUPLICATE in gdb.arch/ppc-fp.exp
-	I noticed:
-	...
-	DUPLICATE: gdb.arch/ppc-fp.exp: next
-	...
-
-	Fix this by adding unique test names.
-
-	Tested on powerpc64le-linux.
-
-2022-11-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-16  Kévin Le Gouguec  <legouguec@adacore.com>
-
-	Add myself to the gdb/MAINTAINERS write-after-approval list
-
-2022-11-16  Kévin Le Gouguec  <legouguec@adacore.com>
-
-	Guard against frame.c destructors running before frame-info.c's
-	On x86_64-windows, since 04e2ac7b2a7, we observe this internal error:
-
-	  [...]/gdbsupport/intrusive_list.h:458: internal-error: erase_element:
-	  Assertion `elem_node->prev != INTRUSIVE_LIST_UNLINKED_VALUE' failed.
-
-	Breaking in the destructors for intrusive_list and frame_info_ptr shows that
-	in this configuration, the destructors for frame.c's statically-stored
-	objects are run before frame-info.c's:
-
-	  Thread 1 hit Breakpoint 7, intrusive_list<frame_info_ptr,
-	  intrusive_base_node<frame_info_ptr> >::~intrusive_list (this=0x7ff69c418c90
-	  <frame_info_ptr::frame_list>, __in_chrg=<optimized out>)
-	  [...]/../gdbsupport/intrusive_list.h:250
-	  250	    clear ();
-	  (gdb) bt
-	  #0  intrusive_list<frame_info_ptr, intrusive_base_node<frame_info_ptr> >
-	      ::~intrusive_list (this=0x7ff69c418c90 <frame_info_ptr::frame_list>,
-	      __in_chrg=<optimized out>) [...]/../gdbsupport/intrusive_list.h:250
-	  #1  0x00007ff69b78edba in __tcf_1 () [...]/frame-info.c:27
-	  #2  0x00007ff9c457aa9f in msvcrt!_initterm_e ()
-	      from C:\Windows\System32\msvcrt.dll
-	  #3  0x00007ff69b8246a6 in captured_main_1 (context=0x5ffe00)
-	      [...]/main.c:1111
-	  #4  0x00007ff69b825149 in captured_main (data=0x5ffe00) [...]/main.c:1320
-	  #5  0x00007ff69b8251b1 in gdb_main (args=0x5ffe00) [...]/main.c:1345
-	  #6  0x00007ff69b5d1730 in main (argc=2, argv=0x751730) [...]/gdb.c:32
-	  (gdb) c
-	  Continuing.
-
-	  Thread 1 hit Breakpoint 8, frame_info_ptr::~frame_info_ptr
-	  (this=0x7ff69c418e20 <selected_frame>, __in_chrg=<optimized out>)
-	  [...]/frame-info.h:74
-	  74	    if (is_linked ())
-	  (gdb) bt
-	  #0  frame_info_ptr::~frame_info_ptr (this=0x7ff69c418e20 <selected_frame>,
-	      __in_chrg=<optimized out>) [...]/frame-info.h:74
-	  #1  0x00007ff69b79a643 in __tcf_1 () [...]/frame.c:1675
-	  #2  0x00007ff9c457aa9f in msvcrt!_initterm_e () from
-	      C:\Windows\System32\msvcrt.dll
-	  #3  0x00007ff69b8246a6 in captured_main_1 (context=0x5ffe00)
-	      [...]/main.c:1111
-	  #4  0x00007ff69b825149 in captured_main (data=0x5ffe00) [...]/main.c:1320
-	  #5  0x00007ff69b8251b1 in gdb_main (args=0x5ffe00) [...]/main.c:1345
-	  #6  0x00007ff69b5d1730 in main (argc=2, argv=0x751730) [...]/gdb.c:32
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	PR29788, gprofng cannot display Java's generated assembly code
-	gprofng/ChangeLog
-	2022-11-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29788
-		* src/Experiment.h: Declare dyntext_name.
-		* src/Experiment.cc: Use dyntext_name to initialize img_fname.
-
-2022-11-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use gdb_gcore_cmd in gdb.threads/gcore-thread.exp
-	I noticed a plain gcore command in test-case gdb.threads/gcore-thread.exp:
-	...
-	    gdb_test "gcore $core0file" "Saved corefile .*" \
-	      "save a zeroed-threads corefile"
-	...
-
-	Use gdb_gcore_cmd instead.
-
-	Tested on x86_64-linux.
-
-2022-11-16  Carl Love  <cel@us.ibm.com>
-
-	Bug fix in commit for printing the function return value for non-trivial values
-	The recent commit:
-
-	  commit a0eda3df5b750ae32576a9be092b361281a41787
-	  Author: Carl Love <cel@us.ibm.com>
-	  Date:   Mon Nov 14 16:22:37 2022 -0500
-
-	    PowerPC, fix support for printing the function return value for non-trivial values.
-
-	Is generating a segmentation fault on x86_64-linux.
-
-	  segfault:
-	  ...
-	  PASS: gdb.asm/asm-source.exp: info source asmsrc1.s
-	  ERROR: GDB process no longer exists
-	  UNRESOLVED: gdb.asm/asm-source.exp: finish from foo3
-	  ...
-
-	  Reproduced on command line:
-	  ...
-	  $ gdb -q -batch -x outputs/gdb.asm/asm-source/gdb.in.1
-	  ...
-
-	  The problem seems to be that:
-	  ...
-	  Thread 1 "gdb" received signal SIGSEGV, Segmentation fault.
-	  0x000000000043de7a in symbol::type (this=0x0) at
-	  .../gdb_versions/devel/src/gdb/symtab.h:1287
-	  1287        return m_type;
-	  ...
-	  because:
-	  ...
-	  (gdb) up
-	  #1  0x0000000000852d94 in finish_command (arg=0x0, from_tty=0)
-	     at .../gdb_versions/devel/src/gdb/infcmd.c:1887
-	  1887        = check_typedef (sm->function->type ()->target_type ());
-	  (gdb) p sm->function
-	  $1 = (symbol *) 0x0
-
-	The code is not checking if sm->function is NULL.  If sm->function is NULL
-	the check for the return buffer should be skipped.
-
-2022-11-16  Tom Tromey  <tromey@adacore.com>
-
-	Update Ada tasks documentation
-	My co-worker Kévin noticed that the Ada tasks documentation is
-	slightly out of date -- it does not document all the states that can
-	be reported by ada-tasks.c.
-
-	This patch adds the missing states to the appropriate node, and
-	updates one state to reflect a change made some time ago.
-
-2022-11-16  Pedro Alves  <palves@redhat.com>
-
-	gdb: add "set style tui-current-position on|off", default to off
-	As discussed at:
-
-	 https://sourceware.org/pipermail/gdb-patches/2020-June/169519.html
-
-	this patch disables source and assembly code highlighting for the
-	text highlighted by the TUI's current position indicator, and adds a
-	command to enable it back.
-
-2022-11-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Modernize gdb.arch/i386-biarch-core.exp
-	I noticed in test-case gdb.arch/i386-biarch-core.exp that we run into the
-	completion limit for "complete set gnutarget":
-	...
-	set gnutarget vms-libtxt^M
-	set gnutarget  *** List may be truncated, max-completions reached. ***^M
-	(gdb) PASS: gdb.arch/i386-biarch-core.exp: complete set gnutarget
-	...
-
-	Fix this by using get_set_option_choices.
-
-	Also use get_set_option_choices for "complete set architecture i386", which
-	required extending get_set_option_choices to accept a second argument, such
-	that we can do:
-	...
-	set archs [get_set_option_choices "set architecture" "i386"]
-	...
-	because this returns an empty list:
-	...
-	set archs [get_set_option_choices "set architecture i386"]
-	...
-	because it does "complete set architecture i386 ".
-
-	Also clean up the explicit gdb_exit/gdb_start and use clean_restart instead.
-
-	Tested on x86_64-linux.
-
-2022-11-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/ppc64-symtab-cordic.exp without bzip2
-	After de-installing bzip2, I run into:
-	...
-	Running ppc64-symtab-cordic.exp ...
-	sh: bzip2: command not found
-	PATH: gdb.arch/ppc64-symtab-cordic.exp: failed bzip2 for \
-	  src/gdb/testsuite/gdb.arch/cordic.ko.bz2
-	...
-
-	Fix these by:
-	- using remote_exec instead of catch system, and
-	- using file tail in the untested message.
-
-	I've tried making output redirection work with remote_exec, but that seems to
-	be broken, so we now:
-	- copy the file $f.bz2 into the desired location $dir/$f.bz2, and
-	- decompress the bz2 file using "bzip2 -df $dir/$f.bz2", resulting in a file
-	  $dir/$f.
-
-	Factor out new function decompress_bz2 to make the test-case less verbose, and
-	also use it in gdb.arch/i386-biarch-core.exp.
-
-	Tested on x86_64-linux, without and with bzip2 installed.
-
-2022-11-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	doc: add SFrame spec file
-	ChangeLog:
-
-		* libsframe/Makefile.am: Add info-in-builddir to
-		  AUTOMAKE_OPTIONS. Include doc/local.mk.
-		* libsframe/Makefile.in: Regenerated.
-		* libsframe/configure: Likewise.
-		* libsframe/configure.ac: Check for makeinfo and set BUILD_INFO.
-		* libsframe/doc/local.mk: New file.
-		* libsframe/doc/sframe-spec.texi: Likewise.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas/NEWS: add text about new command line option and SFrame support
-	ChangeLog:
-
-		* gas/NEWS: Add SFrame related news.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	binutils/NEWS: add text for SFrame support
-	ChangeLog:
-
-		* binutils/NEWS: Add item for SFrame support.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	src-release.sh: Add libsframe
-	Add libsframe to the list of top level directories that will be included
-	in a release.
-
-	ChangeLog:
-
-		* src-release.sh: Add libsframe
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	readelf/objdump: support for SFrame section
-	This patch adds support for SFrame in readelf and objdump. The arguments
-	of --sframe are optional for both readelf and objdump.
-
-	include/ChangeLog:
-
-		* sframe-api.h (dump_sframe): New function declaration.
-
-	ChangeLog:
-
-		* binutils/Makefile.am: Add dependency on libsframe for
-		readelf and objdump.
-		* binutils/Makefile.in: Regenerate.
-		* binutils/doc/binutils.texi: Document --sframe=[section].
-		* binutils/doc/sframe.options.texi: New file.
-		* binutils/objdump.c: Add support for SFrame format.
-		* binutils/readelf.c: Likewise.
-		* include/sframe-api.h: Add new API for dumping .sframe
-		section.
-		* libsframe/Makefile.am: Add sframe-dump.c.
-		* libsframe/Makefile.in: Regenerate.
-		* libsframe/sframe-dump.c: New file.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	bfd: linker: merge .sframe sections
-	The linker merges all the input .sframe sections.  When merging, the
-	linker verifies that all the input .sframe sections have the same
-	abi/arch.
-
-	The linker uses libsframe library to perform key actions on the
-	.sframe sections - decode, read, and create output data.  This
-	implies buildsystem changes to make and install libsframe before
-	libbfd.
-
-	The linker places the output .sframe section in a new segment of its
-	own: PT_GNU_SFRAME.  A new segment is not added, however, if the
-	generated .sframe section is empty.
-
-	When a section is discarded from the final link, the corresponding
-	entries in the .sframe section for those functions are also deleted.
-
-	The linker sorts the SFrame FDEs on start address by default and sets
-	the SFRAME_F_FDE_SORTED flag in the .sframe section.
-
-	This patch also adds support for generation of SFrame unwind
-	information for the .plt* sections on x86_64.  SFrame unwind info is
-	generated for IBT enabled PLT, lazy/non-lazy PLT.
-
-	The existing linker option --no-ld-generated-unwind-info has been
-	adapted to include the control of whether .sframe unwind information
-	will be generated for the linker generated sections like PLT.
-
-	Changes to the linker script have been made as necessary.
-
-	ChangeLog:
-
-		* Makefile.def: Add install dependency on libsframe for libbfd.
-		* Makefile.in: Regenerated.
-		* bfd/Makefile.am: Add elf-sframe.c
-		* bfd/Makefile.in: Regenerated.
-		* bfd/bfd-in2.h (SEC_INFO_TYPE_SFRAME): Regenerated.
-		* bfd/configure: Regenerate.
-		* bfd/configure.ac: Add elf-sframe.lo.
-		* bfd/elf-bfd.h (struct sframe_func_bfdinfo): New struct.
-		(struct sframe_dec_info): Likewise.
-		(struct sframe_enc_info): Likewise.
-		(struct elf_link_hash_table): New member for encoded .sframe
-		object.
-		(struct output_elf_obj_tdata): New member.
-		(elf_sframe): New access macro.
-		(_bfd_elf_set_section_sframe): New declaration.
-		* bfd/elf.c (get_segment_type): Handle new segment
-		PT_GNU_SFRAME.
-		(bfd_section_from_phdr): Likewise.
-		(get_program_header_size): Likewise.
-		(_bfd_elf_map_sections_to_segments): Likewise.
-		* bfd/elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Add
-		contents to the .sframe sections or .plt* entries.
-		* bfd/elflink.c (elf_section_ignore_discarded_relocs): Handle
-		SEC_INFO_TYPE_SFRAME.
-		(_bfd_elf_default_action_discarded): Handle .sframe section.
-		(elf_link_input_bfd): Merge .sframe section.
-		(bfd_elf_final_link): Write the output .sframe section.
-		(bfd_elf_discard_info): Handle discarding .sframe section.
-		* bfd/elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Create
-		.sframe section for .plt and .plt.sec.
-		(_bfd_x86_elf_finish_dynamic_sections): Handle .sframe from
-		.plt* sections.
-		* bfd/elfxx-x86.h (PLT_SFRAME_FDE_START_OFFSET): New
-		definition.
-		(SFRAME_PLT0_MAX_NUM_FRES): Likewise.
-		(SFRAME_PLTN_MAX_NUM_FRES): Likewise.
-		(struct elf_x86_sframe_plt): New structure.
-		(struct elf_x86_link_hash_table): New member.
-		(struct elf_x86_init_table): New members for .sframe
-		creation.
-		* bfd/section.c: Add new definition SEC_INFO_TYPE_SFRAME.
-		* binutils/readelf.c (get_segment_type): Handle new segment
-		PT_GNU_SFRAME.
-		* ld/ld.texi: Update documentation for
-		--no-ld-generated-unwind-info.
-		* ld/scripttempl/elf.sc: Support .sframe sections.
-		* ld/Makefile.am (TESTSFRAMELIB): Use it.
-		(check-DEJAGNU): Likewise.
-		* ld/Makefile.in: Regenerated.
-		* ld/configure.ac (TESTSFRAMELIB): Set to the .so or .a like TESTBFDLIB.
-		* ld/configure: Regenerated.
-		* bfd/elf-sframe.c: New file.
-
-	include/ChangeLog:
-
-		* elf/common.h (PT_GNU_SFRAME): New definition.
-		* elf/internal.h (struct elf_segment_map): Handle new segment
-		type PT_GNU_SFRAME.
-
-	ld/testsuite/ChangeLog:
-
-		* ld/testsuite/ld-bootstrap/bootstrap.exp: Add SFRAMELIB.
-		* ld/testsuite/ld-aarch64/aarch64-elf.exp: Add new test
-		  sframe-simple-1.
-		* ld/testsuite/ld-aarch64/sframe-bar.s: New file.
-		* ld/testsuite/ld-aarch64/sframe-foo.s: Likewise.
-		* ld/testsuite/ld-aarch64/sframe-simple-1.d: Likewise.
-		* ld/testsuite/ld-sframe/sframe-empty.d: New test.
-		* ld/testsuite/ld-sframe/sframe-empty.s: New file.
-		* ld/testsuite/ld-sframe/sframe.exp: New testsuite.
-		* ld/testsuite/ld-x86-64/sframe-bar.s: New file.
-		* ld/testsuite/ld-x86-64/sframe-foo.s: Likewise.
-		* ld/testsuite/ld-x86-64/sframe-simple-1.d: Likewise.
-		* ld/testsuite/ld-x86-64/sframe-plt-1.d: Likewise.
-		* ld/testsuite/ld-x86-64/sframe-simple-1.d: Likewise.
-		* ld/testsuite/ld-x86-64/x86-64.exp: Add new tests -
-		  sframe-simple-1, sframe-plt-1.
-		* ld/testsuite/lib/ld-lib.exp: Add new proc to check if
-		  assembler supports SFrame section.
-		* ld/testsuite/ld-sframe/discard.d: New file.
-		* ld/testsuite/ld-sframe/discard.ld: Likewise.
-		* ld/testsuite/ld-sframe/discard.s: Likewise.
-
-2022-11-15  Weimin Pan  <weimin.pan@oracle.com>
-
-	libsframe: add the SFrame library
-	libsframe is a library that allows you to:
-	- decode a .sframe section
-	- probe and inspect a .sframe section
-	- encode (and eventually write) a .sframe section.
-
-	This library is currently being used by the linker, readelf, objdump.
-	This library will also be used by the SFrame unwinder which is still
-	to be upstream'd.
-
-	The file include/sframe-api.h defines the user-facing APIs for decoding,
-	encoding and probing .sframe sections. A set of error codes together
-	with their error message strings are also defined.
-
-	Endian flipping is performed automatically at read and write time, if
-	cross-endianness is detected.
-
-	ChangeLog:
-
-		* Makefile.def: Add libsframe as new module with its
-		dependencies.
-		* Makefile.in: Regenerated.
-		* binutils/Makefile.am: Add libsframe.
-		* binutils/Makefile.in: Regenerated.
-		* configure: Regenerated
-		* configure.ac: Add libsframe to host_libs.
-		* libsframe/Makefile.am: New file.
-		* libsframe/Makefile.in: New file.
-		* libsframe/aclocal.m4: New file.
-		* libsframe/config.h.in: New file.
-		* libsframe/configure: New file.
-		* libsframe/configure.ac: New file.
-		* libsframe/sframe-error.c: New file.
-		* libsframe/sframe-impl.h: New file.
-		* libsframe/sframe.c: New file.
-
-	include/ChangeLog:
-
-		* sframe-api.h: New file.
-
-	testsuite/ChangeLog:
-
-		* libsframe/testsuite/Makefile.am: New file.
-		* libsframe/testsuite/Makefile.in: Regenerated.
-		* libsframe/testsuite/libsframe.decode/Makefile.am: New
-		  file.
-		* libsframe/testsuite/libsframe.decode/Makefile.in:
-		  Regenerated.
-		* libsframe/testsuite/libsframe.decode/decode.exp: New file.
-		* libsframe/testsuite/libsframe.encode/Makefile.am:
-		  Likewise.
-		* libsframe/testsuite/libsframe.encode/Makefile.in:
-		  Regenerated.
-		* libsframe/testsuite/libsframe.encode/encode.exp: New file.
-		* libsframe/testsuite/libsframe.encode/encode-1.c: Likewise.
-		* libsframe/testsuite/libsframe.decode/be-flipping.c: Likewise.
-		* libsframe/testsuite/libsframe.decode/frecnt-1.c: Likewise.
-		* libsframe/testsuite/libsframe.decode/frecnt-2.c: Likewise.
-		* libsframe/testsuite/libsframe.decode/DATA-BE: New file.
-		* libsframe/testsuite/libsframe.decode/DATA1: Likewise.
-		* libsframe/testsuite/libsframe.decode/DATA2: Likewise.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: testsuite: add new tests for SFrame unwind info
-	Earlier these tests were in the same commit as previous which adds the
-	support in GNU assembler to generate .sframe section from CFI
-	directives.  Splitting this out here for ease of applying and testing.
-
-	ChangeLog:
-
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-1.d: New file.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-1.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/cfi-sframe.exp: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-1.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-1.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-2.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-2.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-3.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-3.s: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-4.d: Likewise.
-		* gas/testsuite/gas/cfi-sframe/common-empty-4.s: Likewise.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: generate .sframe from CFI directives
-	Currently supported for x86_64 and aarch64 only.
-
-	[PS: Currently, the compiler has not been adapted to generate
-	".cfi_sections" with ".sframe" in it.  The newly added command line
-	option of --gsframe provides an easy way to try out .sframe support
-	in the toolchain.]
-
-	gas interprets the CFI directives to generate DWARF-based .eh_frame
-	info.  These internal DWARF structures are now consumed by
-	gen-sframe.[ch] sub-system to, in turn, create the SFrame unwind
-	information.  These internal DWARF structures are read-only for the
-	purpose of SFrame unwind info generation.
-
-	SFrame unwind info generation does not impact .eh_frame unwind info
-	generation.  Both .eh_frame and .sframe can co-exist in an ELF file,
-	if so desired by the user.
-
-	Recall that SFrame unwind information only contains the minimal
-	necessary information to generate backtraces and does not provide
-	information to recover all callee-saved registers.  The reason being
-	that callee-saved registers other than FP are not needed for stack
-	unwinding, and hence are not included in the .sframe section.
-
-	Consequently, gen-sframe.[ch] only needs to interpret a subset of
-	DWARF opcodes in gas.  More details follow.
-
-	[Set 1, Interpreted] The following opcodes are interpreted:
-	- DW_CFA_advance_loc
-	- DW_CFA_def_cfa
-	- DW_CFA_def_cfa_register
-	- DW_CFA_def_cfa_offset
-	- DW_CFA_offset
-	- DW_CFA_remember_state
-	- DW_CFA_restore_state
-	- DW_CFA_restore
-
-	[Set 2, Bypassed] The following opcodes are acknowledged but are not
-	necessary for generating SFrame unwind info:
-	- DW_CFA_undefined
-	- DW_CFA_same_value
-
-	Anything else apart from the two above-mentioned sets is skipped
-	altogether.  This means that any function containing a CFI directive not
-	in Set 1 or Set 2 above, will not have any SFrame unwind information
-	generated for them.  Holes in instructions covered by FREs of a single
-	FDE are not representable in the SFrame unwind format.
-
-	As few examples, following opcodes are not processed for .sframe
-	generation, and are skipped:
-	- .cfi_personality*
-	- .cfi_*lsda
-	- .cfi_escape
-	- .cfi_negate_ra_state
-	- ...
-
-	Not processing .cfi_escape, .cfi_negate_ra_state will cause SFrame
-	unwind information to be absent for SFrame FDEs that contain these CFI
-	directives, hence affecting the asynchronicity.
-
-	x86-64 and aarch64 backends need to have a few new definitions and
-	functions for .sframe generation.  These provide gas with architecture
-	specific information like the SP/FP/RA register numbers and an
-	SFrame-specific ABI marker.
-
-	Lastly, the patch also implements an optimization for size, where
-	specific fragments containing SFrame FRE start address and SFrame FDE
-	function are fixed up.  This is similar to other similar optimizations
-	in gas, where fragments are sized and fixed up when the associated
-	symbols can be resolved.  This optimization is controlled by a #define
-	SFRAME_FRE_TYPE_SELECTION_OPT and should be easy to turn off if needed.
-	The optimization is on by default for both x86_64 and aarch64.
-
-	ChangeLog:
-
-		* gas/Makefile.am: Include gen-sframe.c and sframe-opt.c.
-		* gas/Makefile.in: Regenerated.
-		* gas/as.h (enum _relax_state): Add new state rs_sframe.
-		(sframe_estimate_size_before_relax): New function.
-		(sframe_relax_frag): Likewise.
-		(sframe_convert_frag): Likewise.
-		* gas/config/tc-aarch64.c (aarch64_support_sframe_p): New
-		definition.
-		(aarch64_sframe_ra_tracking_p): Likewise.
-		(aarch64_sframe_cfa_ra_offset): Likewise.
-		(aarch64_sframe_get_abi_arch): Likewise.
-		(md_begin): Set values of sp/fp/ra registers.
-		* gas/config/tc-aarch64.h (aarch64_support_sframe_p): New
-		declaration.
-		(support_sframe_p): Likewise.
-		(SFRAME_CFA_SP_REG): Likewise.
-		(SFRAME_CFA_FP_REG): Likewise.
-		(SFRAME_CFA_RA_REG): Likewise.
-		(aarch64_sframe_ra_tracking_p): Likewise.
-		(sframe_ra_tracking_p): Likewise.
-		(aarch64_sframe_cfa_ra_offset): Likewise.
-		(sframe_cfa_ra_offset): Likewise.
-		(aarch64_sframe_get_abi_arch): Likewise.
-		(sframe_get_abi_arch): Likewise.
-		* gas/config/tc-i386.c (x86_support_sframe_p): New definition.
-		(x86_sframe_ra_tracking_p): Likewise.
-		(x86_sframe_cfa_ra_offset): Likewise.
-		(x86_sframe_get_abi_arch): Likewise.
-		* gas/config/tc-i386.h (x86_support_sframe_p): New declaration.
-		(support_sframe_p): Likewise.
-		(SFRAME_CFA_SP_REG): Likewise.
-		(SFRAME_CFA_FP_REG): Likewise.
-		(x86_sframe_ra_tracking_p): Likewise.
-		(sframe_ra_tracking_p): Likewise.
-		(x86_sframe_cfa_ra_offset): Likewise.
-		(sframe_cfa_ra_offset): Likewise.
-		(x86_sframe_get_abi_arch): Likewise.
-		(sframe_get_abi_arch): Likewise.
-		* gas/config/tc-xtensa.c (unrelaxed_frag_max_size): Add case for
-		rs_sframe.
-		* gas/doc/as.texi: Add .sframe to the documentation for
-		.cfi_sections.
-		* gas/dw2gencfi.c (cfi_finish): Create a .sframe section.
-		* gas/dw2gencfi.h (CFI_EMIT_sframe): New definition.
-		* gas/write.c (cvt_frag_to_fill): Handle rs_sframe.
-		(relax_segment): Likewise.
-		* gas/gen-sframe.c: New file.
-		* gas/gen-sframe.h: New file.
-		* gas/sframe-opt.c: New file.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	gas: add new command line option --gsframe
-	When --gsframe is specified, the assembler will generate a .sframe
-	section from the CFI directives in the assembly.
-
-	ChangeLog:
-
-		* gas/as.c (parse_args): Parse args and set flag_gen_sframe.
-		* gas/as.h: Introduce skeleton for --gsframe.
-		* gas/doc/as.texi: document --gsframe.
-
-2022-11-15  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	sframe.h: Add SFrame format definition
-	The header sframe.h defines the SFrame format.
-
-	The SFrame format is the Simple Frame format.  It can be used to
-	represent the minimal necessary unwind information required for
-	backtracing.  The current version supports AMD64 and AARCH64.
-
-	More details of the SFrame format are included in the documentation
-	of the header file in this patch.
-
-	include/ChangeLog:
-		* sframe.h: New file.
-
-2022-11-15  Alan Modra  <amodra@gmail.com>
-
-	Re: [gas] arm: Add support for new unwinder directive ".pacspval".
-		* testsuite/gas/arm/ehabi-pacbti-m.d: Limit test to ELF.
-
-2022-11-15  Alan Modra  <amodra@gmail.com>
-
-	aarch64-pe can't fill 16 bytes in section .text
-	Without commit b66e671854, this:
-	 .p2align 4
-	 nop
-	 .p2align 3
-	 nop
-	results in an error when coff_frob_section attempts to pad out the
-	section to a 16-byte boundary.  Due to miscalculating the pad pattern
-	repeat count, write.c:write_contents attempts to shove 16 bytes of
-	padding into the remaining 4 bytes of the .text section.
-
-		* config/obj-coff.c (coff_frob_section): Correct fill count.
-		Don't pad after errors.
-
-2022-11-15  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	gdb/configure: regenerate
-	The commit bbaabc767a4293492817a0840819aef2768cce90 introduced an
-	incorrect thunk for the `configure' script.  This patch regenerates
-	configure by calling autoreconf.
-
-2022-11-15  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	gdb: use libtool in GDB_AC_CHECK_BFD
-	The GDB_AC_CHECK_BFD macro defined in gdb/acinclude.m4 uses the
-	AC_LINK_IFELSE autoconf macro in order to link a simple program to
-	check features of libbfd.
-
-	If libbfd's link dependencies change, it was necessary to reflect them
-	either in the definition of the macro, or as a consequence of checking
-	for them with an autoconf macro resulting in an addition to LIBS.
-
-	This patch modifies the definition of the GDB_CHECK_BFD macro in order
-	to use libtool to perform the test link.  This makes it possible to
-	not have to list dependencies of libbfd (which are indirect to GDB) at
-	all.
-
-	After this patch:
-
-	  configure:28553: checking for ELF support in BFD
-	  configure:28573: ./libtool --quiet --mode=link gcc -o conftest \
-	                   -I../../gdb/../include -I../bfd \
-	                   -I../../gdb/../bfd -g -O2 \
-	                   -L../bfd -L../libiberty conftest.c -lbfd -liberty \
-	                   -lncursesw -lm -ldl  >&5
-	  configure:28573: $? = 0
-	  configure:28583: result: yes
-
-	Tests performed:
-
-	- Configure --with-system-zlib and --without-system-zlib.
-	- Check link dependencies of installed GDB with both --enable-shared
-	  and --disable-shared.
-	- Run installed GDB in both cases.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-15  Tom Tromey  <tromey@adacore.com>
-
-	Fix crash in ada_print_type
-	The "varstring" paramter to ada_print_type can be null, but one spot
-	failed to check this.  This could cause a crash in some situations.
-
-	As this is Ada-specific, and we've been using it internally at AdaCore
-	for a while, I am going to push it.
-
-2022-11-15  Tejas Joshi  <TejasSanjay.Joshi@amd.com>
-
-	Add AMD znver4 processor support
-	2022-09-28  Tejas Joshi <TejasSanjay.Joshi@amd.com>
-
-	gas/
-
-	        * config/tc-i386.c (cpu_arch): Add znver4 ARCH and rmpquery SUBARCH.
-	        (md_assemble): Expand comment before swap_operands() with rmpquery.
-	        * doc/c-i386.texi: Add znver4.
-	        * testsuite/gas/i386/arch-14-1.d: New.
-	        * testsuite/gas/i386/arch-14-1.s: New.
-	        * testsuite/gas/i386/arch-14-znver4.d: New.
-	        * testsuite/gas/i386/i386.exp: Add new znver4 test cases.
-	        * testsuite/gas/i386/rmpquery.d: New.
-	        * testsuite/gas/i386/rmpquery.s: New.
-	        * testsuite/gas/i386/x86-64-arch-4-1.d: New.
-	        * testsuite/gas/i386/x86-64-arch-4-1.s: New.
-	        * testsuite/gas/i386/x86-64-arch-4-znver4.d: New.
-
-	opcodes/
-
-	        * i386-dis.c (x86_64_table): Add rmpquery.
-	        * i386-gen.c (cpu_flag_init): Add CPU_ZNVER4_FLAGS and
-	        CPU_RMPQUERY_FLAGS.
-	        (cpu_flags): Add CpuRMPQUERY.
-	        * i386-opc.h (enum): Add CpuRMPQUERY.
-	        (i386_cpu_flags): Add cpurmpquery.
-	        * i386-opc.tbl: Add rmpquery insn.
-	        * i386-init.h: Re-generated.
-	        * i386-tbl.h: Re-generated.
-
-2022-11-15  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: get_set_option_choices: expect \r\n after each item
-	I get some random failures since commit 8d45c3a82a0e ("[gdb/testsuite]
-	Set completions to unlimited in get_set_option_choices"), which can be
-	reproduced with:
-
-	    $ make check-read1 TESTS="gdb.base/parse_number.exp"
-
-	For instance:
-
-	    set architecture A^M
-	    Ambiguous item "A".^M
-	    (gdb) FAIL: gdb.base/parse_number.exp: arch=A: set architecture A
-
-	The problem is the regexp in get_set_option_choices, it is possible that
-	is only matches part of a completion result.  With check-read1, that is
-	always one letter.
-
-	Fix this by expecting the \r\n at the end of the line, so we only match
-	entire results.  Use ^ in match patterns to ensure we don't miss any
-	output.
-
-	Approved-By: Tom de Vries <tdevries@suse.de>
-	Change-Id: Ib1733737feab7dde0f7095866e089081a891054e
-
-2022-11-15  Andre Vieira  <andre.simoesdiasvieira@arm.com>
-
-	aarch64, testsuite: Fixed recently added cssc.d
-	Fixed wrong paste in cssc.d.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/aarch64/cssc.d: Removed duplicate head.
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Normalize gdbserver path name
-	Currently for the target board remote-gdbserver-on-localhost we use the
-	gdbserver file on build, using a file name which includes "/../".
-
-	Fix this by using a normalized file name instead.
-
-	This allows us to be more restrictive about which files REMOTE_TARGET_USERNAME
-	can access:
-	...
-	-    remote_exec build "chmod go-rx $objdir/outputs"
-	+    remote_exec build "chmod go-rx $objdir"
-	...
-
-	Tested on x86_64-linux.
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/jit-elf-so.exp for remote target
-	With test-case gdb.base/jit-elf-so.exp and target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
-	failures.
-
-	Fix these by:
-	- setting jit_libname with the name as returned by gdb_load_shlib
-	- allowing the libraries to be prefixed with the remote target directory.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/jit-reader-exec.exp for remote target
-	With test-case gdb.base/jit-reader-exec.exp and target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
-	failures.
-
-	Fix this by adding the missing gdb_remote_download.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/info-shared.exp for remote target
-	With test-case gdb.base/info-shared.exp and target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
-	failures.
-
-	Fix these by adding the missing gdb_load_shlib.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/solib-vanish.exp for remote target
-	When running test-case gdb.base/solib-vanish.exp with target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
-	failures.
-
-	Fix these by adding the missing gdb_load_shlib.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/infcall-exec.exp for remote target
-	When running test-case gdb.base/infcall-exec.exp with target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into:
-	...
-	(gdb) call (int) execlp ("$outputs/gdb.base/infcall-exec/infcall-exec2", \
-	  "$outputs/gdb.base/infcall-exec/infcall-exec2", (char *)0)^M
-	$1 = -1^M
-	(gdb) FAIL: gdb.base/infcall-exec.exp: call execlp
-	...
-
-	Fix this by using just:
-	...
-	(gdb) call (int) execlp ("infcall-exec2", "infcall-exec2", (char *)0)^M
-	...
-	and using putenv ("PATH=...") to allow infcall-exec to exec infcall-exec2
-	if it's available alongside.
-
-	Also fix the exec name in the test-case, such that we can successfully
-	run the test-case:
-	...
-	$ ./outputs/gdb.base/infcall-exec/infcall-exec
-	PATH SETTING: 'PATH=./outputs/gdb.base/infcall-exec'
-	$
-	...
-
-	Tested on x86_64-linux.
-
-	Co-Authored-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/print-file-var.exp for remote target
-	When running test-case gdb.base/print-file-var.exp with target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
-	failures.
-
-	Fix these by using the name of a shared lib as returned by gdb_load_shlib.
-
-	This required splitting up the gdb_load_shlib functionality, which is now
-	defined as:
-	...
-	proc gdb_load_shlib { file } {
-	    set dest [gdb_download_shlib $file]
-	    gdb_locate_shlib $file
-	    return $dest
-	}
-	...
-	such that we can do gdb_download_shlib before gdb is started.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add REMOTE_TARGET_USERNAME in remote-gdbserver-on-localhost.exp
-	As reported here
-	( https://sourceware.org/pipermail/gdb-patches/2022-October/193147.html ) a
-	number of test-cases fails with a remote target setup, for instance test-case
-	gdb.base/print-file-var.exp.
-
-	So, why don't we see these fails with our remote target boards in
-	gdb/testsuite/boards, say remote-gdbserver-on-localhost.exp?
-
-	The problem is that the target board uses the same machine and user for
-	both (by-definition-local) build and remote target, and when using absolute
-	pathnames to refer to files on build, we can access those files on target,
-	which in a real remote target setup wouldn't be the case: we'd have to
-	download them to target first, and then the filename would also be different.
-
-	For aforementioned test-case, this happens when the name of a shared library is
-	passed as absolute file name to gcc:
-	...
-	gcc ...  -DSHLIB_NAME="$outputs/gdb.base/print-file-var/\
-	  print-file-var-lib2-hidden0-dlopen1-version_id_main0_c.so"
-	...
-
-	Make these problems visible with remote-gdbserver-on-localhost.exp by
-	adding an option to specify a test account (still on the same machine)
-	using REMOTE_TARGET_USERNAME.
-
-	We make sure by restricting file permissions, that the test account cannot see
-	the build files on the $USER account, and that the $USER account cannot see
-	the target files on the test account.
-
-	And so we can reproduce the reported fails:
-	...
-	$ cd build/gdb
-	$ tc="gdb.base/print-file-var.exp"
-	$ tb="--target_board remote-gdbserver-on-localhost"
-	$ tbu="REMOTE_TARGET_USERNAME=remote-target"
-	$ make check RUNTESTFLAGS="$tb $tbu $tc"
-	   ...
-	FAIL: gdb.base/print-file-var.exp: lang=c: hidden=0: dlopen=1: \
-	  version_id_main=0: continue to STOP marker
-	...
-
-	Tested on x86_64-linux.
-
-	Reported-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/info_sources_2.exp for remote target
-	With test-case gdb.base/info_sources_2.exp and target board
-	remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
-	failures.
-
-	Fix these by adding the missing gdb_load_shlib.
-
-	Tested on x86_64-linux.
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/foll-exec.exp for remote target
-	When running test-case gdb.base/foll-exec.exp with target board
-	remote-gdbserver-on-localhost.exp, I run into:
-	...
-	(gdb) PASS: gdb.base/foll-exec.exp: insert first exec catchpoint
-	continue^M
-	Continuing.^M
-	[Inferior 1 (process 4476) exited normally]^M
-	(gdb) FAIL: gdb.base/foll-exec.exp: continue to first exec catchpoint (the program e\
-	xited)
-	...
-
-	The problem is that the foll-exec executable expects the exec-ed executable
-	execd-prog alongside it, but it's missing.
-
-	Fix this by adding the missing gdb_remote_download.
-
-	Likewise in a few other test-cases.
-
-	Tested on x86_64-linux.
-
-2022-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testssuite] Skip aarch64 in skip_gdbserver_test if no xml support
-	On aarch64-linux, with a gdb build without libexpat, so without xml support, I
-	run into:
-	...
-	(gdb) builtin_spawn attach-no-multi-process^M
-	attach 26808^M
-	Attaching to Remote target^M
-	warning: Can not parse XML target description; XML support was disabled at \
-	  compile time^M
-	Reading symbols from attach-no-multi-process...^M
-	Remote 'g' packet reply is too long (expected 788 bytes, got 796 bytes): ... ^M
-	...
-
-	The test-case checks for skip_gdbserver_tests and that one contains a check
-	for xml support:
-	...
-	    # If GDB is lack of XML support, and targets, like arm, have
-	    # multiple target descriptions, GDB doesn't know which target
-	    # description GDBserver uses, and may fail to parse 'g' packet
-	    # after connection.
-	    if { [gdb_skip_xml_test]
-		 && ([istarget "arm*-*-linux*"]
-		      || [istarget "mips*-*-linux*"]
-		      || [istarget "powerpc*-*-linux*"]
-		      || [istarget "s390*-*-linux*"]
-		      || [istarget "x86_64-*-linux*"]
-		      || [istarget "i\[34567\]86-*-linux*"]) } {
-		return 1
-	    }
-	...
-	but it doesn't trigger because aarch64 is missing.
-
-	Fix this by adding istarget "aarch64*-*-linux*".
-
-	Tested on aarch64-linux.
-
-	Approved-By: Luis Machado <luis.machado@arm.com>
-
-2022-11-15  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Enable multi-process debugging for AIX
-	This patch adds multi-process debugging feature in AIX.
-
-	Till now AIX supported debugging only one inferior at a time,
-	now we can be able to debug multi process.  Users can use set
-	follow fork mode in child or parent and set detach on fork on
-	or off to enable/disable simultaneous debugging of parent/child.
-
-2022-11-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-14  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, fix support for printing the function return value for non-trivial values.
-	Currently, a non-trivial return value from a function cannot currently be
-	reliably determined on PowerPC.  This is due to the fact that the PowerPC
-	ABI uses register r3 to store the address of the buffer containing the
-	non-trivial return value when the function is called.  The PowerPC ABI
-	does not guarantee the value in register r3 is not modified in the
-	function.  Thus the value in r3 cannot be reliably used to obtain the
-	return addreses on exit from the function.
-
-	This patch adds a new gdbarch method to allow PowerPC to access the value
-	of r3 on entry to a function. On PowerPC, the new gdbarch method attempts
-	to use the DW_OP_entry_value for the DWARF entries, when exiting the
-	function, to determine the value of r3 on entry to the function.  This
-	requires the use of the -fvar-tracking compiler option to compile the
-	user application thus generating the DW_OP_entry_value in the binary.  The
-	DW_OP_entry_value entries in the binary file allows GDB to resolve the
-	DW_TAG_call_site entries.  This new gdbarch method is used to get the
-	return buffer address, in the case of a function returning a nontrivial
-	data type, on exit from the function.  The GDB function should_stop checks
-	to see if RETURN_BUF is non-zero.  By default, RETURN_BUF will be set to
-	zero by the new gdbarch method call for all architectures except PowerPC.
-	The get_return_value function will be used to obtain the return value on
-	all other architectures as is currently being done if RETURN_BUF is zero.
-	On PowerPC, the new gdbarch method will return a nonzero address in
-	RETURN_BUF if the value can be determined.  The value_at function uses the
-	return buffer address to get the return value.
-
-	This patch fixes five testcase failures in gdb.cp/non-trivial-retval.exp.
-	The correct function return values are now reported.
-
-	Note this patch is dependent on patch: "PowerPC, function
-	ppc64_sysv_abi_return_value add missing return value convention".
-
-	This patch has been tested on Power 10 and x86-64 with no regressions.
-
-2022-11-14  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, function ppc64_sysv_abi_return_value add missing return value convention
-	This patch address five testcase failures in gdb.cp/non-trivial-retval.exp.
-	The following commit resulted in the five testcases failures on PowerPC.
-	The value returned by the function is being reported incorrectly.
-
-	  commit b1718fcdd1d2a5c514f8ee504ba07fb3f42b8608
-	  Author: Andrew Burgess <aburgess@redhat.com>
-	  Date:   Mon Dec 13 16:56:16 2021 +0000
-
-	      gdb: on x86-64 non-trivial C++ objects are returned in memory
-
-	      Fixes PR gdb/28681.  It was observed that after using the `finish`
-	      command an incorrect value was displayed in some cases.  Specifically,
-	      this behaviour was observed on an x86-64 target.
-
-	The function:
-
-	  enum return_value_convention
-	  ppc64_sysv_abi_return_value (struct gdbarch *gdbarch, struct value *function,
-	                               struct type *valtype, struct regcache *regcache,
-	                               gdb_byte *readbuf, const gdb_byte *writebuf)
-
-	should return RETURN_VALUE_STRUCT_CONVENTION if the valtype->code() is
-	TYPE_CODE_STRUCT and if the language_pass_by_reference is not
-	trivially_copyable.
-
-	This patch adds the needed code to return the value
-	RETURN_VALUE_STRUCT_CONVENTION in this case.
-
-	With this patch, the five test cases still fail but with the message "Value
-	returned has type: A. Cannot determine contents".  The PowerPC ABI stores
-	the address of the buffer containing the function return value in register
-	r3 on entry to the function.  However, the PowerPC ABI does not guarentee
-	that r3 will not be modified in the function.  So when the function returns,
-	the return buffer address cannot be reliably obtained from register r3.
-	Thus the message "Cannot determine contents" is appropriate in this case.
-
-2022-11-14  Tom Tromey  <tromey@adacore.com>
-
-	Remove dump_prefix_expression
-	Since the expression rewrite, dump_prefix_expression has been
-	misnamed.  This patch cleans this up by removing the function, turning
-	it into a method on struct expression.
-
-2022-11-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
-
-	aarch64: Add support for Common Short Sequence Compression extension
-	This patch adds support for the CSSC extension and its corresponding
-	instructions: ABS, CNT, CTZ, SMAX, UMAX, SMIN, UMIN.
-
-	gas/ChangeLog:
-
-	        * config/tc-aarch64.c (parse_operands): Handle new operand types.
-	        * doc/c-aarch64.texi: Document new extension.
-	        * testsuite/gas/aarch64/cssc.d: New test.
-	        * testsuite/gas/aarch64/cssc.s: New test.
-
-	include/ChangeLog:
-
-	        * opcode/aarch64.h (AARCH64_FEATURE_CSSC): New feature Macro.
-	        (enum aarch64_opnd): New operand types.
-	        (enum aarch64_insn_class): New instruction class.
-
-	opcodes/ChangeLog:
-
-		* aarch64-asm-2.c: Regenerate.
-		* aarch64-dis-2.c: Regenerate.
-		* aarch64-opc-2.c: Regenerate.
-		* aarch64-opc.c (operand_general_constraint_met_p): Update for new
-		operand types.
-		(aarch64_print_operand): Likewise.
-		* aarch64-opc.h (enum aarch64_field_kind): Declare FLD_CSSC_imm8 field.
-		* aarch64-tbl.h (aarch64_feature_cssc): Define new feature set.
-		(CSSC): Define new feature set Macro.
-		(CSSC_INSN): Define new instruction type.
-		(aarch64_opcode_table): Add new instructions.
-
-2022-11-14  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fold special-operand insn attributes into a single enum
-	Attributes which aren't used together in any single insn template can be
-	converted from individual booleans to a single enum, as was done for a few
-	other attributes before. This is more space efficient. Collect together
-	all attributes which express special operand constraints (and which fit
-	the criteria for folding).
-
-2022-11-14  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-	pru: bfd: Correct default to no execstack
-	Data and instruction memories are strictly separated, so it is not
-	possible to execute instructions from the stack memory on PRU.
-
-	I don't see any difference in testsuite results with or without this
-	change.
-
-	bfd/ChangeLog:
-
-		* elf32-pru.c (elf_backend_default_execstack): Define as 0.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/elf.exp (target_defaults_to_execstack):
-		Return 0 for pru.
-
-2022-11-14  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	[gas] arm: Add support for new unwinder directive ".pacspval".
-	This patch adds the assembler support for the new unwinder
-	directive ".pacspval" and encodes this directives with opcode
-	"0xb5". This opcode indicates the unwinder to use effective
-	vsp as modifier for PAC validation.
-
-	gas/ChangeLog:
-
-	2022-11-07  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	        * doc/c-arm.texi: Document directive.
-	        * config/tc-arm.c (s_arm_unwind_pacspval): Define function.
-	        (md_pseudo_table): Add entry for pacspval directive.
-	        * testsuite/gas/arm/ehabi-pacbti-m.d: New test.
-	        * testsuite/gas/arm/ehabi-pacbti-m.s: Likewise.
-
-2022-11-14  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	[readelf] arm: Support for new pacbti unwind opcode 0xb5.
-	This patch adds readelf support for decoding the exception
-	table opcode "0xb5", which indicates to use effective vsp
-	as modifier for PAC validation as defined by EHABI
-	(https://github.com/ARM-software/abi-aa/releases/download/2022Q3/ehabi32.pdf
-	Section 10.3).
-
-	binutils/ChangeLog:
-
-	2022-11-07  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	        * readelf.c (decode_arm_unwind_bytecode): Add entry to decode opcode 0xb5.
-
-2022-11-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gdb/unittests: PR28413, suppress warnings generated by Gnulib
-	Gnulib generates a warning if the system version of certain functions
-	are used (to redirect the developer to use Gnulib version).  It caused a
-	compiler error when...
-
-	-   Compiled with Clang
-	-   -Werror is specified (by default)
-	-   C++ standard used by Clang is before C++17 (by default as of 15.0.0)
-	    when this unit test is activated.
-
-	This issue is raised as PR28413.
-
-	However, previous proposal to fix this issue (a "fix" to Gnulib):
-	<https://lists.gnu.org/archive/html/bug-gnulib/2021-10/msg00003.html>
-	was rejected because it ruins the intent of Gnulib warnings.
-
-	So, we need a Binutils/GDB-side solution.
-
-	This commit tries to address this issue on the GDB side.  We have
-	"include/diagnostics.h" to disable certain warnings only when necessary.
-
-	This commit suppresses the Gnulib warnings by surrounding entire #include
-	block with DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS to disable Gnulib-
-	generated warnings on all standard C++ header files.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28413
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: Ieeb5a31a6902808d4c7263a2868ae19a35e0ccaa
-
-2022-11-14  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	arm: Add support for Cortex-X1C CPU.
-	This patch adds support for Cortex-X1C CPU in Arm.
-
-	bfd/ChangeLog:
-
-	2022-11-09  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	        * cpu-arm.c (processors): Add Cortex-X1C CPU entry.
-
-	gas/ChangeLog:
-
-	2022-11-09  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	        * NEWS: Update docs.
-	        * config/tc-arm.c (arm_cpus): Add cortex-x1c to -mcpu.
-	        * doc/c-arm.texi: Update docs.
-	        * testsuite/gas/arm/cpu-cortex-x1c.d: New test.
-
-2022-11-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Run gdb.arch/ppc64-symtab-cordic.exp for --enable-targets=all
-	While looking at test-case gdb.arch/ppc64-symtab-cordic.exp I realized that
-	the test-case is too restrictive here:
-	...
-	if {![istarget "powerpc*"] || ![is_lp64_target]} {
-	    verbose "Skipping powerpc64 separate debug file symtab test."
-	    return
-	}
-	...
-	and can also be run on x86_64-linux, if "set arch powerpc:common64" is
-	supported, which is the case if we've build gdb with --enable-targets=all.
-
-	Fix this by instead checking if powerpc:common64 is in the completion list for
-	"set arch".
-
-	This allows us to remove the 'untested "powerpc:common64 is not supported"'.
-
-	While we're at it, clean up the test-case by using clean_restart.
-
-	Tested on x86_64-linux.
-
-2022-11-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle with_set arch
-	I realized that the more irregular output of show arch:
-	...
-	(gdb) show arch^M
-	The target architecture is set to "auto" (currently "i386").^M
-	...
-	would be a problem for something like:
-	...
-	with_set arch powerpc:common64 {}
-	...
-	and indeed:
-	...
-	(gdb) set arch powerpc:common64^M
-	The target architecture is set to "powerpc:common64".^M
-	(gdb) FAIL: gdb.base/foo.exp: set arch powerpc:common64
-	...
-	and:
-	...
-	(gdb) set arch set to "auto" (currently "i386")^M
-	Undefined item: "set".^M
-	...
-
-	Fix this in with_set by handling this type of output.
-
-	Tested on x86_64-linux.
-
-2022-11-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Set completions to unlimited in get_set_option_choices
-	In some test-case I tried to use get_set_option_choices "set architecture" and
-	ran into max-completions:
-	...
-	set architecture simple^M
-	set architecture tomcat^M
-	set architecture xscale^M
-	set architecture  *** List may be truncated, max-completions reached. ***^M
-	(gdb) PASS: gdb.base/foo.exp: complete set architecture
-	...
-
-	There's only one test-case using this currently: gdb.base/parse_number.exp,
-	and it locally sets max-completions to unlimited.
-
-	Fix this by:
-	- factoring out a new proc with_set out of proc with_complaints, and
-	- using it to temporarily set max-completions to unlimited in
-	  get_set_option_choice.
-
-	Tested on x86_64-linux, by running test-cases that excercise
-	get_set_option_choice and with_complaints.
-
-2022-11-14  Alan Modra  <amodra@gmail.com>
-
-	Re: objcopy renaming section with explicit flags
-	For now, xfail the new test.  Some header/aux-header rewriting is
-	required at the very least.
-
-		* testsuite/binutils-all/rename-section-01.d: xfail xcoff.
-
-2022-11-14  Alan Modra  <amodra@gmail.com>
-
-	objcopy renaming section with explicit flags
-	This tidies SEC_RELOC handling in bfd, in the process fixing a bug
-	with objcopy when renaming sections.
-
-	bfd/
-		* reloc.c (_bfd_generic_set_reloc): Set/clear SEC_RELOC depending
-		on reloc count.
-		* elf64-sparc.c (elf64_sparc_set_reloc): Likewise.
-	binutils/
-		* objcopy.c (copy_relocations_in_section): Remove now unnecessary
-		clearing of SEC_RELOC.
-		* testsuite/binutils-all/rename-section-01.d: New test.
-		* testsuite/binutils-all/objcopy.exp: Run it.
-	gas/
-		* write.c (size_seg): Remove unneccesary twiddle of SEC_RELOC.
-		(write_relocs): Likewise.  Always call bfd_set_reloc.
-
-2022-11-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-13  Jon Turney  <jon.turney@dronecode.org.uk>
-
-	Fix Cygwin build after 02d04eac
-	Commit 02d04eac "Use strwinerror in gdb/windows-nat.c" also moves
-	strwinerror() under the USE_WIN32API conditional, which is not defined
-	for Cygwin (and looks like it shouldn't be, as appears to imply
-	non-POSIX and MiNGW and WinSock...)
-
-	Also enable the declaration and definition of strwinerror() when
-	__CYGWIN__ is defined.
-
-2022-11-13  Jon Turney  <jon.turney@dronecode.org.uk>
-
-	Drop apparently unneeded include of winsock2.h
-	Commit d08bae3d ("Implement target async for Windows") unconditionally
-	includes winsock2.h.  We don't want to do that on Cygwin, since
-	including both winsock2.h and sys/select.h causes incompatible
-	redefinition problems.
-
-	Since that include is apparently unneeded, just drop it.
-
-	Fixes: d08bae3d
-
-2022-11-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-12  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-	sim: pru: Fix behaviour when loop count is zero
-	If the counter for LOOP instruction is provided by a register with
-	value zero, then the instruction must cause a PC jump directly to the
-	loop end.  But in that particular case simulator must not initialize
-	its internal loop variables, because loop body will not be executed.
-	Instead, simulator must obtain the loop's end address directly from
-	the LOOP instruction.
-
-2022-11-12  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 paddi -Mraw
-	On a testcase like
-	 pla 8,foo@pcrel
-	disassembled with -Mpower10 results in
-	   0:	00 00 10 06 	pla     r8,0	# 0
-	   4:	00 00 00 39
-				0: R_PPC64_PCREL34	foo
-	but with -Mpower10 -Mraw
-	   0:	00 00 10 06 	.long 0x6100000
-				0: R_PPC64_PCREL34	foo
-	   4:	00 00 00 39 	addi    r8,0,0
-
-	The instruction is unrecognised due to the hack we have in
-	extract_pcrel0 in order to disassemble paddi with RA0=0 and R=1 as
-	pla.  I could have just added "&& !(dialect & PPC_OPCODE_RAW)" to the
-	condition in extract_pcrel0 under which *invalid is set, but went for
-	this larger patch that reorders the extended insn pla to the more
-	usual place before its underlying machine insn.  (la is after addi
-	because we never disassemble to la.)
-
-	gas/
-		* testsuite/gas/ppc/raw.d,
-		* testsuite/gas/ppc/raw.s: Add pla.
-	opcodes/
-		* ppc-opc.c (extract_pcrel1): Rename from extract_pcrel0 and
-		invert *invalid logic.
-		(PCREL1): Rename from PCREL0.
-		(prefix_opcodes): Sort pla before paddi, adjusting R operand
-		for pla, paddi and psubi.
-
-2022-11-12  Indu Bhagat  <indu.bhagat@oracle.com>
-
-	libctf: use libtool for link test in configure
-	The configure check for ELF support in BFD uses the AC_TRY_LINK.  If
-	libbfd's dependencies change, this macro will need to be updated
-	manually with explicit additions to LDFLAGS and LIBS.
-
-	This patch updates the check to use libtool instead.
-
-	ChangeLog:
-
-		* libctf/configure.ac: Use libtool instead.
-		* libctf/configure: Regenerated.
-
-2022-11-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-11  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix start breakpoint expression not working in some languages
-	Commit 0be837be9fb4 ("gdb: make "start" breakpoint inferior-specific")
-	regresses gdb.ada/start.exp:
-
-	    (gdb) start
-	    Error in expression, near `1'.
-	    (gdb) UNTESTED: gdb.ada/start.exp: start failed to land inside the right procedure
-
-	This is because in Ada, the equality operator is =, not ==.
-
-	I checked the other languages supported by GDB, these other languages
-	use = for equality:
-
-	 - Pascal: tests like gdb.pascal/hello.exp are affected too
-	 - Modula-2: I tried building a Modula-2 hello world using gm2, but it
-	   seems like the generated DWARF doesn't specify the Modula-2 language
-	   in the CUs, it's C++ and C, so the selected language isn't
-	   "modula-2".  But if I manually do "set language modula-2" on a dummy
-	   program and then "start", I get the same error.
-
-	Other languages all use ==.
-
-	So, a short term fix would be to use = or == in the expression, based on
-	the current language.  If this was meant to be permanent, I would
-	suggest adding something like an "equality_operator" method to
-	language_defn, that returns the right equality operator for the
-	language.  But the goal is to replace all this with proper
-	inferior-specific breakpoints, so I hope all this is temporary.
-
-	Approved-By: Tom de Vries <tdevries@suse.de>
-	Change-Id: Id4d38e14a80e6bbbb1ad2b2277f974dd55192969
-
-2022-11-11  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: igen: cleanup archaic pointer-to-long printf casts
-	Use proper %p to printf a pointer instead of casting it to long and
-	using 0x%lx.  It's cleaner, more correct, and doesn't break on LLP64.
-
-2022-11-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Don't timeout on prompt in gdb_start_cmd
-	We're currently running into a timeout at:
-	...
-	(gdb) start ^M
-	Error in expression, near `1'.^M
-	(gdb) UNTESTED: gdb.ada/start.exp: start failed to land inside the right \
-	  procedure
-	...
-	due to the fact that gdb_start_cmd doesn't handle a prompt as reaction to
-	the start command.
-
-	Fix this by handling the prompt.  Reduces execution time of the test-case from
-	1m1s to 1s.
-
-	Tested on x86_64-linux.
-
-2022-11-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Better error checking in has_hw_wp_support
-	With gdb 12.1, on powerpc64le I ran into ERRORs related to has_hw_wp_support
-	usage, which was already fixed on trunk by commits:
-	- 13f72372413 ("gdb/testsuite: fix gdb.base/break-idempotent.exp on ppc"), and
-	- 01a32ee0b8c ("PowerPC, fix gdb.base/watchpoint.exp on Power 9")
-
-	While looking into these ERRORs and the commits that fix them, it occurred to
-	me that while the commits fix the root cause, the failure mode is not great.
-
-	The test-cases expect a running instance of gdb upon return, which is not
-	there, so there's an long stream of ERRORs generated as a result.
-
-	Fix this at the start of has_hw_wp_support, by (instead of accomodating a
-	running gdb instance by calling gdb_exit), checking whether it's called
-	without a running gdb instance, and erroring out otherwise.  This way, there's
-	just one error.
-
-	I also noticed that in case we do an early exit due to !runto_main, we don't
-	clean up, so copy the missing cleanups (gdb_exit and $obj file deletion) from
-	the regular exit.
-
-	Tested on x86_64-linux, using has_hw_wp_support for x86_64 in
-	skip_hw_watchpoint_tests.
-
-2022-11-11  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/py-inferior: Keep inferior threads in a map
-	The python code maintains a list of threads for each inferior.  This
-	list is implemented as a linked list.  When the number of threads grows
-	high, this implementation can begin to be a performance bottleneck as
-	finding a particular thread_object in the list has a complexity of O(N).
-
-	We see this in ROCgdb[1], a downstream port of GDB for AMDGUP.  On
-	AMDGPU devices, the number of threads can get significantly higher than
-	on usual GDB workloads.
-
-	In some situations, we can reach the end of the inferior process with
-	GDB still having a substantial list of known threads.  While running
-	target_mourn_inferior, we end up in inferior::clear_thread_list which
-	iterates over all remaining threads and marks each thread exited.  This
-	fires the gdb::observers::thread_exit observer and eventually
-	py-inferior.c:set_thread_exited gets called.  This function searches in
-	the linked list with poor performances.
-
-	This patch proposes to change the linked list that keeps the per
-	inferior_object list of thread_objects into a std::unordered_map.  This
-	allows to have the search operation complexity be O(1) on average
-	instead of O(N).
-
-	With this patch, we can complete clear_thread_list in about 2.5 seconds
-	compared to 10 minutes without it.
-
-	Except for the performance change, no user visible change is expected.
-
-	Regression tested on Ubuntu-22.04 x86_64.
-
-	[1] https://github.com/ROCm-Developer-Tools/ROCgdb
-
-2022-11-11  Luis Machado  <luis.machado@arm.com>
-
-	Make sure a copy_insn_closure is available when we have a match in copy_insn_closure_by_addr
-	PR gdb/29272
-
-	Investigating PR29272, it was mentioned a particular test used to work on
-	GDB 10, but it started failing with GDB 11 onwards. I tracked it down to
-	some displaced stepping improvements on commit
-	187b041e2514827b9d86190ed2471c4c7a352874.
-
-	In particular, one of the corner cases using copy_insn_closure_by_addr got
-	silently broken. It is hard to spot because it doesn't have any good tests
-	for it, and the situation is quite specific to the Arm target.
-
-	Essentially, the change from the displaced stepping improvements made it so
-	we could still invoke copy_insn_closure_by_addr correctly to return the
-	pointer to a copy_insn_closure, but it always returned nullptr due to
-	the order of the statements in displaced_step_buffer::prepare.
-
-	The way it is now, we first write the address of the displaced step buffer
-	to PC and then save the copy_insn_closure pointer.
-
-	The problem is that writing to PC for the Arm target requires figuring
-	out if the new PC is thumb mode or not.
-
-	With no copy_insn_closure data, the logic to determine the thumb mode
-	during displaced stepping doesn't work, and gives random results that
-	are difficult to track (SIGILL, SIGSEGV etc).
-
-	Fix this by reordering the PC write in displaced_step_buffer::prepare
-	and, for safety, add an assertion to
-	displaced_step_buffer::copy_insn_closure_by_addr so GDB stops right
-	when it sees this invalid situation. If this gets broken again in the
-	future, it will be easier to spot.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29272
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-11  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, btrace: Fix rn-dl-bind.exp for new icx remark.
-	When running the test with the latest Intel compiler:
-
-	Running gdb/gdb/testsuite/gdb.btrace/rn-dl-bind.exp ...
-	gdb compile failed, icpx: warning: treating 'c' input as 'c++' when
-	in C++ mode, this behavior is deprecated [-Wdeprecated]
-
-	The test doesn't seem to test something specifically for C++,
-	so I removed the C++ compilation option. Alternatively we could rename
-	rn-dl-bind.exp.c to rn-dl-bind.exp.cc.
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: disable gdb.cp/call-method-register.exp when not using gcc
-	The test gdb.cp/call-method-register.exp assumes that the class will be
-	placed on a register. However, this keyword has been deprecated since
-	C++11, and Clang, for instance, does not feel the need to follow it.
-	Since this test is not usable without this working, this commit marks
-	this test as untested.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: remove XFAIL on gdb.cp/temargs.exp
-	gdb.cp/temargs.exp last 2 tests always setup an XFAILs, despite checking
-	for old gcc versions.  However, Clang does not fail in this test,
-	turning into XPASSes and slighty annoying when comparing between
-	compilers.  To change this, make the xfails only happen if we using gcc.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: disable some tests of gdb.cp/typeid.exp when using Clang
-	Since Clang chooses to not add any debug information for base types,
-	expecting it to be included with libraries' informations, gdb.cp/typeid.exp
-	will always fail if the program hasn't started.  This commit fixes that by
-	making it so when using Clang, the base type variables aren't tested.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: skip gdb.cp/anon-struct.exp when using Clang
-	When Clang compiles anonymous structures, it does not add linkage names in
-	their dwarf representations. This is compounded by Clang not adding linkage
-	names to subprograms of those anonymous structs (for instance, the
-	constructor). With these 2 things together, GDB is unable to refer to
-	any of them, so there is no way to pass any of the tests of
-	gdb.cp/anon-struct.exp
-
-	Since this isn't a bug on Clang or GDB according to the DWARF
-	specifications as DW_AT_name is optional for all DIEs, the test was marked
-	as untested.
-
-	Since I was already touching the file, I also added a comment at the top
-	of the file explaining what it is testing for.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: allow for Clang style destructors on gdb.cp/m-static.exp
-	when running gdb.cp/m-static.exp using Clang, we get the following
-	failures:
-
-	    print test1.~gnu_obj_1^M
-	    $6 = {void (gnu_obj_1 * const)} 0x555555555470 <gnu_obj_1::~gnu_obj_1()>^M
-	    (gdb) FAIL: gdb.cp/m-static.exp: simple object instance, print destructor
-	    ptype test1.~gnu_obj_1^M
-	    type = void (gnu_obj_1 * const)^M
-	    (gdb) FAIL: gdb.cp/m-static.exp: simple object instance, ptype destructor
-	    print test1.'~gnu_obj_1'^M
-	    $7 = {void (gnu_obj_1 * const)} 0x555555555470 <gnu_obj_1::~gnu_obj_1()>^M
-	    (gdb) FAIL: gdb.cp/m-static.exp: simple object instance, print quoted destructor
-
-	This is because the test is expecting an extra integer parameter on the
-	destructor. Looking at the debuginfo, it seems that there is nothing
-	actually wrong with this output, so these tests were changed to test
-	multiple possible regexps.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: add XFAIL to gdb.cp/derivation.exp when using Clang
-	When running gdb.cp/derivation.exp using Clang, we get an unexpected
-	failure when printing the type of a class with an internal typedef. This
-	happens because Clang doesn't add accessibility information for typedefs
-	inside classes (see https://github.com/llvm/llvm-project/issues/57608
-	for more info). To help with Clang testing, an XFAIL was added to this
-	test.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: account for clang's nested destructor calls on gdb.cp/mb-ctor.exp
-	When compiling virtual classes's destructors, two versions are compiled,
-	one with a single parameter (this) and the other with 2 parameters (this
-	and vtt).
-
-	GCC's compilation makes it so either the version with 1
-	parameter or the one with 2 parameters is called, depending on whether
-	the destructor is being called by the class itself or by an inherited
-	class. On the test gdb.cp/mb-ctor.exp, this means that the breakpoint
-	set at the destructor will be hit 4 times.
-
-	Clang, on the other hand, makes the single-parameter version call the 2
-	parameter version, probably in an attempt to reduce the size of the
-	resulting executable. This means that the gdb.cp/mb-ctor.exp will hit 6
-	breakpoints before finishing, and is the reason why this test was
-	failing. To make this test stop failing, a compiler check is added and
-	another "continue" instruction is issued to account for this difference.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: enable running gdb.cp/classes.exp with clang
-	When attempting to run the gdb.cp/classes.exp test using Clang++, the
-	test fails to prepare with -Wnon-c-typedef-for-linkage like the
-	previously fixed gdb.cp/class2.exp. Upon fixing this, the test shows 5
-	unexpected failures. One such failures is:
-
-	ptype/r class class_with_public_typedef
-	type = class class_with_public_typedef {
-	  private:
-	    int a;
-	  public:
-	    class_with_public_typedef::INT b;
-
-	  private:
-	    typedef int INT;
-	}
-	(gdb) FAIL: gdb.cp/classes.exp: ptype class class_with_public_typedef // wrong access specifier for typedef: private
-
-	While g++ provided the following output:
-
-	ptype/r class class_with_public_typedef
-	type = class class_with_public_typedef {
-	  private:
-	    int a;
-	  public:
-	    class_with_public_typedef::INT b;
-
-	    typedef int INT;
-	}
-	(gdb) PASS: gdb.cp/classes.exp: ptype class class_with_public_typedef
-
-	This error happens because Clang does not add DW_AT_accessibility to
-	typedefs inside classes, and without this information GDB defaults to
-	assuming the typedef is private.  Since there is nothing that GDB can do
-	about this, these tests have been set as xfails, and Clang bug 57608 has
-	been filed.
-
-	Bug: https://github.com/llvm/llvm-project/issues/57608
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: ignore Non-C-typedefs for gdb.cp/class2.exp
-	When attempting to test gdb.cp/class2.exp using Clang, it fails to
-	prepare with the following error:
-
-	Executing on host: clang++    -fdiagnostics-color=never -Wno-unknown-warning-option  -c -g -o /home/blarsen/Documents/fsf_build/gdb/testsuite/outputs/gdb.cp/class2/class20.o /home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc    (timeout = 300)
-	builtin_spawn -ignore SIGHUP clang++ -fdiagnostics-color=never -Wno-unknown-warning-option -c -g -o /home/blarsen/Documents/fsf_build/gdb/testsuite/outputs/gdb.cp/class2/class20.o /home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc
-	/home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:53:14: warning: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add a tag name here [-Wnon-c-typedef-for-linkage]
-	typedef class {
-	             ^
-	              Dbase
-	/home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:54:2: note: type is not C-compatible due to this member declaration
-	 public:
-	 ^~~~~~~
-	/home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:58:3: note: type is given name 'Dbase' for linkage purposes by this typedef declaration
-	} Dbase;
-	  ^
-	1 warning generated.
-	gdb compile failed, /home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:53:14: warning: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add a tag name here [-Wnon-c-typedef-for-linkage]
-	typedef class {
-	             ^
-	              Dbase
-	/home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:54:2: note: type is not C-compatible due to this member declaration
-	 public:
-	 ^~~~~~~
-	/home/blarsen/Documents/fsf_build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:58:3: note: type is given name 'Dbase' for linkage purposes by this typedef declaration
-	} Dbase;
-	  ^
-	1 warning generated.
-	UNTESTED: gdb.cp/class2.exp: failed to prepare
-
-	This can be silenced by adding -Wno-non-c-typedef-for-linkage for Clang
-	11 or later.  The test shows no failures with this change.
-
-	Approved-by: Tom Tromey <tom@tromey.com>
-
-2022-11-11  Jan Beulich  <jbeulich@suse.com>
-
-	gas: accept custom ".linefile <n> ."
-	While .linefile is generally intended for gas internal use only, its use
-	in a source file would better not result in an internal error. Give use
-	of it outside of any macro(-like) construct the meaning of restoring the
-	original (physical) input file name.
-
-	x86: drop stray IsString from PadLock insns
-	The need for IsString on the PadLock insns went away with the
-	introduction of RepPrefixOk. Drop these leftovers.
-
-	x86: drop duplicate sse4a entry from cpu_arch[]
-	Of the two instances the first is correct in using ANY_SSE4A as 3rd
-	argument to SUBARCH(), so drop the wrong/redundant/dead 2nd one.
-
-2022-11-11  Alan Modra  <amodra@gmail.com>
-
-	PR28834, PR26946 sanity checking section size
-	This patch provides a new function to sanity check section sizes.
-	It's mostly extracted from what we had in bfd_get_full_section_contents
-	but also handles compressed debug sections.
-	Improvements are:
-	- section file offset is taken into account,
-	- added checks that a compressed section can be read from file.
-
-	The function is then used when handling multiple .debug_* sections
-	that need to be read into a single buffer, to sanity check sizes
-	before allocating the buffer.
-
-		PR 26946, PR 28834
-		* Makefile.am (LIBBFD_H_FILES): Add section.c.
-		* compress.c (bfd_get_full_section_contents): Move section size
-		sanity checks..
-		* section.c (_bfd_section_size_insane): ..to here.  New function.
-		* dwarf2.c (read_section): Use _bfd_section_size_insane.
-		(_bfd_dwarf2_slurp_debug_info): Likewise.
-		* Makefile.in: Regenerate.
-		* libbfd.h: Regenerate.
-
-2022-11-11  Alan Modra  <amodra@gmail.com>
-
-	Sanity check SHT_MIPS_OPTIONS size
-		* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Use
-		bfd_malloc_and_get_section to read contents of .MIPS.options.
-
-	Re: gold: add --compress-debug-sections=zstd [PR 29641]
-	Fix the following:
-	compressed_output.cc:86:8: error: assignment of read-only variable ‘size’
-	   86 |   size = ZSTD_compress(*compressed_data + header_size, size, uncompressed_data,
-
-2022-11-11  Fangrui Song  <maskray@google.com>
-
-	gold: add --compress-debug-sections=zstd [PR 29641]
-	This option compresses output debug sections with zstd and sets ch_type
-	to ELFCOMPRESS_ZSTD.  Latest gdb and lldb support ELFCOMPRESS_ZSTD.
-
-	There will be an error if zstd is not enabled at configure time.
-
-	    error: --compress-debug-sections=zstd: gold is not built with zstd support
-
-2022-11-11  Fangrui Song  <maskray@google.com>
-
-	gold, dwp: support zstd compressed input debug sections [PR 29641]
-	This feature is enabled if config/zstd.m4 uses zstd.
-
-2022-11-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix typo in configure.ac
-	gprofng/ChangeLog
-	2022-11-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* configure.ac: Fix typo in redirect operator.
-		* configure: Rebuild.
-
-2022-11-11  Vladislav Khmelevsky  <och95@yandex.ru>
-
-	Fix adrp distance check
-	gold/
-		* aarch64.cc (aarch64_valid_for_adrp_p): Shift offset
-		as a signed number.
-
-2022-11-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: v850: rename v850.dc to align with other ports
-	Other arches use the .dc extension for the instruction decode table.
-
-	sim: igen: fix hang when decoding boolean rule constants
-	The parser for boolean rules fails to skip over the , separator in
-	the options which makes it hang forever.  No dc files in the tree
-	use boolean rules atm which is why no one noticed.
-
-	sim: igen: mark error func as noreturn since it exits
-
-	sim: igen: mark output funcs with printf attribute
-	... and fix the legitimate bug that it catches.
-
-	sim: igen: constify various func arguments
-
-	sim: ppc: rename ppc-instructions to powerpc.igen
-	To make it clear this is an input to the igen tool, rename it with an
-	igen extension.  This matches the other files in the ppc dir (altivec
-	& e500 igen files), and the other igen ports (mips, mn10300, v850).
-
-2022-11-10  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Check invalid (%dx) usage
-	(%dx) isn't a valid memory address in any modes.  It is used as a special
-	memory operand for input/output port address in AT&T syntax and should
-	only be used with input/output instructions.  Update i386_att_operand to
-	set i.input_output_operand to true for (%dx) and issue an error if (%dx)
-	is used with non-input/output instructions.
-
-		PR gas/29751
-		* config/tc-i386.c (_i386_insn): Add input_output_operand.
-		(md_assemble): Issue an error if input/output memory operand is
-		used with non-input/output instructions.
-		(i386_att_operand): Set i.input_output_operand to true for
-		(%dx).
-		* testsuite/gas/i386/inval.l: Updated.
-		* testsuite/gas/i386/x86-64-inval.l: Likewise.
-		* testsuite/gas/i386/inval.s: Add tests for invalid (%dx) usage.
-		* testsuite/gas/i386/x86-64-inval.s: Likewise.
-
-2022-11-10  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make "start" breakpoint inferior-specific
-	I saw this failure on a CI:
-
-	    (gdb) add-inferior
-	    [New inferior 2]
-	    Added inferior 2
-	    (gdb) PASS: gdb.threads/vfork-multi-inferior.exp: method=non-stop: add-inferior
-	    inferior 2
-	    [Switching to inferior 2 [<null>] (<noexec>)]
-	    (gdb) PASS: gdb.threads/vfork-multi-inferior.exp: method=non-stop: inferior 2
-	    kill
-	    The program is not being run.
-	    (gdb) file /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/tmp/tmp.GYATAXR8Ku/gdb/testsuite/outputs/gdb.threads/vfork-multi-inferior/vfork-multi-inferior-sleep
-	    Reading symbols from /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/tmp/tmp.GYATAXR8Ku/gdb/testsuite/outputs/gdb.threads/vfork-multi-inferior/vfork-multi-inferior-sleep...
-	    (gdb) run &
-	    Starting program: /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/tmp/tmp.GYATAXR8Ku/gdb/testsuite/outputs/gdb.threads/vfork-multi-inferior/vfork-multi-inferior-sleep
-	    (gdb) PASS: gdb.threads/vfork-multi-inferior.exp: method=non-stop: run inferior 2
-	    inferior 1
-	    [Switching to inferior 1 [<null>] (<noexec>)]
-	    (gdb) PASS: gdb.threads/vfork-multi-inferior.exp: method=non-stop: inferior 1
-	    kill
-	    The program is not being run.
-	    (gdb) file /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/tmp/tmp.GYATAXR8Ku/gdb/testsuite/outputs/gdb.threads/vfork-multi-inferior/vfork-multi-inferior
-	    Reading symbols from /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/tmp/tmp.GYATAXR8Ku/gdb/testsuite/outputs/gdb.threads/vfork-multi-inferior/vfork-multi-inferior...
-	    (gdb) break should_break_here
-	    Breakpoint 1 at 0x11b1: file /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/src/binutils-gdb/gdb/testsuite/gdb.threads/vfork-multi-inferior.c, line 25.
-	    (gdb) PASS: gdb.threads/vfork-multi-inferior.exp: method=non-stop: break should_break_here
-	    [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
-	    start
-	    Temporary breakpoint 2 at 0x11c0: -qualified main. (2 locations)
-	    Starting program: /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/tmp/tmp.GYATAXR8Ku/gdb/testsuite/outputs/gdb.threads/vfork-multi-inferior/vfork-multi-inferior
-	    [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
-
-	    Thread 2.1 "vfork-multi-inf" hit Temporary breakpoint 2, main () at /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/src/binutils-gdb/gdb/testsuite/gdb.threads/vfork-multi-inferior-sleep.c:23
-	    23	  sleep (30);
-	    (gdb) FAIL: gdb.threads/vfork-multi-inferior.exp: method=non-stop: start inferior 1
-
-	What happens is:
-
-	 1. We start inferior 2 with "run&", it runs very slowly, takes time to
-	    get to main
-	 2. We switch to inferior 1, and run "start"
-	 3. The temporary breakpoint inserted by "start" applies to all inferiors
-	 4. Inferior 2 hits that breakpoint and GDB reports that hit
-
-	To avoid this, breakpoints inserted by "start" should be
-	inferior-specific.  However, we don't have a nice way to make
-	inferior-specific breakpoints yet.  It's possible to make
-	pspace-specific breakpoints (for example how the internal_breakpoint
-	constructor does) by creating a symtab_and_line manually.  However,
-	inferiors can share program spaces (usually on particular embedded
-	targets), so we could have a situation where two inferiors run the same
-	code in the same program space.  In that case, it would just not be
-	possible to insert a breakpoint in one inferior but not the other.
-
-	A simple solution that should work all the time is to add a condition to
-	the breakpoint inserted by "start", to check the inferior reporting the
-	hit is the expected one.  This is what this patch implements.
-
-	Add a test that does:
-
-	 - start in background inferior 1 that sleeps before reaching its main
-	   function (using a sleep in a global C++ object's constructor)
-	 - start inferior 2 with the "start" command, which also sleeps before
-	   reaching its main function
-	 - validate that we hit the breakpoint in inferior 2
-
-	Without the fix, we hit the breakpoint in inferior 1 pretty much all the
-	time.  There could be some unfortunate scheduling causing the test not
-	to catch the bug, for instance if the scheduler decides not to schedule
-	inferior 1 for a long time, but it would be really rare.  If the bug is
-	re-introduced, the test will catch it much more often than not, so it
-	will be noticed.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Approved-By: Pedro Alves <pedro@palves.net>
-	Change-Id: Ib0148498a476bfa634ed62353c95f163623c686a
-
-2022-11-10  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb: Fix regressions caused by 041de3d73aa121f2ff0c077213598963bfb34b79
-	Commit 041de3d73aa changed the output format of all error messages when
-	GDB couldn't determine a compatible overload for a given function, but
-	it was only supposed to change if the failure happened due to incomplete
-	types. This commit removes the stray . that was added
-
-2022-11-10  Aaron Merey  <amerey@redhat.com>
-
-	gdb/debuginfod: Improve progress updates
-	If the download size is known, a progress bar is displayed along with
-	the percentage of completion and the total download size.
-
-	  Downloading separate debug info for /lib/libxyz.so
-	  [############                                      ]  25% (10.01 M)
-
-	If the download size is not known, a progress indicator is displayed
-	with a ticker ("###") that moves across the screen at a rate of 1 tick
-	every 0.5 seconds.
-
-	  Downloading separate debug info for /lib/libxyz.so
-	  [         ###                                                      ]
-
-	If the output stream is not a tty, batch mode is enabled, the screen is
-	too narrow or width has been set to 'unlimited', then only a static
-	description of the download is printed. No bar or ticker is displayed.
-
-	  Downloading separate debug info for /lib/libxyz.so...
-
-	In any case, if the size of the download is known at the time the
-	description is printed then it will be included in the description.
-
-	  Downloading 10.01 MB separate debug info for /lib/libxyz.so...
-
-2022-11-10  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add special handling for frame level 0 in frame_info_ptr
-	I noticed this problem while preparing the initial submission for the
-	ROCm GDB port.  One particularity of this patch set is that it does not
-	support unwinding frames, that requires support of some DWARF extensions
-	that will come later.  It was still possible to run to a breakpoint and
-	print frame #0, though.
-
-	When rebasing on top of the frame_info_ptr work, GDB started tripping on
-	a prepare_reinflate call, making it not possible anymore to event print
-	the frame when stopping on a breakpoint.  One thing to know about frame
-	0 is that its id is lazily computed when something requests it through
-	get_frame_id.  See:
-
-	  https://gitlab.com/gnutools/binutils-gdb/-/blob/23912acd402f5af9caf91b257e5209ec4c58a09c/gdb/frame.c#L2070-2080
-
-	So, up to that prepare_reinflate call, frame 0's id was not computed,
-	and prepare_reinflate, calling get_frame_id, forces it to be computed.
-	Computing the frame id generally requires unwinding the previous frame,
-	which with my ROCm GDB patch fails.  An exception is thrown and the
-	printing of the frame is simply abandonned.
-
-	Regardless of this ROCm GDB problem (which is admittedly temporary, it
-	will be possible to unwind with subsequent patches), we want to avoid
-	prepare_reinflate to force the computing of the frame id, for the same
-	reasons we lazily compute it in the first place.
-
-	In addition, frame 0's id is subject to change across a frame cache
-	reset.  This is why save_selected_frame and restore_selected_frame have
-	special handling for frame 0:
-
-	  https://gitlab.com/gnutools/binutils-gdb/-/blob/23912acd402f5af9caf91b257e5209ec4c58a09c/gdb/frame.c#L1841-1863
-
-	For this last reason, we also need to handle frame 0 specially in
-	prepare_reinflate / reinflate.  Because the frame id of frame 0 can
-	change across a frame cache reset, we must not rely on the frame id from
-	that frame to reinflate it.  We should instead just re-fetch the current
-	frame at that point.
-
-	This patch adds a frame_info_ptr::m_cached_level field, set in
-	frame_info_ptr::prepare_reinflate, so we can tell if a frame is frame 0.
-	There are cases where a frame_info_ptr object wraps a sentinel frame,
-	for which frame_relative_level returns -1, so I have chosen the value -2
-	to represent "invalid frame level", for when the frame_info_ptr object
-	is empty.
-
-	In frame_info_ptr::prepare_reinflate, only cache the frame id if the
-	frame level is not 0.  It's fine to cache the frame id for the sentinel
-	frame, it will be properly handled by frame_find_by_id later.
-
-	In frame_info_ptr::reinflate, if the frame level is 0, call
-	get_current_frame to get the target's current frame.  Otherwise, use
-	frame_find_by_id just as before.
-
-	This patch should not have user-visible changes with upstream GDB.  But
-	it will avoid forcing the computation of frame 0's when calling
-	prepare_reinflate.  And, well, it fixes the upcoming ROCm GDB patch
-	series.
-
-	Change-Id: I176ed7ee9317ddbb190acee8366e087e08e4d266
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2022-11-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add missing prepare_reinflate call in print_frame_info
-	print_frame_info calls frame_info_ptr::reinflate, but not
-	frame_info_ptr::prepare_reinflate, add the call to prepare_reinflate.
-	It works right now, because all callers of print_frame_info that could
-	possibly lead to the pretty printers being called, and the frame_info
-	objects being invalidated, do call prepare_reinflate themselves.  And
-	since the cached frame id is copied when passing a frame_info_ptr by
-	value, print_frame_info does have a cached frame id on entry.  So
-	technically, this change isn't needed.  But I don't think it's good for
-	a function to rely on its callers to have called prepare_reinflate, if
-	it intends to call reinflate.
-
-	Change-Id: Ie332b2d5479aef46f83fdc1120c7c83f4e84d1b0
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2022-11-10  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: use frame_id_p instead of comparing to null_frame_id in frame_info_ptr::reinflate
-	The assertion
-
-	    gdb_assert (m_cached_id != null_frame_id);
-
-	is always true, as comparing equal to null_frame_id is always false
-	(it's the first case in frame_id::operator==, not sure why it's not this
-	way, but that's what it is).
-
-	Replace the comparison with a call to frame_id_p.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Change-Id: I93986e6a85ac56353690792552e5b3b4cedec7fb
-
-2022-11-10  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove manual frame_info reinflation code in backtrace_command_1
-	With the following patch applied (gdb: use frame_id_p instead of
-	comparing to null_frame_id in frame_info_ptr::reinflate), I would get:
-
-	    $ ./gdb -q -nx --data-directory=data-directory testsuite/outputs/gdb.base/bt-selected-frame/bt-selected-frame -ex "b breakpt" -ex r -ex "bt full"
-	    Reading symbols from testsuite/outputs/gdb.base/bt-selected-frame/bt-selected-frame...
-	    Breakpoint 1 at 0x1131: file /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/bt-selected-frame.c, line 22.
-	    Starting program: /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.base/bt-selected-frame/bt-selected-frame
-	    [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
-
-	    Breakpoint 1, breakpt () at /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/bt-selected-frame.c:22
-	    22      }
-	    #0  breakpt () at /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/bt-selected-frame.c:22
-	    No locals.
-	    /home/smarchi/src/binutils-gdb/gdb/frame-info.c:42: internal-error: reinflate: Assertion `frame_id_p (m_cached_id)' failed.
-
-	This is because the code in backtrace_command_1 to manually reinflate
-	`fi` steps overs frame_info_ptr's toes.
-
-	When calling
-
-	    fi.prepare_reinflate ();
-
-	`fi` gets properly filled with the cached frame id.  But when this
-	happens:
-
-	    fi = frame_find_by_id (frame_id);
-
-	`fi` gets replaced by a brand new frame_info_ptr that doesn't have a
-	cached frame id.  Then this is called without a cached frame id:
-
-	    fi.reinflate ();
-
-	That doesn't cause any problem currently, since
-
-	 - the gdb_assert in the reinflate method doesn't actually do anything
-	   (the following patch fixes that)
-	 - `fi.m_ptr` will always be non-nullptr, since we just got it from
-	   frame_find_by_id, so reinflate will not do anything, it won't try to
-	   use m_cached_id
-
-	Fix that by removing the code to manually re-fetch the frame.  That
-	should be taken care of by frame_info_ptr::reinflate.
-
-	Note that the old code checked if we successfully re-inflated the frame
-	or not, and if not it did emit a warning.  The equivalent in
-	frame_info_ptr::reinflate asserts that the frame has been successfully
-	re-inflated.  It's not clear if / when this can happen, but if it can
-	happen, we'll need to find a solution to this problem globally
-	(everywhere a frame_info_ptr can be re-inflated), not just here.  So I
-	propose to leave it like this, until it does become a problem.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Change-Id: I07b783d94e2853e0a2d058fe7deaf04eddf24835
-
-2022-11-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: move frame_info_ptr method implementations to frame-info.c
-	I don't see any particular reason why the implementations of the
-	frame_info_ptr object are in the header file.  It only seems to add some
-	complexity.  Since we can't include frame.h in frame-info.h, we have to
-	add declarations of functions defined in frame.c, in frame-info.h.  By
-	moving the implementations to a new frame-info.c, we can avoid that.
-
-	Change-Id: I435c828f81b8a3392c43ef018af31effddf6be9c
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Reviewed-By: Tom Tromey <tom@tromey.com>
-
-2022-11-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add prepare_reinflate/reinflate around print_frame_args in info_frame_command_core
-	I noticed this crash:
-
-	    $ ./gdb --data-directory=data-directory -nx -q \
-	          testsuite/outputs/gdb.python/pretty-print-call-by-hand/pretty-print-call-by-hand \
-		  -x testsuite/outputs/gdb.python/pretty-print-call-by-hand/pretty-print-call-by-hand.py \
-		  -ex "b g" -ex r
-	    (gdb) info frame
-	    Stack level 0, frame at 0x7fffffffdd80:
-	     rip = 0x555555555160 in g
-	        (/home/simark/src/binutils-gdb/gdb/testsuite/gdb.python/pretty-print-call-by-hand.c:41); saved rip = 0x5555555551a3
-	     called by frame at 0x7fffffffdda0
-	     source language c.
-	     Arglist at 0x7fffffffdd70, args: mt=mytype is 0x555555556004 "hello world",
-	        depth=10
-
-	    Fatal signal: Segmentation fault
-
-	This is another case of frame_info being invalidated under a function's
-	feet.  The stack trace when the frame_info get invalidated looks like:
-
-	    ... many frames to pretty print the arg, that eventually invalidate the frame_infos ...
-	    #35 0x00005568d0a8ab24 in print_frame_arg (fp_opts=..., arg=0x7ffc3216bcb0) at /home/simark/src/binutils-gdb/gdb/stack.c:489
-	    #36 0x00005568d0a8cc75 in print_frame_args (fp_opts=..., func=0x621000233210, frame=..., num=-1, stream=0x60b000000300)
-	        at /home/simark/src/binutils-gdb/gdb/stack.c:898
-	    #37 0x00005568d0a9536d in info_frame_command_core (fi=..., selected_frame_p=true) at /home/simark/src/binutils-gdb/gdb/stack.c:1682
-
-	print_frame_args knows that print_frame_arg can invalidate frame_info
-	objects, and therefore calls prepare_reinflate/reinflate.  However,
-	info_frame_command_core has a separate frame_info_ptr instance (it is
-	passed by value / copy).  So info_frame_command_core needs to know that
-	print_frame_args can invalidate frame_info objects, and therefore needs
-	to prepare_reinflate/reinflate as well.  Add those calls, and enhance
-	the gdb.python/pretty-print-call-by-hand.exp test to test that command.
-
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Change-Id: I9edaae06d62e97ffdb30938d364437737238a960
-
-2022-11-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: clear other.m_cached_id in frame_info_ptr's move ctor
-	We do it in the move assignment operator, so I think it makes sense to
-	do it here too for consistency.  I don't think it's absolutely necessary
-	to clear the other object's fields (in other words, copy constructor and
-	move constructor could be the same), as there is no exclusive resource
-	being transfered.  The important thing is to leave the moved-from object
-	in an unknown, but valid state.  But still, I think that clearing the
-	fields of the moved-from object is not a bad idea, it helps ensure we
-	don't rely on the moved-from object after.
-
-	Change-Id: Iee900ff9d25dad51d62765d694f2e01524351340
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2022-11-10  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/c++: Improve error messages in overload resolution
-	When resolving overloaded functions, GDB relies on knowing relationships
-	between types, i.e. if a type inherits from another. However, some
-	compilers may not add complete information for given types as a way to
-	reduce unnecessary debug information. In these cases, GDB would just say
-	that it couldn't resolve the method or function, with no extra
-	information.
-
-	The problem is that sometimes the user may not know that the type
-	information is incomplete, and may just assume that there is a bug in
-	GDB. To improve the user experience, we attempt to detect if the
-	overload match failed because of an incomplete type, and warn the user
-	of this.
-
-	This commit also adds a testcase confirming that the message is only
-	triggered in the correct scenario. This test was not developed as an
-	expansion of gdb.cp/overload.cc because it needed the dwarf assembler,
-	and porting all of overload.cc seemed unnecessary.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-11-10  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: allowed for function_range to deal with mangled functions
-	When calling get_func_info inside a test case, it would cause failures
-	if the function was printed using a C++ style mangled name. The current
-	patch fixes this by allowing for mangled names along with the current
-	rules.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-11-10  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: skip ld-size when -shared is not supported
-	ld/ChangeLog:
-
-	        * testsuite/ld-size/size.exp: Skip when -shared is not
-		supported.
-
-2022-11-10  Alan Modra  <amodra@gmail.com>
-
-	mach-o reloc size overflow
-		* mach-o.c (bfd_mach_o_canonicalize_reloc): Set bfd_error on
-		multiply overflow.
-
-2022-11-10  Alan Modra  <amodra@gmail.com>
-
-	Sanity check reloc count in get_reloc_upper_bound
-	The idea here is the stop tools from allocating up to 32G per section
-	for the arelent pointer array, only to find a little later that the
-	section reloc count was fuzzed.  This usually doesn't hurt much (on
-	systems that allow malloc overcommit) except when compiled with asan.
-
-	We already do this for ELF targets, and while fixing the logic
-	recently I decided other targets ought to do the same.
-
-		* elf64-sparc.c (elf64_sparc_get_reloc_upper_bound): Sanity check
-		section reloc count against file size.
-		* mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
-		* aoutx.h (get_reloc_upper_bound): Likewise, and don't duplicate
-		check done in bfd_get_reloc_upper_bound.
-		* pdp11.c (get_reloc_upper_bound): Likewise.
-		* coffgen.c (coff_get_reloc_upper_bound): Likewise.
-
-2022-11-10  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: Fix rtld-step-nodebugsym.exp
-	The test case introduced in bafcc335266 (Fix stepping in rtld without
-	debug symbol) fails on some systems as reported by PR/29768.  This can
-	be seen if the system does not have debug info for the libc:
-
-	  (gdb) step^M
-	  Single stepping until exit from function main,^M
-	  which has no line number information.^M
-	  hello world[Inferior 1 (process 48203) exited normally]^M
-	  (gdb) PASS: gdb.base/rtld-step-nodebugsym.exp: step
-	  continue^M
-	  The program is not being run.^M
-	  (gdb) FAIL: gdb.base/rtld-step-nodebugsym.exp: continue until exit (the program is no longer running)
-
-	Without glibc debug info, GDB steps until the program finishes, and
-	then "gdb_continue_to_end" fails.
-
-	As this test was designed to check that GDB does not crash in the "step"
-	command, the continue does not carry real meaning to the test.
-
-	Replace it by "print 0" so we still check that after the step command
-	GDB is still alive, which is what we care about.
-
-	Tested on Ubuntu-22.04 x86_64, with and without libc6-dbg.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29768
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: drop old makefile fragment
-	Support for these files was dropped almost 30 years ago, but the ppc
-	arch was missed.  Clean that up now too.
-
-	sim: ppc: drop support for dgen -L option
-	Nothing passes this to dgen, and even if it did, nothing would happen
-	because the generated spreg.[ch] files don't include any references
-	back to the original data table.  So drop it to simplify.
-
-	sim: ppc: collapse is_readonly & length switch tables heavily
-	Since we know we'll return 0 by default, we don't have to output case
-	statements for readonly or length fields whose values are also zero.
-	This is the most common case by far and thus generates a much smaller
-	switch table in the end.
-
-2022-11-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: collapse is_valid switch table more
-	Instead of writing:
-	  case 1:
-	    return 1;
-	  case 2:
-	    return 1;
-	  ...etc...
-
-	Output a single return so we get:
-	  case 1:
-	  case 2:
-	  case ...
-	    return 1;
-
-	This saves ~100 lines of code.  Hopefully the compiler was already
-	smart enough to optimize to the same code, but if not, this probably
-	helps there too :).
-
-2022-11-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: pull default switch return out
-	This saves a single line for the same result.  By itself, it's not
-	interesting, but we can further optimize the generated output and
-	completely omit the switch table in some cases.  Which we'll do in
-	follow up commits.
-
-	sim: ppc: constify spreg table
-	This internal table is only ever read, so constify it.
-
-2022-11-10  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Add module information substream to PDB files
-
-2022-11-10  Luis Machado  <luis.machado@arm.com>
-
-	[opcodes/arm] Fix potential null pointer dereferences
-	  PR tdep/29598
-
-	  As pointed out in the bug ticket, we have a couple potential null pointer
-	  dereferencing situations. Harden those.
-
-	  Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29598
-
-2022-11-10  Luis Machado  <luis.machado@arm.com>
-
-	[gdb/aarch64] Use safer memory read routines
-	  PR tdep/28796
-
-	  As reported, we are using some memory read routines that don't handle read
-	  errors gracefully. Convert those to use the safe_* versions if available.
-
-	  This allows the code to handle those read errors in a more sensible way.
-
-	  Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28796
-
-2022-11-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-09  Lancelot SIX  <lancelot.six@amd.com>
-
-	Fix stepping in rtld without debug symbol
-	Commit be6276e0aed "Allow debugging of runtime loader / dynamic linker"
-	introduced a small regression when stepping into the runtime loader /
-	dynamic linker from function we do not have debug information for.  This
-	is reported in PR/29747.
-
-	This can be shown by the following example (given by Simon Marchi in
-	buzilla bug report):
-
-	    $ cat test.c
-	    #include <stdio.h>
-
-	    int main()
-	    {
-	      printf("Hi\n");
-	      return 0;
-	    }
-	    $ gcc test.c -O0 -o test
-	    $ ./gdb -q -nx --data-directory=data-directory test -ex start -ex s
-	    Reading symbols from test...
-	    (No debugging symbols found in test)
-	    Temporary breakpoint 1 at 0x1151
-	    Starting program: .../binutils-gdb/gdb/test
-	    [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
-
-	    Temporary breakpoint 1, 0x0000555555555151 in main ()
-	    Single stepping until exit from function main,
-	    which has no line number information.
-	    /home/smarchi/src/binutils-gdb/gdb/infrun.c:6960:64: runtime error: member call on null pointer of type 'struct symbol'
-
-	    The crash happens here:
-
-	    #0  __sanitizer::Die () at ../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cpp:50
-	    #1  0x00007ffff5dd7128 in __ubsan::__ubsan_handle_type_mismatch_v1_abort (Data=<optimized out>, Pointer=<optimized out>) at ../../../../src/libsanitizer/ubsan/ubsan_handlers.cpp:148
-	    #2  0x000055556183e1a7 in process_event_stop_test (ecs=0x7fffffffccd0) at .../binutils-gdb/gdb/infrun.c:6960
-	    #3  0x0000555561838ea4 in handle_signal_stop (ecs=0x7fffffffccd0) at .../binutils-gdb/gdb/infrun.c:6615
-	    #4  0x000055556182f77b in handle_inferior_event (ecs=0x7fffffffccd0) at .../binutils-gdb/gdb/infrun.c:5866
-
-	When evaluating:
-
-	    6956   if (execution_direction != EXEC_REVERSE
-	    6957       && ecs->event_thread->control.step_over_calls == STEP_OVER_UNDEBUGGABLE
-	    6958       && in_solib_dynsym_resolve_code (ecs->event_thread->stop_pc ())
-	    6959       && !in_solib_dynsym_resolve_code (
-	    6961          ecs->event_thread->control.step_start_function->value_block ()
-	    6962              ->entry_pc ()))
-
-	we dereference, ecs->event_thread->control.step_start_function which is
-	nullptr.
-
-	This patch changes this condition so it evaluates to true if
-	ecs->event_thread->control.step_start_function is nullptr since this
-	matches the behaviour before be6276e0aed.
-
-	Tested on ubuntu-22.04 x86_64.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29747
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-	Approved-By: Kevin Buettner <kevinb@redhat.com>
-
-2022-11-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: igen: add missing newline to various error messages
-	The error() function expects a trailing newline in its message.
-	Most callers do this already, so adding it to the few that don't.
-
-	sim: restore lstat & mkdir func checks
-	When merging ppc configure checks into the top-level, these 2 funcs
-	were accidentally dropped (probably due to incorrect resolution of
-	conflicts).  Restore them since the ppc code utilizes them both.
-
-	sim: ppc: drop obsolete USE_WIN32API check
-	This controls only one thing: how to call mkdir().  The gnulib code
-	already has a mkdir module that provides this exact logic for us, so
-	punt the code entirely.
-
-2022-11-09  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdbserver: do not report btrace support if target does not announce it
-	Gdbserver unconditionally reports support for btrace packets.  Do not
-	report the support, if the underlying target does not say it supports
-	it.  Otherwise GDB would query the server with btrace-related packets
-	unnecessarily.
-
-2022-11-09  Tom Tromey  <tromey@adacore.com>
-
-	Allow 'ptype/o' for assembly
-	PR exp/28359 points out that 'ptype/o' does not work when the current
-	language is "asm".
-
-	I tracked this down to a hard-coded list of languages in typeprint.c.
-	This patch replaces this list with a method on 'language_defn'
-	instead.  If all languages are ever updated to have this feature, the
-	method could be removed; but in the meantime this lets each language
-	control what happens.
-
-	I looked at having each print_type method simply modify the flags
-	itself, but this doesn't work very well with the feature that disables
-	method-printing by default (but allows it via a flag).
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28359
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-	Approved-By: Keith Seitz <keiths@redhat.com>
-
-2022-11-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: add missing parens with e500 macro
-	This macro expansion was missing a set of outer-most parenthesis which
-	some compilers would complain about depending on how the macro is used.
-	This is just standard good macro hygiene too.
-
-	sim: ppc: drop useless linking of helper tools
-	We've never run these helper programs directly.  The igen program
-	includes the relevant source files directly and runs the code that
-	way.  So stop wasting developer CPU time linking programs that are
-	never run.  We leave the rules in place for people who need to test
-	and debug the specific bits of code every now & then.
-
-2022-11-09  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: don't accept malformed EXTRQ / INSERTQ
-	Operand swapping was mistakenly suppressed when the first two operands
-	were immediate ones, not taking into account overall operand count. This
-	way EXTRQ / INSERTQ would have been accepted also with kind-of-AT&T
-	operand order.
-
-	For the testcase being extended, in order to not move around "GAS
-	LISTING" expectations, suppress pagination.
-
-2022-11-09  Alan Modra  <amodra@gmail.com>
-
-	Re: Fuzzed files in archives
-	Like commit ffbe89531c2e this avoids more silliness writing output
-	that is going to be deleted.  bfd_close and bfd_close_all_done differ
-	in that only the former calls _bfd_write_contents.
-
-		* objcopy.c (copy_archive): Don't call bfd_close for elements
-		that are going to be deleted, call bfd_close_all_done instead.
-		Do the same for the archive itself.
-
-2022-11-09  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: xtheadfmemidx: Use fp register in mnemonics
-	Although the encoding for scalar and fp registers is identical,
-	we should follow common pratice and use fp register names
-	when referencing fp registers.
-
-	The xtheadmemidx extension consists of indirect load/store instructions
-	which all load to or store from fp registers.
-	Let's use fp register names in this case and adjust the test cases
-	accordingly.
-
-	gas/
-	    * testsuite/gas/riscv/x-thead-fmemidx-fail.l: Updated since rd need to
-	    be float register.
-	    * testsuite/gas/riscv/x-thead-fmemidx-fail.s: Likewise.
-	    * testsuite/gas/riscv/x-thead-fmemidx.d: Likewise.
-	    * testsuite/gas/riscv/x-thead-fmemidx.s: Likewise.
-	opcodes/
-	    * riscv-opc.c (riscv_opcodes): Updated since rd need to be float register.
-
-2022-11-09  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Always output local symbol for relocatable link
-		PR ld/29761
-		* elflink.c (elf_link_output_symstrtab): Don't skip local symbol
-		in SEC_EXCLUDE section for relocatable link.
-
-2022-11-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-08  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/linux-nat: get core count using /sys/devices/system/cpu/possible
-	I get this test failure on my CI;
-
-	  FAIL: gdb.base/info-os.exp: get process list
-
-	The particularity of this setup is that builds are done in containers
-	who are allocated 4 CPUs on a machine that has 40.  The code in
-	nat/linux-osdata.c fails to properly fetch the core number for each
-	task.
-
-	linux_xfer_osdata_processes uses `sysconf (_SC_NPROCESSORS_ONLN)`, which
-	returns 4, so it allocates an array of 4 integers.  However, the core
-	numbers read from /proc/pid/task/tid/stat, by function
-	linux_common_core_of_thread, returns a value anywhere between 0 and 39.
-	The core numbers above 3 are therefore ignored, many processes end up
-	with no core value, and the regexp in the test doesn't match (it
-	requires an integer as the core field).
-
-	The way this the CPUs are exposed to the container is that the container
-	sees 40 CPUs "present" and "possible", but only 4 arbitrary CPUs
-	actually online:
-
-	    root@ci-node-jammy-amd64-04-08:~# cat /sys/devices/system/cpu/present
-	    0-39
-	    root@ci-node-jammy-amd64-04-08:~# cat /sys/devices/system/cpu/online
-	    5,11,24,31
-	    root@ci-node-jammy-amd64-04-08:~# cat /sys/devices/system/cpu/possible
-	    0-39
-
-	The solution proposed in this patch is to find out the number of
-	possible CPUs using /sys/devices/system/cpu/possible.  In practice, this
-	will probably always contain `0-N`, where N is the number of CPUs, minus
-	one.  But the documentation [1] doesn't such guarantee, so I'll assume
-	that it can contain a more complex range list such as `2,4-31,32-63`,
-	like the other files in that directory can have.  The solution is to
-	iterate over these numbers to find the highest possible CPU id, and
-	use that that value plus one as the size of the array to allocate.
-
-	[1] https://www.kernel.org/doc/Documentation/admin-guide/cputopology.rst
-
-	Change-Id: I7abce2e43b000c1327fa94cd7b99d46e49d7ccf3
-
-2022-11-08  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport, gdb: add read_text_file_to_string, use it in linux_common_core_of_thread
-	I would like to add more code to nat/linux-osdata.c that reads an entire
-	file from /proc or /sys and processes it as a string afterwards.  I
-	would like to avoid duplicating the somewhat error-prone code that reads
-	an entire file to a buffer.  I think we should have a utility function
-	that does that.
-
-	Add read_file_to_string to gdbsupport/filestuff.{c,h}, and make
-	linux_common_core_of_thread use it.  I want to make the new function
-	return an std::string, and because strtok doesn't play well with
-	std::string (it requires a `char *`, std::string::c_str returns a `const
-	char *`), change linux_common_core_of_thread to use std::string methods
-	instead.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Change-Id: I1793fda72a82969c28b944a84acb953f74c9230a
-
-2022-11-08  Peter Bergner  <bergner@linux.ibm.com>
-
-	PowerPC: Add XSP operand define
-	opcodes/
-		* ppc-opc.c (XSP): New define.
-		(powerpc_opcodes) <stxvp, stxvpx, pstxvp>: Use it.
-
-2022-11-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Make quit really quit after remote connection closed
-	Consider a hello world a.out, started using gdbserver:
-	...
-	$ gdbserver --once 127.0.0.1:2345 ./a.out
-	Process ./a.out created; pid = 15743
-	Listening on port 2345
-	...
-	that we can connect to using gdb:
-	...
-	$ gdb -ex "target remote 127.0.0.1:2345"
-	Remote debugging using 127.0.0.1:2345
-	Reading /home/vries/a.out from remote target...
-	  ...
-	0x00007ffff7dd4550 in _start () from target:/lib64/ld-linux-x86-64.so.2
-	(gdb)
-	...
-
-	After that, we can for instance quit with confirmation:
-	...
-	(gdb) quit
-	A debugging session is active.
-
-	        Inferior 1 [process 16691] will be killed.
-
-	Quit anyway? (y or n) y
-	$
-	...
-
-	Or, kill with confirmation and quit:
-	...
-	(gdb) kill
-	Kill the program being debugged? (y or n) y
-	[Inferior 1 (process 16829) killed]
-	(gdb) quit
-	$
-	...
-
-	Or, monitor exit, kill with confirmation, and quit:
-	...
-	(gdb) monitor exit
-	(gdb) kill
-	Kill the program being debugged? (y or n) y
-	Remote connection closed
-	(gdb) quit
-	$
-	...
-
-	But when doing monitor exit followed by quit with confirmation, we get the gdb
-	prompt back, requiring us to do quit once more:
-	...
-	(gdb) monitor exit
-	(gdb) quit
-	A debugging session is active.
-
-	        Inferior 1 [process 16944] will be killed.
-
-	Quit anyway? (y or n) y
-	Remote connection closed
-	(gdb) quit
-	$
-	...
-
-	So, the first quit didn't quit.  This happens as follows:
-	- quit_command calls query_if_trace_running
-	- a TARGET_CLOSE_ERROR is thrown
-	- it's caught in remote_target::get_trace_status, but then
-	  rethrown because it's TARGET_CLOSE_ERROR
-	- catch_command_errors catches the error, at which point the quit command
-	  has been aborted.
-
-	The TARGET_CLOSE_ERROR is defined as:
-	...
-	  /* Target throwing an error has been closed.  Current command should be
-	     aborted as the inferior state is no longer valid.  */
-	  TARGET_CLOSE_ERROR,
-	...
-	so in a way this is expected behaviour.  But aborting quit because the inferior
-	state (which we've already confirmed we're not interested in) is no longer
-	valid, and having to type quit again seems pointless.
-
-	Furthermore, the purpose of not catching errors thrown by
-	query_if_trace_running as per commit 2f9d54cfcef ("make -gdb-exit call
-	disconnect_tracing too, and don't lose history if the target errors on
-	"quit""), was to make sure that error (_("Not confirmed.") had effect.
-
-	Fix this in quit_command by catching only the TARGET_CLOSE_ERROR exception
-	during query_if_trace_running and reporting it:
-	...
-	(gdb) monitor exit
-	(gdb) quit
-	A debugging session is active.
-
-	        Inferior 1 [process 19219] will be killed.
-
-	Quit anyway? (y or n) y
-	Remote connection closed
-	$
-	...
-
-	Tested on x86_64-linux.
-
-	PR server/15746
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=15746
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-11-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove test-case from test name
-	Remove test-cases from test-names, such that we don't have the redundant:
-	...
-	PASS: gdb.base/corefile.exp: backtrace in corefile.exp
-	...
-	but simply:
-	...
-	PASS: gdb.base/corefile.exp: backtrace
-	...
-
-	Fixed all instances found using:
-	...
-	$ grep ":.*:.*\.exp" gdb.sum
-	...
-
-	Tested on x86_64-linux.
-
-2022-11-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix find_core_file for core named core
-	With test-case gdb.base/bigcore.exp I run into:
-	...
-	(gdb) PASS: gdb.base/bigcore.exp: get inferior pid
-	signal SIGABRT^M
-	Continuing with signal SIGABRT.^M
-	^M
-	Program terminated with signal SIGABRT, Aborted.^M
-	The program no longer exists.^M
-	(gdb) PASS: gdb.base/bigcore.exp: signal SIGABRT
-	UNTESTED: gdb.base/bigcore.exp: can't generate a core file
-	...
-	due to find_core_file returning "".
-
-	There is a core file name core:
-	...
-	$ ls ./outputs/gdb.base/bigcore
-	bigcore  bigcore.corefile  core  gdb.cmd.1  gdb.in.1  gdbserver.cmd.1
-	...
-	but it's not found.
-
-	The problem is this statement:
-	...
-	    lappend files [list ${::testfile}.core core]
-	...
-	which adds a single list item "${::testfile}.core core".
-
-	Fix this in the most readable way:
-	...
-	    lappend files ${::testfile}.core
-	    lappend files core
-	...
-
-	Tested on x86_64-linux.
-
-2022-11-08  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: call Unpredictable instead of setting bogus values [PR sim/29276]
-	The intention of this code seems to be to indicate that this insn
-	should not be used and produces undefined behavior, so instead of
-	setting registers to bogus values, call Unpredictable.  This fixes
-	build warnings due to 32-bit/64-bit type conversions, and outputs
-	a log message for users at runtime instead of silent corruption.
-
-	Bug: https://sourceware.org/PR29276
-
-2022-11-08  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: drop unused CORE_ADDR_TYPE
-	This hasn't been used by gdb in decades, and doesn't make sense with
-	a standalone sim program/library where the ABI is fixed.  So punt it
-	to simplify the code.
-
-2022-11-08  Haochen Jiang  <haochen.jiang@intel.com>
-
-	x86: Correct wrong comments in vex_w_table
-	Hi all,
-
-	This wrong comment was introduced by previous AVX-VNNI-INT8 commit.
-
-	Committed as obvious fix.
-
-	BRs,
-	Haochen
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (VEX_W_0F3851): Corrected from
-		VEX_W_0F3851_P_0.
-
-2022-11-08  Kong Lingling  <lingling.kong@intel.com>
-
-	Support Intel RAO-INT
-	gas/ChangeLog:
-
-		* NEWS: Support Intel RAO-INT.
-		* config/tc-i386.c: Add raoint.
-		* doc/c-i386.texi: Document .raoint.
-		* testsuite/gas/i386/i386.exp: Run RAO_INT tests.
-		* testsuite/gas/i386/raoint-intel.d: New test.
-		* testsuite/gas/i386/raoint.d: Ditto.
-		* testsuite/gas/i386/raoint.s: Ditto.
-		* testsuite/gas/i386/x86-64-raoint-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-raoint.d: Ditto.
-		* testsuite/gas/i386/x86-64-raoint.s: Ditto.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (PREFIX_0F38FC): New.
-		(prefix_table): Add PREFIX_0F38FC.
-		* i386-gen.c: (cpu_flag_init): Add CPU_RAO_INT_FLAGS and
-		CPU_ANY_RAO_INT_FLAGS.
-		* i386-init.h: Regenerated.
-		* i386-opc.h: (CpuRAO_INT): New.
-		(i386_cpu_flags): Add cpuraoint.
-		* i386-opc.tbl: Add RAO_INT instructions.
-		* i386-tbl.h: Regenerated.
-
-2022-11-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-07  Tom Tromey  <tromey@adacore.com>
-
-	Silence libtool during link
-	The switch to linking with libtool now shows a very long link line
-	even when V=0.  This patch arranges to silence libtool in this
-	situation.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-07  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make lookup_selected_frame static
-	Change-Id: Ide2749a34333110c7f0112b25852c78cace0d2b4
-
-2022-11-07  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: riscv: add missing AC_MSG_RESULT call
-	Previous commit in here forgot to include this.
-
-	sim: v850: drop subdir configure logic
-	We've been using this only to set the default word size to 32.  We
-	can easily move this into the makefile via a -D compiler flag and
-	clean up the build logic quite a bit.
-
-	sim: mn10300: drop subdir configure logic
-	We've been using this only to set the default word size to 32.  We
-	can easily move this into the makefile via a -D compiler flag and
-	clean up the build logic quite a bit.
-
-	sim: or1k: drop subdir configure logic
-	We've been using this only to set the default word size to 32.  We
-	can easily move this into the makefile via a -D compiler flag and
-	clean up the build logic quite a bit.
-
-	sim: bpf: drop subdir configure logic
-	We've been using this only to set the default word size to 64.  We
-	can easily move this into the makefile via a -D compiler flag and
-	clean up the build logic quite a bit.
-
-	sim: riscv: drop subdir configure logic
-	We've been using this only to set the default word size to 32-vs-64
-	based on the $target.  We can easily merge this with the top-level
-	configure script to clean things up a bit.
-
-2022-11-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	gdb: link executables with libtool
-	This patch changes the GDB build system in order to use libtool to
-	link the several built executables.  This makes it possible to refer
-	to libtool libraries (.la files) in CLIBS.
-
-	As an application of the above,
-
-	  BFD              now refers to ../libbfd/libbfd.la
-	  OPCODES          now refers to ../opcodes/libopcodes.la
-	  LIBBACKTRACE_LIB now refers to ../libbacktrace/libbacktrace.la
-	  LIBCTF           now refers to ../libctf/libctf.la
-
-	NOTE1: The addition of libtool adds a few new configure-time options
-	       to GDB.  Among these, --enable-shared and --disable-shared, which were
-	       previously ignored.  Now GDB shall honor these options when linking,
-	       picking up the right version of the referred libtool libraries
-	       automagically.
-
-	NOTE2: I have not tested the insight build.
-
-	NOTE3: For regenerating configure I used an environment with Autoconf
-	       2.69 and Automake 1.15.1.  This should match the previously
-	       used version as announced in the configure script.
-
-	NOTE4: Now the installed shared objects libbfd.so, libopcodes.so and
-	       libctf.so are used by gdb if binutils is installed with
-	       --enable-shared.
-
-	Testing performed:
-
-	- --enable-shared and --disable-shared (the default in binutils) work
-	  as expected: the linked executables link with the archive or shared
-	  libraries transparently.
-
-	- Makefile.in modified for EXEEXT = .exe.  It installs the binaries
-	  just fine.  The installed gdb.exe runs fine.
-
-	- Native build regtested in x86_64. No regressions found.
-
-	- Cross build for aarch64-linux-gnu built to exercise
-	  program_transform_name and friends.  The installed
-	  aarch64-linux-gnu-gdb runs fine.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29372
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: use a more unique name in gdb.mi/mi-breakpoint-multiple-locations.exp
-	I see failures in this test, due to the function name "add" being too
-	generic, and unexpected breakpoint locations being found in my
-	libstdc++, such as (wrapped for readability):
-
-	    {
-	  	number="2.4",enabled="y",addr="0x00007ffff7d67e68",
-	  	func="(anonymous namespace)::fast_float::bigint::add",
-		file="/usr/src/debug/gcc/libstdc++-v3/src/c++17/fast_float/fast_float.h",
-		fullname="/usr/src/debug/gcc/libstdc++-v3/src/c++17/fast_float/fast_float.h",
-		line="1815", thread-groups=["i1"]
-	    }
-
-	Change the test to use a more unique name.
-
-	Change-Id: I91de781be62d246eb41c73eaa410ebdd12633d1d
-
-2022-11-07  Pedro Alves  <pedro@palves.net>
-
-	Don't explicitly set clone child ptrace options
-	linux_handle_extended_wait calls target_post_attach if we're handling
-	a PTRACE_EVENT_CLONE, and libthread_db.so isn't active.
-	target_post_attach just calls linux_init_ptrace_procfs to set the
-	lwp's ptrace options.  However, this is completely unnecessary,
-	because, as man ptrace [1] says, options are inherited:
-
-	  "Flags are inherited by new tracees created and "auto-attached" via
-	   active PTRACE_O_TRACEFORK, PTRACE_O_TRACEVFORK, or PTRACE_O_TRACECLONE
-	   options."
-
-	This removes the unnecessary call.
-
-	[1] - https://man7.org/linux/man-pages/man2/ptrace.2.html
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: I533eaa60b700f7e40760311fc0d344d0b3f19a78
-
-2022-11-07  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: .gdbinit: generate for all arch subdirs
-	This was being skipped for ports that had a recursive configure,
-	but we want it for them too.
-
-	sim: build: add a proper var for enabled arches
-	The install code was using $SUBDIRS to track all enabled arches.  This
-	works, but isn't great if we want to add a subdir that isn't an arch
-	port, or as we merge the subdirs into the top-level.  Create a new var
-	explicitly to track the list of enabled arches instead.
-
-2022-11-07  Christophe Lyon  <christophe.lyon@arm.com>
-
-	configure: require libzstd >= 1.4.0
-	gas uses ZSTD_compressStream2 which is only available with libzstd >=
-	1.4.0, leading to build errors when an older version is installed.
-
-	This patch updates the check libzstd presence to check its version is
-	>= 1.4.0. However, since gas seems to be the only component requiring
-	such a recent version this may imply that we disable ZSTD support for
-	all components although some would still benefit from an older
-	version.
-
-	I ran 'autoreconf -f' in all directories containing a configure.ac
-	file, using vanilla autoconf-2.69 and automake-1.15.1. I noticed
-	several errors from autoheader in readline, as well as warnings in
-	intl, but they are unrelated to this patch.
-
-	This should fix some of the buildbots.
-
-	OK for trunk?
-
-	Thanks,
-
-	Christophe
-
-2022-11-07  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: skip tests related to -shared when disabled
-	Call the helper function "check_shared_lib_support" to ensure -shared
-	is enabled before launching ld-shared, ld-elfweak and ld-elfvers.
-	This allows to catch custom targets explicitly disabling it.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elfvers/vers.exp: Call check_shared_lib_support.
-		* testsuite/ld-elfweak/elfweak.exp: Likewise.
-		* testsuite/ld-shared/shared.exp: Likewise.
-
-2022-11-07  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Remove RV32EF conflict
-	Despite that the RISC-V ISA Manual version 2.2 prohibited "RV32EF", later
-	versions beginning with the version 20190608-Base-Ratified removed this
-	restriction.  Because the 'E' extension is still a draft, the author chose
-	to *just* remove the conflict (not checking the ISA version).
-
-	Note that, because RV32E is only used with a soft-float calling convention,
-	there's no valid official ABI for RV32EF.  It means, even if we can assemble
-	a program with -march=rv32ef -mabi=ilp32e, floating-point registers are kept
-	in an unmanaged state (outside ABI management).
-
-	The purpose of this commit is to suppress unnecessary errors while parsing
-	an ISA string and/or disassembling, not to allow hard-float with RVE.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_parse_check_conflicts): Accept RV32EF
-		because only older specifications disallowed it.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/march-fail-rv32ef.d: Remove as not directly
-		prohibited.
-		* testsuite/gas/riscv/march-fail-rv32ef.l: Likewise.
-
-2022-11-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-06  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: respect AM_MAKEFLAGS when entering subdirs
-	This doesn't matter right now, but it will as we add more flags to
-	the recursive make step to pass state down.
-
-	sim: build: stop passing down SIM_PRIMARY_TARGET
-	This was needed when the install step was run in subdirs, but now
-	that we process that entirely in the top-level, we don't need to
-	pass this down, so drop it.
-
-2022-11-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-05  Tom Tromey  <tom@tromey.com>
-
-	Deprecate MI version 1
-	MI version 1 is long since obsolete.  Rather than remove it
-	immediately (though I did send a patch for that), instead let's
-	deprecate it in GDB 13 and then remove it for GDB 14.
-
-	This version of the patch incorporates Simon's warning change, and
-	Luis' recommendation to mention the gdb versions here.
-
-2022-11-05  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: fix readline linkage
-	Now that we link programs in the top dir instead of the arch subdir,
-	update the readline library path to be relative to the top dir.
-
-	sim: use libtool to install programs
-	Now that we use libtool to link, we have to use it to install instead
-	of keeping the manual logic so we don't install wrapper shell scripts.
-
-	sim: bfin: move linux-fixed-code.h to top-level
-
-2022-11-05  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: run: move linking into top-level
-	Automake will run each subdir individually before moving on to the next
-	one.  This means that the linking phase, a single threaded process, will
-	not run in parallel with anything else.  When we have to link ~32 ports,
-	that's 32 link steps that don't take advantage of parallel systems.  On
-	my really old 4-core system, this cuts a multi-target build from ~60 sec
-	to ~30 sec.  We eventually want to move all compile+link steps to this
-	common dir anyways, so might as well move linking now for a nice speedup.
-
-	We use noinst_PROGRAMS instead of bin_PROGRAMS because we're taking care
-	of the install ourselves rather than letting automake process it.
-
-2022-11-05  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: add uninstall support
-	This never worked before, but adding it to the common top-level dir
-	is pretty easy to do now that we're unified.
-
-	sim: build: move install steps to the top-level
-	We still have to maintain custom install rules due to how we rename
-	arch-specific files with an arch prefix in their name, but we can at
-	least unify the logic in the common dir.
-
-	sim: cris: move rvdummy linking to top-level
-	This is only used by `make check`, so we can move it out of the
-	default build too.
-
-	sim: build: add SIM_HW_CFLAGS to top-level build too
-	This matches what we do with targets already.
-
-	sim: drop unused SIM_HARDWARE variable
-	This hasn't been used since the refactor way back in commit
-	f872d0d643968c1101bb8c07b252edd54f626da2 ("Only enable H/W
-	on some mips targets."), so punt it.
-
-	sim: adjust sim_hw options style
-	We use uppercase for other variables, and are already turning it to
-	uppercase in the arch-subdir.mk, so convert it in the configure step.
-
-	sim: ppc: drop unused /dev/zero logic
-	Nothing in the tree checks this option, or has checked for decades.
-	The pre-cvs-import ChangeLog suggests this was added & removed back
-	then, but can't be sure as that history doesn't exist in the VCS.
-
-	sim: ppc: delete unused host bitsize settings
-	Nothing checks this define anywhere, so drop all the logic.  We don't
-	want this to be a configure option in the first place as all such usage
-	should be automatic & following proper types.
-
-	sim: ppc: inline the sim-packages option
-	This has only ever had a single option that's enabled by default.
-	The objects it adds are pretty small and don't add overhead at
-	runtime if it isn't used, so just enable it all the time to make
-	the build code simpler.
-
-2022-11-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	binutils: Run PR binutils/26160 test
-	Update expected PR binutils/26160 test output for readelf out change
-	and run PR binutils/26160 test.
-
-		PR binutils/26160
-		* testsuite/binutils-all/pr26160.r: Updated.
-		* testsuite/binutils-all/readelf.exp: Run PR binutils/26160 test.
-
-2022-11-04  Lancelot SIX  <lancelot.six@amd.com>
-
-	[testsuite] gdb.base/dlmopen: Fix test name and use gdb_attach
-	One test name in gdb.base/dlmopen.exp changes from run to run
-	since it includes a process id:
-
-	    PASS: gdb.base/dlmopen.exp: attach 3442682
-
-	This is not convenient do diff gdb.sum files to compare test runs.
-
-	Fix by using gdb_attach helper function to handle attaching to the
-	process as it produce a constant test name.
-
-	While at it also check gdb_attach's return value to only run the
-	rest of the test if the attach was successful.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-04  Carl Love  <cel@us.ibm.com>
-
-	PowerPC update comments for the MMA instruction name changes.
-	The mnemonics for the pmxvf16ger*, pmxvf32ger*,pmxvf64ger*, pmxvi4ger8*,
-	pmxvi8ger4*, and pmxvi16ger2* instructions were officially changed to
-	pmdmxbf16ger*, pmdmxvf32ger*, pmdmxvf64ger*, pmdmxvi4ger8*, pmdmxvi8ger4*,
-	pmdmxvi16ger* respectively.  The old mnemonics are still supported by the
-	assembler as extended mnemonics.  The disassembler generates the new
-	mnemonics.  The name changes occurred in commit:
-
-	  commit bb98553cad4e017f1851153fa5de91f2cee98fb2
-	  Author: Peter Bergner <bergner@linux.ibm.com>
-	  Date:   Sat Oct 8 16:19:51 2022 -0500
-
-	    PowerPC: Add support for RFC02658 - MMA+ Outer-Product Instructions
-
-	    gas/
-	            * config/tc-ppc.c (md_assemble): Only check for prefix opcodes.
-	            * testsuite/gas/ppc/rfc02658.s: New test.
-	            * testsuite/gas/ppc/rfc02658.d: Likewise.
-	            * testsuite/gas/ppc/ppc.exp: Run it.
-
-	    opcodes/
-	            * ppc-opc.c (XMSK8, P_GERX4_MASK, P_GERX2_MASK, XX3GERX_MASK): New.
-	            (powerpc_opcodes): Add dmxvi8gerx4pp, dmxvi8gerx4, dmxvf16gerx2pp,
-	            dmxvf16gerx2, dmxvbf16gerx2pp, dmxvf16gerx2np, dmxvbf16gerx2,
-	            dmxvi8gerx4spp, dmxvbf16gerx2np, dmxvf16gerx2pn, dmxvbf16gerx2pn,
-	            dmxvf16gerx2nn, dmxvbf16gerx2nn, pmdmxvi8gerx4pp, pmdmxvi8gerx4,
-	            pmdmxvf16gerx2pp, pmdmxvf16gerx2, pmdmxvbf16gerx2pp, pmdmxvf16gerx2np,
-	            pmdmxvbf16gerx2, pmdmxvi8gerx4spp, pmdmxvbf16gerx2np, pmdmxvf16gerx2pn,
-	            pmdmxvbf16gerx2pn, pmdmxvf16gerx2nn, pmdmxvbf16gerx2nn.
-
-	This patch updates the comments in the various gdb files to reflect the
-	name changes.  There are no functional changes made by this patch.
-
-	The older instruction names are still used in the test
-	gdb.reverse/ppc_record_test_isa_3_1.exp for backwards compatibility.
-
-	Patch has been tested on Power 10 with no regressions.
-
-2022-11-04  Carl Love  <cel@us.ibm.com>
-
-	PowerPC fix for the gdb.arch/powerpc-power10.exp test.
-	The mnemonics for the pmxvf16ger*, pmxvf32ger*,pmxvf64ger*, pmxvi4ger8*,
-	pmxvi8ger4*, pmxvi16ger2* instructions were officially changed to
-	pmdmxvf16ger*, pmdmxvf32ger*, pmdmxvf64ger*, pmdmxvi4ger8*, pmdmxvi8ger4*,
-	pmdmxvi16ger* respectively.  The old mnemonics are still supported by the
-	assembler as extended mnemonics.  The disassembler generates the new
-	mnemonics.  The name changes occurred in commit:
-
-	  commit bb98553cad4e017f1851153fa5de91f2cee98fb2
-	  Author: Peter Bergner <bergner@linux.ibm.com>
-	  Date:   Sat Oct 8 16:19:51 2022 -0500
-
-	    PowerPC: Add support for RFC02658 - MMA+ Outer-Product Instructions
-
-	    gas/
-	            * config/tc-ppc.c (md_assemble): Only check for prefix opcodes.
-	            * testsuite/gas/ppc/rfc02658.s: New test.
-	            * testsuite/gas/ppc/rfc02658.d: Likewise.
-	            * testsuite/gas/ppc/ppc.exp: Run it.
-
-	    opcodes/
-	            * ppc-opc.c (XMSK8, P_GERX4_MASK, P_GERX2_MASK, XX3GERX_MASK): New.
-	            (powerpc_opcodes): Add dmxvi8gerx4pp, dmxvi8gerx4, dmxvf16gerx2pp,
-	            dmxvf16gerx2, dmxvbf16gerx2pp, dmxvf16gerx2np, dmxvbf16gerx2,
-	            dmxvi8gerx4spp, dmxvbf16gerx2np, dmxvf16gerx2pn, dmxvbf16gerx2pn,
-	            dmxvf16gerx2nn, dmxvbf16gerx2nn, pmdmxvi8gerx4pp, pmdmxvi8gerx4,
-	            pmdmxvf16gerx2pp, pmdmxvf16gerx2, pmdmxvbf16gerx2pp, pmdmxvf16gerx2np,
-	            pmdmxvbf16gerx2, pmdmxvi8gerx4spp, pmdmxvbf16gerx2np, pmdmxvf16gerx2pn,
-	            pmdmxvbf16gerx2pn, pmdmxvf16gerx2nn, pmdmxvbf16gerx2nn.
-
-	The above commit results in about 224 failures on Power 10 since the
-	disassembled names do not match the expected names in the test.  This
-	patch updates the expected names in the test to match the values produced
-	by the disassembler.
-
-	This patch updates file gdb.arch/powerpc-power10.exp with the new expected
-	values to the instructions.  The comment giving the name of the instruction
-	for each binary value in the file gdb.arch/powerpc-power10.c is updated
-	with the new name.   There are no functional changes in file
-	gdb.arch/powerpc-power10.c.
-
-2022-11-04  Carl Love  <cel@us.ibm.com>
-
-	Powerpc fix for gdb.base/unwind-on-each-insn.exp
-	The test disassembles function foo and searches for the line
-	"End of assembler dump" to determing the last address in the function.  The
-	assumption is the last instruction will be given right before the line
-	"End of assembler dump".  This assumption fails on PowerPC.
-
-	The PowerPC disassembly of the function foo looks like:
-	 Dump of assembler code for function foo:
-	#  => 0x00000000100006dc <+0>:     std     r31,-8(r1)
-	#     0x00000000100006e0 <+4>:     stdu    r1,-48(r1)
-	#     0x00000000100006e4 <+8>:     mr      r31,r1
-	#     0x00000000100006e8 <+12>:    nop
-	#     0x00000000100006ec <+16>:    addi    r1,r31,48
-	#     0x00000000100006f0 <+20>:    ld      r31,-8(r1)
-	#     0x00000000100006f4 <+24>:    blr
-	#     0x00000000100006f8 <+28>:    .long 0x0
-	#     0x00000000100006fc <+32>:    .long 0x0
-	#     0x0000000010000700 <+36>:    .long 0x1000180
-	#     End of assembler dump.
-
-	The blr instruction is the last instruction in function foo.  The lines
-	with .long following the blr instruction need to be ignored.
-
-	This patch adds a new condition to the gdb_test_multiple "disassemble foo"
-	test to ignore the lines with the .long.
-
-	The patch has been tested on PowerPC and Intel X86-64.
-
-2022-11-04  Jan Beulich  <jbeulich@suse.com>
-
-	x86: adjust recently introduced testcases
-	The issue addressed by 2c02c72c62d2 ("re: Support Intel AMX-FP16") has
-	been introduced once again in a number of new tests.
-
-2022-11-04  Nick Clifton  <nickc@redhat.com>
-
-	Update release documentation with regard to uploading gprofng docs
-
-2022-11-04  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: add KFAILs to gdb.reverse/step-reverse.exp
-	Recent changes to gdb.reverse/step-reverse.exp revealed the latent bug
-	PR record/29745, where we can't skip one funcion forward if we're using
-	native-gdbserver. This commit just adds kfails to the test.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29745
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-04  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/arm: silence compiler warning about uninitialized variable use
-	After this commit:
-
-	  commit 6576bffe6cbbb53c5756b2fccd2593ba69b74cdf
-	  Date:   Thu Jul 7 13:43:45 2022 +0100
-
-	      opcodes/arm: add disassembler styling for arm
-
-	Some people were seeing their builds failing with complaints about a
-	possible uninitialized variable usage.  I previously fixed an instance
-	of this issue in this commit:
-
-	  commit 2df82cd4b459fbc32120e0ad1ce19e26349506fe
-	  Date:   Tue Nov 1 10:36:59 2022 +0000
-
-	      opcodes/arm: silence compiler warning about uninitialized variable use
-
-	which did fix the build problems that the sourceware buildbot was
-	hitting, however, an additional instance of the same problem was
-	brought to my attention, and that is fixed in this commit.
-
-	Where commit 2df82cd4b4 fixed the uninitialized variable problem in
-	print_mve_unpredictable, this commit fixes the same problem in
-	print_mve_undefined.
-
-	As with the previous commit, I don't believe we could really ever get
-	an uninitialized variable usage, based on the current usage of the
-	function, so I have just initialized the reason variable to "??".
-
-2022-11-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: rx: drop unused $arch setting
-	This is only needed for CGEN ports which RX isn't, so drop it.
-
-2022-11-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: build: remove various obsolete generation dep variables
-	These manual settings were necessary when we weren't doing automatic
-	header dependency tracking.  That was changed a while ago, and we use
-	automake now to do it all for us.  As a result, many of these vars
-	aren't even referenced anymore.
-
-	Further, some of the source file generation (e.g. .c files, or igen,
-	or cgen outputs) were moved to the common automake build, and it takes
-	care of dependency tracking for us with the object files.
-
-2022-11-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: don't hardcode -ldl for SDL support
-	Since we use AC_SEARCH_LIBS to find dlopen, we don't need to hardcode
-	-ldl when using SDL ourselves.
-
-2022-11-04  konglin1  <lingling.kong@intel.com>
-
-	Support Intel AVX-NE-CONVERT
-	gas/ChangeLog:
-
-		* NEWS: Support Intel AVX-NE-CONVERT.
-		* config/tc-i386.c: Add avx_ne_convert.
-		* doc/c-i386.texi: Document .avx_ne_convert.
-		* testsuite/gas/i386/i386.exp: Run AVX NE CONVERT tests.
-		* testsuite/gas/i386/avx-ne-convert-intel.d: New test.
-		* testsuite/gas/i386/avx-ne-convert.d: Ditto.
-		* testsuite/gas/i386/avx-ne-convert.s: Ditto.
-		* testsuite/gas/i386/x86-64-avx-ne-convert-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx-ne-convert.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx-ne-convert.s: Ditto.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (Mw): New.
-		(PREFIX_VEX_0F3872): Ditto.
-		(PREFIX_VEX_0F38B0_W_0): Ditto.
-		(PREFIX_VEX_0F38B1_W_0): Ditto.
-		(VEX_W_0F3872_P_1): Ditto.
-		(VEX_W_0F38B0): Ditto.
-		(VEX_W_0F38B1): Ditto.
-		(prefix_table): Add PREFIX_VEX_0F3872, PREFIX_VEX_0F38B0_W_0,
-		PREFIX_VEX_0F38B1_W_0.
-		(vex_w_table): Add VEX_W_0F3872_P_1, VEX_W_0F38B0, VEX_W_0F38B1.
-		* i386-gen.c (cpu_flag_init): Add CPU_AVX_NE_CONVERT_FLGAS and
-		CPU_ANY_AVX_NE_CONVERT_FLAGS.
-		(cpu_flags): Add CpuAVX_NE_CONVERT.
-		* i386-init.h: Regenerated.
-		* i386-opc.h (CpuAVX_NE CONVERT): New.
-		(i386_cpu_flags): Add cpuavx_ne_convert.
-		* i386-opc.tbl: Add Intel AVX-NE-CONVERT instructions.
-		* i386-tbl.h: Regenerated.
-
-2022-11-04  konglin1  <lingling.kong@intel.com>
-
-	i386: Rename <xy> template.
-	opcodes/
-	            * i386-opc.tbl: Rename <xy> template for VEX insn with x/y suffix to <Vxy>.
-		    Rename <xy> for EVEX insn with x/y suffix to <Exy>.
-
-2022-11-04  Jojo R  <rjiejie@linux.alibaba.com>
-
-	Support multiple .eh_frame sections
-		This patch is based on MULTIPLE_FRAME_SECTIONS and EH_FRAME_LINKONCE,
-		it allows backend to enable this feature and use '--gc-sections' simply.
-
-		* gas/dw2gencfi.h (TARGET_MULTIPLE_EH_FRAME_SECTIONS): New.
-		(MULTIPLE_FRAME_SECTIONS): Add TARGET_MULTIPLE_EH_FRAME_SECTIONS.
-		* gas/dw2gencfi.c (EH_FRAME_LINKONCE): Add TARGET_MULTIPLE_EH_FRAME_SECTIONS.
-		(is_now_linkonce_segment): Likewise.
-		(get_cfi_seg): Create relocation info between .eh_frame.* and .text.* section.
-
-		* bfd/elf-bfd.h (elf_backend_can_make_multiple_eh_frame): New.
-		* bfd/elfxx-target.h (elf_backend_can_make_multiple_eh_frame): Likewise.
-		* bfd/elflink.c (_bfd_elf_default_action_discarded): Add checking for
-		elf_backend_can_make_multiple_eh_frame.
-
-2022-11-04  Jojo R  <rjiejie@linux.alibaba.com>
-
-	gas/doc/internals.texi: fix typo
-		* gas/doc/internals.texi (md_emit_single_noop_insn):
-		fix '@var missing closing brace'
-		* gas/doc/internals.texi (Hash tables):
-		fix '@menu reference to nonexistent node `Hash tables''
-
-2022-11-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: drop -lm from SIM_EXTRA_LIBS
-	We have configure tests for this in the top-level configure script
-	to link this when necessary, so we don't need to explicitly list it
-	for specific ports.
-
-	sim: build: change AC_CHECK_LIB to AC_SEARCH_LIBS
-	With more C libraries moving functions entirely into the main -lc,
-	change the AC_CHECK_LIB calls to AC_SEARCH_LIBS so we look in there
-	first and avoid extra linkage when possible.
-
-	sim: build: drop duplicate $(LIBS) usage
-	COMMON_LIBS is set to $(LIBS), and CONFIG_LIBS is set to that plus
-	@LIBS@.  This leds to the values being used twice.  Inline the
-	CONFIG_LIBS variable without @LIBS@ since it's used only once.
-
-	sim: build: switch to bfd & opcodes libtool linker scripts
-	Now that we use libtool to link, we don't need to duplicate all the
-	libs that bfd itself uses.  This simplifies the configure & Makefile.
-
-	sim: build: switch to libtool for linking
-	The top-level already sets up a libtool script for the host, so use
-	that when linking rather than invoking CC directly.  This will also
-	happen when we (someday) move the building to pure automake.
-
-2022-11-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: fix cris stat3 in diff setups
-	This test uses the test itself as an input to stating regular files.
-	This gets funky though: when we run check in parallel, the output
-	object dir is the subdir that matches the .exp file.  When we run
-	with -j1, the output object dir is the sim builddir itself.
-
-	The old test would append argv[0] to find the file, while the new
-	test uses basename on it.  Each method works in only one of the
-	aforementioned build scenarios.  Rather than complicate this any
-	more, switch to a different file that we know will always exist:
-	the Makefile.
-
-2022-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: fix cris badarch in multi-target builds
-	This test assumes that /bin/sh will never be a CRIS ELF by way of
-	assuming that the current bfd cannot load it (since a basic cris
-	cross-compiler only understands CRIS ELFs).  In a multi-target
-	build though, bfd understands just about every ELF out there, so
-	we're able to read the /bin/sh format before failing at a diff
-	point in the cris code.
-
-	Let's switch to using / instead since it'll fail for a similar
-	reason (at least similar enough for what this test is testing).
-
-2022-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cleanup unused SIM_EXTRA_CFLAGS
-	We want to eventually delete this, so at least drop the empty ones.
-
-	sim: m32c/rx: drop useless $(ENDLIST)
-	This is used to allow for dangling \ in object lists, but these are the
-	only ports that do it, and it isn't really necessary.  Punt it to keep
-	the various makefiles harmonized.
-
-	sim: mips: simplify fpu configure logic
-	The configure code always defaults to HARD_FLOATING_POINT, so inline
-	that value and drop redundant target checks as a result.
-
-2022-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: erc32: link sis to run program
-	The erc32 sim does a lot itself, including handling of the CLI.  It
-	used to provide a run-compatible interface in the pre-nrun days, but
-	it was dropped when the old run interface was punted.  Since the old
-	commit 465fb143c87076b6416a8d0d5dd79bb016060fe3 ("sim: make nrun the
-	default run program"), the erc32 run & sis programs have been the
-	same, and erc32 hasn't provide a real run-compatible interface.
-
-	Simplify this by linking the two programs via ln/cp instead of running
-	the linking phase twice to produce the same result.  If/when we fix up
-	the erc32 port to have a proper run interface, it should be easy to
-	split these back apart into real programs.
-
-	Note: the interf.o reference in here is a bit of a misdirect.  Since
-	that object is placed into libsim.a, it's never been linked into the
-	programs since the linker ignores objects that aren't referenced, and
-	only gdb uses those symbols.
-
-2022-11-03  Nick Clifton  <nickc@redhat.com>
-
-	V850 Linker: do not complain about RWX segments.
-		PR 29748
-		* configure.tgt (ac_default_ld_warn_rwx_segments): Set to 0 for
-		the V850.
-
-2022-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: v850: switch to standard (high-level) trace defines
-	The v850 port uses -DDEBUG to control whether to enable internal tracing.
-	We already have such options via the common trace framework, and those
-	can be controlled at build time via configure flags (which the v850 code
-	currently cannot).  So switch it over to WITH_TRACE_ANY_P to simplify the
-	v850 build code even if it doesn't (yet) respect any other trace options.
-
-	sim: ppc: include copyright & license in --version
-	This makes it match the other sim run programs and GNU tools.
-
-	sim: update --version copyright year
-	Probably should have done this 11 months ago ...
-
-	sim: ppc: drop use of DATE & TIME
-	No other tool does this, sim or otherwise, and it makes the ppc build
-	non-reproducible.  Drop it to simplify & make reproducible.
-
-2022-11-03  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb: Fix issue with Clang CLI macros
-	Clang up to version 15 (current) adds macros that were defined in the
-	command line or by "other means", according to the Dwarf specification,
-	after the last DW_MACRO_end_file, instead of before the first
-	DW_MACRO_start_file, as the specification dictates.  When GDB reads the
-	macros after the last file is closed, the macros never end up "in scope"
-	and so we can't print them.  This has been submitted as a bug to Clang
-	developers (https://github.com/llvm/llvm-project/issues/54506), and PR
-	macros/29034 was opened for GDB to keep track of this.
-
-	Seeing as there is no expected date for it to be fixed, add a workaround
-	for all current versions of Clang.  The workaround detects when
-	the main file would be closed and if the producer is Clang, and turns
-	that operation into a noop, so we keep a reference to the current_file
-	as those macros are read.
-
-	A test case was added to confirm the functionality, and the KFAIL for
-	running gdb.base/macro-source-path when using clang.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29034
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-11-03  Nick Clifton  <nickc@redhat.com>
-
-	AVR Linker: Allow the start of the data region to be specified on the linker command line.  [Fix PR number in ChangeLog entry]
-		PR 29741
-		* scripttempl/avr.sc (__DATA_REGION_ORIGIN__): Define.  If a value
-		has not been provided on the command line then use DATA_ORIGIN.
-		(MEMORY): Use __DATA_REGION_ORIGIN__ as the start of the data region.
-
-	AVR Linker: Allow the start of the data region to specified on the command line.
-		PR 29471
-		* scripttempl/avr.sc (__DATA_REGION_ORIGIN__): Define.  If a value
-		has not been provided on the command line then use DATA_ORIGIN.
-		(MEMORY): Use __DATA_REGION_ORIGIN__ as the start of the data region.
-
-2022-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: move common flags to default AM_CPPFLAGS
-	Since all host files we compile use these settings, move them out of
-	libcommon.a and into the default AM_CPPFLAGS.  This has the effect of
-	dropping the custom per-target automake rules.  Currently it saves us
-	~150 lines, but since it's about ~8 lines per object, the overhead
-	will increase quite a bit as we merge more files into a single build.
-
-	This also changes the object output names, so we have to tweak the
-	rules that were pulling in the common objects when linking.
-
-2022-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: merge gnulib logic into the top-level
-	We aren't using this just yet, but we will, so make it available to
-	building of common sim files.
-
-	sim: common: remove unused include paths
-	A bunch of these paths don't include any headers, and most likely
-	never will, so there's no real need to keep them.  This will let
-	us harmonize paths with the top-level Makefile more easily, which
-	will in turn make it easier to move more compile steps there.
-
-2022-11-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-02  Christophe Lyon  <christophe.lyon@arm.com>
-
-	arm: PR 29739 Fix typo where ';' should not have been replaced with '@'
-	';' does not always indicate the start of a comment, and commit
-	8cb6e17571f3fb66ccd4fa19f881602542cd06fc incorrectly replaced 3
-	instances of ';' with '@' in expected diagnostics, leading to tests
-	failures.
-
-	This patch restores the original ';' as needed in these testcases.
-
-	Fixes bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29739
-
-2022-11-02  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: split CPPFLAGS between build & host
-	In order to merge more common/ files into the top-level, we need to
-	add more host flags to CPPFLAGS, and that conflicts with our current
-	use with build-time tools.  So split them apart like we do with all
-	other build flags to avoid the issue.
-
-	sim: h8300: switch to cpu for state
-	Rather than rely on pulling out the first cpu from the sim state
-	for cpu state, pass down the active cpu that's already available.
-
-	sim: common: change sim_{fetch,store}_register helpers to use void* buffers
-	When reading/writing arbitrary data to the system's memory, the unsigned
-	char pointer type doesn't make that much sense.  Switch it to void so we
-	align a bit with standard C library read/write functions, and to avoid
-	having to sprinkle casts everywhere.
-
-2022-11-02  Jon Turney  <jon.turney@dronecode.org.uk>
-
-	Fix Cygwin build after 20489cca
-	Update code under __CYGWIN__ which accesses inferior process information
-	which is now stored in windows_process_info rather than globals.
-
-2022-11-02  Jon Turney  <jon.turney@dronecode.org.uk>
-
-	Fix Cygwin build after bcb9251f
-	Absent _UNICODE being defined (which gdb's Makefile doesn't do),
-	windows.h will always define STARTUPINFO is as STARTUPINFOA, so this
-	cast isn't correct when create_process expects a STARTUPINFOW
-	parameter (i.e. in a Cygwin build).
-
-	Instead write this as &info_ex.StartupInfo (which is always of the
-	correct type).
-
-2022-11-02  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop bogus Tbyte
-	Prior to commit 1cb0ab18ad24 ("x86/Intel: restrict suffix derivation")
-	the Tbyte modifier on the FLDT and FSTPT templates was pointless, as
-	No_ldSuf would have prevented it being accepted. Due to the special
-	nature of LONG_DOUBLE_MNEM_SUFFIX said commit, however, has led to these
-	insns being accepted in Intel syntax mode even when "tbyte ptr" was
-	present. Restore original behavior by dropping Tbyte there. (Note that
-	these insns in principle should by marked AT&T syntax only, but since
-	they haven't been so far we probably shouldn't change that.)
-
-	x86: simplify expressions in update_imm()
-	Comparing the sum of the relevant .imm<N> fields against a constant imo
-	makes more obvious what is actually meant. It allows dropping of two
-	static variables, with a 3rd drop requiring two more minor adjustments
-	elsewhere, utilizing that "i" is zeroed first thing in md_assemble().
-	This also increases the chances of the compiler doing the calculations
-	all in registers.
-
-2022-11-02  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Fixed the missing $x+arch when adding odd paddings for alignment.
-	Consider the case,
-
-	.option arch, rv32i
-	.option norelax
-	.option arch, +c
-	.byte   1
-	.align  2
-	addi    a0, zero, 1
-
-	Assembler adds $d for the odd .byte, and then adds $x+arch for the
-	alignment.  Since norelax, riscv_add_odd_padding_symbol will add the
-	$d and $x for the odd alignment, but accidently remove the $x+arch because
-	it has the same address as $d.  Therefore, we will get the unexpected result
-	before applying this patch,
-
-	.byte   1            # $d
-	.align  2            # odd alignment, $xrv32ic replaced by $d + $x
-
-	After this patch, the expected result should be,
-
-	.byte   1            # $d
-	.align  2            # odd alignment, $xrv32ic replaced by $d + $xrv32ic
-
-	gas/
-	    * config/tc-riscv.c (make_mapping_symbol): If we are adding mapping symbol
-	    for odd alignment, then we probably will remove the $x+arch by accidently
-	    when it has the same address of $d.  Try to add the removed $x+arch back
-	    after the $d rather than just $x.
-	    (riscv_mapping_state): Updated since parameters of make_mapping_symbol are
-	    changed.
-	    (riscv_add_odd_padding_symbol): Likewise.
-	    (riscv_remove_mapping_symbol): Removed and moved the code into the
-	    riscv_check_mapping_symbols.
-	    (riscv_check_mapping_symbols): Updated.
-	    * testsuite/gas/riscv/mapping-dis.d: Updated and added new testcase.
-	    * testsuite/gas/riscv/mapping-symbols.d: Likewise.
-	    * testsuite/gas/riscv/mapping.s: Likewise.
-
-2022-11-02  Hu, Lin1  <lin1.hu@intel.com>
-
-	Support Intel MSRLIST
-	gas/ChangeLog:
-
-		* NEWS: Support Intel MSRLIST.
-		* config/tc-i386.c: Add msrlist.
-		* doc/c-i386.texi: Document .msrlist.
-		* testsuite/gas/i386/i386.exp: Add MSRLIST tests.
-		* testsuite/gas/i386/msrlist-inval.l: New test.
-		* testsuite/gas/i386/msrlist-inval.s: Ditto.
-		* testsuite/gas/i386/x86-64-msrlist-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-msrlist.d: Ditto.
-		* testsuite/gas/i386/x86-64-msrlist.s: Ditto.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (X86_64_0F01_REG_0_MOD_3_RM_6_P_1): New.
-		(X86_64_0F01_REG_0_MOD_3_RM_6_P_3): Ditto.
-		(prefix_table): New entry for msrlist.
-		(x86_64_table): Add X86_64_0F01_REG_0_MOD_3_RM_6_P_1
-		and X86_64_0F01_REG_0_MOD_3_RM_6_P_3.
-		* i386-gen.c (cpu_flag_init): Add CPU_MSRLIST_FLAGS
-		and CPU_ANY_MSRLIST_FLAGS.
-		* i386-init.h: Regenerated.
-		* i386-opc.h (CpuMSRLIST): New.
-		(i386_cpu_flags): Add cpumsrlist.
-		* i386-opc.tbl: Add MSRLIST instructions.
-		* i386-tbl.h: Regenerated.
-
-2022-11-02  Hu, Lin1  <lin1.hu@intel.com>
-
-	Support Intel WRMSRNS
-	gas/ChangeLog:
-
-	        * NEWS: Support Intel WRMSRNS.
-	        * config/tc-i386.c: Add wrmsrns.
-	        * doc/c-i386.texi: Document .wrmsrns.
-	        * testsuite/gas/i386/i386.exp: Add WRMSRNS tests.
-	        * testsuite/gas/i386/wrmsrns-intel.d: New test.
-	        * testsuite/gas/i386/wrmsrns.d: Ditto.
-	        * testsuite/gas/i386/wrmsrns.s: Ditto.
-	        * testsuite/gas/i386/x86-64-wrmsrns-intel.d: Ditto.
-	        * testsuite/gas/i386/x86-64-wrmsrns.d: Ditto.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (PREFIX_0F01_REG_0_MOD_3_RM_6): New.
-		(prefix_table): Add PREFIX_0F01_REG_0_MOD_3_RM_6.
-		(rm_table): New entry for wrmsrns.
-		* i386-gen.c (cpu_flag_init): Add CPU_WRMSRNS_FLAGS
-		and CPU_ANY_WRMSRNS_FLAGS.
-		(cpu_flags): Add CpuWRMSRNS.
-	        * i386-init.h: Regenerated.
-	        * i386-opc.h (CpuWRMSRNS): New.
-		(i386_cpu_flags): Add cpuwrmsrns.
-	        * i386-opc.tbl: Add WRMSRNS instructions.
-	        * i386-tbl.h: Regenerated.
-
-2022-11-02  Kong Lingling  <lingling.kong@intel.com>
-
-	Add handler for more i386_cpu_flags
-	gas/ChangeLog:
-
-		* config/tc-i386.c (cpu_flags_all_zero): Add new ARRAY_SIZE handle.
-		(cpu_flags_equal): Ditto.
-		(cpu_flags_and): Ditto.
-		(cpu_flags_or): Ditto.
-		(cpu_flags_and_not): Ditto.
-
-2022-11-02  Haochen Jiang  <haochen.jiang@intel.com>
-
-	Support Intel CMPccXADD
-	gas/ChangeLog:
-
-		* NEWS: Support Intel CMPccXADD.
-		* config/tc-i386.c: Add cmpccxadd.
-		(build_modrm_byte): Add operations for Vex.VVVV reg
-		on operand 0 while have memory operand.
-		* doc/c-i386.texi: Document .cmpccxadd.
-		* testsuite/gas/i386/i386.exp: Run CMPccXADD tests.
-		* testsuite/gas/i386/cmpccxadd-inval.s: New test.
-		* testsuite/gas/i386/cmpccxadd-inval.l: Ditto.
-		* testsuite/gas/i386/x86-64-cmpccxadd-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-cmpccxadd.s: Ditto.
-		* testsuite/gas/i386/x86-64-cmpccxadd.d: Ditto.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (Mdq): New.
-		(X86_64_VEX_0F38E0): Ditto.
-		(X86_64_VEX_0F38E1): Ditto.
-		(X86_64_VEX_0F38E2): Ditto.
-		(X86_64_VEX_0F38E3): Ditto.
-		(X86_64_VEX_0F38E4): Ditto.
-		(X86_64_VEX_0F38E5): Ditto.
-		(X86_64_VEX_0F38E6): Ditto.
-		(X86_64_VEX_0F38E7): Ditto.
-		(X86_64_VEX_0F38E8): Ditto.
-		(X86_64_VEX_0F38E9): Ditto.
-		(X86_64_VEX_0F38EA): Ditto.
-		(X86_64_VEX_0F38EB): Ditto.
-		(X86_64_VEX_0F38EC): Ditto.
-		(X86_64_VEX_0F38ED): Ditto.
-		(X86_64_VEX_0F38EE): Ditto.
-		(X86_64_VEX_0F38EF): Ditto.
-		(x86_64_table): Add X86_64_VEX_0F38E0, X86_64_VEX_0F38E1,
-		X86_64_VEX_0F38E2, X86_64_VEX_0F38E3, X86_64_VEX_0F38E4,
-		X86_64_VEX_0F38E5, X86_64_VEX_0F38E6, X86_64_VEX_0F38E7,
-		X86_64_VEX_0F38E8, X86_64_VEX_0F38E9, X86_64_VEX_0F38EA,
-		X86_64_VEX_0F38EB, X86_64_VEX_0F38EC, X86_64_VEX_0F38ED,
-		X86_64_VEX_0F38EE, X86_64_VEX_0F38EF.
-		* i386-gen.c (cpu_flag_init): Add CPU_CMPCCXADD_FLAGS and
-		CPU_ANY_CMPCCXADD_FLAGS.
-		(cpu_flags): Add CpuCMPCCXADD.
-		* i386-init.h: Regenerated.
-		* i386-opc.h (CpuCMPCCXADD): New.
-		(i386_cpu_flags): Add cpucmpccxadd. Comment unused for it is actually 0.
-		* i386-opc.tbl: Add Intel CMPccXADD instructions.
-		* i386-tbl.h: Regenerated.
-
-2022-11-02  Cui,Lili  <lili.cui@intel.com>
-
-	Support Intel AVX-VNNI-INT8
-	gas/
-	        * NEWS: Support Intel AVX-VNNI-INT8.
-		* config/tc-i386.c: Add avx_vnni_int8.
-		* doc/c-i386.texi: Document avx_vnni_int8.
-		* testsuite/gas/i386/avx-vnni-int8-intel.d: New file.
-		* testsuite/gas/i386/avx-vnni-int8.d: Likewise.
-		* testsuite/gas/i386/avx-vnni-int8.s: Likewise.
-		* testsuite/gas/i386/x86-64-avx-vnni-int8-intel.d: Likewise.
-		* testsuite/gas/i386/x86-64-avx-vnni-int8.d: Likewise.
-		* testsuite/gas/i386/x86-64-avx-vnni-int8.s: Likewise.
-		* testsuite/gas/i386/i386.exp: Run AVX VNNI INT8 tests.
-
-	opcodes/
-		* i386-dis.c: (PREFIX_VEX_0F3850) New.
-		(PREFIX_VEX_0F3851): Likewise.
-		(VEX_W_0F3850_P_0): Likewise.
-		(VEX_W_0F3850_P_1): Likewise.
-		(VEX_W_0F3850_P_2): Likewise.
-		(VEX_W_0F3850_P_3): Likewise.
-		(VEX_W_0F3851_P_0): Likewise.
-		(VEX_W_0F3851_P_1): Likewise.
-		(VEX_W_0F3851_P_2): Likewise.
-		(VEX_W_0F3851_P_3): Likewise.
-		(VEX_W_0F3850): Delete.
-		(VEX_W_0F3851): Likewise.
-		(prefix_table): Add PREFIX_VEX_0F3850 and PREFIX_VEX_0F3851.
-		(vex_table): Add PREFIX_VEX_0F3850 and PREFIX_VEX_0F3851,
-		delete VEX_W_0F3850 and VEX_W_0F3851.
-		(vex_w_table): Add VEX_W_0F3850_P_0, VEX_W_0F3850_P_1, VEX_W_0F3850_P_2
-		VEX_W_0F3850_P_3, VEX_W_0F3851_P_0, VEX_W_0F3851_P_1, VEX_W_0F3851_P_2
-		and VEX_W_0F3851_P_3, delete VEX_W_0F3850 and VEX_W_0F3851.
-		* i386-gen.c: (cpu_flag_init): Add CPU_AVX_VNNI_INT8_FLAGS
-		and CPU_ANY_AVX_VNNI_INT8_FLAGS.
-		(cpu_flags): Add CpuAVX_VNNI_INT8.
-		* i386-opc.h (CpuAVX_VNNI_INT8): New.
-		* i386-opc.tbl: Add Intel AVX_VNNI_INT8 instructions.
-		* i386-init.h: Regenerated.
-		* i386-tbl.h: Likewise.
-
-2022-11-02  Hongyu Wang  <hongyu.wang@intel.com>
-	    Haochen Jiang  <haochen.jiang@intel.com>
-
-	Support Intel AVX-IFMA
-	x86: Support Intel AVX-IFMA
-
-	Intel AVX IFMA instructions are marked with CpuVEX_PREFIX, which is
-	cleared by default.  Without {vex} pseudo prefix, Intel IFMA instructions
-	are encoded with EVEX prefix.  {vex} pseudo prefix will turn on VEX
-	encoding for Intel IFMA instructions.
-
-	gas/
-
-		* NEWS: Support Intel AVX-IFMA.
-		* config/tc-i386.c (cpu_arch): Add avx_ifma.
-		* doc/c-i386.texi: Document .avx_ifma.
-		* testsuite/gas/i386/avx-ifma.d: New file.
-		* testsuite/gas/i386/avx-ifma-intel.d: Likewise.
-		* testsuite/gas/i386/avx-ifma.s: Likewise.
-		* testsuite/gas/i386/x86-64-avx-ifma.d: Likewise.
-		* testsuite/gas/i386/x86-64-avx-ifma-intel.d: Likewise.
-		* testsuite/gas/i386/x86-64-avx-ifma.s: Likewise.
-		* testsuite/gas/i386/i386.exp: Run AVX IFMA tests.
-
-	opcodes/
-
-		* i386-dis.c (PREFIX_VEX_0F38B4): New.
-		(PREFIX_VEX_0F38B5): Likewise.
-		(VEX_W_0F38B4_P_2): Likewise.
-		(VEX_W_0F38B5_P_2): Likewise.
-		(prefix_table): Add PREFIX_VEX_0F38B4 and PREFIX_VEX_0F38B5.
-		(vex_table): Add VEX_W_0F38B4_P_2 and VEX_W_0F38B5_P_2.
-		* i386-dis-evex.h: Fold AVX512IFMA entries to AVX-IFMA.
-		* i386-gen.c (cpu_flag_init): Clear the CpuAVX_IFMA bit in
-		CPU_UNKNOWN_FLAGS. Add CPU_AVX_IFMA_FLGAS and
-		CPU_ANY_AVX_IFMA_FLAGS. Add CpuAVX_IFMA to CPU_AVX2_FLAGS.
-		(cpu_flags): Add CpuAVX_IFMA.
-		* i386-opc.h (CpuAVX_IFMA): New.
-		(i386_cpu_flags): Add cpuavx_ifma.
-		* i386-opc.tbl: Add Intel AVX IFMA instructions.
-		* i386-init.h: Regenerated.
-		* i386-tbl.h: Likewise.
-
-2022-11-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-11-01  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/arm: don't pass non-string literal to printf like function
-	The earlier commit:
-
-	  commit 6576bffe6cbbb53c5756b2fccd2593ba69b74cdf
-	  Date:   Thu Jul 7 13:43:45 2022 +0100
-
-	      opcodes/arm: add disassembler styling for arm
-
-	introduced two places where a register name was passed as the format
-	string to the disassembler's fprintf_styled_func callback.  This will
-	cause a warning from some compilers, like this:
-
-	  ../../binutils-gdb/opcodes/arm-dis.c: In function ‘print_mve_vld_str_addr’:
-	  ../../binutils-gdb/opcodes/arm-dis.c:6005:3: error: format not a string literal and no format arguments [-Werror=format-security]
-	   6005 |   func (stream, dis_style_register, arm_regnames[gpr]);
-	        |   ^~~~
-
-	This commit fixes these by using "%s" as the format string.
-
-2022-11-01  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/arm: silence compiler warning about uninitialized variable use
-	The earlier commit:
-
-	  commit 6576bffe6cbbb53c5756b2fccd2593ba69b74cdf
-	  Date:   Thu Jul 7 13:43:45 2022 +0100
-
-	      opcodes/arm: add disassembler styling for arm
-
-	was causing a compiler warning about a possible uninitialized variable
-	usage within opcodes/arm-dis.c.
-
-	The problem is in print_mve_unpredictable, and relates to the reason
-	variable, which is set by a switch table.
-
-	Currently the switch table does cover every valid value, though there
-	is no default case.  The variable switched on is passed in as an
-	argument to the print_mve_unpredictable function.
-
-	Looking at how print_mve_unpredictable is used, there is only one use,
-	the second argument is the one that is used for the switch table,
-	looking at how this argument is set, I don't believe it is possible
-	for this argument to take an invalid value.
-
-	So, I think the compiler warning is a false positive.  As such, my
-	proposed solution is to initialize the reason variable to the string
-	"??", this will silence the warning, and the "??" string should never
-	end up being printed.
-
-2022-11-01  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/arm: add disassembler styling for arm
-	This commit adds disassembler styling for the ARM architecture.
-
-	The ARM disassembler is driven by several instruction tables,
-	e.g. cde_opcodes, coprocessor_opcodes, neon_opcodes, etc
-
-	The type for elements in each table can vary, but they all have one
-	thing in common, a 'const char *assembler' field.  This field
-	contains a string that describes the assembler syntax of the
-	instruction.
-
-	Embedded within that assembler syntax are various escape characters,
-	prefixed with a '%'.  Here's an example of a very simple instruction
-	from the arm_opcodes table:
-
-	  "pld\t%a"
-
-	The '%a' indicates a particular type of operand, the function
-	print_insn_arm processes the arm_opcodes table, and includes a switch
-	statement that handles the '%a' operand, and takes care of printing
-	the correct value for that instruction operand.
-
-	It is worth noting that there are many print_* functions, each
-	function handles a single *_opcodes table, and includes its own switch
-	statement for operand handling.  As a result, every *_opcodes table
-	uses a different mapping for the operand escape sequences.  This means
-	that '%a' might print an address for one *_opcodes table, but in a
-	different *_opcodes table '%a' might print a register operand.
-
-	Notice as well that in our example above, the instruction mnemonic
-	'pld' is embedded within the assembler string.  Some instructions also
-	include comments within the assembler string, for example, also from
-	the arm_opcodes table:
-
-	  "nop\t\t\t@ (mov r0, r0)"
-
-	here, everything after the '@' is a comment that is displayed at the
-	end of the instruction disassembly.
-
-	The next complexity is that the meaning of some escape sequences is
-	not necessarily fixed.  Consider these two examples from arm_opcodes:
-
-	  "ldrex%c\tr%12-15d, [%16-19R]"
-	  "setpan\t#%9-9d"
-
-	Here, the '%d' escape is used with a bitfield modifier, '%12-15d' in
-	the first instruction, and '%9-9d' in the second instruction, but,
-	both of these are the '%d' escape.
-
-	However, in the first instruction, the '%d' is used to print a
-	register number, notice the 'r' immediately before the '%d'.  In the
-	second instruction the '%d' is used to print an immediate, notice the
-	'#' just before the '%d'.
-
-	We have two problems here, first, the '%d' needs to know if it should
-	use register style or immediate style, and secondly, the 'r' and '#'
-	characters also need to be styled appropriately.
-
-	The final thing we must consider is that some escape codes result in
-	more than just a single operand being printed, for example, the '%q'
-	operand as used in arm_opcodes ends up calling arm_decode_shift, which
-	can print a register name, a shift type, and a shift amount, this
-	could end up using register, sub-mnemonic, and immediate styles, as
-	well as the text style for things like ',' between the different
-	parts.
-
-	I propose a three layer approach to adding styling:
-
-	(1) Basic state machine:
-
-	    When we start printing an instruction we should maintain the idea
-	    of a 'base_style'.  Every character from the assembler string will
-	    be printed using the base_style.
-
-	   The base_style will start as mnemonic, as each instruction starts
-	   with an instruction mnemonic.  When we encounter the first '\t'
-	   character, the base_style will change to text.  When we encounter
-	   the first '@' the base_style will change to comment_start.
-
-	   This simple state machine ensures that for simple instructions the
-	   basic parts, except for the operands themselves, will be printed in
-	   the correct style.
-
-	(2) Simple operand styling:
-
-	    For operands that only have a single meaning, or which expand to
-	    multiple parts, all of which have a consistent meaning, then I
-	    will simply update the operand printing code to print the operand
-	    with the correct style.  This will cover a large number of the
-	    operands, and is the most consistent with how styling has been
-	    added to previous architectures.
-
-	(3) New styling syntax in assembler strings:
-
-	    For cases like the '%d' that I describe above, I propose adding a
-	    new extension to the assembler syntax.  This extension will allow
-	    me to temporarily change the base_style.  Operands like '%d', will
-	    then print using the base_style rather than using a fixed style.
-
-	    Here are the two examples from above that use '%d', updated with
-	    the new syntax extension:
-
-	      "ldrex%c\t%{R:r%12-15d%}, [%16-19R]"
-	      "setpan\t%{I:#%9-9d%}"
-
-	    The syntax has the general form '%{X:....%}' where the 'X'
-	    character changes to indicate a different style.  In the first
-	    instruction I use '%{R:...%}' to change base_style to the register
-	    style, and in the second '%{I:...%}' changes base_style to
-	    immediate style.
-
-	    Notice that the 'r' and '#' characters are included within the new
-	    style group, this ensures that these characters are printed with
-	    the correct style rather than as text.
-
-	    The function decode_base_style maps from character to style.  I've
-	    included a character for each style for completeness, though only
-	    a small number of styles are currently used.
-
-	I have updated arm-dis.c to the above scheme, and checked all of the
-	tests in gas/testsuite/gas/arm/, and the styling looks reasonable.
-
-	There are no regressions on the ARM gas/binutils/ld tests that I can
-	see, so I don't believe I've changed the output layout at all.  There
-	were two binutils tests for which I needed to force the disassembler
-	styling off.
-
-	I can't guarantee that I've not missed some untested corners of the
-	disassembler, or that I might have just missed some incorrectly styled
-	output when reviewing the test results, but I don't believe I've
-	introduced any changes that could break the disassembler - the worst
-	should be some aspect is not styled correctly.
-
-2022-11-01  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/arm: use '@' consistently for the comment character
-	Looking at the ARM disassembler output, every comment seems to start
-	with a ';' character, so I assumed this was the correct character to
-	start an assembler comment.
-
-	I then spotted a couple of places where there was no ';', but instead,
-	just a '@' character.  I thought that this was a case of a missing
-	';', and proposed a patch to add the missing ';' characters.
-
-	Turns out I was wrong, '@' is actually the ARM assembler comment
-	character, while ';' is the statement separator.  Thus this:
-
-	    nop    ;@ comment
-
-	is two statements, the first is the 'nop' instruction, while the
-	second contains no instructions, just the '@ comment' comment text.
-
-	This:
-
-	    nop    @ comment
-
-	is a single 'nop' instruction followed by a comment.  And finally,
-	this:
-
-	    nop    ; comment
-
-	is two statements, the first contains the 'nop' instruction, while the
-	second contains the instruction 'comment', which obviously isn't
-	actually an instruction at all.
-
-	Why this matters is that, in the next commit, I would like to add
-	libopcodes syntax styling support for ARM.
-
-	The question then is how should the disassembler style the three cases
-	above?
-
-	As '@' is the actual comment start character then clearly the '@' and
-	anything after it can be styled as a comment.  But what about ';' in
-	the second example?  Style as text?  Style as a comment?
-
-	And the third example is even harder, what about the 'comment' text?
-	Style as an instruction mnemonic?  Style as text?  Style as a comment?
-
-	I think the only sensible answer is to move the disassembler to use
-	'@' consistently as its comment character, and remove all the uses of
-	';'.
-
-	Then, in the next commit, it's obvious what to do.
-
-	There's obviously a *lot* of tests that get updated by this commit,
-	the only actual code changes are in opcodes/arm-dis.c.
-
-2022-11-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-31  Tom Tromey  <tromey@adacore.com>
-
-	Add missing TYPE_CODE_* constants to Python
-	A user noticed that TYPE_CODE_FIXED_POINT was not exported by the gdb
-	Python layer.  This patch fixes the bug, and prevents future
-	occurences of this type of bug.
-
-2022-10-31  Carl Love  <cel@us.ibm.com>
-
-	Remove REPARSE condition to force hardware resource checking when updating watchpoints
-	Currently the resource checking is done if REPARSE is true.  The hardware
-	watchpoint resource checking in update_watchpoint needs to be redone on
-	each call to function update_watchpoints as the value chain may have
-	changed.  The number of hardware registers needed for a watchpoint can
-	change if the variable being watched changes.  This situation occurs in
-	this test when watching variable **global_ptr_ptr.  Initially when the
-	watch command is issued, only two addresses need to be watched as
-	**global_ptr_ptr has not yet been initialized.  Once the value of
-	**global_ptr_ptr is initialized the locations to be tracked increase to
-	three addresses.  However, update_watchpoints is not called again with
-	REPARSE set to 1 to force the resource checking to be redone.  When the
-	test is run on Power 10, an internal gdb error occurs when the PowerPC
-	routine tries to setup the three hardware watchpoint address since the hw
-	only has two hardware watchpoint registers.  The error occurs because the
-	resource checking was not redone in update_watchpoints after
-	**global_ptr_ptr changed.
-
-	The following descibes the situation in detail that occurs on Power 10 with
-	gdb running on the binary for gdb.base/watchpoint.c.
-
-	1 break func4
-	2 run
-	3 watch *global_ptr
-	4 next      execute source code:   buf[0] = 3;
-	5 next      execute source code:   global_ptr = buf;
-	6 next      execute source code:   buf[0] = 7;
-	7 delete 2  (delete watch *global_ptr)
-	8 watch **global_ptr_ptr
-	9 next       execute source code:   buf[1] = 5;
-	10 next      global_ptr_ptr = &global_ptr;
-	11 next      buf[0] = 9;
-
-	In step 8, the the watch **global_ptr_prt command calls update_watchpoint
-	in breakpoint.c with REPARSE set to 1.  The function update_watchpoint
-	calls can_use_hardware_watchpoint to see if there are enough
-	resources available to add the watchpoint since REPARSE is set to 1.  At
-	this point, **global_ptr_ptr has not been initialized so only two addresses
-	are watched.  The val_chain contains the address for **global_ptr_ptr and 0
-	since **global_ptr_ptr has not been initialized.  The update_watchpoint
-	updates the breakpoint list as follows:
-
-	  breakpoint 0
-	   loc 0: b->address = 0x100009c0
-	  breakpoint 1
-	   loc 1: b->address = 0x7ffff7f838a0
-	  breakpoint 2
-	   loc 2: b->address = 0x7ffff7b7fc54
-	  breakpoint 3
-	   loc 3: b->address = 0x7ffff7a5788c
-	  breakpoint 4
-	   loc 4: b->address = 0x0         <-- location pointed to by global_ptr_ptr
-	   loc 5: b->address = 0x100200b8  <-- global_ptr_ptr watchpoint
-	  breakpoint 5
-	   loc 6: b->address = 0x7ffff7b7fc54
-
-	In step 10, the next command executes the source code
-	global_ptr_ptr = &global_ptr.  This changes the set of locations to be
-	watched for the watchpoint **global_ptr_prt.  The list of addresses for the
-	breakpoint consist of the address for global_ptr_prt, global_ptr and buf.
-	The breakpoint list gets updated by update_watchpoint as follows:
-
-	  breakpoint 0
-	   loc 0: b->address = 0x100009c0
-	  breakpoint 1
-	   loc 1: b->address = 0x7ffff7f838a0
-	  breakpoint 2
-	   loc 2: b->address = 0x7ffff7b7fc54
-	  breakpoint 3
-	   loc 3: b->address = 0x7ffff7a5788c
-	  breakpoint 4
-	   loc 4: b->address = 0x10020050           buf
-	   loc 5: b->address = 0x100200b0           watch *global_ptr
-	   loc 6: b->address = 0x100200b8           watch **global_ptr_ptr
-	  breakpoint 5
-	   loc 7: b->address = 0x7ffff7b7fc54
-	  breakpoint 6
-
-	However, the hardware resource checking was not redone because
-	update_breakpoint was called with REPARSE equal to  0.
-
-	Step 11, execute the third next command.  The function
-	ppc_linux_nat_target::low_prepare_to_resume() attempts a ptrace
-	call to setup each of the three address for breakpoint 4.  The slot
-	value returned for the third ptrace call is -1 indicating an error
-	because there are only two hardware watchpoint registers available on
-	Power 10.
-
-	This patch removes just the statement "if (reparse)" in function
-	update_watchpoint to force the resources to be rechecked on every call to
-	the function.  This ensures that any changes to the val_chain resulting
-	in needing more resources then available will be caught.
-
-	The patch has been tested on Power 8, Power 10 and X86-64.  Note the patch
-	has no effect on Power 9 since hardware watchpoint support is disabled on
-	that processor.
-
-2022-10-31  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, add support for recording pipe2 system call.
-	Test gdb.reverse/pipe-reverse.exp fails on Power 10 running the fedora 36
-	distro.  The gdb record error message is:
-
-	  Process record and replay target doesn't support syscall number 317.
-
-	System call 317 on PowerPC maps to the pipe2 system call.
-
-	This patch adds support for the missing pipe2 system call for PowerPC.
-
-	Patch fixes the test failure in gdb.reverse/pipe-reverse.exp.
-
-	The patch has been tested on Power 10 with no regression failures.
-
-2022-10-31  Jan Beulich  <jbeulich@suse.com>
-
-	x86: minor improvements to optimize_imm() (part III)
-	Earlier tidying still missed an opportunity: There's no need for the
-	"anyimm" static variable. Instead of using it in the loop to mask
-	"allowed" (which is necessary to satisfy operand_type_or()'s assertions)
-	simply use "mask", requiring it to be calculated first. That way the
-	post-loop masking by "mask" ahead of the operand_type_all_zero() can be
-	dropped.
-
-2022-10-31  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: reg: constify store helper
-	These functions only read from memory, so mark the pointer as const.
-
-	sim: constify various integer readers
-	These functions only read from memory, so mark the pointer as const.
-
-	sim: cgen: constify GETT helpers
-	These functions only read from memory, so mark the pointer as const.
-
-	sim: common: change sim_read & sim_write to use void* buffers
-	When reading/writing arbitrary data to the system's memory, the unsigned
-	char pointer type doesn't make that much sense.  Switch it to void so we
-	align a bit with standard C library read/write functions, and to avoid
-	having to sprinkle casts everywhere.
-
-2022-10-31  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Silence GCC 12 warning on tc-i386.c
-	Silence GCC 12 warning on tc-i386.c:
-
-	gas/config/tc-i386.c: In function ‘md_assemble’:
-	gas/config/tc-i386.c:5039:16: error: too many arguments for format [-Werror=format-extra-args]
-	 5039 |     as_warn (_("only support RIP-relative address"), i.tm.name);
-
-		* config/tc-i386.c (md_assemble): Print mnemonic in RIP-relative
-		warning.
-		* estsuite/gas/i386/x86-64-prefetchi-warn.l: Updated.
-
-2022-10-31  Tom Tromey  <tromey@adacore.com>
-
-	Use enum for gdbarch's call_dummy_location
-	This changes gdbarch to use an enum for call_dummy_location, providing
-	a little more type safety.
-
-	Inline initialization of gdbarch members
-	This changes gdbarch to use the "predefault" to initialize its members
-	inline.  This required changing a couple of the Value instantiations
-	to avoid a use of "gdbarch" during initialization, but on the whole I
-	think this is better -- it removes a hidden ordering dependency.
-
-2022-10-31  Tom Tromey  <tromey@adacore.com>
-
-	Fix regression in pointer-to-member printing
-	PR c++/29243 points out that "info func" on a certain C++ executable
-	will cause an infinite loop in gdb.
-
-	I tracked this down to a bug introduced by commit 6b5a7bc76 ("Handle
-	member pointers directly in generic_value_print").  Before this
-	commit, the C++ code to print a member pointer would wind up calling
-	value_print_scalar_formatted; but afterward it simply calls
-	generic_value_print and gets into a loop.
-
-	This patch restores the previous behavior and adds a regression test.
-
-2022-10-31  Nick Clifton  <nickc@redhat.com>
-
-	Updated Romainain translation for the binutils sub-directory and Swedish translations for the ld and opcodes sub-directories.
-
-2022-10-31  Cui, Lili  <lili.cui@intel.com>
-
-	Support Intel PREFETCHI
-	gas/ChangeLog:
-
-		* NEWS: Add support for Intel PREFETCHI instruction.
-		* config/tc-i386.c (load_insn_p): Use prefetch* to fold all prefetches.
-		(md_assemble): Add warning for illegal input of PREFETCHI.
-		* doc/c-i386.texi: Document .prefetchi.
-		* testsuite/gas/i386/i386.exp: Run PREFETCHI tests.
-		* testsuite/gas/i386/x86-64-lfence-load.d: Add PREFETCHI.
-		* testsuite/gas/i386/x86-64-lfence-load.s: Likewise.
-		* testsuite/gas/i386/x86-64-prefetch.d: New test.
-		* testsuite/gas/i386/x86-64-prefetchi-intel.d: Likewise.
-		* testsuite/gas/i386/x86-64-prefetchi-inval-register.d: Likewise..
-		* testsuite/gas/i386/x86-64-prefetchi-inval-register.s: Likewise.
-		* testsuite/gas/i386/x86-64-prefetchi-warn.l: Likewise.
-		* testsuite/gas/i386/x86-64-prefetchi-warn.s: Likewise.
-		* testsuite/gas/i386/x86-64-prefetchi.d: Likewise.
-		* testsuite/gas/i386/x86-64-prefetchi.s: Likewise.
-
-	opcodes/ChangeLog:
-
-		* i386-dis.c (reg_table): Add MOD_0F18_REG_6 and MOD_0F18_REG_7
-		(x86_64_table): Add X86_64_0F18_REG_6_MOD_0 and X86_64_0F18_REG_7_MOD_0.
-		(mod_table): Add MOD_0F18_REG_6 and MOD_0F18_REG_7.
-		(prefix_table): Add PREFIX_0F18_REG_6_MOD_0_X86_64 and
-		PREFIX_0F18_REG_7_MOD_0_X86_64.
-		(PREFETCHI_Fixup): New.
-		* i386-gen.c (cpu_flag_init): Add CPU_PREFETCHI_FLAGS.
-		(cpu_flags): Add CpuPREFETCHI.
-		* i386-opc.h (CpuPREFETCHI): New.
-		(i386_cpu_flags): Add cpuprefetchi.
-		* i386-opc.tbl: Add Intel PREFETCHI instructions.
-		* i386-init.h: Regenerated.
-		* i386-tbl.h: Likewise.
-
-2022-10-31  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: fix gdb.cp/converts.exp to run with clang
-	Clang attempts to minimize the size of the debug-info by not adding
-	complete information about types that aren't constructed in a given
-	file.  Specifically, this meant that there was minimal information about
-	class B in the test gdb.cp/converts.exp.  To fix this, we just need to
-	construct any object of type B in that file.
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-10-31  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: add XFAIL to gdb.cp/ptype-flags.exp when using clang
-	When running gdb.cp/ptype-flags.exp using Clang, we get an unexpected
-	failure when printing the type of a class with an internal typedef. This
-	happens because Clang doesn't add accessibility information for typedefs
-	inside classes (see https://github.com/llvm/llvm-project/issues/57608
-	for more info). To help with Clang testing, an XFAIL was added to this
-	test.
-
-2022-10-31  Yoshinori Sato  <ysato@users.sourceforge.jp>
-
-	RX assembler: switch arguments of thw MVTACGU insn.
-
-2022-10-31  Nick Clifton  <nickc@redhat.com>
-
-	objdump: Add configure time option to enable colored disassembly output by default.
-		PR 29457
-		* configure.ac: Add --enable-colored-disassembly.
-		* objdump.c: Add --disassembler-color=terminal.
-		* doc/binutils.texi (objdump): Document the new option.
-		* NEWS: Mention new feature.
-		* config.in: Regenerate in.
-		* configure: Regenerate.
-
-2022-10-31  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Add publics stream to PDB files
-
-	ld: Add section header stream to PDB files
-
-	ld: Use %E in einfo in pdb.c
-	Resubmission, taking into account
-	https://sourceware.org/pipermail/binutils/2022-October/123948.html.
-
-2022-10-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-30  Alan Modra  <amodra@gmail.com>
-
-	Pool section entries for DWP version 1
-	Ref: https://gcc.gnu.org/wiki/DebugFissionDWP?action=recall&rev=3
-
-	Fuzzers have found a weakness in the code stashing pool section
-	entries.  With random nonsensical values in the index entries (rather
-	than each index pointing to its own set distinct from other sets),
-	it's possible to overflow the space allocated, losing the NULL
-	terminator.  Without a terminator, find_section_in_set can run off the
-	end of the shndx_pool buffer.  Fix this by scanning the pool directly.
-
-	binutils/
-		* dwarf.c (add_shndx_to_cu_tu_entry): Delete range check.
-		(end_cu_tu_entry): Likewise.
-		(process_cu_tu_index): Fill shndx_pool by directly scanning
-		pool, rather than indirectly from index entries.
-
-2022-10-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-29  Maciej W. Rozycki  <macro@embecosm.com>
-
-	gdb/testsuite: Wrap `param_integer_error' in gdb.guile/scm-parameter.exp
-	Wrap an overlong line in the definition of `param_integer_error' in
-	gdb.guile/scm-parameter.exp.  No functional change.
-
-2022-10-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/sh: Remove redundant function declaration
-	Clang generates a warning if there is a function declaration/definition
-	with zero arguments.  Such declarations/definitions without a prototype (an
-	argument list) are deprecated forms of indefinite arguments
-	("-Wdeprecated-non-prototype").  On the default configuration, it causes a
-	build failure (unless "--disable-werror" is specified).
-
-	But there is another issue.  This function declaration in sim/sh/interp.c
-	is completely redundant.  This commit just removes that declaration.
-
-2022-10-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/m32r: Initialize "list" variable
-	The variable "list" is only initialized when arg1 > 0 and when arg1 == 0,
-	an uninitialized value is passed to translate_endian_h2t function.
-
-	Although this behavior is harmless, this commit adds initialization to avoid
-	a GCC warning ("-Wmaybe-uninitialized").
-
-2022-10-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/erc32: Use int32_t as IRQ callback argument
-	Clang generates a warning if an argument is passed to a function without
-	prototype (zero arguments, even without (void)).  Such calls are deprecated
-	forms of indefinite arguments passing ("-Wdeprecated-non-prototype").
-	On the default configuration, it (somehow) doesn't cause a build failure but
-	a warning is generated.
-
-	But because the cause is the same as the issue the author fixed in
-	"sim/erc32: Use int32_t as event callback argument", it would be better to
-	fix it now to prevent problems in the future.
-
-	To fix the issue, this commit makes struct irqcall to use int32_t as a
-	callback (callback) argument of an IRQ.
-
-2022-10-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/erc32: Use int32_t as event callback argument
-	Clang generates a warning if an argument is passed to a function without
-	prototype (zero arguments, even without (void)).  Such calls are deprecated
-	forms of indefinite arguments passing ("-Wdeprecated-non-prototype").
-	On the default configuration, it causes a build failure (unless
-	"--disable-werror" is specified).
-
-	To fix that, this commit makes struct evcell to use int32_t as a callback
-	(cfunc) argument of an event.  int32_t is chosen because "event" function
-	accepts "int32_t arg".
-
-2022-10-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/erc32: Insert void parameter
-	Clang generates a warning if there is a function declaration/definition
-	with zero arguments.  Such declarations/definitions without a prototype (an
-	argument list) are deprecated forms of indefinite arguments
-	("-Wdeprecated-non-prototype").  On the default configuration, it causes a
-	build failure (unless "--disable-werror" is specified).
-
-	This commit replaces () with (void) to avoid this warning.
-
-2022-10-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use ssh -t in remote-*.exp
-	When running test-case gdb.server/multi-ui-errors.exp on target board
-	remote-gdbserver-on-localhost.exp, I run into:
-	...
-	(gdb) PASS: gdb.server/multi-ui-errors.exp: connect to gdbserver
-	continue^M
-	Continuing.^M
-	PASS: gdb.server/multi-ui-errors.exp: continue - extra UI
-	Remote debugging from host ::1, port 35466^M
-	FAIL: gdb.server/multi-ui-errors.exp: ensure inferior is running
-	...
-
-	The problem is that the target board uses ssh -T, which fails to guarantee
-	that output from the inferior will be available.
-
-	Fix this by copying proc ${board}_spawn from local-remote-host.exp, which
-	ensures using ssh -t.  [ It would be nice to define an ssh base board to
-	get rid of the copies, but I'm not addressing that in this commit. ]
-
-	Likewise for target board remote-stdio-gdbserver.exp.
-
-	Tested on x86_64-linux.
-
-2022-10-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/multi-ui-errors.exp with local-remote-host-notty
-	With test-case gdb.server/multi-ui-errors.exp and host board
-	local-remote-host-notty, I run into:
-	...
-	(gdb) PASS: gdb.server/multi-ui-errors.exp: interact with GDB's main UI
-	Executing on target: kill -9 29666    (timeout = 300)
-	builtin_spawn -ignore SIGHUP kill -9 29666^M
-	echo^M
-	Remote connection closed^M
-	(gdb) (gdb) FAIL: gdb.server/multi-ui-errors.exp: \
-	  main UI, prompt after gdbserver dies (timeout)
-	...
-
-	In contrast, with local-remote-host (so, everything the same but editing off):
-	...
-	(gdb) PASS: gdb.server/multi-ui-errors.exp: interact with GDB's main UI
-	Executing on target: kill -9 31245    (timeout = 300)
-	builtin_spawn -ignore SIGHUP kill -9 31245^M
-	Remote connection closed^M
-	(gdb) echo^M
-	(gdb) PASS: gdb.server/multi-ui-errors.exp: main UI, prompt after gdbserver dies
-	...
-
-	The test-case issues a kill, which results in a "Remote connection closed"
-	message and a prompt.
-
-	The problem is that the prompt is not consumed, so the subsequent echo may be
-	issued before that prompt, which causes a mismatch when matching the result
-	of the echo.
-
-	Fix this by consuming the "Remote connection closed" message and prompt.
-
-	Tested on x86_64-linux.
-
-2022-10-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Consume output asap in gdb.server/multi-ui-errors.exp
-	With test-case gdb.server/multi-ui-errors.exp we see:
-	...
-	(gdb) PASS: multi-ui-errors.exp: main UI, prompt after gdbserver dies
-	continue^M
-	Continuing.^M
-	echo^M
-	(gdb) PASS: multi-ui-errors.exp: extra UI, prompt after gdbserver dies
-	...
-
-	The continue is issued earlier in the test-case, but the output has not been
-	consumed, which makes it show up much later.
-
-	Consume the continue output asap, to make it clear when the continue is issued:
-	...
-	(gdb) PASS: gdb.server/multi-ui-errors.exp: connect to gdbserver
-	continue^M
-	Continuing.^M
-	PASS: gdb.server/multi-ui-errors.exp: continue - extra UI
-	...
-
-	Tested on x86_64-linux.
-
-2022-10-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove REMOTE_PORTNUM in remote-stdio-gdbserver.exp
-	The usage for board remote-stdio-gdbserver.exp is advertised as:
-	...
-	 # bash$ make check RUNTESTFLAGS="--target_board=remote-stdio-gdbserver \
-	 #    REMOTE_USERNAME=... REMOTE_HOSTNAME=... REMOTE_PORTNUM=... \
-	 #    [REMOTE_TMPDIR=${remote_dir}] [GDBSERVER=${remote_gdbserver}]"
-	...
-	but when adding REMOTE_PORTNUM=22, I run into:
-	...
-	Running stop-reply-no-thread-multi.exp ...
-	ERROR: tcl error sourcing stop-reply-no-thread-multi.exp.
-	ERROR: couldn't execute "/usr/bin/ssh -p22": no such file or directory
-	    while executing
-	"builtin_spawn {/usr/bin/ssh -p22} -l vries localhost {/usr/bin/gdbserver \
-	  --once localhost:2346 \
-	  /home/vries/gdb_versions/devel/build/gdb/testsuite/outp..."
-	...
-
-	Fix this by simply removing REMOTE_PORTNUM.
-
-	Tested on x86_64-linux.
-
-2022-10-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim, sim/{m32c,ppc,rl78}: Use getopt_long
-	Because of a Libiberty hack, getopt on GNU libc (2.25 or earlier) is
-	currently unusable on sim, causing a regression on CentOS 7.
-
-	This is caused as follows:
-
-	1.  If HAVE_DECL_GETOPT is defined (getopt declaration with known prototype
-	    is detected while configuration), a declaration of getopt in
-	    "include/getopt.h" is suppressed.
-	    The author started to define HAVE_DECL_GETOPT in sim with the commit
-	    340aa4f6872c ("sim: Check known getopt definition existence").
-	2.  GNU libc (2.25 or earlier)'s <unistd.h> includes <getopt.h> with a
-	    special purpose macro defined to declare only getopt function but due
-	    to include path (not tested while configuration), it causes <unistd.h>
-	    to include Libiberty's "include/getopt.h".
-	3.  If both 1. and 2. are satisfied, despite that <unistd.h> tries to
-	    declare getopt by including <getopt.h>, "include/getopt.h" does not do
-	    so, causing getopt function undeclared.
-
-	Getting rid of "include/getopt.h" (e.g. renaming this header file) is the
-	best solution to avoid hacking but as a short-term solution, this commit
-	replaces getopt with getopt_long under sim/.
-
-2022-10-29  Alan Modra  <amodra@gmail.com>
-
-	pef: sanity check before malloc
-	And do the sanity check in a way that can't overflow.
-
-		* pef.c (bfd_pef_parse_function_stubs): Sanity check header
-		imported_library_count and total_imported_symbol_count before
-		allocating memory.
-
-2022-10-29  Alan Modra  <amodra@gmail.com>
-
-	Fix small objcopy memory leak
-		* objcopy.c (copy_archive): Free l->name.
-
-2022-10-29  Alan Modra  <amodra@gmail.com>
-
-	NULL dereference read in som_write_object_contents
-	objcopy copy_object may omit the call to bfd_copy_private_bfd_data for
-	various conditions deemed non-fatal, in which case obj_som_exec_data
-	will be NULL for the output file.
-
-		* som.c (som_finish_writing): Don't dereference NULL
-		obj_som_exec_data.
-
-2022-10-29  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Always generate mapping symbols at the start of the sections.
-	Before figuring out the suppress rule of mapping symbol with architecture
-	(changed back to $x), always generate them at the start of the sections.
-
-	gas/
-	    * config/tc-riscv.c (need_arch_map_symbol): Removed.
-	    (riscv_mapping_state): Updated.
-	    (riscv_check_mapping_symbols): Updated.
-	    * testsuite/gas/riscv/mapping-non-arch.d: Removed.
-	    * testsuite/gas/riscv/mapping-non-arch.s: Likewise.
-
-2022-10-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-28  Palmer Dabbelt  <palmer@rivosinc.com>
-
-	gas: NEWS: Note support for RISC-V Zawrs
-	This has been supported since eb668e50036 ("RISC-V: Add Zawrs ISA
-	extension support").
-
-	gas: NEWS: Add a missing newline
-
-2022-10-28  Tom Tromey  <tom@tromey.com>
-
-	Convert compunit_language to a method
-	This changes compunit_language to be a method on compunit_symtab.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-10-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Improve "bits undefined" diagnostics
-	This commit improves internal error message
-	"internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s"
-	to display actual unused bits (excluding non-instruction bits).
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (validate_riscv_insn): Exclude non-
-		instruction bits from displaying internal diagnostics.
-		Change error message slightly.
-
-2022-10-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fallback for instructions longer than 64b
-	We don't support instructions longer than 64-bits yet.  Still, we can
-	modify validate_riscv_insn function to prevent unexpected behavior by
-	limiting the "length" of an instruction to 64-bit (or less).
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (validate_riscv_insn): Fix function
-		description comment based on current spec.  Limit instruction
-		length up to 64-bit for now.  Make sure that required_bits does
-		not corrupt even if unsigned long long is longer than 64-bit.
-
-2022-10-28  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V/gas: fix build with certain gcc versions
-	Some versions of gcc warn by default about shadowed outer-scope
-	declarations. This affects frag_align_code, which is declared in
-	frags.h. Rename the offending function parameter. While there also
-	switch to using true/false at the function call sites.
-
-2022-10-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix build failure for -Werror=maybe-uninitialized
-	Commit 40f1a1a4564b ("RISC-V: Output mapping symbols with ISA string.")
-	caused a build failure on GCC 12 as follows:
-
-	make[3]: Entering directory '$(builddir)/gas'
-	  CC       config/tc-riscv.o
-	In file included from $(srcdir)/gas/config/tc-riscv.c:23:
-	$(srcdir)/gas/as.h: In function ‘make_mapping_symbol’:
-	$(srcdir)/gas/as.h:123:15: error: ‘buff’ may be used uninitialized [-Werror=maybe-uninitialized]
-	  123 | #define xfree free
-	      |               ^~~~
-	$(srcdir)/gas/config/tc-riscv.c:487:9: note: ‘buff’ was declared here
-	  487 |   char *buff;
-	      |         ^~~~
-	cc1: all warnings being treated as errors
-	make[3]: *** [Makefile:1425: config/tc-riscv.o] Error 1
-
-	This is caused by a false positive of "maybe uninitialized" variable
-	detection (-Wmaybe-uninitialized).  To avoid this error, this commit
-	initializes the local variable buff to NULL first in all cases.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (make_mapping_symbol): Initialize variable
-		buff with NULL to avoid build failure caused by a GCC's false
-		positive of maybe uninitialized variable detection.
-
-2022-10-28  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, btrace: fix family and model computation
-	In gdb/nat/linux-btrace.c:btrace_this_cpu() we initialize the cpu
-	structure given to the libipt btrace decoder.
-
-	We only consider the extended model field for family 0x6 and forget about
-	family 0xf and we don't consider the extended family field.  Fix it.
-
-2022-10-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	include: Define macro to ignore -Wdeprecated-declarations on GCC
-	"-Wdeprecated-declarations" warning option can be helpful to track
-	deprecated function delarations but sometimes we need to disable this
-	warning for a good reason.
-
-	DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS is an existing macro but only
-	defined on Clang.  Since "-Wdeprecated-declarations" is also available on
-	GCC (>= 3.4.0), this commit adds equivalent definition as Clang.
-
-	__GNUC__ and __GNUC_MINOR__ are not checked because this header file seems
-	to assume GCC >= 4.6 (with "GCC diagnostic push/pop").
-
-	include/ChangeLog:
-
-		* diagnostics.h (DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS):
-		Define also on GCC.
-
-2022-10-28  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Output mapping symbols with ISA string.
-	RISC-V Psabi pr196,
-	https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/196
-
-	bfd/
-	    * elfxx-riscv.c (riscv_release_subset_list): Free arch_str if needed.
-	    (riscv_copy_subset_list): Copy arch_str as well.
-	    * elfxx-riscv.h (riscv_subset_list_t): Store arch_str for each subset list.
-	gas/
-	    * config/tc-riscv.c (riscv_reset_subsets_list_arch_str): Update the
-	    architecture string in the subset_list.
-	    (riscv_set_arch): Call riscv_reset_subsets_list_arch_str after parsing new
-	    architecture string.
-	    (s_riscv_option): Likewise.
-	    (need_arch_map_symbol): New boolean, used to indicate if .option
-	    directives do affect instructions.
-	    (make_mapping_symbol): New boolean parameter reset_seg_arch_str.  Need to
-	    generate $x+arch for MAP_INSN, and then store it into tc_segment_info_data
-	    if reset_seg_arch_str is true.
-	    (riscv_mapping_state): Decide if we need to add $x+arch for MAP_INSN.  For
-	    now, only add $x+arch if the architecture strings in subset list and segment
-	    are different.  Besides, always add $x+arch at the start of section, and do
-	    not add $x+arch for code alignment, since rvc for alignment can be judged
-	    from addend of R_RISCV_ALIGN.
-	    (riscv_remove_mapping_symbol): If current and previous mapping symbol have
-	    same value, then remove the current $x only if the previous is $x+arch;
-	    Otherwise, always remove previous.
-	    (riscv_add_odd_padding_symbol): Updated.
-	    (riscv_check_mapping_symbols): Don't need to add any $x+arch if
-	    need_arch_map_symbol is false, so changed them to $x.
-	    (riscv_frag_align_code): Updated since riscv_mapping_state is changed.
-	    (riscv_init_frag): Likewise.
-	    (s_riscv_insn): Likewise.
-	    (riscv_elf_final_processing): Call riscv_release_subset_list to release
-	    subset_list of riscv_rps_as, rather than only release arch_str in the
-	    riscv_write_out_attrs.
-	    (riscv_write_out_attrs): No need to call riscv_arch_str, just get arch_str
-	    from subset_list of riscv_rps_as.
-	    * config/tc-riscv.h (riscv_segment_info_type): Record current $x+arch mapping
-	    symbol of each segment.
-	    * testsuite/gas/riscv/mapping-0*: Merged and replaced by mapping.s.
-	    * testsuite/gas/riscv/mapping.s: New testcase, to test most of the cases in
-	    one file.
-	    * testsuite/gas/riscv/mapping-symbols.d: Likewise.
-	    * testsuite/gas/riscv/mapping-dis.d: Likewise.
-	    * testsuite/gas/riscv/mapping-non-arch.s: New testcase for the case that
-	    does need any $x+arch.
-	    * testsuite/gas/riscv/mapping-non-arch.d: Likewise.
-	    * testsuite/gas/riscv/option-arch-01a.d: Updated.
-	opcodes/
-	    * riscv-dis.c (riscv_disassemble_insn): Set riscv_fpr_names back to
-	    riscv_fpr_names_abi or riscv_fpr_names_numeric when zfinx is disabled
-	    for some specfic code region.
-	    (riscv_get_map_state): Recognized mapping symbols $x+arch, and then reset
-	    the architecture string once the ISA is different.
-
-2022-10-28  Lifang Xia  <lifang_xia@linux.alibaba.com>
-
-	binutils: Update my e-mail and Yunhai's e-mail
-	binutils/
-		* MAINTAINERS(C-SKY): update e-mails of Lifang & Yunhai.
-
-2022-10-28  Peter Bergner  <bergner@linux.ibm.com>
-
-	PowerPC: Add support for RFC02658 - MMA+ Outer-Product Instructions
-	gas/
-		* config/tc-ppc.c (md_assemble): Only check for prefix opcodes.
-		* testsuite/gas/ppc/rfc02658.s: New test.
-		* testsuite/gas/ppc/rfc02658.d: Likewise.
-		* testsuite/gas/ppc/ppc.exp: Run it.
-
-	opcodes/
-		* ppc-opc.c (XMSK8, P_GERX4_MASK, P_GERX2_MASK, XX3GERX_MASK): New.
-		(powerpc_opcodes): Add dmxvi8gerx4pp, dmxvi8gerx4, dmxvf16gerx2pp,
-		dmxvf16gerx2, dmxvbf16gerx2pp, dmxvf16gerx2np, dmxvbf16gerx2,
-		dmxvi8gerx4spp, dmxvbf16gerx2np, dmxvf16gerx2pn, dmxvbf16gerx2pn,
-		dmxvf16gerx2nn, dmxvbf16gerx2nn, pmdmxvi8gerx4pp, pmdmxvi8gerx4,
-		pmdmxvf16gerx2pp, pmdmxvf16gerx2, pmdmxvbf16gerx2pp, pmdmxvf16gerx2np,
-		pmdmxvbf16gerx2, pmdmxvi8gerx4spp, pmdmxvbf16gerx2np, pmdmxvf16gerx2pn,
-		pmdmxvbf16gerx2pn, pmdmxvf16gerx2nn, pmdmxvbf16gerx2nn.
-
-2022-10-28  Peter Bergner  <bergner@linux.ibm.com>
-
-	PowerPC: Add support for RFC02653 - Dense Math Facility
-	gas/
-		* config/tc-ppc.c (pre_defined_registers): Add dense math registers.
-		(md_assemble): Check dmr specified in correct operand.
-		* testsuite/gas/ppc/outerprod.s <dmsetaccz, dmxvbf16ger2,
-		dmxvbf16ger2nn, dmxvbf16ger2np, dmxvbf16ger2pn, dmxvbf16ger2pp,
-		dmxvf16ger2, dmxvf16ger2nn, dmxvf16ger2np, dmxvf16ger2pn, dmxvf16ger2pp,
-		dmxvf32ger, dmxvf32gernn, dmxvf32gernp, dmxvf32gerpn, dmxvf32gerpp,
-		dmxvf64ger, dmxvf64gernn, dmxvf64gernp, dmxvf64gerpn, dmxvf64gerpp,
-		dmxvi16ger2, dmxvi16ger2pp, dmxvi16ger2s, dmxvi16ger2spp, dmxvi4ger8,
-		dmxvi4ger8pp, dmxvi8ger4, dmxvi8ger4pp, dmxvi8ger4spp, dmxxmfacc,
-		dmxxmtacc, pmdmxvbf16ger2, pmdmxvbf16ger2nn, pmdmxvbf16ger2np,
-		pmdmxvbf16ger2pn, pmdmxvbf16ger2pp, pmdmxvf16ger2, pmdmxvf16ger2nn,
-		pmdmxvf16ger2np, pmdmxvf16ger2pn, pmdmxvf16ger2pp, pmdmxvf32ger,
-		pmdmxvf32gernn, pmdmxvf32gernp, pmdmxvf32gerpn, pmdmxvf32gerpp,
-		pmdmxvf64ger, pmdmxvf64gernn, pmdmxvf64gernp, pmdmxvf64gerpn,
-		pmdmxvf64gerpp, pmdmxvi16ger2, pmdmxvi16ger2pp, pmdmxvi16ger2s,
-		pmdmxvi16ger2spp, pmdmxvi4ger8, pmdmxvi4ger8pp, pmdmxvi8ger4,
-		pmdmxvi8ger4pp, pmdmxvi8ger4spp>: Add new tests.
-		* testsuite/gas/ppc/outerprod.d: Likewise.
-		* testsuite/gas/ppc/rfc02653.s: New test.
-		* testsuite/gas/ppc/rfc02653.d: Likewise.
-		* testsuite/gas/ppc/ppc.exp: Run it.
-
-	include/
-		* opcode/ppc.h (PPC_OPERAND_DMR): Define.  Renumber following
-		PPC_OPERAND defines.
-
-	opcodes/
-		* ppc-dis.c (print_insn_powerpc): Prepend 'dm' when printing DMR regs.
-		* ppc-opc.c (insert_p2, (extract_p2, (insert_xa5, (extract_xa5,
-		insert_xb5, (extract_xb5): New functions.
-		(insert_xa6a, extract_xa6a, insert_xb6a, extract_xb6a): Disallow
-		operand overlap only on Power10.
-		(DMR, DMRAB, P1, P2, XA5p, XB5p, XDMR_MASK, XDMRDMR_MASK, XX2ACC_MASK,
-		XX2DMR_MASK, XX3DMR_MASK): New defines.
-		(powerpc_opcodes): Add dmmr, dmsetaccz, dmsetdmrz, dmxor, dmxvbf16ger2,
-		dmxvbf16ger2nn, dmxvbf16ger2np, dmxvbf16ger2pn, dmxvbf16ger2pp,
-		dmxvf16ger2, dmxvf16ger2nn, dmxvf16ger2np, dmxvf16ger2pn, dmxvf16ger2pp,
-		dmxvf32ger, dmxvf32gernn, dmxvf32gernp, dmxvf32gerpn, dmxvf32gerpp,
-		dmxvf64ger, dmxvf64gernn, dmxvf64gernp, dmxvf64gerpn, dmxvf64gerpp,
-		dmxvi16ger2, dmxvi16ger2pp, dmxvi16ger2s, dmxvi16ger2spp, dmxvi4ger8,
-		dmxvi4ger8pp, dmxvi8ger4, dmxvi8ger4pp, dmxvi8ger4spp, dmxxextfdmr256,
-		dmxxextfdmr512, dmxxinstdmr256, dmxxinstdmr512, dmxxmfacc, dmxxmtacc,
-		pmdmxvbf16ger2, pmdmxvbf16ger2nn, pmdmxvbf16ger2np, pmdmxvbf16ger2pn,
-		pmdmxvbf16ger2pp, pmdmxvf16ger2, pmdmxvf16ger2nn, pmdmxvf16ger2np,
-		pmdmxvf16ger2pn, pmdmxvf16ger2pp, pmdmxvf32ger, pmdmxvf32gernn,
-		pmdmxvf32gernp, pmdmxvf32gerpn, pmdmxvf32gerpp, pmdmxvf64ger,
-		pmdmxvf64gernn, pmdmxvf64gernp, pmdmxvf64gerpn, pmdmxvf64gerpp,
-		pmdmxvi16ger2, pmdmxvi16ger2pp, pmdmxvi16ger2s, pmdmxvi16ger2spp,
-		pmdmxvi4ger8, pmdmxvi4ger8pp, pmdmxvi8ger4, pmdmxvi8ger4pp,
-		pmdmxvi8ger4spp.
-
-2022-10-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-27  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/cgen: initialize variable at creation in engine_run_n
-	Zero initialize engine_fns entirely at creation, then override those
-	fields we intend to use, rather than zero just initializing the unused
-	fields later on.
-
-	There should be no user visible changes after this commit.
-
-2022-10-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove address from test names
-	I noticed an address in a test name:
-	...
-	PASS: gdb.base/eh_return.exp: gdb_breakpoint: \
-	  set breakpoint at *0x000000000040071b
-	...
-
-	Stabilize the test name by using "set breakpoint on address" instead.
-
-	Likewise in two other test-cases.
-
-	Tested on x86_64-linux.
-
-2022-10-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Disable styling in host board local-remote-host-native.exp
-	Propagate fix from commit 17c68d98f74 ("[gdb/testsuite] Disable styling in host
-	board local-remote-host.exp") to local-remote-host-native.exp.
-
-	Tested on x86_64-linux.
-
-2022-10-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix silent timeouts in gdb.mi/mi-exec-run.exp with remote host
-	I noticed that running test-case gdb.mi/mi-exec-run.exp with host board
-	local-remote-host.exp takes about 44 seconds.
-
-	I found two silent timeouts responsible for this.
-
-	The first is in mi_gdb_exit, where we have:
-	...
-	    if { [is_remote host] && [board_info host exists fileid] } {
-	        send_gdb "999-gdb-exit\n"
-	        gdb_expect 10 {
-	            -re "y or n" {
-	                send_gdb "y\n"
-	                exp_continue
-	            }
-	            -re "Undefined command.*$gdb_prompt $" {
-	                send_gdb "quit\n"
-	                exp_continue
-	            }
-	            -re "DOSEXIT code" { }
-	        }
-	    }
-	...
-	so in gdb.log we see:
-	...
-	999-gdb-exit^M
-	999^exit^M
-	=thread-exited,id="1",group-id="i1"^M
-	=thread-group-exited,id="i1"^M
-	...
-	after which expect just waits for the timeout.
-
-	Fix this by adding a gdb_expect clause to parse the exit:
-	...
-	            -re "\r\n999\\^exit\r\n" { }
-	...
-
-	Note that we're not parsing the thread-exited/thread-group-exited messages, because
-	they may not be present:
-	...
-	$ gdb -i=mi
-	=thread-group-added,id="i1"
-	(gdb)
-	999-gdb-exit
-	999^exit
-	$
-	...
-
-	After fixing that, we have:
-	...
-	(gdb) ^M
-	saw mi error
-	PASS: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: \
-	  force-fail=1: run failure detected
-	quit^M
-	&"quit\n"^M
-	...
-
-	What seems to be happening is that default_gdb_exit sends a cli interpreter
-	quit command to an mi interpreter, after which again expect just waits for the
-	timeout.
-
-	Fix this by adding mi_gdb_exit to the end of the test-case, as in many other
-	gdb.mi/*.exp test-cases.
-
-	After these two fixes, the test-case takes about 4 seconds.
-
-	Tested on x86_64-linux.
-
-2022-10-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use remote_exec chmod instead of remote_spawn
-	I build gdb using -O2, and ran the testsuite using taskset -c 0, and ran into:
-	...
-	(gdb) PASS: gdb.server/connect-with-no-symbol-file.exp: sysroot=: \
-	  action=delete: setup: adjust sysroot
-	builtin_spawn gdbserver --once localhost:2385 /connect-with-no-symbol-file^M
-	/bin/bash: connect-with-no-symbol-file: Permission denied^M
-	/bin/bash: line 0: exec: connect-with-no-symbol-file: cannot execute: \
-	  Permission denied^M
-	During startup program exited with code 126.^M
-	Exiting^M
-	target remote localhost:2385^M
-	`connect-with-no-symbol-file' has disappeared; keeping its symbols.^M
-	localhost:2385: Connection timed out.^M
-	(gdb) FAIL: gdb.server/connect-with-no-symbol-file.exp: sysroot=: \
-	  action=delete: connection to GDBserver succeeded
-	...
-
-	The expected series of events is (skipping disconnect and detach as I don't
-	think they're relevant to the problem):
-	- enter scenario "permission"
-	- cp $exec.bak $exec
-	- gdbserver start with $exec
-	- chmod 000 $exec
-	- connect to gdbserver
-	- enter scenario "delete"
-	- cp $exec.bak $exec
-	- gdbserver start with $exec
-	- delete $exec
-	- connect to gdbserver
-
-	The problem is that the chmod is executed using remote_spawn:
-	...
-	       } elseif { $action == "permission" } {
-	         remote_spawn target "chmod 000 $target_exec"
-	       }
-	...
-	without waiting on the resulting spawn id, so we're not sure when the
-	chmod will have effect.
-
-	The FAIL we're seeing above is explained by the chmod having effect during the
-	delete scenario, after the "cp $exec.bak $exec" and before the "gdbserver
-	start with $exec".
-
-	Fix this by using remote_exec instead.
-
-	Likewise, fix a similar case in gdb.mi/mi-exec-run.exp.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29726
-
-2022-10-27  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Fix build failures for -Werror=sign-compare.
-	elfnn-riscv.c: In function ‘riscv_relax_resolve_delete_relocs’:
-	elfnn-riscv.c:4256:30: error: operand of ‘?:’ changes signedness from ‘int’ to ‘unsigned int’ due to unsignedness of other operand [-Werror=sign-compare]
-
-	So make the operands unsigned could resolve problem.
-
-	bfd/
-	    * elfnn-riscv.c (riscv_relax_resolve_delete_relocs): Fixed build
-	    failures for -Werror=sign-compare.
-
-2022-10-27  Alan Modra  <amodra@gmail.com>
-
-	Fuzzed files in archives
-	Given a fuzzed object file in an archive with section size exceeding
-	file size, objcopy will report an error like "section size (0xfeffffff
-	bytes) is larger than file size (0x17a bytes)" but will create a copy
-	of the object laid out for the large section.  That means a large
-	temporary file on disk that is read back and written to the output
-	archive, which can take a while.  The output archive is then deleted
-	due to the error.  Avoid some of this silliness.
-
-		* objcopy.c (copy_section): If section contents cannot be read
-		set output section size to zero.
-
-2022-10-27  Martin Liska  <mliska@suse.cz>
-
-	tests: use canonical option name
-	ld/ChangeLog:
-
-		* testsuite/ld-size/size.exp: Use canonical option name.
-
-2022-10-27  Alan Modra  <amodra@gmail.com>
-
-	re: Support Intel AMX-FP16
-	Fix these fails due to the target padding out sections with nops.
-	x86_64-w64-mingw32  +FAIL: x86_64 AMX-FP16 insns
-	x86_64-w64-mingw32  +FAIL: x86_64 AMX-FP16 insns (Intel disassembly)
-
-		* testsuite/gas/i386/x86-64-amx-fp16-intel.d: Accept trailing nops.
-		* testsuite/gas/i386/x86-64-amx-fp16.d: Likewise.
-
-2022-10-27  Alan Modra  <amodra@gmail.com>
-
-	Re: ld/testsuite: adjust ld-arm to run shared tests only when supported
-	commit 67527cffcd enabled previously disabled tests unresolved-1-dyn,
-	thumb-plt and thumb-plt-got for nacl.  The first fails due to trying
-	to link against mixed-lib.so which isn't compiled for nacl.  The last
-	two fail with
-	objdump: tmpdir/dump(.rel.plt): relocation 0 has invalid symbol index 14885104
-	and
-	readelf: Error:  bad symbol index: 00e320f0 in reloc
-
-	Relocation section '.rel.plt' at offset 0x128 contains 1 entry:
-	 Offset     Info    Type                Sym. Value  Symbol's Name
-	e320f000  e320f000 R_ARM_NONE
-
-		* testsuite/ld-arm/arm-elf.exp: Disable unresolved-1-dyn,
-		thumb-plt and thumb-plt-got for nacl.
-
-2022-10-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: fix gdb.guile/scm-parameter.exp "wrong type argument" test pattern for Guile >= 2.2
-	Since commit 90319cefe3 ("GDB/Guile: Don't assert that an integer value
-	is boolean"), I see:
-
-	    FAIL: gdb.guile/scm-parameter.exp: kind=PARAM_ZINTEGER: test-PARAM_ZINTEGER-param: guile (set-parameter-value! test-PARAM_ZINTEGER-param #:unlimited)
-	    FAIL: gdb.guile/scm-parameter.exp: kind=PARAM_ZUINTEGER: test-PARAM_ZUINTEGER-param: guile (set-parameter-value! test-PARAM_ZUINTEGER-param #:unlimited)
-
-	This comes from the fact that GDB outputs this:
-
-	    ERROR: In procedure set-parameter-value!:
-	    In procedure gdbscm_set_parameter_value_x: Wrong type argument in position 2 (expecting integer): #:unlimited
-	    Error while executing Scheme code.
-
-	while the test expects an additional "ERROR:" on the second line,
-	something like this:
-
-	    ERROR: In procedure set-parameter-value!:
-	    ERROR: In procedure gdbscm_set_parameter_value_x: Wrong type argument in position 2 (expecting integer): #:unlimited
-	    Error while executing Scheme code.
-
-	Guile 2.0 outputs the `ERROR:` on the second line, while later versions
-	do not.  Change the pattern to accept both outputs.  This is similar to
-	commit 6bbe1a929c6 ("[gdb/testsuite] Fix gdb.guile/scm-breakpoint.exp
-	with guile 3.0").
-
-	Change-Id: I9dc45e7492a4f08340cad974610242ed689de959
-
-2022-10-26  Luis Machado  <luis.machado@arm.com>
-
-	gdb/arm: Fix M-profile EXC_RETURN
-	Arm v8-M Architecture Reference Manual,
-	D1.2.95 EXC_RETURN, Exception Return Payload
-	describes ES bit:
-
-	"ES, bit [0]
-	     Exception Secure. The security domain the exception was taken to.
-	     The possible values of this bit are:
-	       0 Non-secure.
-	       1 Secure"
-
-	arm-tdep.c:3443, arm_m_exception_cache () function tests this bit:
-
-	  exception_domain_is_secure = (bit (lr, 0) == 0);
-
-	The test is negated!
-
-	Later on line 3553, the condition evaluates if an additional state
-	context is stacked:
-
-	  /* With the Security extension, the hardware saves R4..R11 too.  */
-	  if (tdep->have_sec_ext && secure_stack_used
-	      && (!default_callee_register_stacking || exception_domain_is_secure))
-
-	RM, B3.19 Exception entry, context stacking
-	reads:
-	RPLHM "In a PE with the Security Extension, on taking an exception,
-	the PE hardware:
-	  ...
-	  2. If exception entry requires a transition from Secure state to
-	     Non-secure state, the PE hardware extends the stack frame and also
-	     saves additional state context."
-
-	So we should test for !exception_domain_is_secure instead of non-negated
-	value!
-	These two bugs compensate each other so unstacking works correctly.
-
-	But another test of exception_domain_is_secure (negated due to the
-	first bug) prevents arm_unwind_secure_frames to work as expected:
-
-	  /* Unwinding from non-secure to secure can trip security
-	     measures.  In order to avoid the debugger being
-	     intrusive, rely on the user to configure the requested
-	     mode.  */
-	  if (secure_stack_used && !exception_domain_is_secure
-	      && !arm_unwind_secure_frames)
-
-	Test with GNU gdb (GDB) 13.0.50.20221016-git.
-	Stopped in a non-secure handler:
-
-	 (gdb) set arm unwind-secure-frames 0
-	 (gdb) bt
-	 #0  HAL_SYSTICK_Callback () at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/NonSecure/Src/nsmain.c:490
-	 #1  0x0804081c in SysTick_Handler ()
-	     at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/NonSecure/Src/nsstm32l5xx_it.c:134
-	 #2  <signal handler called>
-	 #3  HAL_GPIO_ReadPin (GPIOx=0x52020800, GPIO_Pin=8192)
-	     at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Drivers/STM32L5xx_HAL_Driver/Src/stm32l5xx_hal_gpio.c:386
-	 #4  0x0c000338 in SECURE_Mode () at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/main.c:86
-	 #5  0x080403f2 in main () at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/NonSecure/Src/nsmain.c:278
-	 Backtrace stopped: previous frame inner to this frame (corrupt stack?)
-
-	The frames #3 and #4 are secure. backtrace should stop before #3.
-
-	Stopped in a secure handler:
-
-	 (gdb) bt
-	 #0  HAL_SYSTICK_Callback () at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/main.c:425
-	 #1  0x0c000b6a in SysTick_Handler ()
-	     at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/stm32l5xx_it.c:234
-	 warning: Non-secure to secure stack unwinding disabled.
-	 #2  <signal handler called>
-
-	The exception from secure to secure erroneously stops unwinding. It should
-	continue as far as the security unlimited backtrace:
-
-	 (gdb) set arm unwind-secure-frames 1
-	 (gdb) si <-- used to rebuild frame cache after change of unwind-secure-frames
-	 0x0c0008e6      425       if (SecureTimingDelay != 0U)
-	 (gdb) bt
-	 #0  0x0c0008e6 in HAL_SYSTICK_Callback () at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/main.c:425
-	 #1  0x0c000b6a in SysTick_Handler ()
-	     at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/stm32l5xx_it.c:234
-	 #2  <signal handler called>
-	 #3  0x0c000328 in SECURE_Mode () at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/main.c:88
-	 #4  0x080403f2 in main () at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/NonSecure/Src/nsmain.c:278
-
-	 Backtrace stopped: previous frame inner to this frame (corrupt stack?)
-
-	Set exception_domain_is_secure to the value expected by its name.
-	Fix exception_domain_is_secure usage in the additional state context
-	stacking condition.
-
-2022-10-26  Luis Machado  <luis.machado@arm.com>
-
-	gdb/arm: fix IPSR field test in arm_m_exception_cache ()
-	Arm v8-M Architecture Reference Manual,
-	D1.2.141 IPSR, Interrupt Program Status Register reads
-	"Exception, bits [8:0]"
-
-	9 bits, not 8! It is uncommon but true!
-
-2022-10-26  Luis Machado  <luis.machado@arm.com>
-
-	gdb/arm: Terminate frame unwinding in M-profile lockup
-	In the lockup state the PC value of the the outer frame is irreversibly
-	lost. The other registers are intact so LR likely contains
-	PC of some frame next to the outer one, but we cannot analyze
-	the nearest outer frame without knowing its PC
-	therefore we do not know SP fixup for this frame.
-
-	The frame unwinder possibly gets mad due to the wrong SP value.
-	To prevent problems terminate unwinding if PC contains the magic
-	value of the lockup state.
-
-	Example session wihtout this change,
-	Cortex-M33 CPU in lockup, gdb 13.0.50.20221016-git:
-	----------------
-	  (gdb) c
-	  Continuing.
-
-	  Program received signal SIGINT, Interrupt.
-	  0xeffffffe in ?? ()
-	  (gdb) bt
-	  #0  0xeffffffe in ?? ()
-	  #1  0x0c000a9c in HardFault_Handler ()
-	      at C:/dvl/stm32l5trustzone/GPIO_IOToggle_TrustZone/Secure/Src/stm32l5xx_it.c:99
-	  #2  0x2002ffd8 in ?? ()
-	  Backtrace stopped: previous frame identical to this frame (corrupt stack?)
-	  (gdb)
-	----------------
-	The frame #1 is at correct PC taken from LR, #2 is a total nonsense.
-
-	With the change:
-	----------------
-	  (gdb) c
-	  Continuing.
-
-	  Program received signal SIGINT, Interrupt.
-	  warning: ARM M in lockup state, stack unwinding terminated.
-	  <signal handler called>
-	  (gdb) bt
-	  #0  <signal handler called>
-	  (gdb)
-	----------------
-
-	There is a visible drawback of emitting a warning in a cache buildnig routine
-	as introduced in Torbjörn SVENSSON's
-	[PATCH v4] gdb/arm: Stop unwinding on error, but do not assert
-	The warning is printed just once and not repeated on each backtrace command.
-
-2022-10-26  Mike Frysinger  <vapier@gentoo.org>
-
-	gdb: copyright: make file header scan a bit more pythonic
-	Should be functionally the same, but uses more pythonic idioms to get
-	fewer lines of code, and to make sure to not leak open file handles.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-10-26  Mike Frysinger  <vapier@gentoo.org>
-
-	gdb: make copyright.py interface a bit nicer
-	This way people can run `./copyright.py --help` and get some info as
-	to what this does without it going and modifying the tree.
-
-	sim: testsuite: improve parallel test processing
-	The current logic limits itself to a maxdepth of 4 when looking for
-	results.  This wouldn't be a problem if cris didn't have a testsuite
-	at a depth of 5 which we end up ignoring when summarizing.  Rather
-	than bump the number from 4 to 5, rework the code so that we gather
-	the exact set of tests that we tried to run.
-
-2022-10-26  Alan Modra  <amodra@gmail.com>
-
-	buffer overflow in _bfd_XX_print_ce_compressed_pdata
-	More fuzzed fun.
-
-		* peXXigen.c (_bfd_XX_print_ce_compressed_pdata): Use smaller of
-		virt_size and bfd section size as limit of function table.
-
-2022-10-26  Alan Modra  <amodra@gmail.com>
-
-	Correct ELF reloc size sanity check
-	The external reloc size check was wrong.  Here asect is the code/data
-	section, not the reloc section.  So using this_hdr gave the size of
-	the code/data section.
-
-		* elf.c (_bfd_elf_get_reloc_upper_bound): Properly get
-		external size from reloc headers.
-
-2022-10-26  Alan Modra  <amodra@gmail.com>
-
-	segfault in objdump.c reloc_at
-	bfd_canonicalize_reloc returns -1L on errors.
-
-		* objdump.c (load_specific_debug_section): Properly handle
-		error return from bfd_canonicalize_reloc.
-
-2022-10-26  Alan Modra  <amodra@gmail.com>
-
-	som.c reloc sanity checking
-	This patch checks that relocations emitted in som_write_fixups have
-	offsets that are monotonic and within a section.  To do that properly
-	using bfd_reloc_offset_in_range it is necessary to set the reloc howto
-	size field, which isn't used otherwise by the som backend.  Note that
-	the sizes used are not exactly those in the old sizing switch
-	statement deleted from som_write_fixups, but all relocs handled by the
-	main switch statement there get the same size.  Most unhandled relocs
-	get a zero size (exceptions being R_RELOCATION, R_SPACE_REF,
-	R_MILLI_REL, R_BREAKPOINT which all involve writing one word according
-	to my SOM reference).  I figure it doesn't matter since any unhandled
-	reloc is converted to 0xff R_RESERVED, and a default of zero is better
-	for a "don't know" reloc.
-
-	Besides tidying the code, stringizing name from type in SOM_HOWTO
-	fixes R_REPEATED_INIT name.
-
-		* som.c (SOM_HOWTO): Add SIZE arg, delete NAME.  Stringize type
-		to name.
-		(som_hppa_howto_table): Update with sizes.
-		(som_write_fixups): Delete sizing switch statement.  Sanity check
-		bfd_reloc address against subsection size.
-
-2022-10-26  Alan Modra  <amodra@gmail.com>
-
-	som.c buffer overflow
-	Fuzzed object files can put random values in bfd_reloc->address,
-	leading to large som_reloc_skip output.
-
-		* som.c (som_write_fixups): Allow for maximal som_reloc_skip.
-
-2022-10-26  Alan Modra  <amodra@gmail.com>
-
-	PR29720, objdump -S crashes if build-id is missing
-		PR 29720
-		* objdump.c (slurp_file): Don't call debuginfod_find_source
-		when build_id is NULL.
-
-2022-10-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove spurious spaces after frame_info_ptr
-	Fix some whitespace issues introduced with the frame_info_ptr patch.
-
-	Change-Id: I158d30d8108c97564276c647fc98283ff7b12163
-
-2022-10-25  Michael Matz  <matz@suse.de>
-
-	x86-64: Use only one default max-page-size
-	On x86-64 the default ELF_MAXPAGESIZE depends on a configure
-	option (--disable-separate-code).  Since 9833b775
-	("PR28824, relro security issues") we use max-page-size for relro
-	alignment (with a short interval, from 31b4d3a ("PR28824, relro
-	security issues, x86 keep COMMONPAGESIZE relro") to its revert
-	a1faa5ea, where x86-64 only used COMMONPAGESIZE as relro alignment
-	target).
-
-	But that means that a linker configured with --disable-separate-code
-	behaves different from one configured with --enable-separate-code
-	(the default), _even if using "-z {no,}separate-code" option to use
-	the non-configured behaviour_ .  In particular it means that when
-	configuring with --disable-separate-code the linker will produce
-	binaries aligned to 2MB pages on disk, and hence generate 2MB
-	executables for a hello world (and even 6MB when linked with
-	"-z separate-code").
-
-	Generally we can't have constants that ultimately land in static
-	variables be depending on configure options if those only influence
-	behaviour that is overridable by command line options.
-
-	So, do away with that, make the default MAXPAGESIZE be 4k (as is default
-	for most x86-64 configs anyway, as most people won't configure with
-	--disable-separate-code).  If people need more they can use the
-	"-z max-page-size" (with would have been required right now for a
-	default configure binutils).
-
-	bfd/
-		* elf64-x86-64.c (ELF_MAXPAGESIZE): Don't depend on
-		DEFAULT_LD_Z_SEPARATE_CODE.
-
-2022-10-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: make sure to consume the prompt in gdb.base/unwind-on-each-insn.exp
-	This test fails quite reliably for me when ran as:
-
-	    $ taskset -c 1 make check TESTS="gdb.base/unwind-on-each-insn.exp" RUNTESTFLAGS="--target_board=native-gdbserver"
-
-	or more simply:
-
-	    $ make check-read1 TESTS="gdb.base/unwind-on-each-insn.exp"
-
-	The problem is that the gdb_test_multiple call that grabs the frame id
-	from "maint print frame-id" does not consume the prompt.  Well, it does
-	sometimes due to the trailing .*, but not always.  If the prompt is not
-	consumed, the tests that follow get confused:
-
-	    FAIL: gdb.base/unwind-on-each-insn.exp: gdb_breakpoint: set breakpoint at *foo
-	    FAIL: gdb.base/unwind-on-each-insn.exp: disassemble foo
-	    FAIL: gdb.base/unwind-on-each-insn.exp: get $sp and frame base in foo: get hexadecimal valueof "$sp"
-	    ... many more ...
-
-	Use -wrap to make gdb_test_multiple consume the prompt.
-
-	While at it, remove the bit that consumes the command name and do
-	exp_continue, it's not really necessary.  And for consistency, do the
-	same changes to the gdb_test_multiple that consumes the stack address,
-	although that one was fine, it did consume the prompt explicitly.
-
-	Change-Id: I2b7328c8844c7e98921ea494c4c05107162619fc
-	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
-
-2022-10-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle missing .note.GNU-stack
-	On openSUSE Tumbleweed I run into this for the dwarf assembly test-cases, and
-	some hardcoded assembly test-cases:
-	...
-	 Running gdb.dwarf2/fission-absolute-dwo.exp ...
-	 gdb compile failed, ld: warning: fission-absolute-dwo.o: \
-	   missing .note.GNU-stack section implies executable stack
-	 ld: NOTE: This behaviour is deprecated and will be removed in a future \
-	   version of the linker
-
-	                 === gdb Summary ===
-
-	 # of untested testcases         1
-	...
-
-	Fix the dwarf assembly test-cases by adding the missing .note.GNU-stack in
-	proc Dwarf::assemble.
-
-	Fix the hard-coded test-cases using this command:
-	...
-	$ for f in $(find gdb/testsuite/gdb.* -name *.S); do
-	    if ! grep -q note.GNU-stack $f; then
-	      echo -e "\t.section\t.note.GNU-stack,\"\",@progbits" >> $f;
-	    fi;
-	  done
-	...
-
-	Likewise for .s files, and gdb/testsuite/lib/my-syscalls.S.
-
-	The idiom for arm seems to be to use %progbits instead, see commit 9a5911c08be
-	("gdb/testsuite/gdb.dwarf2: Replace @ with % for ARM compatability"), so
-	hand-edit gdb/testsuite/gdb.arch/arm-disp-step.S to use %progbits instead.
-
-	Note that dwarf assembly testcases use %progbits as decided by proc _section.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29674
-
-2022-10-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add missing skip_gdbserver_tests in gdb.multi/attach-no-multi-process.exp
-	I build gdb without gdbserver, and ran into:
-	...
-	(gdb) PASS: gdb.multi/attach-no-multi-process.exp: target_non_stop=off: \
-	  switch to inferior 2
-	spawn of  --once --multi localhost:2346 failed
-	ERROR: tcl error sourcing attach-no-multi-process.exp.
-	ERROR: tcl error code NONE
-	ERROR: Timeout waiting for gdbserver response.
-	...
-
-	Add the missing skip_gdbserver_tests.
-
-	Tested on x86_64-linux.
-
-2022-10-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Rewrite RETHROW_ON_TARGET_CLOSE_ERROR into function
-	Recent commit b2829fcf9b5 ("[gdb] Fix rethrow exception slicing in
-	insert_bp_location") introduced macro RETHROW_ON_TARGET_CLOSE_ERROR.
-
-	I wrote this as a macro in order to have the rethrowing throw be part of the
-	same function as the catch, but as it turns out that's not necessary.
-
-	Rewrite into a function.
-
-	Tested on x86_64-linux.
-
-2022-10-25  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: internal_error -> internal_error_loc in gdb-gdb.gdb.in
-	Commit f34652de0b ("internal_error: remove need to pass
-	__FILE__/__LINE__") renamed the internal_error function to
-	internal_error_loc.  Change gdb-gdb.gdb.in accordingly.
-
-	Change-Id: I876e1623607b6becf74ade53d102ead53a74ed86
-
-2022-10-25  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Should reset `again' flag for _bfd_riscv_relax_pc.
-	The R_RISCV_DELETE relocations are no longer deleted at another relax pass,
-	so we should reset 'again' flag to true for _bfd_riscv_relax_pc, while the
-	deleted bytes are marked as R_RISCV_DELETE.
-
-	bfd/
-	    * elfnn-riscv.c (_bfd_riscv_relax_pc): Set `again' to true while the
-	    deleted bytes are marked as R_RISCV_DELETE.
-
-2022-10-25  Patrick O'Neill  <patrick@rivosinc.com>
-
-	RISC-V: Improve link time complexity.
-	The riscv port does deletion and symbol table update for each relocation
-	while relaxing, so we are moving section bytes and scanning symbol table once
-	for each relocation.  Compared to microblaze port, they record the relaxation
-	changes into a table, then do the deletion and symbol table update once per
-	section, rather than per relocation.  Therefore, they should have better link
-	time complexity than us.
-
-	To improve the link time complexity, this patch try to make the deletion in
-	linear time.  Compared to record the relaxation changes into a table, we
-	replace the unused relocation with R_RISCV_DELETE for the deleted bytes, and
-	then resolve them at the end of the section.  Assuming the number of
-	R_RISCV_DELETE is m, and the number of symbols is n, the total link complexity
-	should be O(m) for moving section bytes, and O(m*n^2) for symbol table update.
-	If we record the relaxation changes into the table, and then sort the symbol
-	table by values, then probably can reduce the time complexity to O(m*n*log(n))
-	for updating symbol table, but it doesn't seem worth it for now.
-
-	bfd/
-	    * elfnn-riscv.c (_riscv_relax_delete_bytes): Renamed from
-	    riscv_relax_delete_bytes, updated to reduce the tiem complexity to O(m)
-	    for memmove.
-	    (typedef relax_delete_t): Function pointer declaration of delete functions.
-	    (riscv_relax_delete_bytes): Can choose to use _riscv_relax_delete_piecewise
-	    or _riscv_relax_delete_immediate for deletion.
-	    (_riscv_relax_delete_piecewise): Just mark the deleted bytes as R_RISCV_DELETE.
-	    (_riscv_relax_delete_immediate): Delete some bytes from a section while
-	    relaxing.
-	    (riscv_relax_resolve_delete_relocs): Delete the bytes for R_RISCV_DELETE
-	    relocations from a section, at the end of _bfd_riscv_relax_section.
-	    (_bfd_riscv_relax_call): Mark deleted bytes as R_RISCV_DELETE by reusing
-	    R_RISCV_RELAX.
-	    (_bfd_riscv_relax_lui): Likewise, but reuse R_RISCV_HI20 for lui, and reuse
-	    R_RISCV_RELAX for c.lui.
-	    (_bfd_riscv_relax_tls_le): Likewise, but resue R_RISCV_TPREL_HI20 and
-	    R_RISCV_TPREL_ADD.
-	    (_bfd_riscv_relax_pc): Likewise, but resue R_RISCV_PCREL_HI20 for auipc.
-	    (_bfd_riscv_relax_align): Updated, don't need to resue relocation since
-	    calling _riscv_relax_delete_immediate.
-	    (_bfd_riscv_relax_delete): Removed.
-	    (_bfd_riscv_relax_section): Set riscv_relax_delete_bytes for each relax_func,
-	    to delete bytes immediately or later.  Call riscv_relax_resolve_delete_relocs
-	    to delete bytes for DELETE relocations from a section.
-
-2022-10-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: reword description of DisassembleInfo.read_memory
-	While reading the documentation of DisassembleInfo.read_memory I
-	spotted the word 'available' in one sentence where it didn't make
-	sense.
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/lm32: fix some missing function declaration warnings
-	In the lm32 simulator, I was seeing some warnings about missing
-	function declarations.
-
-	The lm32 simulator has a weird header structure, in order to pull in
-	the full cpu.h header we need to define WANT_CPU_LM32BF.  This is done
-	in some files, but not in others.  Critically, it's not done in some
-	files that then use functions declared in cpu.h
-
-	In this commit I added the missing #define so that the full cpu.h can
-	be included.
-
-	After doing this there are still a few functions that are used
-	undeclared, these functions appear to be missing any declarations at
-	all, so I've added some to cpu.h.
-
-	With this done all the warnings when compiling lm32 are resolved for
-	both gcc and clang, so I've removed the SIM_WERROR_CFLAGS line from
-	Makefile.in, this allows lm32 to build with -Werror.
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/h8300: avoid self assignment
-	There are two places in the h8300 simulator where we assign a variable
-	to itself.  Clang gives a warning for this, which is converted into an
-	error by -Werror.
-
-	Silence the warning by removing the self assignments.  As these
-	assignments were in a complex if/then/else tree, rather than try to
-	adjust all the conditions, I've just replaced the self assignments
-	with a comment and an empty statement.
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/aarch64: remove two unused functions
-	These functions are not used.  Clang warns about the unused functions,
-	which is then converted into an error by -Werror.
-
-	Delete the unused functions.
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/ppc: fix for operator precedence warning from clang
-	In the ppc simulator, clang was warning about some code like this:
-
-	  busy_ptr->nr_writebacks = 1 + (PPC_ONE_BIT_SET_P(out_vmask)) ? 1 : 2;
-
-	The warning was:
-
-	  operator '?:' has lower precedence than '+'; '+' will be evaluated first
-
-	I suspect that this is not the original authors intention.
-	PPC_ONE_BIT_SET_P is going to be 0 or 1, so if we evaluate the '+'
-	first, the condition will always be non-zero, so true.  The whole
-	expression could then be simplified to just '1', which doesn't make
-	much sense.
-
-	I suspect the answer the author was expecting was either 2 or 3.  Why
-	they didn't just write:
-
-	  busy_ptr->nr_writebacks = (PPC_ONE_BIT_SET_P(out_vmask)) ? 2 : 3;
-
-	I have no clue, however, to keep the structure of the code unchanged,
-	I've updated things to:
-
-	  busy_ptr->nr_writebacks = 1 + (PPC_ONE_BIT_SET_P (out_vmask) ? 1 : 2);
-
-	which silences the warning from clang, and is, I am guessing, what the
-	original author intended.
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/ppc: initialize a memory buffer in all cases
-	In the ppc simulator's do_fstat function, which provides the fstat
-	call for the simulator, if the fstat is going to fail then we
-	currently write an uninitialized buffer into the simulated target.
-
-	In theory, I think this is fine, we also write the error status into
-	the simulated target, so, given that the fstat has failed, the target
-	shouldn't be relying on the buffer contents.
-
-	However, writing an uninitialized buffer means we might leak simulator
-	private data into the simulated target, which is probably a bad thing.
-	Plus it probably makes life easier if something consistent, like all
-	zeros, is written rather than random junk, which might look like a
-	successful call (except for the error code).
-
-	So, in this commit, I initialize the stat buffer to zero before
-	it is potentially used.  If the stat call is not made then the buffer
-	will be left initialized as all zeros.
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/ppc: don't try to print an uninitialized variable
-	The ppc simulator, in sim_create_inferior, tries to print the function
-	local entry_point variable before the variable is initialized.
-
-	In this commit, I defer the debug print line until the variable has
-	been initialized.
-
-2022-10-24  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/sh: use fabs instead of abs
-	The sh simulator incorrectly uses integer abs instead of the floating
-	point fabs on some floating point values, fixed in this commit.
-
-2022-10-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix rethrow exception slicing in insert_bp_location
-	The preferred way of rethrowing an exception is by using throw without
-	expression, because it avoids object slicing of the exception [1].
-
-	Fix this in insert_bp_location.
-
-	Tested on x86_64-linux.
-
-	[1] https://en.cppreference.com/w/cpp/language/throw
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-10-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix rethrow exception slicing in pretty_print_insn
-	The preferred way of rethrowing an exception is by using throw without
-	expression, because it avoids object slicing of the exception [1].
-
-	Fix this in gdb_pretty_print_disassembler::pretty_print_insn.
-
-	Tested on x86_64-linux.
-
-	[1] https://en.cppreference.com/w/cpp/language/throw
-
-	Approved-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-10-24  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: adjust ld-arm to run shared tests only when supported
-	If a custom arm-elf target is disabling the shared support, a lot of
-	failures are reported by the testsuite.
-	Moreover, some tests try to access libraries which have been explicitly
-	skipped earlier (eg mixed-lib.so).
-
-	ld/ChangeLog:
-
-		* testsuite/ld-arm/arm-elf.exp: Separate tests needing shared
-		lib support.
-
-2022-10-24  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: skip ld-elf/exclude when -shared is not supported
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/exclude.exp: Call check_shared_lib_support.
-		to skip for all targets without shared lib support.
-
-2022-10-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: consolidate VPCLMUL tests
-	There's little point in having Intel syntax disassembler tests when the
-	purpose of a test is assembler functionality: Drop all
-	*avx512*_vpclmulqdq-wig1-intel.
-
-	For *avx512*_vpclmulqdq-wig1 share source with *avx512*_vpclmulqdq.
-
-	Finally put in place similar tests for -mvexwig=1.
-
-2022-10-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: consolidate VAES tests
-	There's little point in having Intel syntax disassembler tests when the
-	purpose of a test is assembler functionality: Drop all
-	*avx512*_vaes-wig1-intel.
-
-	For *avx512*_vaes-wig1 share source with *avx512*_vaes. This in
-	particular makes sure that the 32-bit VL test actually tests any EVEX
-	encodings in the first place.
-
-	Finally put in place similar tests for -mvexwig=1.
-
-2022-10-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: emit {evex} prefix when disassembling ambiguous AVX512VL insns
-	When no AVX512-specific functionality is in use, the disassembly of
-	AVX512VL insns is indistinguishable from their AVX counterparts (if such
-	exist). Emit the {evex} pseudo-prefix in such cases.
-
-	Where applicable drop stray uses of PREFIX_OPCODE from table entries.
-
-2022-10-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add skip_python_tests in gdb.python/tui-window-names.exp
-	I did a gdb build without python support, and during testing ran into FAILs in
-	test-case gdb.python/tui-window-names.exp.
-
-	Fix this by adding the missing skip_python_test.
-
-	Tested on x86_64-linux.
-
-2022-10-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: update ignored .exp files [PR sim/29596]
-	Now that we run `check/foo.exp` instead of `check/./foo.exp`,
-	update the config/ & lib/ exceptions to cover both paths.
-
-	Bug: https://sourceware.org/PR29596
-
-2022-10-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: tweak parallel find invocation [PR sim/29596]
-	Make sure we invoke runtest with the same exp filenames when running in
-	parallel as it will find when run single threaded.  When `runtest` finds
-	files itself, it will use paths like "aarch64/allinsn.exp".  When we run
-	`find .` with the %p option, it produces "./aarch64/allinsn.exp".  Switch
-	to %P to get "aarch64/allinsn.exp".
-
-	Bug: https://sourceware.org/PR29596
-
-2022-10-23  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips/ppc/riscv: re-add AC_CANONICAL_SYSTEM [PR sim/29439]
-	These configure scripts check $target and change behavior.  They
-	shouldn't be doing that, but until we can rework the sim to change
-	behavior based on the input ELF, restore AC_CANONICAL_SYSTEM to
-	these so that $target is correctly populated.
-
-	This was lost in the d3562f83a7b8a1ae6e333cd5561419d3da18fcb4
-	("sim: unify toolchain probing logic") refactor as the logic was
-	hoisted up to the common code.  But the fact the vars weren't
-	passed down to the sub-configure scripts was missed.
-
-	Bug: https://sourceware.org/PR29439
-
-2022-10-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-22  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: add max number of instructions check in gdb.base/unwind-on-each-insn.exp
-	This test sends my CI in an infinite loop of failures.   We expect to
-	have a handful of iterations (5 on my development machine, where the
-	test passes fine)but the log shows that it went up to 104340 iterations:
-
-	    FAIL: gdb.base/unwind-on-each-insn.exp - instruction 104340: maint print frame-id
-	    DUPLICATE: gdb.base/unwind-on-each-insn.exp - instruction 104340: maint print frame-id
-	    FAIL: gdb.base/unwind-on-each-insn.exp - instruction 104340: [string equal $fid $main_fid]
-	    FAIL: gdb.base/unwind-on-each-insn.exp - instruction 104340: get hexadecimal valueof "$pc"
-
-	Add a max instruction check, exit the loop if we reach 100 iterations.
-	This should allow the test to fail fast if there's a problem, but 100
-	iterations should be more than enough for when things are working.
-
-	Change-Id: I77978d593aca046068f9209272d82e1675ba17c2
-
-2022-10-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-21  Pedro Alves  <pedro@palves.net>
-
-	Improve Python Unwinders documentation
-	- avoid "GDB proper" to refer to global locus, as object files and
-	  program spaces are also GDB proper.
-
-	- gdb.register_unwinder does not accept locus=gdb.
-
-	- "a unwinder" -> "an unwinder"
-
-	Approved-by: Eli Zaretskii <eliz@gnu.org>
-	Change-Id: I98c1b1000e1063815238e945ca71ec6f37b5702e
-
-2022-10-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make inherit_abstract_dies use vector iterators
-	Small cleanup to use std::vector iterators rather than raw pointers.
-
-	Approved-By: Tom Tromey <tom@tromey.com>
-	Change-Id: I8d50dbb3f2d8dad7ff94066a578d523f1f31b590
-
-2022-10-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: check for empty offsets vector in inherit_abstract_dies
-	When building GDB with clang and --enable-ubsan, I get:
-
-	  UNRESOLVED: gdb.dwarf2/frame-inlined-in-outer-frame.exp: starti prompt
-
-	The cause being:
-
-	    $ ./gdb --data-directory=data-directory -nx -q -readnow testsuite/outputs/gdb.dwarf2/frame-inlined-in-outer-frame/frame-inlined-in-outer-frame
-	    Reading symbols from testsuite/outputs/gdb.dwarf2/frame-inlined-in-outer-frame/frame-inlined-in-outer-frame...
-	    Expanding full symbols from testsuite/outputs/gdb.dwarf2/frame-inlined-in-outer-frame/frame-inlined-in-outer-frame...
-	    /home/simark/src/binutils-gdb/gdb/dwarf2/read.c:11954:47: runtime error: applying non-zero offset 8 to null pointer
-
-	I found this to happen with ld-linux on at least Arch Linux and Ubuntu
-	22.04:
-
-	    $ ./gdb --data-directory=data-directory -nx -q -readnow -iex "set debuginfod enabled on" /lib64/ld-linux-x86-64.so.2
-	    Reading symbols from /lib64/ld-linux-x86-64.so.2...
-	    Reading symbols from /home/simark/.cache/debuginfod_client/22bd7a2c03d8cfc05ef7092bfae5932223189bc1/debuginfo...
-	    Expanding full symbols from /home/simark/.cache/debuginfod_client/22bd7a2c03d8cfc05ef7092bfae5932223189bc1/debuginfo...
-	    /home/simark/src/binutils-gdb/gdb/dwarf2/read.c:11954:47: runtime error: applying non-zero offset 8 to null pointer
-
-	The problem happens when doing this:
-
-	    sect_offset *offsetp = offsets.data () + 1
-
-	When `offsets` is an empty vector, `offsets.data ()` returns nullptr.
-	Fix it by wrapping that in a `!offsets.empty ()` check.
-
-	Change-Id: I6d29ba2fe80ba4308f68effd9c57d4ee8d67c29f
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-10-21  Fangrui Song  <maskray@google.com>
-
-	readelf: support zstd compressed debug sections [PR 29640]
-
-2022-10-21  Tom Tromey  <tromey@adacore.com>
-
-	Fix incorrect .gdb_index with new DWARF scanner
-	PR symtab/29694 points out a regression caused by the new DWARF
-	scanner when the cc-with-gdb-index target board is used.
-
-	What happens here is that an older version of gdb will make an index
-	describing the "A" type as:
-
-	[737] A: 1 [global, type]
-
-	whereas the new gdb says:
-
-	[1008] A: 0 [global, type]
-
-	Here the old one is correct because the A in CU 0 is just a
-	declaration without a size:
-
-	 <1><45>: Abbrev Number: 10 (DW_TAG_structure_type)
-	    <46>   DW_AT_name        : A
-	    <48>   DW_AT_declaration : 1
-	    <48>   DW_AT_sibling     : <0x6d>
-
-	This patch fixes the problem by introducing the idea of a "type
-	declaration".  I think gdb still needs to recurse into these types,
-	searching for methods, but by marking the type itself as a
-	declaration, gdb can skip this type during lookups and when writing
-	the index.
-
-	Regression tested on x86-64 using the cc-with-gdb-index board.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29694
-
-2022-10-21  Tom Tromey  <tromey@adacore.com>
-
-	Fix crash in value_print_array_elements
-	A user noticed that gdb would crash when printing a packed array after
-	doing "set lang c".  Packed arrays don't exist in C, but it's
-	occasionally useful to print things in C mode when working in a non-C
-	language -- this lets you see under the hood a little bit.
-
-	The bug here is that generic value printing does not handle packed
-	arrays at all.  This patch fixes the bug by introducing a new function
-	to extract a value from a bit offset and width.
-
-	The new function includes a hack to avoid problems with some existing
-	test cases when using -fgnat-encodings=all.  Cleaning up this code
-	looked difficult, and since "all" is effectively deprecated, I thought
-	it made sense to simply work around the problems.
-
-2022-10-21  Tom Tromey  <tromey@adacore.com>
-
-	Fix bug in Ada packed array handling
-	A user found a bug where an array of packed arrays was printed
-	incorrectly.  The bug here is that the packed array has a bit stride,
-	but the outer array does not -- and should not.  However,
-	update_static_array_size does not distinguish between an array of
-	packed arrays and a multi-dimensional packed array, and for the
-	latter, only the innermost array will end up with a stride.
-
-	This patch fixes the problem by adding a flag to indicate whether a
-	given array type is a constituent of a multi-dimensional array.
-
-2022-10-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: declare variables on first use in inherit_abstract_dies
-	Move variable declarations to where they are first use, plus some random
-	style fixes.
-
-	Change-Id: Idf40d60f9034996fa6a234165cd989a721eb4148
-
-2022-10-21  Nick Clifton  <nickc@redhat.com>
-
-	Add a -w option to the linker to suppress warning and error messages.
-		PR 29654
-		* ld.h (struct ld_config_type): Add no_warnings field.
-		* ldlex.h (enum option_values): Add OPTION_NO_WARNINGS.
-		* lexsup.c (ld_options): Add --no-warnings.
-		(parse_args): Add support for -w and --no-warnings.
-		* ldmisc.c (vfinfo): Return early if the message is a warning and
-		-w has been enabled.
-		* ld.texi (options): Document new command line option.
-		* NEWS: Mention the new feature.
-
-	Add a note to the binutils/NEWS file about DCO signed contributions.
-
-2022-10-21  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/reverse: Fix stepping over recursive functions
-	Currently, when using GDB to do reverse debugging, if we try to use the
-	command "reverse next" to skip a recursive function, instead of skipping
-	all of the recursive calls and stopping in the previous line, we stop at
-	the second to last recursive call, and need to manually step backwards
-	until we leave the first call.  This is well documented in PR gdb/16678.
-
-	This bug happens because when GDB notices that a reverse step has
-	entered into a function, GDB will add a step_resume_breakpoint at the
-	start of the function, then single step out of the prologue once that
-	breakpoint is hit.  The problem was happening because GDB wouldn't give
-	that step_resume_breakpoint a frame-id, so the first time the breakpoint
-	was hit, the inferior would be stopped.  This is fixed by giving the
-	current frame-id to the breakpoint.
-
-	This commit also changes gdb.reverse/step-reverse.c to contain a
-	recursive function and attempt to both, skip it altogether, and to skip
-	the second call from inside the first call, as this setup broke a
-	previous version of the patch.
-
-2022-10-21  Bruno Larsen  <blarsen@redhat.com>
-
-	Change calculation of frame_id by amd64 epilogue unwinder
-	When GDB is stopped at a ret instruction and no debug information is
-	available for unwinding, GDB defaults to the amd64 epilogue unwinder, to
-	be able to generate a decent backtrace. However, when calculating the
-	frame id, the epilogue unwinder generates information as if the return
-	instruction was the whole frame.
-
-	This was an issue especially when attempting to reverse debug, as GDB
-	would place a step_resume_breakpoint from the epilogue of a function if
-	we were to attempt to skip that function, and this breakpoint should
-	ideally have the current function's frame_id to avoid other problems
-	such as PR record/16678.
-
-	This commit changes the frame_id calculation for the amd64 epilogue,
-	so that it is always the same as the dwarf2 unwinder's frame_id.
-
-	It also adds a test to confirm that the frame_id will be the same,
-	regardless of using the epilogue unwinder or not, thanks to Andrew
-	Burgess.
-
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-10-21  Nick Clifton  <nickc@redhat.com>
-
-	Updated Hungarian translation for the gprof sub-directory.
-		* po/hu.po: Updated Hungarian translation.
-
-2022-10-21  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/Python: Make `None' stand for `unlimited' in setting integer parameters
-	Similarly to booleans and following the fix for PR python/29217 make
-	`gdb.parameter' accept `None' for `unlimited' with parameters of the
-	PARAM_UINTEGER, PARAM_INTEGER, and PARAM_ZUINTEGER_UNLIMITED types, as
-	`None' is already returned by parameters of the two former types, so
-	one might expect to be able to feed it back.  It also makes it possible
-	to avoid the need to know what the internal integer representation is
-	for the special setting of `unlimited'.
-
-	Expand the testsuite accordingly.
-
-	Approved-By: Simon Marchi <simon.marchi@polymtl.ca>
-
-2022-10-21  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/testsuite: Expand Python integer parameter coverage across all types
-	Also verify PARAM_UINTEGER, PARAM_INTEGER, and PARAM_ZINTEGER parameter
-	types, in addition to PARAM_ZUINTEGER and PARAM_ZUINTEGER_UNLIMITED
-	already covered, and verify a choice of existing GDB parameters.  Add
-	verification for reading parameters via `<parameter>.value' in addition
-	to `gdb.parameter('<parameter>')' as this covers different code paths.
-
-	Approved-By: Simon Marchi <simon.marchi@polymtl.ca>
-
-2022-10-21  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/Guile: Don't assert that an integer value is boolean
-	Do not assert that a value intended for an integer parameter, of either
-	the PARAM_UINTEGER or the PARAM_ZUINTEGER_UNLIMITED type, is boolean,
-	causing error messages such as:
-
-	ERROR: In procedure make-parameter:
-	ERROR: In procedure gdbscm_make_parameter: Wrong type argument in position 15 (expecting integer or #:unlimited): 3
-	Error while executing Scheme code.
-
-	when initialization with a number is attempted.  Instead assert that it
-	is integer.  Keep matching `#:unlimited' keyword as an alternative.  Add
-	suitable test cases.
-
-	Approved-By: Simon Marchi <simon.marchi@polymtl.ca>
-
-2022-10-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Silence compilation fail in gdb.base/rtld-step.exp
-	With gcc 7.5.0 and test-case gdb.base/rtld-step.exp, I run into:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option \
-	  '-static-pie'; did you mean '-static'?
-	...
-
-	Silence this by checking in the test-case that -static-pie is supported, and
-	emitting instead:
-	...
-	UNTESTED: gdb.base/rtld-step.exp: \
-	  failed to compile (-static-pie not supported or static libc missing)
-	...
-
-	Tested on x86_64-linux, with:
-	- gcc 7.5.0: UNTESTED
-	- gcc 12.2.1 with static glibc not installed: UNTESTED
-	- gcc 12.2.1 with static glibc installed: PASS
-
-2022-10-21  Cui,Lili  <lili.cui@intel.com>
-
-	Support Intel AMX-FP16
-	gas/
-
-		* NEWS: Add support for Intel AMX-FP16 instruction.
-		* config/tc-i386.c: Add amx_fp16.
-		* doc/c-i386.texi: Document .amx_fp16.
-		* testsuite/gas/i386/i386.exp: Add AMX-FP16 tests.
-		* testsuite/gas/i386/x86-64-amx-fp16-intel.d: New test.
-		* testsuite/gas/i386/x86-64-amx-fp16.d: Likewise.
-		* testsuite/gas/i386/x86-64-amx-fp16.s: Likewise.
-		* testsuite/gas/i386/x86-64-amx-fp16-bad.d: Likewise.
-		* testsuite/gas/i386/x86-64-amx-fp16-bad.s: Likewise.
-
-	opcodes/
-
-		* i386-dis.c (MOD_VEX_0F385C_X86_64_P_3_W_0): New.
-		(VEX_LEN_0F385C_X86_64_P_3_W_0_M_0): Likewise.
-		(VEX_W_0F385C_X86_64_P_3): Likewise.
-		(prefix_table): Add VEX_W_0F385C_X86_64_P_3.
-		(vex_len_table): Add VEX_LEN_0F385C_X86_64_P_3_W_0_M_0.
-		(vex_w_table): Add VEX_W_0F385C_X86_64_P_3.
-		(mod_table): Add MOD_VEX_0F385C_X86_64_P_3_W_0.
-		* i386-gen.c (cpu_flag_init): Add AMX-FP16_FLAGS.
-		(CPU_ANY_AMX_TILE_FLAGS): Add CpuAMX_FP16.
-		(cpu_flags): Add CpuAMX-FP16.
-		* i386-opc.h (enum): Add CpuAMX-FP16.
-		(i386_cpu_flags): Add cpuamx_fp16.
-		* i386-opc.tbl: Add Intel AMX-FP16 instruction.
-		* i386-init.h: Regenerate.
-		* i386-tbl.h: Likewise.
-
-2022-10-21  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Remove unused CXXFLAGS substitution
-	Not only that sim/configure.ac does not AC_SUBST CXXFLAGS,
-	unless we need C++ compiler like CXX, substitution @CXXFLAGS@ is useless.
-	Because of this, this commit removes this substitution.
-
-2022-10-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-20  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Check VEX/EVEX encoding before checking vector operands
-	Since
-
-	commit 837e225ba1992f9745e5bbbd5e8443243a7f475f
-	Author: Jan Beulich <jbeulich@suse.com>
-	Date:   Thu Oct 20 10:01:12 2022 +0200
-
-	    x86: re-work AVX-VNNI support
-
-	moved AVX-VNNI after AVX512-VNNI, vector Disp8 is applied even when VEX
-	encoding is selected.  Check VEX/EVEX encoding before checking vector
-	operands to avoid vector Disp8 with VEX encoding.
-
-		PR gas/29708
-		* config/tc-i386.c (match_template): Check VEX/EVEX encoding
-		before checking vector operands.
-		* testsuite/gas/i386/avx-vnni.d: Updated.
-		* testsuite/gas/i386/x86-64-avx-vnni.d: Likewise.
-		* testsuite/gas/i386/avx-vnni.s: Add a Disp32 test.
-		* testsuite/gas/i386/x86-64-avx-vnni.s: Likewise.
-
-2022-10-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: break more dependencies between gdbpy_initialize_* functions
-	In a later commit in this series I will propose removing all of the
-	explicit gdbpy_initialize_* calls from python.c and replace these
-	calls with a more generic mechanism.
-
-	One of the side effects of this generic mechanism is that the order in
-	which the various Python sub-systems within GDB are initialized is no
-	longer guaranteed.
-
-	On the whole I don't think this matters, most of the sub-systems are
-	independent of each other, though testing did reveal a few places
-	where we did have dependencies, though I don't think those
-	dependencies were explicitly documented in comment anywhere.
-
-	This commit is similar to the previous one, and fixes the second
-	dependency issue that I found.
-
-	In this case the finish_breakpoint_object_type uses the
-	breakpoint_object_type as its tp_base, this means that
-	breakpoint_object_type must have been initialized with a call to
-	PyType_Ready before finish_breakpoint_object_type can be initialized.
-
-	Previously we depended on the ordering of calls to
-	gdbpy_initialize_breakpoints and gdbpy_initialize_finishbreakpoints in
-	python.c.
-
-	After this commit a new function gdbpy_breakpoint_init_breakpoint_type
-	exists, this function ensures that breakpoint_object_type has been
-	initialized, and can be called from any gdbpy_initialize_* function.
-
-	I feel that this change makes the dependency explicit, which I think
-	is a good thing.
-
-	There should be no user visible changes after this commit.
-
-2022-10-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: break dependencies between gdbpy_initialize_* functions
-	In a later commit in this series I will propose removing all of the
-	explicit gdbpy_initialize_* calls from python.c and replace these
-	calls with a more generic mechanism.
-
-	One of the side effects of this generic mechanism is that the order in
-	which the various Python sub-systems within GDB are initialized is no
-	longer guaranteed.
-
-	On the whole I don't think this matters, most of the sub-systems are
-	independent of each other, though testing did reveal a few places
-	where we did have dependencies, though I don't think those
-	dependencies were explicitly documented in a comment anywhere.
-
-	This commit removes the first dependency issue, with this and the next
-	commit, all of the implicit inter-sub-system dependencies will be
-	replaced by explicit dependencies, which will allow me to, I think,
-	clean up how the sub-systems are initialized.
-
-	The dependency is around the py_insn_type.  This type is setup in
-	gdbpy_initialize_instruction and used in gdbpy_initialize_record.
-	Rather than depend on the calls to these two functions being in a
-	particular order, in this commit I propose adding a new function
-	py_insn_get_insn_type.  This function will take care of setting up the
-	py_insn_type type and calling PyType_Ready.  This helper function can
-	be called from gdbpy_initialize_record and
-	gdbpy_initialize_instruction, and the py_insn_type will be initialized
-	just once.
-
-	To me this is better, the dependency is now really obvious, but also,
-	we no longer care in which order gdbpy_initialize_record and
-	gdbpy_initialize_instruction are called.
-
-	There should be no user visible changes after this commit.
-
-2022-10-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: some int to bool conversion in breakpoint.c
-	Some int to bool conversion in breakpoint.c.  I've only updated the
-	function signatures of static functions, but I've updated some
-	function local variables throughout the file.
-
-	There should be no user visible changes after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-10-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make use of scoped_restore in unduplicated_should_be_inserted
-	I noticed that we could make use of a scoped_restore in the function
-	unduplicated_should_be_inserted.  I've also converted the function
-	return type from int to bool.
-
-	This change shouldn't make any difference, as I don't think anything
-	within should_be_inserted could throw an exception, but the change
-	doesn't hurt, and will help keep us safe if anything ever changes in
-	the future.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-10-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: used scoped_restore_frame in update_watchpoint
-	I was doing some int to bool cleanup in update_watchpoint, and I
-	noticed a manual version of scoped_restore_selected_frame.  As always
-	when these things are done manually, there is the chance that, in an
-	error case, we might leave the wrong frame selected.
-
-	This commit updates things to use scoped_restore_selected_frame, and
-	also converts a local variable from int to bool.
-
-	The only user visible change after this commit is in the case where
-	update_watchpoint throws an error - we should now correctly restore
-	the previously selected frame.  Otherwise, this commit should be
-	invisible to the user.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-10-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make some bp_location arguments const in breakpoint.c
-	I spotted a few places where I could make some 'bp_location *'
-	arguments constant in breakpoint.c.
-
-	There should be no user visible changes after this commit.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-
-2022-10-20  Дилян Палаузов  <dilyan.palauzov@aegee.org>
-
-	Reapply "Don't build readline/libreadline.a, when --with-system-readline is supplied"
-	Commit 228cf97dd3c8 ("Merge configure.ac from gcc project") undid the
-	change originally done in commit 69961a84c9b ("Don't build
-	readline/libreadline.a, when --with-system-readline is supplied").
-	Re-apply it.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18632
-
-2022-10-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: re-work AVX-VNNI support
-	By putting the templates after their AVX512 counterparts, the AVX512
-	flavors will be picked by default. That way the need to always use {vex}
-	ceases to exist once respective CPU features (AVX512-VNNI or AVX512VL as
-	a whole) have been disabled. This way the need for the PseudoVexPrefix
-	attribute also disappears.
-
-2022-10-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.debuginfod/fetch_src_and_symbols.exp with check-read1
-	With test-case gdb.debuginfod/fetch_src_and_symbols.exp and check-read1, I run
-	into:
-	...
-	(gdb) FAIL: gdb.debuginfod/fetch_src_and_symbols.exp: local_url: \
-	  file fetch_src_and_symbols (got interactive prompt)
-	...
-
-	The problem is that this output:
-	...
-	Enable debuginfod for this session? (y or [n]) y^M
-	...
-	is matched using regexp "Enable debuginfod?.*" with matches only the first two
-	words of the output, after which an implicit clause in gdb_test_multiple triggers
-	on the second part containing the interactive prompt.
-
-	Fix this by included the interactive prompt in the regexp.
-
-	Tested on x86_64-linux.
-
-2022-10-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.mi/mi-disassemble.exp with check-read1
-	With test-case gdb.mi/mi-disassemble.exp and check-read1 I run into:
-	...
-	FAIL: gdb.mi/mi-disassemble.exp: disassemble /b main
-	FAIL: gdb.mi/mi-disassemble.exp: get valueof "*((unsigned char *) 0x400549)"
-	...
-
-	The problem for both FAILs is that the output is parsed using
-	gdb_test_multiple, which has implicit clauses using $gdb_prompt, which can
-	match before the explicit clauses using $mi_gdb_prompt.
-
-	Fix this by passing -prompt "$mi_gdb_prompt$" to gdb_test_multiple.
-
-	Tested on x86-64-linux.
-
-2022-10-20  Alan Modra  <amodra@gmail.com>
-
-	Re: aarch64-pe support for LD, GAS and BFD
-	Fix dependencies for eaarch64pe.c.  Generated files aren't handled
-	fully automatically.
-
-2022-10-20  Mark Harmstone  <mark@harmstone.com>
-
-	ld: Add minimal pdb generation
-
-	ld: Add --pdb option
-	Second patch incorporates fixes for endian and UB issues in calc_hash, as per
-	https://sourceware.org/pipermail/binutils/2022-October/123514.html.
-
-2022-10-20  Kevin Buettner  <kevinb@redhat.com>
-
-	Test stepping within a runtime loader / dynamic linker
-	See the remarks in rtld-step.exp for a description of what this
-	test is about.
-
-	This test case has been tested using gcc on the following x86-64 Linux
-	distributions/releases:
-
-	    Fedora 28
-	    Fedora 32
-	    Fedora 33
-	    Fedora 34
-	    Fedora 35
-	    Fedora 36
-	    Fedora 37
-	    rawhide (f38)
-	    RHEL 9.1
-	    Ubuntu 22.04.1 LTS
-
-	It's also been tested (and found to be working) with
-	RUNTESTFLAGS="CC_FOR_TARGET=clang" on all of the above expect for
-	Fedora 28.  The (old) version of clang available on F28 did not
-	accept the -static-pie option.
-
-	I also tried to make this test work on FreeBSD 13.1.  While I think I
-	made significant progress, I was ultimately stymied by this message
-	which occurs when attempting to run the main program which has been
-	set to use the fake/pretend RTLD as the ELF interpreter:
-
-	ELF interpreter /path/to/rtld-step-rtld not found, error 22
-
-	I have left one of the flags (-static) in place which I believe
-	to be needed for FreeBSD (though since I never got it to work, I
-	don't know for sure.)  I've also left some declarations needed
-	for FreeBSD in rtld-step-rtld.c.  They're currently disabled via
-	a #if 0; you'll need to enable them if you want to try to make
-	it work on FreeBSD.
-
-2022-10-20  Kevin Buettner  <kevinb@redhat.com>
-
-	Allow debugging of runtime loader / dynamic linker
-	At present, GDB does not allow for the debugging of the runtime loader
-	and/or dynamic linker.  Much of the time, this makes sense.  An
-	application programmer doesn't normally want to see symbol resolution
-	code when stepping into a function that hasn't been resolved yet.
-
-	But someone who wishes to debug the runtime loader / dynamic linker
-	might place a breakpoint in that code and then wish to debug it
-	as normal.  At the moment, this is not possible.  Attempting to step
-	will cause GDB to internally step (and not stop) until code
-	unrelated to the dynamic linker is reached.
-
-	This commit makes a minor change to infrun.c which allows the dynamic
-	loader / linker to be debugged in the case where a step, next, etc.
-	is initiated from within that code.
-
-	While developing this fix, I tried some approaches which weren't quite
-	right.  The GDB testusite definitely contains tests which FAIL when
-	it's done incorrectly.  (At one point, I saw 17 regressions!) This
-	commit has been tested on x86-64 linux with no regressions.
-
-2022-10-20  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	binutils: Remove unused substitution PROGRAM
-	Unlike other substitution, this substitution of @PROGRAM@ was done in
-	binutils/Makefile and it was intended for binutils/cxxfilt.man.  @PROGRAM@
-	in binutils/cxxfilt.man is removed in the commit 0285c67df190 ("Automate
-	generate on man pages") in 2001 and @PROGRAM@ is ineffective since then.
-
-	Because PROGRAM substitution does nothing, removing this manual
-	substitution should be completely safe.
-
-	binutils/ChangeLog:
-
-		* doc/local.mk: Remove unused substitution PROGRAM.
-		* Makefile.in: Regenerate.
-
-2022-10-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-20  Alan Modra  <amodra@gmail.com>
-
-	Obsolete beos
-		* config.bfd: Obsolete *-*-beos*.  Simplify x86 beos match.
-
-	Regen ld/po/BLD-POTFILES.in
-
-2022-10-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix assert in handle_jit_event
-	With the cc-with-tweaks.sh patch submitted here (
-	https://sourceware.org/pipermail/gdb-patches/2022-October/192586.html ) we run
-	with:
-	...
-	$ export STRIP_ARGS_STRIP_DEBUG=--strip-all
-	$ make check RUNTESTFLAGS="gdb.base/jit-reader.exp \
-	    --target_board cc-with-gnu-debuglink"
-	...
-	into the following assert:
-	...
-	(gdb) run ^M
-	Starting program: jit-reader ^M
-	gdb/jit.c:1247: internal-error: jit_event_handler: \
-	  Assertion `jiter->jiter_data != nullptr' failed.^M
-	...
-
-	Fix this by handling the
-	jit_bp_sym.objfile->separate_debug_objfile_backlink != nullptr case in
-	handle_jit_event.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29277
-
-2022-10-19  Pedro Alves  <pedro@palves.net>
-
-	internal_error: remove need to pass __FILE__/__LINE__
-	Currently, every internal_error call must be passed __FILE__/__LINE__
-	explicitly, like:
-
-	  internal_error (__FILE__, __LINE__, "foo %d", var);
-
-	The need to pass in explicit __FILE__/__LINE__ is there probably
-	because the function predates widespread and portable variadic macros
-	availability.  We can use variadic macros nowadays, and in fact, we
-	already use them in several places, including the related
-	gdb_assert_not_reached.
-
-	So this patch renames the internal_error function to something else,
-	and then reimplements internal_error as a variadic macro that expands
-	__FILE__/__LINE__ itself.
-
-	The result is that we now should call internal_error like so:
-
-	  internal_error ("foo %d", var);
-
-	Likewise for internal_warning.
-
-	The patch adjusts all calls sites.  99% of the adjustments were done
-	with a perl/sed script.
-
-	The non-mechanical changes are in gdbsupport/errors.h,
-	gdbsupport/gdb_assert.h, and gdb/gdbarch.py.
-
-	Approved-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: Ia6f372c11550ca876829e8fd85048f4502bdcf06
-
-2022-10-19  Nick Clifton  <nickc@redhat.com>
-
-	Fix an illegal memory access when parsing an ELF file containing corrupt symbol version information.
-		PR 29699
-		* elf.c (_bfd_elf_slurp_version_tables): Fail if the sh_info field
-		of the section header is zero.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/iq2000: silence pointer-sign warnings
-	When building the iq2000 simulator I see a few warnings like this:
-
-	  /tmp/build/sim/../../src/sim/iq2000/iq2000.c: In function ‘fetch_str’:
-	  /tmp/build/sim/../../src/sim/iq2000/iq2000.c:50:54: error: pointer targets in passing argument 3 of ‘sim_read’ differ in signedness [-Werror=pointer-sign]
-	     50 |   sim_read (CPU_STATE (current_cpu), CPU2DATA(addr), buf, nr);
-	        |                                                      ^~~
-	        |                                                      |
-	        |                                                      char *
-
-	I've silenced these warnings by casting buf to 'unsigned char *'.
-	With this change I now see no warnings when compiling iq2000.c, so
-	I've removed the line from Makefile.in that disables -Werror.
-
-	Makefile.in was also disabling -Werror when compiling mloop.c,
-	however, I'm not seeing any warnings when compiling that file, so I've
-	removed the -Werror disable in that case too.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/erc32: avoid dereferencing type-punned pointer warnings
-	When building the erc32 simulator I get a few warnings like this:
-
-	  /tmp/build/sim/../../src/sim/erc32/exec.c:1377:21: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
-	   1377 |   sregs->fs[rd] = *((float32 *) & ddata[0]);
-	        |                    ~^~~~~~~~~~~~~~~~~~~~~~~
-
-	The type of '& ddata[0]' will be 'uint32_t *', which is what triggers
-	the warning.
-
-	This commit makes use of memcpy when performing the type-punning,
-	which resolves the above warnings.
-
-	With this change, I now see no warnings when compiling exec.c, which
-	means that the line in Makefile.in that disables -Werror can be
-	removed.
-
-	There should be no change in behaviour after this commit.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/ppc: mark device_error function as ATTRIBUTE_NORETURN
-	The device_error function always ends up calling the error function,
-	which is itself marked as ATTRIBUTE_NORETURN, so it makes sense that
-	device_error should also be marked ATTRIBUTE_NORETURN.
-
-	Doing this resolves a few warnings from hw_ide.c about possibly
-	uninitialized variables - the variables are only uninitialized after
-	passing through a call to device_error, which obviously means the
-	variables are never really used uninitialized, the simulation will
-	terminate with the device_error call.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/ppc: fix warnings related to printf format strings
-	This commit is a follow on to:
-
-	  commit 182421c9d2eea8c4877d983a2124e591f0aca710
-	  Date:   Tue Oct 11 15:02:08 2022 +0100
-
-	      sim/ppc: fixes for arguments to printf style functions
-
-	where commit 182421c9d2ee addressed issues with printf format
-	arguments that were causing the compiler to give an error, this commit
-	addresses issues that caused the compiler to emit a warning.
-
-	This commit is mostly either changing the format string to match the
-	argument, or in some cases, excess, unused arguments are removed.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/cgen: mask uninitialized variable warning in cgen-run.c
-	I see an uninitialized variable warning (with gcc 9.3.1) from
-	cgen-run.c, like this:
-
-	  /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c: In function ‘sim_resume’:
-	  /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c:259:5: warning: ‘engine_fns$’ may be used uninitialized in this function [-Wmaybe-uninitialized]
-	    259 |    (* engine_fns[next_cpu_nr]) (cpu);
-	        |    ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	  /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c:232:14: note: ‘engine_fns$’ was declared here
-	    232 |   ENGINE_FN *engine_fns[MAX_NR_PROCESSORS];
-	        |              ^~~~~~~~~~
-
-	This is a false positive - we over allocate engine_fn, and then only
-	initialize the nr_cpus entries which we will later go on to use.
-
-	However, we can easily silence this warning by initializing the unused
-	entries in engine_fns to NULL, this might also help if anyone ever
-	looks at engine_fns in a debugger, it should now be obvious which
-	entries are in use, and which are not.
-
-	With this change the warning is gone.
-
-	There should be no change in behaviour with this commit.
-
-2022-10-19  Alan Modra  <amodra@gmail.com>
-
-	Fix addr2line test for ppc64 elfv1 and mingw
-		* testsuite/binutils-all/addr2line.exp: Tidy.  For powerpc64
-		arrange to pass --synthetic to nm, and extract .main and .fn
-		symbol address for addr2line test.  Handle default executable
-		extension on cygwin/mingw compilers.
-
-2022-10-19  Nick Clifton  <nickc@redhat.com>
-
-	Update MAINTAINERS file with details about accepting DCO signed contributions.
-		* MAINTAINERS: Add section on patches, copyright and DCO.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: avoid temporary file in gdb/testsuite (unittest.exp)
-	I spotted that the gdb.gdb/unittest.exp script causes a temporary file
-	inserters_extractors-2.txt to be created in build/gdb/testsuite/
-	instead of in build/gdb/testsuite/output/gdb.gdb/unittest/.
-
-	This is because some of the 'maint selftest' tests create temporary
-	files in GDB's current directory, specifically, the two source files:
-
-	  gdb/unittests/basic_string_view/inserters/wchar_t/2.cc
-	  gdb/unittests/basic_string_view/inserters/char/2.cc
-
-	both create a temporary file called inserters_extractors-2.txt, though
-	we only run the second of these as part of GDB's selftests.
-
-	I initially proposed just using GDB's 'cd' command in unittest.exp to
-	switch to the test output directory before running the selftests,
-	however, Pedro pointed out that there was a risk here that, if GDB
-	crashed during shutdown, the generated core file would be left in the
-	test output directory rather than in the testsuite directory.  As a
-	result, our clever core file spotting logic would fail to spot the
-	core file and alert the user.
-
-	Instead, I propose this slightly more involved solution.  I've added a
-	new with_gdb_cwd directory proc, used like this:
-
-	  with_gdb_cwd $directory {
-	    # Tests here...
-	  }
-
-	The new proc temporarily switches to $directory and then runs the
-	tests within the block.  After running the tests the previous current
-	working directory is restored.
-
-	Additionally, after switching back to the previous cwd, we check that
-	GDB is still responsive.  This means that if GDB crashed immediately
-	prior to restoring the previous directory, and left the core file in
-	the wrong place, then the responsiveness check will fail, and a FAIL
-	will be emitted, this should be enough to alert the user that
-	something has gone wrong.
-
-	With this commit in place the unittest.exp script now leaves its
-	temporary file in the test output directory.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: avoid creating files in gdb/testsuite directory
-	I spotted that the test gdb.dwarf2/dw2-using-debug-str.exp was
-	creating an output file called debug_str_section in the root
-	build/gdb/testsuite directory instead of using the
-	build/gdb/testsuite/output/gdb.dwarf2/dw2-using-debug-str/ directory.
-
-	This appears to be caused by a missing '$' character.  We setup a
-	variable debug_str_section which contains a path within the output
-	directory, but then when we build the objcopy command we use
-	'debug_str_section' without a '$' prefix, as a result, we create the
-	debug_str_section file.
-
-	This commit adds the missing '$', the file is now created in the
-	output directory.
-
-2022-10-19  Andrew Burgess  <aburgess@redhat.com>
-
-	bfd: fix undefined references to aarch64_pe_le_vec
-	After commit:
-
-	  commit c60b3806799abf1d7f6cf5108a1b0e733a950b13
-	  Date:   Wed Oct 19 10:57:12 2022 +0200
-
-	      aarch64-pe support for LD, GAS and BFD
-
-	It appears that bfd/Makefile.in and bfd/configure were not regenerated
-	correctly.  The differences in the configure file are only whitespace,
-	but in Makefile.in a critical reference to pe-aarch64.lo was missing.
-
-2022-10-19  Jedidiah Thompson  <wej22007@outlook.com>
-	    Jedidiah Thompson  <wej22007@outlook.com>
-	    Zac Walker  <zac.walker@linaro.org>
-
-	aarch64-pe support for LD, GAS and BFD
-	Allows aarch64-pe to be targeted natively, not having to use objcopy to convert it from ELF to PE.
-	Based on initial work by Jedidiah Thompson
-
-2022-10-19  rupesh potharla  <rupesh.potharla@amd.com>
-
-	Binutils: Adding new testcase for addr2line.
-	* binutils/testsuite/config/default.exp: Set ADDR2LINE and ADDR2LINEFLAGS.
-	* binutils/testsuite/binutils-all/addr2line.exp: New file.
-
-2022-10-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix ERROR in gdb.python/py-breakpoint.exp
-	With test-case gdb.python/py-breakpoint.exp I run into:
-	...
-	(gdb) ERROR: tcl error sourcing gdb.python/py-breakpoint.exp.
-	ERROR: can't read "skip_hw_watchpoint_tests_p": no such variable
-	    while executing
-	"if {$skip_hw_watchpoint_tests_p} {
-	        gdb_test_no_output "set can-use-hw-watchpoints 0" ""
-	    }"
-	...
-
-	Fix this by adding the missing "global skip_hw_watchpoint_tests_p" in two
-	procs.
-
-	Tested on x86_64-linux.
-
-2022-10-19  Andreas Krebbel  <krebbel@linux.ibm.com>
-
-	IBM zSystems: Issue error for *DBL relocs on misaligned symbols
-	Relocs like PC32DBL require a right shift of the symbol value.  There
-	is no situation where dropping symbol value bits with the right shift
-	is a good thing.  Hence we now issue an error to detect such problems.
-
-2022-10-19  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: check for groups with duplicate names in reggroups:add
-	In the downstream ROCm GDB port, we would create multiple register
-	groups with duplicate names.  While it did not really hurt, it certainly
-	wasn't the intent.  And I don't think it ever makes sense to do so.
-
-	To catch these, change the assert in reggroups::add to check for
-	duplicate names.  It's no longer necessary to check for duplicate
-	reggroup pointers, because adding the same group twice would be caught
-	by the duplicate name check.
-
-	Change-Id: Id216a58acf91f1b314d3cba2d02de73656f8851d
-	Approved-By: Tom Tromey <tom@tromey.com>
-
-2022-10-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-18  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Disable AVX-VNNI when disabling AVX2
-	Since AVX-VNNI requires AVX2, disable AVX-VNNI when disabling AVX2.
-
-		* i386-gen.c (cpu_flag_init): Add CpuAVX_VNNI to
-		CPU_ANY_AVX2_FLAGS.
-		* i386-init.h: Regenerate.
-
-2022-10-18  Tom Tromey  <tom@tromey.com>
-
-	Remove dead code from py-finishbreakpoint.c
-	PR python/16324 points out that comparing a frame id to null_frame_id
-	can never succeed, and proposes simply removing the dead code.  That
-	is what this patch does.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16324
-
-2022-10-18  Carl Love  <cel@us.ibm.com>
-
-	Update tests to use skip_hw_watchpoint_tests to test for HW watchpoint support.
-	The hardware watchpoint check has been updated in a couple of recent
-	patches.  This patch updates the hardware watchpoint test in the remaining
-	gdb tests.
-
-	The issue is the PowerPC processors support hardware watchpoints with the
-	exception of Power 9. The hardware watchpoint support is disabled on
-	Power 9.  The test skip_hw_watchpoint_tests must be used to correctly
-	determine if the PowerPC processor supports hardware watchpoints.
-
-	This patch fixes 6 test failures in test gdb.threads/watchpoint-fork.exp.
-
-	Test gdb.base/watch-vfork.exp runs with can-use-hw-watchpoints set to
-	true and false.  When the test is run with can-use-hw-watchpoints set to
-	true, gdb just falls back to using software watchpoints.  The
-	patch reduces the number of expected passes by 2 since because it now
-	only runs once with can-use-hw-watchpoints set to false.
-
-	Test gdb.mi/mi-watch.exp runs the test with argument hw and sw.  If the
-	argument is hw and hardware watchpoints are not supported the test exits.
-	The number of expected passes is cut in half with the patch as it now only
-	runs the test using software breakpoints.  Previously the pass to use
-	hardware watchpoints was not skipped and the test actually ran using
-	software watchpoints.
-
-	The following tests run the same with and without the patch.  The tests
-	are supposed to execute the gdb command "set can-use-hw-watchpoints 0" if
-	the processor does not support hardware bwatchpoints.  However the command
-	was not being executed and gdb was falling back to using software
-	watchpoints since the Power 9 watchpoint resource check fails.  With the
-	patch, the tests now execute the command and the test runs using software
-	watchpoints as it did previously.  The tests are:
-
-	gdb.base/commands.exp
-	gdb.base/cond-eval-mode.exp
-	gdb.base/display.exp
-	gdb.base/gdb11531.exp
-	gdb.base/recurse.exp
-	gdb.base/value-double-free.exp
-	gdb.base/watch-bitfields.exp
-	gdb.base/watch-cond-infcall.exp
-	gdb.base/watch-cond.exp
-	gdb.base/watchpoint-solib.exp
-	gdb.base/watchpoints.exp
-
-	The following two tests are not supported on the Power 9 system used to
-	test the changes.  The patch does not change the tests results for these
-	tests:
-
-	gdb.python/py-breakpoint.exp
-	gdb.mi/mi-watch-nonstop.exp
-
-2022-10-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle header files with local-remote-host.exp
-	With test-case gdb.base/included.exp and host board local-remote-host.exp with
-	tentative fix for PR29697 I run into:
-	...
-	included.c:18:10: fatal error: included.h: No such file or directory
-	 #include "included.h"
-	          ^~~~~~~~~~~~
-	compilation terminated.
-	...
-
-	Fix this by adding the missing gdb_remote_download calls.
-
-	Likewise in a few other test-cases.
-
-	Tested on x86_64-linux.
-
-2022-10-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/no-thread-db.exp with local-remote-host.exp
-	With test-case gdb.server/no-thread-db.exp and host board local-remote-host.exp
-	with a tentative fix for PR29697 I run into:
-	...
-	(gdb) print foo^M
-	Cannot find thread-local storage for Thread 29613.29613, executable file \
-	  $HOME/no-thread-db:^M
-	Remote target failed to process qGetTLSAddr request^M
-	(gdb) FAIL: gdb.server/no-thread-db.exp: print foo
-	...
-
-	The regexp in the test-case expects the full $binfile pathname, but we have
-	instead $HOME/no-thread-db.
-
-	Fix this by making the regexp less strict.
-
-	Tested on x86_64-linux.
-
-2022-10-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/return-nodebug.exp with local-remote-host.exp
-	With host board local-remote-host.exp and test-case
-	gdb.base/return-nodebug.exp, I run into:
-	...
-	Executing on host: gcc -fno-stack-protector -fdiagnostics-color=never \
-	  -DTYPE=signed\ char -c -g  -o return-nodebug-signed-char0.o  \
-	  /home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.base/return-nodebug.c \
-	  (timeout = 300)
-	builtin_spawn [open ...]^M
-	gcc: error: char: No such file or directory
-	...
-
-	Avoid the quoting problem by not using spaces in the define.
-
-	Tested on x86_64-linux.
-
-2022-10-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/file-transfer.exp with local-remote-host.exp
-	When running test-case gdb.server/file-transfer.exp with host
-	board local-remote-host.exp, I get:
-	...
-	Executing on host: cmp -s $outputs/gdb.server/file-transfer/file-transfer \
-	  down-server    (timeout = 300)
-	builtin_spawn [open ...]^M
-	XYZ2ZYX
-	FAIL: gdb.server/file-transfer.exp: compare intermediate binary file
-	...
-
-	The remote host and remote target cases are handled here together here in proc
-	test_file_transfer:
-	...
-	    if {![is_remote host] && ![is_remote target]} {
-	       set up_server [standard_output_file $up_server]
-	       set down_server [standard_output_file $down_server]
-	    }
-	...
-
-	Fix this by handling them separately.
-
-	Tested on x86_64-linux.
-
-2022-10-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Update boards/README
-	Update gdb/testsuite/boards/README to reflect recent commit c4c8c27263d
-	("[gdb/testsuite] Fix host board local-remote-host-notty.exp timeouts"), which
-	means the board now uses a pseudo-tty, but with editing disabled.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, solib-svr4: support namespaces in DSO iteration
-	When looking up names, GDB needs to stay within one linker namespace to
-	find the correct instance in case the same name is provided in more than
-	one namespace.
-
-	Modify svr4_iterate_over_objfiles_in_search_order() to stay within the
-	namespace of the current_objfile argument.  If no current_objfile is
-	provided (i.e. it is nullptr), iterate over objfiles in the initial
-	namespace.
-
-	For objfiles that do not have a corresponding so_list to provide the
-	namespace, assume that the objfile was loaded into the initial namespace.
-	This would cover the main executable objfile (which is indeed loaded into
-	the initial namespace) as well as manually added symbol files.
-
-	Expected fails:
-
-	  - gdb.base/non-lazy-array-index.exp: the expression parser may lookup
-	    global symbols, which may result in xfers to read auxv for determining
-	    the debug base as part of svr4_iterate_over_objfiles_in_search_order().
-
-	  - gdb.server/non-lazy-array-index.exp: symbol lookup may access the
-	    target to read AUXV in order to determine the debug base for SVR4
-	    linker namespaces.
-
-	Known issues:
-
-	  - get_symbol_address() and get_msymbol_address() search objfiles for a
-	    'better' match.  This was introduced by
-
-	        4b610737f02 Handle copy relocations
-
-	    to handle copy relocations but it now causes a wrong address to be
-	    read after symbol lookup actually cound the correct symbol.  This can
-	    be seen, for example, with gdb.base/dlmopen.exp when compiled with
-	    clang.
-
-	  - gnu ifuncs are only looked up in the initial namespace.
-
-	  - lookup_minimal_symbol() and lookup_minimal_symbol_text() directly
-	    iterate over objfiles and are not aware of linker namespaces.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb: update gnu ifunc resolve
-	Update elf_gnu_ifunc_resolve_by_cache() and elf_gnu_ifunc_resolve_by_got()
-	to use gdbarch_iterate_over_objfiles_in_search_order() in order to
-	restrict the objfile traversal to the initial namespace.
-
-	In order to extend this to other namespaces, we'd need to provide context,
-	e.g. via an objfile inside that namespace.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, symtab: inline find_quick_global_symbol_language
-	There is only one use of find_quick_global_symbol_language that calls it
-	for the special symbol "main".
-
-	Inline the function as it is probably not correct in the general case
-	where we may have multiple instances of global symbols with the same name
-	but different languages in different libraries in different linker
-	namespaces.
-
-	Further, change the objfiles iteration into a call to
-	gdbarch_iterate_over_objfiles_in_search_order, which would only search the
-	initial linker namespace, where we expect "main" to be located.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, hppa: remove unused hppa_lookup_stub_minimal_symbol
-	I stumbled over this while reviewing all objfiles traversals with regards
-	to impact of linker namespaces.
-
-	Recursive grep only finds two occurrences of hppa_lookup_stub_minimal_symbol:
-	  - the declaration in hppa-tdep.h.
-	  - the definition in hppa-tdep.c.
-
-	There appear to be no calls to this function.  Remove it.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, cp: update add_symbol_overload_list_qualified
-	Iterate over objfiles in search order using the objfile of the selected
-	block as current_objfile so the iteration can stay inside the block's
-	linker namespace.
-
-	fixup! gdb, ada: update ada_lookup_simple_minsym
-	remove get_selected_block()
-
-	gdb, ada: update ada_lookup_simple_minsym
-	Iterate over objfile in search order using the objfile of the context
-	block as current_objfile so the iteration can stay inside the block's
-	linker namespace.
-
-	gdb, ada: collect standard exceptions in all objfiles
-	When searching for standard exceptions for Ada, we lookup the minimal
-	symbol of each exception.  With linker namespaces there can be multiple
-	instances in different namespaces.  Collect them all.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, python: use gdbarch_iterate_over_objfiles_in_search_order
-	The implementation of gdb.lookup_objfile() iterates over all objfiles and
-	compares their name or build id to the user-provided search string.
-
-	This will cause problems when supporting linker namespaces as the first
-	objfile in any namespace will be found.  Instead, use
-	gdbarch_iterate_over_objfiles_in_search_order to only consider the
-	namespace of gdb.current_objfile() for the search, which defaults to the
-	initial namespace when gdb.current_objfile() is None.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, compile: unlink objfile stored in module
-	When cleaning up after a compile command, we iterate over all objfiles and
-	unlink the first objfile with the same name as the one we compiled.
-
-	Since we already store a pointer to that objfile in the module and use it
-	to get the name we're comparing against, there's no reason to iterate, at
-	all.  We can simply use that objfile.
-
-	This further avoids potential issues when an objfile with the same name is
-	loaded into a different linker namespace.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, gdbserver: extend RSP to support namespaces
-	Introduce a new qXfer:libraries-svr4:read annex key/value pair
-
-	    lmid=<namespace identifier>
-
-	to be used together with start and prev to provide the namespace of start
-	and prev to gdbserver.
-
-	Unknown key/value pairs are ignored by gdbserver so no new supports check
-	is needed.
-
-	Introduce a new library-list-svr4 library attribute
-
-	    lmid
-
-	to provide the namespace of a library entry to GDB.
-
-	This implementation uses the address of a namespace's r_debug object as
-	namespace identifier.
-
-	This should have incremented the minor version but since unknown XML
-	attributes are ignored, anyway, and since changing the version results in
-	a warning from GDB, the version is left at 1.0.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdbserver: move main_lm handling into caller
-	When listing SVR4 shared libraries, special care has to be taken about the
-	first library in the default namespace as that refers to the main
-	executable.  The load map address of this main executable is provided in
-	an attribute of the library-list-svr4 element.
-
-	Move that code from where we enumerate libraries inside a single namespace
-	to where we generate the rest of the library-list-svr4 element.  This
-	allows us to complete the library-list-svr4 element inside one function.
-
-	There should be no functional change.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-	    Lu, Hongjiu  <hongjiu.lu@intel.com>
-
-	gdb, gdbserver: support dlmopen()
-	In glibc, the r_debug structure contains (amongst others) the following
-	fields:
-
-	  int r_version:
-	    Version number for this protocol.  It should be greater than 0.
-
-	If r_version is 2, struct r_debug is extended to struct r_debug_extended
-	with one additional field:
-
-	  struct r_debug_extended *r_next;
-	    Link to the next r_debug_extended structure.  Each r_debug_extended
-	    structure represents a different namespace.  The first r_debug_extended
-	    structure is for the default namespace.
-
-	1. Change solib_svr4_r_map argument to take the debug base.
-	2. Add solib_svr4_r_next to find the link map in the next namespace from
-	the r_next field.
-	3. Update svr4_current_sos_direct to get the link map in the next namespace
-	from the r_next field.
-	4. Don't check shared libraries in other namespaces when updating shared
-	libraries in a new namespace.
-	5. Update svr4_same to check the load offset in addition to the name
-	6. Update svr4_default_sos to also set l_addr_inferior
-	7. Change the flat solib_list into a per-namespace list using the
-	namespace's r_debug address to identify the namespace.
-
-	Add gdb.base/dlmopen.exp to test this.
-
-	To remain backwards compatible with older gdbserver, we reserve the
-	namespace zero for a flat list of solibs from all namespaces.  Subsequent
-	patches will extend RSP to allow listing libraries grouped by namespace.
-
-	This fixes PR 11839.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, solib-svr4: remove locate_base()
-	Whenever we call locate_base(), we clear info->debug_base directly before
-	the call.  Thus, we never cache the base location as locate_base() had
-	intended.
-
-	Move the svr4_have_link_map_offsets() check into elf_locate_base(), inline
-	locate_base() at all call sites, and remove it.
-
-2022-10-18  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, testsuite: extend gdb_test_multiple checks
-	Check for
-
-	    warning: Corrupted shared library list
-
-	and for
-
-	    Invalid cast.
-	    warning: Probes-based dynamic linker interface failed.
-	    Reverting to original interface.
-
-	in gdb_test_multiple.
-
-2022-10-18  Jan Beulich  <jbeulich@suse.com>
-
-	x86: generalize gas documentation for disabling of ISA extensions
-	As of commit ae89daecb132 ("x86: generalize disabling of sub-
-	architectures") there's no arbitrary subset of ISAs which can also be
-	disabled. This should have been reflected in documentation right away.
-	Since I failed to do so, correct this now.
-
-	x86: correct CPU_AMX_{BF16,INT8}_FLAGS
-	AMX-TILE is a prereq to these, as already correctly expressed by
-	CPU_ANY_AMX_TILE_FLAGS. Express the dependency also in the reverse
-	("positive") direction.
-
-2022-10-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-17  Tom Tromey  <tromey@adacore.com>
-
-	kfail an Ada test for GCC < 12
-	I noticed one particular Ada test was failing on Fedora 34, but works
-	when I switch to GCC 12.  This patch arranges to kfail the test when
-	an older compiler is used.
-
-	I tested this with GCC 11, 12, and 13.  I'm going to check it in.
-
-2022-10-17  Tom Tromey  <tromey@adacore.com>
-
-	Remove a nullptr check in DWARF scanner
-	In scan_attributes, The DWARF scanner checks whether maybe_defer is
-	nullptr, but this can never happen.  This patch removes the check.
-
-2022-10-17  Pedro Alves  <pedro@palves.net>
-
-	gdbarch-components.py: Remove spurious space from "frame_info_ptr " params
-	If you run gdbarch.py today, you'll get local modifications compared
-	to what's in the tree, like:
-
-	 --- c/gdb/gdbarch-gen.h
-	 +++ w/gdb/gdbarch-gen.h
-	 @@ -315,8 +315,8 @@ extern void set_gdbarch_register_type (struct gdbarch *gdbarch, gdbarch_register
-	     should match the address at which the breakpoint was set in the dummy
-	     frame. */
-
-	 -typedef struct frame_id (gdbarch_dummy_id_ftype) (struct gdbarch *gdbarch, frame_info_ptr this_frame);
-	 -extern struct frame_id gdbarch_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame);
-	 +typedef struct frame_id (gdbarch_dummy_id_ftype) (struct gdbarch *gdbarch, frame_info_ptr  this_frame);
-	 +extern struct frame_id gdbarch_dummy_id (struct gdbarch *gdbarch, frame_info_ptr  this_frame);
-	  extern void set_gdbarch_dummy_id (struct gdbarch *gdbarch, gdbarch_dummy_id_ftype *dummy_id);
-
-	etc.
-
-	The extra space comes from the "frame_info_ptr " param that appears in
-	a number of gdbarch methods in gdbarch-components.py.  With the extra
-	space removed, running ./gdbarch.py generates the exact code that's in
-	the tree already.
-
-	Change-Id: If7d20b8c6b2fd9ff466142a01bd2611c9ef9f53e
-
-2022-10-17  Tom Tromey  <tromey@adacore.com>
-
-	Change .gdb_index de-duplication implementation
-	While investigating PR symtab/29179, I found that one Ada test failed
-	because, although a certain symbol was present in the index, with the
-	new DWARF reader it pointed to a different CU than was chosen by
-	earlier versions of gdb.
-
-	This patch changes how symbol de-duplication is done, deferring the
-	process until the entire symbol table has been constructed.  This way,
-	it's possible to always choose the lower-numbered CU among duplicates,
-	which is how gdb (implicitly) previously worked.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29179
-
-2022-10-17  Tom Tromey  <tromey@adacore.com>
-
-	Improve Ada support in .gdb_index
-	The cooked index work changed how .gdb_index is constructed, and in
-	the process broke .gdb_index support.  This is PR symtab/29179.
-
-	This patch partially fixes the problem.  It arranges for Ada names to
-	be encoded in the form expected by the index code.  In particular,
-	linkage names for Ada are emitted, including the "main" name; names
-	are Ada-encoded; and names are no longer case-folded, something that
-	prevented operator names from round-tripping correctly.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29179
-
-2022-10-17  Tom Tromey  <tromey@adacore.com>
-
-	Don't add type linkage names to cooked index
-	The compiler will sometimes emit a linkage name for a type, like:
-
-	    <1d3>   DW_AT_linkage_name: (indirect string, offset: 0x106f): 11__mbstate_t
-
-	These names aren't very useful, and this patch changes the DWARF
-	reader so that they are ignored by the cooked index.
-
-2022-10-17  Tom Tromey  <tromey@adacore.com>
-
-	Fix regression in c-linkage-name.exp with gdb index
-	c-linkage-name.exp started failing with the gdb-index target board due
-	to an earlier patch.  The problem here is that some linkage names must
-	be in the index -- but, based on inspection, not C++ linkage names.
-	This patch updates the code to exclude only these.
-
-2022-10-17  TaiseiIto  <taisei1212@outlook.jp>
-
-	Fix null pointer representations
-	Since "NULL" and "0" are used to represent invalid address in function
-	"gdbarch_find_by_info" in "binutils-gdb/gdb/arch-utils.c", I modified
-	them to "nullptr".
-
-2022-10-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: silence unused-but-set-variable warning about yynerrs in cp-name-parser.y
-	When building with clang 15 on Ubuntu 20.04, I get:
-
-	      CXX    cp-name-parser.o
-	    cp-name-parser.c.tmp:1777:9: error: variable 'cpnameyynerrs' set but not used [-Werror,-Wunused-but-set-variable]
-	        int yynerrs;
-	            ^
-	    /home/smarchi/src/binutils-gdb/gdb/yy-remap.h:58:18: note: expanded from macro 'yynerrs'
-	    #define yynerrs         GDB_YY_REMAP (yynerrs)
-	                            ^
-	    /home/smarchi/src/binutils-gdb/gdb/yy-remap.h:40:29: note: expanded from macro 'GDB_YY_REMAP'
-	    #define GDB_YY_REMAP(YYSYM) GDB_YY_REMAP_1 (GDB_YY_REMAP_PREFIX, YYSYM)
-	                                ^
-	    /home/smarchi/src/binutils-gdb/gdb/yy-remap.h:39:39: note: expanded from macro 'GDB_YY_REMAP_1'
-	    #define GDB_YY_REMAP_1(PREFIX, YYSYM) GDB_YY_REMAP_2 (PREFIX, YYSYM)
-	                                          ^
-	    /home/smarchi/src/binutils-gdb/gdb/yy-remap.h:38:39: note: expanded from macro 'GDB_YY_REMAP_2'
-	    #define GDB_YY_REMAP_2(PREFIX, YYSYM) PREFIX ## YYSYM
-	                                          ^
-	    <scratch space>:45:1: note: expanded from here
-	    cpnameyynerrs
-	    ^
-
-	This is because clang 15 warns for something like this:
-
-	    int n;
-	    n = 0;
-	    ++n;
-
-	whereas previous versions do not.
-
-	yynerrs is defined in yyparse and is there for actions to use.  Since
-	the actions in cp-name-parser.y don't use it, we get a warning.  We see
-	this problem on this particular .y file because it uses `%pure-parser`
-	[1], which makes yynerrs a local rather than a global.
-
-	I initially fixed this by using
-	DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE (like in commit f7aa1a5acc5
-	("gold: Suppress "unused" variable warning on Clang")), but then I
-	realized we could suppress the warning in a more fine-grained way using
-	this in a rule:
-
-	    (void) yynerrs;
-
-	[1] https://www.gnu.org/software/bison/manual/html_node/Error-Reporting-Function.html
-
-	Change-Id: I6cae7a4207c19fe1b719e2ac19be69122ebe3af1
-
-2022-10-17  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: consistently add board_ldflags when linking with GCC
-	Currently, the functions checking if the compiler is available or if a
-	feature is available add both board_cflags and board_ldflags.
-	However, functions running the tests only retrieve board_cflags. This
-	can lead to unexpected errors when mandaratory flags are defined in
-	board_ldflags and not board_cflags.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-unique/unique.exp: Add board_ldflags when
-		linking with GCC.
-		* testsuite/lib/ld-lib.exp: Likewise.
-
-2022-10-17  CaiJingtao  <caijingtao@huawei.com>
-
-	Allow explicit size specifier for predicate operand of {sq, uq, }{incp, decp}
-	Omitting predicate size specifier in vector form of {sq, uq, }{decp, incp} is deprecated and will be prohibited in a future release of the aarch64,
-	see https://developer.arm.com/documentation/ddi0602/2021-09/SVE-Instructions/DECP--vector---Decrement-vector-by-count-of-true-predicate-elements-.
-
-	This allows explicit size specifier, e.g. `decp z0.h, p0.h`, for predicate operand of these SVE instructions.
-	The existing behaviour of not requiring the specifier is preserved.
-	And the disasembly is with the specifier with this patch.
-
-	The GAS tests passed under our local tests.
-
-	opcodes/
-		* aarch64-asm.c: Modify `sve_size_hsd` encoding.
-		* aarch64-tbl.h (aarch64_opcode_table): Add QUALS's type OP_SVE_Vv_HSD
-		for decp, incp, sqdecp, sqincp, uqdecp and uqincp.
-
-	gas/
-		* testsuite/gas/aarch64/sve-movprfx_23.s: Update movprfx_23 testcase's
-		test_sametwo macro, where take the predicate size specifier.
-		* testsuite/gas/aarch64/sve-movprfx_23.d: Update movprfx_23 testcase's
-		expected disassembly.
-		* testsuite/gas/aarch64/sve-movprfx_23.l: Update movprfx_23 testcase's
-		expected assembler messages.
-		* testsuite/gas/aarch64/sve.s: Add sve testcase's instructions for
-		decp, incp, sqdecp, sqincp, uqdecp and uqincp, which take the
-		predicate size specifier.
-		* testsuite/gas/aarch64/sve.d: Update sve testcase's expected
-		disassembly.
-
-2022-10-17  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Tweak handling of F_STRICT
-	Current F_STRICT qualifier checking is enforced after the fact
-	rather than as part of the match.  This makes it impossible to
-	have, e.g.:
-
-	   QLF2(S_D, S_D)
-	   QLF2(S_D, NIL)
-
-	in the same list.
-
-	opcodes/
-		* aarch64-opc.c (aarch64_find_best_match): Handle F_STRICT here
-		rather than...
-		(match_operands_qualifier): ...here.
-
-2022-10-17  Jan Beulich  <jbeulich@suse.com>
-
-	x86: properly decode EVEX.W for AVX512_4{FMAPS,VNNIW} insns
-	These require EVEX.W=0. Use %XS to facilitate the checking, even if for
-	the AVX512_4VNNIW ones this is kind of an abuse (as 's' there stands for
-	"signed", not "single").
-
-	While there also correct the 3rd operand for the AVX512_4VNNIW entries:
-	Only the memory form is allowed (just like for AVX512_4FMAPS, where the
-	correct type is already in use).
-
-2022-10-17  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fold AVX512-VNNI disassembler entries with AVX-VNNI ones
-	Make %XV also print the separating blank in the VEX case, while making
-	it do nothing for EVEX-encoded insns. This way the AVX-VNNI entries
-	can be re-used for AVX512-VNNI, at the same time fixing the lack of
-	EVEX.W decoding.
-
-	For the AVX-VNNI ones further make sure only VEX.66 forms are actually
-	decoded.
-
-2022-10-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-16  Tom Tromey  <tom@tromey.com>
-
-	More uses of checked_static_cast
-	This patch changes a few more uses of static_cast to use
-	checked_static_cast.  In this patch, cast-to-references are converted
-	by moving the dereference outside of the cast, as checked_static_cast
-	only handles pointers.
-
-2022-10-16  Tom Tromey  <tom@tromey.com>
-
-	Use checked_static_cast in more places
-	I looked through all the uses of static_cast<... *> in gdb and
-	converted many of them to checked_static_cast.
-
-	I couldn't test a few of these changes.
-
-2022-10-16  Alan Modra  <amodra@gmail.com>
-
-	PowerPC se_rfmci and VLE, SPE2 and LSP insns with -many
-	I noticed recently that se_rfmci, a VLE mode instruction, was being
-	accepted by non-VLE cpus, and also that se_rfmci by itself in a
-	section did not cause SHF_PPC_VLE to be set.  ie. both testcases added
-	by this patch fail without the changes to tc-ppc.c here.
-
-	Also, VLE, SPE2 and LSP insns were not accepted by the assembler with
-	-many nor were SPE2 and LSP being disassembled with -Many.
-
-	gas/
-		* config/tc-ppc.c (ppc_setup_opcodes): Wrap long lines.  Add
-		vle_opcodes when PPC_OPCODE_VLE or PPC_OPCODE_ANY.  Simplify
-		disassembler index segment checks.  Add LSP and SPE2 opcodes
-		when PPC_OPCODE_ANY too.
-		(md_assemble): Correct logic adding PPC_APUINFO_VLE and
-		SHF_PPC_VLE.
-		* testsuite/gas/ppc/se_rfmci.s
-		* testsuite/gas/ppc/se_rfmci.d,
-		* testsuite/gas/ppc/se_rfmci_bad.d: New tests.
-		* testsuite/gas/ppc/ppc.exp: Run them.
-	opcodes/
-		* ppc-dis.c (print_insn_powerpc): Disassemble SPE2 and LSP insn
-		when -Many.
-		* ppc-opc.c (vle_opcodes <se_rfmci>): Comment.
-
-2022-10-16  Alan Modra  <amodra@gmail.com>
-
-	zlib-gabi to zstd woes
-	So we had a zlib-gabi .debug_info section that increased in size with
-	zstd, so much so that it was better to leave the section
-	uncompressed.  Things went horribly wrong when the section was read
-	again later.  The section was read again off disk using the
-	uncompressed size.  So you get the zlib section again with some
-	garbage at the end.  Fix that particular problem by setting the
-	section flag SEC_IN_MEMORY.  Any future read will get sec->contents.
-
-	Also, if the section is to be left uncompressed, the input
-	SHF_COMPRESSED flag needs to be reset otherwise objcopy will copy it
-	to output.
-
-	Finally, bfd_convert_section_contents needed a small update to handle
-	zstd compressed sections, and I've deleted bfd_cache_section_contents.
-
-		* bfd.c (bfd_convert_section_contents): Handle zstd.
-		* compress.c (bfd_compress_section_contents): When section
-		contents are uncompressed set SEC_IN_MEMORY flag,
-		compress_status to COMRESS_SECTION_NONE, and clear
-		SHF_COMPRESSED.  Set SEC_IN_MEMORY for compressed contents.
-		(bfd_get_full_section_contents): Don't check section size
-		against file size when SEC_IN_MEMORY.
-		(bfd_cache_section_contents): Delete function.
-		* elf32-arm.c (elf32_arm_get_synthetic_symtab): Expand
-		bfd_cache_section_contents here.
-		* bfd-in2.h: Regenerate.
-
-2022-10-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-15  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Don't rely on loop detection to stop unwinding
-	Setting SP of the next frame to the same address as the current frame
-	is an ugly way to stop the unwinding.  A cleaner way is to rely on
-	the frame_unwind_stop_reason function to return UNWIND_OUTERMOST.
-
-2022-10-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add boards/README
-	Add a file gdb/testsuite/boards/README, to make it easier to get a high-level
-	overview of the various boards.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/contrib] Handle STRIP_ARGS_{STRIP,KEEP}_DEBUG in cc-with-tweaks.sh
-	Handle new environment variable STRIP_ARGS_STRIP_DEBUG, defaulting to
-	--strip-debug in gdb/contrib/cc-with-tweaks.sh, such that we can easily
-	reproduce the PR29277 assert using:
-	...
-	$ export STRIP_ARGS_STRIP_DEBUG=--strip-all
-	$ make check RUNTESTFLAGS="gdb.base/jit-reader.exp \
-	    --target_board cc-with-gnu-debuglink"
-	...
-
-	For completeness sake and to avoid confusion about which of the two used strip
-	invocations the passed args apply to, likewise add STRIP_ARGS_KEEP_DEBUG,
-	defaulting to --only-keep-debug.
-
-	Script checked with shellcheck, no new warnings added.
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix heap-buffer-overflow in find_program_interpreter
-	With the test-case included in this patch, we run into:
-	...
-	(gdb) target remote localhost:2347^M
-	`target:twice-connect' has disappeared; keeping its symbols.^M
-	Remote debugging using localhost:2347^M
-	warning: Unable to find dynamic linker breakpoint function.^M
-	GDB will be unable to debug shared library initializers^M
-	and track explicitly loaded dynamic code.^M
-	Reading /usr/lib/debug/.build-id/$hex/$hex.debug from remote target...^M
-	0x00007ffff7dd4550 in ?? ()^M
-	(gdb) PASS: gdb.server/twice-connect.exp: session=second: gdbserver started
-	FAIL: gdb.server/twice-connect.exp: found interpreter
-	...
-
-	The problem originates in find_program_interpreter, where
-	bfd_get_section_contents is called to read .interp, but fails.  The function
-	returns false but the result is ignored, so find_program_interpreter returns
-	some random string.
-
-	Fix this by checking the result of the call to bfd_get_section_contents.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29652
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/unittest.exp with host board local-remote-host.exp
-	With test-case gdb.server/unittest.exp and host board local-remote-host.exp I
-	run into:
-	...
-	builtin_spawn build/gdbserver/gdbserver --selftest^M
-	ERROR: : spawn id exp7 not open
-	    while executing
-	"expect {
-	-i exp7 -timeout 10
-	    -i $server_spawn_id
-	    -re "Ran ($decimal) unit tests, 0 failed" {
-	        set num_ran $expect_out(1,string)
-	        gdb_assert "..."
-	    ("uplevel" body line 1)
-	    invoked from within
-	"uplevel $body" NONE : spawn id exp7 not open
-	UNRESOLVED: gdb.server/unittest.exp: unit tests
-	...
-
-	The problem is (as fixed for avr in commit df5b8876083 ("gdb/testsuite: better
-	handle failures in simavr board, reap simavr process")), that gdb_expect through
-	remote_expect adds a "-i <gdb spawn id> -timeout 10", which is the one causing
-	the error.
-
-	As in aforementioned commit, fix this by using expect instead.
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix host board local-remote-host-notty.exp timeouts
-	With test-case gdb.server/stop-reply-no-thread-multi.exp and host board
-	local-remote-host-notty.exp we occasionally run into a silent out, due to
-	getting:
-	...
-	(gdb) kill^M
-	(gdb) The program is not being run.^M
-	...
-	instead of the expected:
-	...
-	(gdb) kill^M
-	The program is not being run.^M
-	(gdb)
-	...
-
-	Likewise, we occasionally run into a nonsilent timeout:
-	...
-	(gdb) disconnect^M
-	(gdb) You can't do that when your target is `exec'^M
-	FAIL: gdb.server/stop-reply-no-thread.exp: to_disable=Tthread: t_nonstop=on: \
-	  disconnect (timeout)
-	...
-
-	Typically, this results in the test-case taking more than two minutes to run.
-
-	The problem can be reproduced using just:
-	...
-	$ ssh -l $USER 127.0.0.1 gdb -q -ex kill
-	...
-
-	Note that ssh by default uses -T which disables pseudo-tty allocation (as
-	opposed to -t which forces pseudo-tty allocation):
-	...
-	$ ssh -l $USER 127.0.0.1 -T tty
-	not a tty
-	$ ssh -l $USER 127.0.0.1 -t tty
-	/dev/pts/5
-	Connection to 127.0.0.1 closed.
-	...
-	and according to https://stackoverflow.com/a/63241102 the behaviour we're
-	seeing is specific to using '-T'.
-
-	The related host board local-remote-host.exp does use '-t', and the only
-	difference between the two boards mentioned is whether editing is on or off.
-
-	Fix this by:
-	- moving the content of local-remote-host-notty.exp into
-	  local-remote-host.exp
-	- consequently, extending the copyright years in local-remote-host.exp
-	- including local-remote-host.exp in local-remote-host-notty.exp
-	  (making local-remote-host-notty.exp use '-t')
-	- adding -iex "set editing off" to GDBFLAGS in local-remote-host-notty.exp
-
-	This results in the test-case taking just 6 seconds to run.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29669
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Disable styling in host board local-remote-host.exp
-	With test-case gdb.server/stop-reply-no-thread.exp and host board
-	local-remote-host.exp, I run into:
-	...
-	Breakpoint 1, ^[[33mmain^[[m () at ^[[32mstop-reply-no-thread.c^[[m:21^M
-	21        ^[[01;34mreturn^[[m ^[[35m0^[[m^[[31m;^[[m^M
-	(gdb) FAIL: gdb.server/stop-reply-no-thread.exp: to_disable=: t_nonstop=off: \
-	  continue to main
-	...
-
-	The problem is that styling is enabled, and that is causing a regexp mismatch.
-
-	With native, styling is disabled in default_gdb_init by doing
-	'setenv TERM "dumb"', but that only has effect because the build (where we
-	execute runtest, and consequently the setenv) and the host (where we execute
-	gdb) are the same.  For this host board however, gdb executes on a remote
-	host, and the setenv has no effect.
-
-	We could try to make some generic way to set TERM on the host, but for the
-	purposes of this test-case it seems sufficient to just add:
-	...
-	set GDBFLAGS "${GDBFLAGS} -iex \"set style enabled off\""
-	...
-	so let's go with that for now.
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom Tromey  <tromey@adacore.com>
-
-	Use scoped_value_mark in more places
-	I looked at all the spots using value_mark, and converted all the
-	straightforward ones to use scoped_value_mark instead.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-10-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Stop unwinding on error, but do not assert
-	When it's impossible to read the FPCCR and XPSR, the unwinding is
-	unpredictable as the it's not possible to determine the correct
-	frame size or padding.
-	The only sane thing to do in this condition is to stop the unwinding.
-
-	Example session without this patch:
-
-	  (gdb) bt
-	  #0  SVC_Handler () at .../GPIO/GPIO_EXTI/Src/stm32f4xx_it.c:112
-	  .../gdb/arm-tdep.c:3594: internal-error: arm_m_exception_cache: Assertion `safe_read_memory_unsigned_integer (FPCCR, ARM_INT_REGISTER_SIZE, byte_order, &fpccr)' failed.
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-	  ----- Backtrace -----
-	  0x5583bfb2a157 gdb_internal_backtrace_1
-	  ...
-	  ---------------------
-
-	  This is a bug, please report it.  For instructions, see:
-	  <https://www.gnu.org/software/gdb/bugs/>.
-
-	  Aborted (core dumped)
-
-	Example session with this patch:
-
-	  (gdb) bt
-	  #0  SVC_Handler () at .../GPIO/GPIO_EXTI/Src/stm32f4xx_it.c:112
-	  warning: Could not fetch required FPCCR content.  Further unwind is impossible.
-	  #1  <signal handler called>
-	  (gdb)
-
-	Reviewed-by: Pedro Alves <pedro@palves.net>
-
-2022-10-14  Alan Modra  <amodra@gmail.com>
-
-	PowerPC SPE disassembly and tests
-	Where sub and subf forms of an instruction exist we generally
-	disassemble to the extended insn sub form rather than the underlying
-	machine subf instruction.  Do so for SPE evsubw and evsubiw too.
-
-	spe_ambiguous.d always was a bit too optimistic.  There is no sensible
-	way to disassemble identical bytes back to different and original
-	source.  Instead change the test to check -Mraw results.
-
-	gas/
-		* testsuite/gas/ppc/ppc.exp: Run spe_ambiguous test.
-		* testsuite/gas/ppc/spe.d: Expect evsubw and evsubiw rather than
-		evsubfw and evsubifw.
-		* testsuite/gas/ppc/spe_ambiguous.s: Test evnor form equivalent
-		to evnot.
-		* testsuite/gas/ppc/spe_ambiguous.d: Test Mraw.
-	opcodes/
-		* ppc-opc.c (powerpc_opcodes): Move evsubw before evsubfw and
-		evsubiw before evsubifw and mark EXT.
-
-2022-10-14  Alan Modra  <amodra@gmail.com>
-
-	e200 LSP support
-	It has bothered me for a long time that we have disabled LSP (and SPE)
-	tests.  Also the LSP test comment indicating there is something wrong
-	with get_powerpc_dialect.  I don't think there is.  Decoding of a VLE
-	instruction depends on whether the processor is in VLE mode (some
-	processors support both VLE and standard PPC) which we flag per
-	section with SHF_PPC_VLE for decoding when disassembling.
-
-	Background: Some versions of powerpc e200 have "Lightweight Signal
-	Processing" support, examples being e200z215 and e200z425.  As far as
-	I can tell, LSP and SPE are mutually exclusive.  This seems to be
-	borne out by insn encoding, for example LSP "zvaddih" and SPE "evaddw"
-	have the same encoding.  So none of the processor descriptions in
-	ppc_opts ought to have both PPC_OPCODE_LSP and PPC_OPCODE_SPE/2, if we
-	want disassembly to work.  I also could not find anything to suggest
-	that the LSP insns are enabled only in VLE mode, which means the LSP
-	insns should not be in vle_opcodes.
-
-	Fix all this by moving the LSP insns to their own table, and add a new
-	e200z2 cpu entry with LSP support, removing LSP from -me200z4 and from
-	-mvle.  (Yes, I know, as I said above some of the e200z4 processors
-	have LSP.  Others have SPE.  It's hard to choose good options.  Think
-	of z2 as meaning earlier, z4 as later.)  Also add -mlsp to allow
-	adding the LSP insn set.
-
-	include/
-		* opcode/ppc.h (lsp_opcodes, lsp_num_opcodes): Declare.
-		(LSP_OP_TO_SEG): Define.
-	binutils/
-		* doc/binutils.texi: Update ppc docs.
-	gas/
-		* config/tc-ppc.c (ppc_setup_opcodes): Add lsp opcodes to ppc_hash.
-		* doc/c-ppc.texi: Document e200 and lsp.
-		* testsuite/gas/ppc/lsp-checks.d: Assemble with -me200z2.
-		* testsuite/gas/ppc/lsp.d: Likewise, disassembly too.
-		* testsuite/gas/ppc/ppc.exp: Don't xfail lsp test.
-	opcodes/
-		* ppc-dis.c (ppc_opts): Add e200z2 and lsp.  Don't set
-		PPC_OPCODE_LSP for e200z4 or vle.
-		(ppc_parse_cpu): Mutually exclude LSP and SPE.
-		(LSP_OPCD_SEGS): Define.
-		(lsp_opcd_indices): New array.
-		(disassemble_init_powerpc): Init lsp_opcd_indices.
-		(lookup_lsp): New function.
-		(print_insn_powerpc): Call it.
-		* ppc-opc.c: Include libiberty.h for ARRAY_SIZE and use throughout.
-		(vle_opcodes): Move LSP opcodes to..
-		(lsp_opcodes): ..here, and sort.
-		(lsp_num_opcodes): New.
-
-2022-10-14  Alan Modra  <amodra@gmail.com>
-
-	PR29677, Field `the_bfd` of `asymbol` is uninitialised
-	Besides not initialising the_bfd of synthetic symbols, counting
-	symbols when sizing didn't match symbols created if there were any
-	dynsyms named "".  We don't want synthetic symbols without names
-	anyway, so get rid of them.  Also, simplify and correct sanity checks.
-
-		PR 29677
-		* mach-o.c (bfd_mach_o_get_synthetic_symtab): Rewrite.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Drop unnecessary -Wl,-soname in gdb.base/skip-solib.exp
-	I noticed in gdb.base/skip-solib.exp:
-	...
-	if {[gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} ${binfile_lib} \
-	        [list debug -Wl,-soname,${libname}.so]] != ""} {
-	    return -1
-	}
-	...
-	that the -Wl,-soname argument is missing an ldflags= prefix, but adding it
-	gives us a duplicate:
-	...
-	Executing on host: gcc -fno-stack-protector \
-	  outputs/gdb.base/skip-solib/skip-solib-lib.c.o  -fdiagnostics-color=never \
-	  -shared -g  -Wl,-soname,libskip-solib.so -Wl,-soname,libskip-solib.so -lm \
-	  -o outputs/gdb.base/skip-solib/libskip-solib.so    (timeout = 300)
-	...
-	so apparently it's taken care of by gdb_compile_shlib.
-
-	Drop the inactive and also unnecessary -Wl,-soname,${libname}.so from the
-	flags list for the gdb_compile_shlib call.
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/infoline-reloc-main-from-zero.exp with PIE
-	With test-case gdb.base/infoline-reloc-main-from-zero.exp and target board
-	unix/-fPIE/-pie I run into:
-	...
-	gdb compile failed, ld: infoline-reloc-main-from-zero: error: \
-	  PHDR segment not covered by LOAD segment
-	collect2: error: ld returned 1 exit status
-	...
-
-	When running with native, I find that the executable is static:
-	...
-	$ file infoline-reloc-main-from-zero
-	infoline-reloc-main-from-zero: ELF 64-bit LSB executable, x86-64, \
-	  version 1 (SYSV), statically linked, BuildID[sha1]=$hex, with debug_info, \
-	  not stripped
-	...
-	despite not having been compiled with -static.
-
-	Fix the compilation by adding -static to the compilation flags.
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/infoline-reloc-main-from-zero.exp with clang
-	With test-case gdb.base/infoline-reloc-main-from-zero.exp and clang I run into:
-	...
-	gdb compile failed, clang-13.0: warning: -e main: 'linker' input unused \
-	  [-Wunused-command-line-argument]
-	clang-13.0: warning: -Wl,-Ttext=0x00: 'linker' input unused \
-	  [-Wunused-command-line-argument]
-	clang-13.0: warning: -Wl,-N: 'linker' input unused \
-	  [-Wunused-command-line-argument]
-	UNTESTED: gdb.base/infoline-reloc-main-from-zero.exp: \
-	  infoline-reloc-main-from-zero.exp
-	UNTESTED: gdb.base/infoline-reloc-main-from-zero.exp: failed to compile
-	...
-
-	Fix this by using ldflags instead of additional_flags.
-
-	Likewise, fix all occurrences of:
-	...
-	$ find gdb/testsuite -name *.exp | xargs grep additional_flags.*Wl
-	...
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix nopie test-cases with target board unix/-fPIE/-pie
-	Compilers default to either PIE or no-PIE executables.
-
-	In order to test PIE executables with a compiler that produces non-PIE by
-	default, we can use target board unix/-fPIE/-pie, which set the multilib_flags
-	of the target board to "-fPIE -pie".
-
-	Likewise, we can use target board unix/-fno-PIE/-no-pie with a compiler that
-	produces PIE by default.
-
-	The target board unix/-fno-PIE/-no-pie has a potential problem when compiling
-	shared libs, because the multilib_flags will override the attempts of
-	gdb_compile_shlib to compile with -fPIC.  This is taken care of by running the
-	body of gdb_compile_shlib wrapped in with_PIE_multilib_flags_filtered.
-
-	The target board unix/-fPIE/-pie has a problem with nopie compilations.  The
-	current approach is to do the compilation hoping for the best, and if we find
-	out that the resulting executable is PIE despite specifying nopie, we error
-	out with the standard error message "nopie failed to prevent PIE executable".
-
-	That however does not work for hard-coded assembly nopie test-cases, which will
-	just noisily refuse to compile:
-	...
-	ld: amd64-disp-step0.o: relocation R_X86_64_32S against `.text' can not be \
-	  used when making a PIE object; recompile with -fPIE^M
-	...
-
-	Fix this in gdb_compile by filtering out the PIE settings in the target board
-	multilib_flags when pie or nopie is specified.
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Factor out with_PIE_multilib_flags_filtered
-	Factor out new procs with_PIE_multilib_flags_filtered and
-	with_multilib_flags_filtered from proc gdb_compile_shlib.
-
-	Tested on x86_64-linux.
-
-2022-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add cond_wrap proc
-	Add a new proc cond_wrap, that can be used to replace the repetitive:
-	...
-	    if { $cond } {
-		wrap {
-		    <body>
-		}
-	    } else {
-		<body>
-	    }
-	...
-	with the shorter:
-	...
-	    cond_wrap $cond wrap {
-		<body>
-	    }
-	...
-
-	Tested on x86_64-linux.
-
-2022-10-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb: add Torbjörn Svensson to gdb/MAINTAINERS
-
-2022-10-14  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: Zicbo{m,p,z} adjustments to riscv_multi_subset_supports_ext()
-	The lack thereof did caused gas to issue "internal: unreachable
-	INSN_CLASS_*" errors when trying to assemble respective insns without
-	the feature(s) enabled via e.g. ".option arch, ...". Of course a proper
-	hint towards the missing extension then wasn't given either.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Imply 'Zicsr' from privileged extensions with CSRs
-	'H', 'Smstateen', 'Sscofpmf' and 'Sstc' are four privileged extensions with
-	their CSR definitions and 'Smepmp' is a privileged extension with additional
-	CSR bits.
-
-	Volume II: Privileged Architecture of the RISC-V ISA Manual states that the
-	privileged architecture requires the 'Zicsr' extension.  However, current
-	GNU Binutils has no direct way whether the program has dependency to the
-	privileged architecture itself.
-
-	As a workaround, we should add implications from privileged extensions that
-	either add new CSRs, extend existing CSRs or depends on using CSRs.
-
-	This commit adds such implications for existing privileged extensions that
-	satisfy this condition.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/march-imply-h.d: New test, at least for 'H'.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_implicit_subsets): Add 'Zicsr'
-		implicications for privileged extensions 'H', 'Smstateen',
-		'Sscofpmf', 'Sstc' and 'Smepmp'.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	opcodes/riscv-dis.c: Remove last_map_state
-	Before changing the core disassembler, we take care of minor code clarity
-	issues and improve readability.
-
-	This commit removes unused variable last_map_state (set by the
-	print_insn_riscv function but not read anywhere else).
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (last_map_state): Remove.
-		(print_insn_riscv): Remove setting last_map_state.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	opcodes/riscv-dis.c: Make XLEN variable static
-	Before changing the core disassembler, we take care of minor code clarity
-	issues and improve readability.
-
-	Since xlen variable is not (and should not) used outside riscv-dis.c,
-	this commit makes this variable static.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (xlen): Make this variable static.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	opcodes/riscv-dis.c: Use bool type whenever possible
-	Before changing the core disassembler, we take care of minor code clarity
-	issues and improve readability.
-
-	This commit replaces uses of int with bool whenever possible.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (no_aliases) Change type to bool.
-		(set_default_riscv_dis_options): Use boolean.
-		(parse_riscv_dis_option_without_args): Likewise.
-		(riscv_disassemble_insn): Use boolean keywords.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	opcodes/riscv-dis.c: Tidying with spacing
-	Before changing the core disassembler, we take care of minor code clarity
-	issues and improve readability.
-
-	This commit takes care of improper spacing for code clarity.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (riscv_disassemble_insn): Tidying with spacing.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	opcodes/riscv-dis.c: Tidying with comments/clarity
-	Before changing the core disassembler, we take care of minor code clarity
-	issues and improve readability.
-
-	First, we need to clarify the roles of variables and code portions.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (xlen): Move before default_isa_spec. Add comment.
-		(default_isa_spec, default_priv_spec): Add comment.
-		(riscv_gpr_names, riscv_fpr_names): Likewise.
-		(parse_riscv_dis_option_without_args): Likewise.
-		(parse_riscv_dis_option, parse_riscv_dis_options): Likewise.
-		(maybe_print_address): Likewise.
-		(riscv_disassemble_insn): Fix comment about the Zfinx "extension".
-		Add comment about the riscv_multi_subset_supports call.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Test DWARF register number for "fp"
-	This commit adds "fp" (x8 or s0) to dw-regnums.{s,d}.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/dw-regnums.s: Add "fp".
-		* testsuite/gas/riscv/dw-regnums.d: Likewise.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Move standard hints before all instructions
-	Because all standard hints must be placed before corresponding instruction
-	for the disassembler, they may taint basic RVI instruction section.
-
-	This commit moves all standard hints before all basic RVI instructions
-	to improve maintainability.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_opcodes): Move all standard hints before all
-		standard instructions.
-
-2022-10-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Move certain arrays to riscv-opc.c
-	This is a part of small tidying (declare tables in riscv-opc.c).
-
-	include/ChangeLog:
-
-		* opcode/riscv.h (riscv_rm, riscv_pred_succ): Move declarations to
-		opcodes/riscv-opc.c.  New non-static definitions.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_rm, riscv_pred_succ): Move from
-		include/opcode/riscv.h.  Add description.
-
-2022-10-14  Fangrui Song  <i@maskray.me>
-
-	ld: Add --undefined-version
-	This cancels a previous --no-undefined-version.
-	gold has had --undefined-version for a long time.
-
-2022-10-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-13  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, fix gdb.base/watchpoint.exp on Power 9
-	Test gdb.base/watchpoint.exp generates 4 test errors on Power 9.  The
-	test uses the test [target_info exists gdb,no_hardware_watchpoints] to
-	determine if the processor supports hardware watchpoints.  The check
-	only examines the processor type to determine if it supports hardware
-	watchpoints.
-
-	The PowerPC processors support hardware watchpoints with the
-	exception of Power 9. The hardware watchpoint support is disabled on
-	Power 9.  The test skip_hw_watchpoint_tests must be used to correctly
-	determine if the PowerPC processor supports hardware watchpoints.
-
-	This patch replaces the [target_info exists gdb,no_hardware_watchpoints]
-	with the skip_hw_watchpoint_tests_p check.  With the patch, the test runs
-	on Power 9 with hardware watchpoint force-disabled.  The test runs on
-	all other PowerPC processors with and without hardware watchpoints
-	enabled.
-
-	The patch has been tested on Power 9 to verify the test only runs with
-	hardware breakpoints disabled.  The patch has been tested on X86-64 with
-	no regression failures.  The test fails on Power 10 due to an internal GDB
-	error due to resource management.  The resource management issue will be
-	addressed in another patch.
-
-2022-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/macro-source-path.exp with -m32
-	With test-case gdb.dwarf2/macro-source-path.exp and target board unix/-m32, I
-	run into:
-	...
-	as: macro-source-path-gcc11-ld238-dw5-filename-641.o: \
-	  unsupported relocation type: 0x1^M
-	...
-
-	The problem is that we have 64-bit dwarf so the debug_line offset in the
-	.debug_macro section is an 8-byte entity, emitted using ".8byte":
-	...
-	        .section .debug_macro
-	.Lcu_macros4:
-	        .2byte        5                 /* version */
-	        .byte        3                  /* flags */
-	        .8byte        .LLlines3         /* debug_line offset */
-	...
-	but the linker doesn't support 8-byte relocation types on a 32-bit architecture.
-
-	This is similar to what was fixed in commit a5ac8e7fa3b
-	("[gdb/testsuite] Fix 64-bit dwarf test-cases with -m32") for for instance
-	.debug_abbrev.
-
-	Fix this in the same way, by using _op_offset to emit the debug_line offset.
-
-	Tested on x86_64-linux with native and target board unix/-m32.
-
-2022-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/entry-value-typedef.exp with -m32
-	With test-case gdb.dwarf2/entry-value-typedef.exp and target board unix/-m32,
-	I run into:
-	...
-	builtin_spawn -ignore SIGHUP g++ -fno-stack-protector \
-	  gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S \
-	  -fdiagnostics-color=never -Lbuild/libiberty -lm -m32 \
-	  -o outputs/gdb.dwarf2/entry-value-typedef/entry-value-typedef^M
-	entry-value-typedef.cpp: Assembler messages:^M
-	entry-value-typedef.cpp:38: Error: bad register name `%rbp'^M
-	...
-
-	The problem is that the test-cases selects an amd64 .S file based on the check:
-	...
-	if { [istarget "x86_64-*-linux*"] } {
-	...
-	which is also true for target board unix/-m32 on x86_64-linux.
-
-	Fix this by adding the missing is_lp64_target check.
-
-	Tested on x86_64-linux, using native and target board unix/-m32.
-
-2022-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.mi/mi-disassemble.exp with -m32
-	With target board unix/-m32 and test-case gdb.mi/mi-disassemble.exp we have:
-	...
-	(gdb) ^M
-	print/x *((unsigned char *) 0x8048485)^M
-	&"print/x *((unsigned char *) 0x8048485)\n"^M
-	~"$9 = 0x83\n"^M
-	^done^M
-	(gdb) ^M
-	PASS: gdb.mi/mi-disassemble.exp: get valueof "*((unsigned char *) 0x8048485)"
-	FAIL: gdb.mi/mi-disassemble.exp: byte at 0x8048485 matches
-	...
-	The test-case passes with native.
-
-	With native we see in gdb.log that variable longest_insn_bytes is:
-	...
-	Longest instruction at 0x0000000000400549 with bytes '48 8b 05 20 01 00 00'
-	...
-	and variable split_bytes (added debug puts) ends up as:
-	...
-	SPLIT_BYTES: 48 8b 05 20 01 00 00
-	...
-
-	But with unix/-m32 we have longest_insn_byte:
-	...
-	Longest instruction at 0x08048481 with bytes '8d 4c 24 04        '
-	...
-	and split_bytes ends up as:
-	...
-	SPLIT_BYTES: 8d 4c 24 04 {} {} {} {} {} {} {} {}
-	...
-	so the trailing whitespace is translated by split to empty bytes, and the
-	mismatch FAILs are generated for those.
-
-	Fix this by stripping the whitespace, which makes us end up with a different
-	and indeed longer insn:
-	...
-	Longest instruction at 0x08048492 with bytes 'dd 05 98 85 04 08'
-	...
-
-	Tested on x86_64-linux, with native and target board unix/-m32.
-
-2022-10-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-12  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, fix test gdb.base/watchpoint-stops-at-right-insn.exp
-	Test gdb.base/watchpoint-stops-at-right-insn.exp generates 4 test errors
-	on Power 9.  The test uses the test [target_info exists gdb,
-	no_hardware_watchpoints] to determine if the processor supports hardware
-	watchpoints.  The check only examines the processor type to determine if
-	it supports hardware watchpoints.  Note, the test works fine on Power 10.
-
-	The PowerPC processors support hardware watchpoints with the
-	exception of Power 9. The hardware watchpoint support is disabled on
-	Power 9.  The test skip_hw_watchpoint_tests must be used to correctly
-	determine if the PowerPC processor supports hardware watchpoints.
-
-	This patch replaces the [target_info exists gdb,no_hardware_watchpoints]
-	with the skip_hw_watchpoint_tests_p check.  With the patch, the test is
-	disabled on Power 9 but runs on all other PowerPC processors.
-
-	The patch has been tested on Power 9, Power 10 and X86-64 with no
-	regression failures.
-
-2022-10-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop "regmask" static variable
-	Replace its two uses by more direct checks, paralleling what's already
-	there for SIMD registers.
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Factor out elf_symfile_read_dwarf2
-	Factor out elf_symfile_read_dwarf2 from elf_symfile_read.  NFC.
-
-	Tested on x86_64-linux.
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix ctf test-cases on openSUSE Tumbleweed
-	When running test-case gdb.base/ctf-constvars.exp on openSUSE Tumbleweed (with
-	system gcc version 12, providing gcc -gctf support, enabling the ctf test-cases
-	in the gdb testsuite), I run into:
-	...
-	(gdb) print vox^M
-	'vox' has unknown type; cast it to its declared type^M
-	(gdb) FAIL: gdb.base/ctf-constvars.exp: print vox
-	...
-
-	There are two causes for this:
-	- the linker flags are missing --ctf-variables, so the information for variable
-	  vox is missing (reported in PR29468), and
-	- the executable contains some dwarf2 due to some linked-in glibc objects,
-	  so the ctf info is ignored (reported in PR29160).
-
-	By using:
-	- -Wl,--ctf-variable,
-	- -Wl,--strip-debug, and
-	we can make the test-case and some similar test-cases pass.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29160
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29468
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Silence warnings about obsolete -gstabs
-	When running test-case gdb.base/gdbindex-stabs.exp on openSUSE Tumbleweed (with
-	gcc 12) I get:
-	...
-	gdb compile failed, gdb/testsuite/gdb.base/gdbindex-stabs.c: warning: \
-	  STABS debugging information is obsolete and not supported anymore
-	...
-
-	Silence the warning by passing quiet to gdb_compile.  Likewise in two other
-	test-cases.
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Replace remaining -gt with -gctf
-	With test-cases gdb.base/cvexpr.exp and gdb.base/whatis.exp I run into:
-	...
-	gdb compile failed, gcc: error: unrecognized debug output level 't'
-	...
-
-	This is due to using additional_flags=-gt.
-
-	Commit ffb3f587933 ("CTF: multi-CU and archive support") replaced
-	additional_flags=-gt with additional_flags=-gctf in gdb.ctf/*.exp and
-	gdb.base/ctf-*.exp.
-
-	Do the same in these two test-cases.
-
-	Tested on x86_64-linux.
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/infoline-reloc-main-from-zero.exp with recent ld
-	On openSUSE Tumbleweed (with ld 2.39) and test-case
-	gdb.base/infoline-reloc-main-from-zero.exp, I get:
-	...
-	gdb compile failed, ld: warning: infoline-reloc-main-from-zero has a LOAD \
-	  segment with RWX permissions
-	UNTESTED: gdb.base/infoline-reloc-main-from-zero.exp: \
-	  infoline-reloc-main-from-zero.exp
-	...
-
-	Fix this by compiling with -Wl,--no-warn-rwx-segments.
-
-	Tested on x86_64-linux.
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/nested-subp{2,3}.exp with recent ld
-	On openSUSE Tumbleweed (with ld 2.39) I get for test-case
-	gdb.base/nested-subp2.exp:
-	...
-	gdb compile failed, ld: warning: tmp.o: requires executable stack \
-	  (because the .note.GNU-stack section is executable)
-	...
-
-	Fix this by compiling with -Wl,--no-warn-execstack.
-
-	Likewise in gdb.base/nested-subp3.exp
-
-	Tested on x86_64-linux.
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove unnecessary perror in some test-cases
-	On openSUSE Tumbleweed I noticed:
-	...
-	UNTESTED: gdb.dwarf2/fission-absolute-dwo.exp: fission-absolute-dwo.exp
-	ERROR: failed to compile fission-absolute-dwo
-	...
-
-	The ERROR is unnecessary, given that an UNTESTED is already emitted.
-
-	Furthermore, it could be argued that it is incorrect because it's not a
-	testsuite error to not be able to compile something, and UNTESTED or
-	UNSUPPORTED is more appropriate.
-
-	Remove the perror call, likewise in fission-relative-dwo.exp.
-
-	Tested on x86_64-linux.
-
-2022-10-12  Nick Clifton  <nickc@redhat.com>
-
-	Fix objcopy's error message when it cannot add a .gnu_debuglink section because the section already exists.
-		PR 29665
-		* objcopy.c (copy_object): Use the input filename when
-		reporting that a .gnu_debuglink section already exists.
-
-2022-10-12  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/ppc: Fix core_find_mapping diagnostics
-	Because "%p" is the pointer conversion specifier to print a pointer in an
-	implementation-defined manner, the result with format string containing
-	"0x%p" can be strange.  For instance, core_map_find_mapping prints error
-	containing "0x0x...." (processor is not NULL) or "0x(null)" (processor is
-	NULL) on glibc.
-
-	This commit replaces "0x%p" with "%p" to prevent unpredictable behavior.
-
-2022-10-12  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/ppc: fixes for arguments to printf style functions
-	After the recent series of fixes to mark more functions in the
-	simulator with ATTRIBUTE_PRINTF, there were some build failures in the
-	ppc sim due, in some cases, to bugs with the arguments being passed,
-	and in other cases, the issues were (maybe) less serious, with
-	arguments being the wrong size, or type, for the printf format being
-	used.
-
-	This commit fixes all of the issues that I ran into.
-
-	In each case I selected the easiest solution to the problem, which is
-	usually just casting the argument to the correct type.  If anyone
-	later on thinks the print format should change, please feel free to do
-	that.  What we have here should keep the simulator basically working
-	as it does currently, which is my goal with this commit.
-
-2022-10-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/contrib] Use OBJCOPY everywhere in cc-with-tweaks.sh
-	I noticed that the $want_gnu_debuglink code in gdb/contrib/cc-with-tweaks.sh
-	uses objcopy instead of $OBJCOPY.  Fix this.
-
-	Script checked with shellcheck, no new warnings added.
-
-	Tested on x86_64-linux.
-
-2022-10-12  Simon Marchi  <simon.marchi@efficios.com>
-
-	Re-apply "Pass PKG_CONFIG_PATH down from top-level Makefile"
-	Commit 228cf97dd3c8 ("Merge configure.ac from gcc project") undid the
-	change originally done in de83289ef32e ("Pass PKG_CONFIG_PATH down from
-	top-level Makefile").  Re-apply it.
-
-	Change-Id: I91138dfca41c43b05e53e445f62e4b27882536bf
-
-2022-10-12  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: rename target_read_auxv(target_ops *) to target_read_auxv_raw
-	Having two overloads of target_read_auxv that don't have the same goals
-	is confusing.  Rename the one that reads from an explicit target_ops to
-	target_read_auxv_raw.  Also, it occured to me that the non-raw version
-	could use the raw version, that reduces duplication a bit.
-
-	Change-Id: I28e5f7cecbfcacd0174d4686efb3e4a23b4ad491
-
-2022-10-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-12  Alan Modra  <amodra@gmail.com>
-
-	Re: Merge configure.ac from gcc project
-	Also copy over config.acx.m4, and regenerate.
-
-2022-10-11  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix auxv caching
-	There's a flaw in the interaction of the auxv caching and the fact that
-	target_auxv_search allows reading auxv from an arbitrary target_ops
-	(passed in as a parameter).  This has consequences as explained in this
-	thread:
-
-	  https://inbox.sourceware.org/gdb-patches/20220719144542.1478037-1-luis.machado@arm.com/
-
-	In summary, when loading an AArch64 core file with MTE support by
-	passing the executable and core file names directly to GDB, we see the
-	MTE info:
-
-	    $ ./gdb -nx --data-directory=data-directory -q aarch64-mte-gcore aarch64-mte-gcore.core
-	    ...
-	    Program terminated with signal SIGSEGV, Segmentation fault
-	    Memory tag violation while accessing address 0x0000ffff8ef5e000
-	    Allocation tag 0x1
-	    Logical tag 0x0.
-	    #0  0x0000aaaade3d0b4c in ?? ()
-	    (gdb)
-
-	But if we do it as two separate commands (file and core) we don't:
-
-	    $ ./gdb -nx --data-directory=data-directory -q -ex "file aarch64-mte-gcore" -ex "core aarch64-mte-gcore.core"
-	    ...
-	    Program terminated with signal SIGSEGV, Segmentation fault.
-	    #0  0x0000aaaade3d0b4c in ?? ()
-	    (gdb)
-
-	The problem with the latter is that auxv data gets improperly cached
-	between the two commands.  When executing the file command, auxv gets
-	first queried here, when loading the executable:
-
-	    #0  target_auxv_search (ops=0x55555b842400 <exec_ops>, match=0x9, valp=0x7fffffffc5d0) at /home/simark/src/binutils-gdb/gdb/auxv.c:383
-	    #1  0x0000555557e576f2 in svr4_exec_displacement (displacementp=0x7fffffffc8c0) at /home/simark/src/binutils-gdb/gdb/solib-svr4.c:2482
-	    #2  0x0000555557e594d1 in svr4_relocate_main_executable () at /home/simark/src/binutils-gdb/gdb/solib-svr4.c:2878
-	    #3  0x0000555557e5989e in svr4_solib_create_inferior_hook (from_tty=1) at /home/simark/src/binutils-gdb/gdb/solib-svr4.c:2933
-	    #4  0x0000555557e6e49f in solib_create_inferior_hook (from_tty=1) at /home/simark/src/binutils-gdb/gdb/solib.c:1253
-	    #5  0x0000555557f33e29 in symbol_file_command (args=0x7fffffffe01c "aarch64-mte-gcore", from_tty=1) at /home/simark/src/binutils-gdb/gdb/symfile.c:1655
-	    #6  0x00005555573319c3 in file_command (arg=0x7fffffffe01c "aarch64-mte-gcore", from_tty=1) at /home/simark/src/binutils-gdb/gdb/exec.c:555
-	    #7  0x0000555556e47185 in do_simple_func (args=0x7fffffffe01c "aarch64-mte-gcore", from_tty=1, c=0x612000047740) at /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:95
-	    #8  0x0000555556e551c9 in cmd_func (cmd=0x612000047740, args=0x7fffffffe01c "aarch64-mte-gcore", from_tty=1) at /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:2543
-	    #9  0x00005555580e63fd in execute_command (p=0x7fffffffe02c "e", from_tty=1) at /home/simark/src/binutils-gdb/gdb/top.c:692
-	    #10 0x0000555557771913 in catch_command_errors (command=0x5555580e55ad <execute_command(char const*, int)>, arg=0x7fffffffe017 "file aarch64-mte-gcore", from_tty=1, do_bp_actions=true) at /home/simark/src/binutils-gdb/gdb/main.c:513
-	    #11 0x0000555557771fba in execute_cmdargs (cmdarg_vec=0x7fffffffd570, file_type=CMDARG_FILE, cmd_type=CMDARG_COMMAND, ret=0x7fffffffd230) at /home/simark/src/binutils-gdb/gdb/main.c:608
-	    #12 0x00005555577755ac in captured_main_1 (context=0x7fffffffda10) at /home/simark/src/binutils-gdb/gdb/main.c:1299
-	    #13 0x0000555557775c2d in captured_main (data=0x7fffffffda10) at /home/simark/src/binutils-gdb/gdb/main.c:1320
-	    #14 0x0000555557775cc2 in gdb_main (args=0x7fffffffda10) at /home/simark/src/binutils-gdb/gdb/main.c:1345
-	    #15 0x00005555568bdcbe in main (argc=10, argv=0x7fffffffdba8) at /home/simark/src/binutils-gdb/gdb/gdb.c:32
-
-	Here, target_auxv_search is called on the inferior's target stack.  The
-	target stack only contains the exec target, so the query returns empty
-	auxv data.  This gets cached for that inferior in `auxv_inferior_data`.
-
-	In its constructor (before it is pushed to the inferior's target stack),
-	the core_target needs to identify the right target description from the
-	core, and for that asks the gdbarch to read a target description from
-	the core file.  Because some implementations of
-	gdbarch_core_read_description (such as AArch64's) need to read auxv data
-	from the core in order to determine the right target description, the
-	core_target passes a pointer to itself, allowing implementations to call
-	target_auxv_search it.  However, because we have previously cached
-	(empty) auxv data for that inferior, target_auxv_search searched that
-	cached (empty) auxv data, not auxv data read from the core.  Remember
-	that this data was obtained by reading auxv on the inferior's target
-	stack, which only contained an exec target.
-
-	The problem I see is that while target_auxv_search offers the
-	flexibility of reading from an arbitrary (passed as an argument) target,
-	the caching doesn't do the distinction of which target is being queried,
-	and where the cached data came from.  So, you could read auxv from a
-	target A, it gets cached, then you try to read auxv from a target B, and
-	it returns the cached data from target A.  That sounds wrong.  In our
-	case, we expect to read different auxv data from the core target than
-	what we have read from the target stack earlier, so it doesn't make
-	sense to hit the cache in this case.
-
-	To fix this, I propose splitting the code paths that read auxv data from
-	an inferior's target stack and those that read from a passed-in target.
-	The code path that reads from the target stack will keep caching,
-	whereas the one that reads from a passed-in target won't.  And since,
-	searching in auxv data is independent from where this data came from,
-	split the "read" part from the "search" part.
-
-	From what I understand, auxv caching was introduced mostly to reduce
-	latency on remote connections, when doing many queries.  With the change
-	I propose, only the queries done while constructing the core_target
-	end up not using cached auxv data.  This is fine, because there are just
-	a handful of queries max, done at this point, and reading core files is
-	local.
-
-	The changes to auxv functions are:
-
-	 - Introduce 2 target_read_auxv functions.  One reads from an explicit
-	   target_ops and doesn't do caching (to be used in
-	   gdbarch_core_read_description context).  The other takes no argument,
-	   reads from the current inferior's target stack (it looks just like a
-	   standard target function wrapper) and does caching.
-
-	   The first target_read_auxv actually replaces get_auxv_inferior_data,
-	   since it became a trivial wrapper around it.
-
-	 - Change the existing target_auxv_search to not read auxv data from the
-	   target, but to accept it as a parameter (a gdb::byte_vector).  This
-	   function doesn't care where the data came from, it just searches in
-	   it.  It still needs to take a target_ops and gdbarch to know how to
-	   parse auxv entries.
-
-	 - Add a convenience target_auxv_search overload that reads auxv
-	   data from the inferior's target stack and searches in it.  This
-	   overload is useful to replace the exist target_auxv_search calls that
-	   passed the `current_inferior ()->top_target ()` target and keep the
-	   call sites short.
-
-	 - Modify parse_auxv to accept a target_ops and gdbarch to use for
-	   parsing entries.  Not strictly related to the rest of this change,
-	   but it seems like a good change in the context.
-
-	Changes in architecture-specific files (tdep and nat):
-
-	 - In linux-tdep, linux_get_hwcap and linux_get_hwcap2 get split in two,
-	   similar to target_auxv_search.  One version receives auxv data,
-	   target and arch as parameters.  The other gets everything from the
-	   current inferior.  The latter is for convenience, to avoid making
-	   call sites too ugly.
-
-	 - Call sites of linux_get_hwcap and linux_get_hwcap2 are adjusted to
-	   use either of the new versions.  The call sites in
-	   gdbarch_core_read_description context explicitly read auxv data from
-	   the passed-in target and call the linux_get_hwcap{,2} function with
-	   parameters.  Other call sites use the versions without parameters.
-
-	 - Same idea for arm_fbsd_read_description_auxv.
-
-	 - Call sites of target_auxv_search that passed
-	   `current_inferior ()->top_target ()` are changed to use the
-	   target_auxv_search overload that works in the current inferior.
-
-	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
-	Reviewed-By: Luis Machado <luis.machado@arm.com>
-	Change-Id: Ib775a220cf1e76443fb7da2fdff8fc631128fe66
-
-2022-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.debuginfod/fetch_src_and_symbols.exp with native-gdbserver
-	When running test-case gdb.debuginfod/fetch_src_and_symbols.exp with target
-	board native-gdbserver, I get:
-	...
-	Running gdb.debuginfod/fetch_src_and_symbols.exp ...
-	ERROR: tcl error sourcing gdb.debuginfod/fetch_src_and_symbols.exp.
-	ERROR: gdbserver does not support start without extended-remote
-	    while executing
-	"error "gdbserver does not support $command without extended-remote""
-	    (procedure "gdb_test_multiple" line 51)
-	    invoked from within
-	"gdb_test_multiple $command $message {*}$opts $user_code"
-	    (procedure "gdb_test" line 56)
-	    invoked from within
-	"gdb_test "start" "Temporary breakpoint.*""
-	...
-
-	Fix this by replacing gdb_test "start" with runto_main.
-
-	Tested on x86_64-linux.
-
-2022-10-11  Nick Clifton  <nickc@redhat.com>
-
-	Re: Error: attempt to get value of unresolved symbol `L0'
-		* symbols.c (S_GET_VALUE): If the unresolved symbol is the fake
-		label provide a more helpful error message to the user.
-		(S_GET_VALUE_WHERE): Like S_GET_VALUE, but includes a file/line
-		number for error reporting purposes.
-		* symbols.h (S_GET_VALUE_WHERE): Prototype.
-		* write.c (fixup_segment): Use S_GET_VALUE_WHERE.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Initialize pbb_br_* by default
-	On the files generated by sim/common/genmloop.sh, variables pbb_br_type and
-	pbb_br_npc are declared uninitialized and passed to other functions in some
-	cases.  Despite that those are harmless, they will generate GCC warnings
-	("-Wmaybe-uninitialized").
-
-	This commit ensures that pbb_br_type and pbb_br_npc variables are
-	initialized to a harmless value.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Check known getopt definition existence
-	Clang generates a warning if there is a function declaration/definition
-	with zero arguments.  Such declarations/definitions without a prototype (an
-	argument list) are deprecated forms of indefinite arguments
-	("-Wdeprecated-non-prototype").  On the default configuration, it causes a
-	build failure (unless "--disable-werror" is specified).
-
-	include/getopt.h defines some getopt function definitions but one of them
-	has a form "extern int getopt ();".  If this form is selected in
-	include/getopt.h, Clang generates a warning and the build fails by default.
-
-	In really old environments, this getopt definition with no arguments is
-	necessary (because the definition may change between environments).
-	However, this definition is now a cause of problems on modern environments.
-
-	A good news is, this definition is not always selected (e.g. if used by
-	binutils/*.c).  This is because configuration scripts of binutils, gas,
-	gprof and ld tries to find known definition of getopt function is used and
-	defines HAVE_DECL_GETOPT macro.  If this macro is defined when getopt.h is
-	included, a good form of getopt is used and Clang won't generate warnings.
-
-	This commit adds a modified portion of ld/configure.ac to find the known
-	getopt definition.  If we could find one (and we *will* in most modern
-	environments), we don't need to rely on the deprecated definition.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-	    Andrew Burgess  <aburgess@redhat.com>
-
-	sim: Suppress non-literal printf warning
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral"). On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid this warning, this commit now uses vsnprintf to format error
-	message and pass the message to sim_engine_abort function with another
-	printf-style formatting.
-
-	This patch is mostly authored by Andrew Burgess and slightly modified by
-	Tsukasa OI.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Make WITH_{TRACE,PROFILE}-based macros bool
-	Clang generates a warning if there is an ambiguous expression (possibly a
-	bitwise operation (& or |), but a logical operator (&& or ||) is used;
-	"-Wconstant-logical-operand").  On the default configuration, it causes a
-	build failure (unless "--disable-werror" is specified).
-
-	This is caused by predicate macros that use the form (base_variable & flag).
-	Clang considers them as regular integer values (not boolean) and
-	generates that warning.
-
-	This commit makes Clang think those predicate macros to be boolean.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Remove self-assignments
-	Clang generates a warning if there is a redundant self-assignment
-	("-Wself-assign").  On the default configuration, it causes a build failure
-	(unless "--disable-werror" is specified).
-
-	This commit removes redundant self-assignments from two files.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/rl78: Add ATTRIBUTE_PRINTF
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid warnings on the printf-like wrapper, it requires proper
-	__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.
-
-	This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/ppc: Add ATTRIBUTE_PRINTF
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid warnings on the printf-like wrapper, it requires proper
-	__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.
-
-	This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
-
-	For the error function defined in sim_calls.c, the ATTRIBUTE_NORETURN
-	has been moved to the function declaration.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/m68hc11: Add ATTRIBUTE_PRINTF
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid warnings on the printf-like wrapper, it requires proper
-	__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.
-
-	This commit adds ATTRIBUTE_PRINTF to a printf-like function.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/m32c: Add ATTRIBUTE_PRINTF
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid warnings on the printf-like wrapper, it requires proper
-	__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.
-
-	This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/erc32: Add ATTRIBUTE_PRINTF
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid warnings on the printf-like wrapper, it requires proper
-	__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.
-
-	This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/cris: Add ATTRIBUTE_PRINTF
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid warnings on the printf-like wrapper, it requires proper
-	__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.
-
-	This commit adds ATTRIBUTE_PRINTF to a printf-like function.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/common: Add ATTRIBUTE_PRINTF
-	Clang generates a warning if the format string of a printf-like function is
-	not a literal ("-Wformat-nonliteral").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	To avoid warnings on the printf-like wrapper, it requires proper
-	__attribute__((format)) and we have ATTRIBUTE_PRINTF macro for this reason.
-
-	This commit adds ATTRIBUTE_PRINTF to a printf-like function.
-
-2022-10-11  Martin Liska  <mliska@suse.cz>
-
-	fix compressed_debug_section_names definition for "zlib"
-	bfd/ChangeLog:
-
-		* libbfd.c: Set COMPRESS_DEBUG_GABI_ZLIB for "zlib" value.
-
-2022-10-11  Martin Liska  <mliska@suse.cz>
-
-	add --enable-default-compressed-debug-sections-algorithm configure option
-	ChangeLog:
-
-		* configure.ac: Add --enable-default-compressed-debug-sections-algorithm.
-		* configure: Regenerate.
-
-	gas/ChangeLog:
-
-		* NEWS: Document the new option.
-		* as.c (flag_compress_debug): Set default algorithm based
-		on the configure option.
-		* configure.ac: Add --enable-default-compressed-debug-sections-algorithm.
-		* configure: Regenerate.
-		* config.in: Likewise.
-
-	ld/ChangeLog:
-
-		* NEWS: Document the new option.
-		* configure.ac: Add --enable-default-compressed-debug-sections-algorithm.
-		* configure: Regenerate.
-		* config.in: Likewise.
-		* ldmain.c: Set default algorithm based
-		on the configure option.
-
-2022-10-11  Martin Liska  <mliska@suse.cz>
-
-	refactor usage of compressed_debug_section_type
-	bfd/ChangeLog:
-
-		* bfd-in.h (bfd_hash_set_default_size): Add COMPRESS_UNKNOWN
-		  enum value.
-		(struct compressed_type_tuple): New.
-		* bfd-in2.h (bfd_hash_set_default_size): Regenerate.
-		(struct compressed_type_tuple): Likewise.
-		* libbfd.c (ARRAY_SIZE): New macro.
-		(bfd_get_compression_algorithm): New function.
-		(bfd_get_compression_algorithm_name): Likewise.
-
-	gas/ChangeLog:
-
-		* as.c: Do not special-case, use the new functions.
-
-	ld/ChangeLog:
-
-		* emultempl/elf.em: Do not special-case, use the new functions.
-		* lexsup.c (elf_static_list_options): Likewise.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/riscv: fix multiply instructions on simulator
-	After this commit:
-
-	  commit 0938b032daa52129b4215d8e0eedb6c9804f5280
-	  Date:   Wed Feb 2 10:06:15 2022 +0900
-
-	      RISC-V: Add 'Zmmul' extension in assembler.
-
-	some instructions in the RISC-V simulator stopped working as a new
-	instruction class 'INSN_CLASS_ZMMUL' was added, and some existing
-	instructions were moved into this class.
-
-	The simulator doesn't currently handle this instruction class, and so
-	the instructions will now cause an illegal instruction trap.
-
-	This commit adds support for INSN_CLASS_ZMMUL, and adds a test that
-	ensures the affected instructions can be executed by the simulator.
-
-	Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
-	Reviewed-by: Andrew Burgess <aburgess@redhat.com>
-
-2022-10-11  Nick Clifton  <nickc@redhat.com>
-
-	Error: attempt to get value of unresolved symbol `L0'
-		* symbols.c (S_GET_VALUE): If the unresolved symbol is the fake
-		label provide a more helpful error message to the user.
-
-2022-10-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/moxie: add custom directory stamp rule
-	Because sim/moxie/moxie-gdb.dtb is neither a program nor a library, automake
-	does not generate dirstamp file ($builddir/sim/moxie/.dirstamp) for it.
-
-	When maintainer mode is enabled, it tries to rebuild sim/moxie/moxie-gdb.dtb
-	but fails because there's no rules for automake-generated dirstamp file
-	which moxie-gdb.dtb depends.
-
-	This commit adds its own rule for the directory stamp (modified copy of the
-	automake output) and adds the directory stamp file to DISTCLEANFILES to
-	mimic automake-generated behavior (although "make distclean" does not work
-	when maintainer mode is enabled).
-
-2022-10-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: Fix formatting of python script
-	The python black formatter was complaining about formatting on the
-	script gdb.python/pretty-print-call-by-hand.py.  This commit changed
-	the offending lines to make the formatter happy.
-
-2022-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix prompt parsing in capture_command_output
-	I noticed in capture_command_output that the output of a single command is
-	matched using two gdb_test_multiples:
-	- the first one matching the echoed command and skipping an optional prefix,
-	- the second one matching the output and the prompt.
-
-	This is error-prone, because the first gdb_test_multiple has implicit
-	clauses which may consume the prompt.
-
-	The problem is easy to spot with an example.  First consider:
-	...
-	set output [capture_command_output "print 1" "\\\$1 = "]
-	gdb_assert { [string equal $output "1"] }
-	...
-	for which we get:
-	...
-	PASS: [string equal $output "1"]
-	...
-
-	If we change the prefix string to a no-match, say "1 = ", and update the
-	output string match accordingly, we get instead:
-	...
-	FAIL: capture_command_output for print 1
-	FAIL: [string equal $output "\$1 = 1"]
-	...
-
-	The first FAIL is produced by the first gdb_test_multiple, consuming the prompt.
-
-	The second gdb_test_multiple then silently times out waiting for another prompt,
-	after which the second FAIL is produced.  Note that the timeout is silent
-	because the gdb_test_multiple is called with an empty message argument.
-
-	The second FAIL is because capture_command_output returns "", given that all
-	the command output was consumed by the first gdb_test_multiple.
-
-	Fix this by rewriting capture_command_output to use only a single
-	gdb_test_multiple.
-
-	Tested on x86_64-linux.
-
-2022-10-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: no need to build version.texi
-	gprofng/ChangeLog
-	2022-10-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29465
-		PR gprofng/29667
-		* doc/Makefile.am: No need to build version.texi.
-		* doc/Makefile.in: Rebuild.
-
-2022-10-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: use the --libdir path to find libraries
-	gprofng/ChangeLog
-	2022-10-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29663
-		* src/Makefile.am: Add -DLIBDIR to CPPFLAGS.
-		* src/Makefile.in: Rebuild.
-		* src/envsets.cc (putenv_libcollector_ld_misc): Use LIBDIR to find
-		the gprofng libraries.
-
-2022-10-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: run tests without installation
-	gprofng/ChangeLog
-	2022-10-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29107
-		* testsuite/config/default.exp: Set up environment to run gprofng tests
-		without installation.
-		* testsuite/lib/Makefile.skel: Likewise.
-		* testsuite/lib/display-lib.exp: Likewise.
-
-2022-10-11  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: fix race in gdb.base/async-shell.exp
-	I see some random failures in this test:
-
-	    FAIL: gdb.base/async-shell.exp: run & (timeout)
-
-	It can be reliably reproduced on a recent enough GNU/Linux with this
-	change:
-
-	    diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
-	    index 44cc28b30051..2a3c8253ba5a 100644
-	    --- a/gdb/testsuite/lib/gdb.exp
-	    +++ b/gdb/testsuite/lib/gdb.exp
-	    @@ -1301,6 +1301,7 @@ proc gdb_test_multiple { command message args } {
-	         }
-	         set gdb_test_name "$message"
-
-	    +    sleep 2
-	         set result 0
-	         set code [catch {gdb_expect $code} string]
-
-	"recent enough" means a system where libpthread.so was merged with
-	libc.so, so at least glibc 2.34.
-
-	The problem is that the `run &` command prints some things after the
-	prompt:
-
-	    (gdb) [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/usr/lib/../lib/libthread_db.so.1".
-
-	If expect is quick enough, it will consume only up to the prompt.  But
-	if it is slow enough, it will consume those messages at the same time as
-	the prompt, in which case the gdb_test used for "run &" won't match.  By
-	default, the prompt used by gdb_test uses a `$` to anchor the match at
-	the end of the buffer.  If there's anything following the prompt, it
-	won't match.
-
-	The diff above adds a delay between sending the command and consuming
-	the output, giving GDB more time to output the messages, giving a good
-	chance that expect consumes them at the same time as the prompt.
-
-	This is normally handled by using gdb_test_multiple and specifying a
-	pattern that ends with "$gdb_prompt", but not a trailing $.  I think
-	this is common enough that it deserves its own gdb_test option.
-	Therefore, add the -no-anchor-prompt option to gdb_test, and
-	gdb_test_no_output for completeness.  Use it in
-	gdb.base/async-shell.exp.
-
-	Change-Id: I9051d8800d1c10a2e95db1a575991f7723492f1b
-	Approved-By: Tom de Vries <tdevries@suse.de>
-
-2022-10-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-10  Tom Tromey  <tom@tromey.com>
-
-	Fix a latent bug in print_wchar
-	print_wchar keeps track of when escape sequences are emitted, to force
-	an escape sequence if needed by a subsequent character.  For example
-	for the string concatenation "\0" "1", gdb will print "\000\061" --
-	because printing "\0001" might be confusing.
-
-	However, this code has two errors.  First, this logic is not needed
-	for octal escapes, because there is a length limit of 3 for octal
-	escapes, and gdb always prints these with "%.3o".  Second, though,
-	this *is* needed for hex escapes, because those do not have a length
-	limit.
-
-	This patch fixes these problems and adds the appropriate tests.
-
-2022-10-10  Tom Tromey  <tom@tromey.com>
-
-	Don't use wchar_printable in print_wchar
-	print_wchar uses wchar_printable, but this isn't needed -- all the
-	relevant cases are already handled by the 'switch'.  This changes the
-	code to use gdb_iswprint, and removes a somewhat confusing comment
-	related to this code.
-
-	Remove c_printstr
-	This renames c_printstr, removing a layer of indirection.
-
-	Remove c_emit_char
-	This renames c_emit_char, removing a layer of indirection.
-
-	Boolify need_escape in generic_emit_char
-	This changes 'need_escape' in generic_emit_char to be of type bool,
-	rather than int.
-
-2022-10-10  Tom Tromey  <tom@tromey.com>
-	    Andrew Burgess  <aburgess@redhat.com>
-
-	Fix latent quote char bug in generic_printstr
-	generic_printstr prints an empty string like:
-
-	      fputs_filtered ("\"\"", stream);
-
-	However, this seems wrong to me if the quote character is something
-	other than double quote.  This patch fixes this latent bug.  Thanks to
-	Andrew for the test case.
-
-2022-10-10  Tom Tromey  <tromey@adacore.com>
-
-	Fix the guile build
-	The frame_info_ptr patches broke the build with Guile.  This patch
-	fixes the problem.  In mos cases I chose to preserve the use of
-	frame_info_ptr, at least where I could be sure that the object
-	lifetime did not interact with Guile's longjmp-based exception scheme.
-
-	Tested on x86-64 Fedora 34.
-
-2022-10-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Detect trailing ^C/^D in command
-	Detect a trailing ^C/^D in the command argument of gdb_test_multiple, and
-	error out.
-
-	Tested on x86_64-linux.
-
-2022-10-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix error message for cmd with trailing newline
-	I noticed that the error message in gdb_test_multiple about trailing newline
-	in a command does not mention the offending command, nor the word command:
-	...
-	    if [string match "*\[\r\n\]" $command] {
-	        error "Invalid trailing newline in \"$message\" test"
-	    }
-	...
-
-	Fix this by using instead:
-	...
-	        error "Invalid trailing newline in \"$command\" command"
-	...
-
-	Also add a test-case to trigger this: gdb.testsuite/gdb-test.exp.
-
-	Tested on x86_64-linux.
-
-2022-10-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: include the base address in in-memory bfd filenames
-	The struct target_buffer (in gdb_bfd.c) is used to hold information
-	about an in-memory BFD object created by GDB.  For now this mechanism
-	is used by GDB when loading information about JIT symfiles.
-
-	This commit updates target_buffer (in gdb_bfd.c) to be more C++ like,
-	and, at the same time, adds the base address of the symfile into the
-	BFD filename.
-
-	Right now, every in-memory BFD is given the filename "<in-memory>".
-	This filename is visible in things like 'maint info symtabs' and
-	'maint info line-table'.  If there are multiple in-memory BFD objects
-	then it can be hard to match keep track if which BFD is which.  This
-	commit changes the name to be "<in-memory@ADDRESS>" where ADDRESS is
-	replaced with the base address for where the in-memory symbol file was
-	read from.
-
-	As an example of how this is useful, here's the output of 'maint info
-	jit' showing a single loaded JIT symfile:
-
-	  (gdb) maintenance info jit
-	  jit_code_entry address symfile address    symfile size
-	  0x00000000004056b0     0x0000000007000000 17320
-
-	And here's part of the output from 'maint info symtabs':
-
-	  (gdb) maintenance info symtabs
-	  ...snip...
-	  { objfile <in-memory@0x7000000> ((struct objfile *) 0x5258250)
-	    { ((struct compunit_symtab *) 0x4f0afb0)
-	      debugformat DWARF 4
-	      producer GNU C17 9.3.1 20200408 (Red Hat 9.3.1-2) -mtune=generic -march=x86-64 -g -fno-stack-protector -fpic
-	      name jit-elf-solib.c
-	      dirname /tmp/binutils-gdb/build/gdb/testsuite
-	      blockvector ((struct blockvector *) 0x5477850)
-	      user ((struct compunit_symtab *) (null))
-	  	{ symtab /tmp/binutils-gdb/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.base/jit-elf-solib.c ((struct symtab *) 0x4f0b030)
-	  	  fullname (null)
-	  	  linetable ((struct linetable *) 0x5477880)
-	  	}
-	    }
-	  }
-
-	I've added a new test that checks the new in-memory file names are
-	generated correctly, and also checks that the in-memory JIT files can
-	be dumped back out using 'dump binary memory'.
-
-2022-10-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove filename arg from gdb_bfd_open_from_target_memory
-	The filename argument to gdb_bfd_open_from_target_memory was never
-	used; this argument had a default value of nullptr, and the only call
-	to this function, in jit.c, relied on the default value.
-
-	In the next commit I'm going to make some changes to the
-	gdb_bfd_open_from_target_memory function, and, though I could take
-	account of a filename parameter, it seems pointless to maintain an
-	unused argument.
-
-	This commit removes the filename argument.
-
-	There should be no user visible changes after this commit.
-
-2022-10-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add infcall specific debugging
-	Add two new commands:
-
-	  set debug infcall on|off
-	  show debug infcall
-
-	These enable some new debugging related to when GDB makes inferior
-	function calls.  I've added some basic debugging for what I think are
-	the major steps in the inferior function call process, but I'm sure we
-	might want to add more later.
-
-2022-10-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: extra debug output in thread.c
-	Add some extra 'threads' debug in a couple of places in thread.c.
-	I've also added an additional gdb_assert in one case.
-
-	gdb: improve infrun_debug_show_threads output
-	This commit switches to use INFRUN_SCOPED_DEBUG_START_END in the
-	infrun_debug_show_threads function, which means the output will get an
-	extra level of indentation, this looks a little nicer I think.
-
-2022-10-10  Nick Clifton  <nickc@redhat.com>
-
-	Add ability to create reproducible source tarballs.
-		* src-release.sh: Add "-r <date>" option to create reproducible
-		tarballs based upon a fixed timestamp of <date>.
-		* binutils/README-how-to-make-a-release: Add a line showing how to
-		use -r <date> when creating a binutils release.
-
-2022-10-10  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/frame: Add reinflation method for frame_info_ptr
-	Currently, despite having a smart pointer for frame_infos, GDB may
-	attempt to use an invalidated frame_info_ptr, which would cause internal
-	errors to happen.  One such example has been documented as PR
-	python/28856, that happened when printing frame arguments calls an
-	inferior function.
-
-	To avoid failures, the smart wrapper was changed to also cache the frame
-	id, so the pointer can be reinflated later.  For this to work, the
-	frame-id stuff had to be moved to their own .h file, which is included
-	by frame-info.h.
-
-	Frame_id caching is done explicitly using the prepare_reinflate method.
-	Caching is done manually so that only the pointers that need to be saved
-	will be, and reinflating has to be done manually using the reinflate
-	method because the get method and the -> operator must not change
-	the internals of the class.  Finally, attempting to reinflate when the
-	pointer is being invalidated causes the following assertion errors:
-
-	check_ptrace_stopped_lwp_gone: assertion `lp->stopped` failed.
-	get_frame_pc: Assertion `frame->next != NULL` failed.
-
-	As for performance concerns, my personal testing with `time make
-	chec-perf GDB_PERFTEST_MODE=run` showed an actual reduction of around
-	10% of time running.
-
-	This commit also adds a testcase that exercises the python/28856 bug with
-	7 different triggers, run, continue, step, backtrace, finish, up and down.
-	Some of them can seem to be testing the same thing twice, but since this
-	test relies on stale pointers, there is always a chance that GDB got lucky
-	when testing, so better to test extra.
-
-	Regression tested on x86_64, using both gcc and clang.
-
-	Approved-by: Tom Tomey <tom@tromey.com>
-
-2022-10-10  Tom Tromey  <tom@tromey.com>
-
-	Change GDB to use frame_info_ptr
-	This changes GDB to use frame_info_ptr instead of frame_info *
-	The substitution was done with multiple sequential `sed` commands:
-
-	sed 's/^struct frame_info;/class frame_info_ptr;/'
-	sed 's/struct frame_info \*/frame_info_ptr /g' - which left some
-	    issues in a few files, that were manually fixed.
-	sed 's/\<frame_info \*/frame_info_ptr /g'
-	sed 's/frame_info_ptr $/frame_info_ptr/g' - used to remove whitespace
-	    problems.
-
-	The changed files were then manually checked and some 'sed' changes
-	undone, some constructors and some gets were added, according to what
-	made sense, and what Tromey originally did
-
-	Co-Authored-By: Bruno Larsen <blarsen@redhat.com>
-	Approved-by: Tom Tomey <tom@tromey.com>
-
-2022-10-10  Tom Tromey  <tom@tromey.com>
-
-	Introduce frame_info_ptr smart pointer class
-	This adds frame_info_ptr, a smart pointer class.  Every instance of
-	the class is kept on an intrusive list.  When reinit_frame_cache is
-	called, the list is traversed and all the pointers are invalidated.
-	This should help catch the typical GDB bug of keeping a frame_info
-	pointer alive where a frame ID was needed instead.
-
-	Co-Authored-By: Bruno Larsen <blarsen@redhat.com>
-	Approved-by: Tom Tomey <tom@tromey.com>
-
-2022-10-10  Tom Tromey  <tom@tromey.com>
-
-	Remove frame_id_eq
-	This replaces frame_id_eq with operator== and operator!=.  I wrote
-	this for a version of this series that I later abandoned; but since it
-	simplifies the code, I left this patch in.
-
-	Approved-by: Tom Tomey <tom@tromey.com>
-
-2022-10-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: use 'end' at the end of python blocks
-	Within the testsuite, use the keyword 'end' to terminate blocks of
-	Python code being sent to GDB, rather than sending \004.  I could only
-	find three instances of this, all in tests that I originally wrote.  I
-	have no memory of there being any special reason why I used \004
-	instead of 'end' - I assume I copied this from somewhere else that has
-	since changed.
-
-	Non of the tests being changed here are specifically about whether
-	\004 can be used to terminate a Python block, so I think switching to
-	the more standard 'end' keyword is the right choice.
-
-2022-10-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: re-generate configure
-	I get this diff when re-generating configure, probably leftover from
-	67d1991b785 ("egrep in binutils").
-
-	Change-Id: I759c88c2bad648736d33ff98089db45c9b686356
-
-2022-10-10  Alan Modra  <amodra@gmail.com>
-
-	Merge configure.ac from gcc project
-	To merge with gcc's copy of configure.ac we need to revert changes to
-	configure.ac in the following gcc commits:
-	dc832fb39fc0 2022-08-25
-	fc259b522c0f 2022-06-25
-	Then reapply configure.ac changes in binutils from these binutils
-	commits:
-	50ad1254d503 2021-01-09
-	bb368aad297f 2022-03-11
-	e5f2f7d901ee 2022-07-26
-	2cac01e3ffff 2022-09-26
-	Plus copy over gcc's config/ax_cxx_compile_stdcxx.m4, then regenerate
-	configure.
-
-2022-10-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-08  Tom Tromey  <tom@tromey.com>
-
-	Merge both implementations of debug_names::insert
-	The class debug_names has two 'insert' overloads, but only one of them
-	is ever called externally, and it simply forwards to the other
-	implementation.  It seems cleaner to me to have a single method, so
-	this patch merges the two.
-
-2022-10-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix silent fail in gdb.server/connect-with-no-symbol-file.exp
-	With native and target boards native-gdbserver, remote-gdbserver-on-localhost and
-	remote-stdio-gdbserver I have for gdb.server/connect-with-no-symbol-file.exp:
-	...
-	 # of expected passes            8
-	...
-	but with native-extended-gdbserver I have instead:
-	...
-	 # of expected passes            8
-	 # of unexpected failures        4
-	...
-
-	The extra FAILs are of the form:
-	...
-	(gdb) detach^M
-	Detaching from pid process 28985^M
-	[Inferior 1 (process 28985) detached]^M
-	(gdb) FAIL: gdb.server/connect-with-no-symbol-file.exp: sysroot=: \
-	  action=permission: connection to GDBserver succeeded
-	...
-	and are due to the fact that the actual gdb output doesn't match the regexp:
-	...
-	    gdb_test "detach" \
-	       ".*Detaching from program: , process.*Ending remote debugging.*" \
-	       "connection to GDBserver succeeded"
-	...
-
-	With native, the actual gdb output is:
-	...
-	(gdb) detach^M
-	Detaching from pid process 29657^M
-	Ending remote debugging.^M
-	[Inferior 1 (process 29657) detached]^M
-	(gdb) Remote debugging from host ::1, port 51028^M
-	...
-	and because the regexp doesn't match, it triggers an implicit clause for
-	"Ending remote debugging" in gdb_test_multiple, which has the consequence
-	that the FAIL is silent.
-
-	Fix:
-	- the regexp by making it less strict
-	- the silent fail by rewriting into a gdb_test_multiple, and adding an
-	  explicit fail clause.
-
-	Tested on x86_64-linux, using native and aforementioned target boards.
-
-2022-10-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-07  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: fix gdb.threads/linux-dp.exp regex
-	On ubuntu 22.04 with the libc6-dbg package installed, I have the
-	following failure:
-
-	    where
-	    #0  print_philosopher (n=3, left=33 '!', right=33 '!') at .../gdb/testsuite/gdb.threads/linux-dp.c:105
-	    #1  0x000055555555576a in philosopher (data=0x55555555937c) at .../gdb/testsuite/gdb.threads/linux-dp.c:148
-	    #2  0x00007ffff7e11b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
-	    #3  0x00007ffff7ea3a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
-	    (gdb) FAIL: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
-
-	The regex for this test accounts for different situations (with /
-	without debug symbol) but assumes that if debug info is present the
-	backtrace shows execution under pthread_create.  However, for the
-	implementation under test, we are under start_thread.
-
-	Update the regex to accept start_thread.
-
-	Tested on Ubuntu-22.04 x86_64 with and without libc6-dbg debug symbols
-	available.
-
-	Change-Id: I1e1536279890bca2cd07f038e026b41e46af44e0
-
-2022-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle host cleanfiles
-	When running test-case gdb.server/abspath.exp with host board
-	local-remote-host-notty, I get:
-	...
-	$ git sti
-	  ...
-	        deleted:    gdb/testsuite/gdb.xml/trivial.xml
-	...
-
-	This happens as follows.  The test-case calls skip_gdbserver_test, which calls
-	gdb_skip_xml_test, which does:
-	...
-	    set xml_file [gdb_remote_download host "${srcdir}/gdb.xml/trivial.xml"]
-	...
-
-	Then proc gdb_remote_download appends $xml_file (which for this particular
-	host board happens to be ${srcdir}/gdb.xml/trivial.xml) to cleanfiles, which
-	ends up being handled in gdb_finish by:
-	...
-	       eval remote_file target delete $cleanfiles
-	...
-
-	The problem is that a host file is deleted using target delete.
-
-	Fix this by splitting cleanfiles up in cleanfiles_target and cleanfiles_host.
-
-	Tested on x86_64-linux.
-
-2022-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove unnecessary warning in gdb.base/default.exp
-	When running test-case gdb.base/default.exp with target board
-	native-gdbserver, we get:
-	...
-	WARNING: Skipping backtrace and break tests because of GDB stub.
-	...
-
-	There's no need for such a warning, so remove it.
-
-	Tested on x86_64-linux with native and target board native-gdbserver.
-
-2022-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix have_mpx with remote-gdbserver-on-localhost
-	With target board remote-gdbserver-on-localhost and gdb.arch/i386-mpx-call.exp
-	I run into:
-	...
-	FAIL: gdb.arch/i386-mpx-call.exp: upper_bnd0: continue to a bnd violation
-	...
-
-	This is due to the have_mpx test which should return 0, but instead returns 1
-	because the captured output:
-	...
-	No MPX support
-	No MPX support
-	...
-	does not match the used regexp:
-	...
-	    set status [expr ($status == 0) \
-	                   && ![regexp "^No MPX support\r\n" $output]]
-	...
-	which does match the captured output with native:
-	...
-	No MPX support^M
-	No MPX support^M
-	...
-
-	Fix this by making the \r in the regexp optional.
-
-	Tested on x86_64-linux, with native and target board
-	remote-gdbserver-on-localhost.
-
-2022-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATEs with remote-gdbserver-on-localhost
-	Fix some DUPLICATEs that we run into with target board
-	remote-gdbserver-on-localhost, by using test_with_prefix.
-
-	Tested on x86_64-linux, with native and target board
-	remote-gdbserver-on-localhost.
-
-2022-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix path in test name in gdb_load_shlib
-	When running test-case gdb.server/solib-list.exp with target board
-	remote-gdbserver-on-localhost, I run into:
-	...
-	(gdb) set solib-search-path $outputs/gdb.server/solib-list^M
-	(gdb) PASS: gdb.server/solib-list.exp: non-stop 0: \
-	  set solib-search-path $outputs/gdb.server/solib-list
-	PATH: gdb.server/solib-list.exp: non-stop 0: \
-	  set solib-search-path $outputs/gdb.server/solib-list
-	...
-
-	This is due to this code in gdb_load_shlib:
-	...
-	       gdb_test "set solib-search-path [file dirname $file]" "" ""
-	...
-
-	Fix this by setting an explicit test name.
-
-	Tested on x86_64-linux, with native and target boards
-	remote-gdbserver-on-localhost, native-gdbserver and native-extended-gdbserver.
-
-2022-10-07  Alan Modra  <amodra@gmail.com>
-
-	PR29653, objcopy/strip: fuzzed small input file induces large output file
-	_bfd_check_format functions should not print errors or warnings if
-	they return NULL.  A NULL return means the particular target under
-	test does not match, so there isn't any reason to make a complaint
-	about the target.  In fact there isn't a good reason to warn even if
-	the target matches, except via the _bfd_per_xvec_warn mechanism; Some
-	other target might be a better match.
-
-	This patch tidies pe_bfd_object_p with the above in mind, and
-	restricts the PE optional header SectionAlignment and FileAlignment
-	fields somewhat.  I chose to warn on nonsense values rather than
-	refusing to match.  Refusing to match would be OK too.
-
-		PR 29653
-		* peXXigen.c (_bfd_XXi_swap_aouthdr_in): Don't emit error about
-		invalid NumberOfRvaAndSizes here.  Limit loop copying data
-		directory to IMAGE_NUMBEROF_DIRECTORY_ENTRIES.
-		* peicode.h (pe_bfd_object_p): Don't clear and test bfd_error
-		around bfd_coff_swap_aouthdr_in.  Warn on invalid SectionAlignment,
-		FileAlignment and NumberOfRvaAndSizes.  Don't return NULL on
-		invalid NumberOfRvaAndSizes.
-
-2022-10-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-06  Tom Tromey  <tromey@adacore.com>
-
-	Fix indentation in riscv-tdep.c
-	This just fixes some indentation in riscv-tdep.c.
-
-2022-10-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Handle lazy FPU state preservation
-	Read LSPEN, ASPEN and LSPACT bits from FPCCR and use them together
-	with FPCAR to identify if lazy FPU state preservation is active for
-	the current frame.  See "Lazy context save of FP state", in B1.5.7,
-	also ARM AN298, supported by Cortex-M4F architecture for details on
-	lazy FPU register stacking.  The same conditions are valid for other
-	Cortex-M cores with FPU.
-
-	This patch has been verified on a STM32F4-Discovery board by:
-	a) writing a non-zero value (lets use 0x1122334455667788 as an
-	   example) to all the D-registers in the main function
-	b) configured the SysTick to fire
-	c) in the SysTick_Handler, write some other value (lets use
-	   0x0022446688aaccee as an example) to one of the D-registers (D0 as
-	   an example) and then do "SVC #0"
-	d) in the SVC_Handler, write some other value (lets use
-	   0x0099aabbccddeeff) to one of the D-registers (D0 as an example)
-
-	In GDB, suspend the execution in the SVC_Handler function and compare
-	the value of the D-registers for the SVC_handler frame and the
-	SysTick_Handler frame.  With the patch, the value of the modified
-	D-register (D0) should be the new value (0x009..eff) on the
-	SVC_Handler frame, and the intermediate value (0x002..cee) for the
-	SysTick_Handler frame.  Now compare the D-register value for the
-	SysTick_Handler frame and the main frame.  The main frame should
-	have the initial value (0x112..788).
-
-2022-10-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Factor out have_complaint
-	After committing 8ba677d3560 ("[gdb/symtab] Don't complain about function
-	decls") I noticed that quite a bit of code in read_func_scope is used to decide
-	whether to issue the "cannot get low and high bounds for subprogram DIE at
-	$hex" complaint, which executes unnecessarily if we have the default
-	"set complaints 0".
-
-	Fix this by (NFC):
-	- factoring out new static function have_complaint from macro complaint, and
-	- using it to wrap the relevant code in read_func_scope.
-
-	Tested on x86_64-linux.
-
-2022-10-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add missing nullptr checks in bpstat_check_breakpoint_conditions
-	Add a couple of missing nullptr checks in the function
-	bpstat_check_breakpoint_conditions.
-
-	No user visible change after this commit.
-
-2022-10-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: more infrun debug from breakpoint.c
-	This commit adds additional infrun debug from the breakpoint.c file.
-	The new debug output all relates to breakpoint condition evaluation.
-
-	There is already some infrun debug emitted from the breakpoint.c file,
-	so hopefully, adding more will not be contentious.  I think the
-	functions being instrumented make sense as part of the infrun process,
-	the inferior stops, evaluates the condition, and then either stops or
-	continues.  This new debug gives more insight into that process.
-
-	I had to make the bp_location* argument to find_loc_num_by_location
-	const, and add a declaration for find_loc_num_by_location.
-
-	There should be no user visible changes unless they turn on debug
-	output.
-
-2022-10-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add some additional debug in mark_async_event_handler
-	Extend the existing debug printf call to include the previous state of
-	the async_event_handler object.
-
-2022-10-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Print XTheadMemPair literal as "immediate"
-	The operand type "Xl(...)" denotes that (...) is a literal.  Specifically,
-	they are intended to be a constant immediate value.
-
-	This commit prints "Xl(...)" operand with dis_style_immediate style,
-	not dis_style_text.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Use dis_style_immediate on
-		the constant literal of the "Xl..." operand.
-
-2022-10-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix T-Head immediate types on printing
-	This commit fixes two minor typing-related issues for
-	T-Head immediate operands.
-
-	1.  A signed type must be specified when printing with %i.
-	2.  unsigned/signed int is not portable enough for max 32-bit immediates.
-	    Instead, we should use unsigned/signed long.
-	    The format string is changed accordingly.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Fix T-Head immediate types on
-		printing.
-
-2022-10-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Print comma and tabs as the "text" style
-	On the RISC-V disassembler, some separators have non-text style when
-	printed with another word with another style.
-
-	This commit splits those, making sure that those comma and tabs are printed
-	with the "text" style.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Split and print the comma as
-		text.  (riscv_disassemble_insn): Split and print tabs as text.
-		(riscv_disassemble_data): Likewise.
-
-2022-10-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Optimize riscv_disassemble_data printf
-	This commit makes types of printf arguments on riscv_disassemble_data
-	as small as possible (as long as we can preserve the portability) to reduce
-	the cost of printf (especially on 32-bit host).
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (riscv_disassemble_data): Use smallest possible type
-		to printing data.
-
-2022-10-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix printf argument types corresponding %x
-	"%x" format specifier requires unsigned type, not int.  This commit
-	fixes this issue on the RISC-V disassembler.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Fix printf argument types where
-		the format specifier is "%x".
-
-2022-10-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix immediates to have "immediate" style
-	This commit fixes certain print calls on immediate operands to have
-	dis_style_immediate.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Fix immediates to have
-		"immediate" style.  (riscv_disassemble_data): Likewise.
-
-2022-10-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-06  Alan Modra  <amodra@gmail.com>
-
-	Re: bfd BLD-POTFILES.in dependencies
-	Removing $BLD_POTFILES from BFD-POTFILES.in was correct, but left a
-	hole in dependencies.
-	make[4]: Entering directory '/home/alan/build/gas/all/bfd/po'
-	make[4]: *** No rule to make target '../elf32-aarch64.c', needed by '/home/alan/src/binutils-gdb/bfd/po/bfd.pot'.  Stop.
-
-		* Makefile.am (BUILT_SOURCES): Add BUILD_CFILES.
-		* Makefile.in: Regenerate.
-
-2022-10-05  Jan Beulich  <jbeulich@suse.com>
-
-	x86/gas: support quoted address scale factor in AT&T syntax
-	An earlier attempt (e68c3d59acd0 ["x86: better respect quotes in
-	parse_operands()"]) needed undoing (cc0f96357e0b ["x86: permit
-	parenthesized expressions again as addressing scale factor"]) as far its
-	effect here went. As indicated back then, the issue is the backwards
-	scanning of the operand string to find the matching opening parenthesis.
-	Switch to forward scanning, finding the last outermost unquoted opening
-	parenthesis (which is the one matching the trailing closing one).
-
-	Arm64: support CLEARBHB alias
-	While the Arm v8 ARM (rev I-a) still doesn't mention this alias, it is
-	(typically via a macro) already in use in kernels and alike.
-
-2022-10-05  Alan Modra  <amodra@gmail.com>
-
-	PR29647, objdump -S looping
-	Fuzzed input with this in .debug_line
-	  [0x0000003b]  Special opcode 115: advance Address by 8 to 0x401180 and Line by -2 to -1
-
-		PR 29647
-		* objdump.c (print_line): Don't decrement line number here..
-		(dump_lines): ..do so here instead, ensuring loop terminates.
-
-2022-10-05  Alan Modra  <amodra@gmail.com>
-
-	Re: stab nearest_line bfd_malloc_and_get_section
-	It didn't take long for the fuzzers to avoid size checks in
-	bfd_malloc_and_get_section.  Plug this hole.
-
-		* syms.c (_bfd_stab_section_find_nearest_line): Ignore fuzzed
-		sections with no contents.
-
-2022-10-05  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build with --enable-pgo-build=lto
-	gprofng/ChangeLog
-	2022-10-04  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29579
-		* libcollector/dispatcher.c: Fix the symbol version in SYMVER_ATTRIBUTE.
-		* libcollector/iotrace.c: Likewise.
-		* libcollector/linetrace.c: Likewise.
-		* libcollector/mmaptrace.c: Likewise.
-		* libcollector/synctrace.c: Likewise.
-
-2022-10-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-04  Tom Tromey  <tom@tromey.com>
-
-	Remove decode_location_spec_default
-	This removes decode_location_spec_default, inlining it into its sole
-	caller.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-10-04  Palmer Dabbelt  <palmer@rivosinc.com>
-
-	gas: NEWS: Mention the T-Head extensions that were recently added
-
-2022-10-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Don't complain about function decls
-	[ Requires "[gdb/symtab] Don't complain about inlined functions" as
-	submitted here (
-	https://sourceware.org/pipermail/gdb-patches/2022-September/191762.html ). ]
-
-	With the test-case included in this patch, we get:
-	...
-	(gdb) ptype main^M
-	During symbol reading: cannot get low and high bounds for subprogram DIE \
-	  at 0xc1^M
-	type = int (void)^M
-	(gdb) FAIL: gdb.dwarf2/anon-ns-fn.exp: ptype main without complaints
-	...
-
-	The DIE causing the complaint is a function declaration:
-	...
-	 <2><c1>: Abbrev Number: 3 (DW_TAG_subprogram)
-	    <c2>   DW_AT_name        : foo
-	    <c8>   DW_AT_declaration : 1
-	...
-	which is referred to from the DIE representing the function definition:
-	...
-	 <1><f4>: Abbrev Number: 7 (DW_TAG_subprogram)
-	    <f5>   DW_AT_specification: <0xc1>
-	    <f9>   DW_AT_low_pc      : 0x4004c7
-	    <101>   DW_AT_high_pc     : 0x7
-	...
-	which does contain the low and high bounds.
-
-	Fix this by not complaining about function declarations.
-
-	Tested on x86_64-linux.
-
-2022-10-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Don't complain about inlined functions
-	With the test-case included in this patch, we get:
-	...
-	(gdb) ptype main^M
-	During symbol reading: cannot get low and high bounds for subprogram DIE \
-	  at 0x113^M
-	During symbol reading: cannot get low and high bounds for subprogram DIE \
-	  at 0x11f^M
-	type = int (void)^M
-	(gdb) FAIL: gdb.dwarf2/inline.exp: ptype main
-	...
-
-	The complaints are about foo, with DW_AT_inline == DW_INL_inlined:
-	...
-	 <1><11f>: Abbrev Number: 6 (DW_TAG_subprogram)
-	    <120>   DW_AT_name        : foo
-	    <126>   DW_AT_prototyped  : 1
-	    <126>   DW_AT_type        : <0x10c>
-	    <12a>   DW_AT_inline      : 1       (inlined)
-	...
-	and foo2, with DW_AT_inline == DW_INL_declared_inlined:
-	...
-	 <1><113>: Abbrev Number: 5 (DW_TAG_subprogram)
-	    <114>   DW_AT_name        : foo2
-	    <11a>   DW_AT_prototyped  : 1
-	    <11a>   DW_AT_type        : <0x10c>
-	    <11e>   DW_AT_inline      : 3       (declared as inline and inlined)
-	...
-
-	Fix this by not complaining about inlined functions.
-
-	Tested on x86_64-linux.
-
-2022-10-04  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gdb/riscv: Partial support for instructions up to 176-bit
-	Because riscv_insn_length started to support instructions up to 176-bit,
-	we need to increase buf size to 176-bit in size.
-
-	Also, that would break an assumption in riscv_insn::decode so this commit
-	fixes it, noting that instructions longer than 64-bit are not fully
-	supported yet.
-
-2022-10-04  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix buffer overflow on print_insn_riscv
-	Because riscv_insn_length started to support instructions up to 176-bit,
-	we need to increase packet buffer size to 176-bit in size.
-
-	include/ChangeLog:
-
-		* opcode/riscv.h (RISCV_MAX_INSN_LEN): Max instruction length for
-		use in buffer size.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_riscv): Increase buffer size for max
-		176-bit length instructions.
-
-2022-10-04  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Renamed INSN_CLASS for floating point in integer extensions.
-	Just added suffix _INX for those INSN_CLASS should be enough to represent
-	their fpr can be replaced by gpr.
-
-2022-10-04  Nick Clifton  <nickc@redhat.com>
-
-	Note that at least dejagnu version 1.5.3 is required in order to be ale to run the testsuites.
-		* README-maintainer-mode: Add a minimum version of dejagnu
-		requirement.
-
-2022-10-04  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/riscv: style csr names as registers
-	While reviewing another patch I noticed that RISC-V CSR names are
-	given the text style, not the register style.  This patch fixes this
-	mistake.
-
-2022-10-04  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64] Update FPSR/FPCR fields for FPU and SVE
-	I noticed some missing flags/fields from FPSR and FPCR registers in
-	both the FPU and SVE target descriptions.
-
-	This patch adds those and makes the SVE versions of FPSR and FPCR
-	use the proper flags/bitfields types.
-
-2022-10-04  Alan Modra  <amodra@gmail.com>
-
-	Support objcopy changing compression to or from zstd
-	Commit 2cac01e3ffff lacked support for objcopy changing compression
-	style.  Add that support, which meant a rewrite of
-	bfd_compress_section_contents.  In the process I've fixed some memory
-	leaks.
-
-		* compress.c (bfd_is_section_compressed_info): Rename from
-		bfd_is_section_compressed_with_header and add ch_type param
-		to return compression header ch_type field.
-		Update all callers.
-		(decompress_section_contents): Remove buffer and size params.
-		Rewrite.  Update callers.
-		(bfd_init_section_compress_status): Free contents on failure.
-		(bfd_compress_section): Likewise.
-		* elf.c (_bfd_elf_make_section_from_shdr): Support objcopy
-		changing between any of the three compression schemes.  Report
-		"unable to compress/decompress" rather than "unable to
-		initialize compress/decompress status" on compress/decompress
-		failures.
-		* bfd-in2.h: Regenerate.
-
-2022-10-04  Alan Modra  <amodra@gmail.com>
-
-	Re: compress .gnu.debuglto_.debug_* sections if requested
-	Enable zlib-gnu compression for .gnu.debuglto_.debug_*.  This differs
-	from zlib-gnu for .debug_* where the name is changed to .zdebug_*.
-	The name change isn't really needed.
-
-	bfd/
-		* elf.c (elf_fake_sections): Replace "." with ".z" in debug
-		section names only when name was ".d*", ie. ".debug_*".
-		(_bfd_elf_assign_file_positions_for_non_load): Likewise.
-	gas/
-		* write.c (compress_debug): Compress .gnu.debuglto_.debug_*
-		for zlib-gnu too.  Compress .gnu.linkonce.wi.*.
-
-2022-10-04  Martin Liska  <mliska@suse.cz>
-
-	compress .gnu.debuglto_.debug_* sections if requested
-	Right now, when using LTO, the intermediate object files do contain
-	debug info in sections starting with .gnu.debuglto_ prefix and are
-	not compressed when --compress-debug-sections is used.
-
-	It's a mistake and we can save quite some disk space. The following
-	example comes from tramp3d when the corresponding LTO sections
-	are compressed with zlib:
-
-	$ bloaty tramp3d-v4-v2.o -- tramp3d-v4.o
-	    FILE SIZE        VM SIZE
-	 --------------  --------------
-	   +83%     +10  [ = ]       0    [Unmapped]
-	 -68.0%    -441  [ = ]       0    .gnu.debuglto_.debug_line
-	 -52.3%    -759  [ = ]       0    .gnu.debuglto_.debug_line_str
-	 -62.4% -3.24Ki  [ = ]       0    .gnu.debuglto_.debug_abbrev
-	 -64.8% -1.12Mi  [ = ]       0    .gnu.debuglto_.debug_info
-	 -88.8% -4.58Mi  [ = ]       0    .gnu.debuglto_.debug_str
-	 -27.7% -5.70Mi  [ = ]       0    TOTAL
-
-	bfd/ChangeLog:
-
-		* elf.c (_bfd_elf_make_section_from_shdr): Compress all debug
-		  info sections.
-
-	gas/ChangeLog:
-
-		* write.c (compress_debug): Compress also ".gnu.debuglto_.debug_"
-		if the compression algorithm is different from zlib-gnu.
-
-2022-10-04  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V/gas: allow generating up to 176-bit instructions with .insn
-	For the time being simply utilize O_big to avoid widening other fields,
-	bypassing append_insn() etc.
-
-	RISC-V/gas: don't open-code insn_length()
-	Use the helper when it can be used.
-
-	RISC-V/gas: drop stray call to install_insn()
-	add_fixed_insn(), by calling move_insn(), already invokes install_insn().
-
-	RISC-V/gas: drop riscv_subsets static variable
-	It's fully redundant with the subset_list member of riscv_rps_as.
-
-	RISC-V: don't cast expressions' X_add_number to long in diagnostics
-	There's no need for such workarounds anymore now that we use C99
-	uniformly. This addresses several testsuite failures encountered when
-	(cross-)building on a 32-bit host.
-
-2022-10-04  Potharla, Rupesh  <Rupesh.Potharla@amd.com>
-
-	ignore DWARF debug information for -gsplit-dwarf with dwarf-5
-	Skip dwo_id for split dwarf.
-
-	* dwarf2.c (parse_comp_unit): Skip DWO_id for DW_UT_skeleton.
-
-2022-10-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
-
-	Fix self-move warning check for GCC 13+
-	GCC 13 got the self-move warning (0abb78dda084a14b3d955757c6431fff71c263f3),
-	but that warning is only checked for clang, resulting in:
-
-	/usr/lib/gcc-snapshot/bin/g++ -x c++    -I. -I. -I./config -DLOCALEDIR="\"/tmp/gdb-m68k-linux/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../readline/readline/.. -I./../zlib  -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber  -I./../gnulib/import -I../gnulib/import -I./.. -I.. -I./../libbacktrace/ -I../libbacktrace/  -DTUI=1    -I./.. -pthread  -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-variable -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-error=maybe-uninitialized -Wno-mismatched-tags -Wsuggest-override -Wimplicit-fallthrough=3 -Wduplicated-cond -Wshadow=local -Wdeprecated-copy -Wdeprecated-copy-dtor -Wredundant-move -Wmissing-declarations -Wstrict-null-sentinel -Wformat -Wformat-nonliteral -Werror -g -O2   -c -o unittests/environ-selftests.o -MT unittests/environ-selftests.o -MMD -MP -MF unittests/.deps/environ-selftests.Tpo unittests/environ-selftests.c
-	unittests/environ-selftests.c: In function 'void selftests::gdb_environ_tests::test_self_move()':
-	unittests/environ-selftests.c:228:7: error: moving 'env' of type 'gdb_environ' to itself [-Werror=self-move]
-	  228 |   env = std::move (env);
-	      |   ~~~~^~~~~~~~~~~~~~~~~
-	unittests/environ-selftests.c:228:7: note: remove 'std::move' call
-	cc1plus: all warnings being treated as errors
-	make[1]: *** [Makefile:1896: unittests/environ-selftests.o] Error 1
-	make[1]: Leaving directory '/var/lib/laminar/run/gdb-m68k-linux/3/binutils-gdb/gdb'
-	make: *** [Makefile:13193: all-gdb] Error 2
-
-2022-10-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: constify inferior::target_is_pushed
-	Change-Id: Ia4143b9c63cb76e2c824ba773c66f5c5cd94b2aa
-
-2022-10-03  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64] Handle W registers as pseudo-registers instead of aliases of X registers
-	The aarch64 port handles W registers as aliases of X registers. This is
-	incorrect because X registers are 64-bit and W registers are 32-bit.
-
-	This patch teaches GDB how to handle W registers as pseudo-registers of
-	32-bit, the bottom half of the X registers.
-
-	Testcase included.
-
-2022-10-03  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64] Fix pseudo-register numbering in the presence of unexpected additional registers
-	When using AArch64 GDB with the QEMU debugging stub (in user mode), we get
-	additional system registers that GDB doesn't particularly care about, so
-	it doesn't number those explicitly.
-
-	But given the pseudo-register numbers are above the number of real registers,
-	we need to setup/account for the real registers first before going ahead and
-	numbering the pseudo-registers.  This has to happen at the end of
-	aarch64_gdbarch_init, after the call to tdesc_use_registers, as that
-	updates the total number of real registers.
-
-	This is in preparation to supporting pointer authentication for bare metal
-	aarch64 (QEMU).
-
-2022-10-03  Nick Clifton  <nickc@redhat.com>
-
-	readelf: DO not load section headers from file offset zero
-		* readelf.c (get_32bit_section_headers): Return false if the
-		e_shoff field is zero.
-		(get_64bit_section_headers): Likewise.
-
-2022-10-03  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Move supervisor instructions after all unprivileged ones
-	This location of supervisor instructions is out of place (because many other
-	privileged instructions are located at the tail but after the supervisor
-	instructions, we have many unprivileged instructions including bit
-	manipulation / crypto / vector instructions).
-
-	Not only that, this is harmful to implement pseudoinstructions in the latest
-	'P'-extension proposal (CLROV and RDOV).  This commit moves supervisor
-	instructions after all unprivileged instructions.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_opcodes): Adjust indents.  Move supervisor
-		instructions after all unprivileged instructions.
-
-2022-10-03  Bruno Larsen  <blarsen@redhat.com>
-
-	Improve GDB's baseclass detection with typedefs
-	When a class inherits from a typedef'd baseclass, GDB may be unable to
-	find the baseclass if the user is not using the typedef'd name, as is
-	tested on gdb.cp/virtbase2.exp; the reason that test case is working
-	under gcc is that the dwarf generated by gcc links the class to the
-	original definition of the baseclass, not to the typedef.  If the
-	inheritance is linked to the typedef, such as how clang does it,
-	gdb.cp/virtbase2.exp starts failing.
-
-	This can also be seen in gdb.cp/impl-this.exp, when attempting to print
-	D::Bint::i, and GDB not being able to find the baseclass Bint.
-
-	This happens because searching for baseclasses only uses the macro
-	TYPE_BASECLASS_NAME, which returns the typedef'd name. However, we can't
-	switch that macro to checking for typedefs, otherwise we wouldn't be
-	able to find the typedef'd name anymore. This is fixed by searching for
-	members or baseclasses by name, we check both the saved name and the
-	name after checking for typedefs.
-
-	This also fixes said long-standing bug in gdb.cp/impl-this.exp when the
-	compiler adds information about typedefs in the debuginfo.
-
-2022-10-03  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Assign DWARF numbers to vector registers
-	This commit assigns DWARF register numbers to vector registers (v0-v31:
-	96..127) to implement RISC-V DWARF Specification version 1.0-rc4
-	(now in the frozen state):
-
-	https://github.com/riscv-non-isa/riscv-elf-psabi-doc/releases/tag/v1.0-rc4
-
-	binutils/ChangeLog:
-
-		* dwarf.c (dwarf_regnames_riscv): Assign DWARF register numbers
-		96..127 to vector registers v0-v31.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (tc_riscv_regname_to_dw2regnum): Support
-		vector registers.
-		* testsuite/gas/riscv/dw-regnums.s: Add vector registers to the
-		DWARF register number test.
-		* testsuite/gas/riscv/dw-regnums.d: Likewise.
-
-2022-10-03  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add testcase for DWARF register numbers
-	Although it had csr-dw-regnums.d (for CSRs), it didn't have DWARF register
-	number test for GPRs/FPRs.
-
-	This commit adds dw-regnums.{s,d} to test such registers.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/dw-regnums.s: New DWARF register number test
-		for GPRs/FPRs.
-		* testsuite/gas/riscv/dw-regnums.d: Likewise.
-
-2022-10-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix waitpid testing in next-fork-other-thread.c
-	In next-fork-other-thread.c, there's this loop:
-	...
-	      do
-	        {
-	          ret = waitpid (pid, &stat, 0);
-	        } while (ret == EINTR);
-	...
-
-	The loop condition tests for "ret == EINTR" but waitpid signals EINTR by
-	returning -1 and setting errno to EINTR.
-
-	Fix this by changing the loop condition to "ret == -1 && errno == EINTR".
-
-	Tested on x86_64-linux.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: handle invalid .exp names passed in TESTS
-	I ran some tests like:
-
-	  $ make check-gdb TESTS="gdb.base/break.exp"
-
-	then, then I went to rerun the tests later, I managed to corrupt the
-	command line, like this:
-
-	  $ make check-gdb TESTS="gdb.base/breakff.exp"
-
-	the make command did exit with an error, but DejaGnu appeared to
-	report that every test passed!  The tail end of the output looks like
-	this:
-
-	  Illegal Argument "no-matching-tests-found"
-	  try "runtest --help" for option list
-	  		=== gdb Summary ===
-
-	  # of expected passes		115
-	  /tmp/build/gdb/gdb version  13.0.50.20220831-git -nw -nx -iex "set height 0" -iex "set width 0" -data-directory /tmp/build/gdb/testsuite/../data-directory
-
-	  make[3]: *** [Makefile:212: check-single] Error 1
-	  make[3]: Leaving directory '/tmp/build/gdb/testsuite'
-	  make[2]: *** [Makefile:161: check] Error 2
-	  make[2]: Leaving directory '/tmp/build/gdb/testsuite'
-	  make[1]: *** [Makefile:1916: check] Error 2
-	  make[1]: Leaving directory '/tmp/build/gdb'
-	  make: *** [Makefile:13565: check-gdb] Error 2
-
-	For a while, I didn't spot that DejaGnu had failed at all, I saw the
-	115 passes, and thought everything had run correctly - though I was
-	puzzled that make was reporting an error.
-
-	What happens is that in gdb/testsuite/Makefile, in the check-single
-	rule, we first run DejaGnu, then run the dg-add-core-file-count.sh
-	script, and finally, we use sed to extract the results from the
-	gdb.sum file.
-
-	In my case, with the invalid test name, DejaGnu fails, but the
-	following steps are still run, the final result, the 115 passes, is
-	then extracted from the pre-existing gdb.sum file.
-
-	If I use 'make -jN' then the 'check-parallel' rule, rather than the
-	'check-single' rule is used.  In this case the behaviour is slightly
-	different, the tail end of the output now looks like this:
-
-	  No matching tests found.
-
-	  make[4]: Leaving directory '/tmp/build/gdb/testsuite'
-	  find: ‘outputs’: No such file or directory
-	  Usage: ../../../src/gdb/testsuite/../../contrib/dg-extract-results.py [-t tool] [-l variant-list] [-L] log-or-sum-file ...
-
-	      tool           The tool (e.g. g++, libffi) for which to create a
-	                     new test summary file.  If not specified then output
-	                     is created for all tools.
-	      variant-list   One or more test variant names.  If the list is
-	                     not specified then one is constructed from all
-	                     variants in the files for <tool>.
-	      sum-file       A test summary file with the format of those
-	                     created by runtest from DejaGnu.
-	      If -L is used, merge *.log files instead of *.sum.  In this
-	      mode the exact order of lines may not be preserved, just different
-	      Running *.exp chunks should be in correct order.
-	  find: ‘outputs’: No such file or directory
-	  Usage: ../../../src/gdb/testsuite/../../contrib/dg-extract-results.py [-t tool] [-l variant-list] [-L] log-or-sum-file ...
-
-	      tool           The tool (e.g. g++, libffi) for which to create a
-	                     new test summary file.  If not specified then output
-	                     is created for all tools.
-	      variant-list   One or more test variant names.  If the list is
-	                     not specified then one is constructed from all
-	                     variants in the files for <tool>.
-	      sum-file       A test summary file with the format of those
-	                     created by runtest from DejaGnu.
-	      If -L is used, merge *.log files instead of *.sum.  In this
-	      mode the exact order of lines may not be preserved, just different
-	      Running *.exp chunks should be in correct order.
-	  make[3]: Leaving directory '/tmp/build/gdb/testsuite'
-	  make[2]: Leaving directory '/tmp/build/gdb/testsuite'
-	  make[1]: Leaving directory '/tmp/build/gdb'
-
-	Rather than DejaGnu failing, we now get a nice 'No matching tests
-	found' message, followed by some other noise.  This other noise is
-	first `find` failing, followed by the dg-extract-results.py script
-	failing.
-
-	What happens here is that, in the check-parallel rule, the outputs
-	directory is deleted before DejaGnu is invoked.  Then we try to run
-	all the tests, and finally we use find and dg-extract-results.py to
-	combine all the separate .sun and .log files together.  However, if
-	there are no tests run then the outputs/ directory is never created,
-	so the find command and consequently the dg-extract-results.py script,
-	fail.
-
-	This commit aims to fix the following issues:
-
-	 (1) For check-single and check-parallel rules, don't run any of the
-	 post-processing steps if DejaGnu failed to run.  This will avoid all
-	 the noise after the initial failure of DejaGnu,
-
-	 (2) For check-single ensure that we don't accidentally report
-	 previous results, this is related to the above, but is worth calling
-	 out as a separate point, and
-
-	 (3) For check-single, print the 'No matching tests found' message
-	 just like we do for a parallel test run.  This makes the parallel and
-	 non-parallel testing behaviour more similar, and I think is clearer
-	 than the current 'Illegal Argument' error message.
-
-	Points (1) and (2) will be handled by moving the post processing steps
-	inside an if block within the recipe.  For check-single I propose
-	deleting the gdb.sum and gdb.log files before running DejaGnu, this is
-	similar (I think) to how we delete the outputs/ directory in the
-	check-parallel rule.
-
-	For point (3) I plan to split the check-single rule in two, the
-	existing check-single will be renamed do-check-single, then a new
-	check-single rule will be added.  The new check-single rule can either
-	depend on the new do-check-single, or will ensure the 'No matching
-	tests found' message is printed when appropriate.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/disasm: better intel flavour disassembly styling with Pygments
-	This commit was inspired by this stackoverflow post:
-
-	  https://stackoverflow.com/questions/73491793/why-is-there-a-%C2%B1-in-lea-rax-rip-%C2%B1-0xeb3
-
-	One of the comments helpfully links to this Python test case:
-
-	  from pygments import formatters, lexers, highlight
-
-	  def colorize_disasm(content, gdbarch):
-	      try:
-	          lexer = lexers.get_lexer_by_name("asm")
-	          formatter = formatters.TerminalFormatter()
-	          return highlight(content, lexer, formatter).rstrip().encode()
-	      except:
-	          return None
-
-	  print(colorize_disasm("lea [rip+0x211]  # COMMENT", None).decode())
-
-	Run the test case and you should see that the '+' character is
-	underlined, and could be confused with a combined +/- symbol.
-
-	What's happening is that Pygments is failing to parse the input text,
-	and the '+' is actually being marked in the error style.  The error
-	style is red and underlined.
-
-	It is worth noting that the assembly instruction being disassembled
-	here is an x86-64 instruction in the 'intel' disassembly style, rather
-	than the default att style.  Clearly the Pygments module expects the
-	att syntax by default.
-
-	If we change the test case to this:
-
-	  from pygments import formatters, lexers, highlight
-
-	  def colorize_disasm(content, gdbarch):
-	      try:
-	          lexer = lexers.get_lexer_by_name("asm")
-	          lexer.add_filter('raiseonerror')
-	          formatter = formatters.TerminalFormatter()
-	          return highlight(content, lexer, formatter).rstrip().encode()
-	      except:
-	          return None
-
-	  res = colorize_disasm("lea rax,[rip+0xeb3] # COMMENT", None)
-	  if res:
-	      print(res.decode())
-	  else:
-	      print("No result!")
-
-	Here I've added the call: lexer.add_filter('raiseonerror'), and I am
-	now checking to see if the result is None or not.  Running this and
-	the test now print 'No result!' - instead of styling the '+' in the
-	error style, we instead give up on the styling attempt.
-
-	There are two things we need to fix relating to this disassembly
-	text.  First, Pygments is expecting att style disassembly, not the
-	intel style that this example uses.  Fortunately, Pygments also
-	supports the intel style, all we need to do is use the 'nasm' lexer
-	instead of the 'asm' lexer.
-
-	However, this leads to the second problem; in our disassembler line we
-	have '# COMMENT'.  The "official" Intel disassembler style uses ';'
-	for its comment character, however, gas and libopcodes use '#' as the
-	comment character, as gas uses ';' for an instruction separator.
-
-	Unfortunately, Pygments expects ';' as the comment character, and
-	treats '#' as an error, which means, with the addition of the
-	'raiseonerror' filter, that any line containing a '#' comment, will
-	not get styled correctly.
-
-	However, as the i386 disassembler never produces a '#' character other
-	than for comments, we can easily "fix" Pygments parsing of the
-	disassembly line.  This is done by creating a filter.  This filter
-	looks for an Error token with the value '#', we then change this into
-	a comment token.  Every token after this (until the end of the line)
-	is also converted into a comment.
-
-	In this commit I do the following:
-
-	  1. Check the 'disassembly-flavor' setting and select between the
-	  'asm' and 'nasm' lexers based on the setting.  If the setting is not
-	  available then the 'asm' lexer is used by default,
-
-	  2. Use "add_filter('raiseonerror')" to ensure that the formatted
-	  output will not include any error text, which would be underlined,
-	  and might be confusing,
-
-	  3. If the 'nasm' lexer is selected, then add an additional filter
-	  that will format '#' and all other text on the line, as a comment,
-	  and
-
-	  4. If Pygments throws an exception, instead of returning None,
-	  return the original, unmodified content.  This will mean that this
-	  one instruction is printed without styling, but GDB will continue to
-	  call into the Python code to style later instructions.
-
-	I haven't included a test specifically for the above error case,
-	though I have manually check that the above case now styles
-	correctly (with no underline).  The existing style tests check that
-	the disassembler styling still works though, so I know I've not
-	generally broken things.
-
-	One final thought I have after looking at this issue is that I wonder
-	now if using Pygments for styling disassembly from every architecture
-	is actually a good idea?
-
-	Clearly, the 'asm' lexer is OK with att style x86-64, but not OK with
-	intel style x86-64, so who knows how well it will handle other random
-	architectures?
-
-	When I first added this feature I tested it against some random
-	RISC-V, ARM, and X86-64 (att style) code, and it seemed fine, but I
-	never tried to make an exhaustive check of all instructions, so its
-	quite possible that there are corner cases where things are styled
-	incorrectly.
-
-	With the above changes I think that things should be a bit better
-	now.  If a particular instruction doesn't parse correctly then our
-	Pygments based styling code will just not style that one instruction.
-	This is combined with the fact that many architectures are now moving
-	to libopcodes based styling, which is much more reliable.
-
-	So, I think it is fine to keep using Pygments as a fallback mechanism
-	for styling all architectures, even if we know it might not be perfect
-	in all cases.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: improve disassembler styling when Pygments raises an exception
-	While working on another issue relating to GDB's use of the Python
-	Pygments package for disassembly styling I noticed an issue in the
-	case where the Pygments package raises an exception.
-
-	The intention of the current code is that, should the Pygments package
-	raise an exception, GDB will disable future attempts to call into the
-	Pygments code.  This was intended to prevent repeated errors during
-	disassembly if, for some reason, the Pygments code isn't working.
-
-	Since the Pygments based styling was added, GDB now supports
-	disassembly styling using libopcodes, but this is only available for
-	some architectures.  For architectures not covered by libopcodes
-	Pygments is still the only option.
-
-	What I observed is that, if I disable the libopcodes styling, then
-	setup GDB so that the Pygments based styling code will indicate an
-	error (by returning None), GDB does, as expected, stop using the
-	Pygments based styling.  However, the libopcodes based styling will
-	instead be used, despite this feature having been disabled.
-
-	The problem is that the disassembler output is produced into a
-	string_file buffer.  When we are using Pygments, this buffer is
-	created without styling support.  However, when Pygments fails, we
-	recreate the buffer with styling support.
-
-	The problem is that we should only recreate the buffer with styling
-	support only if libopcodes styling is enabled.  This was an oversight
-	in commit:
-
-	  commit 4cbe4ca5da5cd7e1e6331ce11f024bf3c07b9744
-	  Date:   Mon Feb 14 14:40:52 2022 +0000
-
-	      gdb: add support for disassembler styling using libopcodes
-
-	This commit:
-
-	  1. Factors out some of the condition checking logic into two new
-	  helper functions use_ext_lang_for_styling and
-	  use_libopcodes_for_styling,
-
-	  2. Reorders gdb_disassembler::m_buffer and gdb_disassembler::m_dest,
-	  this allows these fields to be initialised m_dest first, which means
-	  that the new condition checking functions can rely on m_dest being
-	  set, even when called from the gdb_disassembler constructor,
-
-	  3. Make use of the new condition checking functions each time
-	  m_buffer is initialised,
-
-	  4. Add a new test that forces the Python disassembler styling
-	  function to return None, this will cause GDB to disable use of
-	  Pygments for styling, and
-
-	  5. When we reinitialise m_buffer, and re-disassemble the
-	  instruction, call reset the in-comment flag.  If the instruction
-	  being disassembler ends in a comment then the first disassembly pass
-	  will have set the in-comment flag to true.  This shouldn't be a
-	  problem as we will only be using Pygments, and thus performing a
-	  re-disassembly pass, if libopcodes is disabled, so the in-comment
-	  flag will never be checked, even if it is set incorrectly.  However,
-	  I think that having the flag set correctly is a good thing, even if
-	  we don't check it (you never know what future uses might come up).
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: extend styling test for libopcodes styling
-	This commit extends the gdb.base/style.exp test to cover disassembler
-	styling using libopcodes (where available).
-
-	The test will try to enable libopcode based styling, if this
-	works (because such styling is available) then some tests are run to
-	check that the output is styled, and that the styling can be disabled
-	using 'set style disassembler enabled off'.  If libopcodes styling is
-	not available on the current architecture then these new tests will be
-	skipped.
-
-	I've moved the Python Pygments module check inside the
-	test_disable_disassembler_styling function now, so that the test will
-	be run even when Python Pygments is not available, this allows the new
-	tests discussed above.
-
-	If the Pygments module is not available then the Pygments based tests
-	will be skipped just as they were before.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: update now gdbarch_register_name doesn't return nullptr
-	After the previous few commit, gdbarch_register_name no longer returns
-	nullptr.  This commit audits all the calls to gdbarch_register_name
-	and removes any code that checks the result against nullptr.
-
-	There should be no visible change after this commit.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: final cleanup of various gdbarch_register_name methods
-	Building on the previous commits, this commit goes through the various
-	gdbarch_register_name methods and removes all the remaining 'return
-	NULL' cases, I claim that these either couldn't be hit, or should be
-	returning the empty string.
-
-	In all cases the return of NULL was used if the register number being
-	passed to gdbarch_register_name was "invalid", i.e. negative, or
-	greater than the total number of declared registers.  I don't believe
-	either of these cases can occur, and the previous commit asserts that
-	this is the case.  As a result we can simplify the code by removing
-	these checks.  In many cases, where the register names are held in an
-	array, I was able to add a static assert that the array contains the
-	correct number of strings, after that, a direct access into the array
-	is fine.
-
-	I don't have any means of testing these changes.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/csky: remove nullptr return from csky_pseudo_register_name
-	Building on the previous commits, in this commit I remove two
-	instances of 'return NULL' from csky_pseudo_register_name, and replace
-	them with a return of the empty string.
-
-	These two are particularly interesting, and worth pulling into their
-	own commit, because these returns of NULL appear to be depended on
-	within other parts of the csky code.
-
-	In csky-linux-tdep.c in the register collect/supply code, GDB checks
-	for the register name being nullptr in order to decide if a target
-	supports a particular feature or not.  I've updated the code to check
-	for the empty string.
-
-	I have no way of testing this change.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add asserts to gdbarch_register_name
-	This commit adds asserts to gdbarch_register_name that validate the
-	parameters, and the return value.
-
-	The interesting thing here is that gdbarch_register_name is generated
-	by gdbarch.py, and so, to add these asserts, I need to update the
-	generation script.
-
-	I've added two new arguments for Functions and Methods (as declared in
-	gdbarch-components.py), these arguments are 'param_checks' and
-	'result_checks'.  Each of these new arguments can be used to list some
-	expressions that are then used within gdb_assert calls in the
-	generated code.
-
-	The asserts that validate the API as described in the comment I added
-	to gdbarch_register_name a few commits back; the register number
-	passed in needs to be a valid cooked register number, and the result
-	being returned should not be nullptr.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: check for duplicate register names in selftest
-	Building on the previous commit, this commit extends the register_name
-	selftest to check for duplicate register names.
-
-	If two registers in the cooked register set (real + pseudo registers)
-	have the same name, then this will show up as duplicate registers in
-	the 'info all-registers' output, but the user will only be able to
-	interact with one copy of the register.
-
-	In this commit I extend the selftest that I added in the previous
-	commit to check for duplicate register names, I didn't include this
-	functionality in the previous commit because one architecture needed
-	fixing, and I wanted to keep those fixes separate from the fixes in
-	the previous commit.
-
-	The problematic architecture(s) are powerpc:750 and powerpc:604.  In
-	both of these cases the 'dabr' register appears twice, there's a
-	definition of dabr in power-oea.xml which is included into both
-	powerpc-604.xml and powerpc-750.xml.  Both of these later two xml
-	files also define the dabr register.
-
-	I'm hopeful that this change shouldn't break anything, but I don't
-	have the ability to actually test this change, however:
-
-	On the gdbserver side, neither powerpc-604.xml nor powerpc-750.xml are
-	mentioned in gdbserver/configure.srv, which I think means that
-	gdbserver will never use these descriptions, and,
-
-	Within GDB the problematic descriptions are held in the variables
-	tdesc_powerpc_604 and tdesc_powerpc_750, which are only mentioned in
-	the variants array in rs6000-tdep.c, this is used when looking up a
-	description based on the architecture.
-
-	For a native Linux target however, this will not be used as
-	ppc_linux_nat_target::read_description exists, which calls
-	ppc_linux_match_description, which I don't believe can return either
-	of the problematic descriptions.
-
-	This leaves the other native targets, FreeBSD, AIX, etc.  These don't
-	appear to override the ::read_description method, so will potentially
-	return the problematic descriptions, but, in each case I think the
-	::fetch_registers and ::store_registers methods will ignore the dabr
-	register, which will leave the register as <unavailable>.
-
-	So, my proposed solution is to just remove the duplicate register from
-	each of powerpc-604.xml and powerpc-750.xml, then regenerate the
-	corresponding C++ source file.  With this change made, the selftest
-	now passes for all architectures.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add a gdbarch_register_name self test, and fix some architectures
-	This commit adds a self-test that checks that gdbarch_register_name
-	never returns nullptr for any valid register number.
-
-	Most architectures already met this requirement, there were just 6
-	that failed the new selftest, and are updated in this commit.
-
-	Beyond the self-tests I don't have any facilities to test that the
-	architectures I've adjusted still work correctly.
-
-	If you review all the various gdbarch_register_name implementations
-	then you will see that there are far more architectures that seem like
-	they might return nullptr in some situations, e.g. alpha, avr, bpf,
-	etc.  This commit doesn't attempt to address these cases as non of
-	them are hit during the selftest.  Many of these cases can never be
-	hit, for example, in alpha_register_name GDB checks for a register
-	number less than zero, this case can't happen and could be changed
-	into an assert.
-
-	A later commit in this series will have a general cleanup of all the
-	various register_name methods, and remove all references to NULL from
-	their code, however, as that commit will be mostly adjusting code that
-	is never hit, I want to keep those changes separate.
-
-	The selftest has been tested on x86-64, but I don't have access to
-	suitable systems to fully test any of the *-tdep.c code I've changed
-	in this commit.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: add a comment to gdbarch_register_name
-	After the previous commit, this commit sets out to formalise the API
-	for gdbarch_register_name.  Not every architecture is actually in
-	compliance with the API I set out here, but I believe that most are.
-
-	I think architectures that don't comply with the API laid out here
-	will fail the gdb.base/completion.exp test.
-
-	The claims in the comment are I feel, best demonstrated with the
-	asserts in this code:
-
-	  const char *
-	  gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
-	  {
-	    gdb_assert (regnr >= 0);
-	    gdb_assert (regnr < gdbarch_num_cooked_regs (gdbarch));
-
-	    const char *name = gdbarch->register_name (gdbarch, regnr);
-
-	    gdb_assert (name != nullptr);
-
-	    return name;
-	  }
-
-	Like I said, I don't believe every architecture follows these rules
-	right now, which is why I'm not actually adding any asserts.  Instead,
-	this commit adds a comment to gdbarch_register_name, this comment is
-	where I'd like to get to, rather than where we are right now.
-
-	Subsequent commits will fix all targets to be in compliance with this
-	comment, and will even add the asserts shown above to
-	gdbarch_register_name.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: fix failure in gdb.base/completion.exp
-	I noticed a test failure in gdb.base/completion.exp for RISC-V on
-	a native Linux target, this is the failure:
-
-	  (gdb) FAIL: gdb.base/completion.exp: complete 'info registers '
-
-	The problem is caused by a mismatch in the output of 'maint print
-	registers' and the completion list for 'info registers'.  The 'info
-	registers' completion list contains less registers than
-	expected. Additionally, the list of registers extracted from the
-	'maint print registers' list was wrong too, in some cases the test was
-	grabbing the register number, rather than a register name,
-
-	Both of these problems have the same root cause, riscv_register_name
-	returns nullptr for some registers when it should return an empty
-	string.
-
-	The gdbarch_register_name API is not clearly documented anywhere, and
-	at first glance it would appear that the function can return either
-	nullptr, or an empty string to indicate that a register is not
-	available on the current target.  Indeed, there are plenty of places
-	in GDB where we compare the output of gdbarch_register_name to both
-	nullptr and '\0' in order to see if a register is supported or not,
-	and there are plenty of targets that return empty string in some
-	cases, and nullptr in others.
-
-	However, the 'info registers' completion code (reg_or_group_completer)
-	clearly depends on user_reg_map_regnum_to_name only returning nullptr
-	when the passed in regnum is greater than the maximum possible
-	register number (i.e. after all physical registers, pseudo-registers,
-	and user-registers), this means that gdbarch_register_name should not
-	be returning nullptr.
-
-	I did consider "fixing" user_reg_map_regnum_to_name, if
-	gdbarch_register_name returns nullptr, I could convert to an empty
-	string at this point, but that felt like a real hack, so I discarded
-	that plan.
-
-	The next possibility I considered was "fixing" reg_or_group_completer
-	to not rely on nullptr to indicate the end marker.  Or rather, I could
-	have reg_or_group_completer use gdbarch_num_cooked_regs, we know that
-	we should check at least that many register numbers.  Then, once we're
-	passed that limit, we keep checking until we hit a nullptr.  This
-	would absolutely work, and didn't actually feel that bad, but, it
-	still felt a little weird that gdbarch_register_name could return
-	nullptr OR the empty string to mean the same thing, so I wondered if
-	the "right" solution was to have gdbarch_register_name not return
-	nullptr.  With this in mind I tried an experiment:
-
-	I added a self-test that, for each architecture, calls
-	gdbarch_register_name for every register number up to the
-	gdbarch_num_cooked_regs limit, and checks that the name is not
-	nullptr.
-
-	Only a handful of architectures failed this test, RISC-V being one of
-	them.
-
-	This seems to suggest that most architectures agree that the correct
-	API for gdbarch_register_name is to return an empty string for
-	registers that are not supported on the current target, and that
-	returning nullptr is really a mistake.
-
-	In this commit I will update the RISC-V target so that GDB no longer
-	returns nullptr from riscv_register_name, instead we return the empty
-	string.
-
-	In subsequent commits I will add the selftest that I mention above,
-	and will fix the targets that fail the selftest.
-
-	With this change the gdb.base/completion.exp test now passes.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: rewrite capture_command_output proc
-	I noticed a test failure in gdb.base/completion.exp for RISC-V on a
-	native Linux target.  Upon investigation I discovered a couple of
-	reasons for the failure, this commit addresses one of them.  A later
-	commit will address the other issue.
-
-	The completion.exp test makes use of the capture_command_output proc
-	to collect the output of the 'maint print registers' command.  For
-	RISC-V this command produces a lot of output.
-
-	Currently the capture_command_output proc tries to collect the
-	complete command output in a single expect buffer, and what I see is
-	an error caused by the expect buffer becoming full.
-
-	This commit rewrites capture_command_output to make use of
-	gdb_test_multiple to collect the command output line at a time, in
-	this way we avoid overflowing the expect buffer.
-
-	The capture_command_output proc has some logic for skipping a prefix
-	pattern, which is passed in to the proc as an argument.  In order to
-	handle this correctly (only matching the prefix at the start of the
-	command output), I use two gdb_test_multiple calls, the first spots
-	and discards the echoed command and the (optional) prefix pattern, the
-	second gdb_test_multiple call then collects the rest of the command
-	output line at a time until a prompt is seen.
-
-	There is one slight oddity with the current implementation, which I
-	have changed in my rewrite, this does, slightly, change the behaviour
-	of the proc.
-
-	The current implementation uses this pattern:
-
-	  -re "[string_to_regexp ${command}]\[\r\n\]+${prefix}(.*)\[\r\n\]+$gdb_prompt $"
-
-	Now a typical command output will look like this:
-
-	  output here\r\n
-	  (gdb)
-
-	As the TCL regexp matching is greedy, TCL will try to match as much as
-	possible in one part of the pattern before moving on to the next.
-	Thus, when this matches against (.*)[\r\n]+, the (.*) will end up
-	matching against 'output here\r' and the [\r\n]+ will match '\n' only.
-
-	In short the previous implementation would leave the '\r' on the end
-	of the returned text, but not the final trailing '\n'.
-
-	Now clearly I could make a new version of capture_command_output that
-	maintained this behaviour, but I couldn't see any reason to do this.
-	So, my new implementation drops the final '\r\n' completely, in our
-	example above we now return 'output here' with no '\r'.
-
-	This change doesn't seem to affect any of the existing tests, but I
-	thought it was worth mentioning.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: new options for -data-disassemble command
-	Now that the disassembler has two different strategies for laying out
-	the opcode bytes of an instruction (see /r vs /b for the disassemble
-	command), I wanted to add support for this to the MI disassemble
-	command.
-
-	Currently the -data-disassemble command takes a single 'mode' value,
-	which currently has 6 different values (0 -> 5), 3 of these modes
-	relate to opcode display.
-
-	So, clearly I should just add an additional 3 modes to handle the new
-	opcode format, right?
-
-	No, I didn't think that was a great idea either.
-
-	So, I wonder, could I adjust the -data-disassemble command in a
-	backward compatible way, that would allow GDB to move away from using
-	the mode value altogether?
-
-	I think we can.
-
-	In this commit, I propose adding two new options to -data-disassemble,
-	these are:
-
-	  --opcodes none|bytes|display
-	  --source
-
-	Additionally, I will make the mode optional, and default to mode 0 if
-	no mode value is given.  Mode 0 is the simplest, no source code, no
-	opcodes disassembly mode.
-
-	The two new options are only valid for mode 0, if they are used with
-	any other mode then an error is thrown.
-
-	The --opcodes option can add opcodes to the result, with 'bytes' being
-	equivalent to 'disassemble /b' and 'display' being 'disassemble /r'.
-
-	The --source option will enable the /s style source code display, this
-	is equivalent to modes 4 and 5.  There is no way, using the new
-	command options to get the now deprecated /m style source code
-	display, that is mode 1 and 3.
-
-	My hope is that new users of the MI will not use the mode at all, and
-	instead will just use the new options to achieve the output they need.
-	Existing MI users can continue to use the mode, and will not need to
-	be updated to use the new options.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: some int to bool conversion
-	Just some simple int to bool conversion in mi_cmd_disassemble.  There
-	should be no user visible changes after this commit.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: update syntax of -data-disassemble command arguments
-	The argument documentation for -data-disassemble looks like this:
-
-	   -data-disassemble
-	      [ -s @var{start-addr} -e @var{end-addr} ]
-	    | [ -a @var{addr} ]
-	    | [ -f @var{filename} -l @var{linenum} [ -n @var{lines} ] ]
-	    -- @var{mode}
-
-	However, I believe, according to the 'Notation and Terminology'
-	section, this means that the there are 3 optional location
-	specification argument groups for the command, followed by a
-	non-optional '-- mode'.
-
-	However, this is not true, one of the location specifications must be
-	given, i.e. we can't choose to give NO location specification, which
-	is what the above implies.
-
-	I propose that we change this to instead be:
-
-	   -data-disassemble
-	    ( -s @var{start-addr} -e @var{end-addr}
-	    | -a @var{addr}
-	    | -f @var{filename} -l @var{linenum} [ -n @var{lines} ] )
-	    -- @var{mode}
-
-	By placing all the location specifications within '( ... )' we
-	indication that these are a group, from which one of the options,
-	separated by '|', must be selected.
-
-	However, the 'Notation and Terminology' section only describes two
-	uses for parenthesis: '( GROUP )*' and '( GROUP )+', in the first case
-	GROUP is repeated zero or more times, and in the second GROUP is
-	repeated 1 or more times.
-
-	Neither of those exactly describe what I want, which is GROUP must
-	appear exactly once.  I propose to extend 'Notation and Terminology'
-	to include '( GROUP )' which means that GROUP should appear exactly
-	once.
-
-	This change is important because, in a later commit, I want to add
-	additional optional arguments to the -data-disassemble command, and
-	things start to get confusing with the original syntax.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make gdb_disassembly_flag unsigned
-	In a later commit I want to use operator~ on a gdb_disassembly_flag
-	flag value.  This is currently not possible as gdb_disassembly_flag
-	is, by default, signed.
-
-	This commit just makes this enum unsigned.
-
-	There should be no user visible changes after this commit.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: disassembler opcode display formatting
-	This commit changes the format of 'disassemble /r' to match GNU
-	objdump.  Specifically, GDB will now display the instruction bytes in
-	as 'objdump --wide --disassemble' does.
-
-	Here is an example for RISC-V before this patch:
-
-	  (gdb) disassemble /r 0x0001018e,0x0001019e
-	  Dump of assembler code from 0x1018e to 0x1019e:
-	     0x0001018e <call_me+66>:     03 26 84 fe     lw      a2,-24(s0)
-	     0x00010192 <call_me+70>:     83 25 c4 fe     lw      a1,-20(s0)
-	     0x00010196 <call_me+74>:     61 65   lui     a0,0x18
-	     0x00010198 <call_me+76>:     13 05 85 6a     addi    a0,a0,1704
-	     0x0001019c <call_me+80>:     f1 22   jal     0x10368 <printf>
-	  End of assembler dump.
-
-	And here's an example after this patch:
-
-	  (gdb) disassemble /r 0x0001018e,0x0001019e
-	  Dump of assembler code from 0x1018e to 0x1019e:
-	     0x0001018e <call_me+66>:     fe842603                lw      a2,-24(s0)
-	     0x00010192 <call_me+70>:     fec42583                lw      a1,-20(s0)
-	     0x00010196 <call_me+74>:     6561                    lui     a0,0x18
-	     0x00010198 <call_me+76>:     6a850513                addi    a0,a0,1704
-	     0x0001019c <call_me+80>:     22f1                    jal     0x10368 <printf>
-	  End of assembler dump.
-
-	There are two differences here.  First, the instruction bytes after
-	the patch are grouped based on the size of the instruction, and are
-	byte-swapped to little-endian order.
-
-	Second, after the patch, GDB now uses the bytes-per-line hint from
-	libopcodes to add whitespace padding after the opcode bytes, this
-	means that in most cases the instructions are nicely aligned.
-
-	It is still possible for a very long instruction to intrude into the
-	disassembled text space.  The next example is x86-64, before the
-	patch:
-
-	  (gdb) disassemble /r main
-	  Dump of assembler code for function main:
-	     0x0000000000401106 <+0>:     55      push   %rbp
-	     0x0000000000401107 <+1>:     48 89 e5        mov    %rsp,%rbp
-	     0x000000000040110a <+4>:     c7 87 d8 00 00 00 01 00 00 00   movl   $0x1,0xd8(%rdi)
-	     0x0000000000401114 <+14>:    b8 00 00 00 00  mov    $0x0,%eax
-	     0x0000000000401119 <+19>:    5d      pop    %rbp
-	     0x000000000040111a <+20>:    c3      ret
-	  End of assembler dump.
-
-	And after the patch:
-
-	  (gdb) disassemble /r main
-	  Dump of assembler code for function main:
-	     0x0000000000401106 <+0>:     55                      push   %rbp
-	     0x0000000000401107 <+1>:     48 89 e5                mov    %rsp,%rbp
-	     0x000000000040110a <+4>:     c7 87 d8 00 00 00 01 00 00 00   movl   $0x1,0xd8(%rdi)
-	     0x0000000000401114 <+14>:    b8 00 00 00 00          mov    $0x0,%eax
-	     0x0000000000401119 <+19>:    5d                      pop    %rbp
-	     0x000000000040111a <+20>:    c3                      ret
-	  End of assembler dump.
-
-	Most instructions are aligned, except for the very long instruction.
-	Notice too that for x86-64 libopcodes doesn't request that GDB group
-	the instruction bytes.  This matches the behaviour of objdump.
-
-	In case the user really wants the old behaviour, I have added a new
-	modifier 'disassemble /b', this displays the instruction byte at a
-	time.  For x86-64, which never groups instruction bytes, /b and /r are
-	equivalent, but for RISC-V, using /b gets the old layout back (except
-	that the whitespace for alignment is still present).  Consider our
-	original RISC-V example, this time using /b:
-
-	  (gdb) disassemble /b 0x0001018e,0x0001019e
-	  Dump of assembler code from 0x1018e to 0x1019e:
-	     0x0001018e <call_me+66>:     03 26 84 fe             lw      a2,-24(s0)
-	     0x00010192 <call_me+70>:     83 25 c4 fe             lw      a1,-20(s0)
-	     0x00010196 <call_me+74>:     61 65                   lui     a0,0x18
-	     0x00010198 <call_me+76>:     13 05 85 6a             addi    a0,a0,1704
-	     0x0001019c <call_me+80>:     f1 22                   jal     0x10368 <printf>
-	  End of assembler dump.
-
-	Obviously, this patch is a potentially significant change to the
-	behaviour or /r.  I could have added /b with the new behaviour and
-	left /r alone.  However, personally, I feel the new behaviour is
-	significantly better than the old, hence, I made /r be what I consider
-	the "better" behaviour.
-
-	The reason I prefer the new behaviour is that, when I use /r, I almost
-	always want to manually decode the instruction for some reason, and
-	having the bytes displayed in "instruction order" rather than memory
-	order, just makes this easier.
-
-	The 'record instruction-history' command also takes a /r modifier, and
-	has been modified in the same way as disassemble; /r gets the new
-	behaviour, and /b has been added to retain the old behaviour.
-
-	Finally, the MI command -data-disassemble, is unchanged in behaviour,
-	this command now requests the raw bytes of the instruction, which is
-	equivalent to the /b modifier.  This means that the MI output will
-	remain backward compatible.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/disasm: read opcodes bytes with a single read_code call
-	This commit reduces the number of times we call read_code when
-	printing the instruction opcode bytes during disassembly.
-
-	I've added a new gdb::byte_vector within the
-	gdb_pretty_print_disassembler class, in line with all the other
-	buffers that gdb_pretty_print_disassembler needs.  This byte_vector is
-	then resized as needed, and filled with a single read_code call for
-	each instruction.
-
-	There should be no user visible changes after this commit.
-
-2022-10-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: new test for -data-disassemble opcodes format
-	Add another test for the output of MI command -data-disassemble.  The
-	new check validates the format of the 'opcodes' field, specifically,
-	this test checks that the field contains a series of bytes, separated
-	by a single space.
-
-	We also check that the bytes are in the correct order, that is, the
-	first byte is from the lowest address, and subsequent bytes are from
-	increasing addresses.
-
-	The motivation for this test (besides more tests being generally good)
-	is that I plan to make changes to how opcode bytes are displayed in
-	the disassembler output, and I want to ensure that I don't break any
-	existing MI behaviour.
-
-	There should be no user visible changes to GDB after this commit.
-
-2022-10-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-10-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-30  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Relax "fmv.[sdq]" requirements
-	This commit relaxes requirements to "fmv.s" instructions from 'F' to ('F'
-	or 'Zfinx').  The same applies to "fmv.d" and "fmv.q".  Note that 'Zhinx'
-	extension already contains "fmv.h" instruction (as well as 'Zfh').
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zfinx.s: Add "fmv.s" instruction.
-		* testsuite/gas/riscv/zfinx.d: Likewise.
-		* testsuite/gas/riscv/zdinx.s: Add "fmv.d" instruction.
-		* testsuite/gas/riscv/zdinx.d: Likewise.
-		* testsuite/gas/riscv/zqinx.d: Add "fmv.q" instruction.
-		* testsuite/gas/riscv/zqinx.s: Likewise.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_opcodes): Relax requirements to "fmv.[sdq]"
-		instructions to support those in 'Zfinx'/'Zdinx'/'Zqinx'.
-
-2022-09-30  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Reorganize and enhance 'Zfinx' tests
-	This commit adds certain test cases for 'Zfinx'/'Zdinx'/'Zqinx' extensions
-	and reorganizes them, fixing coding style while improving coverage.
-	This is partially based on jiawei's 'Zhinx' testcases.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zfinx.s: Use different registers for
-		better encode space testing.  Make indentation consistent.
-		Add tests for instruction with rounding mode.  Change march
-		to minimum required extensions.  Remove source line.
-		* testsuite/gas/riscv/zfinx.d: Likewise.
-		* testsuite/gas/riscv/zdinx.s: Likewise.
-		* testsuite/gas/riscv/zdinx.d: Likewise.
-		* testsuite/gas/riscv/zqinx.s: Likewise.
-		Also use even-numbered registers to use valid register pairs.
-		* testsuite/gas/riscv/zqinx.d: Likewise.
-
-2022-09-30  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Eliminate long-casts of X_add_number in diagnostics
-	There is no need for casts to (signed/unsigned) long, as we can use
-	C99's PRId64/PRIu64 format specifiers.
-
-2022-09-30  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: fallout from "re-arrange opcode table for consistent alias handling"
-	Several new testcasee have appeared since the submission of said change,
-	some of which now also need adjustment.
-
-	RISC-V: fix build after "Add support for arbitrary immediate encoding formats"
-	Pre- and post-increment/decrement are side effects, the behavior of
-	which is undefined when combined with passing an address of the accessed
-	variable in the same function invocation. There's no need for the
-	increments here - simply adding 1 achieves the intended effect without
-	triggering compiler diagnostics (which are fatal with -Werror).
-
-	objcopy: avoid "shadowing" of remove() function name
-	remove() is a standard library function (declared in stdio.h), which
-	triggers a "shadows a global declaration" warning with some gcc versions.
-
-	RISC-V: drop stray INSN_ALIAS flags
-	FENCE.TSO isn't an alias. ZIP and UNZIP in the long run likely are, but
-	presently they aren't. This fixes disassembly of these insns with
-	-Mno-aliases.
-
-2022-09-30  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: re-arrange opcode table for consistent alias handling
-	For disassembly to pick up aliases in favor of underlying insns (helping
-	readability in the common case), the aliases need to come ahead of the
-	"base" insns. Slightly more code movement is needed because of insns
-	with the same name needing to stay next to each other.
-
-	Note that the "rorw" alias entry also has the missing INSN_ALIAS added
-	here.
-
-	Clone a few testcases to exercise -Mno-aliases some more, better
-	covering the differences between the default and that disassembly mode.
-
-2022-09-30  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct build dependencies in opcodes/
-	With the command in the rule merely being "echo", i386-tbl.h won't be
-	rebuilt if missing, when at the same time i386-init.h is present and
-	up-to-date. Use a pattern rule instead to express the multiple targets
-	correctly (the &: rule separator is supported only by GNU make 4.3 and
-	newer). Note that now, for the opposite case to work (i386-tbl.h is
-	up-to-date but i386-init.h is missing), i386-init.h also needs
-	mentioning as a dependency somewhere: Add a fake dependency for
-	i386-opc.lo ("fake" because i386-opc.c doesn't include that header).
-
-	At the same time use $(AM_V_GEN) in the actual rule, replacing the
-	earlier (open-coded) "echo". And while there also drop a duplicate
-	dependency of i386-gen.o on i386-opc.h.
-
-2022-09-30  Jan Beulich  <jbeulich@suse.com>
-
-	x86: improve match_template()'s diagnostics
-	At the example of
-
-		extractps $0, %xmm0, %xmm0
-		insertps $0, %xmm0, %eax
-
-	(both having respectively the same mistake of using the wrong kind of
-	destination register) it is easy to see that current behavior is far
-	from ideal: The former results in "unsupported instruction" for 32-bit
-	code simply because the 2nd template we have is a Cpu64 one. Instead we
-	should aim at emitting the "best" possible error, which will typically
-	be the one where we passed the largest number of checks. Generalize the
-	original "specific_error" approach by making it apply to the entire
-	matching loop, utilizing that line numbers increase as we pass further
-	checks.
-
-2022-09-30  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: restrict suffix derivation
-	While in some cases deriving an AT&T-style suffix from an Intel syntax
-	memory operand size specifier is necessary, in many cases this is not
-	only pointless, but has led to the introduction of various workarounds:
-	Excessive use of IgnoreSize and NoRex64 as well as the ToDword and
-	ToQword attributes. Suppress suffix derivation when we can clearly tell
-	that the memory operand's size isn't going to be needed to infer the
-	possible need for the low byte/word opcode bit or an operand size prefix
-	(0x66 or REX.W).
-
-	As a result ToDword and ToQword can be dropped entirely, plus a fair
-	number of IgnoreSize and NoRex64 can also be got rid of. Note that
-	IgnoreSize needs to remain on legacy encoded SIMD insns with GPR
-	operand, to avoid emitting an operand size prefix in 16-bit mode. (Since
-	16-bit code using SIMD insns isn't well tested, clone an existing
-	testcase just enough to cover a few insns which are potentially
-	problematic but are being touched here.)
-
-	Note that while folding the VCVT{,T}S{S,D}2SI templates, VCVT{,T}SH2SI
-	isn't included there. This is to fulfill the request of not allowing L
-	and Q suffixes there, despite the inconsistency with VCVT{,T}S{S,D}2SI.
-
-2022-09-30  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Update ELF e_flags handling according to specification.
-	  Update handling of e_flags according to the documentation
-	  update [1] (discussions [2][3]).
-
-	  Object file bitness is now represented in the EI_CLASS byte.
-	  The e_flags field is now interpreted as follows:
-
-	  e_flags[2:0]: Base ABI modifier
-
-	  - 0x1: soft-float
-	  - 0x2: single-precision hard-float
-	  - 0x3: double-precision hard-float
-
-	  e_flags[7:6]: ELF object ABI version
-
-	  - 0x0: v0
-	  - 0x1: v1
-
-	  [1]: https://github.com/loongson/LoongArch-Documentation/blob/main/docs/LoongArch-ELF-ABI-EN.adoc#e_flags-identifies-abi-type-and-version
-	  [2]: https://github.com/loongson/LoongArch-Documentation/pull/61
-	  [3]: https://github.com/loongson/LoongArch-Documentation/pull/47
-
-2022-09-30  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix cppcheck warnings
-	gprofng/ChangeLog
-	2022-09-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* common/hwcdrv.c: Fix cppcheck warning.
-		* src/ABS.h: Likewise.
-		* src/CompCom.cc: Likewise.
-
-2022-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.mi/mi-sym-info.exp on openSUSE Tumbleweed
-	On openSUSE Tumbleweed, I run into:
-	...
-	FAIL: gdb.mi/mi-sym-info.exp: List all functions from debug information only
-	...
-
-	The problem is in matching this string:
-	...
-	{name="_start",type="void (void)",description="void _start(void);"}
-	...
-	using regexp fun_re, which requires a line field:
-	...
-	set fun_re \
-	    "\{line=\"$decimal\",name=${qstr},type=${qstr},description=${qstr}\}"
-	...
-
-	Fix this by making the line field optional in fun_re.
-
-	Tested on x86_64-linux.
-
-2022-09-30  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add privileged extensions without instructions/CSRs
-	Currently, GNU Binutils does not support following privileged extensions:
-
-	-   'Smepmp'
-	-   'Svnapot'
-	-   'Svpbmt'
-
-	as they do not provide new CSRs or new instructions ('Smepmp' extends the
-	privileged architecture CSRs but does not define the CSR itself).  However,
-	adding them might be useful as we no longer have to "filter" ISA strings
-	just for toolchains (if full ISA string is given by a vendor, we can
-	straightly use it).
-
-	And there's a fact that supports this theory: there's already an
-	(unprivileged) extension which does not provide CSRs or instructions (but
-	only an architectural guarantee): 'Zkt' (constant timing guarantee for
-	certain subset of RISC-V instructions).
-
-	This simple commit simply adds three privileged extensions listed above.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Smepmp',
-		'Svnapot' and 'Svpbmt' extensions.
-
-2022-09-30  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gdb: Remove unused extra_lines variable
-	Clang generates a warning if there is a variable that is set but not used
-	otherwise ("-Wunused-but-set-variable").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	The only extra_lines use in arrange_linetable function is removed on the
-	commit 558802e4d1c5dcbd0df7d2c6ef62a6deac247a2f
-	("gdb: change subfile::line_vector to an std::vector").  So, this variable
-	should be removed to prevent a build failure.
-
-2022-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add aranges to gdb.dwarf2/dw2-dir-file-name.exp
-	Since commit 52b920c5d20 ("[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp
-	for ppc64le"), the test-case fails with target board cc-with-debug-names, due
-	to missing .debug_aranges info.
-
-	Add the missing .debug_aranges info.
-
-	Also add a file_id option to Dwarf::assemble, to make it possible to contribute
-	to an already open file.
-
-	Tested on x86_64-linux.
-
-2022-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/c++] Print destructor the same for gcc and clang
-	Consider the test-case contained in this patch.
-
-	With g++ (7.5.0) we have for "ptype A":
-	...
-	type = class A {
-	  public:
-	    int a;
-
-	    A(void);
-	    ~A();
-	}
-	...
-	and with clang++ (13.0.1):
-	...
-	type = class A {
-	  public:
-	    int a;
-
-	    A(void);
-	    ~A(void);
-	}
-	...
-	and we observe that the destructor is printed differently.
-
-	There's a difference in debug info between the two cases: in the clang case,
-	there's one artificial parameter, but in the g++ case, there are two, and
-	these similar cases are handled differently in cp_type_print_method_args.
-
-	This is due to this slightly convoluted bit of code:
-	...
-	  i = staticp ? 0 : 1;
-	  if (nargs > i)
-	    {
-	      while (i < nargs)
-	        ...
-	    }
-	  else if (varargs)
-	    gdb_printf (stream, "...");
-	  else if (language == language_cplus)
-	    gdb_printf (stream, "void");
-	...
-
-	The purpose of "i = staticp ? 0 : 1" is to skip the printing of the implicit
-	this parameter.
-
-	In commit 5f4d1085085 ("c++/8218: Destructors w/arguments"), skipping of other
-	artificial parameters was added, but using a different method: rather than
-	adjusting the potential loop start, it skips the parameter in the loop.
-
-	The observed difference in printing is explained by whether we enter the loop:
-	- in the clang case, the loop is not entered and we print "void".
-	- in the gcc case, the loop is entered, and nothing is printed.
-
-	Fix this by rewriting the code to:
-	- always enter the loop
-	- handle whether arguments need printing in the loop
-	- keep track of how many arguments are printed, and
-	  use that after the loop to print void etc.
-	such that we have the same for both gcc and clang:
-	...
-	    A(void);
-	    ~A(void);
-	...
-
-	Note that I consider the discussion of whether we want to print:
-	- A(void) / ~A(void), or
-	- A() / ~A()
-	out-of-scope for this patch.
-
-	Tested on x86_64-linux.
-
-2022-09-30  Alan Modra  <amodra@gmail.com>
-
-	PR29626, Segfault when disassembling ARM code
-		PR 29626
-		* arm-dis.c (mapping_symbol_for_insn): Return false on zero
-		symtab_size.  Delete later symtab_size test.
-
-2022-09-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make target_auxv_parse static and rename
-	It is only used in auxv.c.  Also, given it is not strictly a wrapper
-	around target_ops::auxv (since 27a48a9223d0 "Add auxv parsing to the
-	architecture vector."), I think that the name prefixed with target is a
-	bit misleading.  Rename to just parse_auxv.
-
-	Change-Id: I41cca055b92c8ede37c258ba6583746a07d8f77e
-
-2022-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make fprint_target_auxv static
-	It's only used in auxv.c.
-
-	Change-Id: I4992d9aae37b6631a074ab99bbab2f619725b642
-
-2022-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: constify auxv parse functions
-	Constify the input parameters of the various auxv parse functions, they
-	don't need to modify the raw auxv data.
-
-	Change-Id: I13eacd5ab8e925ec2b5c1f7722cbab39c41516ec
-
-2022-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: constify target_stack::is_pushed
-	The target_ops parameters here can be made const.
-
-	Change-Id: Ibc18b17d6b21d06145251a03e68aca90538117d6
-
-2022-09-29  Keith Seitz  <keiths@redhat.com>
-
-	Constify target_desc declarations
-	This patch changes various global target_desc declarations to const, thereby
-	correcting a prominent source of ODR violations in PowerPC-related target code.
-	The majority of files/changes are mechanical const-ifications accomplished by
-	regenerating the C files in features/.
-
-	This also required manually updating mips-linux-tdep.h,  s390-linux-tdep.h,
-	nios2-tdep.h, s390-tdep.h, arch/ppc-linux-tdesc.h, arch/ppc-linux-common.c,
-	and rs6000-tdep.c.
-
-	Patch tested against the sourceware trybot, and fully regression tested against
-	our (Red Hat's) internal  test infrastructure on Rawhide aarch64, s390x, x86_64,
-	and powerpcle.
-
-	With this patch, I can finally enable LTO in our GDB package builds. [Tested
-	with a rawhide scratch build containing this patch.]
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24835
-
-2022-09-29  Keith Seitz  <keiths@redhat.com>
-
-	cleanup: Add missing feature/ XML files to Makefile
-	This patch adds some missing .xml files to features/Makefile so that when the
-	directory's C files are regenerated, all files are appropriately remade.
-
-	This has demonstrated that there have been several "misses" in regenerating
-	files in this directory. Namely, arm-secext.c and sparc{32,64}-solaris.c. For
-	the former case, there was what essentially amounts to a typo regarding the
-	create feature function's name. In the later case, this file has missed at least
-	one important update in July, 2020, when allocate_target_description was
-	changed to return a unique pointer.
-
-	Those corrections are included.
-
-2022-09-29  Nick Clifton  <nickc@redhat.com>
-
-	Add -B to the help output from gprof, and add suitable documentation.
-		PR 29627
-		* gprof.c (usage): Add -B.
-		* gprof.texi (synopsis): Add -B.
-		(Output Options): Add entry for -B.
-
-2022-09-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-28  Pedro Alves  <pedro@palves.net>
-
-	Fix GDB build: ELF support check & -lzstd
-	GDB fails to build for me, on Ubuntu 20.04.  I get:
-
-	 ...
-	   CXXLD  gdb
-	 /usr/bin/ld: linux-tdep.o: in function `linux_corefile_thread(thread_info*, linux_corefile_thread_data*)':
-	 /home/pedro/gdb/binutils-gdb/src/gdb/linux-tdep.c:1831: undefined reference to `gcore_elf_build_thread_register_notes(gdbarch*, thread_info*, gdb_signal, bfd*, std::unique_ptr<char, gdb::xfree_deleter<char> >*, int*)'
-	 /usr/bin/ld: linux-tdep.o: in function `linux_make_corefile_notes(gdbarch*, bfd*, int*)':
-	 /home/pedro/gdb/binutils-gdb/src/gdb/linux-tdep.c:2117: undefined reference to `gcore_elf_make_tdesc_note(bfd*, std::unique_ptr<char, gdb::xfree_deleter<char> >*, int*)'
-	 collect2: error: ld returned 1 exit status
-	 make[2]: *** [Makefile:2149: gdb] Error 1
-	 make[2]: Leaving directory '/home/pedro/gdb/binutils-gdb/build/gdb'
-	 make[1]: *** [Makefile:11847: all-gdb] Error 2
-	 make[1]: Leaving directory '/home/pedro/gdb/binutils-gdb/build'
-	 make: *** [Makefile:1004: all] Error 2
-
-	Those undefined functions exist in gdb/gcore-elf.c, which is only
-	included in the build if GDB's configure thinks that the target you're
-	configuring for is an ELF target.  GDB's configure thinks my system
-	isn't ELF, which is incorrect.
-
-	For the ELF support check, gdb/config.log shows:
-
-	 configure:17387: checking for ELF support in BFD
-	 configure:17407: gcc -o conftest -I/home/pedro/gdb/binutils-gdb/src/gdb/../include -I../bfd -I/home/pedro/gdb/binutils-gdb/src/gdb/../bfd -g3 -O0      -L../bfd -L../libiberty  -lzstd   conftest.c -lbfd -liberty -lz  -lncursesw -lm -ldl  >&5
-	 /usr/bin/ld: ../bfd/libbfd.a(compress.o): in function `decompress_contents':
-	 /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:42: undefined reference to `ZSTD_decompress'
-	 /usr/bin/ld: /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:44: undefined reference to `ZSTD_isError'
-	 /usr/bin/ld: ../bfd/libbfd.a(compress.o): in function `bfd_compress_section_contents':
-	 /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:195: undefined reference to `ZSTD_compress'
-	 /usr/bin/ld: /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:198: undefined reference to `ZSTD_isError'
-	 collect2: error: ld returned 1 exit status
-	 configure:17407: $? = 1
-	 ...
-	 configure:17417: result: no
-
-	Note how above, in the gcc command line, "-lzstd" appears before
-	"-lbfd".  That explain the link failure.  It should appear after, like
-	-lz does.
-
-	This commit fixes it, by moving ZSTD_LIBS from LDFLAGS to LIBS, next
-	to -lz, in GDB_AC_CHECK_BFD, and regenerating gdb/configure.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29630
-	Change-Id: I1f4128dde634e8ea04c9002904f1005a8b3a6863
-
-2022-09-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove trailing spaces in README
-	Change-Id: Ic7f8e415acd1bff6194cf08ed646bff45571f165
-
-2022-09-28  Tom Tromey  <tromey@adacore.com>
-
-	Treat Character as a discrete type in Ada
-	A user noticed that gdb would assert when printing a certain array
-	with array-indexes enabled.  This turned out to be caused by the array
-	having an index type of Character, which is completely valid in Ada.
-	This patch changes the Ada support to recognize Character as a
-	discrete type, and adds some tests.
-
-	Because this is Ada-specific and was also reviewed internally, I am
-	checking it in.
-
-2022-09-28  Nick Clifton  <nickc@redhat.com>
-
-	The help document of size misses an option.
-		PR 29628
-		* size.c (usage): Add -f.
-		* doc/binutils.texi (size): Add -f.
-
-2022-09-28  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: force warnings when dealing with execstack tests
-	Binutils can be configured to avoid printing the execstack or RWD
-	segment warnings. In this case, the first test of PR ld/29072 will fail.
-	Fix that by always manually forcing the warnings for it.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elf/elf.exp (PR ld/29072): Force execstack and
-		RWD segment warnings.
-
-2022-09-28  Alan Modra  <amodra@gmail.com>
-
-	Re: egrep in binutils
-	Multi-line patterns for grep are not supported on some old versions
-	of grep.
-
-	binutils/
-		* embedspu.sh: Replace multi-line grep with sed.
-	ld/
-		* testsuite/ld-elfvers/vers.exp: Replace multi-line grep with sed.
-
-2022-09-28  Pedro Alves  <pedro@palves.net>
-
-	Renenerate {gdb,gdbserver}/configure
-	Pick up config/lib-ld.m4 changes from:
-
-	 commit 67d1991b785bdfef1d70cddfa0202b99b43ccce9
-	 Author:     Alan Modra <amodra@gmail.com>
-	 AuthorDate: Wed Sep 28 13:37:31 2022 +0930
-	 Commit:     Alan Modra <amodra@gmail.com>
-	 CommitDate: Wed Sep 28 13:37:31 2022 +0930
-
-	     egrep in binutils
-
-	Change-Id: Ifc84d30f1fca015e80bafa80f9a35616b0077220
-
-2022-09-28  Nick Clifton  <nickc@redhat.com>
-
-	The help document of as misses some many options
-		PR 29623
-		* as.c (show_usage): Document the --dump-config,
-		--gdwarf-cie-version, --hash-size, --multibyte-handling,
-		and --reduce-memory-overheads options.
-		* config/tc-i386.c (md_show_usage): Document the -O option.
-		* doc/as.texi: Document the --dump-config, --emulation,
-		--hash-size, and --reduce-memory-overheads options.
-
-2022-09-28  Alan Modra  <amodra@gmail.com>
-
-	egrep in binutils
-	Apparently some distros have a nagging egrep that helpfully tells you
-	egrep is deprecated and to use "grep -E".  The nag message causes a ld
-	testsuite failure.  What's more the advice isn't that good.  The "-E"
-	flag may not be available with older versions of grep.
-
-	This patch fixes bare invocation of egrep within binutils, replacing
-	it with the autoconf $EGREP or with grep.
-
-	config/
-		* lib-ld.m4 (AC_LIB_PROG_LD_GNU): Require AC_PROG_EGREP and
-		invoke $EGREP.
-		(AC_LIB_PROG_LD): Likewise.
-	binutils/
-		* configure: Regenerate.
-		* embedspu.sh: Replace egrep with grep.
-	gold/
-		* testsuite/Makefile.am (flagstest_compress_debug_sections.check):
-		Replace egrep with grep.
-		* testsuite/Makefile.in: Regenerate.
-		* testsuite/bnd_ifunc_1.sh: Replace egrep with $EGREP.
-		* testsuite/bnd_ifunc_2.sh: Likewise.
-		* testsuite/bnd_plt_1.sh: Likewise.
-		* testsuite/discard_locals_test.sh: Likewise.
-		* testsuite/gnu_property_test.sh: Likewise.
-		* testsuite/no_version_test.sh: Likewise.
-		* testsuite/pr18689.sh: Likewise.
-		* testsuite/pr26936.sh: Likewise.
-		* testsuite/retain.sh: Likewise.
-		* testsuite/split_i386.sh: Likewise.
-		* testsuite/split_s390.sh: Likewise.
-		* testsuite/split_x32.sh: Likewise.
-		* testsuite/split_x86_64.sh: Likewise.
-		* testsuite/ver_test_pr16504.sh: Likewise.
-	intl/
-		* configure: Regenerate.
-	ld/
-		* testsuite/ld-elfvers/vers.exp (test_ar): Replace egrep with grep.
-
-2022-09-28  Alan Modra  <amodra@gmail.com>
-
-	regen bfd/configure
-
-2022-09-28  Alan Modra  <amodra@gmail.com>
-
-	asan: _bfd_stab_section_find_nearest_line segv
-	The segv was on "info->strs[strsize - 1] = 0;" with strsize zero.  OK,
-	if strsize is zero we don't have any filenames in stabs so no useful
-	info.
-
-		* syms.c (_bfd_stab_section_find_nearest_line): Exit if either
-		stabsize or strsize is zero.
-
-2022-09-28  Alan Modra  <amodra@gmail.com>
-
-	asan: segv in _bfd_archive_close_and_cleanup
-	Uninitialised arelt_data->parent_cache led to this segv.
-
-		* pdb.c (pdb_get_elt_at_index): Clear arelt_data.
-
-2022-09-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-27  Fangrui Song  <maskray@google.com>
-
-	sim: Link ZSTD_LIBS
-	This fixes linker errors in a `../../configure --enable-targets
-	--enable-sim; make all-gdb` build.
-
-2022-09-27  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gold: Suppress "unused" variable warning on Clang
-	Clang generates a warning if there is a variable that is set but not used
-	otherwise ("-Wunused-but-set-variable").  On the default configuration, it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	Because the cause of this error is in the Bison-generated code
-	($(srcdir)/gold/yyscript.y -> $(builddir)/gold/yyscript.c),
-	this commit suppresses this warning ("-Wunused-but-set-variable") by placing
-	DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE macro at the end of user
-	prologue on yyscript.y.
-
-		* yyscript.y: Suppress -Wunused-but-set-variable warning on
-		the Bison-generated code.
-
-2022-09-27  Fangrui Song  <i@maskray.me>
-
-	libctf: Add ZSTD_LIBS to LIBS so that ac_cv_libctf_bfd_elf can be true
-
-2022-09-27  Fangrui Song  <maskray@google.com>
-
-	binutils, gdb: support zstd compressed debug sections
-	PR29397 PR29563: Add new configure option --with-zstd which defaults to
-	auto.  If pkgconfig/libzstd.pc is found, define HAVE_ZSTD and support
-	zstd compressed debug sections for most tools.
-
-	* bfd: for addr2line, objdump --dwarf, gdb, etc
-	* gas: support --compress-debug-sections=zstd
-	* ld: support ELFCOMPRESS_ZSTD input and --compress-debug-sections=zstd
-	* objcopy: support ELFCOMPRESS_ZSTD input for
-	  --decompress-debug-sections and --compress-debug-sections=zstd
-	* gdb: support ELFCOMPRESS_ZSTD input.  The bfd change references zstd
-	  symbols, so gdb has to link against -lzstd in this patch.
-
-	If zstd is not supported, ELFCOMPRESS_ZSTD input triggers an error.  We
-	can avoid HAVE_ZSTD if binutils-gdb imports zstd/ like zlib/, but this
-	is too heavyweight, so don't do it for now.
-
-	```
-	% ld/ld-new a.o
-	ld/ld-new: a.o: section .debug_abbrev is compressed with zstd, but BFD is not built with zstd support
-	...
-
-	% ld/ld-new a.o --compress-debug-sections=zstd
-	ld/ld-new: --compress-debug-sections=zstd: ld is not built with zstd support
-
-	% binutils/objcopy --compress-debug-sections=zstd a.o b.o
-	binutils/objcopy: --compress-debug-sections=zstd: binutils is not built with zstd support
-
-	% binutils/objcopy b.o --decompress-debug-sections
-	binutils/objcopy: zstd.o: section .debug_abbrev is compressed with zstd, but BFD is not built with zstd support
-	...
-	```
-
-2022-09-27  Alan Modra  <amodra@gmail.com>
-
-	PR29617, ld segfaults when bfd_close fails
-		PR 29617
-		* ldmain.c (main): Don't access output_bfd after bfd_close.
-
-2022-09-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-26  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: update field names in gdb-gdb.py.in
-	Patches that renamed the type::length and type::target_type fields
-	didn't update gdb-gdb.py.in accordingly, do that.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29599
-	Change-Id: I0f3f37a94d43497789156b0ded4d2f2dd5b89496
-
-2022-09-26  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: use gdb_test in gdb.gdb/python-helper.exp
-	If some command in there gives the wrong answer, we currently have to
-	wait for a timeout for the test to continue.  For instance, I currently
-	see:
-
-	    print *val->type
-	    $1 = Python Exception <class 'gdb.error'>: Cannot take address of method length.
-
-	    (outer-gdb) FAIL: gdb.gdb/python-helper.exp: pretty print type (timeout)
-
-	We can avoid this and modernize the test at the same time by using the
-	-prompt option of gdb_test.
-
-	gdb_test_no_output currently accepts a -prompt_re option (the variable
-	name passed to parse_args defines the option name), but I think
-	it's a typo.  It's supposed to be -prompt, like gdb_test.  I can't find
-	anything using -prompt_re using grep.  Change it to just "prompt".
-
-	Change-Id: Icc0a9a0ef482e62460c708bccdd544c11d711eca
-
-2022-09-26  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: bump duration for the whole test in do_self_tests
-	When running gdb.gdb/python-helper.exp, I get some timeouts:
-
-	    continue
-	    Continuing.
-	    print 1
-
-	    FAIL: gdb.gdb/python-helper.exp: hit breakpoint in outer gdb (timeout)
-
-	At this time, GDB is actually processing the stop and reading in some
-	CUs.  selftest_setup does bump the timeout, but it's not for the whole
-	test.
-
-	Since debugging GDB with GDB is (unfortunately) a bit slow, bump the
-	timeout for the whole duration of the setup and body.  On my optimized
-	build, the command takes just a bit more than the current timeout of 10
-	seconds.  But it's much slower if running the test on an unoptimized
-	build, so I think it's necessary to bump the timeout for that in any
-	case.
-
-	Change-Id: I4d38285870e76c94f9d0bfdb60648a2e7f2cfa5d
-
-2022-09-26  Clément Chigot  <chigot@adacore.com>
-
-	binutils/testsuite: handle the different install names of c++filt
-	c++filt is always named cxxfilt in a build directory, but in a install
-	directory it would be named either cxxfilt or c++filt (depending on
-	the host).  Handle this last case in testsuite.
-
-	binutils/ChangeLog:
-	        *  testsuite/config/default.exp (CXXFILE): if cxxfilt not found,
-	        try c++filt.
-
-2022-09-26  Clément Chigot  <chigot@adacore.com>
-
-	binutils/testsuite: skip gentestdlls related tests if missing
-	When launching the testsuite through runtest outside the build tree,
-	gentestdlls might not be available, this binary being created by make
-	check.
-	Simply untested the related tests instead of crashing.
-
-	binutils/ChangeLog:
-
-		* testsuite/binutils-all/objdump.exp: Skip dotnet tests if
-		gentestdlls is not available.
-
-2022-09-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-unspecified-type-foo.c with -m32
-	When running test-case gdb.dwarf2/dw2-unspecified-type-foo.c with target board
-	unix/-m32, I run into:
-	...
-	(gdb) PASS: gdb.dwarf2/dw2-unspecified-type.exp: ptype foo
-	p ((int (*) ()) foo) ()^M
-	$1 = -135698472^M
-	...
-
-	Add the missing "return 0" in foo, which fixes this.
-
-	Tested on x86_64-linux.
-
-2022-09-26  Alan Modra  <amodra@gmail.com>
-
-	PR29613, use of uninitialized value in objcopy
-		PR 29613
-		* elf.c (_bfd_elf_write_secondary_reloc_section): Trim sh_size
-		back to relocs written.  Use better types for vars.
-
-2022-09-26  Alan Modra  <amodra@gmail.com>
-
-	PR29542, PowerPC gold internal error in get_output_view,
-	We were attempting to set a BSS style section contents.
-
-		PR 29542
-		* powerpc.cc (Output_data_plt_powerpc::do_write): Don't set .plt,
-		.iplt or .lplt section contents when position independent.
-
-2022-09-26  Alan Modra  <amodra@gmail.com>
-
-	stab nearest_line bfd_malloc_and_get_section
-	bfd_malloc_and_get_section performs some sanity checks on the section
-	size before allocating memory.  This patch avails the stab
-	nearest_line code of that sanity checking, and tidies up memory
-	afterward.
-
-		* coffgen.c (_bfd_coff_close_and_cleanup): Call _bfd_stab_cleanup.
-		* elf.c (_bfd_elf_close_and_cleanup): Likewise.
-		* syms.c (_bfd_stab_section_find_nearest_line): Set *pinfo earlier.
-		Use bfd_malloc_and_get_section.  Free malloc'd buffers on failure.
-		Malloc indextable.
-		(_bfd_stab_cleanup): New function.
-		* libbfd-in.h (_bfd_stab_cleanup): Declare.
-		* libbfd.h: Regnerate.
-
-2022-09-26  Alan Modra  <amodra@gmail.com>
-
-	PKG_CHECK_MODULES for msgpack and jansson
-	Using AS_IF rather than shell "if" is recommended for conditionals
-	that contain non-trivial autoconf macros, because autoconf will emit
-	any AC_REQUIREd autoconf macro expansions outside of the conditional.
-	This makes them available elsewhere in the configure script.
-
-	binutils/
-		* configure.ac (msgpack): Use "AS_IF" rather than "if".
-		* configure: Regenerate.
-	ld/
-		* configure.ac (jansson): Use "AS_IF" rather than "if".
-		* configure: Regenerate.
-
-2022-09-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-24  Magne Hov  <mhov@undo.io>
-
-	gdb/source.c: Fix undefined behaviour dereferencing empty string
-	When a source file's dirname is solely made up of directory separators
-	we end up trying to dereference the last character of an empty string
-	with std::string::back, which results in undefined behaviour. A typical
-	use case where this can happen is when the root directory "/" is used as
-	a compilation directory.
-
-	With libstdc++.so.6.0.28 we get no out-of-bounds checks and the byte
-	preceding the storage of the empty string is returned. The character
-	value of this byte depends on heap implementation and usage, but when
-	this byte happens to hold the value of the directory separator character
-	we go on to call std::string::pop_back on the empty string which results
-	in an out_of_range exception which terminates GDB.
-
-	Fix this by using path_join. prepare_path_for_appending ensures that the
-	filename component is relative.
-
-	The testsuite has been run before and after the change and no
-	regressions were found.
-
-2022-09-24  Enze Li  <enze.li@hotmail.com>
-
-	gdbserver: remove unused for loop
-	In this commit,
-
-	  commit cf6c1e710ee162a5adb0ae47acb731f2bfecc956
-	  Date:   Mon Jul 11 20:53:48 2022 +0800
-
-	    gdbserver: remove unused variable
-
-	I removed an unused variable in handle_v_run.  Pedro then pointed out
-	that the for loop after it was also unused.  After a period of smoke
-	testing, no exceptions were found.
-
-	Tested on x86_64-linux.
-
-2022-09-24  Alan Modra  <amodra@gmail.com>
-
-	The problem with warning in elf_object_p
-	elfcode.h can emit three warnings in elf_object_p for various things,
-	"section extending past end of file", "corrupt string table index",
-	and "program header with invalid alignment".  The problem with doing
-	this is that the warning can be emitted for multiple possible targets
-	as each one is tried.  I was looking at a fuzzer testcase that had an
-	object file with 6144 program headers, 5316 of which had invalid
-	alignment.  It would be bad enough to get 5316 messages all the same,
-	but this object was contained in an archive and resulted in 4975776
-	repeats.
-
-	Some trimming can be done by not warning if the bfd is already marked
-	read_only, as is done for the "section extending past end of file"
-	warning, but that still results in an unacceptable number of
-	warnings for object files in archives.  Besides that, it is just wrong
-	to warn about a problem detected by a target elf_object_p other than
-	the one that actually matches.  At some point we might have more
-	target specific warnings.
-
-	So what to do?  One obvious solution is to remove the warnings.
-	Another is to poke any warning strings into the target xvec, emitting
-	them if that xvec is the final one chosen.  This also has the benefit
-	of solving the archive problem.  A warning when recursing into
-	_bfd_check_format for the first element of the archive (to find the
-	correct target for the archive) will still be on the xvec at the point
-	that target is chosen for the archive.  However, target xvecs are
-	read-only.  Thus the need for per_xvec_warn to logically extend
-	bfd_target with a writable field.  I've made per_xvec_warn one larger
-	than bfd_target_vector to provide one place for user code that makes
-	private copies of target xvecs.
-
-		* elfcode.h (elf_swap_shdr_in, elf_object_p): Stash potential
-		warnings in _bfd_per_xvec_warn location.
-		* format.c (clear_warnmsg): New function.
-		(bfd_check_format_matches): Call clear_warnmsg before trying
-		a new xvec.  Print warnings for the successful non-archive
-		match.
-		* targets.c: Include libiberty.h.
-		(_bfd_target_vector_entries): Use ARRAY_SIZE.
-		(per_xvec_warn): New.
-		(_bfd_per_xvec_warn): New function.
-		* Makefile.am (LIBBFD_H_FILES): Add targets.c.
-		* Makefile.in: Regenerate.
-		* libbfd.h: Regenerate.
-
-2022-09-24  Alan Modra  <amodra@gmail.com>
-
-	Re: bfd_cleanup for object_p
-	Bits still missing from commit cb001c0d283d.
-
-		* aoutx.h (aout_@var{size}_some_aout_object_p): Correct synopsis.
-		* i386lynx.c (lynx_core_file_p): Correct return type.
-		* ptrace-core.c (ptrace_unix_core_file_p): Likewise.
-
-2022-09-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-23  John Baldwin  <jhb@FreeBSD.org>
-
-	Support AT_USRSTACKBASE and AT_USRSTACKLIM.
-	FreeBSD's kernel has recently added two new ELF auxiliary vector
-	entries to describe the location of the user stack for the initial
-	thread in a process.
-
-	This change displays the proper name and description of these entries
-	in 'info auxv'.
-
-2022-09-23  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add Zawrs ISA extension support
-	This patch adds support for the Zawrs ISA extension
-	("wrs.nto" and "wrs.sto" instructions).
-
-	The specification can be found here:
-	https://github.com/riscv/riscv-zawrs/blob/main/zawrs.adoc
-
-2022-09-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/tui: start GDB with "set filename-display basename"
-	The test gdb.tui/tui-missing-src.exp fails on my CI machine, and I
-	concluded that it is caused by the long source directory name:
-
-	  /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/src/binutils-gdb
-
-	The long name causes some particular redrawing that doesn't happen for
-	shorter directories, and causes a Term::command call to return too
-	early.
-
-	This can be reproduced by cloning the binutils-gdb repo in a directory
-	with a name similar to the one shown above.
-
-	    $ pwd
-	    /home/simark/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/unix/src/binutils-gdb/build/gdb
-	    $ make check-read1 TESTS="gdb.tui/tui-missing-src.exp"
-	    FAIL: gdb.tui/tui-missing-src.exp: checking if inside f2 ()
-	    FAIL: gdb.tui/tui-missing-src.exp: f2.c must be displayed in source window
-	    FAIL: gdb.tui/tui-missing-src.exp: check source box is empty after return
-	    FAIL: gdb.tui/tui-missing-src.exp: Back in main
-
-	Note that using "make check" instead of "make check-read1" only shows
-	the last 2 failures for me.
-
-	When running gdb.tui/tui-missing-src.exp in a directory with a shorter
-	name, the terminal looks like this by the time the "checking if inside
-	f2" test runs:
-
-	    Screen Dump (size 80 columns x 24 rows, cursor at column 6, row 23):
-	        0 +-...ld/binutils-gdb-noasan/gdb/testsuite/outputs/gdb.tui/tui-missing-src/f2.c-+
-	        1 |        1                                                                     |
-	        2 |        2  int                                                                |
-	        3 |        3  f2 (int x)                                                         |
-	        4 |        4  {                                                                  |
-	        5 |  >     5    x <<= 1;                                                         |
-	        6 |        6    return x+5;                                                      |
-	        7 |        7  }                                                                  |
-	        8 |        8                                                                     |
-	        9 |        9                                                                     |
-	       10 |       10                                                                     |
-	       11 |       11                                                                     |
-	       12 |       12                                                                     |
-	       13 |       13                                                                     |
-	       14 +------------------------------------------------------------------------------+
-	       15 multi-thre Thread 0x7ffff7cc07 In: f2                  L5    PC: 0x555555555143
-	       16     at /home/simark/build/binutils-gdb-noasan/gdb/testsuite/outputs/gdb.tui/tui-
-	       17 missing-src/main.c:6
-	       18 (gdb) next
-	       19 (gdb) step
-	       20 f2 (x=4)
-	       21     at /home/simark/build/binutils-gdb-noasan/gdb/testsuite/outputs/gdb.tui/tui-
-	       22 missing-src/f2.c:5
-	       23 (gdb)
-	    PASS: gdb.tui/tui-missing-src.exp: checking if inside f2 ()
-
-	When running the `Term::command "step"` just before, GDB writes the
-	"step", which makes the `wait_for` proc go in the "looking for the
-	prompt" mode, to know when the command's execution is complete.  As some
-	new output appears, lines that must disappear are deleted using the
-	"Delete Line" operation [1] and some new ones are drawn.  The source
-	window gets redrawn with the contents of the f2.c file.  Then, GDB
-	writes the prompt (at line 23 above), which satisfies `wait_for`, which
-	then returns.  The state of the terminal is therefore correct for the
-	"check if inside f2" and "f2.c must be displayed in the source window"
-	tests.
-
-	In the non-working case, the terminal looks like this by the time the
-	"check if inside f2" test runs:
-
-	     Screen Dump (size 80 columns x 24 rows, cursor at column 6, row 17):
-	        0 +------------------------------------------------------------------------------+
-	        1 |                                                                              |
-	        2 |                                                                              |
-	        3 |                                                                              |
-	        4 |                                                                              |
-	        5 |                                                                              |
-	        6 |                                                                              |
-	        7 |               [ No Source Available ]                                        |
-	        8 |                                                                              |
-	        9 |                                                                              |
-	       10 |                                                                              |
-	       11 |                                                                              |
-	       12 |                                                                              |
-	       13 |                                                                              |
-	       14 +------------------------------------------------------------------------------+
-	       15 multi-thre Thread 0x7ffff7cc1b In: main                L7    PC: 0x555555555128
-	       16 sing-src/main.c:6
-	       17 (gdb) ary breakpoint 1, main ()
-	       18     at /home/simark/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd6
-	       19 4/target_board/unix/src/binutils-gdb/build/gdb/testsuite/outputs/gdb.tui/tui-mis
-	       20 sing-src/main.c:6
-	       21 (gdb) next
-	       22 (gdb) step
-	       23
-	    FAIL: gdb.tui/tui-missing-src.exp: checking if inside f2 ()
-
-	What happened is: GDB wrote the "step" command, which make the
-	`wait_for` proc go in its "looking for the prompt" mode.  However,
-	curses decided to redraw whatever scrolled up to line 17 using some
-	standard character insertion operations:
-
-	    +++ Cursor Down (1), cursor: (16, 0) -> (17, 0)
-	    +++ Inserting string '('
-	    +++   Inserted char '(', cursor: (17, 0) -> (17, 1)
-	    +++ Inserted string '(', cursor: (17, 0) -> (17, 1)
-	    +++ Inserting string 'g'
-	    +++   Inserted char 'g', cursor: (17, 1) -> (17, 2)
-	    +++ Inserted string 'g', cursor: (17, 1) -> (17, 2)
-	    +++ Inserting string 'd'
-	    +++   Inserted char 'd', cursor: (17, 2) -> (17, 3)
-	    +++ Inserted string 'd', cursor: (17, 2) -> (17, 3)
-	    +++ Inserting string 'b'
-	    +++   Inserted char 'b', cursor: (17, 3) -> (17, 4)
-	    +++ Inserted string 'b', cursor: (17, 3) -> (17, 4)
-	    +++ Inserting string ')'
-	    +++   Inserted char ')', cursor: (17, 4) -> (17, 5)
-	    +++ Inserted string ')', cursor: (17, 4) -> (17, 5)
-	    +++ Inserting string ' '
-	    +++   Inserted char ' ', cursor: (17, 5) -> (17, 6)
-	    +++ Inserted string ' ', cursor: (17, 5) -> (17, 6)
-
-	And that causes `wait_for` to think the "step" command is complete.
-	This is wrong, as the prompt at line 17 isn't the prompt drawn after the
-	completion of the "step" command.  The subsequent tests now run with a
-	partially updated screen (what is shown above) and obviously fail.
-
-	The ideal way to fix this would be for `wait_for` to be smarter, to
-	avoid it confusing the different prompts drawn.
-
-	However, I would also like to reduce the variations in TUI test results
-	due to the directories (source and build) in which tests are ran.  TUI
-	tests are more prone to differences in test results due to variations in
-	directory names than other tests, as it makes curses take different
-	redrawing decisions.  So in this patch, I propose to make TUI tests use
-	"set filename-display basename", which makes GDB omit directory names
-	when it prints file names.  This way, regardless of where you run the
-	tests, you should get the same results (all other things being equal).
-
-	Doing this happens to fix my failures and makes my CI happy (which in
-	turns makes me happy).  To be clear, I understand that this does not fix
-	the root issue of `proc wait_for` being confused.  However, it makes TUI
-	test runs be more similar for everyone, such that there's less chance of
-	TUI tests randomly failing for somebody.  If some other change triggers
-	the `wait_for` problem again in the future, hopefully everybody will see
-	the problem and we can work on getting it fixed more easily than if just
-	one unlucky person sees the problem.
-
-	Note that there are other reasons why TUI tests could vary, like
-	different curses library versions taking different re-drawing decisions.
-	However, I think my change is a good step towards more stable test
-	results.
-
-	[1] https://vt100.net/docs/vt510-rm/DL.html
-
-	Change-Id: Ib18da83317e7b78a46f77892af0d2e39bd261bf5
-
-2022-09-23  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky add cskyv2-linux.xml for cskyv2-linux.c
-	Add cskyv2-linux.xml for re-generating cskyv2-linux.c if needed.
-	Also update cskyv2-linux.c.
-
-2022-09-23  Alan Modra  <amodra@gmail.com>
-
-	pdb: _bfd_generic_close_and_cleanup
-	Every format that might appear inside a generic archive needs to call
-	_bfd_generic_close_and_cleanup, so that the archive element lookup
-	htab can be tidied on closing an element.  Otherwise you get stale
-	entries in the htab pointing at freed and perhaps reused memory,
-	resulting in segfaults when the archive is closed.
-
-	Calling _bfd_generic_close_and_cleanup on close means tdata needs to
-	be set up too, since pdb claims to be of format bfd_archive.
-
-		* pdb.c (pdb_close_and_cleanup): Define as
-		_bfd_generic_close_and_cleanup.
-		(pdb_archive_p): Set up tdata for bfd_archive format.
-
-2022-09-23  Alan Modra  <amodra@gmail.com>
-
-	Don't attempt to compress bss sections
-	It doesn't make sense to try to compress a section without contents
-	since those sections take no space on disk.  Compression can only
-	increase the disk image size.
-
-		* coffgen.c (make_a_section_from_file): Exclude !SEC_HAS_CONTENTS
-		sections from compression and decompression.
-		* elf.c (_bfd_elf_make_section_from_shdr): Likewise.
-
-2022-09-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-22  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite/lib/future.exp: follow dejagnu default_target_compile
-	GDB's testsuite can override dejagnu's default_target_compile if the
-	system provided dejagnu installation does not provide support to compile
-	languages GDB needs.
-
-	Recent version of dejagnu (1.6.3, installed on RHEL-9) includes ba60272
-	"Establish a default C compiler by evaluating [find_gcc] if no other
-	compiler is given."[1].  This commit removed calls such as
-	`set_board_info compiler  "[find_gcc]"` from the various baseboards
-	and has default_target_compile call `find_gcc` itself to find a compiler
-	if none was specified by the board description.
-
-	On systems with dejagnu-1.6.3, if GDB's overrides is needed to support
-	languages still unknown to dejagnu, we end up in the following
-	situation:
-	  - The system board files do not set the C compiler anymore,
-	  - GDB's replacement for default_target_compile assumes that the
-	    compiler should have been set up by the board file.
-
-	In this situation, no one sets the C compiler for the board and as a
-	result many test are not compiled and not executed:
-
-	    [...]
-	    Running .../gdb/testsuite/gdb.base/bt-on-error-and-warning.exp ...
-	    gdb compile failed, default_target_compile: No compiler to compile with
-	    Running .../gdb/testsuite/gdb.base/dprintf-non-stop.exp ...
-	    gdb compile failed, default_target_compile: No compiler to compile with
-	    Running .../gdb/testsuite/gdb.base/structs3.exp ...
-	    gdb compile failed, default_target_compile: No compiler to compile with
-	    [...]
-
-	We are observing this error with ROCgdb[2], a downstream port of GDB
-	supporting AMD GPUs.  This port needs to use GDB's override of
-	default_target_compile to compile HIP programs since dejagnu does not
-	provide support for this language yet.
-
-	This patch changes gdb_default_target_compile_1 in a similar way
-	default_target_compile has been updated so both implementations remain
-	compatible.  Even if this is not strictly required by GDB just yet,
-	I believe keeping both implementations in sync desirable.
-
-	Using board files provided with dejagnu <=1.6.2 is still supported: if
-	the compiler is set by the board file, gdb_default_target_compile_1 uses
-	it and does not need `find_gcc`.
-
-	Patch tested on x86_64 RHEL-9 and ubuntu-20.04 on top of GDB and ROCgdb.
-
-	[1] http://git.savannah.gnu.org/gitweb/?p=dejagnu.git;a=commit;h=ba60272a5ac6f6a7012acca03f596a6ed003f044
-	[2] https://github.com/ROCm-Developer-Tools/ROCgdb
-
-	Change-Id: Ibff52684d9cab8243a7c6748ecbd29f50c37e669
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head MemPair vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XTheadMemPair extension, a collection of T-Head specific
-	two-GP-register memory operations.
-	The 'th' prefix and the "XTheadMemPair" extension are documented in a PR
-	for the RISC-V toolchain conventions ([1]).
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for literal instruction arguments
-	This patch introduces support for arbitrary literal instruction
-	arguments, that are not encoded in the opcode.
-
-	A typical use case for this feature would be an instruction that
-	applies an implicit shift by a constant value on an immediate
-	(that is a real operand). With this patch it is possible to make
-	this shift visible in the dissasembly and support such artificial
-	parameter as part of the asssembly code.
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head MemIdx vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XTheadMemIdx extension, a collection of T-Head specific
-	GPR memory access instructions.
-	The 'th' prefix and the "XTheadMemIdx" extension are documented in a PR
-	for the RISC-V toolchain conventions ([1]).
-
-	In total XTheadCmo introduces the following 44 instructions
-	(BU,HU,WU only for loads (zero-extend instead of sign-extend)):
-
-	* {L,S}{D,W,WU,H,HU,B,BU}{IA,IB} rd, rs1, imm5, imm2
-	* {L,S}R{D,W,WU,H,HU,B,BU} rd, rs1, rs2, imm2
-	* {L,S}UR{D,W,WU,H,HU,B,BU} rd, rs1, rs2, imm2
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head FMemIdx vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XTheadFMemIdx extension, a collection of
-	T-Head-specific floating-point memory access instructions.
-	The 'th' prefix and the "XTheadFMemIdx" extension are documented
-	in a PR for the RISC-V toolchain conventions ([1]).
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head MAC vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XTheadMac extension, a collection of
-	T-Head-specific multiply-accumulate instructions.
-	The 'th' prefix and the "XTheadMac" extension are documented
-	in a PR for the RISC-V toolchain conventions ([1]).
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head CondMov vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XTheadCondMov extension, a collection of
-	T-Head-specific conditional move instructions.
-	The 'th' prefix and the "XTheadCondMov" extension are documented
-	in a PR for the RISC-V toolchain conventions ([1]).
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head Bitmanip vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XThead{Ba,Bb,Bs} extensions, a collection of
-	T-Head-specific bitmanipulation instructions.
-	The 'th' prefix and the "XThead{Ba,Bb,Bs}" extension are documented
-	in a PR for the RISC-V toolchain conventions ([1]).
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add support for arbitrary immediate encoding formats
-	This patch introduces support for arbitrary signed or unsigned immediate
-	encoding formats. The formats have the form "XsN@S" and "XuN@S" with N
-	being the number of bits and S the LSB position.
-
-	For example an immediate field of 5 bytes that encodes a signed value
-	and is stored in the bits 24-20 of the instruction word can use the
-	format specifier "Xs5@20".
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head SYNC vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XTheadSync extension, a collection of
-	T-Head-specific multi-processor synchronization instructions.
-	The 'th' prefix and the "XTheadSync" extension are documented in a PR
-	for the RISC-V toolchain conventions ([1]).
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add T-Head CMO vendor extension
-	T-Head has a range of vendor-specific instructions.
-	Therefore it makes sense to group them into smaller chunks
-	in form of vendor extensions.
-
-	This patch adds the XTheadCmo extension, a collection of T-Head specific
-	cache management operations.
-	The 'th' prefix and the "XTheadCmo" extension are documented in a PR
-	for the RISC-V toolchain conventions ([1]).
-
-	In total XTheadCmo introduces the following 21 instructions:
-
-	* DCACHE.{C,CI,I}ALL
-	* DCACHE.{C,CI,I}{PA,VA,SW} rs1
-	* DCACHE.C{PAL1,VAL1} rs1
-	* ICACHE.I{ALL,ALLS}
-	* ICACHE.I{PA,VA} rs1
-	* L2CACHE.{C,CI,I}ALL
-
-	Contrary to Zicbom, the XTheadCmo instructions don't have a constant
-	displacement, therefore we have a different syntax for the arguments.
-	To clarify this is intended behaviour, there is a set of negative test
-	for Zicbom-style arguments in x-thead-cmo-fail.s.
-
-	[1] https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/19
-
-	v2:
-	- Add missing DECLARE_INSN() list
-	- Fix ordering
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Christoph Müllner  <christoph.muellner@vrull.eu>
-
-	RISC-V: Add generic support for vendor extensions
-	This patch introduces changes that allow the integration of vendor ISA
-	extensions:
-	* Define a list of vendor extensions (riscv_supported_vendor_x_ext)
-	  where vendor extensions can be added
-	* Introduce a section with a table in the documentation where vendor
-	  extensions can be added
-
-	To add a vendor extension that consists of instructions only,
-	the following things need to be done:
-	* Add the extension to the riscv_supported_vendor_x_ext list
-	* Add lookup entry in riscv_multi_subset_supports
-	* Documenting the extension in c-riscv.texti
-	* Add test cases for all instructions
-	* Add MATCH*/MASK* constants and DECLARE_INSN() for all instructions
-	* Add new instruction class to enum riscv_insn_class
-	* Define the instructions in riscv_opcodes
-	* Additional changes if necessary (depending on the instructions)
-
-	Co-developed-by: Lifang Xia <lifang_xia@linux.alibaba.com>
-
-2022-09-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Add all_comp_units/all_type_units views on all_units
-	Add all_comp_units/all_type_units views on all_units.
-
-	Having the views allows us to:
-	- easily get the number of CUs or TUs in all_units, and
-	- easily access the nth CU or TU.
-
-	This minimizes the use of tu_stats.nr_tus.
-
-	Tested on x86_64-linux.
-
-2022-09-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Rename all_comp_units to all_units
-	Mechanically rename all_comp_units to all_units:
-	...
-	$ sed -i 's/all_comp_units/all_units/' gdb/dwarf2/*
-	...
-
-	Tested on x86_64-linux.
-
-2022-09-22  Yoshinori Sato  <ysato@users.sourceforge.jp>
-
-	opcodes: SH fix bank register disassemble.
-		* sh-dis.c (print_insn_sh): Enforce bit7 of LDC Rm,Rn_BANK and STC
-		Rm_BANK,Rn is always 1.
-
-2022-09-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	include: Add macro to ignore -Wunused-but-set-variable
-	"-Wunused-but-set-variable" warning option can be helpful to track variables
-	that are written but not read thereafter.  But it can be harmful if some of
-	the code is auto-generated and we have no ways to deal with it.
-
-	The particular example is Bison-generated code.
-
-	The new DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE macro can be helpful on
-	such cases. A typical use of this macro is to place this macro before the
-	end of user prologues on Bison (.y) files.
-
-	include/ChangeLog:
-
-	    * diagnostics.h (DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE): New.
-
-2022-09-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	include: Add macro to ignore -Wuser-defined-warnings
-	User-defined warnings (on Clang, "-Wuser-defined-warnings") can be harmful
-	if we have specified "-Werror" and we have no control to disable the warning
-	ourself.  The particular example is Gnulib.
-
-	Gnulib generates a warning if the system version of certain functions
-	are used (to redirect the developer to use Gnulib version).  However,
-	it can be harmful if we cannot easily replace them (e.g. the target is in
-	the standard C++ library).
-
-	The new DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS macro can be helpful on such
-	cases.  A typical use of this macro is to place this macro before including
-	certain system headers.
-
-	include/ChangeLog:
-
-		* diagnostics.h (DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS): New.
-
-2022-09-22  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: restrict the names accepted by gdb.register_window_type
-	I noticed that, from Python, I could register a new TUI window that
-	had whitespace in its name, like this:
-
-	  gdb.register_window_type('my window', MyWindowType)
-
-	however, it is not possible to then use this window in a new TUI
-	layout, e.g.:
-
-	  (gdb) tui new-layout foo my window 1 cmd 1
-	  Unknown window "my"
-	  (gdb) tui new-layout foo "my window" 1 cmd 1
-	  Unknown window ""my"
-	  (gdb) tui new-layout foo my\ window 1 cmd 1
-	  Unknown window "my\"
-
-	GDB clearly uses the whitespace to split the incoming command line.
-
-	I could fix this by trying to add a mechanism by which we can use
-	whitespace within a window name, but it seems like an easier solution
-	if we just forbid whitespace within a window name.  Not only is this
-	easier, but I think this is probably the better solution, identifier
-	names with spaces in would mean we'd need to audit all the places a
-	window name could be printed and ensure that the use of a space didn't
-	make the output ambiguous.
-
-	So, having decided to disallow whitespace, I then thought about other
-	special characters.  We currently accept anything as a window name,
-	and I wondered if this was a good idea.
-
-	My concerns were about how special characters used in a window name
-	might cause confusion, for example, we allow '$' in window names,
-	which is maybe fine now, but what if one day we wanted to allow
-	variable expansion when creating new layouts?  Or what about starting
-	a window name with '-'?  We already support a '-horizontal' option,
-	what if we want to add more in the future?  Or use of the special
-	character '{' which has special meaning within a new layout?
-
-	In the end I figured it might make sense to place some restrictive
-	rules in place, and then relax the rules later if/when users complain,
-	we can consider each relaxation as its requested.
-
-	So, I propose that window names should match this regular expression:
-
-	  [a-zA-Z][-_.a-zA-Z0-9]*
-
-	There is a chance that there is user code in the wild which will break
-	with the addition of this change, but hopefully adapting to the new
-	restrictions shouldn't be too difficult.
-
-2022-09-22  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: Add test to step through function epilogue
-	The testsuite implicitly tests GDB's ability to step through epilogues
-	in multiple tests, without doing it explicitly anywhere.  This is
-	unfortunate, as clang does not emit epilogue information, so using clang
-	on our testsuite makes many tests fail.  This patch adds a central,
-	explicit test for walking through the epilogue so we can safely remove
-	this from other tests and have them working with clang.
-
-	The test created attempts to step through a simple epilogue, an
-	epilogue that ends on another epilogue, and epilogues leading to other
-	function calls.
-
-2022-09-22  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb.base/skip.exp: Use finish to exit functions
-	gdb.base/skip.exp was making use of a fixed number of step commands to
-	exit some functions.  This caused some problems when using clang to test
-	GDB, as GDB would need fewer steps to reach the desired spots.  For
-	instance, when testing in the section "step after disabling 3", the log
-	looks like this:
-
-	    Breakpoint 4, main () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:32
-	    32        x = baz ((bar (), foo ()));
-	    (gdb) step
-	    bar () at binutils-gdb/gdb/testsuite/gdb.base/skip1.c:21
-	    21        return 1;
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: step 1
-	    step
-	    foo () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:42
-	    42        return 0;
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: step 2
-	    step
-	    main () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:34
-	    34        test_skip_file_and_function ();
-	    (gdb) step
-	    test_skip_file_and_function () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:59
-	    59        test_skip ();
-	    (gdb) FAIL: gdb.base/skip.exp: step after disabling 3: step 3
-	    step
-	    test_skip () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:48
-	    48      }
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: step 4
-	    step
-	    test_skip_file_and_function () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:60
-	    60        skip1_test_skip_file_and_function ();
-	    (gdb) FAIL: gdb.base/skip.exp: step after disabling 3: step 5
-
-	This shows that the feature is working but because the inferior lands in
-	a different location, it registers as a failure.  Seeing as along with
-	this difference, there are also some differences that depend on gcc
-	versions (where gdb might stop back at line 32 before entering foo), it
-	would not be easy to test for this behavior using steps and analzing
-	where the inferior stops at each point. On the other hand, using
-	gdb_step_until is not feasible because we'd possibly gloss over stepping
-	into baz and rendering the whole test useless.  Instead, skip.exp now
-	uses finish to leave functions, synchronizing through compilers and
-	compiler versions.  Some test names were also changed to be a bit more
-	descriptive.  The new log looks like this, independently of compiler used:
-
-	    Breakpoint 4, main () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:32
-	    32        x = baz ((bar (), foo ()));
-	    (gdb) step
-	    bar () at binutils-gdb/gdb/testsuite/gdb.base/skip1.c:21
-	    21        return 1;
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: step into bar
-	    finish
-	    Run till exit from #0  bar () at binutils-gdb/gdb/testsuite/gdb.base/skip1.c:21
-	    main () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:32
-	    32        x = baz ((bar (), foo ()));
-	    Value returned is $2 = 1
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: return from bar
-	    step
-	    foo () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:42
-	    42        return 0;
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: step into foo
-	    finish
-	    Run till exit from #0  foo () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:42
-	    main () at binutils-gdb/gdb/testsuite/gdb.base/skip.c:32
-	    32        x = baz ((bar (), foo ()));
-	    Value returned is $3 = 0
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: Return from foo
-	    step
-	    34        test_skip_file_and_function ();
-	    (gdb) PASS: gdb.base/skip.exp: step after disabling 3: step and skip baz
-
-2022-09-22  Bruno Larsen  <blarsen@redhat.com>
-
-	fix gdb.base/jit-elf.exp when testing with clang
-	When using clang as the compiler for the target, gdb.base/jit-elf.exp
-	was failing because the filename displayed when GDB attached to the
-	inferior was only showing up as with a relative path, like so:
-
-	       (gdb) attach 3674146
-	       Attaching to program: /home/blarsen/Documents/gdb-build/gdb/testsuite/outputs/gdb.base/jit-elf/jit-elf-main, process 3674146
-	       Reading symbols from /lib64/libm.so.6...
-	       Reading symbols from .gnu_debugdata for /lib64/libm.so.6...
-	       (No debugging symbols found in .gnu_debugdata for /lib64/libm.so.6)
-	       Reading symbols from /lib64/libc.so.6...
-	       (No debugging symbols found in /lib64/libc.so.6)
-	       Reading symbols from /lib64/ld-linux-x86-64.so.2...
-	       [Thread debugging using libthread_db enabled]
-	       Using host libthread_db library "/lib64/libthread_db.so.1".
-	       0x00000000004013ff in main (argc=3, argv=0x7fffffffd820) at ../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/jit-elf-main.c:118
-	       118|  WAIT_FOR_GDB; i = 0;  /* gdb break here 1 */
-	       (gdb) FAIL: gdb.base/jit-elf.exp: attach: one_jit_test-2: break here 1: attach
-
-	While gcc's output is as follows:
-
-	       (gdb) attach 3592961
-	       Attaching to program: /home/blarsen/Documents/gdb-build/gdb/testsuite/outputs/gdb.base/jit-elf/jit-elf-main, process 3592961
-	       Reading symbols from /lib64/libm.so.6...
-	       Reading symbols from .gnu_debugdata for /lib64/libm.so.6...
-	       (No debugging symbols found in .gnu_debugdata for /lib64/libm.so.6)
-	       Reading symbols from /lib64/libc.so.6...
-	       (No debugging symbols found in /lib64/libc.so.6)
-	       Reading symbols from /lib64/ld-linux-x86-64.so.2...
-	       [Thread debugging using libthread_db enabled]
-	       Using host libthread_db library "/lib64/libthread_db.so.1".
-	       main (argc=3, argv=0x7fffffffd860) at /home/blarsen/Documents/gdb-build/gdb/testsuite/../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/jit-elf-main.c:118
-	       118|  WAIT_FOR_GDB; i = 0;  /* gdb break here 1 */
-	       (gdb) PASS: gdb.base/jit-elf.exp: attach: one_jit_test-2: break here 1: attach
-
-	This difference only happens when GDB's configure is ran using a
-	relative path, but seeing as testing the full path is not important for
-	this specific test, it feels worth fixing anyway.  To fix the false
-	positive, the regexp for checking where gdb has stopped was relaxed a
-	little to allow the relative path.
-
-2022-09-22  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: fix gdb.base/msym-bp-shl when running with Clang
-	When trying to test gdb.base/msym-bp-shl.exp using clang, it would have
-	many failures because one of the version of the foo function was being
-	optimized away. Adding __attribute__ ((used)) to it fixed this.
-
-2022-09-22  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: fix testing gdb.base/skip-inline.exp with clang
-	When testing gdb.base/skip-inline.exp using clang, we get failures
-	when trying to step out of functions, since clang requires one fewer
-	step when compared to gcc.  The inferior gets increasingly out of sync
-	as the test continues because of this difference, which generates those
-	failures.
-
-	This commit fixes this by switching those hardcoded steps to
-	gdb_step_until, to guarantee that the inferior is always synced to what
-	the test expects.  This approach does not work for the parts that use
-	step 2 or step 3, so when we identify that clang is being used, those
-	tests are skipped.
-
-2022-09-22  Bruno Larsen  <blarsen@redhat.com>
-
-	Change gdb.base/skip-solib.exp deal with lack of epilogue information
-	When running gdb.base/skip-solib.exp, the backtrace tests could fail with
-	compilers that associated epilogue instructions with the last statement
-	line of the function, instead of associating it with the closing brace,
-	despite the feature being fully functional.  As an example, when testing
-	skipping the function square, the testsuite would show
-
-	Breakpoint 1, main () at (...)/binutils-gdb/gdb/testsuite/gdb.base/skip-solib-main.c:5
-	5         return square(0);
-	(gdb) step
-	0x00007ffff7cef560 in __libc_start_call_main () from /lib64/libc.so.6
-	(gdb) PASS: gdb.base/skip-solib.exp: ignoring solib file: step
-	bt
-	 #0  0x00007ffff7cef560 in __libc_start_call_main () from /lib64/libc.so.6
-	 #1  0x00007ffff7cef60c in __libc_start_main_impl () from /lib64/libc.so.6
-	 #2  0x0000000000401065 in _start ()
-	(gdb) FAIL: gdb.base/skip-solib.exp: ignoring solib file: bt
-
-	Which means that the feature is working, the testsuite is just
-	mis-identifying it.  To avoid this problem, the skipped function calls
-	have been sent to a line before `return`, so epilogues won't factor in.
-
-2022-09-22  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: Add a proc to test where compiler links the epilogue
-	Different compilers link the epilogue of functions to different lines.
-	As an example, gcc links it to the closing brace of the function,
-	whereas clang links it to the last statement of the function.  This
-	difference is important for the testsuite, since the where GDB will land
-	after a step can be wildly different.  Where possible, this dependency
-	should be side-stepped in the testsuite, but it isn't always possible,
-	so this commit adds a gdb_caching_proc that is able to detect where the
-	epilogue is linked, so tests can react accordingly.
-
-2022-09-22  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: allow to force another directory for gcc linker
-	Add a new variable "ld_testsuite_tmpdir" to enable manual configuration
-	of the -B flag added to gcc calls. This flag ensure that gcc is invoking
-	the linker and the assembler we want to test.
-
-	When launching the testsuite outside of the build tree, the links made
-	by the testsuite in tmpdir/ld will point to nothing. Thus, even with the
-	PATH correctly setup towards the linker directory, gcc might end up
-	falling back to its default linker. Hence this variable to ensure that
-	gcc, whatever happens, is using the linker we want.
-
-	ld/ChangeLog:
-
-		* testsuite/config/default.exp: Allow to change -B flag with
-		ld_testsuite_bindir variable.
-
-2022-09-22  Clément Chigot  <chigot@adacore.com>
-
-	ld/testsuite: skip bootstrap.exp when OFILES are missing
-	OFILES are normally provided through an environment variable set by
-	Makefiles. However, when launching the testsuite directly through
-	runtest outside the build tree, it can be hard to retrieve them.
-	Thus, they can be missing.
-	Instead of letting tcl raise an error when trying to access this
-	OFILES variable, skip bootstrap.exp if it doesn't exist.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-bootstrap/bootstrap.exp: Skip if OFILES is
-		missing
-
-2022-09-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Remove "b" operand type from disassembler
-	There are a few operand types not used by any RISC-V instructions.
-
-	-   Cx
-	-   Vf
-	-   Ve
-	-   [
-	-   ]
-	-   b
-
-	But most of them has a reasoning to keep them:
-
-	-   Cx     : Same as "Ct" except it has a constraint to have rd == rs2
-		     (similar to "Cw").  Although it hasn't used, its role is clear
-		     enough to implement a new instruction with this operand type.
-	-   Vf, Ve : Used by vector AMO instructions (not ratified and real
-		     instructions are not upstreamed yet).
-	-   [, ]   : Unused tokenization symbols.  Reserving them is not harmful
-		     and a vendor may use this symbol for special purposes.
-
-	... except "b".  I could not have found any reference to this operand type
-	except it works like the "s" operand type.  Historically, it seems... it's
-	just unused from the beginning.  Its role is not clear either.
-
-	On such cases, we should vacate this room for the new operand type with
-	much clearer roles.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Remove 'b' operand type.
-
-2022-09-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add macro-only operands to validate_riscv_insn
-	Although they are not (and should not be) reachable, following macro-only
-	operands are parsed in the `validate_riscv_insn' function and ignored.
-	That function also notes that they are macro-only.
-
-	-   "A"
-	-   "B"
-	-   "I"
-
-	Following this convention, this commit adds three remaining macro-only
-	operands to this function.  By doing this, we could instead choose to reject
-	those operands from appearing in regular instructions later.
-
-	-   "c"   (used by call, tail and jump macros)
-	-   "VM"  (used by vmsge.vx and vmsgeu.vx macros)
-	-   "VT"  (likewise)
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (validate_riscv_insn): Add "c", "VM" and "VT"
-		macro-only operand types.
-
-2022-09-22  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix -Wduplicated-cond warning
-	gprofng/ChangeLog
-	2022-09-21  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* src/collctrl.cc: Fix -Wduplicated-cond warning.
-
-2022-09-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	bfd BLD-POTFILES.in dependencies
-	A file that consists of a list of files doesn't depend on those files
-	being built.  This patch came from trying to avoid a maintainer-mode
-	make -j bug, where the recipe for targmatch.h was being run twice in
-	parallel.  Typical output shown below.
-
-	make[2]: Entering directory '/build/gas/all/bfd'
-	  GEN      bfdver.h
-	  GEN      elf32-target.h
-	  GEN      elf64-target.h
-	  GEN      targmatch.h
-	Making info in po
-	make[3]: Entering directory '/build/gas/all/bfd/po'
-	cd .. && make po/SRC-POTFILES.in
-	cd .. && make po/BLD-POTFILES.in
-	make[4]: Entering directory '/build/gas/all/bfd'
-	  GEN      elf32-aarch64.c
-	  GEN      elf64-aarch64.c
-	  GEN      elf32-ia64.c
-	  GEN      elf64-ia64.c
-	  GEN      elf32-loongarch.c
-	  GEN      elf64-loongarch.c
-	  GEN      elf32-riscv.c
-	  GEN      elf64-riscv.c
-	  GEN      peigen.c
-	  GEN      pepigen.c
-	  GEN      pex64igen.c
-	  GEN      pe-aarch64igen.c
-	  GEN      targmatch.h
-	make[4]: Entering directory '/build/gas/all/bfd'
-	  CCLD     doc/chew.stamp
-	mv: cannot stat 'targmatch.new': No such file or directory
-	make[4]: *** [Makefile:2325: targmatch.h] Error 1
-
-		* Makefile.am (po/BLD-POTFILES.in): Don't depend on $(BLD_POTFILES).
-		(po/SRC-POTFILES.in): Don't depend on $(SRC_POTFILES).
-
-2022-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: move fileio_errno_to_host to fileio.{h,cc} and rename
-	gdb_bfd.c and remote.c contain identical implementations of a
-	fileio_error -> errno function.  Factor that out to
-	gdbsupport/fileio.{h,cc}.
-
-	Rename it fileio_error_to_host, for symmetry with host_to_fileio_error.
-
-	Change-Id: Ib9b8807683de2f809c94a5303e708acc2251a0df
-
-2022-09-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: convert FILEIO_* macros to an enum
-	Converting from free-form macros to an enum gives a bit of type-safety.
-	This caught places where we would assign host error numbers to what
-	should contain a target fileio error number, for instance in
-	target_fileio_pread.
-
-	I added the FILEIO_SUCCESS enumerator, because
-	remote.c:remote_hostio_parse_result initializes the remote_errno output
-	variable to 0.  It seems better to have an explicit enumerator than to
-	assign a value for which there is no enumerator.  I considered
-	initializing this variable to FILEIO_EUNKNOWN instead, such that if the
-	remote side replies with an error and omits the errno value, we'll get
-	an errno that represents an error instead of 0 (which reprensents no
-	error).  But it's not clear what the consequences of that change would
-	be, so I prefer to err on the side of caution and just keep the existing
-	behavior (there is no intended change in behavior with this patch).
-
-	Note that remote_hostio_parse_resul still reads blindly what the remote
-	side sends as a target errno into this variable, so we can still end up
-	with a nonsensical value here.  It's not good, but out of the scope of
-	this patch.
-
-	Convert host_to_fileio_error and fileio_errno_to_host to return / accept
-	a fileio_error instead of an int, and cascade the change in the whole
-	chain that uses that.
-
-	Change-Id: I454b0e3fcf0732447bc872252fa8e57d138b0e03
-
-2022-09-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: move include/gdb/fileio.h contents to fileio.h
-	I don't see why include/gdb/fileio.h is placed there.  It's not
-	installed by "make install", and it's not included by anything outside
-	of gdb/gdbserver/gdbsupport.
-
-	Move its content back to gdbsupport/fileio.h.  I have omitted the bits
-	inside an `#if 0`, since it's obviously not used, as well as the
-	"limits" constants, which are also unused.
-
-	Change-Id: I6fbc2ea10fbe4cfcf15f9f76006b31b99c20e5a9
-
-2022-09-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: change path_join parameter to array_view<const char *>
-	When a GDB built with -D_GLIBCXX_DEBUG=1 reads a binary with a single
-	character name, we hit this assertion failure:
-
-	    $ ./gdb -q --data-directory=data-directory -nx ./x
-	    /usr/include/c++/12.1.0/string_view:239: constexpr const std::basic_string_view<_CharT, _Traits>::value_type& std::basic_string_view<_CharT, _Traits>::operator[](size_type) const [with _CharT = char; _Traits = std::char_traits<char>; const_reference = const char&; size_type = long unsigned int]: Assertion '__pos < this->_M_len' failed.
-
-	The backtrace:
-
-	    #3  0x00007ffff6c0f002 in std::__glibcxx_assert_fail (file=<optimized out>, line=<optimized out>, function=<optimized out>, condition=<optimized out>) at /usr/src/debug/gcc/libstdc++-v3/src/c++11/debug.cc:60
-	    #4  0x000055555da8a864 in std::basic_string_view<char, std::char_traits<char> >::operator[] (this=0x7fffffffcc30, __pos=1) at /usr/include/c++/12.1.0/string_view:239
-	    #5  0x00005555609dcb88 in path_join[abi:cxx11](gdb::array_view<std::basic_string_view<char, std::char_traits<char> > const>) (paths=...) at /home/simark/src/binutils-gdb/gdbsupport/pathstuff.cc:203
-	    #6  0x000055555e0443f4 in path_join<char const*, char const*> () at /home/simark/src/binutils-gdb/gdb/../gdbsupport/pathstuff.h:84
-	    #7  0x00005555609dc336 in gdb_realpath_keepfile[abi:cxx11](char const*) (filename=0x6060000a8d40 "/home/simark/build/binutils-gdb-one-target/gdb/./x") at /home/simark/src/binutils-gdb/gdbsupport/pathstuff.cc:122
-	    #8  0x000055555ebd2794 in exec_file_attach (filename=0x7fffffffe0f9 "./x", from_tty=1) at /home/simark/src/binutils-gdb/gdb/exec.c:471
-	    #9  0x000055555f2b3fb0 in catch_command_errors (command=0x55555ebd1ab6 <exec_file_attach(char const*, int)>, arg=0x7fffffffe0f9 "./x", from_tty=1, do_bp_actions=false) at /home/simark/src/binutils-gdb/gdb/main.c:513
-	    #10 0x000055555f2b7e11 in captured_main_1 (context=0x7fffffffdb60) at /home/simark/src/binutils-gdb/gdb/main.c:1209
-	    #11 0x000055555f2b9144 in captured_main (data=0x7fffffffdb60) at /home/simark/src/binutils-gdb/gdb/main.c:1319
-	    #12 0x000055555f2b9226 in gdb_main (args=0x7fffffffdb60) at /home/simark/src/binutils-gdb/gdb/main.c:1344
-	    #13 0x000055555d938c5e in main (argc=5, argv=0x7fffffffdcf8) at /home/simark/src/binutils-gdb/gdb/gdb.c:32
-
-	The problem is this line in path_join:
-
-	    gdb_assert (strlen (path) == 0 || !IS_ABSOLUTE_PATH (path));
-
-	... where `path` is "x".  IS_ABSOLUTE_PATH eventually calls
-	HAS_DRIVE_SPEC_1:
-
-	    #define HAS_DRIVE_SPEC_1(dos_based, f)                  \
-	      ((f)[0] && ((f)[1] == ':') && (dos_based))
-
-	This macro accesses indices 0 and 1 of the input string.  However, `f`
-	is a string_view of length 1, so it's incorrect to try to access index
-	1.  We know that the string_view's underlying object is a null-terminated
-	string, so in practice there's no harm.  But as far as the string_view
-	is concerned, index 1 is considered out of bounds.
-
-	This patch makes the easy fix, that is to change the path_join parameter
-	from a vector of to a vector of `const char *`.  Another solution would
-	be to introduce a non-standard gdb::cstring_view class, which would be a
-	view over a null-terminated string.  With that class, it would be
-	correct to access index 1, it would yield the NUL character.  If there
-	is interest in having this class (it has been mentioned a few times in
-	the past) I can do it and use it here.
-
-	This was found by running tests such as gdb.ada/arrayidx.exp, which
-	produce 1-char long filenames, so adding a new test is not necessary.
-
-	Change-Id: Ia41a16c7243614636b18754fd98a41860756f7af
-
-2022-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_LENGTH
-	Remove the macro, replace all uses with calls to type::length.
-
-	Change-Id: Ib9bdc954576860b21190886534c99103d6a47afb
-
-2022-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add type::length / type::set_length
-	Add the `length` and `set_length` methods on `struct type`, in order to remove
-	the `TYPE_LENGTH` macro.  In this patch, the macro is changed to use the
-	getter, so all the call sites of the macro that are used as a setter are
-	changed to use the setter method directly.  The next patch will remove the
-	macro completely.
-
-	Change-Id: Id1090244f15c9856969b9be5006aefe8d8897ca4
-
-2022-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_TARGET_TYPE
-	Remove the macro, replace all uses by calls to type::target_type.
-
-	Change-Id: Ie51d3e1e22f94130176d6abd723255282bb6d1ed
-
-2022-09-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add type::target_type / type::set_target_type
-	Add the `target_type` and `set_target_type` methods on `struct type`, in order
-	to remove the `TYPE_TARGET_TYPE` macro.  In this patch, the macro is changed to
-	use the getter, so all the call sites of the macro that are used as a setter
-	are changed to use the setter method directly.  The next patch will remove the
-	macro completely.
-
-	Change-Id: I85ce24d847763badd34fdee3e14b8c8c14cb3161
-
-2022-09-21  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix riscv_set_tso declaration
-	To avoid -Werror=strict-prototypes, this commit changes () to (void).
-	This is because "()" possibly means a function prototype with indeterminate
-	arguments on old C standards.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (riscv_set_tso): Fix declaration.
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	PR29566, objdump -p considers an empty .gnu.version_r invalid
-	Allow and ignore an empty section.
-
-		PR 29566
-		* elf.c (bfd_section_from_shdr): Don't set elf_dynverdef or
-		elf_dynverref for empty sections.
-		(_bfd_elf_slurp_version_tables): Remove now redundant tests.
-
-2022-09-21  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Set EF_RISCV_TSO also on .option arch
-	This is a minor fix to commit 96462b012988d35ebb1137a2ad9fd0a96547d79a
-	("RISC-V: Implement Ztso extension").  Currently, it sets EF_RISCV_TSO ELF
-	flag when initial ISA string contains the 'Ztso' extension.  However, GAS
-	has a way to update the ISA string: ".option arch".
-
-	When the architecture is updated by ".option arch", EF_RISCV_RVC ELF flag
-	is set when the 'C' extension is detected.  Analogously, this commit sets
-	the EF_RISCV_TSO when the 'Ztso' extension is detected.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (s_riscv_option): Set TSO ELF flag if the
-		'Ztso' extension is specified via ".option arch" directive.
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	PR29573, addr2line doesn't display file/line for local symbols
-	The DWARF standard is clear that DW_AT_linkage_name is optional.
-	Compilers may not provide the attribute on functions and variables,
-	even though the language mangles names.  g++ does not for local
-	variables and functions.  Without DW_AT_linkage_name, mangled object
-	file symbols can't be directly matched against the source-level
-	DW_AT_name in DWARF info.  One possibility is demangling the object
-	file symbols, but that comes with its own set of problems:
-	1) A demangler might not be available for the compiler/language.
-	2) Demangling doesn't give the source function name as stored in
-	   DW_AT_name.  Class and template parameters must be stripped at
-	   least.
-
-	So this patch takes a simpler approach.  A symbol matches DWARF info
-	if the DWARF address matches the symbol address, and if the symbol
-	name contains the DWARF name as a sub-string.  Very likely the name
-	matching is entirely superfluous.
-
-		PR 29573
-		* dwarf.c (lookup_symbol_in_function_table): Match a symbol
-		containing the DWARF source name as a substring.
-		(lookup_symbol_in_variable_table): Likewise.
-		(_bfd_dwarf2_find_nearest_line_with_alt): If stash_find_line_fast
-		returns false, fall back to comp_unit_find_line.
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	dwarf2.c: simplify best_fit_len tests
-		* dwarf2.c (lookup_address_in_function_table): Simplify
-		best_fit_len test.
-		(info_hash_lookup_funcinfo): Likewise.
-		(lookup_symbol_in_function_table): Likewise, also reorder tests
-		and check "file" is set.
-		(lookup_symbol_in_variable_table): Reorder tests.
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	dwarf2.c: mangle_style
-	non_mangled incorrectly returned "true" for Ada.  Correct that, and
-	add a few more non-mangled entries.  Return a value suitable for
-	passing to cplus_demangle to control demangling.
-
-		* dwarf2.c: Include demangle.h.
-		(mangle_style): Rename from non_mangled.  Return DMGL_* value
-		to suit lang.  Adjust all callers.
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	dwarf2.c remove varinfo and funcinfo sec field
-	The "sec" field in these structures is only set and used in lookup
-	functions.  It always starts off as NULL.  So the only possible effect
-	of the field is to modify the return of the lookup, which was its
-	purpose back in 2005 when HJ fixed PR990.  Since then we solved the
-	problem of relocatable object files with the fix for PR2338, so this
-	field is now redundant.
-
-		* dwarf.c (struct funcinfo, struct varinfo): Remove "sec" field.
-		(lookup_symbol_in_function_table): Don't set or test "sec".
-		(lookup_symbol_in_variable_table): Likewise.
-		(info_hash_lookup_funcinfo, info_hash_lookup_varinfo): Likewise.
-
-2022-09-21  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	configure: Pass CPPFLAGS_FOR_BUILD to subdirs
-	Because CPPFLAGS_FOR_BUILD is used in some subdirectories (through
-	bfd/warning.m4), not AC_SUBSTing the variable causes minor issues.
-
-	Fortunately, it didn't cause severe errors but error messages related to
-	@CPPFLAGS_FOR_BUILD@ (not AC_SUBSTed CPPFLAGS_FOR_BUILD variable passed
-	to subdirectories through Makefile) remain in config.log.
-
-	To avoid invalid invocation of preprocessor for build environment, we
-	need to set proper CPPFLAGS_FOR_BUILD (may be empty) and pass it to
-	subdirectories that need it.  This is what this commit does.
-
-	ChangeLog:
-
-		* configure.ac: Pass CPPFLAGS_FOR_BUILD to subdirectories.
-		* configure: Regenerate.
-
-2022-09-21  Shihua  <shihua@iscas.ac.cn>
-
-	RISC-V: Implement Ztso extension
-	This patch support ZTSO extension. It will turn on the tso flag for elf_flags
-	once we have enabled Ztso extension.  This is intended to implement v0.1 of
-	the proposed specification which can be found in Chapter 25 of,
-	https://github.com/riscv/riscv-isa-manual/releases/download/draft-20220723-10eea63/riscv-spec.pdf.
-
-	bfd\ChangeLog:
-
-	        * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Set TSO flag.
-	        * elfxx-riscv.c: Add Ztso's arch.
-
-	binutils\ChangeLog:
-
-	        * readelf.c (get_machine_flags): Set TSO flag.
-
-	gas\ChangeLog:
-
-	        * config/tc-riscv.c (riscv_set_tso): Ditto.
-	        (riscv_set_arch): Ditto.
-	        * testsuite/gas/riscv/ztso.d: New test.
-
-	include\ChangeLog:
-
-	        * elf/riscv.h (EF_RISCV_TSO): Ditto.
-
-2022-09-21  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Always generate R_RISCV_CALL_PLT reloc for call in assembler.
-	Since we have the same behaviors of CALL and CALL_PLT relocs in linker for now,
-	https://github.com/bminor/binutils-gdb/commit/3b1450b38c644f99aa2e211747b428b9f8d15cca
-
-	And the psabi already deprecate the CALL reloc,
-	https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/a0dced85018d7a0ec17023c9389cbd70b1dbc1b0
-
-	Therefore, we should always generate R_RISCV_CALL_PLT reloc for call, even if
-	it has @plt postfix.  I believe LLVM (https://reviews.llvm.org/D132530) already
-	support this, so GNU as should do the same thing.
-
-	gas/
-		* config/tc-riscv.c (riscv_ip): Always generate CALL_PLT reloc for
-		call, even if it has @plt postfix.
-		* testsuite/gas/riscv/no-relax-reloc.d: Updated CALL to CALL_PLT.
-		* testsuite/gas/riscv/relax-reloc.d: Likewise.
-	ld/
-		* testsuite/ld-riscv-elf/variant_cc-r.d: Updated CALL to CALL_PLT.
-
-2022-09-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	Re: PowerPC64 pcrel got relocs against local symbols
-	The last patch wasn't all that shiny.  There are rather a lot more
-	relocations that can hit the assertion in md_apply_fix if the symbol
-	is local or absolute.  Fix them all.
-
-		* config/tc-ppc.c (ppc_force_relocation): Add all relocs that
-		expect a symbol in md_apply_fix.  Remove tls pcrel relocs
-		already covered in general tls match range.
-
-2022-09-21  Alan Modra  <amodra@gmail.com>
-
-	looping in alpha_vms_slurp_relocs
-	The direct cause for the looping was failing to test for error return
-	from _bfd_vms_get_object_record inside a while(1) loop.  Fix that.
-	Also record status of first alpha_vms_slurp_relocs call and return
-	that for all subsequent calls.  (The object format has one set of
-	relocation records for all sections.)  If the first call fails, all
-	others should too.
-
-		* vms-alpha.c (struct vms_private_data_struct): Make reloc_done
-		a tri-state int.
-		(alpha_vms_slurp_relocs): Set reloc_done to 1 on success, -1 on
-		failure.  Return that status on subsequent calls.  Check
-		_bfd_vms_get_object_record return status.
-		(alpha_vms_get_reloc_upper_bound): Return status from
-		alpha_vms_slurp_relocs.
-		(alpha_vms_write_exec): Exclude sections with contents NULL due
-		to previous errors from layout, and don't try to write them.
-
-2022-09-20  Dmitry Selyutin  <ghostmansd@gmail.com>
-
-	ppc/svp64: test setvl ms operand
-
-2022-09-20  Tom Tromey  <tom@tromey.com>
-
-	Make stdin_event_handler static
-	I noticed that stdin_event_handler is only used in event-top.c, so
-	this patch changes it to be 'static'.
-
-2022-09-20  Tom Tromey  <tromey@adacore.com>
-
-	Constify some target_so_ops instances
-	This changes some target_so_ops instances to be const.  This makes
-	their use a little more obvious (they can't be mutated) and also
-	allows for the removal of some initialization code.
-
-	Move solib_ops into gdbarch
-	This changs solib_ops to be an ordinary gdbarch value and updates all
-	the uses.  This removes a longstanding FIXME and makes the code
-	somewhat cleaner as well.
-
-	Remove current_target_so_ops
-	current_target_so_ops is only set in a single place.  It seems better
-	to simply remove it.
-
-2022-09-20  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: add a debuginfod-support.exp helper library
-	We currently have a single test for GDB's debuginfod support, this is
-	gdb.debuginfod/fetch_src_and_symbols.exp, this script does all the
-	setup, starts debuginfod, and then does the testing.
-
-	This commit tries to split the existing script in two, there is a new
-	library lib/debuginfod-support.exp, which contains a helper functions
-	related to running debuginfod tests.  All the code in the new library
-	is basically copied from the existing test case (which is why I
-	retained the copyright date range on the new library), with some minor
-	adjustments to try and make the code a little more generic.
-
-	One change I made, for example, is the library offers functions to
-	shut down debuginfod, previously we just relied on expect shutting
-	down debuginfod when dejagnu completed.
-
-	The existing test script is updated to make use of the new library
-	code, and this test is still passing for me.  The only change in the
-	test results is a single test where I changed the name to remove the
-	port number from the test name - the port number can change from run
-	to run, so could make it hard to compare test results.
-
-	I have also done a little light house keeping on the original test
-	script, updating and adding new comments, and making use of
-	proc_with_prefix in a couple of places.
-
-2022-09-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Set macro SUB_SEGMENT_ALIGN to 0.
-
-2022-09-20  Nick Clifton  <nickc@redhat.com>
-
-	Stop strip from complaining about empty note sections when stripping a binary for a second time.
-		* objcopy.c (copy_object): Do not issue a warning message when
-		encountering empty .gnu.build.attribute sections.
-
-	New Serbian translations for various binutils sub-directories.
-
-2022-09-20  Zeke Lu  <lvzecai@gmail.com>
-
-	Bug 29580 - typo in warning message: .note.gnu.build-id data size is too bug
-
-2022-09-20  Xi Ruoyao  <xry111@xry111.site>
-
-	LoongArch: Fix R_LARCH_IRELATIVE insertion after elf_link_sort_relocs
-	loongarch_elf_finish_dynamic_symbol is called after elf_link_sort_relocs
-	if -z combreloc.  elf_link_sort_relocs redistributes the contents of
-	.rela.* sections those would be merged into .rela.dyn, so the slot for
-	R_LARCH_IRELATIVE may be out of relplt->contents now.
-
-	To make things worse, the boundary check
-
-	    dyn < dyn + relplt->size / sizeof (*dyn)
-
-	is obviously wrong ("x + 10 < x"? :), causing the issue undetected
-	during the linking process and the resulted executable suddenly crashes
-	at runtime.
-
-	The issue was found during an attempt to add static-pie support to the
-	toolchain.
-
-	Fix it by iterating through the inputs of .rela.dyn to find the slot.
-
-2022-09-20  Xi Ruoyao  <xry111@xry111.site>
-
-	LoongArch: Don't write into GOT for local ifunc
-	Local ifuncs are always resolved at runtime via R_LARCH_IRELATIVE, so
-	there is no need to write anything into GOT.  And when we write the GOT
-	we actually trigger a heap-buffer-overflow: If a and b are different
-	sections, we cannot access something in b with "a->contents + (offset
-	from a)" because "a->contents" and "b->contents" are heap buffers
-	allocated separately, not slices of a large buffer.
-
-	So stop writing into GOT for local ifunc now.
-
-2022-09-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-19  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: build documentation only if BUILD_MAN is true
-	gprofng/ChangeLog
-	2022-09-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29476
-		* gprofng/Makefile.am: Build documentation only if BUILD_MAN is true
-		* gprofng/Makefile.in: Rebuild.
-		* gprofng/configure: Rebuild.
-
-2022-09-19  Enze Li  <enze.li@hotmail.com>
-
-	gdb: add ATTRIBUTE_PRINTF to gdb_bfd_error_handler
-	I see this error when building with clang,
-
-	  CXX    gdb_bfd.o
-	gdb_bfd.c:1180:43: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
-	  const std::string str = string_vprintf (fmt, ap_copy);
-	                                          ^~~
-	1 error generated.
-
-	This patch adds missing ATTRIBUTE_PRINTF to fix the error.
-
-	Tested on x86_64-linux with gcc 12 and clang 14.
-
-2022-09-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-17  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix "file index out of range" complaint
-	With the test-case included in this commit, we run into this FAIL:
-	...
-	(gdb) p var^M
-	During symbol reading: file index out of range^M
-	$1 = 0^M
-	(gdb) FAIL: gdb.dwarf2/dw2-no-code-cu.exp: p var with no complaints
-	...
-
-	This is a regression since commit 6d263fe46e0 ("Avoid bad breakpoints with
-	--gc-sections"), which contains this change in read_file_scope:
-	...
-	-  handle_DW_AT_stmt_list (die, cu, fnd, lowpc);
-	+  if (lowpc != highpc)
-	+    handle_DW_AT_stmt_list (die, cu, fnd, lowpc);
-	...
-
-	The change intends to avoid a problem with a check in
-	lnp_state_machine::check_line_address, but also prevents the file and dir
-	tables from being read, which causes the complaint.
-
-	Fix the FAIL by reducing the scope of the "lowpc != highpc" condition to the
-	call to dwarf_decode_lines in handle_DW_AT_stmt_list.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29561
-
-2022-09-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-17  Kevin Buettner  <kevinb@redhat.com>
-
-	BFD error message suppression test case
-	This commit adds a GDB test case which tests GDB's BFD error handler
-	hook for suppressing output of all but the first identical messages.
-
-	See the comment at the beginning of bfd-errors.exp for details about
-	this new test.
-
-	I've tested this test for both 32- and 64-bit ELF files and also
-	on both little endian and big endian machines.  It also works for
-	both native and remote targets.  The only major restriction is that
-	it only works for ELF targets.
-
-2022-09-17  Kevin Buettner  <kevinb@redhat.com>
-
-	Suppress printing of superfluous BFD error messages
-	This commit adds a hook to the BFD error handler for suppressing
-	identical messages which have been output once already.
-
-	It's motivated by this Fedora bug...
-
-	https://bugzilla.redhat.com/show_bug.cgi?id=2083315
-
-	...in which over 900,000 BFD error messages are output when attaching
-	to firefox.  From the bug report, the messages all say:
-
-	BFD: /usr/lib/debug/usr/lib64/firefox/libxul.so-100.0-2.fc35.x86_64.debug: attempt to load strings from a non-string section (number 38)
-
-	Since there's no (additional) context which might assist the user in
-	determining what's wrong, there's really no point in outputting more
-	than one message.  Of course, if BFD should output some
-	other/different message, it should be output too, but all future
-	messages identical to those already output should be suppressed.
-
-	For the firefox problem, it turned out that there were only 37
-	sections, but something was referring to section #38.  I haven't
-	investigated further to find out how this came to be.
-
-	Despite this problem, useful debugging might still be done, especially
-	if the user doesn't care about debugging the problematic library.
-
-	If it turns out that knowing the quantity of messages might be useful,
-	I've implemented the suppression mechanism by keeping a count of each
-	identical message.  A new GDB command, perhaps a 'maintenance'
-	command, could be added to print out each message along with the
-	count.  I haven't implemented this though because I'm not convinced of
-	its utility.  Also, the BFD message printer has support for BFD-
-	specific format specifiers.  The BFD message strings that GDB stores
-	in its map are sufficient for distinguishing messages from each
-	other, but are not identical to those output by BFD's default error
-	handler.  So, that problem would need to be solved too.
-
-2022-09-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Handle named DW_TAG_unspecified_type DIE
-	With the test-case included in the patch, we run into:
-	...
-	(gdb) info types -q std::nullptr_t^M
-	During symbol reading: unsupported tag: 'DW_TAG_unspecified_type'^M
-	^M
-	File /usr/include/c++/7/x86_64-suse-linux/bits/c++config.h:^M
-	2198:   typedef decltype(nullptr) std::nullptr_t;^M
-	(gdb) FAIL: gdb.dwarf2/nullptr_t.exp: info types -q std::nullptr_t \
-	  without complaint
-	...
-
-	Fix the complaint by handling DW_TAG_unspecified_type in new_symbol, and verify
-	in the test-case using "maint print symbols" that the symbol exists.
-
-	Tested on x86_64-linux, with gcc 7.5.0 and clang 13.0.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17271
-
-2022-09-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix PowerPC IEEE 128-bit format arg passing
-	On a powerpc system with gcc 12 built to default to 128-bit IEEE long double,
-	I run into:
-	...
-	(gdb) print find_max_long_double_real(4, ldc1, ldc2, ldc3, ldc4)^M
-	$8 = 0 + 0i^M
-	(gdb) FAIL: gdb.base/varargs.exp: print \
-	  find_max_long_double_real(4, ldc1, ldc2, ldc3, ldc4)
-	...
-
-	This is due to incorrect handling of the argument in ppc64_sysv_abi_push_param.
-
-	Fix this and similar cases, and expand the test-case to test handling of
-	homogeneous aggregates.
-
-	Tested on ppc64le-linux, power 10.
-
-	Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
-	Tested-by: Carl Love <cel@us.ibm.com>
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29543
-
-2022-09-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp for aarch64
-	[ Another attempt at fixing the problem described in commit cd919f5533c
-	("[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp"). ]
-
-	When running the test-case gdb.dwarf2/dw2-dir-file-name.exp with
-	aarch64-linux, we run into:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	^M
-	Breakpoint 2, compdir_missing__ldir_missing__file_basename () at \
-	  tmp-dw2-dir-file-name.c:999^M
-	(gdb) FAIL: gdb.dwarf2/dw2-dir-file-name.exp: \
-	  compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
-	  compdir_missing__ldir_missing__file_basename
-	...
-
-	The breakpoint set at compdir_missing__ldir_missing__file_basename_label,
-	address 0x400608 starts at a line entry:
-	...
-	CU: tmp-dw2-dir-file-name.c:
-	File name                    Line number    Starting address    View    Stmt
-	tmp-dw2-dir-file-name.c              999            0x400608               x
-	tmp-dw2-dir-file-name.c             1000            0x40062c               x
-	tmp-dw2-dir-file-name.c                -            0x40062c
-	...
-	and therefore the breakpoint is printed without instruction address.
-
-	In contrast, for x86_64-linux, we have the breakpoint printed with instruction
-	address:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	^M
-	Breakpoint 2, 0x004004c1 in compdir_missing__ldir_missing__file_basename () \
-	  at tmp-dw2-dir-file-name.c:999^M
-	(gdb) PASS: gdb.dwarf2/dw2-dir-file-name.exp: \
-	  compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
-	  compdir_missing__ldir_missing__file_basename
-	...
-
-	The breakpoint set at compdir_missing__ldir_missing__file_basename_label,
-	address 0x004004c1 doesn't start at a line entry:
-	...
-	CU: tmp-dw2-dir-file-name.c:
-	File name                    Line number    Starting address    View    Stmt
-	tmp-dw2-dir-file-name.c              999            0x4004bd               x
-	tmp-dw2-dir-file-name.c             1000            0x4004d3               x
-	tmp-dw2-dir-file-name.c                -            0x4004d3
-	...
-
-	Fix this by:
-	- unifying behaviour between the archs by adding an explicit line number entry
-	  for the address compdir_missing__ldir_missing__file_basename_label, making
-	  the FAIL reproducible on x86_64-linux.
-	- expecting the breakpoint to be printed without instruction address.
-
-	Tested on x86_64-linux and aarch64-linux.
-
-2022-09-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Handle pending ^C after rl_callback_read_char
-	In completion tests in various test-cases, we've been running into these
-	"clearing input line" timeouts:
-	...
-	(gdb) $cmd^GPASS: gdb.gdb/unittest.exp: tab complete "$cmd"
-	FAIL: gdb.gdb/unittest.exp: tab complete "$cmd" (clearing input line) (timeout)
-	...
-	where $cmd == "maintenance selftest name_that_does_not_exist".
-
-	AFAIU, the following scenario happens:
-	- expect sends "$cmd\t"
-	- gdb detects the stdin event, and calls rl_callback_read_char until it
-	  comes to handle \t
-	- readline interprets the \t as completion, tries to complete, fails to do so,
-	  outputs a bell (^G)
-	- expect sees the bell, and proceeds to send ^C
-	- readline is still in the call to rl_callback_read_char, and stores the
-	  signal in _rl_caught_signal
-	- readline returns from the call to rl_callback_read_char, without having
-	  handled _rl_caught_signal
-	- gdb goes to wait for the next event
-	- expect times out waiting for "Quit", the expected reaction for ^C
-
-	Fix this by handling pending signals after each call to rl_callback_read_char.
-
-	The fix is only available for readline 8.x, if --with-system-readline provides
-	an older version, then the fix is disabled due to missing function
-	rl_check_signals.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27813
-
-2022-09-16  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 pcrel got relocs against local symbols
-	Not that anyone would want to indirect via the GOT when an address can
-	be loaded directly with pla, the following:
-
-	 pld 3,x@got@pcrel
-	x:
-
-	leads to "Internal error in md_apply_fix", because the generic parts
-	of assembler fixup handling convert the fx_pcrel fixup to one without
-	a symbol.  Stop that happening.
-
-		* config/tc-ppc.c (ppc_force_relocation): Add PLT_PCREL34 and
-		assorted GOT_PCREL34 relocs.
-
-2022-09-16  Alan Modra  <amodra@gmail.com>
-
-	pdb sanity check block_size
-		* pdb.c (pdb_get_elt_at_index): Only allow block_size to be
-		512, 1024, 2048, or 4096.
-
-2022-09-16  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: Make g imply zmmul extension.
-	bfd/
-		* elfxx-riscv.c (riscv_implicit_subset): Moved entry of m after g,
-		so that g can imply zmmul.
-	gas/
-		* testsuite/gas/riscv/attribute-01.d: Updated.
-		* testsuite/gas/riscv/attribute-02.d: Likewise.
-		* testsuite/gas/riscv/attribute-03.d: Likewise.
-		* testsuite/gas/riscv/attribute-04.d: Likewise.
-		* testsuite/gas/riscv/attribute-05.d: Likewise.
-		* testsuite/gas/riscv/attribute-10.d: Likewise.
-		* testsuite/gas/riscv/march-imply-g.d: Likewise.
-		* testsuite/gas/riscv/march-imply-unsupported.d: Likewise.
-
-2022-09-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-15  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	bfd, binutils, gas: Remove/mark unused variables
-	Clang generates a warning on unused (technically, written but not read
-	thereafter) variables.  By the default configuration (with "-Werror"), it
-	causes a build failure (unless "--disable-werror" is specified).
-
-	This commit adds ATTRIBUTE_UNUSED attribute to some of them, which means
-	they are *possibly* unused (can be used but no warnings occur when
-	unused) and removes others.
-
-	bfd/ChangeLog:
-
-		* elf32-lm32.c (lm32_elf_size_dynamic_sections): Mark unused
-		rgot_count variable.
-		* elf32-nds32.c (elf32_nds32_unify_relax_group): Remove unused
-		count variable.
-		* mmo.c (mmo_scan): Mark unused lineno variable.
-
-	binutils/ChangeLog:
-
-		* windmc.c (write_rc): Remove unused i variable.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (riscv_ip): Remove unused argnum variable.
-
-	ld/ChangeLog:
-
-		* pe-dll.c (generate_reloc): Remove unused bi and page_count
-		variables.
-
-2022-09-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build issues on musl
-	gprofng/ChangeLog
-	2022-09-14  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29477
-		* configure.ac: Set __MUSL_LIBC.
-		* configure: Rebuild.
-		* common/config.h.in: Rebuild.
-		* src/collector_module.h: Fix compiler errors because mmap64, open64,
-		pwrite64 are macros and getcontext() is absent on musl.
-		* libcollector/collector.c: Likewise.
-		* libcollector/hwprofile.c: Likewise.
-		* libcollector/iolib.c: Likewise.
-		* libcollector/libcol_util.c: Likewise.
-		* libcollector/linetrace.c: Likewise.
-		* libcollector/memmgr.c: Likewise.
-		* libcollector/profile.c: Likewise.
-		* libcollector/unwind.c: Likewise.
-		* libcollector/dispatcher.c: Likewise.
-		* src/Experiment.cc: Likewise.
-		* libcollector/collector.h: Use dlsym() because dlvsym() is not defined
-		on musl.
-		* libcollector/iotrace.c: Remove interposition of versioned functions.
-		* libcollector/mmaptrace.c: Likewise.
-		* libcollector/libcol_util.h: Fix -Wint-to-pointer-cast warnings.
-		* libcollector/jprofile.c: Likewise.
-		* libcollector/synctrace.c: Include "collector.h".
-		* src/Print.cc: Use get_basename() because basename() is not defined
-		on musl.
-		* common/hwcdrv.c: Fix -Wformat= warnings.
-
-2022-09-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-14  Rupesh Potharla  <Rupesh.Potharla@amd.com>
-
-	Binutils: Readelf testcase failing with clang
-		* testsuite/binutils-all/readelf.exp (readelf_wi_test): Extend
-		regexps to allow for output genreated by the Clang compiler.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	looping in bfd_mach_o_fat_openr_next_archived_file
-	mach-o.c doesn't sanity check mach-o-fat archives, making it easy for
-	fuzzers to create an archive with mach_o_fat_archentry headers that
-	point to the same offset.  bfd_mach_o_fat_openr_next_archived_file
-	uses the previous element offset to find its header, and thus the next
-	element.  If two offsets are the same, any tool reading the archive
-	will get stuck.  This patch rejects such archives, and any with
-	overlapping elements.
-
-		* mach-o.c (overlap_previous): New function.
-		(bfd_mach_o_fat_archive_p): Sanity check that elements do not
-		overlap each other or the file and archive headers.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	regen pofiles
-
-2022-09-14  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	bfd: Stop using -Wstack-usage=262144 when built with Clang
-	Some components of GNU Binutils will pass "-Wstack-usage=262144" when
-	"GCC >= 5.0" is detected.  However, Clang does not support "-Wstack-usage",
-	despite that related configuration part in bfd/warning.m4 handles the latest
-	Clang (15.0.0 as of this writing) as "GCC >= 5.0".
-
-	The option "-Wstack-usage" was ignored when the first version of Clang is
-	released but even this "ignoring" behavior is removed before Clang 4.0.0.
-	So, if we give Clang "-Wstack-usage=262144", it generates a warning, making
-	the build failure.
-
-	This commit checks "__clang__" macro to prevent adding the option if the
-	compiler is identified as Clang.
-
-	bfd/ChangeLog:
-
-		* warning.m4: Stop appending "-Wstack-usage=262144" option when
-		compiled with Clang.
-		* configure: Regenerate.
-
-	binutils/ChangeLog:
-
-		* configure: Regenerate.
-
-	gas/ChangeLog:
-
-		* configure: Regenerate.
-
-	gold/ChangeLog:
-
-		* configure: Regenerate.
-
-	gprof/ChangeLog:
-
-		* configure: Regenerate.
-
-	ld/ChangeLog:
-
-		* configure: Regenerate.
-
-	opcodes/ChangeLog:
-
-		* configure: Regenerate.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	Modify ld-ctf test files to suit ARM
-	The "@" char starts a comment on ARM.
-
-		* testsuite/ld-ctf/diag-ctf-version-0.s: Replace @progbits with
-		%progbits.
-		* testsuite/ld-ctf/diag-ctf-version-2-unsupported-feature.s: Likewise.
-		* testsuite/ld-ctf/diag-ctf-version-f.s: Likewise.
-		* testsuite/ld-ctf/diag-cttname-invalid.s: Likewise.
-		* testsuite/ld-ctf/diag-cttname-null.s: Likewise.
-		* testsuite/ld-ctf/diag-cuname.s: Likewise.
-		* testsuite/ld-ctf/diag-decompression-failure.s: Likewise.
-		* testsuite/ld-ctf/diag-parlabel.s: Likewise.
-		* testsuite/ld-ctf/diag-parname.s: Likewise.
-		* testsuite/ld-ctf/diag-strlen-invalid.s: Likewise.
-		* testsuite/ld-ctf/diag-unsupported-flag.s: Likewise.
-		* testsuite/ld-ctf/diag-wrong-magic-number.s: Likewise.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	asan: som_set_reloc_info heap buffer overflow
-	Also a bugfix.  The first time the section was read, the contents
-	didn't supply an addend.
-
-		* som.c (som_set_reloc_info): Sanity check offset.  Do process
-		contents after reading.  Tidy section->contents after freeing.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	ubsan: som_is_space null dereference
-	On objcopy of fuzzed file.
-
-		* som.c (som_write_fixups): Exit loop if space sections all
-		processed.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	msan: vms-alpha use-of-uninitialized-value in dst_retrieve_location
-		* vms-alpha.c (dst_define_location): Init any unused entries.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	ubsan: arm-dis.c index out of bounds
-	We are way off in the weeds with this one, and will be printing
-	<UNPREDICTABLE> for S > 10.
-
-		* arm-dis.c (print_insn_cde): Wrap 'T' value.
-
-2022-09-14  Alan Modra  <amodra@gmail.com>
-
-	PR29540, R_PPC64_NONE in .rela.dyn when linking Linux vdso
-		PR 29540
-		* elf64-ppc.c (allocate_dynrelocs): Don't alloc space for relocs
-		against discarded sections.
-		(ppc64_elf_size_dynamic_sections): Use standard test for discarded
-		sections.
-		* elf32-ppc.c (allocate_dynrelocs): Don't alloc space for relocs
-		against discarded sections.
-		(ppc_elf_size_dynamic_sections): Use standard test for discarded
-		sections.
-
-2022-09-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-13  Aaron Merey  <amerey@redhat.com>
-
-	objdump: '-S' should trigger search for separate debuginfo.
-	Add with_source_code to the command line options that trigger
-	might_need_separate_debug_info and dump_any_debugging.  This helps
-	'objdump -S' download missing files via debuginfod without the need for
-	specifying extra command line options like '-L'.
-
-2022-09-13  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: Update gdb.base/so-impl-ld.exp
-	gdb.base/so-impl-ld.exp was setup assuming that the compiler would add
-	epilogue information and that GDB would stop in the } line.  This would
-	make clang tests fail like so:
-
-	 step^M
-	 solib_main (arg=10000) at ../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/solib1.c:7^M
-	 7|__  return arg*arg;|__|___/* HERE */^M
-	 (gdb) PASS: gdb.base/so-impl-ld.exp: step into solib call
-	 next^M
-	 main () at ../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/so-impl-ld.c:22^M
-	 22|_  return 0;^M
-	 (gdb) FAIL: gdb.base/so-impl-ld.exp: step in solib call
-	 next^M
-	 0x00007ffff7cef560 in __libc_start_call_main () from /lib64/libc.so.6^M
-	 (gdb) FAIL: gdb.base/so-impl-ld.exp: step out of solib call
-
-	This patch changes it so solib_main has 2 lines where GDB can stop
-	regardless of compiler choices, and updates the exp file to
-	generically deal with unknown number of steps until leaving that
-	function.
-
-2022-09-13  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: introduce gdb_step_until
-	Currently, GDB's testsuite uses a set amount of step commands to exit
-	functions. This is a problem if a compiler emits different epilogue
-	information from gcc, or emits no epilogue information at all. It was
-	most noticeable if Clang was used to test GDB.
-
-	To fix this unreliability, this commit introduces a new proc that will
-	step the inferior until it is stopped at a line that matches the given
-	regexp, or until it steps too many times - defined as an optional
-	argument. If the line is found, it shows up as a single PASS in the
-	test, and if the line is not found, a single FAIL is emitted.
-
-	This patch only introduces this proc, but does not add it to any
-	existing tests, these will be introduced in the following commit.
-
-2022-09-13  Bruno Larsen  <blarsen@redhat.com>
-
-	explicitly test for stderr in gdb.base/dprintf.exp
-	Not all compilers add stderr debug information when compiling a
-	program. Clang, for instance, prefers to add nothing from standard
-	libraries and let an external debug package have this information.
-	Because of this, gdb.base/dprintf.exp was failing when GDB attempted to
-	use dprintf as a call to fprintf(stderrr, ...), like this:
-
-	 (gdb) PASS: gdb.base/dprintf.exp: call: fprintf: set dprintf style to call
-	 continue
-	 Continuing.
-	 kickoff 1234
-	 also to stderr 1234
-	 'stderr' has unknown type; cast it to its declared type
-	 (gdb) FAIL: gdb.base/dprintf.exp: call: fprintf: 1st dprintf (timeout)
-
-	To avoid this false positive, we explicitly test to see if
-	the compiler has added information about stderr at all, and abort
-	testing dprintf as an fprintf call if it is unavailable.
-
-2022-09-13  Mark Harmstone  <mark@harmstone.com>
-
-	Add pdb archive format
-	Resubmitted with changes in
-	https://sourceware.org/pipermail/binutils/2022-September/122791.html
-	made.
-
-2022-09-13  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky rm csky_print_registers_info
-	The reason for implementing this interface is that we want to print
-	GPR, PC, EPC, PSR and EPSR when the "info register" command
-	is executed.
-
-	A prev patch has added PC, EPC, PSR and EPSR to reggroup
-	general_group, the purpose has been achieved, so this function is
-	no longer required.
-
-2022-09-13  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky rm csky_memory_insert/remove_breakpoint
-	Software breakpoints are inserted or removed by the gdb stub via
-	remote protocol, these two functions are no longer needed.
-
-2022-09-13  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky add unwinder for long branch cases
-	There are two sequences of instructions for long branch:
-	1. jmpi [pc+4]    //insn code: 0xeac00001
-	   .long addr
-
-	2. lrw t1, [pc+8] //insn code: 0xea8d0002
-	   jmp t1         //insn code: 0x7834
-	   nop            //insn code: 0x6c03
-	   .long addr
-
-2022-09-13  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdbserver/csky add csky gdbserver support
-	Add new files:
-	  gdb/arch/csky.c
-	  gdb/arch/csky.h
-	  gdb/features/cskyv2-linux.c
-	  gdbserver/linux-csky-low.cc
-
-	1. In gdb/arch/csky.c file, add function "csky_create_target_description()"
-	for csky_target::low_arch_setup(). later, it can be used for csky native gdb.
-
-	2. In gdb/features/cskyv2-linux.c file, create target_tdesc for csky, include
-	gprs, pc, hi, lo, float, vector and float control registers.
-
-	3. In gdbserver/linux-csky-low.cc file, using PTRACE_GET/SET_RGESET to
-	get/set registers. The main data structures in asm/ptrace.h are:
-	struct pt_regs {
-	    unsigned long   tls;
-	    unsigned long   lr;
-	    unsigned long   pc;
-	    unsigned long   sr;
-	    unsigned long   usp;
-
-	    /*
-	     * a0, a1, a2, a3:
-	     * r0, r1, r2, r3
-	     */
-	    unsigned long   orig_a0;
-	    unsigned long   a0;
-	    unsigned long   a1;
-	    unsigned long   a2;
-	    unsigned long   a3;
-
-	    /*
-	     * r4 ~ r13
-	     */
-	    unsigned long   regs[10];
-
-	    /* r16 ~ r30 */
-	    unsigned long   exregs[15];
-
-	    unsigned long   rhi;
-	    unsigned long   rlo;
-	    unsigned long   dcsr;
-	};
-
-	struct user_fp {
-	    unsigned long   vr[96];
-	    unsigned long   fcr;
-	    unsigned long   fesr;
-	    unsigned long   fid;
-	    unsigned long   reserved;
-	};
-
-2022-09-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-12  Tom Tromey  <tromey@adacore.com>
-
-	Use checked_static_cast in more places
-	I went through all the uses of dynamic_cast<> in gdb, looking for ones
-	that could be replaced with checked_static_cast.  This patch is the
-	result.  Regression tested on x86-64 Fedora 34.
-
-2022-09-12  Peter Bergner  <bergner@linux.ibm.com>
-
-	ppc: Document the -mfuture and -Mfuture options and make them usable
-	The -mfuture and -Mfuture options which are used for adding potential
-	new ISA instructions were not documented.  They also lacked a bitmask
-	so new instructions could not be enabled by those options.  Fixed.
-
-	binutils/
-		* doc/binutils.texi: Document -Mfuture.
-
-	gas/
-		* config/tc-ppc.c: Document -mfuture
-		* doc/c-ppc.texi: Likewise.
-
-	include/
-		* opcode/ppc.h (PPC_OPCODE_FUTURE): Define.
-
-	opcodes/
-		* ppc-dis.c (ppc_opts) <future>: Use it.
-		* ppc-opc.c (FUTURE): Define.
-
-2022-09-12  Bruno Larsen  <blarsen@redhat.com>
-
-	add xfails to gdb.base/complex-parts.exp when testing with clang
-	clang doesn't add encoding to the name of complex variables, only says
-	that the type name is complex, making the relevant tests fail.
-	This patch adds the xfails to the tests that expect the variable name to
-	include it.
-
-2022-09-12  Bruno Larsen  <blarsen@redhat.com>
-
-	Fix gdb.base/call-ar-st to work with Clang
-	When running gdb.base/call-ar-st.exp against Clang, we see one FAIL,
-	like so:
-
-	 print_all_arrays (array_i=<main.integer_array>, array_c=<main.char_array> "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa
-	 ZaZaZaZaZaZaZaZaZaZaZaZa", array_f=<main.float_array>, array_d=<main.double_array>) at ../../../src/gdb/testsuite/gdb.base/call-ar-st.c:274
-	 274       print_int_array(array_i);     /* -step1- */
-	 (gdb) FAIL: gdb.base/call-ar-st.exp: step inside print_all_arrays
-
-	With GCC we instead see:
-
-	 print_all_arrays (array_i=<integer_array>, array_c=<char_array> "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa", array_f=<float_array>, array_d=<double_array>) at /home/pedro/gdb/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.base/call-ar-st.c:274
-	 274       print_int_array(array_i);     /* -step1- */
-	 (gdb) PASS: gdb.base/call-ar-st.exp: step inside print_all_arrays
-
-	The difference is that with Clang we get:
-
-	 array_i=<main.integer_array>, ...
-
-	instead of
-
-	 array_i = <integer_array>, ...
-
-	These symbols are local static variables, and "main" is the name of
-	the function they are defined in.  GCC instead appends a sequence
-	number to the linkage name:
-
-	 $ nm -A call-ar-st.gcc | grep integer_
-	 call-ar-st/call-ar-st:00000000000061a0 b integer_array.3968
-
-	 $ nm -A call-ar-st.clang | grep integer_
-	 call-ar-st:00000000004061a0 b main.integer_array
-
-	This commit changes the testcase to accept both outputs, as they are
-	functionally identical.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-	Change-Id: Iaf2ccdb9d5996e0268ed12f595a6e04b368bfcb4
-
-2022-09-12  Bruno Larsen  <blarsen@redhat.com>
-
-	fix gdb.base/access-mem-running.exp for clang testing
-	Clang was optimizing global_var away because it was not being used
-	anywhere. this commit fixes that by adding the attribute used it.
-
-	update gdb.base/info-program.exp to not fail with clang
-	The test specifically mentions that it doesn't care where the program
-	stops, however it was still testing for a specific location.  The clang
-	compiler emits different line information for epilogue, so GDB reports a
-	different stopping location, depending on the used compiler.  With this
-	patch the test works even with clang.
-
-2022-09-12  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: change gdb.base/nodebug.exp to not fail with clang
-	Clang organizes the variables differently to gcc in the original version
-	of this code, leading to the following differences when testing
-	p (int*) &dataglobal + 1
-
-	gcc:
-	$16 = (int *) 0x404034 <datalocal>
-
-	clang:
-	$16 = (int *) 0x404034 <dataglobal8>
-
-	However, since the important part of this test doesn't seem to be which
-	symbol is linked, but rather if GDB is correctly increasing the
-	address. This test was changed to actually measure address changes,
-	instead of assuming the ordering and naming of symbols.
-
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-09-12  Martin Storsjö  <martin@martin.st>
-
-	ld: pe: Apply review suggestions on the existing exports/imports arrays
-	Use a separate explicit max_exports/imports field, instead of
-	deducing it from the number of allocated elements. Use a named
-	constant for the incremental growth of the array.
-
-	Use bool instead of int for boolean values.
-
-	Remove an unnecessary if statement/scope in the def_file_free
-	function.
-
-	Add more verbose comments about parameters, and about insertion
-	into an array of structs.
-
-	Generally use unsigned integers for all array indices and sizes.
-	The num_exports/imports fields are kept as is as signed integers,
-	since changing them to unsigned would require a disproportionate
-	amount of changes ti pe-dll.c to avoid comparisons between signed
-	and unsigned.
-
-	Simply use xrealloc instead of a check and xmalloc/xrealloc;
-	xrealloc can take NULL as the first parameter (and does a similar
-	check internally). (This wasn't requested in review though,
-	but noticed while working on the code.)
-
-2022-09-12  Martin Storsjö  <martin@martin.st>
-
-	ld: pe: Improve performance of object file exclude symbol directives
-	Store the list of excluded symbols in a sorted list, speeding up
-	checking for duplicates when inserting new entries.
-
-	This is done in the same way as is done for exports and imports
-	(while the previous implementation was done with a linked list,
-	based on the implementation for aligncomm).
-
-	When linking object files with excluded symbols, there can potentially
-	be very large numbers of excluded symbols (just like builds with
-	exports can have a large number of exported symbols).
-
-	This improves the link performance somewhat, when linking with large
-	numbers of excluded symbols.
-
-	The later actual use of the excluded symbols within pe-dll.c
-	handles them via an unordered linked list still, though.
-
-2022-09-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix abort in selftest run_on_main_thread with ^C
-	When running selftest run_on_main_thread and pressing ^C, we can run into:
-	...
-	Running selftest run_on_main_thread.
-	terminate called without an active exception
-
-	Fatal signal: Aborted
-	...
-
-	The selftest function looks like this:
-	...
-	static void
-	run_tests ()
-	{
-	  std::thread thread;
-
-	  done = false;
-
-	  {
-	    gdb::block_signals blocker;
-
-	    thread = std::thread (set_done);
-	  }
-
-	  while (!done && gdb_do_one_event () >= 0)
-	    ;
-
-	  /* Actually the test will just hang, but we want to test
-	     something.  */
-	  SELF_CHECK (done);
-
-	  thread.join ();
-	}
-	...
-
-	The error message we see is due to the destructor of thread being called while
-	thread is joinable.
-
-	This is supposed to be taken care of by thread.join (), but the ^C prevents
-	that one from being called, while the destructor is still called.
-
-	Fix this by ensuring thread.join () is called (if indeed required) before the
-	destructor using SCOPE_EXIT.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29549
-
-2022-09-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Support .gdb_index section with TUs in .debug_info
-	The .gdb_index variant of commit d878bb39e41 ("[gdb/symtab] Support
-	.debug_names section with TUs in .debug_info").
-
-	Tested on x86_64-linux.
-
-2022-09-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp for ppc64le
-	In commit cd919f5533c ("[gdb/testsuite] Fix
-	gdb.dwarf2/dw2-dir-file-name.exp"), I made gdb.dwarf2/dw2-dir-file-name.exp
-	independent of prologue analyzers, using this change:
-	...
-	-       gdb_breakpoint $func
-	+       gdb_breakpoint *$func
-	...
-
-	That however caused a regression on ppc64le.  For PowerPC, as described in the
-	ELFv2 ABI, a function can have a global and local entry point.
-
-	Setting a breakpoint on *$func effectively creates a breakpoint for the global
-	entry point, so if the function is entered through the local entry point, the
-	breakpoint doesn't trigger.
-
-	Fix this by reverting commit cd919f5533c, and setting the breakpoint on
-	${func}_label instead.
-
-	Tested on x86_64-linux and ppc64le-linux.
-
-2022-09-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp with clang
-	When running test-case gdb.dwarf2/dw2-dir-file-name.exp with clang, we run
-	into:
-	...
-	(gdb) break *compdir_missing__ldir_missing__file_basename^M
-	Breakpoint 2 at 0x400580^M
-	(gdb) continue^M
-	Continuing.^M
-	^M
-	Breakpoint 2, 0x0000000000400580 in \
-	  compdir_missing.ldir_missing.file_basename ()^M
-	(gdb) FAIL: gdb.dwarf2/dw2-dir-file-name.exp: \
-	  compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
-	  compdir_missing__ldir_missing__file_basename
-	...
-
-	The problem is that the test-case uses labels outside functions, which is know
-	to cause problem with clang, as documented in the comment for proc
-	function_range.
-
-	Fix this by using get_func_info instead.
-
-	Tested on x86_64-linux, with both gcc 7.5.0 and clang 13.0.0.
-
-2022-09-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: avoid i386_dis_printf()'s staging area for a fair part of output
-	While PR binutils/29483 has now been addressed differently, this
-	originally proposed change still has its merits: Avoiding vsnprintf()
-	for typically far more than half of the overall output results in a 2-3%
-	performance gain in my testing (with debug builds of objdump, libbfd,
-	and libopcodes).
-
-	With that part of output no longer using staging_area[], the array also
-	doesn't need to be quite as large anymore (the largest presently used
-	size is 27, from "64-bit address is disabled").
-
-	While limiting the scope of "res" it became apparent that
-	- no caller cares about the function's return value,
-	- the comment about the return value was wrong,
-	- a particular positive return value would have been meaningless to the
-	  caller.
-	Therefore convert the function to return "void" at the same time.
-
-2022-09-12  Nelson Chu  <nelson@rivosinc.com>
-
-	RISC-V: PR28509, the default visibility symbol cannot be referenced by R_RISCV_JAL.
-	When generating the shared object, the default visibility symbols may bind
-	externally, which means they will be exported to the dynamic symbol table,
-	and are preemptible by default.  These symbols cannot be referenced by the
-	non-pic R_RISCV_JAL and R_RISCV_RVC_JUMP.  However, consider that linker
-	may relax the R_RISCV_CALL relocations to R_RISCV_JAL or R_RISCV_RVC_JUMP,
-	if these relocations are relocated to the plt entries, then we won't report
-	error for them.  Perhaps we also need the similar checks for the
-	R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations.
-
-	After applying this patch, and revert the following glibc patch,
-	riscv: Fix incorrect jal with HIDDEN_JUMPTARGET
-	https://sourceware.org/git/?p=glibc.git;a=commit;h=68389203832ab39dd0dbaabbc4059e7fff51c29b
-
-	I get the expected errors as follows,
-	ld: relocation R_RISCV_RVC_JUMP against `__sigsetjmp' which may bind externally can not be used when making a shared object; recompile with -fPIC
-	ld: relocation R_RISCV_JAL against `exit' which may bind externally can not be used when making a shared object; recompile with -fPIC
-
-	Besides, we also have similar changes for libgcc,
-	RISC-V: jal cannot refer to a default visibility symbol for shared object
-	https://github.com/gcc-mirror/gcc/commit/45116f342057b7facecd3d05c2091ce3a77eda59
-
-	bfd/
-		pr 28509
-		* elfnn-riscv.c (riscv_elf_relocate_section): Report errors when
-		makeing a shard object, and the referenced symbols of R_RISCV_JAL
-		relocations are default visibility.  Besides, we should handle most
-		of the cases here, so don't need the unresolvable check later for
-		R_RISCV_JAL and R_RISCV_RVC_JUMP.
-	ld/
-		pr 28509
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
-		* testsuite/ld-riscv-elf/lib-nopic-01a.s: Removed.
-		* testsuite/ld-riscv-elf/lib-nopic-01b.d: Likewise.
-		* testsuite/ld-riscv-elf/lib-nopic-01b.s: Likewise.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-01.d: New testcase.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-01.s: Likewise.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-02.d: Likewise.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-02.s: Likewise.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-03.d: Likewise.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-03.s: Likewise.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-04.d: Likewise.
-		* testsuite/ld-riscv-elf/shared-lib-nopic-04.s: Likewise.
-
-2022-09-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix handling of DW_TAG_unspecified_type
-	Currently, the test-case contained in this patch fails:
-	...
-	(gdb) p (int) foo ()^M
-	Invalid cast.^M
-	(gdb) FAIL: gdb.dwarf2/dw2-unspecified-type.exp: p (int) foo ()
-	...
-	because DW_TAG_unspecified_type is translated as void.
-
-	There's some code in read_unspecified_type that marks the type as stub, but
-	that's only active for ada:
-	...
-	  if (cu->lang () == language_ada)
-	    type->set_is_stub (true);
-	...
-
-	Fix this by:
-	- marking the type as a stub for all languages, and
-	- handling the stub return type case in call_function_by_hand_dummy.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29558
-
-2022-09-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-10  Alan Modra  <amodra@gmail.com>
-
-	Re: PR29466, APP/NO_APP with linefile
-	It looks like I copied the SIZE init across from
-	binutils/testsuite/config/default.exp without some necessary editing.
-
-		* testsuite/config/default.exp (SIZE): Adjust relative path.
-
-2022-09-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-09  Nick Clifton  <nickc@redhat.com>
-
-	Support debuginfo files with empty group sections.
-		PR 29532
-	bfd	* elf.c (setup_group): Do not return false if there is no group
-		information available.
-
-	bionutils* objcopy.c (setup_section): Leave group sections intact when
-		creating separate debuginfo files.
-
-2022-09-09  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix vector CSR requirements
-	Vector CSRs are also required on smaller vector subsets.
-
-	Not only that the most of vector CSRs are general purpose (and must be
-	accessible for every vector subsets), current minimum vector subset 'Zve32x'
-	requires fixed point arithmetic, making remaining non-general purpose
-	(fixed point arithmetic only) CSRs mandatory for such subsets.
-
-	So, those CSRs must be accessible from 'Zve32x', not just from 'V'.
-	This commit fixes this issue which caused CSR accessibility warnings.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (riscv_csr_address): Change vector CSR
-		requirement from 'V' to 'Zve32x'.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Change vector CSR
-		requirement from 'V' to 'Zve32x'.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-
-2022-09-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-08  Carl Love  <cel@us.ibm.com>
-
-	Fix hardware watchpoint check in test gdb.base/watchpoint-reuse-slot.exp
-	This test generates 48 failures on Power 9 when testing with HW watchpoints
-	enabled.  Note HW watchpoint support is disabled on Power 9 due to a HW bug.
-	The skip_hw_watchpoint_tests proc must be used to correctly determine
-	if the processor supports HW watchpoints.
-
-	This patch replaces the [target_info exists gdb,no_hardware_watchpoints]
-	with the skip_hw_watchpoint_tests check.
-
-	This patch was tested on Power 9, Power 10 and X86-64 with no regressions.
-
-2022-09-08  Nick Clifton  <nickc@redhat.com>
-
-	Gas generated incorrect debug info (top-level DW_TAG_unspecified_type DIE)
-		PR 29559
-		* dwarf2dbg.c (out_debug_info): Place DW_TAG_unspecified_type at
-		the end of the list of children, not at the start of the CU
-		information.
-		* testsuite/gas/elf/dwarf-3-func.d: Update expected output.
-		* testsuite/gas/elf/dwarf-5-func-global.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-func-local.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-func.d: Likewise.
-
-2022-09-08  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gdbsupport: Fix config.status dependency
-	Commit 171fba11ab27 ("Make GDBserver abort on internal error in development mode")
-	created a new substitution CONFIG_STATUS_DEPENDENCIES but this is used by
-	Makefile.in (which is not regenerated by that commit).  After regenerating
-	it, it is found that CONFIG_STATUS_DEPENDENCIES value is not valid, making
-	gdbsupport fail to build.
-
-	Since the CONFIG_STATUS_DEPENDENCIES value is used in the Makefile, macro
-	substitution must have a Makefile format but commit 171fba11ab27 used shell
-	format "$srcdir/../bfd/development.sh".
-
-	This commit fixes this issue by substituting "$srcdir" (shell format) to
-	"$(srcdir)" (Makefile format).  It preserves the dependency as Pedro
-	intended and fixes the build problem.
-
-	It also regenerates corresponding files with the maintainer mode.
-
-	gdbsupport/ChangeLog:
-
-		* configure.ac: Fix config.status dependency.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-
-2022-09-08  Nick Clifton  <nickc@redhat.com>
-
-	Maintainer mode: wrong gettext version?
-		* README-maintainer-mode: Update minimum version  of gettext
-		required.
-
-	i686-w64-mingw32-objdump -WL returns incorrect file paths
-		PR 29523
-		* dwarf.c (display_debug_lines_decoded): Correctly handle DWARF-5
-		directory and filename tables.
-
-2022-09-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] xfail gdb.ada/O2_float_param.exp for aarch64 and gcc 7.5.0
-	On aarch64-linux, with gcc 7.5.0, we run into:
-	...
-	 (gdb) frame^M
-	 #0  callee.increment (val=99.0, val@entry=9.18340949e-41, msg=...) at \
-	   callee.adb:21^M
-	 21            if Val > 200.0 then^M
-	 (gdb) FAIL: gdb.ada/O2_float_param.exp: scenario=all: frame
-	...
-
-	The problem is a GCC bug, filed as "PR98148 - [AArch64] Wrong location
-	expression for function entry values" (
-	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98148 ).
-
-	Xfail the test for aarch64 and gcc 7.
-
-	Tested on x86_64-linux and aarch64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29418
-
-2022-09-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/access_tagged_param.exp for aarch64
-	On aarch64-linux, I run into:
-	...
-	Breakpoint 2, pck.inspect (obj=0x430eb0 \
-	  <system.pool_global.global_pool_object>, <objL>=0) at pck.adb:17^M
-	17         procedure Inspect (Obj: access Top_T'Class) is^M
-	(gdb) FAIL: gdb.ada/access_tagged_param.exp: continue
-	...
-	while on x86_64-linux, I see:
-	...
-	Breakpoint 2, pck.inspect (obj=0x62b2a0, <objL>=2) at pck.adb:19^M
-	19            null;^M
-	(gdb) PASS: gdb.ada/access_tagged_param.exp: continue
-	...
-	Note the different line numbers, 17 vs 19.
-
-	The difference comes from the gdbarch_skip_prologue implementation.
-
-	The amd64_skip_prologue implementation doesn't use gcc line numbers, and falls
-	back to the architecture-specific prologue analyzer, which correctly skips
-	past the prologue, to address 0x4022f7:
-	...
-	00000000004022ec <pck__inspect>:
-	  4022ec:       55                      push   %rbp
-	  4022ed:       48 89 e5                mov    %rsp,%rbp
-	  4022f0:       48 89 7d f8             mov    %rdi,-0x8(%rbp)
-	  4022f4:       89 75 f4                mov    %esi,-0xc(%rbp)
-	  4022f7:       90                      nop
-	  4022f8:       90                      nop
-	  4022f9:       5d                      pop    %rbp
-	  4022fa:       c3                      ret
-	...
-
-	The aarch64_skip_prologue implementation does use gcc line numbers, which are:
-	...
-	File name                    Line number    Starting address    View    Stmt
-	pck.adb                               17            0x402580               x
-	pck.adb                               17            0x402580       1       x
-	pck.adb                               19            0x40258c               x
-	pck.adb                               20            0x402590               x
-	...
-	and which are represented like this internally in gdb:
-	...
-	INDEX  LINE   ADDRESS            IS-STMT PROLOGUE-END
-	0      17     0x0000000000402580 Y
-	1      17     0x0000000000402580 Y
-	2      19     0x000000000040258c Y
-	3      20     0x0000000000402590 Y
-	4      END    0x00000000004025a0 Y
-	...
-
-	The second entry is interpreted as end-of-prologue, so 0x402580 is used, while
-	the actual end of the prologue is at 0x40258c:
-	...
-	0000000000402580 <pck__inspect>:
-	  402580:       d10043ff        sub     sp, sp, #0x10
-	  402584:       f90007e0        str     x0, [sp, #8]
-	  402588:       b90007e1        str     w1, [sp, #4]
-	  40258c:       d503201f        nop
-	  402590:       d503201f        nop
-	  402594:       910043ff        add     sp, sp, #0x10
-	  402598:       d65f03c0        ret
-	  40259c:       d503201f        nop
-	...
-
-	Note that the architecture-specific prologue analyzer would have gotten this
-	right:
-	...
-	(gdb) p /x aarch64_analyze_prologue (gdbarch, pc, pc + 128, 0)
-	$2 = 0x40258c
-	...
-
-	Fix the FAIL by making the test-case more robust against problems in prologue
-	skipping, by setting the breakpoint on line 19 instead.
-
-	Likewise in a few similar test-cases.
-
-	Tested on x86_64-linux and aarch64-linux.
-
-2022-09-07  Luis Machado  <luis.machado@arm.com>
-	    Tom de Vries  <tdevries@suse.de>
-
-	Fix endianness handling for arm record self tests
-	v2:
-
-	- Add 32-bit Arm instruction selftest
-	- Refactored abstract memory reader into abstract instruction reader
-	- Adjusted code to use templated type and to use host endianness as
-	  opposed to target endianness.
-
-	The arm record tests handle 16-bit and 32-bit thumb instructions, but the
-	code is laid out in a way that handles the 32-bit thumb instructions as
-	two 16-bit parts.
-
-	This is fine, but it is prone to host-endianness issues given how the two
-	16-bit parts are stored and how they are accessed later on. Arm is
-	little-endian by default, so running this test with a GDB built with
-	--enable-targets=all and on a big endian host will run into the following:
-
-	Running selftest arm-record.
-	Process record and replay target doesn't support syscall number -2036195
-	Process record does not support instruction 0x7f70ee1d at address 0x0.
-	Self test failed: self-test failed at ../../binutils-gdb/gdb/arm-tdep.c:14482
-
-	It turns out the abstract memory reader class is more generic than it needs to
-	be, and we can simplify the code a bit by assuming we have a simple instruction
-	reader that only reads up to 4 bytes, which is the length of a 32-bit
-	instruction.
-
-	Instead of returning a bool, we return instead the instruction that has been
-	read. This way we avoid having to deal with the endianness conversion, and use
-	the host endianness instead. The Arm selftests can be executed on non-Arm
-	hosts.
-
-	While at it, Tom suggested adding a 32-bit Arm instruction selftest to increase
-	the coverage of the selftests.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29432
-
-2022-09-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use prototype to call libc functions
-	On openSUSE Tumbleweed (using glibc 2.36), I run into:
-	...
-	(gdb) print /d (int) munmap (4198400, 4096)^M
-	Invalid cast.^M
-	(gdb) FAIL: gdb.base/break-main-file-remove-fail.exp: cmdline: \
-	  get integer valueof "(int) munmap (4198400, 4096)"
-	...
-
-	The problem is that after starting the executable, the symbol has type
-	"void (*) (void)":
-	...
-	(gdb) p munmap
-	$1 = {<text variable, no debug info>} 0x401030 <munmap@plt>
-	(gdb) start
-	  ...
-	(gdb) p munmap
-	$2 = {void (void)} 0x7ffff7feb9a0 <__GI_munmap>
-	...
-	which causes the "Invalid cast" error.
-
-	Looking at the debug info for glibc for symbol __GI_munmap:
-	...
-	 <0><189683>: Abbrev Number: 1 (DW_TAG_compile_unit)
-	    <189691>   DW_AT_name        : ../sysdeps/unix/syscall-template.S
-	    <189699>   DW_AT_producer    : GNU AS 2.39.0
-	<1><1896ae>: Abbrev Number: 2 (DW_TAG_subprogram)
-	    <1896af>   DW_AT_name        : __GI___munmap
-	    <1896b3>   DW_AT_external    : 1
-	    <1896b4>   DW_AT_low_pc      : 0x10cad0
-	    <1896bc>   DW_AT_high_pc     : 37
-	...
-	that's probably caused by this bit (or similar bits for other munmap aliases).
-
-	This is fixed in gas on trunk by commit 5578fbf672e ("GAS: Add a return type
-	tag to DWARF DIEs generated for function symbols").
-
-	Work around this (for say gas 2.39) by explicitly specifying the prototype for
-	munmap.
-
-	Likewise for getpid in a couple of other test-cases.
-
-	Tested on x86_64-linux.
-
-2022-09-07  mengqinggang  <mengqinggang@loongson.cn>
-
-	LoongArch: fix gas BFD_RELOC_8/16/24 bug
-	If fixP->fx_subsy is NULL, BFD_RELOC_8/16/24 can't convert to
-	BFD_RELOC_LARCH_xxx.
-
-	gas/config/tc-loongarch.c
-
-2022-09-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-06  Aaron Merey  <amerey@redhat.com>
-	    Nick Clifton  <nickc@redhat.com>
-
-	Add debuginfod support for objdump -S
-	Currently objdump -S is not able to make use files downloaded from debuginfod.
-	This is due to bfd_find_nearest_line_discriminator being unable to locate any
-	separate debuginfo files in the debuginfod cache. Additionally objdump lacked
-	a call to debuginfod_find_source in order to download missing source files.
-
-	Fix this by using bfd_find_nearest_line_with_alt instead of
-	bfd_find_nearest_line_discriminator. Also add a call to
-	debuginfod_find_source in order to download missing source files.
-
-2022-09-06  Aaron Merey  <amerey@redhat.com>
-
-	bfd: Add bfd_find_nearest_line_with_alt
-	bfd_find_nearest_line_with_alt functions like bfd_find_nearest_line with
-	the addition of a parameter for specifying the filename of a supplementary
-	debug file such as one referenced by .gnu_debugaltlink or .debug_sup.
-
-	This patch focuses on implementing bfd_find_nearest_line_with_alt
-	support for ELF/DWARF2 .gnu_debugaltlink. For other targets this
-	function simply sets the invalid_operation bfd_error.
-
-2022-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gdb: add Tsukasa Oi to gdb/MAINTAINERS
-
-2022-09-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: move a write after approval entry into the correct place
-	Noticed in passing that an entry in the MAINTAINERS write after
-	approval list was in the wrong place.
-
-2022-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gdb: Add non-enum disassembler options
-	This is paired with "opcodes: Add non-enum disassembler options".
-
-	There is a portable mechanism for disassembler options and used on some
-	architectures:
-
-	-   ARC
-	-   Arm
-	-   MIPS
-	-   PowerPC
-	-   RISC-V
-	-   S/390
-
-	However, it only supports following forms:
-
-	-   [NAME]
-	-   [NAME]=[ENUM_VALUE]
-
-	Valid values for [ENUM_VALUE] must be predefined in
-	disasm_option_arg_t.values. For instance, for -M cpu=[CPU] in ARC
-	architecture, opcodes/arc-dis.c builds valid CPU model list from
-	include/elf/arc-cpu.def.
-
-	In this commit, it adds following format:
-
-	-   [NAME]=[ARBITRARY_VALUE] (cannot contain "," though)
-
-	This is identified by NULL value of disasm_option_arg_t.values
-	(normally, this is a non-NULL pointer to a NULL-terminated list).
-
-	gdb/ChangeLog:
-
-		* gdb/disasm.c (set_disassembler_options): Add support for
-		non-enum disassembler options.
-		(show_disassembler_options_sfunc): Likewise.
-
-2022-09-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Support .debug_names section with TUs in .debug_info
-	When running test-case gdb.cp/cpexprs-debug-types.exp on target board
-	cc-with-debug-names/gdb:debug_flags=-gdwarf-5, we get an executable with
-	a .debug_names section, but no .debug_types section.  For dwarf-5, the TUs
-	are no longer put in a separate unit, but instead they're put in the
-	.debug_info section.
-
-	When loading the executable, the .debug_names section is silently ignored
-	because of this check in dwarf2_read_debug_names:
-	...
-	  if (map->tu_count != 0)
-	    {
-	      /* We can only handle a single .debug_types when we have an
-	         index.  */
-	      if (per_bfd->types.size () != 1)
-	        return false;
-	...
-	which triggers because per_bfd->types.size () == 0.
-
-	The intention of the check is to make sure we don't have more that one
-	.debug_types section, as can happen in a object file (see PR12984):
-	...
-	$ grep "\.debug_types" 11.s
-	        .section        .debug_types,"G",@progbits,wt.75c042c23a9a07ee,comdat
-	        .section        .debug_types,"G",@progbits,wt.c59c413bf50a4607,comdat
-	...
-
-	Fix this by:
-	- changing the check condition to "per_bfd->types.size () > 1", and
-	- handling per_bfd->types.size () == 0.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29385
-
-2022-09-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.dwarf2/debug-names-bad-cu-index.exp
-	Add test-case gdb.dwarf2/debug-names-bad-cu-index.exp, a regression test for
-	commit 2fe9a3c41fa ("[gdb/symtab] Fix bad compile unit index complaint").
-
-	Tested on x86_64-linux.
-
-2022-09-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.dwarf2/debug-names-tu.exp
-	Add a test-case gdb.dwarf2/debug-names-tu.exp, that uses the dwarf assembler
-	to specify a .debug_names index with the TU list referring to a TU from the
-	.debug_types section.
-
-	This is intended to produce something similar to:
-	...
-	$ gcc -g -fdebug-types-section ~/hello.c -gdwarf-4
-	$ gdb-add-index -dwarf-5 a.out
-	...
-
-	Tested on x86_64-linux.
-
-2022-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	opcodes: Add non-enum disassembler options
-	This is paired with "gdb: Add non-enum disassembler options".
-
-	There is a portable mechanism for disassembler options and used on some
-	architectures:
-
-	-   ARC
-	-   Arm
-	-   MIPS
-	-   PowerPC
-	-   RISC-V
-	-   S/390
-
-	However, it only supports following forms:
-
-	-   [NAME]
-	-   [NAME]=[ENUM_VALUE]
-
-	Valid values for [ENUM_VALUE] must be predefined in
-	disasm_option_arg_t.values. For instance, for -M cpu=[CPU] in ARC
-	architecture, opcodes/arc-dis.c builds valid CPU model list from
-	include/elf/arc-cpu.def.
-
-	In this commit, it adds following format:
-
-	-   [NAME]=[ARBITRARY_VALUE] (cannot contain "," though)
-
-	This is identified by NULL value of disasm_option_arg_t.values
-	(normally, this is a non-NULL pointer to a NULL-terminated list).
-
-	include/ChangeLog:
-
-		* dis-asm.h (disasm_option_arg_t): Update comment of values
-		to allow non-enum disassembler options.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_riscv_disassembler_options): Support
-		non-enum disassembler options on printing disassembler help.
-		* arc-dis.c (print_arc_disassembler_options): Likewise.
-		* mips-dis.c (print_mips_disassembler_options): Likewise.
-
-2022-09-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-05  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim/riscv: Complete tidying up with SBREAK
-	This commit removes SBREAK-related references on the simulator as it's
-	renamed to EBREAK in 2016 (the RISC-V ISA, version 2.1).
-
-	sim/ChangeLog:
-
-		* riscv/sim-main.c (execute_i): Use "ebreak" instead of "sbreak".
-
-2022-09-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-04  Andrew Burgess  <aburgess@redhat.com>
-
-	sim/erc32: fix gdb with simulator build
-	In commit:
-
-	  commit 7b01c1cc1d111ba0afa51e60fa9842d3b971e2d1
-	  Date:   Mon Apr 4 22:38:04 2022 +0100
-
-	      sim: fixes for libopcodes styled disassembler
-
-	changes were made to the simulator source to handle the new libopcodes
-	disassembler styling API.
-
-	Unfortunately, these changes broke building GDB with the erc32 (sparc)
-	simulator, like this:
-
-	  ../src/configure --target=sparc-linux
-	  make all-gdb
-	  ....
-	  /usr/bin/ld: ../sim/erc32/libsim.a(interf.o): in function `sim_open':
-	  /tmp/build/sim/../../src/sim/erc32/interf.c:247: undefined reference to `fprintf_styled'
-	  collect2: error: ld returned 1 exit status
-
-	The problem is that in commit 7b01c1cc1d11 the fprintf_styled function
-	was added into sis.c.  This file is only used when building the 'run'
-	binary, that is, the standalone simulator, and is not included in the
-	libsim.a library.
-
-	Now, the obvious fix would be to move fprintf_styled into libsim.a,
-	however, that turns out to be tricky.
-
-	The erc32 simulator currently has two copies of the function run_sim,
-	one in sis.c, and one in interf.c, both of these copies are global.
-
-	Currently, the 'run' binary links fine, though I suspect this might be
-	pure luck.  When I tried moving fprintf_styled into interf.c, I ran
-	into multiple-definition (of run_sim) errors.  I suspect that by
-	requiring the linker to pull in fprintf_styled from libsim.a I was
-	changing the order in which symbols were loaded, and the linker was
-	now seeing both copies of run_sim, while currently we only see one
-	copy.
-
-	The ideal solution of course, would be to merge the two similar, but
-	slightly different copies of run_sim, and just use the one copy.  Then
-	we could safely move fprintf_styled into interf.c too, and all would
-	be good.
-
-	But I don't have time right now to start debugging the erc32
-	simulator, so I wanted a solution that fixes the build without
-	introducing multiple definition errors.
-
-	The easiest solution I think is to just have two copies of
-	fprintf_styled, one in sis.c, and one in interf.c.  Unlike run_sim,
-	these two copies are both static, so we will not run into multiple
-	definition issues with this function.  The functions themselves are
-	not very big, so it's not a huge amount of duplicate code.
-
-	I am very aware that this is not an ideal solution, and I would
-	welcome anyone who wants to take on fixing the run_sim problem
-	properly, and then cleanup the fprintf_styled duplication.
-
-2022-09-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-02  Max Filippov  <jcmvbkbc@gmail.com>
-
-	xtensa: bfd: fix TLS relocations generated for PIE
-	When generating TLS dynamic relocations the existing xtensa BFD code
-	treats linking to a PIE exactly as linking to a shared object, resulting
-	in generation of wrong relocations for TLS entries. Fix that and add
-	tests.
-
-	bfd/
-		* elf32-xtensa.c (elf_xtensa_check_relocs): Use bfd_link_dll
-		instead of bfd_link_pic. Add elf_xtensa_dynamic_symbol_p test
-		when generating GOT entries.
-		(elf_xtensa_relocate_section): Use bfd_link_dll instead of
-		bfd_link_pic.
-	ld/
-		* testsuite/ld-xtensa/tlspie.dd: New file.
-		* testsuite/ld-xtensa/tlspie.rd: New file.
-		* testsuite/ld-xtensa/tlspie.sd: New file.
-		* testsuite/ld-xtensa/tlspie.td: New file.
-		* testsuite/ld-xtensa/xtensa-linux.exp (TLS PIE transitions):
-		New test.
-
-2022-09-02  Max Filippov  <jcmvbkbc@gmail.com>
-
-	xtensa: adjust expected output in ld TLS tests
-	objdump output for l32r opcode was changed in commit b3ea76397a07
-	("opcodes: xtensa: display loaded literal value"), but xtensa linker TLS
-	relaxation tests weren't adjusted accordingly.
-	readelf output was changed in commit 23356397449a ("Adjust readelf's
-	output so that section symbols without a name as shown with their
-	section name."), but xtensa linker TLS relaxation tests weren't adjusted
-	accordingly.
-	Fix expected output changes in xtensa ld TLS relaxation tests.
-
-	ld/
-		* testsuite/ld-xtensa/tlsbin.dd: Adjust expected output for l32r
-		opcodes.
-		* testsuite/ld-xtensa/tlsbin.rd: Adjust expected output to allow
-		for named section symbols.
-		* testsuite/ld-xtensa/tlspic.dd: Adjust expected output for l32r
-		opcodes.
-		* testsuite/ld-xtensa/tlspic.rd: Adjust expected output to allow
-		for named section symbols.
-
-2022-09-02  Frederic Cambus  <fred@statdns.com>
-
-	Add OpenBSD ARM Little Endian BFD support.
-		* config.bfd (arm-*-openbsd*): Restore target.
-
-2022-09-02  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Print highest address (-1) on the disassembler
-	This patch makes possible to print the highest address (-1) and the addresses
-	related to gp which value is -1.  This is particularly useful if the highest
-	address space is used for I/O registers and corresponding symbols are defined.
-	Besides, despite that it is very rare to have GP the highest address, it would
-	be nice because we enabled highest address printing on regular cases.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/dis-addr-topaddr.s: New test for the top
-		address (-1) printing.
-		* testsuite/gas/riscv/dis-addr-topaddr-32.d: Likewise.
-		* testsuite/gas/riscv/dis-addr-topaddr-64.d: Likewise.
-		* testsuite/gas/riscv/dis-addr-topaddr-gp.s: New test for
-		GP-relative addressing when GP is the highest address (-1).
-		* testsuite/gas/riscv/dis-addr-topaddr-gp-32.d: Likewise.
-		* testsuite/gas/riscv/dis-addr-topaddr-gp-64.d: Likewise.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (struct riscv_private_data): Add `to_print_addr' to
-		enable printing the highest address.
-		(maybe_print_address): Utilize `to_print_addr'.
-		(riscv_disassemble_insn): Likewise.
-
-2022-09-02  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: PR29342, Fix RV32 disassembler address computation
-	If either the base register is `zero', `tp' or `gp' and XLEN is 32, an
-	incorrectly sign-extended address is produced when printing.  This commit
-	fixes this by fitting an address into a 32-bit value on RV32.
-
-	Besides, H. Peter Anvin discovered that we have wrong address computation
-	for JALR instruction (the initial bug is back in 2018).  This commit also
-	fixes that based on the idea of Palmer Dabbelt.
-
-	gas/
-		pr29342
-		* testsuite/gas/riscv/lla32.d: Reflect RV32 address computation fix.
-		* testsuite/gas/riscv/dis-addr-overflow.s: New testcase.
-		* testsuite/gas/riscv/dis-addr-overflow-32.d: Likewise.
-		* testsuite/gas/riscv/dis-addr-overflow-64.d: Likewise.
-	opcodes/
-		pr29342
-		* riscv-dis.c (maybe_print_address): Fit address into 32-bit on RV32.
-		(print_insn_args): Fix JALR address by adding EXTRACT_ITYPE_IMM.
-
-2022-09-02  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add address printer tests with ADDIW
-	Address sequences involving ADDIW/C.ADDIW instructions require special
-	handling to sign-extend lower 32-bits of the original result.
-
-	This commit tests whether this sign-extension works.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/dis-addr-addiw.s: New to test the address
-		computation with sign extension as used in ADDIW/C.ADDIW.
-		* testsuite/gas/riscv/dis-addr-addiw-a.d: Test PC sign bit 0.
-		* testsuite/gas/riscv/dis-addr-addiw-b.d: Test PC sign bit 1.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/dis-addr-addiw-a.d: New test.
-		* testsuite/gas/riscv/dis-addr-addiw-b.d: New test.
-		* testsuite/gas/riscv/dis-addr-addiw.s: New test.
-
-2022-09-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-09-01  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	sim: Update mailing list address
-	The commit bf1102165389 "* MAINTAINERS: Perform some obvious fixups."
-	back in 2009 changed the mailing list address gdb-patches@sources.redhat.com
-	to gdb-patches@sourceware.org.
-
-	This commit does the same to sim/MAINTAINERS.
-
-	sim/ChangeLog:
-
-		* MAINTAINERS: Update mailing list address.
-
-	Change-Id: I56c6bf21a4bddfb35ffc3336ffcba7ff9b39926e
-
-2022-09-01  Nick Clifton  <nickc@redhat.com>
-
-	dllwrap, windres and dlltools use mktemp, which should be avoided
-		PR 29534
-		* dllwrap.c: Replace uses of choose_temp_base() with
-		make_temp_file().
-		* dlltool.c: Likewise.
-		* resrc.c: Likewise.
-
-2022-09-01  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/doc: Document the Guile `#:unlimited' keyword
-	Document the Guile `#:unlimited' keyword and deprecate the internal
-	integer representation it corresponds to for integer parameters.
-
-2022-09-01  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/python-config: replace deprecated distutils.sysconfig
-	When running the gdb/configure script on ubuntu 22.04 with
-	python-3.10.4, I see:
-
-	    checking for python... no
-	    checking for python3... /usr/bin/python3
-	    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
-	      from distutils import sysconfig
-	    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
-	      from distutils import sysconfig
-	    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
-	      from distutils import sysconfig
-	    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
-	      from distutils import sysconfig
-	    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
-	      from distutils import sysconfig
-	    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
-	      from distutils import sysconfig
-	    checking for python... yes
-
-	The distutils module is deprecated as per the PEP 632[1] and will be
-	removed in python-3.12.
-
-	This patch migrates gdb/python/python-config.py from distutils.sysconfig
-	to the sysconfig module[2].
-
-	The sysconfig module has has been introduced in the standard library in
-	python 3.2.  Given that support for python < 3.2 has been removed by
-	edae3fd6600f: "gdb/python: remove Python 2 support", this patch does not
-	need to support both implementations for backward compatibility.
-
-	Tested on ubuntu-22.04 and ubuntu 20.04.
-
-	[1] https://peps.python.org/pep-0632/
-	[2] https://docs.python.org/3/library/sysconfig.html
-
-	Change-Id: Id0df2baf3ee6ce68bd01c236b829ab4c0a4526f6
-
-2022-09-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-31  Tom Tromey  <tromey@adacore.com>
-
-	Fix interpreter-exec crash
-	PR mi/10347 points out that using interpreter-exec inside of a
-	"define" command will crash gdb.  The bug here is that
-	gdb_setup_readline doesn't check for the case where instream==nullptr.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=10347
-
-2022-08-31  Tom Tromey  <tromey@adacore.com>
-
-	Fix "source" with interpreter-exec
-	PR mi/15811 points out that "source"ing a file that uses
-	interpreter-exec will put gdb in a weird state, where the CLI stops
-	working.  The bug is that tui_interp::suspend does not unregister the
-	event file descriptor.
-
-	The test case is from Andrew Burgess.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=15811
-
-2022-08-31  Tom Tromey  <tromey@adacore.com>
-
-	Remove a call to clear_interpreter_hooks
-	mi_interp::resume does not need to call clear_interpreter_hooks,
-	because this is already done by interp_set.
-
-	TUI stdout buffering cleanup
-	The TUI checks against gdb_stdout to decide when to buffer.  It seems
-	much cleaner to me to simply record this as an attribute of the stream
-	itself.
-
-	Remove a ui-related memory leak
-	gdb_setup_readline makes new streams and assigns to the various stream
-	members of struct ui.  However, these assignments cause the previous
-	values to leak.  As far as I can, this code is simply unnecessary and
-	can be removed -- with the exception of the assignment to gdb_stdtarg,
-	which is not initialized anywhere else.
-
-	Remove tui_out_new
-	tui_out_new is just a simple wrapper for 'new' and can be removed,
-	simplifying gdb a tiny bit.
-
-	Use scoped_restore in safe_parse_type
-	This changes safe_parse_type to use scoped_restore rather than
-	explicit assignments.
-
-	Use member initialization in 'struct ui'
-	This changes 'struct ui' to use member initialization.  This is
-	simpler to understand.
-
-	Remove two unused members from mi_interp
-	These members of mi_interp aren't used and can be removed.
-
-	Remove obsolete filtering comment
-	top.h has an obsolete comment about the use of _unfiltered.
-
-	Remove the "for moment" comments
-	A few spots setting some gdb output stream variables have a "for
-	moment" comment.  These comments aren't useful and I think the moment
-	has passed -- these are permanent now.
-
-	Use ui_out_redirect_pop in more places
-	This changes ui_out_redirect_pop to also perform the redirection, and
-	then updates several sites to use this, rather than explicit
-	redirects.
-
-	Free ui::line_buffer
-	A ui initializes its line_buffer, but never calls buffer_free on it.
-	This patch fixes the oversight.  I found this by inspection.
-
-	Remove some dead code
-	This patch removes some dead code and an old FIXME.  These no longer
-	seem useful, even for documentation purposes.
-
-	Let ui::input_fd be -1
-	This changes gdb so that, if ui::input_fd is set to -1, then it will
-	not be registered with the event loop.  This is useful for the DAP
-	support code I wrote, but as it turns out to also be useful to
-	Insight, it seems best to check it in separately.
-
-2022-08-31  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: better support for fflags and frm registers
-	First, some background on the RISC-V registers fflags, frm, and fcsr.
-
-	These three registers all relate to the floating-point status and
-	control mechanism on RISC-V.  The fcsr is the floatint-point control
-	status register, and consists of two parts, the flags (bits 0 to 4)
-	and the rounding-mode (bits 5 to 7).
-
-	The fcsr register is just one of many control/status registers (or
-	CSRs) available on RISC-V.  The fflags and frm registers are also
-	CSRs.  These CSRs are aliases for the relevant parts of the fcsr
-	register.  So fflags is an alias for bits 0 to 4 of fcsr, and frm is
-	an alias for bits 5 to 7 of fcsr.
-
-	This means that a user can change the floating-point rounding mode
-	either, by writing a complete new value into fcsr, or by writing just
-	the rounding mode into frm.
-
-	How this impacts on GDB is like this: a target description could,
-	legitimately include all three registers, fcsr, fflags, and frm.  The
-	QEMU target currently does this, and this makes sense.  The target is
-	emulating the complete system, and has all three CSRs available, so
-	why not tell GDB about this.
-
-	In contrast, the RISC-V native Linux target only has access to the
-	fcsr.  This is because the ptrace data structure that the kernel uses
-	for reading and writing floating point state only contains a copy of
-	the fcsr, after all, this one field really contains both the fflags
-	and frm fields, so why carry around duplicate data.
-
-	So, we might expect that the target description for the RISC-V native
-	Linux GDB would only contain the fcsr register.  Unfortunately, this
-	is not the case.  The RISC-V native Linux target uses GDB's builtin
-	target descriptions by calling riscv_lookup_target_description, this
-	will then add an fpu feature from gdb/features/riscv, either
-	32bit-fpu.xml or 64bit-fpu.xml.  The problem, is that these features
-	include an entry for fcsr, fflags, and frm.  This means that GDB
-	expects the target to handle reading and writing these registers.  And
-	the RISC-V native Linux target currently doesn't.
-
-	In riscv_linux_nat_target::store_registers and
-	riscv_linux_nat_target::fetch_registers only the fcsr register is
-	handled, this means that, for RISC-V native Linux, the fflags and frm
-	registers always show up as <unavailable> - they are present in the
-	target description, but the target doesn't know how to access the
-	registers.
-
-	A final complication relating to these floating pointer CSRs is which
-	target description feature the registers appear in.
-
-	These registers are CSRs, so it would seem sensible that these
-	registers should appear in the CSR target description feature.
-
-	However, when I first added RISC-V target description support, I was
-	using a RISC-V simulator that didn't support any CSRs other than the
-	floating point related ones.  This simulator bundled all the float
-	related CSRs into the fpu target feature.  This didn't feel completely
-	unreasonable to me, and so I had GDB check for these registers in
-	either target feature.
-
-	In this commit I make some changes relating to how GDB handles the
-	three floating point CSR:
-
-	1. Remove fflags and frm from 32bit-fpu.xml and 64bit-fpu.xml.  This
-	means that the default RISC-V target description (which RISC-V native
-	FreeBSD), and the target descriptions created for RISC-V native Linux,
-	will not include these registers.  There's nothing stopping some other
-	target (e.g. QEMU) from continuing to include all three of these CSRs,
-	the code in riscv-tdep.c continues to check for all three of these
-	registers, and will handle them correctly if they are present.
-
-	2. If a target supplied fcsr, but does not supply fflags and/or frm,
-	then RISC-V GDB will now create two pseudo registers in order to
-	emulate the two missing CSRs.  These new pseudo-registers do the
-	obvious thing of just reading and writing the fcsr register.
-
-	3. With the new pseudo-registers we can no longer make use of the GDB
-	register numbers RISCV_CSR_FFLAGS_REGNUM and RISCV_CSR_FRM_REGNUM.
-	These will be the numbers used if the target supplies the registers in
-	its target description, but, if GDB falls back to using
-	pseudo-registers, then new, unique numbers will be used.  To handle
-	this I've added riscv_gdbarch_tdep::fflags_regnum and
-	riscv_gdbarch_tdep::frm_regnum, I've then updated the RISC-V code to
-	compare against these fields.
-
-	When adding the pseudo-register support, it is important that the
-	pseudo-register numbers are calculated after the call to
-	tdesc_use_registers.  This is because we don't know the total number
-	of physical registers until after this call, and the psuedo-register
-	numbers must follow on from the real (target supplied) registers.
-
-	I've updated some tests to include more testing of the fflags and frm
-	registers, as well as adding a new test.
-
-2022-08-31  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: Add tdesc_found_register function to tdesc API
-	This commit adds a new function to the target description API within
-	GDB.  This new function is not used in this commit, but will be used
-	in the next commit, I'm splitting it out into a separate patch for
-	easier review.
-
-	What I want to do in the next commit is check to see if a target
-	description supplied a particular register, however, the register in
-	question could appear in one of two possible features.
-
-	The new function allows me to ask the tdesc_arch_data whether a
-	register was found and assigned a particular GDB register number once
-	all of the features have been checked.  I think this is a much simpler
-	solution than adding code such that, while checking each feature, I
-	spot if the register I'm processing is the one I care about.
-
-	No tests here as the new code is not used, but this code will be
-	exercised in the next commit.
-
-2022-08-31  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: improve (and fix) display of frm field in 'info registers'
-	On RISC-V the FCSR (float control/status register) is split into two
-	parts, FFLAGS (the flags) and FRM (the rounding mode).  Both of these
-	two fields are part of the FCSR register, but can also be accessed as
-	separate registers in their own right.  And so, we have three separate
-	registers, $fflags, $frm, and $fcsr, with the last of these being the
-	combination of the first two.
-
-	Here's how the bits of FCSR are split between FRM and FFLAGS:
-
-	         ,--------- FFLAGS
-	       |---|
-	    76543210 <----- FCSR
-	    |-|
-	     '--------------FRM
-
-	Here's how GDB currently displays these registers:
-
-	  (gdb) info registers $fflags $frm $fcsr
-	  fflags         0x0      RD:0 NV:0 DZ:0 OF:0 UF:0 NX:0
-	  frm            0x0      FRM:0 [RNE (round to nearest; ties to even)]
-	  fcsr           0x0      RD:0 NV:0 DZ:0 OF:0 UF:0 NX:0 FRM:0 [RNE (round to nearest; ties to even)]
-
-	Notice the 'RD' field which is present in both $fflags and $fcsr.
-	This field contains the value of the FRM field, which makes sense when
-	displaying the $fcsr, but makes no sense when displaying $fflags, as
-	the $fflags doesn't include the FRM field.
-
-	Additionally, the $fcsr already includes an FRM field, so the
-	information in 'RD' is duplicated.  Consider this:
-
-	  (gdb) set $frm = 0x3
-	  (gdb) info registers $fflags $frm $fcsr                             │
-	  fflags         0x0      RD:0 NV:0 DZ:0 OF:0 UF:0 NX:0
-	  frm            0x3      FRM:3 [RUP (Round up towards +INF)]
-	  fcsr           0x60     RD:3 NV:0 DZ:0 OF:0 UF:0 NX:0 FRM:3 [RUP (Round up towards +INF)]
-
-	See how the 'RD' field in $fflags still displays 0, while the 'RD' and
-	'FRM' fields in $fcsr show the same information.
-
-	The first change I propose in this commit is to remove the 'RD'
-	field.  After this change the output now looks like this:
-
-	  (gdb) info registers $fflags $frm $fcsr
-	  fflags         0x0      NV:0 DZ:0 OF:0 UF:0 NX:0
-	  frm            0x0      FRM:0 [RNE (round to nearest; ties to even)]
-	  fcsr           0x0      NV:0 DZ:0 OF:0 UF:0 NX:0 FRM:0 [RNE (round to nearest; ties to even)]
-
-	Next, I spotted that the text that goes along with the 'FRM' field was
-	not wrapped in the i18n markers for internationalisation, so I added
-	those.
-
-	Next, I spotted that:
-
-	  (gdb) set $frm=0x7
-	  (gdb) info registers $fflags $frm $fcsr
-	  fflags         0x0      RD:0 NV:0 DZ:0 OF:0 UF:0 NX:0
-	  frm            0x7      FRM:3 [RUP (Round up towards +INF)]
-	  fcsr           0xe0     RD:7 NV:0 DZ:0 OF:0 UF:0 NX:0 FRM:3 [RUP (Round up towards +INF)]
-
-	Notice that despite being a 3-bit field, FRM masks to 2-bits.
-	Checking the manual I can see that the FRM field is 3-bits, and is
-	defined for all 8 values.  That GDB masks to 2-bits is just a bug I
-	think, so I've fixed this.
-
-	Finally, the 'FRM' text for value 0x7 is wrong.  Currently we use the
-	text 'dynamic rounding mode' for value 0x7.  However, this is not
-	really correct.
-
-	A RISC-V instruction can either encode the rounding mode within the
-	instruction, or a RISC-V instruction can choose to use a global,
-	dynamic rounding mode.
-
-	So, for the rounding-mode field of an _instruction_ the value 0x7
-	indicates "dynamic round mode", the instruction should defer to the
-	rounding mode held in the FRM field of the $fcsr.
-
-	But it makes no sense for the FRM of $fcsr to itself be set to
-	0x7 (dynamic rounding mode), and indeed, section 11.2, "Floating-Point
-	Control and Status Register" of the RISC-V manual, says that a value
-	of 0x7 in the $fcsr FRM field is invalid, and if an instruction has
-	_its_ round-mode set to dynamic, and the FRM field is also set to 0x7,
-	then an illegal instruction exception is raised.
-
-	And so, I propose changing the text for value 0x7 of the FRM field to
-	be "INVALID[7] (Dynamic rounding mode)".  We already use the text
-	"INVALID[5]" and "INVALID[6]" for the two other invalid fields,
-	however, I think adding the extra "Dynamic round mode" hint might be
-	helpful.
-
-	I've added a new test that uses 'info registers' to check what GDB
-	prints for the three registers related to this patch.  There is one
-	slight oddity with this test - for the fflags and frm registers, the
-	test accepts both the "normal" output (as described above), but also
-	allows these registers to be reported as '<unavailable>'.
-
-	The reason why I accept <unavailable> is that currently, the RISC-V,
-	native Linux target advertises these registers in its target
-	description, but then doesn't support reading or writing of these
-	registers, this results in the registers being reported as
-	unavailable.
-
-	A later patch in this series will address this issue, and will remove
-	this check for <unavailable>.
-
-2022-08-31  Frederic Cambus  <fred@statdns.com>
-
-	Add OpenBSD AArch64 GAS support.
-		* configure.tgt (aarch64*-*-openbsd*): Add target.
-
-2022-08-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb, dwarf: create symbols for template tags without names
-	The following GDB behavior was also reported as a GDB bug in
-
-	  https://sourceware.org/bugzilla/show_bug.cgi?id=28396
-
-	I will reiterate the problem a bit and give some more information here.
-	This patch closes the above mentioned bug.
-
-	The DWARF 5 standard 2.23 'Template Parameters' reads:
-
-	   A template type parameter is represented by a debugging information
-	   entry with the tag DW_TAG_template_type_parameter.  A template value
-	   parameter is represented by a debugging information entry with the tag
-	   DW_TAG_template_value_parameter.  The actual template parameter entries
-	   appear in the same order as the corresponding template formal
-	   parameter declarations in the source progam.
-
-	   A type or value parameter entry may have a DW_AT_name attribute, whose
-	   value is a null-terminated string containing the name of the
-	   corresponding formal parameter.
-
-	So the DW_AT_name attribute for DW_TAG_template_type_parameter and
-	DW_TAG_template_value_parameter is optional.
-
-	Within GDB, creating a new symbol from some read DIE usually requires the
-	presence of a DW_AT_name for the DIE (an exception here is the case of
-	unnamed namespaces or the existence of a linkage name).
-
-	This patch makes the presence of the DW_AT_name for template value/type
-	tags optional, similar to the unnamed namespaces.
-
-	For unnamed namespaces dwarf2_name simply returns the constant string
-	CP_ANONYMOUS_NAMESPACE_STR '(anonymous namespace)'.  For template tags a
-	case was added to the switch statement calling the
-	unnamed_template_tag_name helper.  Within the scope of parent which
-	the template parameter is a child of, the helper counts the position
-	of the template tag within the unnamed template tags and returns
-	'<unnamedNUMBER>' where NUMBER is its position.  This way we end up with
-	unique names within the respective scope of the function/class/struct
-	(these are the only currenltly supported template kinds within GDB and
-	usually the compilers) where we discovered the template tags in.
-
-	While I do not know of a way to bring GCC to emit template tags without
-	names there is one for clang/icpx.  Consider the following example
-
-	  template<typename A, typename B, typename C>
-	  class Foo {};
-
-	  template<typename, typename B, typename>
-	  class Foo;
-
-	  int main () {
-	    Foo<double, int, float> f;
-	    return 0;
-	  }
-
-	The forward declaration for 'Foo' with the missing template type names
-	'A' and 'C' makes clang emit a bunch of template tags without names:
-
-	 ...
-	  <2><43>: Abbrev Number: 3 (DW_TAG_variable)
-	    <44>   DW_AT_location    : 2 byte block: 91 78      (DW_OP_fbreg: -8)
-	    <47>   DW_AT_name        : (indirect string, offset: 0x63): f
-	    <4b>   DW_AT_decl_file   : 1
-	    <4c>   DW_AT_decl_line   : 8
-	    <4d>   DW_AT_type        : <0x59>
-	 ...
-	 <1><59>: Abbrev Number: 5 (DW_TAG_class_type)
-	    <5a>   DW_AT_calling_convention: 5  (pass by value)
-	    <5b>   DW_AT_name        : (indirect string, offset: 0x74): Foo<double, int, float>
-	    <5f>   DW_AT_byte_size   : 1
-	    <60>   DW_AT_decl_file   : 1
-	    <61>   DW_AT_decl_line   : 2
-	 <2><62>: Abbrev Number: 6 (DW_TAG_template_type_param)
-	    <63>   DW_AT_type        : <0x76>
-	 <2><67>: Abbrev Number: 7 (DW_TAG_template_type_param)
-	    <68>   DW_AT_type        : <0x52>
-	    <6c>   DW_AT_name        : (indirect string, offset: 0x6c): B
-	 <2><70>: Abbrev Number: 6 (DW_TAG_template_type_param)
-	    <71>   DW_AT_type        : <0x7d>
-	 ...
-
-	Befor this patch, GDB would not create any symbols for the read template
-	tag DIEs and thus lose knowledge about them.  Breaking at the return
-	statement and printing f's type would read
-
-	  (gdb) ptype f
-	  type = class Foo<double, int, float> [with B = int] {
-	      <no data fields>
-	  }
-
-	After this patch GDB does generate symbols from the DWARF (with their
-	artificial names:
-
-	  (gdb) ptype f
-	  type = class Foo<double, int, float> [with <unnamed0> = double, B = int,
-	  <unnamed1> = float] {
-	      <no data fields>
-	  }
-
-	The same principle theoretically applies to template functions.  Also
-	here, GDB would not record unnamed template TAGs but I know of no visual
-	way to trigger and test this changed behavior.  Template functions do
-	not emit a '[with...]' list and their name generation also does not
-	suffer from template tags without names.  GDB does not check whether or
-	not a template tag has a name in 'dwarf2_compute_name' and thus, the
-	names of the template functions are created independently of whether or
-	not the template TAGs have a DW_TAT_name attribute.  A testcase has
-	been added in the gdb.dwarf2 for template classes and structs.
-
-	Bug:  https://sourceware.org/bugzilla/show_bug.cgi?id=28396
-
-2022-08-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb, testsuite: adapt function_range expected name
-	When writing a dwarf testcase for some C++ code I wanted to use the
-	MACRO_AT_range which in turn uses the function_range proc in dwarf.exp
-	to extract the bounds of 'main'.
-
-	However, the macro failed as GDB prints the C++ 'main' with its
-	arguments as 'main(int, char**)' or 'main()'.
-
-	The reason for this is that in read.c::dwarf2_compute_name we call
-	c_type_print_args on C++ functions and append their arguments to the
-	function name.  This happens to all C++ functions, but is only visible
-	when the function doesn't have a linkage name.
-
-	An example might make this more clear.  Given the following code
-
-	  >> cat c.cpp
-	  int foo (int a, float b)
-	  {
-	    return 0;
-	  }
-
-	  int main (int argc, char **argv)
-	  {
-	    return 0;
-	  }
-
-	which is legal in both languages, C and C++, and compiling it with
-	e.g. clang or gcc will make the disassemble command look like:
-
-	  >> clang --version
-	  clang version 10.0.0-4ubuntu1
-	  ...
-	  >> clang -O0 -g ./c.cpp
-	  >> gdb -q ./a.out -ex "start"
-	  ...
-	  (gdb) disassemble main
-	  Dump of assembler code for function main(int, char**):
-	     0x0000000000401120 <+0>:     push   %rbp
-	     0x0000000000401121 <+1>:     mov    %rsp,%rbp
-	  ...
-	     0x0000000000401135 <+21>:    ret
-	  End of assembler dump.
-	  (gdb) disassemble foo
-	  Dump of assembler code for function _Z3fooif:
-	     0x0000000000401110 <+0>:     push   %rbp
-	     0x0000000000401111 <+1>:     mov    %rsp,%rbp
-	  ...
-	     0x000000000040111f <+15>:    ret
-	  End of assembler dump.
-
-	Note, that main is emitted with its arguments while for foo the linkage
-	name is being printed, as also visible in its DWARF:
-
-	  >> objdump ./a.out --dwarf=info | grep "foo" -A3 -B3
-	      <2b>   DW_AT_low_pc      : 0x401110
-	      <33>   DW_AT_high_pc     : 0x10
-	      <37>   DW_AT_frame_base  : 1 byte block: 56         (DW_OP_reg6 (rbp))
-	      <39>   DW_AT_linkage_name: (indirect string, offset: 0x39): _Z3fooif
-	      <3d>   DW_AT_name        : (indirect string, offset: 0x42): foo
-	      <41>   DW_AT_decl_file   : 1
-	      <42>   DW_AT_decl_line   : 1
-	      <43>   DW_AT_type        : <0x9a>
-
-	Now, let's rename the C++ file and compile it as C:
-
-	  >> mv c.cpp c.c
-	  >> clang -O0 -g ./c.c
-	  >> gdb -q ./a.out -ex "start'
-	  ...
-	  (gdb) disassemble main
-	  Dump of assembler code for function main:
-	     0x0000000000401120 <+0>:     push   %rbp
-	     0x0000000000401121 <+1>:     mov    %rsp,%rbp
-	  ...
-	     0x0000000000401135 <+21>:    ret
-	  End of assembler dump.
-	  (gdb) disassemble foo
-	  Dump of assembler code for function foo:
-	     0x0000000000401110 <+0>:     push   %rbp
-	     0x0000000000401111 <+1>:     mov    %rsp,%rbp
-	  ...
-	     0x000000000040111f <+15>:    ret
-	  End of assembler dump.
-
-	Note, for foo we did not get a linkage name emitted in DWARF, so
-	it is printed by its name:
-
-	  >> objdump --dwarf=info ./a.out | grep foo -A3 -B3
-	      <2b>   DW_AT_low_pc      : 0x401110
-	      <33>   DW_AT_high_pc     : 0x10
-	      <37>   DW_AT_frame_base  : 1 byte block: 56         (DW_OP_reg6 (rbp))
-	      <39>   DW_AT_name        : (indirect string, offset: 0x37): foo
-	      <3d>   DW_AT_decl_file   : 1
-	      <3e>   DW_AT_decl_line   : 1
-	      <3f>   DW_AT_prototyped  : 1
-
-	To make the macro and proc work with C++ as well, an optional argument
-	list was added to the regex matching the function name in the
-	disassemble command in function_range.  This does not change any used
-	behavior as currently, there exists no C++ test using the proc
-	function_range.
-
-2022-08-31  Aaron Merey  <amerey@redhat.com>
-
-	gdb/elfread.c: Use bfd filename instead of objfile->original_name
-	The call to debuginfod_debuginfo_query in elf_symfile_read is given
-	objfile->original_name as the filename to print when downloading the
-	objfile's debuginfo.
-
-	In some cases original_name is prefixed with gdb's working directory
-	even though the objfile is not located in the working directory. This
-	causes debuginfod to display the wrong path of the objfile during a download.
-
-	Fix this by using the objfile's bfd filename instead.
-
-2022-08-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-30  Martin Storsjö  <martin@martin.st>
-
-	ld: pe: Fix linking against Microsoft import libraries with multiple DLLs
-	Initially, since c6c37250e98f113755e0d787f7070e2ac80ce77e (in 1999),
-	in order to fix linking against Microsoft import libraries, ld did
-	internally rename members of such libraries. At that point, the
-	criteria for being considered a Microsoft import library was that
-	every archive member had the same name (no regard for exactly what
-	that name was).
-
-	This was later amended in 44dbf3639f127af46d569ad96b6242dfbc4c0a89
-	(in 2003) to allow for Microsoft import libraries with intermixed
-	static object files. At this point, the criteria were extended, so
-	that all members following the first member named *.dll either had
-	the exact same member name, or be named *.obj. (Curiously, this would
-	allow members with any name if it precedes the first one named *.dll.)
-
-	In practice, Microsoft style import libraries can contain
-	members for linking against more than one DLL (built by merging
-	multiple regular import libraries into one).
-
-	Instead of trying to do validation of the whole archive before
-	considering it a Microsoft style import library, relax the criteria
-	for doing the member renaming: If an archive member is named *.dll
-	and it contains .idata sections, assume that that member is a
-	Microsoft import file, and apply the renaming scheme.
-
-	This works for imports for any number of DLLs in the same library,
-	intermixed with other static object files (regardless of their
-	names), and vastly simplifies the code.
-
-	LLVM generates Microsoft style import libraries, and Rust builds
-	seem to bundle up multiple import libraries together with some
-	Rust specific static objects. This fixes linking directly against
-	them with ld.bfd.
-
-2022-08-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: add wrapper around result_of and invoke_result
-	When building with Clang 14 (using gcc 12 libstdc++ headers), I get:
-
-	      CXX    dwarf2/read.o
-	    In file included from /home/simark/src/binutils-gdb/gdb/dwarf2/read.c:94:
-	    /home/simark/src/binutils-gdb/gdb/../gdbsupport/parallel-for.h:142:21: error: 'result_of<(lambda at /home/simark/src/binutils-gdb/gdb/dwarf2/read.c:7124:5) (__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter> *, std::__cxx1998::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>>, std::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter> *, std::__cxx1998::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>>, std::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>, std::random_access_iterator_tag>)>' is deprecated: use 'std::invoke_result' instead [-Werror,-Wdeprecated-declarations]
-	        = typename std::result_of<RangeFunction (RandomIt, RandomIt)>::type;
-	                        ^
-	    /home/simark/src/binutils-gdb/gdb/dwarf2/read.c:7122:14: note: in instantiation of function template specialization 'gdb::parallel_for_each<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter> *, std::__cxx1998::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>>, std::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>, std::random_access_iterator_tag>, (lambda at /home/simark/src/binutils-gdb/gdb/dwarf2/read.c:7124:5)>' requested here
-	          = gdb::parallel_for_each (1, per_bfd->all_comp_units.begin (),
-	                 ^
-	    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.1.1/../../../../include/c++/12.1.1/type_traits:2597:9: note: 'result_of<(lambda at /home/simark/src/binutils-gdb/gdb/dwarf2/read.c:7124:5) (__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter> *, std::__cxx1998::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>>, std::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter> *, std::__cxx1998::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>>, std::vector<std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>>, std::random_access_iterator_tag>)>' has been explicitly marked deprecated here
-	        { } _GLIBCXX17_DEPRECATED_SUGGEST("std::invoke_result");
-	            ^
-	    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.1.1/../../../../include/c++/12.1.1/x86_64-pc-linux-gnu/bits/c++config.h:120:45: note: expanded from macro '_GLIBCXX17_DEPRECATED_SUGGEST'
-	    # define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
-	                                                ^
-	    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.1.1/../../../../include/c++/12.1.1/x86_64-pc-linux-gnu/bits/c++config.h:96:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
-	      __attribute__ ((__deprecated__ ("use '" ALT "' instead")))
-	                      ^
-
-	It complains about the use of std::result_of, which is deprecated in
-	C++17 and removed in C++20:
-
-	  https://en.cppreference.com/w/cpp/types/result_of
-
-	Given we'll have to transition to std::invoke_result eventually, make a
-	GDB wrapper to mimimc std::invoke_result, which uses std::invoke_result
-	for C++ >= 17 and std::result_of otherwise.  This way, it will be easy
-	to remove the wrapper in the future, just replace gdb:: with std::.
-
-	Tested by building with gcc 12 in -std=c++11 and -std=c++17 mode, and
-	clang in -std=c++17 mode (I did not test fully with clang in -std=c++11
-	mode because there are other unrelated issues).
-
-	Change-Id: I50debde0a3307a7bc67fcf8fceefda51860efc1d
-
-2022-08-30  Tom Tromey  <tromey@adacore.com>
-
-	Fix flush for sys.stderr
-	GDB overwrites Python's sys.stdout and sys.stderr, but does not
-	properly implement the 'flush' method -- it only ever will flush
-	stdout.  This patch fixes the bug.  I couldn't find a straightforward
-	way to write a test for this.
-
-	Fix gdb.flush documentation
-	The gdb.flush documentation does not mention the 'stream' argument in
-	the function signature, only in the description.  This patch fixes the
-	oversight.
-
-2022-08-30  Nick Clifton  <nickc@redhat.com>
-
-	BFD library: Use entry 0 in directory and filename tables of DWARF-5 debug info.
-		PR 29529
-		* dwarf2.c (struct line_info_table): Add new field:
-		use_dir_and_file_0.
-		(concat_filename): Use new field to help select the correct table
-		slot.
-		(read_formatted_entries): Do not skip entry 0.
-		(decode_line_info): Set new field depending upon the version of
-		DWARF being parsed.  Initialise filename based upon the setting of
-		the new field.
-
-2022-08-30  Enze Li  <enze.li@hotmail.com>
-
-	gdb: update ranged_breakpoint::print_one_detail in comments
-	The print_one_detail_ranged_breakpoint has been renamed to
-	ranged_breakpoint::print_one_detail in this commit:
-
-	  commit ec45bb676c9c69c30783bcf35ffdac8280f3b8bc
-	  Date:   Sat Jan 15 16:34:51 2022 -0700
-
-	    Convert ranged breakpoints to vtable ops
-
-	So their comments should be updated as well.
-
-2022-08-30  Nick Clifton  <nickc@redhat.com>
-
-	Add a testcase for PR 29494.
-		PR 29494
-		* testsuite/gas/arm/pr29494.s: New test source file.
-		* testsuite/gas/arm/pr29494.d: New test driver.
-
-2022-08-30  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Fix redefinition of "PACKAGE".
-	  Running configure and make in binutils-gdb.
-
-	  $ ./configure
-	  $ make
-	In file included from ./as.h:37,
-	                 from ./config/loongarch-lex.l:21,
-	                 from config/loongarch-lex-wrapper.c:20:
-	./config.h:206: error: “PACKAGE” redefined [-Werror]
-	 #define PACKAGE "gas"
-	...
-
-	  gas/config
-	  *  loongarch-lex-wrapper.c
-
-2022-08-30  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add 'Zmmul' extension in assembler.
-	Three-part patch set from Tsukasa OI to support zmmul in assembler.
-
-	The 'Zmmul' is a RISC-V extension consisting of only multiply instructions
-	(a subset of 'M' which has multiply and divide instructions).
-
-	bfd/
-		* elfxx-riscv.c (riscv_implicit_subsets): Add 'Zmmul' implied by 'M'.
-		(riscv_supported_std_z_ext): Add 'Zmmul' extension.
-		(riscv_multi_subset_supports): Add handling for new instruction class.
-	gas/
-		* testsuite/gas/riscv/attribute-09.d: Updated implicit 'Zmmul' by 'M'.
-		* testsuite/gas/riscv/option-arch-02.d: Likewise.
-		* testsuite/gas/riscv/m-ext.s: New test.
-		* testsuite/gas/riscv/m-ext-32.d: New test (RV32).
-		* testsuite/gas/riscv/m-ext-64.d: New test (RV64).
-		* testsuite/gas/riscv/zmmul-32.d: New expected output.
-		* testsuite/gas/riscv/zmmul-64.d: Likewise.
-		* testsuite/gas/riscv/m-ext-fail-xlen-32.d: New test (failure
-		by using RV64-only instructions in RV32).
-		* testsuite/gas/riscv/m-ext-fail-xlen-32.l: Likewise.
-		* testsuite/gas/riscv/m-ext-fail-zmmul-32.d: New failure test
-		(RV32 + Zmmul but with no M).
-		* testsuite/gas/riscv/m-ext-fail-zmmul-32.l: Likewise.
-		* testsuite/gas/riscv/m-ext-fail-zmmul-64.d: New failure test
-		(RV64 + Zmmul but with no M).
-		* testsuite/gas/riscv/m-ext-fail-zmmul-64.l: Likewise.
-		* testsuite/gas/riscv/m-ext-fail-noarch-64.d: New failure test
-		(no Zmmul or M).
-		* testsuite/gas/riscv/m-ext-fail-noarch-64.l: Likewise.
-	include/
-		* opcode/riscv.h (enum riscv_insn_class): Added INSN_CLASS_ZMMUL.
-	ld/
-		* testsuite/ld-riscv-elf/attr-merge-arch-01.d: We don't care zmmul in
-		these testcases, so just replaced m by a.
-		* testsuite/ld-riscv-elf/attr-merge-arch-01a.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-01b.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-02a.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-03a.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-user-ext-01.d: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-user-ext-rv32i2p1_a2p0.s: Renamed.
-		* testsuite/ld-riscv-elf/attr-merge-user-ext-rv32i2p1_a2p1.s: Renamed.
-	opcodes/
-		* riscv-opc.c (riscv_opcodes): Updated multiply instructions to zmmul.
-
-2022-08-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix assert in set_length
-	When running the included test-case, we run into:
-	...
-	(gdb) break _start^M
-	read.h:309: internal-error: set_length: \
-	  Assertion `m_length == length' failed.^M
-	...
-
-	The problem is that while there are two CUs:
-	...
-	$ readelf -wi debug-names-missing-cu | grep @
-	  Compilation Unit @ offset 0x0:
-	  Compilation Unit @ offset 0x2d:
-	...
-	the CU table in the .debug_names section only contains the first one:
-	...
-	CU table:
-	[  0] 0x0
-	...
-
-	The incomplete CU table makes create_cus_from_debug_names_list set the size of
-	the CU at 0x0 to the actual size of both CUs combined.
-
-	This eventually leads to the assert, when we read the actual size from the CU
-	header.
-
-	While having an incomplete CU table in a .debug_names section is incorrect,
-	we need a better failure mode than asserting.
-
-	The easiest way to fix this is to set the length to 0 (meaning: unkown) in
-	create_cus_from_debug_names_list.
-
-	This makes the failure mode to accept the incomplete CU table, but to ignore
-	the missing CU.
-
-	It would be nice to instead reject the .debug_names index, and build a
-	complete CU list, but the point where we find this out is well after
-	dwarf2_initialize_objfile, so it looks rather intrusive to restart at that
-	point.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29453
-
-2022-08-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Declare score-*-* target obsolete
-	I tried out the script gdb/gdb_mbuild.sh, and ran into:
-	...
-	score-elf ...
-	... configure --target=score-elf
-	... make score-elf
-	... run score-elf
-	score-elf: gdb dumped core
-	Terminated
-	...
-
-	Gdb runs into this internal error in initialize_current_architecture:
-	...
-	  if (! gdbarch_update_p (info))
-	    internal_error (__FILE__, __LINE__,
-	                    _("initialize_current_architecture: Selection of "
-	                      "initial architecture failed"));
-	...
-
-	The call to gdbarch_update_p fails because commit 575b4c298a6 ("gdb: Remove
-	support for S+core") removed support for the architecture.
-
-	Fix this by adding score-*-* to the list of obsolete targets in
-	gdb/configure.tgt, such that we're no longer able to build the configuration:
-	...
-	*** Configuration score-unknown-elf is obsolete.
-	*** Support has been REMOVED.
-	make: *** [Makefile:12806: configure-gdb] Error 1
-	...
-
-	Also remove the related line from the "Target Instruction Set Architectures"
-	list in gdb/MAINTAINERS, such that gdb/gdb_mbuild.sh no longer tries to build
-	it.
-
-2022-08-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-28  Alan Modra  <amodra@gmail.com>
-
-	PR29494 Trailing jump table on ARM
-	out_inc_line_addr and relax_inc_line_addr are passed INT_MAX as
-	line_delta to flag end of section.  This filters its way down to
-	size_inc_line_addr and emit_inc_line_addr.  Pass line_delta on to
-	scale_addr_delta where it can be used to omit an unaligned opcode
-	error.
-
-		PR 29494
-		* dwarf2dbg.c (scale_addr_delta): Delete unnecessary forward decl.
-		Add line_delta param.  Don't print error at end of section, just
-		round the address down.
-		(size_inc_line_addr, emit_inc_line_addr): Adjust calls.
-
-2022-08-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-27  rupothar  <rupesh.potharla@amd.com>
-
-	bfd: Fix minor bug in read_indexed_address function.
-	read_indexed_address function is using offset_size instead of
-	addr_size while reading addrx forms.
-
-2022-08-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-26  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: fix gdb::optional compilation with C++11 && _GLIBCXX_DEBUG
-	Similar to 911438f9f4 ("gdbsupport: fix array-view compilation with
-	c++11 && _GLIBCXX_DEBUG"), but for gdb::optional.
-
-	I get this error when building with Clang 14 and -std=c++11:
-
-	      CXX      agent.o
-	    In file included from /home/simark/src/binutils-gdb/gdbsupport/agent.cc:20:
-	    In file included from /home/simark/src/binutils-gdb/gdbsupport/common-defs.h:210:
-	    In file included from /home/simark/src/binutils-gdb/gdbsupport/common-debug.h:23:
-	    /home/simark/src/binutils-gdb/gdbsupport/../gdbsupport/gdb_optional.h:213:5: error: use of this statement in a constexpr function is a C++14 extension [-Werror,-Wc++14-extensions]
-	        gdb_assert (this->has_value ());
-	        ^
-	    /home/simark/src/binutils-gdb/gdbsupport/gdb_assert.h:35:3: note: expanded from macro 'gdb_assert'
-	      ((void) ((expr) ? 0 :                                                       \
-	      ^
-
-	Change-Id: If0cf55607fc9dbd1925ccb97cd9abbf8993ff264
-
-2022-08-26  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: change bpstat_print's kind parameter to target_waitkind
-	Change from int to target_waitkind,  which is really what is is.  While
-	at it, remove some outdated doc.  The return value is described by a
-	relatively self-describing enum, not a numerical value like the doc
-	says.
-
-	Change-Id: Id899c853a857c7891c45e5b1639024067d5b59cd
-
-2022-08-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb, gdbsupport: configure: factor out yes/no/auto value checking
-	Factor out the code that checks that a value is yes/no or yes/no/auto.
-	Add two macros to gdbsupport/common.m4 and use them in gdb/configure.ac
-
-	I inspected the changes to configure.  Other than whitespace changes, we
-	have some benign changes to the error messages (one of them had an error
-	actually).  There are changes to the --enable-source-highlight and
-	--enable-libbacktrace handling, but setting enable_source_highlight /
-	enable_libbacktrace was not really useful anyway, they already had the
-	right value.
-
-	Change-Id: I92587aec36874309e1605e2d60244649f09a757a
-
-2022-08-26  Alan Modra  <amodra@gmail.com>
-
-	PR12265, Compiling ld/ fails on Solaris 8
-	The fail was due to -Werror and headers included by dlfcn.h and
-	elf-bfd.h disagreeing about AT_DCACHEBSIZE and other AT_*.  Not a
-	serious problem obviously, since release versions of binutils don't
-	enable -Werror and the defines are not used.  Anyway, reduce the
-	number of files that might hit this problem by only including dlfcn.h
-	where it is needed.
-
-		PR 12265
-		* sysdep.h: Don't include dlfcn.h here.
-		* plugin.c: Include it here.
-
-2022-08-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-25  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
-
-	Allow to document user-defined aliases.
-	Compared to the previous version, this version fixes the comments reported by
-	Tom Tromey and ensures that the 'help some-user-documented-alias'
-	shows the alias definition to ensure the user understands this is an
-	alias even if specifically documented.
-
-	When using 'help ALIASNAME', GDB shows the help of the aliased command.
-	This is a good default behaviour.
-
-	However, GDB alias command allows to define aliases with arguments
-	possibly changing or tuning significantly the behaviour of
-	the aliased command.  In such a case, showing the help of the aliased
-	command might not be ideal.
-
-	This is particularly true when defining an alias as a set of
-	nested 'with' followed by a last command to launch, such as:
-	  (gdb) alias pp10 = with print pretty -- with print elements 10 -- print
-	Asking 'help pp10' shows the help of the 'with' command, which is
-	not particularly useful:
-	  (gdb) help pp10
-	  with, pp10, w
-	    alias pp10 = with print pretty -- with print elements 10 -- print
-	  Temporarily set SETTING to VALUE, run COMMAND, and restore SETTING.
-	  Usage: with SETTING [VALUE] [-- COMMAND]
-	  ....
-
-	Such an alias can now be documented by the user:
-	  (gdb) document pp10
-	  >Pretty printing an expressiong, printing 10 elements.
-	  >Usage: pp10 [PRINT-COMMAND-OPTIONS] EXP
-	  >See 'help print' for more information.
-	  >end
-	  (gdb) help pp10
-	    alias pp10 = with print pretty -- with print elements 10 -- print
-	  Pretty printing an expressiong, printing 10 elements.
-	  Usage: pp10 [PRINT-COMMAND-OPTIONS] EXP
-	  See 'help print' for more information.
-	  (gdb)
-
-	When a user-defined alias is documented specifically, help and apropos
-	use the provided alias documentation instead of the documentation of
-	the aliased command.
-
-	Such a documented alias is also not shown anymore in the help of the
-	aliased command, and the alias is not listed anymore in the help
-	of the aliased command.  In particular for cases such as pp10 example above,
-	indicating that pp10 is an alias of the 'with' command is confusing.
-
-2022-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
-
-	sim/aarch64: Fix aarch64_get_CPSR_bits() declaration
-	Noticed while doing mass builds with a very recent GCC:
-
-	/usr/lib/gcc-snapshot/bin/gcc  -DHAVE_CONFIG_H   -DWITH_HW=1 -DHAVE_DV_SOCKSER -DDEFAULT_INLINE=0 -Wall -Wdeclaration-after-statement -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wno-error=maybe-uninitialized -Wmissing-declarations -Wmissing-prototypes -Wdeclaration-after-statement -Wmissing-parameter-type -Wpointer-sign -Wold-style-declaration -Werror  -I. -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64 -I../common -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../common -I../../include -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../include -I../../bfd -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../bfd -I../../opcodes -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../opcodes -I../..  -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../gnulib/import -I../../gnulib/import  -g -O2   -c -o cpustate.o -MT cpustate.o -MMD -MP -MF .deps/cpustate.Tpo cpustate.c
-	cpustate.c:270:1: error: conflicting types for 'aarch64_get_CPSR_bits' due to enum/integer mismatch; have 'uint32_t(sim_cpu *, FlagMask)' {aka 'unsigned int(struct _sim_cpu *, FlagMask)'} [-Werror=enum-int-mismatch]
-	  270 | aarch64_get_CPSR_bits (sim_cpu *cpu, FlagMask mask)
-	      | ^~~~~~~~~~~~~~~~~~~~~
-	In file included from sim-main.h:30,
-	                 from cpustate.c:28:
-	cpustate.h:310:20: note: previous declaration of 'aarch64_get_CPSR_bits' with type 'uint32_t(sim_cpu *, uint32_t)' {aka 'unsigned int(struct _sim_cpu *, unsigned int)'}
-	  310 | extern uint32_t    aarch64_get_CPSR_bits  (sim_cpu *, uint32_t);
-	      |                    ^~~~~~~~~~~~~~~~~~~~~
-	cc1: all warnings being treated as errors
-
-2022-08-25  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Ignore protected visibility in shared libraries on Solaris
-	On x86, the PLT entry in executable may be used as function address for
-	functions in shared libraries.  If functions are protected, the function
-	address used in executable can be different from the function address
-	used in shared library.  This will lead to incorrect run-time behavior
-	if function pointer equality is needed.  By default, x86 linker issues
-	an error in this case.
-
-	On Solaris, linker issued an error for
-
-	struct tm *tb = (kind == CPP_time_kind::FIXED ? gmtime : localtime) (&tt);
-
-	where gmtime is a protected function in libc.so.  Use gmtime's PLT entry
-	in executable as function address is safe since function pointer equality
-	isn't needed.  Ignore protected visibility in shared libraries on Solaris
-	to disable linker error.  If function pointer equality is needed, linker
-	will silently generate executable with incorrect run-time behavior on
-	Solaris.
-
-		PR ld/29512
-		* elf32-i386.c (elf_i386_scan_relocs): Ignore protected
-		visibility in shared libraries on Solaris.
-		* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.
-
-2022-08-25  Nick Clifton  <nickc@redhat.com>
-
-	GAS: Add a return type tag to DWARF DIEs generated for function symbols.
-		PR 29517
-		* dwarf2dbg.c (GAS_ABBREV_COMP_UNIT): New defined constant.
-		(GAS_ABBREV_SUBPROG): New defined constant.
-		(GAS_ABBREV_NO_TYPE): New defined constant.
-		(out_debug_abbrev): Use the new defined constants when emitting
-		abbreviation numbers.  Generate an abbreviation for an unspecified
-		type.
-		(out_debug_info): Use the new defined constants when referring to
-		abbreviations.  Generate a use of the no_type abbreviation.
-		Reference the use when generating DIEs for functions.
-		* testsuite/gas/elf/dwarf-3-func.d: Update to allow for newly
-		extended output from the assembler.
-		* testsuite/gas/elf/dwarf-5-func-global.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-func-local.d: Likewise.
-		* testsuite/gas/elf/dwarf-5-func.d: Likewise.
-
-	GAS: Allow AArch64 pseudo-ops to accept the command line separator character.
-		PR 29519
-		* config/tc-aarch64.c (s_unreq): Use find_end_of_line().
-		(s_aarch64_cpu): Likewise.
-		(s_aarch64_arch): Likewise.
-		(s_aarch64_arch_extension): Likewise.
-		* testsuite/gas/aarch64/pr29519.d: New test driver file.
-		* testsuite/gas/aarch64/pr29519.s: New test source file.
-
-2022-08-25  Palmer Dabbelt  <palmer@rivosinc.com>
-
-	gas: NEWS: Add the RISC-V features for 2.39
-
-	gas: NEWS: Add the RISC-V features for 2.38
-
-	gas: NEWS: Add the RISC-V features for 2.37
-
-	gas: NEWS: Add the RISC-V features for 2.36
-
-	gas: NEWS: Add the RISC-V features for 2.35
-
-	gas: NEWS: Add the RISC-V features for 2.31
-
-2022-08-25  Alan Modra  <amodra@gmail.com>
-
-	PR11290, avr-ld "out of range error" is confusing
-	Don't overload bfd_reloc_outofrange with what is really a domain error
-	(target at odd address), or an overflow.
-
-		PR 11290
-		* reloc.c (bfd_reloc_other): Correct comment.
-		* elf32-avr.c (avr_final_link_relocate): Return bfd_reloc_other
-		for unaligned reloc target values.  Return bfd_reloc_overflow
-		when stubs are too far away and when R_AVR_LDS_STS_16,
-		R_AVR_PORT6, or R_AVR_PORT5 overflow.
-		(elf32_avr_relocate_section): Report more descriptive relocation
-		errors.
-		* bfd-in2.h: Regenerate.
-
-2022-08-25  Martin Storsjö  <martin@martin.st>
-
-	ld: pe: Move the return type to a separate line from the function name
-	This fixes the coding style of an old, preexisting function.
-
-2022-08-25  Alan Modra  <amodra@gmail.com>
-
-	PR10372, SH: ld test with sim/sh/run fails always
-		PR 10372
-		* testsuite/ld-sh/start.s: Add _start sym.  Use trapa 34.  Create
-		an alloc .stack section.
-
-2022-08-25  Alan Modra  <amodra@gmail.com>
-
-	Re: LoongArch: ld: Fix bug not generate plt when link a dso
-	Fixes loongarch32-elf  +FAIL: medium jirl plt
-
-		* testsuite/ld-loongarch-elf/cmodel.exp: Don't run test when
-		no shared library support.
-
-2022-08-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-24  Martin Storsjö  <martin@martin.st>
-
-	ld: pe: Make archive member file extension comparisons case insensitive when cross compiling too
-	On Windows, filename_cmp is case insensitive, but when cross compiling
-	with libraries that may contain members with uppercase file names, we
-	should keep those comparisons case insensitive when running the build
-	tools on other OSes too.
-
-	Also make the check for .def consistent with the other ones, fixing
-	out of bounds reads if file names are shorter than 4 characters.
-
-2022-08-24  Richard Earnshaw  <rearnsha@arm.com>
-
-	gas: arm: handle multiple .directives on a single line (PR29519)
-	There's been a long-standing bug in the arm backend where
-	target-specific directives did not correctly handle lines with
-	multiple statements.  This patch fixes the issue for all the cases
-	I've been able to find.
-
-	It does result in a slight change in behaviour when errors are
-	encountered: where, previously,
-
-	  .cpu arm6 bar
-
-	would result in the error "junk at end of line, first unrecognized
-	character is `b'", we now get "unknown cpu `arm6 bar'", which I think
-	is slightly more helpful anyway.  Similar errors are generated for
-	other directives.
-
-2022-08-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: new 'maint print frame-id' command
-	When debugging a certain class of GDB bug, I often end up wanting to
-	know what GDB thinks the frame-id is in a particular frame.  It's
-	not too hard to pull this from some debug output, but I thought it
-	might be nice if there was a maintenance command that could tell us.
-
-	This commit adds 'maint print frame-id' which prints the frame-id of
-	the currently selected frame.  You can also pass a frame level number
-	to find the frame-id for a specific frame.
-
-	There's a new test too.
-
-2022-08-24  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: ld: Fix bug not generate plt when link a dso
-	  Fix the bug that can not generate func@plt
-	  when linking a undefined function with cmodel=medium.
-	  Add testcase.
-
-	  bfd/
-	    * elfnn-loongarch.c
-	  ld/testsuite/ld-loongarch-elf/
-	    * cmodel-libjirl.dd
-	    * cmodel.exp
-	    * libjirl.s
-
-2022-08-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-23  Alan Modra  <amodra@gmail.com>
-
-	SHT_RELR sh_link and sh_info
-	I don't think it makes any sense for a SHT_RELR section to specify a
-	symbol table with sh_link.  SHT_RELR relocations don't use symbols.
-	There is no real need to specify sh_info either, SHT_RELR is not for
-	relocatable object files.  Anyway, fuzzers of course don't restrict
-	themselves to even half-sensible objects.  So they found a hole in
-	objcopy using a non-alloc SHT_RELR in an ET_EXEC.  In that case BFD
-	set up the SHT_RELR section as if it were a SHT_REL against the
-	sh_info target section.  When it came to reading in the target section
-	relocs, the count was horribly wrong which caused a buffer overflow.
-
-		* elf.c (bfd_section_from_shdr <SHT_RELR>): Always just make a
-		normal section, don't treat it as a reloc section.
-
-2022-08-23  Alan Modra  <amodra@gmail.com>
-
-	Re: bfd_elf_set_group_contents assertion
-	Further to commit 7744e3278b9f.
-
-		* elf.c (bfd_elf_set_group_contents): Restrict loc in loop writing
-		contents, and add another assertion.
-
-2022-08-23  Nick Clifton  <nickc@redhat.com>
-
-	Add an option to dlltool to allow the creation of deterministic libraries.
-		PR 29489
-		* dlltool.c (deterministic): New variable.
-		(gen_lib_file): If deterministic is true set the
-		BFD_DETERMINISTIC_OUTPUT flag.
-		(usage): Mention --deterministic-libraries and
-		--non-deterministic-libraries.
-		(long_options): Add new options.
-		(main): Parse new options.
-		* doc/binutils.texi: Document the new options.
-		* NEWS: Mention the new feature.
-
-2022-08-23  Nelson Chu  <nelson@rivosinc.com>
-
-	binutils: Updated my email address.
-	binutils/
-	    * MAINTAINERS (RISC-V): Updated my email address.
-
-2022-08-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-22  Tom Tromey  <tromey@adacore.com>
-
-	Implement target async for Windows
-	This implements target async for Windows.  The basic idea is to have
-	the worker thread block in WaitForDebugEvent, then notify the event
-	loop when an event is seen.  In a few situations, this blocking
-	behavior is undesirable, so the functions passed to do_synchronously
-	are changed to return a boolean indicating which behavior is needed.
-
-2022-08-22  Tom Tromey  <tromey@adacore.com>
-
-	Move some Windows operations to worker thread
-	On Windows, certain debugging APIs can only be called from the thread
-	that started (or attached) to the inferior.  Also, there is no way on
-	Windows to wait for a debug event in addition to other events.
-	Therefore, in order to implement target async for Windows, gdb will
-	have to call some functions in a worker thread.
-
-	This patch implements the worker thread and moves the necessary
-	operations there.  Target async isn't yet implemented, so this patch
-	does not cause any visible changes.
-
-2022-08-22  Tom Tromey  <tromey@adacore.com>
-
-	Avoid crash with Ravenscar tasks
-	When using Ravenscar, gdb can crash if the user sets a breakpoint very
-	early in task startup.  This happens because gdb thinks the runtime is
-	initialized, but in practice the particular task isn't sufficiently
-	initialized.  This patch avoids the issue by turning an assertion into
-	an early return.
-
-	I tested this using the AdaCore internal test suite.  I don't know how
-	to test Ravenscar using the FSF test suite.
-
-2022-08-22  Nick Clifton  <nickc@redhat.com>
-
-	Fix compile time warning from Clang about error messages not being printed safely.
-
-	Have readelf warn users if it is asked to decode a LLVM bitcode file or a golang object file.
-		* readelf.c (check_magic_number): New function.  Checks the magic
-		bytes at the start of a file.  If they are not the ELF format
-		magic values, then attempts to generate a helpful error message.
-		(process_file_header): Call check_magic_number.
-
-2022-08-22  Frederic Cambus  <fred@statdns.com>
-
-	Add OpenBSD AArch64 Little Endian BFD support.
-		* config.bfd (aarch64-*-openbsd*): Add target.
-
-2022-08-22  tangxiaolin  <tangxiaolin@loongson.cn>
-
-	LoongArch: gas: add support using constant variable in instructions.
-	        Instructions that can load immediate support using constant
-	        variable like ".equ var, 123    li.w/d resgister, var".
-
-	gas/
-	        * config/loongarch-parse.y
-	        * config/tc-loongarch.c
-
-	        Add four testcases.One is a program using constant variable,
-	        one test using label is unsupported, and another two test
-	        almost instructions that can load immediate.
-
-	gas/
-	        * testsuite/gas/loongarch/li.d
-	        * testsuite/gas/loongarch/li.s
-	        * testsuite/gas/loongarch/imm_ins_label-fail.d
-	        * testsuite/gas/loongarch/imm_ins_label-fail.l
-	        * testsuite/gas/loongarch/imm_ins_label-fail.s
-	        * testsuite/gas/loongarch/imm_ins.d
-	        * testsuite/gas/loongarch/imm_ins.s
-	        * testsuite/gas/loongarch/imm_ins_32.d
-	        * testsuite/gas/loongarch/imm_ins_32.s
-
-2022-08-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-21  Tom Tromey  <tom@tromey.com>
-
-	Fix crash in gdbpy_parse_register_id
-	I noticed that gdbpy_parse_register_id would assert if passed a Python
-	object of a type it was not expecting.  The included test case shows
-	this crash.  This patch fixes the problem and also changes
-	gdbpy_parse_register_id to be more "Python-like" -- it always ensures
-	the Python error is set when it fails, and the callers now simply
-	propagate the existing exception.
-
-2022-08-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-20  Alan Modra  <amodra@gmail.com>
-
-	symbols for bfd_simple_get_relocated_section_contents
-	If symbols are provided by the caller of this function they are
-	passed on to bfd_get_relocated_section_contents.  No surprises there.
-	It gets a little weird if they are not provided.  In that case they
-	are read from the bfd by _bfd_generic_link_add_symbols, and global
-	symbols are added to the generic linker hash table.  Global symbols
-	are not added to the linker hash table if symbols *are* provided.  Now
-	the linker hash table symbols are not used by the generic
-	bfd_get_relocated_section_conents, and also not by most target
-	versions when called from bfd_simple_get_relocated_section_contents
-	except for symbols like "_gp".  So it mostly doesn't matter whether
-	symbols are in the linker hash table, but it's odd that there is a
-	difference.  We could always add them, but I'm inclined to think that
-	is unnecessary work so this patch always leaves them out.
-
-	Also, symbols are canonicalized and written into a malloc'd buffer.
-	The buffer isn't freed, see commit 8e16317ca5eb.  I don't know whether
-	that matters any more, but in any case I can't see why we need another
-	copy of the symbols when _bfd_generic_link_read_symbols has already
-	cached symbols.
-
-		* simple.c (bfd_simple_get_relocated_section_contents): If not
-		provided, read symbols via bfd_generic_link_read_symbols.  Do
-		not create another copy of symbols.  Tidy failure exits.
-		Minor tidy of bfd_get_relocated_section_contents and
-		bfd_get_full_section_contents arguments.
-
-2022-08-20  Alan Modra  <amodra@gmail.com>
-
-	Re: Missing linking test case for pe dll using a def file
-	Fixes this when cross-compiling from x86_64-linux
-	x86_64-w64-mingw32  +FAIL: compiling shared lib fastcall/stdcall
-
-		* testsuite/ld-pe/pe-run2-def.exp (test_direct2_link_dll_def):
-		Use CC_FOR_TARGET and CFLAGS_FOR_TARGET rather than CC and CFLAGS.
-
-2022-08-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-19  Patrick Monnerat  <patrick@monnerat.net>
-
-	gdb_do_one_event: use integer test syntax
-	Timeout is an int, not a bool.
-
-2022-08-19  Tom Tromey  <tom@tromey.com>
-
-	Remove two initialization functions
-	I noticed a couple of initialization functions that aren't really
-	needed, and that currently require explicit calls in gdb_init.  This
-	patch removes these functions, simplifying gdb a little.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-08-19  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: re-compile entry-value-typedef .S files with -fPIE
-	As Luis pointed out here [1], the AArch64 variant of the test doesn't
-	work on systems that use PIE by default.  For example, on this Debian
-	11:
-
-	    $ make check TESTS="gdb.dwarf2/entry-value-typedef.exp"
-	    gdb compile failed, /usr/bin/ld: /tmp/ccJE8ZSr.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZNSsD1Ev@@GLIBCXX_3.4' which may bind externally can not be used when making a shared object; recompile with -fPIC
-	    /usr/bin/ld: /tmp/ccJE8ZSr.o(.text+0x38): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `_ZNSsD1Ev@@GLIBCXX_3.4'
-
-	This is because entry-value-typedef-aarch64.S was generated on an old
-	system that does not generate position-independent code by default, but
-	the system the test runs on tries to link the test executable as
-	position-independent.  Fix this by regenerating the same binary on the
-	same system as the original one, but with -fPIE this time.  Do the same
-	for the amd64 binary, although this one was already position-independent
-	so the generated code doesn't change.
-
-	With this patch applied, the test passes on the Debian 11 AArch64
-	system.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-August/191462.html
-
-	Change-Id: I68d55adaa56a7a3eddb0c13980b1a98b791f8144
-
-2022-08-19  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, testsuite: Adapt gdb.base/callfuncs.exp for new clang warning.
-	Clang 15.0.0 enabled the warning for deprecated non-prototype functions
-	by default: https://reviews.llvm.org/D122895
-	Callfuncs.exp is impacted and won't run due to new warnings:
-
-	callfuncs.c:339:5: warning: a function declaration without a prototype is
-	deprecated in all versions of C and is not supported in C2x
-	[-Wdeprecated-non-prototype]
-	int t_float_values (float_arg1, float_arg2)
-
-	This patch disables those warnings with -Wno-deprecated-non-prototype.
-	Removing the test for deprecated syntax would also be an option. But I will
-	leave that up for others to decide/implement.
-
-2022-08-19  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, testsuite: Enable testcases that suppress specific warnings, for icc/icx.
-	To cite gdb.exp:
-	Some C/C++ testcases unconditionally pass -Wno-foo as additional
-	options to disable some warning.  That is OK with GCC, because
-	by design, GCC accepts any -Wno-foo option, even if it doesn't
-	support -Wfoo.  Clang however warns about unknown -Wno-foo by
-	default, unless you pass -Wno-unknown-warning-option as well.
-	We do that here, so that individual testcases don't have to
-	worry about it.
-
-	This patch adds the same option that already exists for clang for icx and
-	adds the equivalent icc option.
-
-2022-08-19  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Handle variadic arguments
-	According to LoongArch ELF ABI specification [1], variadic arguments
-	are passed in GARs in the same manner as named arguments. And after
-	a variadic argument has been passed on the stack, all future arguments
-	will also be passed on the stack, i.e., the last argument register may
-	be left unused due to the aligned register pair rule. long double data
-	tpye is passed in an aligned GAR pair, the first register in the pair
-	is even-numbered.
-
-	[1] https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html
-
-2022-08-19  Alan Modra  <amodra@gmail.com>
-
-	loongarch64_pei_vec garbage in objcopy'd relocs
-	Like commit a9c09a3667cc, but for loongarch64.
-
-		* coff-loongarch64.c (SWAP_IN_RELOC_OFFSET): Define.
-		(SWAP_OUT_RELOC_OFFSET): Define.
-
-2022-08-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-18  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix bug 29479 Collection fails when built without java support
-	gprofng/ChangeLog
-	2022-08-17  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29479
-		* libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
-		java specific code.
-		* libcollector/unwind.c: Likewise.
-
-2022-08-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: call check_typedef at beginning of dwarf_expr_context::fetch_result
-	Bug 29374 shows this crash:
-
-	    $ ./gdb -nx --data-directory=data-directory -q -batch -ex "catch throw" -ex r -ex bt a.out
-	    ...
-	    /home/simark/src/binutils-gdb/gdb/../gdbsupport/array-view.h:217: internal-error: copy: Assertion `dest.size () == src.size ()' failed.
-
-	The backtrace is:
-
-	    #0  internal_error (file=0x5555606504c0 "/home/simark/src/binutils-gdb/gdb/../gdbsupport/array-view.h", line=217, fmt=0x55556064b700 "%s: Assertion `%s' failed.") at /home/simark/src/binutils-gdb/gdbsupport/errors.cc:51
-	    #1  0x000055555d41c0bb in gdb::copy<unsigned char const, unsigned char> (src=..., dest=...) at /home/simark/src/binutils-gdb/gdb/../gdbsupport/array-view.h:217
-	    #2  0x000055555deef28c in dwarf_expr_context::fetch_result (this=0x7fffffffb830, type=0x621007a86830, subobj_type=0x621007a86830, subobj_offset=0, as_lval=false) at /home/simark/src/binutils-gdb/gdb/dwarf2/expr.c:1040
-	    #3  0x000055555def0015 in dwarf_expr_context::evaluate (this=0x7fffffffb830, addr=0x62f00004313e "0", len=1, as_lval=false, per_cu=0x60b000069550, frame=0x621007c9e910, addr_info=0x0, type=0x621007a86830, subobj_type=0x621007a86830, subobj_offset=0) at /home/simark/src/binutils-gdb/gdb/dwarf2/expr.c:1091
-	    #4  0x000055555e084327 in dwarf2_evaluate_loc_desc_full (type=0x621007a86830, frame=0x621007c9e910, data=0x62f00004313e "0", size=1, per_cu=0x60b000069550, per_objfile=0x613000006080, subobj_type=0x621007a86830, subobj_byte_offset=0, as_lval=false) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:1485
-	    #5  0x000055555e0849e2 in dwarf2_evaluate_loc_desc (type=0x621007a86830, frame=0x621007c9e910, data=0x62f00004313e "0", size=1, per_cu=0x60b000069550, per_objfile=0x613000006080, as_lval=false) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:1529
-	    #6  0x000055555e0828c6 in dwarf_entry_parameter_to_value (parameter=0x621007a96e58, deref_size=0x0, type=0x621007a86830, caller_frame=0x621007c9e910, per_cu=0x60b000069550, per_objfile=0x613000006080) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:1235
-	    #7  0x000055555e082f55 in value_of_dwarf_reg_entry (type=0x621007a86890, frame=0x621007acc510, kind=CALL_SITE_PARAMETER_DWARF_REG, kind_u=...) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:1332
-	    #8  0x000055555e083449 in value_of_dwarf_block_entry (type=0x621007a86890, frame=0x621007acc510, block=0x61e000033568 "T\004\205\001\240\004\004\243\001T\237\004\240\004\261\004\001T\004\261\004\304\005\004\243\001T\237\004\304\005\310\005\001T\004\310\005\311\005\004\243\001T\237", block_len=1) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:1365
-	    #9  0x000055555e094d40 in loclist_read_variable_at_entry (symbol=0x621007a99bd0, frame=0x621007acc510) at /home/simark/src/binutils-gdb/gdb/dwarf2/loc.c:3889
-	    #10 0x000055555f5192e0 in read_frame_arg (fp_opts=..., sym=0x621007a99bd0, frame=0x621007acc510, argp=0x7fffffffbf20, entryargp=0x7fffffffbf60) at /home/simark/src/binutils-gdb/gdb/stack.c:559
-	    #11 0x000055555f51c352 in print_frame_args (fp_opts=..., func=0x621007a99ad0, frame=0x621007acc510, num=-1, stream=0x6030000bad90) at /home/simark/src/binutils-gdb/gdb/stack.c:887
-	    #12 0x000055555f521919 in print_frame (fp_opts=..., frame=0x621007acc510, print_level=1, print_what=LOCATION, print_args=1, sal=...) at /home/simark/src/binutils-gdb/gdb/stack.c:1390
-	    #13 0x000055555f51f22e in print_frame_info (fp_opts=..., frame=0x621007acc510, print_level=1, print_what=LOCATION, print_args=1, set_current_sal=0) at /home/simark/src/binutils-gdb/gdb/stack.c:1116
-	    #14 0x000055555f526c6d in backtrace_command_1 (fp_opts=..., bt_opts=..., count_exp=0x0, from_tty=0) at /home/simark/src/binutils-gdb/gdb/stack.c:2079
-	    #15 0x000055555f527ae5 in backtrace_command (arg=0x0, from_tty=0) at /home/simark/src/binutils-gdb/gdb/stack.c:2198
-
-	The problem is that the type that gets passed down to
-	dwarf_expr_context::fetch_result (the type of a variable of which we're
-	trying to read the entry value) is a typedef whose size has never been
-	computed yet (check_typedef has never been called on it).  As we get in
-	the DWARF_VALUE_STACK case (line 1028 of dwarf2/expr.c), the `len`
-	variable is therefore set to 0, instead of the actual type length.  We
-	then call allocate_value on subobj_type, which does call check_typedef,
-	so the length of the typedef gets filled in at that point.  We end up
-	passing to the copy function a source array view of length 0 and a
-	target array view of length 4, and the assertion fails.
-
-	Fix this by calling check_typedef on both type and subobj_type at the
-	beginning of fetch_result.
-
-	I tried writing a test for this using the DWARF assembler, but I haven't
-	succeeded.  It's possible that we need to get into this specific code
-	path (value_of_dwarf_reg_entry and all) to manage to get to
-	dwarf_expr_context::fetch_result with a typedef type that has never been
-	resolved.  In all my attempts, the typedef would always be resolved
-	already, so the bug wouldn't show up.
-
-	As a fallback, I made a gdb.dwarf2 test with compiler-generated .S
-	files.  I don't particularly like those, but I think it's better than no
-	test.  The .cpp source code is the smallest reproducer I am able to make
-	from the reproducer given in the bug (thanks to Pedro for suggestions on
-	how to minimize it further than I had).  Since I tested on both amd64
-	and aarch64, I added versions of the test for these two architectures.
-
-	Change-Id: I182733ad08e34df40d8bcc47af72c482fabf4900
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29374
-
-2022-08-18  Luis Machado  <luis.machado@arm.com>
-
-	[aarch64] Remove handling of ADR/ADRP from prologue analyzer
-	As reported by Tom in https://sourceware.org/pipermail/gdb-patches/2022-August/191357.html,
-	the aarch64 prologue analyzer considers the adrp instruction in the
-	gdb.dwarf2/dw2-dir-file-name.exp testcase to be part of a prologue.
-
-	The function has no prologue though, and it only loads the volatile variable
-	from memory.  GDB should not skip any instructions in this case.
-
-	Doing some archaeology, it seems handling for adr/adrp in prologues was
-	included with the original aarch64 port.  It might've been an oversight.
-
-	In the particular case of gdb.dwarf2/dw2-dir-file-name.exp, the analyzer skips
-	a couple instructions and leaves us in a nice spot where the address to the
-	variable "v" is already in w0. But no prologues exists.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29481
-
-2022-08-18  Tom Tromey  <tom@tromey.com>
-
-	Change bookmark allocation
-	This changes how bookmarks are allocated and stored, replacing a
-	linked list with a vector and removing some ALL_* iterator macros.
-	Regression tested on x86-64 Fedora 34.
-
-2022-08-18  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	Add test for AArch64 Scalable Vector Extension
-	It exercises a bug that GDB previously had where it would lose track of
-	some registers when the inferior changed its vector length.
-
-	It also checks that the vg register and the size of the z0-z31 registers
-	correctly reflect the new vector length.
-
-2022-08-18  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
-
-	Fix thread's gdbarch when SVE vector length changes
-	When the inferior program changes the SVE length, GDB can stop tracking
-	some registers as it obtains the new gdbarch that corresponds to the
-	updated length:
-
-	  Breakpoint 1, do_sve_ioctl_test () at sve-ioctls.c:44
-	  44              res = prctl(PR_SVE_SET_VL, i, 0, 0, 0, 0);
-	  (gdb) print i
-	  $2 = 32
-	  (gdb) info registers
-	          ⋮
-	  [ snip registers x0 to x30 ]
-	          ⋮
-	  sp             0xffffffffeff0      0xffffffffeff0
-	  pc             0xaaaaaaaaa8ac      0xaaaaaaaaa8ac <do_sve_ioctl_test+112>
-	  cpsr           0x60000000          [ EL=0 BTYPE=0 C Z ]
-	  fpsr           0x0                 0
-	  fpcr           0x0                 0
-	  vg             0x8                 8
-	  tpidr          0xfffff7fcb320      0xfffff7fcb320
-	  (gdb) next
-	  45              if (res < 0) {
-	  (gdb) info registers
-	          ⋮
-	  [ snip registers x0 to x30 ]
-	          ⋮
-	  sp             0xffffffffeff0      0xffffffffeff0
-	  pc             0xaaaaaaaaa8cc      0xaaaaaaaaa8cc <do_sve_ioctl_test+144>
-	  cpsr           0x200000            [ EL=0 BTYPE=0 SS ]
-	  fpsr           0x0                 0
-	  fpcr           0x0                 0
-	  vg             0x4                 4
-	  (gdb)
-
-	Notice that register tpidr disappeared when vg (which holds the vector
-	length) changed from 8 to 4.  The tpidr register is provided by the
-	org.gnu.gdb.aarch64.tls feature.
-
-	This happens because the code that searches for a new gdbarch to match the
-	new vector length in aarch64_linux_nat_target::thread_architecture doesn't
-	take into account the features present in the target description associated
-	with the previous gdbarch.  This patch makes it do that.
-
-	Since the id member of struct gdbarch_info is now unused, it's removed.
-
-2022-08-18  Ralf Habacker  <ralf.habacker@freenet.de>
-
-	Missing linking test case for pe dll using a def file.
-		PR 28362
-		* testsuite/ld-pe/pe-run2-def.exp: New file.
-
-2022-08-18  Patrick Monnerat  <patrick@monnerat.net>
-
-	gdbsupport/event-loop: add a timeout parameter to gdb_do_one_event
-	Since commit b2d8657, having a per-interpreter event/command loop is not
-	possible anymore.
-
-	As Insight uses a GUI that has its own event loop, gdb and GUI event
-	loops have then to be "merged" (i.e.: work together). But this is
-	problematic as gdb_do_one_event is not aware of this alternate event
-	loop and thus may wait forever.
-
-	A solution is to delegate GUI events handling to the gdb events handler.
-	Insight uses Tck/Tk as GUI and the latter offers a "notifier" feature to
-	implement such a delegation. The Tcl notifier spec requires the event wait
-	function to support a timeout parameter. Unfortunately gdb_do_one_event
-	does not feature such a parameter.
-	This timeout cannot be implemented externally with a gdb timer, because
-	it would become an event by itself and thus can cause a legitimate event to
-	be missed if the timeout is 0.
-	Tcl implements "idle events" that are (internally) triggered only when no
-	other event is pending. For this reason, it can call the event wait function
-	with a 0 timeout quite often.
-
-	This patch implements a wait timeout to gdb_do_one_event. The initial
-	pending events monitoring is performed as before without the possibility
-	to enter a wait state. If no pending event has been found during this
-	phase, a timer is then created for the given timeout in order to re-use
-	the implemented timeout logic and the event wait is then performed.
-	This "internal" timer only limits the wait time and should never be triggered.
-	It is deleted upon gdb_do_one_event exit.
-
-	The new parameter defaults to "no timeout" (-1): as it is used by Insight
-	only, there is no need to update calls from the gdb source tree.
-
-2022-08-18  Patrick Monnerat  <patrick@monnerat.net>
-
-	gdb: add Patrick Monnerat to gdb/MAINTAINERS
-
-2022-08-18  Jan Beulich  <jbeulich@suse.com>
-
-	x86: move / quiesce pre-386 non-16-bit warning
-	Emitting this warning for every insn, including ones having actual
-	errors, is annoying. Introduce a boolean variable to emit the warning
-	just once on the first insn after .arch may have changed the things, and
-	move the warning to output_insn(). (I didn't want to go as far as
-	checking whether the .arch actually turned off the i386 bit, but doing
-	so would be an option.)
-
-	x86: insert "no error" enumerator in i386_error enumeration
-	The value of zero would better not indicate any error, but rather hit
-	the abort() at the top of the consuming switch().
-
-2022-08-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-17  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/testsuite: Fix PARAM_ZUINTEGER reported for PARAM_ZUINTEGER_UNLIMITED
-	Correctly report PARAM_ZUINTEGER_UNLIMITED rather than PARAM_ZUINTEGER
-	in testing a Python parameter of the PARAM_ZUINTEGER_UNLIMITED type.
-
-2022-08-17  Alan Modra  <amodra@gmail.com>
-
-	bfd_elf_set_group_contents assertion
-	objcopy of broken SHT_GROUP sections shouldn't write garbage.
-
-		* elf.c (bfd_elf_set_group_contents): If number of entries is
-		unexpected, fill out section with zeros.
-
-2022-08-17  Alan Modra  <amodra@gmail.com>
-
-	timeout in mmo_get_symbols
-	Fix mmo_get_byte to return a fail-safe value, not just on the first
-	call with a read error but on subsequent calls too.
-
-		* mmo.c (mmo_get_byte): Return the fail-safe value on every
-		call after a read error.
-
-2022-08-17  Alan Modra  <amodra@gmail.com>
-
-	mmo.c leak in mmo_make_section
-		* mmo.c (mmo_make_section): Alloc name using bfd_alloc.  Use
-		bfd_error_no_memory.
-		(mmo_decide_section): Check for NULL return from mmo_make_section.
-
-2022-08-17  Alan Modra  <amodra@gmail.com>
-
-	asan: heap buffer overflow in mmo_scan
-	mmo_get_loc needs to handle arbitrary vma and size chunks.  Fuzzers
-	found that it wasn't working so well when the end of chunks were
-	getting close to address wrap-around.
-
-		* mmo.c (mmo_get_loc): Make "size" unsigned.  Avoid arithmetic
-		overflow when calculating whether range hits an existing chunk.
-
-2022-08-17  Alan Modra  <amodra@gmail.com>
-
-	elf.c tidy
-	Swap params of is_note, so they are section, segment like others used
-	in rewrite_elf_program_header.  Whitespace fixes, plus wrapping of
-	overlong lines.
-
-2022-08-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	bfd: Define ___lc_codepage_func prototype for older MinGW-w64
-	In commit 68e80d96a84282d547f3b3c1234c99009521630c, the usage of
-	___lc_codepage_func was introduced to determine the current encoding.
-
-	Prior to version 9.0 of MinGW-w64, the function prototype for
-	___lc_codepage_func was missing and trying to build BFD caused the
-	following error:
-
-	error: implicit declaration of function ‘___lc_codepage_func’
-
-	This changeset adds a conditonal definition of
-	___lc_codepage_func to allow a sucessful build with MinGW-w64.
-
-2022-08-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Add MAX_OPERAND_BUFFER_SIZE
-	When displaying operands, invalid opcodes may overflow operand buffer
-	due to additional styling characters.  Each style is encoded with 3
-	bytes.  Define MAX_OPERAND_BUFFER_SIZE for operand buffer size and
-	increase it from 100 bytes to 128 bytes to accommodate 9 sets of styles
-	in an operand.
-
-	gas/
-
-		PR binutils/29483
-		* testsuite/gas/i386/i386.exp: Run pr29483.
-		* testsuite/gas/i386/pr29483.d: New file.
-		* testsuite/gas/i386/pr29483.s: Likewise.
-
-	opcodes/
-
-		PR binutils/29483
-		* i386-dis.c (MAX_OPERAND_BUFFER_SIZE): New.
-		(obuf): Replace 100 with MAX_OPERAND_BUFFER_SIZE.
-		(staging_area): Likewise.
-		(op_out): Likewise.
-
-2022-08-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: fix gdb.arch/riscv-unwind-long-insn.exp on RV64
-	I noticed that the gdb.arch/riscv-unwind-long-insn.exp test was
-	failing when run on a 64-bit RISC-V target.
-
-	The problem was that GDB was failing to stop after a finish command,
-	and was then running to an unexpected location.
-
-	The reason GDB failed to stop at the finish breakpoint was that the
-	frame-id of the inferior, when we reached the finish breakpoint,
-	didn't match the expected frame-id that was stored on the breakpoint.
-
-	The reason for this mismatch was that the assembler code that is
-	included in this test, was written only taking 32-bit RISC-V into
-	account, as a result, the $fp register was being corrupted, and this
-	was causing the frame-id mismatch.
-
-	Specifically, the $fp register would end up being sign-extended from
-	32 to 64 bits.  If the expected $fp value has some significant bits
-	above bit 31 then the computed and expected frame-ids would not match.
-
-	To fix this I propose merging the two .s files into a single .S file,
-	and making use of preprocessor macros to specialise the file for the
-	correct size of $fp.  There are plenty of existing tests that already
-	make use of preprocessor macros in assembler files, so I assume this
-	approach is fine.
-
-	Once I'd decided to make use of preprocessor macros to solve the 32/64
-	bit issue, then I figured I might as well merge the two test assembler
-	files, they only differed by a single instruction.
-
-	With this change in place I now see this test fully passing on 32 and
-	64 bit RISC-V targets.
-
-2022-08-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: fix breakpoint script output in gdb.mi/mi-break.exp
-	Commit 9db0d8536dbc ("gdb/mi: fix breakpoint script field output") fixed
-	the output of the script key in the MI breakpoint output, from
-
-	  script={"print 10","continue"}
-
-	to
-
-	  script=["print 10","continue"]
-
-	However, it missed updating this test case, which still tests for the
-	old (broken) form, causing:
-
-	    FAIL: gdb.mi/mi-break.exp: mi-mode=main: test_breakpoint_commands: breakpoint commands: check that commands are set (unexpected output)
-	    FAIL: gdb.mi/mi-break.exp: mi-mode=separate: test_breakpoint_commands: breakpoint commands: check that commands are set (unexpected output)
-
-	Update the test to expect the new form.
-
-	Change-Id: I174919d4eea53e96d914ca9bd1cf6f01c8de30b8
-
-2022-08-16  Tom Tromey  <tromey@adacore.com>
-
-	Use strwinerror in gdb/windows-nat.c
-	When working on windows-nat.c, it's useful to see an error message in
-	addition to the error number given by GetLastError.  This patch moves
-	strwinerror from gdbserver to gdbsupport, and then updates
-	windows-nat.c to use it.  A couple of minor changes to strwinerror
-	(constify the return type and use the ARRAY_SIZE macro) are also
-	included.
-
-2022-08-16  Tom Tromey  <tom@tromey.com>
-
-	Remove register_gdbarch_init
-	This removes the deprecated register_gdbarch_init in favor a default
-	argument to gdbarch_register.  Regression tested on x86-64 Fedora 34.
-
-2022-08-16  Alan Modra  <amodra@gmail.com>
-
-	PR29495, rewrite_elf_program_header looping
-	This patch, in order of significance:
-	1) Replaces some macros with inline functions.
-	2) Those inline functions catch and avoid arithmetic overflows when
-	   comparing addresses.
-	3) When assigning sections to segments (IS_SECTION_IN_INPUT_SEGMENT)
-	   use bed->want_p_paddr_set_to_zero to decide whether lma vs p_paddr
-	   or vma vs p_vaddr should be tested.  When remapping, use the same
-	   test, and use is_note rather than the more restrictive
-	   IS_COREFILE_NOTE.
-
-	It's important that the later tests not be more restrictive.  If they
-	are it can lead to the situation triggered by the testcases, where a
-	section seemingly didn't fit and thus needed a new mapping.  It didn't
-	fit the new mapping either, and this repeated until memory exhausted.
-
-		PR 29495
-		* elf.c (SEGMENT_END, SECTION_SIZE, IS_CONTAINED_BY_VMA): Delete.
-		(IS_CONTAINED_BY_LMA, IS_NOTE, IS_COREFILE_NOTE): Delete.
-		(segment_size, segment_end, section_size): New inline function.
-		(is_contained_by, is_note): Likewise.
-		(rewrite_elf_program_header): Use new functions.
-
-2022-08-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86: shorten certain template names
-	Now that we can purge templates, let's use this to improve readability a
-	little by shortening a few of their names, making functionally similar
-	ones also have identical names in their multiple incarnations.
-
-2022-08-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86: template-ize certain vector conversion insns
-	Many of the vector conversion insns come with X/Y/Z suffixed forms, for
-	disambiguation purposes in AT&T syntax. All of these gorups follow
-	certain patterns. Introduce "xy" and "xyz" templates to reduce
-	redundancy.
-
-	To facilitate using a uniform name for both AVX and AVX512, further
-	introduce a means to purge a previously defined template: A standalone
-	<name> will be recognized to have this effect.
-
-	Note that in the course of the conversion VFPCLASSPH is properly split
-	to separate AT&T and Intel syntax forms, matching VFPCLASSP{S,D} and
-	yielding the intended "ambiguous operand size" diagnostic in Intel mode.
-
-2022-08-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86: template-ize vector packed byte/word integer insns
-	Many of the vector integer insns come in byte/word element pairs. Most
-	of these pairs follow certain encoding patterns. Introduce a "bw"
-	template to reduce redundancy.
-
-	Note that in the course of the conversion
-	- the AVX VPEXTRW template which is not being touched needs to remain
-	  ahead of the new "combined" ones, as (a) this should be tried first
-	  when matching insns against templates and (b) its Load attributes
-	  requires it to be first,
-	- this add a benign/meaningless IgnoreSize attribute to the memory form
-	  of PEXTRB; it didn't seem worth avoiding this.
-
-2022-08-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86: re-order AVX512 S/G templates
-	The AVX2 gather ones are nicely grouped - do the same for the various
-	AVX512 scatter/gather ones. On the moved lines also convert EVex=<n> to
-	EVex<N>.
-
-2022-08-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86: template-ize vector packed dword/qword integer insns
-	Many of the vector integer insns come in dword/qword element pairs. Most
-	of these pairs follow certain encoding patterns. Introduce a "dq"
-	template to reduce redundancy.
-
-	Note that in the course of the conversion
-	- a few otherwise untouched templates are moved, so they end up next to
-	  their siblings),
-	- drop an unhelpful Cpu64 from the GPR form of VPBROADCASTQ, matching
-	  what we already have for KMOVQ - the diagnostic is better this way for
-	  insns with multiple forms (i.e. the same Cpu64 attributes on {,V}MOVQ,
-	  {,V}PEXTRQ, and  {,V}PINSRQ are useful to keep),
-	- this adds benign/meaningless IgnoreSize attributes to the GPR forms of
-	  KMOVD and VPBROADCASTD; it didn't seem worth avoiding this.
-
-2022-08-16  Jan Beulich  <jbeulich@suse.com>
-
-	x86: template-ize packed/scalar vector floating point insns
-	The vast majority of vector FP insns comes in single/double pairs. Many
-	pairs follow certain encoding patterns. Introduce an "sd" template to
-	reduce redundancy. Similarly, to further cover similarities between
-	AVX512F and AVX512-FP16, introduce an "sdh" template.
-
-	For element-size Disp8 shift generalize i386-gen's broadcast size
-	determination, allowing Disp8MemShift to be specified without an operand
-	in the affected templated templates. While doing the adjustment also
-	eliminate an unhelpful (lost information) diagnostic combined with a use
-	after free in what is now get_element_size().
-
-	Note that in the course of the conversion
-	- the AVX512F form of VMOVUPD has a stray (leftover) Load attribute
-	  dropped,
-	- VMOVSH has a benign IgnoreSize added (the attribute is still strictly
-	  necessary for VMOVSD, and necessary for VMOVSS as long as we permit
-	  strange combinations like "-march=i286+avx"),
-	- VFPCLASSPH is properly split to separate AT&T and Intel syntax forms,
-	  matching VFPCLASSP{S,D}.
-
-2022-08-16  Jan Beulich  <jbeulich@suse.com>
-
-	revert "x86: Also pass -P to $(CPP) when processing i386-opc.tbl"
-	This reverts commit 384f368958f2a5bb083660e58e5f8a010e6ad429, which
-	broke i386-gen's emitting of diagnostics. As a replacement to address
-	the original issue of newer gcc no longer splicing lines when dropping
-	the line continuation backslashes, switch to using + as the line
-	continuation character, doing the line splicing in i386-gen.
-
-2022-08-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-15  Alan Modra  <amodra@gmail.com>
-
-	PR29362, some binutils memory leaks
-	2022-08-16  Alan Modra  <amodra@gmail.com>
-		    Cunlong Li  <shenxiaogll@163.com>
-
-		PR 29362
-		* dwarf.c (free_debug_information): New function, extracted..
-		(free_debug_memory): ..from here.
-		(process_debug_info): Use it when before clearing out unit
-		debug_information.  Clear all fields.
-		* objcopy.c (delete_symbol_htabs): New function.
-		(main): Call it via xatexit.
-		(copy_archive): Free "dir".
-		* objdump.c (free_debug_section): Free reloc_info.
-
-2022-08-15  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky add unwinder for sigtramp frame when kernel 4.x and later
-	When kernel veriosn >= V4.x, the characteristic values used to
-	determine whether it is a signal function call are:
-	    movi r7, 139
-	    trap 0
-
-	Registers are saved at (sp + CSKY_SIGINFO_OFFSET + CSKY_SIGINFO_SIZE
-	+ CSKY_UCONTEXT_SIGCONTEXT + CSKY_SIGCONTEXT_PT_REGS_TLS). The order
-	is described in csky_linux_rt_sigreturn_init_pt_regs.
-
-2022-08-15  Alan Modra  <amodra@gmail.com>
-
-	aarch64_pei_vec
-	I know this target is just a skeleton, but let's not write out relocs
-	with uninitialised garbage.
-
-		* coff-aarch64.c (SWAP_IN_RELOC_OFFSET): Define.
-		(SWAP_OUT_RELOC_OFFSET): Define.
-
-2022-08-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: improve a comment about fcsr, fflags, and frm registers
-	There's a comment in riscv-tdep.c that explains some of the background
-	about how we check for the fcsr, fflags, and frm registers within a
-	riscv target description.
-
-	This comment (and the functionality it describes) relates to how QEMU
-	advertises these registers within its target description.
-
-	Unfortunately, QEMU includes these three registers in both the fpu and
-	crs target description features.  To work around this GDB uses one of
-	the register declarations, and ignores the other, this means the GDB
-	user sees a single copy of each register, and things just work.
-
-	When I originally wrote the comment I thought it didn't matter which
-	copy of the register GDB selected, the fpu copy or the csr copy, so
-	long as we just used one of them.  The comment reflected this belief.
-
-	Upon further investigation, it turns out I was wrong.  GDB has to use
-	the csr copy of the register.  If GDB tries to use the register from
-	the fpu feature then QEMU will return an error when GDB tries to read
-	or write the register.
-
-	Luckily, the code within GDB (currently) will always select the csr
-	copy of the register, so nothing is broken, but the comment is wrong.
-	This commit updates the comment to better describe what is actually
-	going on.
-
-	Of course, I should probably also send a patch to QEMU to fix up the
-	target description that is sent to GDB.
-
-2022-08-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/nds32: update features/nds32.c
-	After this commit:
-
-	  commit 7b7c365c5c663ffdfb2b3f696db35c23cdccd921
-	  Date:   Wed Sep 15 10:10:46 2021 +0200
-
-	      [bfd] Ensure unique printable names for bfd archs
-
-	The printable name field of the default nds32 bfd_arch_info changed
-	from 'n1h' to 'n1'.  As a consequence the generated feature file
-	within GDB should have been recreated.  Recreate it now.
-
-2022-08-14  Tom Tromey  <tom@tromey.com>
-
-	Move decode_location_spec to code_breakpoint
-	breakpoint::decode_location_spec just asserts if called.  It turned
-	out to be relatively easy to remove this method from breakpoint and
-	instead move the base implementation to code_breakpoint.
-
-	Change location_spec_to_sals to a method
-	location_spec_to_sals is only ever called for code breakpoints, so
-	make it a protected method there.
-
-	Change breakpoint_re_set_default to a method
-	breakpoint_re_set_default is only ever called from breakpoint re_set
-	methods, so make it a protected method on code_breakpoint.
-
-2022-08-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-13  Alan Modra  <amodra@gmail.com>
-
-	PR29482 - strip: heap-buffer-overflow
-		PR 29482
-		* coffcode.h (coff_set_section_contents): Sanity check _LIB.
-
-	asan: NULL dereference in spu_elf_object_p
-		* elf32-spu.c (spu_elf_object_p): Don't dereference NULL
-		shdr->bfd_section.
-
-	ubsan: undefined shift in sign_extend
-		* libhppa.h (sign_extend): Avoid undefined behaviour.
-
-	asan: NULL dereference in som_set_reloc_info
-		* som.c (som_set_reloc_info): Ignore non-existent previous
-		fixup references.
-
-	readelf: print 0x0 as 0, and remove trailing spaces
-	This changes readelf output a little, removing the 0x prefix on hex
-	output when the value is 0, except in cases where a fixed field
-	width is shown.  %#010x is not a good replacement for 0x%08x.
-
-	Make dwarf_vma uint64_t
-	This replaces dwarf_vma, dwarf_size_type and dwarf_signed_vma with
-	uint64_t and int64_t everywhere.  The patch also gets rid of
-	DWARF_VMA_FMT since we can't use that with uint64_t, and all of the
-	configure support for deciding the flavour of HOST_WIDEST_INT.
-	dwarf_vmatoa also disappears, replacing most uses with one of
-	PRIx64, PRId64 or PRIu64.  Printing of size_t and ptrdiff_t values
-	now use %z and %t rather than by casting to unsigned long.  Also,
-	most warning messages that used 0x%lx or similar now use %#lx and a
-	few that didn't print the 0x hex prefix now also use %#.  The patch
-	doesn't change normal readelf output, except in odd cases where values
-	previously might have been truncated.
-
-	Don't use bfd_vma in readelf.c
-	This replaces bfd_vma with uint64_t in readelf, defines BFD64
-	unconditionally, removes tests of BFD64 and sizeof (bfd_vma), and
-	removes quite a few now unnecessary casts.
-
-	Don't use bfd_size_type in readelf.c and dwarf.c
-	Replacing bfd_size_type with dwarf_size_type or uint64_t is mostly
-	cosmetic.  The point of the change is to avoid use of a BFD type
-	in readelf, where we'd like to keep as independent of BFD as
-	possible.  Also, the patch is a step towards using standard types.
-
-	Replace elf_vma with uint64_t
-	This patch replaces all uses of elf_vma with uint64_t, removes
-	tests of sizeof (elf_vma), and does a little tidying of
-	byte_get_little_endian and byte_get_big_endian.
-
-2022-08-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp
-	When running test-case gdb.dwarf2/dw2-dir-file-name.exp on x86_64-linux, we
-	have:
-	...
-	(gdb) break compdir_missing__ldir_missing__file_basename^M
-	Breakpoint 2 at 0x4004c4: file tmp-dw2-dir-file-name.c, line 999.^M
-	(gdb) continue^M
-	Continuing.^M
-	^M
-	Breakpoint 2, 0x00000000004004c4 in \
-	  compdir_missing__ldir_missing__file_basename () \
-	  at tmp-dw2-dir-file-name.c:999^M
-	(gdb) PASS: gdb.dwarf2/dw2-dir-file-name.exp: \
-	  compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
-	  compdir_missing__ldir_missing__file_basename
-	...
-
-	When trying to set a breakpoint on
-	compdir_missing__ldir_missing__file_basename, the architecture-specific
-	prologue skipper starts at 0x4004c0 and skips past two insns, to 0x4004c4:
-	...
-	00000000004004c0 <compdir_missing__ldir_missing__file_basename>:
-	  4004c0: 55                      push   %rbp
-	  4004c1: 48 89 e5                mov    %rsp,%rbp
-	  4004c4: 8b 05 72 1b 20 00       mov    0x201b72(%rip),%eax        # 60203c <v>
-	  4004ca: 83 c0 01                add    $0x1,%eax
-	  4004cd: 89 05 69 1b 20 00       mov    %eax,0x201b69(%rip)        # 60203c <v>
-	  4004d3: 90                      nop
-	  4004d4: 5d                      pop    %rbp
-	  4004d5: c3                      ret
-	...
-
-	And because the line table info is rudamentary:
-	...
-	CU: tmp-dw2-dir-file-name.c:
-	File name                    Line number    Starting address    View    Stmt
-	tmp-dw2-dir-file-name.c              999            0x4004c0               x
-	tmp-dw2-dir-file-name.c             1000            0x4004d6               x
-	tmp-dw2-dir-file-name.c                -            0x4004d6
-	...
-	the address does not fall at an actual line, so the breakpoint is shown with
-	address, both when setting it and hitting it.
-
-	when running the test-case with aarch64-linux, we have similarly:
-	...
-	(gdb) break compdir_missing__ldir_missing__file_basename^M
-	Breakpoint 2 at 0x400618: file tmp-dw2-dir-file-name.c, line 999.^M
-	...
-	due to the architecture-specific prologue skipper starting at 0x400610 and
-	skipping past two insns, to 0x400618:
-	...
-	0000000000400610 <compdir_missing__ldir_missing__file_basename>:
-	  400610:       90000100        adrp    x0, 420000 <__libc_start_main@GLIBC_2.17>
-	  400614:       9100b000        add     x0, x0, #0x2c
-	  400618:       b9400000        ldr     w0, [x0]
-	  40061c:       11000401        add     w1, w0, #0x1
-	  400620:       90000100        adrp    x0, 420000 <__libc_start_main@GLIBC_2.17>
-	  400624:       9100b000        add     x0, x0, #0x2c
-	  400628:       b9000001        str     w1, [x0]
-	  40062c:       d503201f        nop
-	  400630:       d65f03c0        ret
-	...
-
-	But interestingly, the aarch64 architecture-specific prologue skipper is
-	wrong.  There is no prologue, and the breakpoint should be set at 0x400610.
-
-	By using "break *compdir_missing__ldir_missing__file_basename"
-	we can get the breakpoint set at 0x400610:
-	...
-	(gdb) break *compdir_missing__ldir_missing__file_basename^M
-	Breakpoint 2 at 0x400610: file tmp-dw2-dir-file-name.c, line 999.^M
-	...
-	and make the test-case independent of prologue analysis.
-
-	This requires us to update the expected patterns.
-
-	The fix ensures that once the aarch64 architecture-specific prologue skipper
-	will be fixed, this test-case won't start failing.
-
-	Tested on x86_64-linux.
-
-2022-08-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-11  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/varobj: Only re-evaluate invalid globals during re_set
-	When doing varobj_re_set, we currently try to recreate floating varobj.
-	This was introduced by 4e969b4f0128 "Re-evaluate floating varobj as part
-	of varobj_invalidate" to deal with use a after free issue.  However
-	since bc20e562ec0 "Fix use after free in varobj" we now ensure that we
-	never have dangling pointers so this all recreation is not strictly
-	needed anymore for floating varobjs.
-
-	This commit proposes to remove this recreation process for floating
-	varobjs.
-
-	Tested on x86_64-linux.
-
-2022-08-11  Tom de Vries  <tdevries@suse.de>
-	    Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/varobj: Reset varobj after relocations have been computed
-	[This patch is a followup to the discussion in
-	https://sourceware.org/pipermail/gdb-patches/2022-August/191188.html]
-
-	PR/29426 shows failures when running the gdb.mi/mi-var-invalidate-shlib
-	test when using a compiler which does not produce a PIE executable by
-	default.
-
-	In the testcase, a varobj is created to track a global variable, and
-	then the main binary is reloaded in GDB (using the file command).
-
-	During the load of the new binary, GDB tries to recreate the varobj to
-	track the global in the new binary (varobj_invalidate_iter).  At this
-	point, the old process is still in flight.  So when we try to access to
-	the value of the global, in a PIE executable we only have access to the
-	unrelocated address (the objfile's text_section_offset () is 0).  As a
-	consequence down the line read_value_memory fails to read the unrelated
-	address, so cannot evaluate the value of the global.  Note that the
-	expression used to access to the global’s value is valid, so the varobj
-	can be created.  When using a non PIE executable, the address of the
-	global GDB knows about at this point does not need relocation, so
-	read_value_memory can access the (old binary’s) value.
-
-	So at this point, in the case of a non-PIE executable the value field is
-	set, while it is cleared in the case of PIE executable.  Later when the
-	test issues a "-var-update global_var", the command sees no change in
-	the case of the non-PIE executable, while in the case of the PIE
-	executable install_new_value sees that value changes, leading to a
-	different output.
-
-	This patch makes sure that, as we do for breakpoints, we wait until
-	relocation has happened before we try to recreate varobjs.  This way we
-	have a consistent behavior between PIE and non-PIE binaries.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29426
-
-2022-08-11  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/varobj: Do not invalidate locals in varobj_invalidate_iter
-	The varobj_invalidate_iter function has logic to invalidate any local
-	varobj it can find.  However since bc20e562ec0 "gdb/varobj: Fix use
-	after free in varobj" all varobj containing references to an objfile are
-	cleared when the objfile goes out of scope.  This means that at this
-	point any local varobj seen by varobj_invalidate_iter either has
-	already been invalidated by varobj_invalidate_if_uses_objfile or only
-	contains valid references and there is no reason to invalidate it.
-
-	This patch proposes to remove this unnecessary invalidation and adds a
-	testcase which exercises a scenario where a local varobj can legitimately
-	survive a call to varobj_invalidate_iter.
-
-	At this point the varobj_invalidate and varobj_invalidate_iter seem
-	misnamed since they deal with re-creating invalid objects and do not do
-	invalidation, but this will be fixed in a following patch.
-
-	Tested on x86_64-linux.
-
-2022-08-11  Dmitry Selyutin  <ghostmansd@gmail.com>
-
-	ppc/svp64: support svindex instruction
-	https://libre-soc.org/openpower/sv/
-	https://libre-soc.org/openpower/sv/remap/#svindex
-	https://libre-soc.org/openpower/isa/simplev/
-
-	ppc/svp64: support svremap instruction
-	https://libre-soc.org/openpower/sv/
-	https://libre-soc.org/openpower/sv/remap/#svremap
-	https://libre-soc.org/openpower/isa/simplev/
-
-	ppc/svp64: support svshape instruction
-	https://libre-soc.org/openpower/sv/
-	https://libre-soc.org/openpower/sv/remap/#svshape
-	https://libre-soc.org/openpower/isa/simplev/
-
-	ppc/svp64: support svstep instructions
-	https://libre-soc.org/openpower/sv/
-	https://libre-soc.org/openpower/sv/svstep/
-	https://libre-soc.org/openpower/isa/simplev/
-
-	ppc/svp64: support setvl instructions
-	https://libre-soc.org/openpower/sv/
-	https://libre-soc.org/openpower/sv/setvl/
-	https://libre-soc.org/openpower/isa/simplev/
-
-	ppc/svp64: introduce non-zero operand flag
-	svstep and svshape instructions subtract 1 before encoding some of the
-	operands. Obviously zero is not supported for these operands. Whilst
-	PPC_OPERAND_PLUS1 fits perfectly to mark that maximal value should be
-	incremented, there is no flag which marks the fact that zero values are
-	not allowed. This patch adds a new flag, PPC_OPERAND_NONZERO, for this
-	purpose.
-
-2022-08-11  Dmitry Selyutin  <ghostmansd@gmail.com>
-
-	ppc/svp64: support LibreSOC architecture
-	This patch adds support for LibreSOC machine and SVP64 extension flag
-	for PowerPC architecture. SV (Simple-V) is a strict RISC-paradigm
-	Scalable Vector Extension for the Power ISA. SVP64 is the 64-bit
-	Prefixed instruction format implementing SV. Funded by NLnet through EU
-	Grants No: 825310 and 825322, SV is in DRAFT form and is to be publicly
-	submitted via the OpenPOWER Foundation ISA Working Group via the
-	newly-created External RFC Process.
-
-	For more details, visit https://libre-soc.org.
-
-2022-08-11  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	[Arm] Cleanup arm_m_exception_cache
-	With this change, only valid contents of LR are accepted when unwinding
-	exception frames for m-profile targets.
-
-	If the contents of LR are anything but EXC_RETURN or FNC_RETURN, it
-	will cause GDB to print an error and/or abort unwinding of the frame as
-	it's an invalid state for the unwinder.
-
-	The FNC_RETURN pattern requires Security Extensions to be enabled.
-
-2022-08-11  Fangrui Song  <maskray@google.com>
-
-	RISC-V: Remove R_RISCV_GNU_VTINHERIT/R_RISCV_GNU_VTENTRY
-	They were legacy relocation types copied from other ports.  The related
-	-fvtable-gc was removed from GCC in 2003.
-
-	The associated assembler directives (.vtable_inherit and .vtable_entry)
-	have never been supported by the RISC-V port.  Remove related ld code.
-
-	Link: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/323
-
-2022-08-11  Alan Modra  <amodra@gmail.com>
-
-	PR29466, APP/NO_APP with .linefile
-	Commit 53f2b36a54b9 exposed a bug in sb_scrub_and_add_sb that could
-	result in losing input.  If scrubbing results in expansion past the
-	holding capacity of do_scrub_chars output buffer, then do_scrub_chars
-	stashes the extra input for the next call.  That call never came
-	because sb_scrub_and_add_sb wrongly decided it was done.  Fix that by
-	allowing sb_scrub_and_add_sb to see whether there is pending input.
-	Also allow a little extra space so that in most cases we won't need
-	to resize the output buffer.
-
-	sb_scrub_and_add_sb also limited output to the size of the input,
-	rather than the actual output buffer size.  Fixing that resulted in a
-	fail of gas/testsuite/macros/dot with an extra warning: "end of file
-	not at end of a line; newline inserted".  OK, so the macro in dot.s
-	really does finish without end-of-line.  Apparently the macro
-	expansion code relied on do_scrub_chars returning early.  So fix that
-	too by adding a newline if needed in macro_expand_body.
-
-		PR 29466
-		* app.c (do_scrub_pending): New function.
-		* as.h: Declare it.
-		* input-scrub.c (input_scrub_include_sb): Add extra space for
-		two .linefile directives.
-		* sb.c (sb_scrub_and_add_sb): Take into account pending input.
-		Allow output to max.
-		* macro.c (macro_expand_body): Add terminating newline.
-		* testsuite/config/default.exp (SIZE, SIZEFLAGS): Define.
-		* testsuite/gas/macros/app5.d,
-		* testsuite/gas/macros/app5.s: New test.
-		* testsuite/gas/macros/macros.exp: Run it.
-
-2022-08-11  Alan Modra  <amodra@gmail.com>
-
-	regen potfiles
-
-2022-08-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/mi: fix breakpoint script field output
-	The "script" field, output whenever information about a breakpoint with
-	commands is output, uses wrong MI syntax.
-
-	    $ ./gdb -nx -q --data-directory=data-directory -x script -i mi
-	    =thread-group-added,id="i1"
-	    =breakpoint-created,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000000111d",func="main",file="test.c",fullname="/home/simark/build/binutils-gdb-one-target/gdb/test.c",line="3",thread-groups=["i1"],times="0",original-location="main"}
-	    =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000000111d",func="main",file="test.c",fullname="/home/simark/build/binutils-gdb-one-target/gdb/test.c",line="3",thread-groups=["i1"],times="0",script={"aaa","bbb","ccc"},original-location="main"}
-	    (gdb)
-	    -break-info
-	    ^done,BreakpointTable={nr_rows="1",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="18",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000000000000111d",func="main",file="test.c",fullname="/home/simark/build/binutils-gdb-one-target/gdb/test.c",line="3",thread-groups=["i1"],times="0",script={"aaa","bbb","ccc"},original-location="main"}]}
-	    (gdb)
-
-	In both the =breakpoint-modified and -break-info output, we have:
-
-	     script={"aaa","bbb","ccc"}
-
-	According to the output syntax [1], curly braces means tuple, and a
-	tuple contains key=value pairs.  This looks like it should be a list,
-	but uses curly braces by mistake.  This would make more sense:
-
-	    script=["aaa","bbb","ccc"]
-
-	Fix it, keeping the backwards compatibility by introducing a new MI
-	version (MI4), in exactly the same way as was done when fixing
-	multi-locations breakpoint output in [2].
-
-	 - Add a fix_breakpoint_script_output uiout flag.  MI uiouts will use
-	   this flag if the version is >= 4.
-	 - Add a fix_breakpoint_script_output_globally variable and the
-	   -fix-breakpoint-script-output MI command to set it, if frontends want
-	   to use the fixed output for this without using the newer MI version.
-	 - When emitting the script field, use list instead of tuple, if we want
-	   the fixed output (depending on the two criteria above)
-	 -
-
-	[1] https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Output-Syntax.html#GDB_002fMI-Output-Syntax
-	[2] https://gitlab.com/gnutools/binutils-gdb/-/commit/b4be1b0648608a2578bbed39841c8ee411773edd
-
-	Change-Id: I7113c6892832c8d6805badb06ce42496677e2242
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24285
-
-2022-08-10  Andrew Burgess  <aburgess@redhat.com>
-
-	objdump: fix extended (256) disassembler colors
-	After commit:
-
-	  commit a88c79b77036e4778e70d62081c3cfd1044bb8e3
-	  Date:   Tue Aug 9 14:57:48 2022 +0100
-
-	      Default to enabling colored disassembly if output is to a terminal.
-
-	The 256 extended-color support for --disassembler-color was broken.
-	This is fixed in this commit.
-
-		PR 29457
-		* objdump (objdump_styled_sprintf): Check disassembler_color
-		against an enum value, don't treat it as a bool.
-
-2022-08-10  mga-sc  <mark.goncharov@syntacore.com>
-
-	gdb/riscv: implement cannot_store_register gdbarch method
-	The x0 (zero) register is read-only on RISC-V.  Implement the
-	cannot_store_register gdbarch method to tell GDB this.
-
-	Without this method GDB will try to write to x0, and relies on the
-	target to ignore such writes.  If you are using a target that
-	complains (or throws an error) when writing to x0, this change will
-	prevent this from happening.
-
-	The gdb.arch/riscv-reg-aliases.exp test exercises writing to x0, and
-	will show the errors when using a suitable target.
-
-2022-08-10  Luis Machado  <luis.machado@arm.com>
-
-	Disable year 2038 support on 32-bit hosts by default
-	With a recent import of gnulib, code has been pulled that tests and enables
-	64-bit time_t by default on 32-bit hosts that support it.
-
-	Although gdb can use the gnulib support, bfd doesn't use gnulib and currently
-	doesn't do these checks.
-
-	As a consequence, if we have a 32-bit host that supports 64-bit time_t, we'll
-	have a mismatch between gdb's notion of time_t and bfd's notion of time_t.
-
-	This will lead to mismatches in the struct stat size, leading to memory
-	corruption and crashes.
-
-	This patch disables the year 2038 check for now, which makes things work
-	reliably again.
-
-	I'd consider this a temporary fix until we have proper bfd checks for the year
-	2038, if it makes sense.  64-bit hosts seems to be more common these days, so
-	I'm not sure how important it is to have this support enabled and how soon
-	we want to enable it.
-
-	Thoughts?
-
-2022-08-10  Jan Beulich  <jbeulich@suse.com>
-
-	gas/Dwarf: properly skip zero-size functions
-	PR gas/29451
-
-	While out_debug_abbrev() properly skips such functions, out_debug_info()
-	mistakenly didn't. It needs to calculate the high_pc expression ahead of
-	time, in order to skip emitting any data for the function if the value
-	is zero.
-
-	The one case which would still leave a zero-size entry is when
-	symbol_get_obj(symp)->size ends up evaluating to zero. I hope we can
-	expect that to not be the case, otherwise we'd need to have a way to
-	post-process .debug_info contents between resolving expressions and
-	actually writing the data out to the file. Even then it wouldn't be
-	entirely obvious in which way to alter the data.
-
-2022-08-10  Alan Modra  <amodra@gmail.com>
-
-	PR29462, internal error in relocate, at powerpc.cc:10796
-	Prior to the inline plt call support (commit 08be322439), the only
-	local syms with plt entries were local ifunc symbols.  There shouldn't
-	be stubs for other local symbols so don't look for them.  The patch
-	also fixes minor bugs in get_reference_flags; Many relocs are valid
-	only for ppc64 and a couple only for ppc32.
-
-		PR 29462
-		* powerpc.cc (Target_powerpc::Relocate::relocate): Rename
-		use_plt_offset to pltcal_to_direct, invert logic.  For relocs
-		not used with inline plt sequences against local symbols, only
-		look for stubs when the symbol is an ifunc.
-		(Target_powerpc::Scan::get_reference_flags): Correct reloc
-		handling for relocs not valid for both 32-bit and 64-bit.
-
-2022-08-10  Youling Tang  <tangyouling@loongson.cn>
-
-	bfd: Add support for LoongArch64 EFI (efi-*-loongarch64).
-	This adds support for efi-loongarch64 by virtue of adding a new PEI target
-	pei-loongarch64.  This is not a full target and only exists to support EFI at
-	this time.
-
-	This means that this target does not support relocation processing and is mostly
-	a container format.  This format has been added to elf based loongarch64 targets
-	such that efi images can be made natively on Linux.
-
-	However this target is not valid for use with gas but only with objcopy.
-
-	We should't limit addresses to 32-bits for 64-bit vma, otherwise there will be
-	"RVA truncated" error when using objcopy on loongarch64.
-
-	With these changes the resulting file is recognized as an efi image.
-
-	Any magic number is based on the Microsoft PE specification [1].
-
-	The test results are as follows:
-	$ make check-binutils RUNTESTFLAGS='loongarch64.exp'
-	  PASS: Check if efi app format is recognized
-
-	$ objdump -h -f tmpdir/loongarch64copy.o
-	  tmpdir/loongarch64copy.o:     file format pei-loongarch64
-	  architecture: Loongarch64, flags 0x00000132:
-	  EXEC_P, HAS_SYMS, HAS_LOCALS, D_PAGED
-	  start address 0x0000000000000000
-
-	  Sections:
-	  Idx Name          Size      VMA               LMA               File off  Algn
-	    0 .text         0000003c  00000000200000b0  00000000200000b0  00000200  2**2
-	                    CONTENTS, ALLOC, LOAD, READONLY, CODE
-
-	[1] https://docs.microsoft.com/en-us/windows/win32/debug/pe-format
-
-	bfd:
-	  * .gitignore (pe-loongarch64igen.c): New.
-	  * Makefile.am (pei-loongarch64.lo, pe-loongarch64igen.lo, pei-loongarch64.c,
-	  pe-loongarch64igen.c): Add support.
-	  * Makefile.in: Likewise.
-	  * bfd.c (bfd_get_sign_extend_vma): Add pei-loongarch64.
-	  * coff-loongarch64.c: New file.
-	  * coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
-	  coff_write_object_contents) Add loongarch64 (loongarch64_pei_vec) support.
-	  * config.bfd: Likewise.
-	  * configure: Likewise.
-	  * configure.ac: Likewise.
-	  * libpei.h (GET_OPTHDR_IMAGE_BASE, PUT_OPTHDR_IMAGE_BASE,
-	  GET_OPTHDR_SIZE_OF_STACK_RESERVE, PUT_OPTHDR_SIZE_OF_STACK_RESERVE,
-	  GET_OPTHDR_SIZE_OF_STACK_COMMIT, PUT_OPTHDR_SIZE_OF_STACK_COMMIT,
-	  GET_OPTHDR_SIZE_OF_HEAP_RESERVE, PUT_OPTHDR_SIZE_OF_HEAP_RESERVE,
-	  GET_OPTHDR_SIZE_OF_HEAP_COMMIT, PUT_OPTHDR_SIZE_OF_HEAP_COMMIT,
-	  GET_PDATA_ENTRY, _bfd_peLoongArch64_bfd_copy_private_bfd_data_common,
-	  _bfd_peLoongArch64_bfd_copy_private_section_data,
-	  _bfd_peLoongArch64_get_symbol_info, _bfd_peLoongArch64_only_swap_filehdr_out,
-	  _bfd_peLoongArch64_print_private_bfd_data_common,
-	  _bfd_peLoongArch64i_final_link_postscript,
-	  _bfd_peLoongArch64i_only_swap_filehdr_out, _bfd_peLoongArch64i_swap_aouthdr_in,
-	  _bfd_peLoongArch64i_swap_aouthdr_out, _bfd_peLoongArch64i_swap_aux_in,
-	  _bfd_peLoongArch64i_swap_aux_out, _bfd_peLoongArch64i_swap_lineno_in,
-	  _bfd_peLoongArch64i_swap_lineno_out, _bfd_peLoongArch64i_swap_scnhdr_out,
-	  _bfd_peLoongArch64i_swap_sym_in, _bfd_peLoongArch64i_swap_sym_out,
-	  _bfd_peLoongArch64i_swap_debugdir_in, _bfd_peLoongArch64i_swap_debugdir_out,
-	  _bfd_peLoongArch64i_write_codeview_record,
-	  _bfd_peLoongArch64i_slurp_codeview_record,
-	  _bfd_peLoongArch64_print_ce_compressed_pdata): New.
-	  * peXXigen.c (_bfd_XXi_swap_aouthdr_in, _bfd_XXi_swap_aouthdr_out,
-	  _bfd_XXi_swap_scnhdr_out, pe_print_pdata, _bfd_XX_print_private_bfd_data_common,
-	  _bfd_XX_bfd_copy_private_section_data, _bfd_XXi_final_link_postscript):
-	  Support COFF_WITH_peLoongArch64,
-	  * pei-loongarch64.c: New file.
-	  * peicode.h (coff_swap_scnhdr_in, pe_ILF_build_a_bfd, pe_ILF_object_p):
-	  Support COFF_WITH_peLoongArch64.
-	  (jtab): Add dummy entry that traps.
-	  * targets.c (loongarch64_pei_vec): New.
-
-	binutils
-	  * testsuite/binutils-all/loongarch64/loongarch64.exp: New file.
-	  * testsuite/binutils-all/loongarch64/pei-loongarch64.d: New test.
-	  * testsuite/binutils-all/loongarch64/pei-loongarch64.s: New test.
-
-	include
-	  * coff/loongarch64.h: New file.
-	  * coff/pe.h (IMAGE_FILE_MACHINE_LOONGARCH64): New.
-
-2022-08-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv/testsuite: fix failures in gdb.arch/riscv-reg-aliases.exp
-	When running on a native RISC-V Linux target I currently see failures
-	in the gdb.arch/riscv-reg-aliases.exp test like this:
-
-	  set $ft0.float = 501
-	  (gdb) PASS: gdb.arch/riscv-reg-aliases.exp: write non-zero value to ft0
-	  p/d $ft0.float
-	  $263 = 1140490240
-	  (gdb) FAIL: gdb.arch/riscv-reg-aliases.exp: read ft0 after non-zero write to ft0
-
-	This test started failing after this commit:
-
-	  commit 56262a931b7ca8ee3ec9104bc7e9e0b40cf3d64e
-	  Date:   Thu Feb 17 13:43:59 2022 -0700
-
-	      Change how "print/x" displays floating-point value
-
-	The problem is that when 501 is written to $ft0.float the value is
-	converted to floating point format and stored in the register.  Prior
-	to the above commit printing with /x and /d would first extract the
-	value as a float, and then convert the value to an integer for
-	display.  After the above commit GDB now uses the raw register value
-	when displaying /x and /d, and so we see this behaviour:
-
-	  (gdb) info registers $ft0
-	  ft0            {float = 501, double = 5.6347704700123827e-315}	(raw 0x0000000043fa8000)
-	  (gdb) p/f $ft0.float
-	  $1 = 501
-	  (gdb) p/d $ft0.float
-	  $2 = 1140490240
-	  (gdb) p/x $ft0.float
-	  $3 = 0x43fa8000
-
-	To fix this test I now print the float registers using the /f format
-	rather than /d.  With this change the test now passes.
-
-2022-08-09  Stepan Nemec  <stepnem@gmail.com>
-
-	Another gas manual typo correction.
-
-	Fix typos in assembler documentation.
-
-2022-08-09  Feiyang Chen  <chenfeiyang@loongson.cn>
-
-	gdb/gdbserver: LoongArch: Improve implementation of fcc registers
-	The current implementation of the fcc register is referenced to the
-	user_fp_state structure of the kernel uapi [1].
-
-	struct user_fp_state {
-		uint64_t    fpr[32];
-		uint64_t    fcc;
-		uint32_t    fcsr;
-	};
-
-	But it is mistakenly defined as a 64-bit fputype register, resulting
-	in a confusing output of "info register".
-
-	(gdb) info register
-	...
-	fcc            {f = 0x0, d = 0x0}  {f = 0, d = 0}
-	...
-
-	According to "Condition Flag Register" in "LoongArch Reference Manual"
-	[2], there are 8 condition flag registers of size 1. Use 8 registers of
-	uint8 to make it easier for users to view the fcc register groups.
-
-	(gdb) info register
-	...
-	fcc0           0x1                 1
-	fcc1           0x0                 0
-	fcc2           0x0                 0
-	fcc3           0x0                 0
-	fcc4           0x0                 0
-	fcc5           0x0                 0
-	fcc6           0x0                 0
-	fcc7           0x0                 0
-	...
-
-	[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/loongarch/include/uapi/asm/ptrace.h
-	[2] https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#_condition_flag_register
-
-2022-08-09  Nick Clifton  <nickc@redhat.com>
-
-	Default to enabling colored disassembly if output is to a terminal.
-		PR 29457
-		* objdump.c (disassembler_color): Change type to an enum.
-		(disassembler_extended_color): Remove.
-		(usage): Update.
-		(objdump_color_for_assembler_style): Update.
-		(main): Update initialisation of disassembler_color.  If not
-		initialised via a command line option, set based upon terminal
-		output.
-		* doc/binutils.texi: Update description of disassmbler-color
-		option.
-		* testsuite/binutils-all/arc/objdump.exp: Add
-		--disassembler-color=off option when disassembling.
-		* testsuite/binutils-all/arm/objdump.exp: Likewise.
-
-2022-08-09  Aditya Vidyadhar Kamath  <Aditya.Kamath1@ibm.com>
-
-	Fix-for-multiple-thread-detection-in-AIX.
-	In AIX multiple threads were not added. This patch is a fix for the same
-
-	When we create a pthread debug session we have callbacks to read
-	symbols and memory.  One of those call backs is pdc_read_data.
-
-	Before we come into aix-thread wait() we switch to no thread and
-	therefore the current thread is null.
-
-	When we get into pdc_read_data we have a dependency that we need to
-	be in the correct current thread that has caused an event of new
-	thread, inorder to read memory.
-
-	Hence we switch to the correct thread.
-
-	This is done by passing the pid in the pthdb_user_t user_current_pid
-	parameter in every call back.
-
-2022-08-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/debug-names.exp
-	When running test-case gdb.dwarf2/debug-names.exp on openSUSE Tumbleweed, I
-	run into:
-	...
-	(gdb) maint info symtabs^M
-	  ...
-	ERROR: internal buffer is full.
-	UNRESOLVED: gdb.dwarf2/debug-names.exp: break _start expanded symtab
-	...
-
-	Fix this by simplifying the test-case to print _start rather running to it.
-
-	Tested on x86_64-linux.
-
-2022-08-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/riscv: use register name enum values in riscv-linux-nat.c
-	There were a few places where we were using integer values rather than
-	the RISCV_*_REGNUM constants defined in riscv-tdep.h.  This commit
-	replaces 0 with RISCV_ZERO_REGNUM and 32 with RISCV_PC_REGNUM in a few
-	places.
-
-	There should be no user visible changes after this commit.
-
-2022-08-09  Jan Beulich  <jbeulich@suse.com>
-
-	x86-64: adjust MOVQ to/from SReg attributes
-	It is unclear to me why the corresponding MOV (no Q suffix) can be
-	issued without REX.W, but MOVQ has to have that prefix (bit). Add
-	NoRex64 and in exchange drop Size64.
-
-	x86: adjust MOVSD attributes
-	The non-SSE2AVX form of the SIMD variant of the instruction needlessly
-	has the (still multi-purpose) IgnoreSize attribute. All other similar
-	SSE2 insns use NoRex64 instead. Make this consistent, noting that the
-	SSE2AVX form can't have the same change made - there the memory operand
-	doesn't at the same time permit RegXMM (which logic uses when deciding
-	whether a Q suffix is okay outside of 64-bit mode).
-
-	x86: fold AVX VGATHERDPD / VPGATHERDQ
-	While the other three variants each differ in attributes and hence can't
-	be folded, these two pairs actually can be (and were previously
-	overlooked). This effectively matches their AVX512VL counterparts, which
-	are also expressed as a single template.
-
-	x86: allow use of broadcast with X/Y/Z-suffixed AVX512-FP16 insns
-	While the x/y/z suffix isn't necessary to use in this case, it is still
-	odd that these forms don't support broadcast (unlike their AVX512F /
-	AVX512DQ counterparts). The lack thereof can e.g. make macro-ized
-	programming more difficult.
-
-	x86/Intel: split certain AVX512-FP16 VCVT*2PH templates
-	One more place where pre-existing templates should have been taken as a
-	basis: In Intel syntax we want to consistently issue an "ambiguous
-	operand size" error when a size-less memory operand is specified for an
-	insn where register use alone isn't sufficient for disambiguation.
-
-2022-08-09  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky fix build error in ubuntu20_04
-	build error in: https://builder.sourceware.org/buildbot/#/builders/170/builds/246
-	...
-	../../binutils-gdb/gdb/csky-linux-tdep.c: In function ‘void
-	csky_supply_fregset(const regset*, regcache*, int, const void*, size_t)’:
-	../../binutils-gdb/gdb/csky-linux-tdep.c:194:18: error: format ‘%ld’
-	expects argument of type ‘long int’, but argument 2 has type ‘size_t’
-	{aka ‘unsigned int’} [-Werror=format=]
-	   194 |       warning (_("Unknow size %ld of section .reg2, can not get
-	value"
-	       |
-	^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	   195 |    " of float registers."), len);
-	...
-
-	Fix it via using %s vs pulongest suggested by Tom.
-
-2022-08-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-08  Tom Tromey  <tromey@adacore.com>
-
-	Fix regression from gdbarch registry change
-	The gdbarch registry patch introduced a regression that could cause a
-	crash when opening files in gdb.  The bug is that, previously, the
-	solib ops would default to current_target_so_ops; but the patch
-	changed this code to default to nullptr.  This patch fixes the bug by
-	reintroducing the earlier behavior.  This is PR gdb/29449.
-
-	I managed to reproduce the bug with a riscv-elf build and then
-	verified that this fixes the problem.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29449
-
-2022-08-08  Martin Liska  <mliska@suse.cz>
-
-	add splay tree for info_ptr -> CU mapping
-	While using perf top for MozillaThunderbird I noticed quite some slow
-	dissably call with source code involved. E.g.
-
-	time ./objdump --start-address=0x0000000004e0dcd0 --stop-address=0x0000000004e0df8b -l -d --no-show-raw-insn -S -C /usr/lib64/thunderbird/libxul.so
-
-	took 2.071s and I noticed quite some time is spent in
-	find_abstract_instance:
-
-	    33.46%  objdump  objdump               [.] find_abstract_instance
-	    18.22%  objdump  objdump               [.] arange_add
-	    13.77%  objdump  objdump               [.] read_attribute_value
-	     4.82%  objdump  objdump               [.] comp_unit_maybe_decode_line_info
-	     3.10%  objdump  libc.so.6             [.] __memset_avx2_unaligned_erms
-
-	where linked list of CU is iterated when searing for where info_ptr
-	belongs to:
-
-	         : 3452   for (u = unit->prev_unit; u != NULL; u = u->prev_unit)
-	    0.00 :   4c61f7: mov    0x10(%rbx),%rax
-	    0.00 :   4c61fb: test   %rax,%rax
-	    0.00 :   4c61fe: je     4c6215 <find_abstract_instance+0x365>
-	         : 3453   if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
-	    0.00 :   4c6200: cmp    0x60(%rax),%rdx
-	   83.20 :   4c6204: jb     4c620c <find_abstract_instance+0x35c>
-	    0.00 :   4c6206: cmp    0x78(%rax),%rdx
-	    6.89 :   4c620a: jb     4c6270 <find_abstract_instance+0x3c0>
-	         : 3452   for (u = unit->prev_unit; u != NULL; u = u->prev_unit)
-	    0.00 :   4c620c: mov    0x10(%rax),%rax
-	    7.90 :   4c6210: test   %rax,%rax
-	    0.00 :   4c6213: jne    4c6200 <find_abstract_instance+0x350>
-
-	The following scan can be replaced with search in a splay tree and with
-	that I can get to 1.5s and there are other symbols where the difference
-	is even bigger.
-
-	bfd/ChangeLog:
-
-		PR 29081
-		* dwarf2.c (struct addr_range): New.
-		(addr_range_intersects): Likewise.
-		(splay_tree_compare_addr_range): Likewise.
-		(splay_tree_free_addr_range): Likewise.
-		(struct dwarf2_debug_file): Add comp_unit_tree.
-		(find_abstract_instance): Use the splay tree when searching
-		for a info_ptr.
-		(stash_comp_unit): Insert to the splay tree.
-		(_bfd_dwarf2_cleanup_debug_info): Clean up the splay tree.
-
-2022-08-08  Martin Liska  <mliska@suse.cz>
-
-	dwarf: use find_abstract_instance for vars and DW_AT_specification
-	The following simple test case fails when dwz is used:
-
-	$ cat demo.C
-	namespace std {
-	  enum { _S_fixed, _S_floatfield = _S_fixed };
-	  struct {
-	    struct {};
-	  }
-	  __ioinit;
-	}
-
-	int main() {
-	  return 0;
-	}
-
-	$ g++ demo.C -g && cp a.out b.out && dwz -m xxx.so a.out b.out && objdump -S a.out >/dev/null
-	objdump: DWARF error: could not find variable specification at offset 0x3d3
-
-	As seen the reference is defined in xxx.so shared part:
-
-	$ eu-readelf -w -N a.out | grep -A3 -B3 3d3
-	             decl_column          (data1) 11
-	             sibling              (ref_udata) [   387]
-	 [   387]    variable             abbrev: 30
-	             specification        (GNU_ref_alt) [   3d3]
-	             location             (exprloc)
-	              [ 0] addr 0x404019
-	 [   396]    subprogram           abbrev: 32
-
-	$ eu-readelf -w -N a.out | less
-
-	...
-
-	 Compilation unit at offset 920:
-	 Version: 5, Abbreviation section offset: 0, Address size: 8, Offset size: 4
-	 Unit type: partial (3)
-	...
-	 [   3d3]      variable             abbrev: 31
-	               name                 (strp) "__ioinit"
-	               decl_file            (data1) demo.C (10)
-	               decl_line            (data1) 6
-	               decl_column          (data1) 3
-	               type                 (ref_udata) [   3c4]
-	               declaration          (flag_present) yes
-
-	With the patch the same output is emitted as before usage of dwz.
-
-	bfd/ChangeLog:
-
-		PR 29442
-		* dwarf2.c (struct varinfo): Use const char * type.
-		(scan_unit_for_symbols): Call find_abstract_instance for
-		DW_AT_specification for variables that can be in a different CU
-		(e.g. done by dwz)
-
-2022-08-08  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	Mach-O: i18n enablement on some error messages.
-		* config/obj-macho.c (obj_mach_o_get_section_names): Wrap two
-		string literals within with gettext macro.
-
-2022-08-08  Martin Liska  <mliska@suse.cz>
-
-	ld: fix NEWS typos
-	ld/ChangeLog:
-
-		* NEWS: Fix 2 typos.
-
-2022-08-08  Nick Clifton  <nickc@redhat.com>
-
-	Add a link to the NEWS files in the release announcement email.
-
-2022-08-08  Jiangshuai Li  <jiangshuai_li@linux.alibaba.com>
-
-	gdb/csky support .reg2 for kernel 4.x and later
-	When kernel's version >= 4.x, the size of .reg2 section will be 400.
-	Contents of .reg2 are {
-	    unsigned long vr[96];
-	    unsigned long fcr;
-	    unsigned long fesr;
-	    unsigned long fid;
-	    unsigned long reserved;
-	};
-
-	VR[96] means: (vr0~vr15) + (fr16~fr31), each Vector register is
-	128-bits, each Float register is 64 bits, the total size is
-	(4*96).
-
-	In addition, for fr0~fr15, each FRx is the lower 64 bits of the
-	corresponding VRx. So fr0~fr15 and vr0~vr15 regisetrs use the same
-	offset.
-
-2022-08-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build with gcc 4.8.5
-	When building with gcc 4.8.5, I run into:
-	...
-	user-regs.c:85:1: error: could not convert \
-	  ‘{0l, (& builtin_user_regs.gdb_user_regs::first)}’ from \
-	  ‘<brace-enclosed initializer list>’ to ‘gdb_user_regs’
-	 };
-	 ^
-	...
-
-	Fix this by removing the initialization and handling regs.last == nullptr in
-	append_user_reg.
-
-	Tested on x86_64-linux.
-
-2022-08-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix assert in read_addrmap_from_aranges
-	When loading the debug-names-duplicate-cu executable included in this
-	test-case, we run into:
-	...
-	(gdb) file debug-names-duplicate-cu^M
-	Reading symbols from debug-names-duplicate-cu...^M
-	src/gdb/dwarf2/read.c:2353: internal-error: read_addrmap_from_aranges: \
-	  Assertion `insertpair.second' failed.^M
-	...
-
-	This assert was added in recent commit 75337cbc147 ("[gdb/symtab] Fix
-	.debug_aranges duplicate offset warning").
-
-	The assert triggers because the CU table in the .debug_names section contains
-	a duplicate:
-	...
-	Version 5
-	Augmentation string: 47 44 42 00  ("GDB")
-	CU table:
-	[  0] 0x0
-	[  1] 0x0
-	...
-
-	Fix this by rejecting the .debug_names index:
-	...
-	(gdb) file debug-names-duplicate-cu^M
-	Reading symbols from debug-names-duplicate-cu...^M
-	warning: Section .debug_names has duplicate entry in CU table, \
-	  ignoring .debug_names.^M
-	...
-
-	Likewise for the case where the CU table is not sorted by increasing offset.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29436
-
-2022-08-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add support for .debug_names in dwarf assembler
-	Add:
-	- support for a per-module .debug_names section in the dwarf assembler, and
-	- a test-case excercising this new functionality.
-
-	A per-module .debug_names section needs to have an entry in the CU list for
-	each CU in the module, which is made more difficult by two things:
-	- linking in other objects, which may contain additional CUs
-	  (typically the case on openSUSE), and
-	- adding dummy CUs in the dwarf assembler.
-	We handle this by:
-	- compiling with -nostartfiles (so the test-case contains _start rather than
-	  main), and
-	- disabling the dummy CU generation for the test-case.
-
-	I've kept things simple by having the test-case specify the hash value, rather
-	than adding that functionality in the dwarf assembler.
-
-	Also I've kept the bucket count to 1, which makes it trivial to satisfy the
-	requirement that "the symbol is entered into a bucket whose index is the hash
-	value modulo bucket_count".
-
-	The readelf dump of the .debug_names section from the test-case looks like:
-	...
-	Version 5
-	Augmentation string: 47 44 42 00  ("GDB")
-	CU table:
-	[  0] 0x0
-
-	TU table:
-
-	Foreign TU table:
-
-	Used 1 of 1 bucket.
-	Out of 2 items there are 1 bucket clashes (longest of 1 entries).
-
-	Symbol table:
-	[  0] #eddb6232 _start: <1> DW_TAG_subprogram DW_IDX_compile_unit=0
-	[  1] #0b888030 int: <2> DW_TAG_base_type DW_IDX_compile_unit=0
-	...
-
-	Tested on x86_64-linux.
-
-2022-08-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-06  Alan Modra  <amodra@gmail.com>
-
-	asan: heap buffer overflow in _bfd_error_handler
-	On coff_slurp_symbol_table printing "unrecognized storage class"
-	for a symbol error.  If the symbol name is the last string in its
-	section and not terminated, we run off the end of the buffer.
-
-		* coffgen.c (build_debug_section): Terminate the section with
-		an extra 0.
-
-2022-08-06  Alan Modra  <amodra@gmail.com>
-
-	asan: segfault in coff_write_auxent_fname
-	More fuzzed input file nonsense.
-
-		* coffgen.c (coff_write_symbol): Don't call coff_write_auxent_fname
-		when extrap is NULL.
-
-2022-08-06  Alan Modra  <amodra@gmail.com>
-
-	msan: bfd_mach_o_layout_commands use of uninitialised value
-	Catches fuzzed input with unterminated strings that later run off the
-	end of their buffers when calling strlen.
-
-		* mach-o.c: Use size_t vars where approprite.
-		(bfd_mach_o_alloc_and_read): Add "extra" param.  Allocate that
-		much extra and clear.  Update all callers, those that set up
-		strings with one extra byte.
-
-2022-08-06  Alan Modra  <amodra@gmail.com>
-
-	objcopy section alignment
-	bfd_set_section_alignment currently always returns true.  This patch
-	changes it to return false on silly alignment values, avoiding yet
-	another way to trigger ubsan errors like coffcode.h:3192:12: runtime
-	error: shift exponent 299 is too large for 32-bit type 'int'.  We'll
-	catch that one in objcopy.c:setup_sections.  However, setup_sections
-	gives up on other setup operations that are necessary even after an
-	error of some sort.  Change that to keep going, which might change the
-	error message but that shouldn't matter in the least.
-
-	bfd/
-		* section.c (bfd_set_section_alignment): Return false and
-		don't set alignment_power for stupidly large alignments.
-		* bfd-in2.h: Regenerate.
-		* coffcode.h (coff_compute_section_file_positions): Don't use
-		an int constant when calculating alignment.
-	binutils/
-		* objcopy.c (setup_section): Keep on going after hitting
-		non-fatal errors.
-
-2022-08-06  Alan Modra  <amodra@gmail.com>
-
-	ubsan: som.c undefined shift in som_set_reloc_info
-	Do the shift using unsigned variables to avoid UB on << 8.
-
-		* som.c (som_set_reloc_info): Make v unsigned.  Localise some
-		variables to their blocks.
-
-2022-08-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-05  Alan Modra  <amodra@gmail.com>
-
-	Get rid of BFD_VMA_FMT
-	Remove the BFD_VMA_FMT defines in bfd.h and configure support.
-
-		* bfd-in.h (BFD_VMA_FMT): Don't define.
-		* configure.ac (BFD_INT64_FMT): Remove configure test.
-		* configure.com: Likewise.
-		* Makefile.in: Regenerate.
-		* bfd-in2.h: Regenerate.
-		* configure: Regenerate.
-
-2022-08-05  Alan Modra  <amodra@gmail.com>
-
-	Don't use BFD_VMA_FMT in gdb and sim
-	Like commit b82817674f, this replaces BFD_VMA_FMT "x" in sim/ with
-	PRIx64 and casts to promote bfd_vma to uint64_t.  The one file using
-	BFD_VMA_FMT in gdb/ instead now uses hex_string, and a typo in the
-	warning message is fixed.
-
-2022-08-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build breaker in language.c with gcc 7.5.0
-	When building gdb on openSUSE Leap 15.3, using gcc 7.5.0, I run into:
-	...
-	gdb/language.c: In constructor ‘constexpr language_gdbarch::language_gdbarch()’:
-	gdb/language.c:921:8: error: use of deleted function \
-	  ‘language_arch_info::language_arch_info(const language_arch_info&)’
-	 struct language_gdbarch
-	        ^~~~~~~~~~~~~~~~
-	In file included from gdbsupport/common-defs.h:104:0,
-	                 from gdb/defs.h:28,
-	                 from gdb/language.c:31:
-	gdb/language.h:95:28: note: declared here
-	   DISABLE_COPY_AND_ASSIGN (language_arch_info);
-	                            ^
-	include/ansidecl.h:342:3: note: in definition of macro \
-	  ‘DISABLE_COPY_AND_ASSIGN’
-	   TYPE (const TYPE&) = delete;   \
-	   ^~~~
-	gdb/language.c: In function ‘language_gdbarch* get_language_gdbarch(gdbarch*)’:
-	gdb/language.c:936:22: note: synthesized method ‘constexpr \
-	  language_gdbarch::language_gdbarch()’ first required here
-	       l = new struct language_gdbarch;
-	                      ^~~~~~~~~~~~~~~~
-	...
-
-	This seems to be fixed by this change in the struct language_gdbarch
-	definition:
-	...
-	-  struct language_arch_info arch_info[nr_languages] {};
-	+  struct language_arch_info arch_info[nr_languages];
-	...
-
-	Tested on x86_64-linux.
-
-2022-08-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Add unit test for gdb::sequential_for_each
-	With commit 18a5766d09c ("[gdbsupport] Add sequential_for_each") I added a
-	drop-in replacement for gdb::parallel_for_each, but there's nothing making
-	sure that the two remain in sync.
-
-	Extend the unit test for gdb::parallel_for_each to test both.
-
-	Do this using a slightly unusual file-self-inclusion.  Doing so keep things
-	readable and maintainable, and avoids macrofying functions.
-
-	Tested on x86_64-linux.
-
-2022-08-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Use task size in parallel_for_each in dwarf2_build_psymtabs_hard
-	In dwarf2_build_psymtabs_hard, we use a parallel_for_each to distribute CUs
-	over threads.
-
-	Ensuring a fair distribution over the worker threads and main thread in terms
-	of number of CUs might not be the most efficient way, given that CUs can vary
-	in size.
-
-	Fix this by using per_cu->get_length () as the task size.
-
-	I've used this experiment to verify the performance impact:
-	...
-	$ for n in $(seq 1 10); do \
-	    time gdb -q -batch ~/firefox/libxul.so-93.0-1.1.x86_64.debug \
-	    2>&1 \
-	    | grep "real:"; \
-	  done
-	...
-	and without the patch got:
-	...
-	real: 4.71
-	real: 4.88
-	real: 4.29
-	real: 4.30
-	real: 4.65
-	real: 4.27
-	real: 4.27
-	real: 4.27
-	real: 4.75
-	real: 4.41
-	...
-	and with the patch:
-	...
-	real: 3.68
-	real: 3.81
-	real: 3.80
-	real: 3.68
-	real: 3.75
-	real: 3.69
-	real: 3.69
-	real: 3.74
-	real: 3.67
-	real: 3.74
-	...
-	so that seems a reasonable improvement.
-
-	With parallel_for_each_debug set to true, we get some more detail about
-	the difference in behaviour.  Without the patch we have:
-	...
-	Parallel for: n_elements: 2818
-	Parallel for: minimum elements per thread: 1
-	Parallel for: elts_per_thread: 704
-	Parallel for: elements on worker thread 0       : 705
-	Parallel for: elements on worker thread 1       : 705
-	Parallel for: elements on worker thread 2       : 704
-	Parallel for: elements on worker thread 3       : 0
-	Parallel for: elements on main thread           : 704
-	...
-	and with the patch:
-	...
-	Parallel for: n_elements: 2818
-	Parallel for: total_size: 1483674865
-	Parallel for: size_per_thread: 370918716
-	Parallel for: elements on worker thread 0       : 752   (size: 371811790)
-	Parallel for: elements on worker thread 1       : 360   (size: 371509370)
-	Parallel for: elements on worker thread 2       : 1130  (size: 372681710)
-	Parallel for: elements on worker thread 3       : 0     (size: 0)
-	Parallel for: elements on main thread           : 576   (size: 367671995)
-	...
-
-	Tested on x86_64-linux.
-
-2022-08-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdbsupport] Add task size parameter in parallel_for_each
-	Add a task_size parameter to parallel_for_each, defaulting to nullptr, and use
-	the task size to distribute similarly-sized chunks to the threads.
-
-	Tested on x86_64-linux.
-
-2022-08-05  Pedro Alves  <pedro@palves.net>
-
-	Introduce gdb::make_function_view
-	This adds gdb::make_function_view, which lets you create a function
-	view from a callable without specifying the function_view's template
-	parameter.  For example, this:
-
-	    auto lambda = [&] (int) { ... };
-	    auto fv = gdb::make_function_view (lambda);
-
-	instead of:
-
-	    auto lambda = [&] (int) { ... };
-	    gdb::function_view<void (int)> fv = lambda;
-
-	It is particularly useful if you have a template function with an
-	optional function_view parameter, whose type depends on the function's
-	template parameters.  Like:
-
-	    template<typename T>
-	    void my_function (T v, gdb::function_view<void(T)> callback = nullptr);
-
-	For such a function, the type of the callback argument you pass must
-	already be a function_view.  I.e., this wouldn't compile:
-
-	    auto lambda = [&] (int) { ... };
-	    my_function (1, lambda);
-
-	With gdb::make_function_view, you can write the call like so:
-
-	    auto lambda = [&] (int) { ... };
-	    my_function (1, gdb::make_function_view (lambda));
-
-	Unit tests included.
-
-	Tested by building with GCC 9.4, Clang 10, and GCC 4.8.5, on x86_64
-	GNU/Linux, and running the unit tests.
-
-	Change-Id: I5c4b3b4455ed6f0d8878cf1be189bea3ee63f626
-
-2022-08-05  Nick Clifton  <nickc@redhat.com>
-
-	Update following 2.39 release
-
-2022-08-05  Alan Modra  <amodra@gmail.com>
-
-	asan: ppc64_elf_get_synthetic_symtab heap buffer overflow
-	Fuzzed input files with sizes of .dynamic not a multiple of dynamic
-	tag size can result in reading past the end of the buffer with the
-	current simple checks.  Fix that, and use the same check in other
-	files that process input object .dynamic section.  (There is no need
-	for buffer overflow checks in the linker's generated .dynamic
-	section.)
-
-		* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Sanity check
-		.dynamic content buffer reads.
-		* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
-		* elf64-ia64-vms.c (elf64_vms_link_add_object_symbols): Likewise.
-		* elf.c (_bfd_elf_print_private_bfd_data): Simplify .dynamic
-		buffer sanity checks.
-		* elflink.c (elf_link_add_object_symbols): Avoid possible UB
-		subtracting sizeof_dyn from pointer.
-
-2022-08-05  Alan Modra  <amodra@gmail.com>
-
-	Sanity check loc_offsets index
-	Fixes a segfault found by the fuzzers.
-
-		* dwarf.c (fetch_indexed_value): Return -1 on error.
-		(read_and_display_attr_value): Don't display string when
-		fetch_indexed_value returns an error.  Sanity check loc_offsets
-		index.
-
-2022-08-05  Jan Beulich  <jbeulich@suse.com>
-
-	binutils/Dwarf: avoid "shadowing" of glibc function name
-	As before: Old enough glibc has an (unguarded) declaration of index()
-	in string.h, which triggers a "shadows a global declaration" warning.
-
-2022-08-05  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	gas: fix a testcase broken by new ZSTD support
-	The commit 1369522f36eece1b37139a81f7f2139ba3915172 ("Recognize the new ELF
-	compression type for ZSTD.") added the new ELF compression type but it
-	accidentally broke a GAS testcase.  Since testing for the section type
-	"2048" (SHF_COMPRESSED) is not going to be portable in the long term, it
-	now tests SHF_LINK_ORDER ("128") instead.
-
-	Using SHF_LINK_ORDER (with possibly sh_link == 0) is an idea by Jan Beulich.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/elf/section10.s: Use SHF_LINK_ORDER to test
-		mixed numeric and alpha values.
-		* testsuite/gas/elf/section10.d: Reflect the change above.
-
-2022-08-05  Nick Clifton  <nickc@redhat.com>
-
-	When gas/read.c calls mbstowcs with a NULL destination, it should set size to 0
-		PR 29447
-		* read.c (read_symbol_name): Pass 0 as the length parameter when
-		invoking mbstowc in order to check the validity of a wide string.
-
-2022-08-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Add debug_{exp,val}
-	When debugging cc1 I heavily rely on simple one-parameter debug functions
-	that allow me to inspect a variable of a common type, like:
-	- debug_generic_expr
-	- debug_gimple_stmt
-	- debug_rtx
-	and I miss similar functions in gdb.
-
-	Add functions to dump variables of types 'value' and 'expression':
-	- debug_exp, and
-	- debug_val.
-
-	Tested on x86_64-linux, by breaking on varobj_create, and doing:
-	...
-	(gdb) call debug_exp (var->root->exp.get ())
-	&"Operation: OP_VAR_VALUE\n"
-	&" Block symbol:\n"
-	&"  Symbol: aaa\n"
-	&"  Block: 0x2d064f0\n"
-	(gdb)
-	...
-	and:
-	...
-	(gdb) call debug_val (value)
-	&"5"
-	(gdb)
-	...
-
-2022-08-05  Luca Boccassi  <bluca@debian.org>
-
-	Add gold support for --package-metadata option.
-	Following the same format as the implementation in ld:
-	9e2bb0cb5e74aed4158f08495534922d7108f928
-
-	Generate a .note.package FDO package metadata ELF note, following
-	the spec: https://systemd.io/ELF_PACKAGE_METADATA/
-
-	If the jansson library is available at build time (and it is explicitly
-	enabled), link ld to it, and use it to validate that the input is
-	correct JSON, to avoid writing garbage to the file. The
-	configure option --enable-jansson has to be used to explicitly enable
-	it (error out when not found). This allows bootstrappers (or others who
-	are not interested) to seamlessly skip it without issues.
-
-	elfcpp/
-		* elfcpp.h: Add FDO_PACKAGING_METADATA note type.
-
-	gold/
-		* Makefile.am: Add jansson flags and libraries.
-		* configure.ac: Check for jansson library.
-		* layout.cc (Layout::create_notes): Call create_package_metadata().
-		(Layout::create_package_metadata): New function.
-		* layout.h (Layout::create_package_metadata): New function.
-		(Layout::package_metadata_note_): New data member.
-		* options.h (class General_options): Add --package-metadata option.
-		* testsuite/Makefile.am (object_unittest): Add jansson libraries.
-		(binary_unittest): Likewise.
-		(leb128_unittest): Likewise.
-		(overflow_unittest): Likewise.
-		(package_metadata_test): New test.
-		* testsuite/package_metadata_main.c: New test source.
-
-2022-08-05  Cary Coutant  <ccoutant@gmail.com>
-
-	Recognize the new ELF compression type for ZSTD.
-	There is more work to be done to actually support compression and
-	decompression using the zstd library, but I will leave that to the
-	champions of the new compression option.
-
-	binutils/
-		* binutils/readelf.c (process_section_headers): Add support for
-		ELFCOMPRESS_ZSTD.
-
-2022-08-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-04  Tom Tromey  <tom@tromey.com>
-
-	Use registry in gdbarch
-	gdbarch implements its own registry-like approach.  This patch changes
-	it to instead use registry.h.  It's a rather large patch but largely
-	uninteresting -- it's mostly a straightforward conversion from the old
-	approach to the new one.
-
-	The main benefit of this change is that it introduces type safety to
-	the gdbarch registry.  It also removes a bunch of code.
-
-	One possible drawback is that, previously, the gdbarch registry
-	differentiated between pre- and post-initialization setup.  This
-	doesn't seem very important to me, though.
-
-2022-08-04  Tom Tromey  <tom@tromey.com>
-
-	Allow registry to refer to const types
-	So far, the registry hasn't been used to refer to a 'const' type, but
-	this changes with the gdbarch change.  This patch arranges to let the
-	registry store a pointer-to-const, by removing const in the 'set'
-	method.
-
-	Use new and delete for gdbarch
-	This changes gdbarch to use new and delete.
-
-	Use bool in gdbarch
-	This changes gdbarch to use bool for initialized_p.
-
-2022-08-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix .debug_aranges in gdb.dwarf2/fission-loclists.S
-	When running test-case gdb.dwarf2/fission-loclists.exp, I noticed:
-	...
-	warning: Section .debug_aranges in fission-loclists has duplicate \
-	  debug_info_offset 0x8f, ignoring .debug_aranges.^M
-	...
-
-	Fix this by removing the duplicate .debug_aranges entry.
-
-	Tested on x86_64-linux.
-
-2022-08-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix ERROR in gdb.base/watchpoint-unaligned.exp
-	In PR23888 an error is reported:
-	...
-	ERROR: tcl error sourcing watchpoint-unaligned.exp.
-	ERROR: expected boolean value but got ""
-	    while executing
-	"if {$wpnum} {
-	...
-
-	This presumably happens when:
-	- skip_hw_watchpoint_tests returns 0 meaning hw watchpoints are supported
-	- gdb fails to set a hw watchpoint and instead sets a sw watchpoint
-
-	That particular situation is handled for arm:
-	...
-	    -re "Watchpoint (\[0-9\]+): .*\r\n$gdb_prompt $" {
-	        if {[istarget "arm*-*-*"]} {
-	            untested $test
-	            set wpnum 0
-	        }
-	    }
-	...
-	but not for any other targets so wpnum remains "", triggering the ERROR.
-
-	Possibly this has been fixed for powerpc by commit 8d4e4d13afb ("gdb Power 9
-	add test for HW watchpoint support."), but it's still possible for other
-	targets.
-
-	Fix this by:
-	- initializing wpnum to 0 instead of ""
-	- signalling the failure to set a hw watchpoint by a fail
-
-	Tested on x86_64-linux, also by adding:
-	...
-	gdb_test_no_output "set can-use-hw-watchpoints 0"
-	...
-	and verifying that it triggers the fail.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23888
-
-2022-08-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix gdb.base/large-frame.exp for aarch64
-	On aarch64, I run into:
-	...
-	FAIL: gdb.base/large-frame.exp: optimize=-O0: backtrace
-	...
-
-	The problem is that the architecture-specific prologue analyzer fails to
-	handle the first two insns in the prologue properly:
-	...
-	0000000000400610 <func>:
-	  400610:       d2880210        mov     x16, #0x4010
-	  400614:       cb3063ff        sub     sp, sp, x16
-	  400618:       a9007bfd        stp     x29, x30, [sp]
-	  40061c:       910003fd        mov     x29, sp
-	  400620:       910043a0        add     x0, x29, #0x10
-	  400624:       97fffff0        bl      4005e4 <blah>
-	...
-	so we get:
-	...
-	$ gdb -q -batch ./outputs/gdb.base/large-frame/large-frame-O0 -ex "b func"
-	Breakpoint 1 at 0x400614
-	...
-
-	Fix this by:
-	- fixing the support for the first insn to extract the immediate operand, and
-	- adding support for the second insn,
-	such that we have:
-	...
-	Breakpoint 1 at 0x400624
-	...
-	Note that we're overshooting by one insn (0x400620 is the first insn after the
-	prologue), but that's a pre-existing problem.
-
-	Tested on aarch64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29408
-
-2022-08-04  Alan Modra  <amodra@gmail.com>
-
-	Don't use BFD_VMA_FMT in binutils
-	BFD_VMA_FMT can't be used in format strings that need to be
-	translated, because the translation won't work when the type of
-	bfd_vma differs from the machine used to compile .pot files.  We've
-	known about this for a long time, but patches slip through review.
-
-	So just get rid of BFD_VMA_FMT, instead using the appropriate PRId64,
-	PRIu64, PRIx64 or PRIo64 and SCN variants for scanf.  The patch is
-	mostly mechanical, the only thing requiring any thought is casts
-	needed to preserve PRId64 output from bfd_vma values, or to preserve
-	one of the unsigned output formats from bfd_signed_vma values.
-
-2022-08-04  Alan Modra  <amodra@gmail.com>
-
-	Re: Get rid of fprintf_vma and sprintf_vma
-	Commit f493c2174e messed the formatting in linker map files,
-	particularly for 32-bit builds where a number of tests using map files
-	regressed.  I should have noticed the BFD64 conditional printing of
-	spaces to line up output due to the original %V printing hex vmas with
-	16 digits when BFD64 and 8 digits when not.  Besides that, it is nicer
-	to print 32-bit vmas for 32-bit targets.  So change %V back to be
-	target dependent, now using bfd_sprintf_vma.  Since minfo doesn't
-	return the number of chars printed, that means some places that
-	currently use %V must instead sprintf to a buffer in order to find the
-	length printed.
-
-		* ldmisc.h (print_spaces): Declare.
-		(print_space): Change to a macro.
-		* ldmisc.c (vfinfo): Use bfd_sprintf_vma for %V.  Tidy %W case.
-		(print_space): Delete.
-		(print_spaces): New function.
-		* emultempl/aix.em (print_symbol): Use print_spaces.
-		* ldctor.c (ldctor_build_sets): Likewise.
-		* ldmain.c (add_archive_element): Likewise.
-		* ldlang.c (print_one_symbol, lang_print_asneeded): Likewise.
-		(print_output_section_statement, print_data_statement): Likewise.
-		(print_reloc_statement, print_padding_statement): Likewise.
-		(print_assignment): Likewise.  Also replace %V printing of vmas
-		with printing to a buffer in order to properly format output.
-		(print_input_section, lang_one_common): Likewise.
-
-2022-08-04  Alan Modra  <amodra@gmail.com>
-
-	MIPS: Use R_MIPS_REL16 for BFD_RELOC_16
-	R_MIPS_REL16 isn't a pc-relative reloc as the name might indicate.
-
-		* elf64-mips.c (mips_reloc_map): Map BFD_RELOC_16 to R_MIPS_REL16.
-		* elfn32-mips.c (mips_reloc_map): Likewise.
-
-2022-08-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-03  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Reset alignment for each PT_LOAD segment
-	Reset alignment for each PT_LOAD segment to avoid using alignment from
-	the previous PT_LOAD segment.
-
-	bfd/
-
-		PR ld/29435
-		* elf.c (assign_file_positions_for_load_sections): Reset
-		alignment for each PT_LOAD segment.
-
-	ld/
-
-		PR ld/29435
-		* testsuite/ld-elf/pr29435.d: New file.
-		* testsuite/ld-elf/pr29435.s: Likewise.
-
-2022-08-03  Tom Tromey  <tom@tromey.com>
-
-	Use unique_ptr to destroy per-bfd object
-	In some cases, the objfile owns the per-bfd object.  This is yet
-	another object that can sometimes be destroyed before the registry is
-	destroyed, possibly reslting in a use-after-free.  Also, I noticed
-	that the condition for deleting the object is not the same as the
-	condition used to create it -- so it could possibly result in a memory
-	leak in some situations.  This patch fixes the problem by introducing
-	a new unique_ptr that holds this object when necessary.
-
-	Use auto_obstack in objfile
-	This changes objfile to use an auto_obstack.  This helps prevent
-	use-after-free bugs, because it ensures that anything allocated on the
-	objfile obstack will live past the point at which the registry object
-	is destroyed.
-
-	Use gdb_bfd_ref_ptr in objfile
-	This changes struct objfile to use a gdb_bfd_ref_ptr.  In addition to
-	removing some manual memory management, this fixes a use-after-free
-	that was introduced by the registry rewrite series.  The issue there
-	was that, in some cases, registry shutdown could refer to memory that
-	had already been freed.  This help fix the bug by delaying the
-	destruction of the BFD reference (and thus the per-bfd object) until
-	after the registry has been shut down.
-
-2022-08-03  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-	gprofng: fix bug 29410 - Argument "&nbsp;0." isn't numeric in numeric gt (>)
-	gprofng/Changelog:
-	2022-08-02  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-		PR gprofng/29410
-		* gp-display-html/gp-display-html.in: Remove non-breaking spaces.
-
-2022-08-03  Alan Modra  <amodra@gmail.com>
-
-	Fix a conflict between the linker's need to rename some PE format input libraries and the BFD library's file caching mechanism.
-		PR 29389
-	bfd	* bfd.c (BFD_CLOSED_BY_CACHE): New bfd flag.
-		* cache.c (bfd_cache_delete): Set BFD_CLOSED_BY_DELETE on the
-		closed bfd.
-		(bfd_cache_lookup_worker): Clear BFD_CLOSED_BY_DELETE on the newly
-		reopened bfd.
-		* opncls.c (bfd_set_filename): Refuse to change the name of a bfd
-		that has been closed by bfd_cache_delete.  Mark changed bfds as
-		uncacheable.
-		* bfd-in2.h: Regenerate.
-
-	ld	* ldlang.h (lang_input_statement_struct): Add sort_key field.
-		* emultempl/pe.em (after_open): If multiple import libraries refer
-		to the same bfd, store their names in the sort_key field.
-		* emultempl/pep.em (after_open): Likewise.
-		* ldlang.c (sort_filename): New function.  Returns the filename to
-		be used when sorting input files.
-		(wild_sort): Use the sort_filename function.
-
-2022-08-03  Enze Li  <enze.li@hotmail.com>
-
-	gdb/amd64: clean up unused variable
-	When building with clang 15, I got this,
-
-	  CXX    amd64-tdep.o
-	amd64-tdep.c:1410:13: error: variable 'insn' set but not used[-Werror,-Wunused-but-set-variable]
-	    gdb_byte *insn = insn_details->raw_insn + modrm_offset;
-	                ^
-	1 error generated.
-
-	The function that uses this variable has been removed in this commit,
-
-	commit 870f88f7551b0f2d6aaaa36fb684b5ff8f468107
-	Date:   Mon Apr 18 13:16:27 2016 -0400
-
-	    remove trivialy unused variables
-
-	Fix this by removing unused variable.
-
-	Tested by rebuilding on x86_64-linux with clang 15 and gcc 12.
-
-2022-08-03  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Fix regression in varobj recreation
-	Commit bc20e562ec0 "Fix use after free in varobj" introduced a
-	regression.  This commit makes sure that the varobj object does not
-	keeps stale references to object being freed when we unload an objfile.
-	This includes the "valid_block" field which is reset to nullptr if the
-	pointed to block is tied to an objfile being freed.
-
-	However, at some point varobj_invalidate_iter might try to recreate
-	varobjs tracking either floating or globals.  Varobj tracking globals
-	are identified as having the "valid_block" field set nullptr, but as
-	bc20e562ec0 might clear this field, we have lost the ability to
-	distinguish between varobj referring to globals and non globals.
-
-	Fix this by introducing a "global" flag which tracks if a given varobj
-	was initially created as tracking a global.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29426
-
-2022-08-03  Alan Modra  <amodra@gmail.com>
-
-	Re: PE objdump -x
-	All of these buffer overrun tests are better written as a comparison
-	against size remaining, due to ISO C 9899 standard 6.5.2 para 8
-	regarding adding a constant to a pointer:
-
-	"If both the pointer operand and the result point to elements of the
-	same array object, or one past the last element of the array object,
-	the evaluation shall not produce an overflow; otherwise, the behavior
-	is undefined."
-
-	So "ex_dta + 4" might be undefined behaviour, if you interpret "the
-	array object" in this case to be the malloc'd section contents!
-
-		* pei-x86_64.c (pex64_get_unwind_info): Tidy sanity checks.
-		(pex64_xdata_print_uwd_codes): Likewise.
-
-2022-08-03  Jan Beulich  <jbeulich@suse.com>
-
-	x86: improve/shorten vector zeroing-idiom optimization conditional
-	- Drop the rounding type check: We're past template matching, and none
-	  of the involved insns support embedded rounding.
-	- Drop the extension opcode check: None of the involved opcodes have
-	  variants with it being other than None.
-	- Instead check opcode space, even if just to be on the safe side going
-	  forward.
-	- Reduce the number of comparisons by folding two groups.
-
-	x86: properly mark i386-only insns
-	Just like all Size64 insns are marked Cpu64, all Size32 insns ought to
-	be marked Cpu386.
-
-	x86: also use D for MOVBE
-	First of all rename the meanwhile misleading Opcode_SIMD_FloatD, as it
-	has also been used for KMOV* and BNDMOV. Then simplify the condition
-	selecting which form if "reversing" to use - except for the MOV to/from
-	control/debug/test registers all extended opcode space insns use bit 0
-	(rather than bit 1) to indicate the direction (from/to memory) of an
-	operation. With that, D can simply be set on the first of the two
-	templates, while the other can be dropped.
-
-2022-08-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-03  Cary Coutant  <ccoutant@gmail.com>
-
-	Add ELFCOMPRESS_ZSTD.
-	include/elf/
-		* common.h: Add ELFCOMPRESS_ZSTD.
-
-2022-08-02  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Correct the return type of the have_regset method.
-	During the development of 40c23d880386d6e8202567eaa2a6b041feb1a652,
-	the return value of fbsd_nat_target::have_regset was changed from a
-	simple boolean to returning the size of the register set.  The
-	comments and callers were all updated for this change, but the actual
-	return type was accidentally left as a bool.  This change fixes the
-	return type to be a size_t.
-
-	Current callers of this only checked the value against 0 and thus
-	still worked correctly.
-
-2022-08-02  Jan Beulich  <jbeulich@suse.com>
-
-	ELF: emit symbol table when there are relocations
-	Even when there are no symbols (e.g. all relocations being against
-	absolute values), a symbol table (with just the first placeholder entry)
-	needs to be emitted. Otherwise tools like objdump won't properly process
-	the relocations. The respective checks in assign_section_numbers() and
-	_bfd_elf_compute_section_file_positions() support also this view. Oddly
-	enough so far HAS_RELOC was only set when reading in an object file, but
-	not when generating one anew; the flag would only have been cleared when
-	no relocations were found (anymore).
-
-	While there also amend the affected function's leading comment to also
-	mention gas.
-
-2022-08-02  Matthew Malcomson  <hardenedapple@gmail.com>
-
-	ld: aarch64: Adjust TLS relaxation condition
-	In aarch64_tls_transition_without_check and elfNN_aarch64_tls_relax we
-	choose whether to perform a relaxation to an IE access model or an LE
-	access model based on whether the symbol itself is marked as local (i.e.
-	`h == NULL`).
-
-	This is problematic in two ways.  The first is that sometimes a global
-	dynamic access can be relaxed to an initial exec access when creating a
-	shared library, and if that happens on a local symbol then we currently
-	relax it to a local exec access instead.  This usually does not happen
-	since we only relax an access if aarch64_can_relax_tls returns true and
-	aarch64_can_relax_tls does not have the same problem.  However, it can
-	happen when we have seen both an IE and GD access on the same symbol.
-	This case is exercised in the newly added testcase tls-relax-gd-ie-2.
-
-	The second problem is that deciding based on whether the symbol is local
-	misses the case when the symbol is global but is still non-interposable
-	and known to be located in the executable.  This happens on all global
-	symbols in executables.
-	This case is exercised in the newly added testcase tls-relax-ie-le-4.
-
-	Here we adjust the condition we base our relaxation on so that we relax
-	to local-exec if we are creating an executable and the relevant symbol
-	we're accessing is stored inside that executable.
-
-	-- Updating tests for new relaxation criteria
-
-	Many of the tests added to check our relaxation to IE were implemented
-	by taking advantage of the fact that we did not relax a global symbol
-	defined in an executable.
-
-	Since a global symbol defined in an executable is still not
-	interposable, we know that a TLS version of such a symbol will be in the
-	main TLS block.  This means that we can perform a stronger relaxation on
-	such symbols and relax their accesses to a local-exec access.
-
-	Hence we have to update all tests that relied on the older suboptimal
-	decision making.
-
-	The two cases when we still would want to relax a general dynamic access
-	to an initial exec one are:
-	1) When in a shared library and accessing a symbol which we have already
-	   seen accessed with an initial exec access sequence.
-	2) When in an executable and accessing a symbol defined in a shared
-	   library.
-
-	Both of these require shared library support, which means that these
-	tests are now only available on targets with that.
-
-	I have chosen to switch the existing testcases from a plain executable
-	to one dynamically linked to a shared object as that doesn't require
-	changing the testcases quite so much (just requires accessing a
-	different variable rather than requiring adding another code sequence).
-
-	The tls-relax-all testcase was an outlier to the above approach, since
-	it included a general dynamic access to both a local and global symbol
-	and inspected for the difference accordingly.
-
-2022-08-02  Matthew Malcomson  <hardenedapple@gmail.com>
-
-	ld: aarch64: Update test linker scripts relocs.ld and relocs-ilp32.ld
-	The updates are to ensure that the .data section exists.  This means
-	that we always have a data section.  That means that we don't create a
-	RWX segment and avoid the corresponding warning.
-
-	We get this warning when testing aarch64-none-elf with -mcmodel=tiny.
-	N.b. this changes quite a few testcases from fail to pass.
-
-2022-08-02  Victor Do Nascimento  <Victor.DoNascimento@arm.com>
-
-	arm: Add cfi expression support for ra_auth_code
-	This patch extends assembler support for the use of register names to
-	allow for pseudo-registers, e.g. ra_auth_code register.
-	This is done particularly with CFI directives in mind, allowing for
-	expressions of the type:
-
-	    .cfi_register ra_auth_code, 12
-
-	gas/Changelog:
-
-		* config/tc-arm.c (tc_arm_regname_to_dw2regnum): Add
-		REG_TYPE_PSEUDO handling.
-		* testsuite/gas/arm/cfi-pacbti-m-readelf.d: New.
-		* testsuite/gas/arm/cfi-pacbti-m.s: New.
-
-2022-08-02  Victor Do Nascimento  <Victor.DoNascimento@arm.com>
-
-	arm: Use DWARF numbering convention for pseudo-register representation
-	This patch modifies the internal `struct reg_entry' numbering of DWARF
-	pseudo-registers to match values assigned in DWARF standards (see "4.1
-	DWARF register names" in [1])so ra_auth_code goes from 12 to 143 and
-	amends the unwinder .save directive-processing code to correctly handle
-	mixed register-type save directives.
-
-	The mechanism for splitting the register list is also re-written to
-	comply with register ordering on push statements, being that registers
-	are stored on the stack in numerical order, with the lowest numbered
-	register at the lowest address [2].
-
-	Consequently, the parsing of the hypothetical directive
-
-	        .save{r4-r7, r10, ra_auth_core, lr}
-
-	has been changed such as rather than producing
-
-	        .save{r4-r7, r10}
-	        .save{ra_auth_code}
-	        .save{lr}
-
-	as was the case with previous implementation, now produces:
-
-	        .save{lr}
-	        .save{ra_auth_code}
-	        .save{r4-r7, r10}
-
-	[1] <https://github.com/ARM-software/abi-aa/blob/main/aadwarf32/aadwarf32.rst>
-	[2] <https://developer.arm.com/documentation/dui0473/j/arm-and-thumb-instructions/push>
-
-	gas/Changelog:
-
-		* config/tc-arm.c (REG_RA_AUTH_CODE): New.
-		(parse_dot_save): Likewise.
-		(parse_reg_list): Remove obsolete code.
-		(reg_names): Set ra_auth_code to 143.
-		(s_arm_unwind_save): Handle core and pseudo-register lists via
-		parse_dot_save.
-		(s_arm_unwind_save_mixed): Deleted.
-		(s_arm_unwind_save_pseudo): Handle one register at a time.
-		* testsuite/gas/arm/unwind-pacbti-m-readelf.d: Fix test.
-		* testsuite/gas/arm/unwind-pacbti-m.d: Likewise.
-
-2022-08-02  Alan Modra  <amodra@gmail.com>
-
-	PE objdump -x
-	objdump -x on PE executables produces lots of "xdata section corrupt"
-	and "corrupt unwind data" warnings, and refuses to dump that info.  It
-	turns out that the sanity checks were bad, not the data.  Fix them.
-
-		* pei-x86_64.c (pex64_get_unwind_info): Correct buffer overrun
-		sanity checks.
-		(pex64_xdata_print_uwd_codes): Similarly.
-
-2022-08-02  Jan Beulich  <jbeulich@suse.com>
-
-	x86: XOP shift insns don't really allow B suffix
-	By mistake it was permitted to be used from the very introduction of XOP
-	support.
-
-2022-08-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-08-01  Martin Storsjö  <martin@martin.st>
-
-	ld: Support the -exclude-symbols option via COFF def files, with the EXCLUDE_SYMBOLS keyword
-	This was requested in review.
-
-	ld: Add support for a new option, -exclude-symbols, in COFF object file directives
-	This maps to the same as ld's --exclude-symbols command line option,
-	but allowing specifying the option via directives embedded in the
-	object files instead of passed manually on the command line.
-
-2022-08-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix .debug_aranges duplicate offset warning
-	The function read_addrmap_from_aranges contains code to issue a warning:
-	...
-	      if (!insertpair.second)
-	       {
-	         warning (_("Section .debug_aranges in %s has duplicate "
-	                    "debug_info_offset %s, ignoring .debug_aranges."),
-	                  objfile_name (objfile), sect_offset_str (per_cu->sect_off));
-	         return false;
-	       }
-	...
-	but the warning is in fact activated when all_comp_units has duplicate
-	entries, which is very misleading.
-
-	Fix this by:
-	- adding a test-case that should trigger the warning,
-	- replacing the current implementation of the warning with an
-	  assert that all_comp_units should not contain duplicates, and
-	- properly re-implementing the warning, such that it is triggered
-	  by the test-case.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29381
-
-2022-08-01  Jan Beulich  <jbeulich@suse.com>
-
-	x86: SKINIT with operand needs IgnoreSize
-	Without it in 16-bit mode a pointless operand size prefix would be
-	emitted.
-
-2022-08-01  WANG Xuerui  <git@xen0n.name>
-
-	opcodes: LoongArch: add "ret" instruction to reduce typing
-	This syntactic sugar is present in both classical and emerging
-	architectures, like Alpha, SPARC and RISC-V, and assembler macros
-	doing the same thing can already be found in the wild e.g. [1], proving
-	the feature's popularity. It's better to provide support directly in the
-	assembler so downstream users wouldn't have to re-invent this over and
-	over again.
-
-	[1]: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/loongarch/sysdep.h;h=c586df819cd90;hb=HEAD#l28
-
-2022-08-01  WANG Xuerui  <git@xen0n.name>
-
-	opcodes: LoongArch: make all non-native jumps desugar to canonical b{lt/ge}[u] forms
-	Also re-order the jump/branch opcodes while at it, so that insns are
-	sorted in ascending order according to opcodes, and the label form
-	preceding the real definition.
-
-2022-08-01  Alan Modra  <amodra@gmail.com>
-
-	Get rid of fprintf_vma and sprintf_vma
-	These two macros print either a 16 digit hex number or an 8 digit
-	hex number.  Unfortunately they depend on both target and host, which
-	means that the output for 32-bit targets may be either 8 or 16 hex
-	digits.
-
-	Replace them in most cases with code that prints a bfd_vma using
-	PRIx64.  In some cases, deliberately lose the leading zeros.
-	This change some output, notably in base/offset fields of m68k
-	disassembly which I think looks better that way, and in error
-	messages.  I've kept leading zeros in symbol dumps (objdump -t)
-	and in PE header dumps.
-
-	bfd/
-		* bfd-in.h (fprintf_vma, sprintf_vma, printf_vma): Delete.
-		* bfd-in2.h: Regenerate.
-		* bfd.c (bfd_sprintf_vma): Don't use sprintf_vma.
-		(bfd_fprintf_vma): Don't use fprintf_vma.
-		* coff-rs6000.c (xcoff_reloc_type_tls): Don't use sprintf_vma.
-		Instead use PRIx64 to print bfd_vma values.
-		(xcoff_ppc_relocate_section): Likewise.
-		* cofflink.c (_bfd_coff_write_global_sym): Likewise.
-		* mmo.c (mmo_write_symbols_and_terminator): Likewise.
-		* srec.c (srec_write_symbols): Likewise.
-		* elf32-xtensa.c (print_r_reloc): Similarly for fprintf_vma.
-		* pei-x86_64.c (pex64_dump_xdata): Likewise.
-		(pex64_bfd_print_pdata_section): Likewise.
-		* som.c (som_print_symbol): Likewise.
-		* ecoff.c (_bfd_ecoff_print_symbol): Use bfd_fprintf_vma.
-	opcodes/
-		* dis-buf.c (perror_memory, generic_print_address): Don't use
-		sprintf_vma.  Instead use PRIx64 to print bfd_vma values.
-		* i386-dis.c (print_operand_value, print_displacement): Likewise.
-		* m68k-dis.c (print_base, print_indexed): Likewise.
-		* ns32k-dis.c (print_insn_arg): Likewise.
-		* ia64-gen.c (_opcode_int64_low, _opcode_int64_high): Delete.
-		(opcode_fprintf_vma): Delete.
-		(print_main_table): Use PRIx64 to print opcode.
-	binutils/
-		* od-macho.c: Replace all uses of printf_vma with bfd_printf_vma.
-		* objcopy.c (copy_object): Don't use sprintf_vma.  Instead use
-		PRIx64 to print bfd_vma values.
-		(copy_main): Likewise.
-		* readelf.c (CHECK_ENTSIZE_VALUES): Likewise.
-		(dynamic_section_mips_val): Likewise.
-		(print_vma): Don't use printf_vma.  Instead use PRIx64 to print
-		bfd_vma values.
-		(dump_ia64_vms_dynamic_fixups): Likewise.
-		(process_version_sections): Likewise.
-		* rddbg.c (stab_context): Likewise.
-	gas/
-		* config/tc-i386.c (offset_in_range): Don't use sprintf_vma.
-		Instead use PRIx64 to print bfd_vma values.
-		(md_assemble): Likewise.
-		* config/tc-mips.c (load_register, macro): Likewise.
-		* messages.c (as_internal_value_out_of_range): Likewise.
-		* read.c (emit_expr_with_reloc): Likewise.
-		* config/tc-ia64.c (note_register_values): Don't use fprintf_vma.
-		Instead use PRIx64 to print bfd_vma values.
-		(print_dependency): Likewise.
-		* listing.c (list_symbol_table): Use bfd_sprintf_vma.
-		* symbols.c (print_symbol_value_1): Use %p to print pointers.
-		(print_binary): Likewise.
-		(print_expr_1): Use PRIx64 to print bfd_vma values.
-		* write.c (print_fixup): Use %p to print pointers.  Don't use
-		fprintf_vma.
-		* testsuite/gas/all/overflow.l: Update expected output.
-		* testsuite/gas/m68k/mcf-mov3q.d: Likewise.
-		* testsuite/gas/m68k/operands.d: Likewise.
-		* testsuite/gas/s12z/truncated.d: Likewise.
-	ld/
-		* deffilep.y (def_file_print): Don't use fprintf_vma.  Instead
-		use PRIx64 to print bfd_vma values.
-		* emultempl/armelf.em (gld${EMULATION_NAME}_finish): Don't use
-		sprintf_vma.  Instead use PRIx64 to print bfd_vma values.
-		* emultempl/pe.em (gld${EMULATION_NAME}_finish): Likewise.
-		* ldlang.c (lang_map): Use %V to print region origin.
-		(lang_one_common): Don't use sprintf_vma.
-		* ldmisc.c (vfinfo): Don't use fprintf_vma or sprintf_vma.
-		* pe-dll.c (pe_dll_generate_def_file): Likewise.
-	gdb/
-		* remote.c (remote_target::trace_set_readonly_regions): Replace
-		uses of sprintf_vma with bfd_sprintf_vma.
-
-2022-08-01  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Set defaults to exec stack 0.
-
-2022-08-01  Alan Modra  <amodra@gmail.com>
-
-	libctf: Avoid use of uninitialised variables
-		* ctf-link.c (ctf_link_add_ctf_internal): Don't free uninitialised
-		pointers.
-
-2022-08-01  Alan Modra  <amodra@gmail.com>
-
-	PR29348, BFD_VMA_FMT wrong
-	There is a problem with my commit 0e3c1eebb2, which replaced
-	bfd_uint64_t with uint64_t: Some hosts typedef int64_t to long long
-	even when long is the same size as long long.  That confuses the code
-	choosing one of "l", "ll", or "I64" for BFD_VMA_FMT, and results in
-	warnings.
-
-	Write a direct configure test for the printf int64_t style instead.
-	This removes the last use of BFD_HOST_64BIT_LONG, so delete that.
-	Note that the changes to configure.com are pure guesswork.
-
-		PR 29348
-		* bfd-in.h (BFD_HOST_64BIT_LONG): Don't define.
-		(BFD_VMA_FMT): Define using BFD_INT64_FMT when 64-bit.
-		(bfd_vma, bfd_signed_vma): Move comments to 64-bit typedefs.
-		* configure.ac (BFD_HOST_64BIT_LONG): Delete.
-		(BFD_INT64_FMT): New config test.
-		* configure.com: Update similarly.
-		* Makefile.in: Regenerate.
-		* bfd-in2.h: Regenerate.
-		* configure: Regenerate.
-
-2022-08-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/literals.exp with aarch64
-	On aarch64-linux, I run into:
-	...
-	(gdb) print 16#ffffffffffffffff#^M
-	$7 = 18446744073709551615^M
-	(gdb) FAIL: gdb.ada/literals.exp: print 16#ffffffffffffffff#
-	...
-	while on x86_64-linux instead, I get:
-	...
-	(gdb) print 16#ffffffffffffffff#^M
-	$7 = -1^M
-	(gdb) PASS: gdb.ada/literals.exp: print 16#ffffffffffffffff#
-	...
-
-	We can easily reproduce this on x86_64-linux using:
-	...
-	$ gdb -q -batch -ex "set lang ada" -ex "set arch i386" \
-	  -ex "print 16#ffffffffffffffff#"
-	$1 = -1
-	$ gdb -q -batch -ex "set lang ada" -ex "set arch aarch64" \
-	  -ex "print 16#ffffffffffffffff#"
-	$1 = 18446744073709551615
-	...
-
-	With i386, we have:
-	...
-	(gdb) p int_bits
-	$3 = 32
-	(gdb) p long_bits
-	$4 = 32
-	(gdb) p long_long_bits
-	$5 = 64
-	...
-	and so in processInt we hit the fits-in-unsigned-long-long case where we use
-	as type long long:
-	...
-	      /* Note: Interprets ULLONG_MAX as -1.  */
-	      yylval.typed_val.type = type_long_long (par_state);
-	...
-
-	With aarch64, we have instead:
-	...
-	(gdb) p int_bits
-	$1 = 32
-	(gdb) p long_bits
-	$2 = 64
-	(gdb) p long_long_bits
-	$3 = 64
-	...
-	and so in processInt we hit the fits-in-unsigned-long case where we use
-	as type unsigned long:
-	...
-	      yylval.typed_val.type
-	        = builtin_type (par_state->gdbarch ())->builtin_unsigned_long;
-	...
-
-	It's not clear why for ada we're using long long for the
-	fits-in-unsigned-long-long case.
-
-	Fix this by using unsigned long long for the fits-in-unsigned-long-long case,
-	meaning the new reference output is 18446744073709551615 instead of -1.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29416
-
-2022-07-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: add macros test for source files compiled in various ways
-	Using different ways of passing source file paths to compilers results n
-	different file and directory paths in the line header.  For example:
-
-	  - gcc foo.c
-	  - gcc ./foo.c
-	  - gcc ../cwd/foo.c
-	  - gcc $PWD/foo.c
-
-	Because of this, GDB sometimes failed to look up macros.  The previous
-	patch fixed that as much as possible.  This patch adds the corresponding
-	tests.
-
-	Add both a DWARF assembler-based test and a regular test.  The DWARF
-	assembled-based one tests some hard-coded debug info based on what I
-	have observed some specific versions of gcc and clang generate.  We want
-	to make sure that GDB keeps handling all these cases correctly, even if
-	it's not always clear whether they are really valid DWARF.  Also, they
-	will be tested no matter what the current target compiler is for a given
-	test run.
-
-	The regular test is compiled using the target compiler, so it may help
-	find bugs when testing against some other toolchains than what was used
-	to generate the DWARF assembler-based test.
-
-	For the DWARF assembler-based test, add to testsuite/lib/dwarf.exp the
-	necessary code to generate a DWARF5 .debug_macro section.  The design of
-	the new procs is based on what was done for rnglists and loclists.
-
-	To test against a specific compiler one can use this command, for
-	example:
-
-	    $ make check TESTS="gdb.base/macro-source-path.exp" RUNTESTFLAGS="CC_FOR_TARGET=clang --target_board unix/gdb:debug_flags=-gdwarf-5"
-
-	Change-Id: Iab8da498e57d10cc2a3d09ea136685d9278cfcf6
-
-2022-07-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove code to prepend comp dir in buildsym_compunit::start_subfile
-	The bit of code removed by this patch was introduced to fix the same
-	kind of problem that the previous patch fixes.  That is, to try to match
-	existing subfiles when different name forms are used to refer to a same
-	file.
-
-	The thread for the patch that introduced this code is:
-
-	  https://pi.simark.ca/gdb-patches/45F8CBDF.9090501@hq.tensilica.com/
-
-	The important bits are that the compiler produced a compilation unit
-	with:
-
-	    DW_AT_name : test.c
-	    DW_AT_comp_dir : /home/maxim/W/BadgerPass/PR_14999
-
-	and DWARF v2 line table with:
-
-	    The Directory Table:
-	    /home/maxim/W/BadgerPass/PR_14999
-
-	    The File Name Table:
-	    Entry Dir Time Size Name
-	    1 1 1173897037 152 test.c
-
-	Because the main symtab was created with only DW_AT_name, it was named
-	"test.c".  And because the path built from the line header contained the
-	"directory" part, it was "/home/maxim/W/BadgerPass/PR_14999/test.c".
-	Because of this mismatch, thing didn't work, so they added this code to
-	prepend the compilation directory to the existing subfile names, so that
-	this specific case would work.
-
-	With the changes done earlier in this series, where subfiles are
-	identified using the "most complete path possible", this case would be
-	handled.  The main subfile's would be
-	"/home/maxim/W/BadgerPass/PR_14999/test.c" from the start
-	(DW_AT_comp_dir + DW_AT_name).  It's not so different from some DWARF 5
-	cases actually, which make the compilation directory explicit in the
-	line table header.
-
-	I therefore think that this code is no longer needed.  It does feel like
-	a quick hack to make one specific case work, and we have a more general
-	solution now.  Also, this code was introduced to work around a problem
-	in the DWARF debug info or the DWARF debug info reader.  In general, I
-	think it's preferable for these hacks to be located in the specific
-	debug info reader code, rather than in the common code.
-
-	Even though this code was added to work around a DWARF reader problem,
-	it's possible that some other debug info reader has started taking
-	advantage of this code in the mean time.  It's very difficult to
-	know or verify, but I think the likelyhood is quite small, so I'm
-	proposing to get rid of it to simplify things a little bit.
-
-	Change-Id: I710b8ec0d449d1b110d67ddf9fcbdb2b37108306
-
-2022-07-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add "id" fields to identify symtabs and subfiles
-	Printing macros defined in the main source file doesn't work reliably
-	using various toolchains, especially when DWARF 5 is used.  For example,
-	using the binaries produced by either of these commands:
-
-	    $ gcc --version
-	    gcc (GCC) 11.2.0
-	    $ ld --version
-	    GNU ld (GNU Binutils) 2.38
-	    $ gcc test.c -g3 -gdwarf-5
-
-	    $ clang --version
-	    clang version 13.0.1
-	    $ clang test.c -gdwarf-5 -fdebug-macro
-
-	I get:
-
-	    $ ./gdb -nx -q --data-directory=data-directory a.out
-	    (gdb) start
-	    Temporary breakpoint 1 at 0x111d: file test.c, line 6.
-	    Starting program: /home/simark/build/binutils-gdb-one-target/gdb/a.out
-
-	    Temporary breakpoint 1, main () at test.c:6
-	    6         return ZERO;
-	    (gdb) p ZERO
-	    No symbol "ZERO" in current context.
-
-	When starting to investigate this (taking the gcc-compiled binary as an
-	example), we see that GDB fails to look up the appropriate macro scope
-	when evaluating the expression.  While stopped in
-	macro_lookup_inclusion:
-
-	    (top-gdb) p name
-	    $1 = 0x62100011a980 "test.c"
-	    (top-gdb) p source.filename
-	    $2 = 0x62100011a9a0 "/home/simark/build/binutils-gdb-one-target/gdb/test.c"
-
-	`source` is the macro_source_file that we would expect GDB to find.
-	`name` comes from the symtab::filename field of the symtab we are
-	stopped in.  GDB doesn't find the appropriate macro_source_file because
-	the name of the macro_source_file doesn't match exactly the name of the
-	symtab.
-
-	The name of the main symtab comes from the compilation unit's
-	DW_AT_name, passed to the buildsym_compunit's constructor:
-
-	  https://gitlab.com/gnutools/binutils-gdb/-/blob/4815d6125ec580cc02a1094d61b8c9d1cc83c0a1/gdb/dwarf2/read.c#L10627-10630
-
-	The contents of DW_AT_name, in this case, is "test.c".  It is typically
-	(what I witnessed all compilers do) the same string that was passed to
-	the compiler on the command-line.
-
-	The name of the macro_source_file comes from the line number program
-	header's file table, from the call to the line_header::file_file_name
-	method:
-
-	  https://gitlab.com/gnutools/binutils-gdb/-/blob/4815d6125ec580cc02a1094d61b8c9d1cc83c0a1/gdb/dwarf2/macro.c#L54-65
-
-	line_header::file_file_name prepends the directory path that the file
-	entry refers to, in the file table (if the file name is not already
-	absolute).  In this case, the file name is "test.c", appended to the
-	directory "/home/simark/build/binutils-gdb-one-target/gdb".
-
-	Because the symtab's name is not created the same way as the
-	macro_source_file's name is created, we get this mismatch.  GDB fails to
-	find the appropriate macro scope for the symtab, and we can't print
-	macros when stopped in that symtab.
-
-	To make this work, we must ensure that paths produced in these two ways
-	end up identical.  This can be tricky because of the different ways a
-	path can be passed to the compiler by the user.
-
-	Another thing to consider is that while the main symtab's name (or
-	subfile, before it becomes a symtab) is created using DW_AT_name, the
-	main symtab is also referred to using its entry in the line table
-	header's file table, when processing the line table.  We must therefore
-	ensure that the same name is produced in both cases, so that a call to
-	"start_subfile" for the main subfile will correctly find the
-	already-created subfile, created by buildsym_compunit's constructor.  If
-	we fail to do that, things still often work, because of a fallback: the
-	watch_main_source_file_lossage method.  This method determines that if
-	the main subfile has no symbols but there exists another subfile with
-	the same basename (e.g. "test.c") that does have symbols, it's probably
-	because there was some filename mismatch.  So it replaces the main
-	subfile with that other subfile.  I think that heuristic is useful as a
-	last effort to work around any bug or bad debug info, but I don't think
-	we should design things such as to rely on it.  It's a heuristic, it can
-	get things wrong.  So in my search for a fix, it is important that given
-	some good debug info, we don't end up relying on that for things to
-	work.
-
-	A first attempt at fixing this was to try to prepend the compilation
-	directory here or not prepend it there.  In practice, because of all the
-	possible combinations of debug info the compilers produce, it was not
-	possible to get something that would produce reliable, consistent paths.
-
-	Another attempt at fixing this was to make both macro_source_file
-	objects and symtab objects use the most complete form of path possible.
-	That means to prepend directories at least until we get an absolute
-	path.  In theory, we should end up with the same path in all cases.
-	This generally worked, but because it changed the symtab names, it
-	resulted in user-visible changes (for example, paths to source files in
-	Breakpoint hit messages becoming always absolute).  I didn't find this
-	very good, first because there is a "set filename-display" setting that
-	lets the user control how they want the paths to be displayed, and that
-	would suddenly make this setting completely ineffective (although even
-	today, it is a bit dependent on the debug info).  Second, it would
-	require a good amount of testsuite tweaks to make tests accept these
-	suddenly absolute paths.
-
-	This new patch is a slight variation of that: it adds a new field called
-	"filename_for_id" in struct symtab and struct subfile, next to the
-	existing filename field. The goal is to separate the internal ids used
-	for finding objects from the names used for presentation.  This field is
-	used for identifying subfiles, symtabs and macro_source_files
-	internally.  For DWARF symtabs, this new field is meant to contain the
-	"most complete possible" path, as discussed above.  So for a given file,
-	it must always be in the same form, everywhere.  The existing
-	symtab::filename field remains the one used for printing to the user, so
-	there shouldn't be any change in how paths are printed.
-
-	Changes in the core symtab files are:
-
-	 - Add "name_for_id" and "filename_for_id" fields to "struct subfile"
-	   and "struct symtab", next to existing "name" and "filename" fields.
-	 - Make buildsym_compunit::buildsym_compunit and
-	   buildsym_compunit::start_subfile accept a "name_for_id" parameter
-	   next to the existing "name" ones.
-	 - Make buildsym_compunit::start_subfile use "name_for_id" for looking
-	   up existing subfiles.  This is the key thing for making calls
-	   to start_subfile for the main source file look up the existing
-	   subfile successfully, and avoid relying on
-	   watch_main_source_file_lossage.
-	 - Make sal_macro_scope pass "filename_for_id", rather than "filename",
-	   to macro_lookup_inclusion.  This is the key thing to making the
-	   lookup work and macro printing work.
-
-	Changes in the DWARF files are:
-
-	 - Make line_header::file_file_name return the "most complete possible"
-	   name.  The only pre-existing user of this method is the macro code,
-	   to give the macro_source_file objects their name.  And we now want
-	   them to have this "most complete possible" name, which will match the
-	   corresponding symtab's "filename_for_id".
-	 - Make dwarf2_cu::start_compunit_symtab pass the "most complete
-	   possible" name for the main symtab's "filename_for_id".  In this
-	   context, where the info comes from the compilation unit's DW_AT_name
-	   / DW_AT_comp_dir, it means prepending DW_AT_comp_dir to DW_AT_name if
-	   DW_AT_name is not already absolute.
-	 - Change dwarf2_start_subfile to build a name_for_id for the subfile
-	   being started.  The simplest way is to re-use
-	   line_header::file_file_name, since the callers always have a
-	   file_entry handy.  This ensures that it will get the exact same path
-	   representation as the macro code does, for the same file (since it
-	   also uses line_header::file_file_name).
-	 - Update calls to allocate_symtab to pass the "name_for_id" from the
-	   subfile.
-
-	Tests exercising all this are added by the following patch.
-
-	Of all the cases I tried, the only one I found that ends up relying on
-	watch_main_source_file_lossage is the following one:
-
-	    $ clang --version
-	    clang version 13.0.1
-	    Target: x86_64-pc-linux-gnu
-	    Thread model: posix
-	    InstalledDir: /usr/bin
-	    $ clang  ./test.c -g3 -O0 -gdwarf-4
-	    $ ./gdb -nx --data-directory=data-directory -q -readnow -iex "set debug symtab-create 1"  a.out
-	    ...
-	    [symtab-create] start_subfile: name = test.c, name_for_id = /home/simark/build/binutils-gdb-one-target/gdb/test.c
-	    [symtab-create] start_subfile: name = ./test.c, name_for_id = /home/simark/build/binutils-gdb-one-target/gdb/./test.c
-	    [symtab-create] start_subfile: name = ./test.c, name_for_id = /home/simark/build/binutils-gdb-one-target/gdb/./test.c
-	    [symtab-create] start_subfile: found existing symtab with name_for_id /home/simark/build/binutils-gdb-one-target/gdb/./test.c (/home/simark/build/binutils-gdb-one-target/gdb/./test.c)
-	    [symtab-create] watch_main_source_file_lossage: using subfile ./test.c as the main subfile
-
-	As we can see, there are two forms used for "test.c", one with a "." and
-	one without.  This comes from the fact that the compilation unit DIE
-	contains:
-
-	    DW_AT_name ("test.c")
-	    DW_AT_comp_dir ("/home/simark/build/binutils-gdb-one-target/gdb")
-
-	without a ".", and the line table for that file contains:
-
-	    include_directories[  1] = "."
-	    file_names[  1]:
-	               name: "test.c"
-	          dir_index: 1
-
-	When assembling the filename from that entry, we get a ".".
-
-	It is a bit unexpected that the main filename resulting from the line
-	table header does not match exactly the name in the compilation unit.
-	For instance, gcc uses "./test.c" for the DW_AT_name, which gives
-	identical paths in the compilation unit and in the line table header.
-
-	Similarly, with DWARF 5:
-
-	    $ clang  ./test.c -g3 -O0 -gdwarf-5
-
-	clang create two entries that refer to the same file but are of in a different
-	form.
-
-	    include_directories[  0] = "/home/simark/build/binutils-gdb-one-target/gdb"
-	    include_directories[  1] = "."
-	    file_names[  0]:
-	               name: "test.c"
-	          dir_index: 0
-	    file_names[  1]:
-	               name: "test.c"
-	          dir_index: 1
-
-	The first file name produces a path without a "." while the second does.
-	This is not caught by watch_main_source_file_lossage, because of
-	dwarf_decode_lines that creates a symtab for each file entry in the line
-	table.  It therefore appears as "non-empty" to
-	watch_main_source_file_lossage.  This results in two symtabs:
-
-	    (gdb) maintenance info symtabs
-	    { objfile /home/simark/build/binutils-gdb-one-target/gdb/a.out ((struct objfile *) 0x613000005d00)
-	      { ((struct compunit_symtab *) 0x62100011aca0)
-	        debugformat DWARF 5
-	        producer clang version 13.0.1
-	        name test.c
-	        dirname /home/simark/build/binutils-gdb-one-target/gdb
-	        blockvector ((struct blockvector *) 0x621000129ec0)
-	        user ((struct compunit_symtab *) (null))
-	            { symtab test.c ((struct symtab *) 0x62100011ad20)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	            { symtab ./test.c ((struct symtab *) 0x62100011ad60)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x621000129ef0)
-	            }
-	      }
-	    }
-
-	I am not sure what is the consequence of this, but this is also what
-	happens before my patch, so I think its acceptable to leave it as-is.
-
-	To handle these two cases nicely, I think we will need a function that
-	removes the unnecessary "." from path names, something that can be done
-	later.
-
-	Finally, I made a change in find_file_and_directory is necessary to
-	avoid breaking test
-
-	    gdb.dwarf2/dw2-compdir-oldgcc.exp: info source gcc42
-
-	Without that change, we would get:
-
-	    (gdb) info source
-	    Current source file is /dir/d/dw2-compdir-oldgcc42.S
-	    Compilation directory is /dir/d
-
-	whereas the expected result is:
-
-	    (gdb) info source
-	    Current source file is dw2-compdir-oldgcc42.S
-	    Compilation directory is /dir/d
-
-	This test was added here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2012-November/098144.html
-
-	Long story short, GCC <= 4.2 apparently had a bug where it would
-	generate a DW_AT_name with a full path ("/dir/d/dw2-compdir-oldgcc42.S")
-	and no DW_AT_comp_dir.  The line table has one entry with filename
-	"dw2-compdir-oldgcc42.S", which refers to directory 0.  Directory 0
-	normally refers to the compilation unit's comp dir, but it is
-	non-existent in this case.
-
-	This caused some symtab lookup problems, and to work around them, some
-	workaround was added, which today reads as:
-
-	    if (res.get_comp_dir () == nullptr
-	        && producer_is_gcc_lt_4_3 (cu)
-	        && res.get_name () != nullptr
-	        && IS_ABSOLUTE_PATH (res.get_name ()))
-	      res.set_comp_dir (ldirname (res.get_name ()));
-
-	Source: https://gitlab.com/gnutools/binutils-gdb/-/blob/6577f365ebdee7dda71cb996efa29d3714cbccd0/gdb/dwarf2/read.c#L9428-9432
-
-	It extracts an artificial DW_AT_comp_dir from DW_AT_name, if there is no
-	DW_AT_comp_dir and DW_AT_name is absolute.
-
-	Prior to my patch, a subfile would get created with filename
-	"/dir/d/dw2-compdir-oldgcc42.S", from DW_AT_name, and another would get
-	created with filename "dw2-compdir-oldgcc42.S" from the line table's
-	file table.  Then watch_main_source_file_lossage would kick in and merge
-	them, keeping only the "dw2-compdir-oldgcc42.S" one:
-
-	    [symtab-create] start_subfile: name = /dir/d/dw2-compdir-oldgcc42.S
-	    [symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S
-	    [symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S
-	    [symtab-create] start_subfile: found existing symtab with name dw2-compdir-oldgcc42.S (dw2-compdir-oldgcc42.S)
-	    [symtab-create] watch_main_source_file_lossage: using subfile dw2-compdir-oldgcc42.S as the main subfile
-
-	And so "info source" would show "dw2-compdir-oldgcc42.S" as the
-	filename.
-
-	With my patch applied, but without the change in
-	find_file_and_directory, both DW_AT_name and the line table would try to
-	start a subfile with the same filename_for_id, and there was no need for
-	watch_main_source_file_lossage - which is what we want:
-
-	[symtab-create] start_subfile: name = /dir/d/dw2-compdir-oldgcc42.S, name_for_id = /dir/d/dw2-compdir-oldgcc42.S
-	[symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S, name_for_id = /dir/d/dw2-compdir-oldgcc42.S
-	[symtab-create] start_subfile: found existing symtab with name_for_id /dir/d/dw2-compdir-oldgcc42.S (/dir/d/dw2-compdir-oldgcc42.S)
-	[symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S, name_for_id = /dir/d/dw2-compdir-oldgcc42.S
-	[symtab-create] start_subfile: found existing symtab with name_for_id /dir/d/dw2-compdir-oldgcc42.S (/dir/d/dw2-compdir-oldgcc42.S)
-
-	But since the one with name == "/dir/d/dw2-compdir-oldgcc42.S", coming
-	from DW_AT_name, gets created first, it wins, and the symtab ends up
-	with "/dir/d/dw2-compdir-oldgcc42.S" as the name, "info source" shows
-	"/dir/d/dw2-compdir-oldgcc42.S" and the test breaks.
-
-	This is not wrong per-se, after all DW_AT_name is
-	"/dir/d/dw2-compdir-oldgcc42.S", so it wouldn't be wrong to report the
-	current source file as "/dir/d/dw2-compdir-oldgcc42.S".  If you compile
-	a file passing "/an/absolute/path.c", DW_AT_name typically contains (at
-	least with GCC) "/an/absolute/path.c" and GDB tells you that the source
-	file is "/an/absolute/path.c".  But we can also keep the existing
-	behavior fairly easily with a little change in find_file_and_directory.
-	When extracting an artificial DW_AT_comp_dir from DW_AT_name, we now
-	modify the name to just keep the file part.  The result is coherent with
-	what compilers do when you compile a file by just passing its filename
-	("gcc path.c -g"):
-
-	      DW_AT_name        ("path.c")
-	      DW_AT_comp_dir    ("/home/simark/build/binutils-gdb-one-target/gdb")
-
-	With this change, filename_for_id is still the full name,
-	"/dir/d/dw2-compdir-oldgcc42.S", but the filename of the subfile /
-	symtab (what ends up shown by "info source") is just
-	"dw2-compdir-oldgcc42.S", and that makes the test happy.
-
-	Change-Id: I8b5cc4bb3052afdb172ee815c051187290566307
-
-2022-07-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/dwarf: pass a file_entry to line_header::file_file_name
-	In the following patch, there will be some callers of file_file_name
-	that will already have access to the file_entry object for which they
-	want the file name.  It would be inefficient to have them pass an index,
-	only for line_header::file_file_name to re-lookup the same file_entry
-	object.  Change line_header::file_file_name to accept a file_entry
-	object reference, instead of an index to look up.
-
-	I think this change makes sense in any case.  Callers that have an index
-	can first obtain a file_entry using line_header::file_name_at or
-	line_header::file_names.
-
-	When passing a file_entry object, we can assume that the file_entry's
-	index is valid, unlike when passing an index.  So, push the special case
-	about an invalid index to the sole current caller of file_file_name,
-	macro_start_file.  I think that error belongs there anyway, since it
-	specifically talks about "bad file number in macro information".
-
-	This requires recording the file index in the file_entry structure, so
-	add that.
-
-	Change-Id: Ic6e44c407539d92b7863d7ba82405ade17f384ad
-
-2022-07-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/dwarf: pass compilation directory to line header
-	The following patch changes line_header::file_file_name to prepend the
-	compilation directory to the file name, if needed.  For that, the line
-	header needs to know about the compilation directory.  Prepare for that
-	by adding a constructor that takes it as a parameter, and passing the
-	value down everywhere needed.  Add a second constructor for the special
-	case of building a line_header for doing a hash table lookup, since that
-	case doesn't require a compilation directory value.
-
-	Change-Id: Iba3ba0293e4e2d13a64b257cf9a3094684d54330
-
-2022-07-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add debug prints in buildsym.c
-	Add a few debug prints in buildsym.c that were helpful to me in writing
-	this series.
-
-	Change-Id: If10a818feaee3ce1b78a2a254013b62dd578002b
-
-2022-07-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: introduce symtab_create_debug_printf
-	Introduce symtab_create_debug_printf and symtab_create_debug_printf_v,
-	to print the debug messages enabled by "set debug symtab-create".
-
-	Change-Id: I442500903f72d4635c2dd9eaef770111f317dc04
-
-2022-07-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/convvar_comp.exp with broken debug info
-	On aarch64-linux I run into this failure with gcc 7.5.0:
-	...
-	(gdb) print $item.started^M
-	$1 = (-5312, 65535, 4202476)^M
-	(gdb) FAIL: gdb.ada/convvar_comp.exp: print $item.started
-	...
-
-	The test-case expects (0, 0, 0), but we're getting another value due to
-	incorrect location information.
-
-	Work around this by:
-	- first printing the value, and then
-	- verifying that the convenience variable matches the printed value.
-
-	I've verified that the test-case still checks what it should by disabling
-	the fix from commit cc0e770c0d0 ("memory error printing component of record
-	from convenience variable") and observing the test-case fail.
-
-	Tested on x86_64-linux and aarch64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29420
-
-2022-07-29  Alan Modra  <amodra@gmail.com>
-
-	Re: PR16005, avr linker crash on a particular instruction sequence with --relax
-	The last patch wasn't so clever.  The contents in fact have already
-	been read, just not cached where relax_delete_bytes expects them.
-	relax_delete_bytes also modifies relocs and syms, so they should be
-	cached too.
-
-		PR 16005
-		* elf32-avr.c (elf32_avr_relax_delete_bytes): Revert last change.
-		(elf32_avr_relax_section): Cache contents, relocs and syms
-		before calling relax_delete_bytes.
-
-2022-07-29  Andrew Burgess  <aburgess@redhat.com>
-
-	libopcodes/aarch64: add support for disassembler styling
-	This commit enables disassembler styling for AArch64.  After this
-	commit it is possible to have objdump style AArch64 disassembler
-	output (using --disassembler-color option).  Once the required GDB
-	patches are merged, GDB will also style the disassembler output.
-
-	The changes to support styling are mostly split between two files
-	opcodes/aarch64-dis.c and opcodes/aarch64-opc.c.
-
-	The entry point for the AArch64 disassembler can be found in
-	aarch64-dis.c, this file handles printing the instruction mnemonics,
-	and assembler directives (e.g. '.byte', '.word', etc).  Some operands,
-	mostly relating to assembler directives are also printed from this
-	file.  This commit changes all of this to pass through suitable
-	styling information.
-
-	However, for most "normal" instructions, the instruction operands are
-	printed using a two step process.  From aarch64-dis.c, in the
-	print_operands function, the function aarch64_print_operand is called,
-	this function is in aarch64-opc.c, and converts an instruction operand
-	into a string.  Then, back in print_operands (aarch64-dis.c), the
-	operand string is printed.
-
-	Unfortunately, the string returned by aarch64_print_operand can be
-	quite complex, it will include syntax elements, like '[' and ']', in
-	addition to register names and immediate values.  In some cases, a
-	single operand will expand into what will appear (to the user) as
-	multiple operands separated with a ','.
-
-	This makes the task of styling more complex, all these different
-	components need to by styled differently, so we need to get the
-	styling information out of aarch64_print_operand in some way.
-
-	The solution that I propose here is similar to the solution that I
-	used for the i386 disassembler.
-
-	Currently, aarch64_print_operand uses snprintf to write the operand
-	text into a buffer provided by the caller.
-
-	What I propose is that we pass an extra argument to the
-	aarch64_print_operand function, this argument will be a structure, the
-	structure contains a callback function and some state.
-
-	When aarch64_print_operand needs to format part of its output this can
-	be done by using the callback function within the new structure, this
-	callback returns a string with special embedded markers that indicate
-	which mode should be used for each piece of text.  Back in
-	aarch64-dis.c we can spot these special style markers and use this to
-	split the disassembler output up and apply the correct style to each
-	piece.
-
-	To make aarch64-opc.c clearer a series of new static functions have
-	been added, e.g. 'style_reg', 'style_imm', etc.  Each of these
-	functions formats a piece of text in a different style, 'register' and
-	'immediate' in this case.
-
-	Here's an example taken from aarch64-opc.c of the new functions in
-	use:
-
-	    snprintf (buf, size, "[%s, %s]!",
-	              style_reg (styler, base),
-	              style_imm (styler, "#%d", opnd->addr.offset.imm));
-
-	The aarch64_print_operand function is also called from the assembler
-	to aid in printing diagnostic messages.  Right now I have no plans to
-	add styling to the assembler output, and so, the callback function
-	used in the assembler ignores the styling information and just returns
-	an plain string.
-
-	I've used the source files in gas/testsuite/gas/aarch64/ for testing,
-	and have manually gone through and checked that the styling looks
-	reasonable, however, I'm not an AArch64 expert, so it is possible that
-	the odd piece is styled incorrectly.  Please point out any mistakes
-	I've made.
-
-	With objdump disassembler color turned off, there should be no change
-	in the output after this commit.
-
-2022-07-29  Nick Clifton  <nickc@redhat.com>
-
-	Stop the linker from complaining about unrecognised DW_FORM-rnglistx and DW_FORM_loclistx format attributes.
-		PR 29424
-		* dwarf2.c (read_attribute_value): Handle DW_FORM_rnglistx and
-		DW_FORM_loclistx.
-
-2022-07-29  Alan Modra  <amodra@gmail.com>
-
-	PR16005, avr linker crash on a particular instruction sequence with --relax
-	It's possible for relax_delete_bytes to be called with section
-	contents NULL, as demonstrated by the testcase in this PR.
-
-		PR 16005
-		* elf32-avr.c (elf32_avr_relax_delete_bytes): Get section contents
-		if not already available.
-
-2022-07-29  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop stray NoRex64 from KeyLocker insns
-	It's entirely unclear why some of the KeyLocker insns had NoRex64 on
-	them - there's nothing here which could cause emission of REX.W (except
-	of course a user-specified "rex.w", which we ought to honor anyway).
-
-2022-07-29  Jan Beulich  <jbeulich@suse.com>
-
-	Arm64: re-work PR gas/27217 fix
-	The original approach has resulted in anomalies when . is involved in an
-	operand of one of the affected insns. We cannot leave . unresolved, or
-	else it'll be resolved at the end of assembly, then pointing to the
-	address of a section rather than at the insn of interest. Undo part of
-	the original change and instead check whether a relocation cannot be
-	omitted in md_apply_fix().
-
-	By resolving the expressions again, equates (see the adjustment of the
-	respective testcase) will now be evaluated, and hence relocations
-	against absolute addresses be emitted. This ought to be okay as long as
-	the equates aren't global (and hence can't be overridden). If a need
-	for such arises, quite likely the only way to address this would be to
-	invent yet another expression evaluation mode, leaving everything
-	_except_ . un-evaluated.
-
-	There's a further anomaly in how transitive equates are handled. In
-
-		.set x, 0x12345678
-		.eqv bar, x
-	foo:
-		adrp	x0, x
-		add	x0, x0, :lo12:x
-
-		adrp	x0, bar
-		add	x0, x0, :lo12:bar
-
-	the first two relocations are now against *ABS*:0x12345678 (as said
-	above), whereas the latter two relocations would be against x. (Before
-	the change here, the first two relocations are against x and the latter
-	two against bar.) But this is an issue seen elsewhere as well, and would
-	likely require adjustments in the target-independent parts of the
-	assembler instead of trying to hack around this for every target.
-
-2022-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	ld: Extend ac_default_ld_warn_rwx_segments to all SPARC targets [PR29411]
-	As discussed in PR ld/29411, the ld warning
-
-		[...] has a LOAD segment with RWX permissions
-
-	needs to be disabled on all SPARC targets, not just Solaris/SPARC: the
-	.plt section is required to be RWX by the 32-bit SPARC ELF psABI and the
-	64-bit SPARC Compliance Definition 2.4.1.  Given that ld only supports
-	SPARC ELF targets, this patch implements this.
-
-	Tested on sparc64-unknown-linux-gnu and sparc-sun-solaris2.11.
-
-	2022-07-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-		ld:
-		PR ld/29411
-		* configure.tgt (ac_default_ld_warn_rwx_segments): Extend to all
-		sparc targets.  Expand comment.
-
-2022-07-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/killed-outside.exp on aarch64
-	On aarch64 (and likewise on arm), I run into:
-	...
-	(gdb) PASS: gdb.threads/killed-outside.exp: get pid of inferior
-	Executing on target: kill -9 11516    (timeout = 300)
-	builtin_spawn -ignore SIGHUP kill -9 11516^M
-	continue^M
-	Continuing.^M
-	Unable to fetch general registers: No such process.^M
-	(gdb) [Thread 0xfffff7d511e0 (LWP 11518) exited]^M
-	^M
-	Program terminated with signal SIGKILL, Killed.^M
-	The program no longer exists.^M
-	FAIL: gdb.threads/killed-outside.exp: prompt after first continue (timeout)
-	...
-	due to a mismatch between the actual "No such process" line and the expected
-	one:
-	...
-	set no_such_process_msg "Couldn't get registers: No such process\."
-	...
-
-	Fix this by updating the regexp.
-
-	Tested on aarch64-linux, and x86_64-linux.
-
-2022-07-29  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add `OP_V' to .insn named opcodes
-	This commit adds `OP_V' (OP-V: vector instruction opcode for now
-	ratified `V' extension) to .insn opcode name list.  Although vector
-	instruction encoding is not implemented in `.insn' directive, it will
-	help future implementation of custom vector `.insn'.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (opcode_name_list): Add `OP_V'.
-		* testsuite/gas/riscv/insn.s: Add testcase.
-		* testsuite/gas/riscv/insn.d: Likewise.
-		* testsuite/gas/riscv/insn-dwarf.d: Reflect insn.s update.
-
-2022-07-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-28  Tom Tromey  <tom@tromey.com>
-
-	Remove some unneeded checks in Guile code
-	The Guile code generally checks to see if an htab is non-null before
-	destroying it.  However, the registry code already ensures this, so we
-	can change these checks to asserts and simplify the code a little.
-
-	Change registry to use less memory
-	The registry code creates "registry_data" objects that hold the free
-	function and the index; then the registry keys refer to this object.
-	However, only the index is really useful, and now that registries have
-	a private implementation, just the index can be stored and we can
-	reduce the memory use of registries a little bit.  This also
-	simplifies the code somewhat.
-
-2022-07-28  Tom Tromey  <tom@tromey.com>
-
-	Rewrite registry.h
-	This rewrites registry.h, removing all the macros and replacing it
-	with relatively ordinary template classes.  The result is less code
-	than the previous setup.  It replaces large macros with a relatively
-	straightforward C++ class, and now manages its own cleanup.
-
-	The existing type-safe "key" class is replaced with the equivalent
-	template class.  This approach ended up requiring relatively few
-	changes to the users of the registry code in gdb -- code using the key
-	system just required a small change to the key's declaration.
-
-	All existing users of the old C-like API are now converted to use the
-	type-safe API.  This mostly involved changing explicit deletion
-	functions to be an operator() in a deleter class.
-
-	The old "save/free" two-phase process is removed, and replaced with a
-	single "free" phase.  No existing code used both phases.
-
-	The old "free" callbacks took a parameter for the enclosing container
-	object.  However, this wasn't truly needed and is removed here as
-	well.
-
-2022-07-28  Tom Tromey  <tom@tromey.com>
-
-	Remove some unused functions from guile code
-	The guile code has a couple of unused functions that touch on the
-	registry API.  This patch removes them.
-
-2022-07-28  Tom Tromey  <tom@tromey.com>
-
-	Change allocation of type-copying hash table
-	When an objfile is destroyed, types that are still in use and
-	allocated on that objfile are copied.  A temporary hash map is created
-	during this process, and it is allocated on the destroyed objfile's
-	obstack -- which normally is fine, as that is going to be destroyed
-	shortly anyway.
-
-	However, this approach requires that the objfile be passed to registry
-	destruction, and this won't be possible in the rewritten registry.
-	This patch changes the copied type hash table to simply use the heap
-	instead.  It also removes the 'objfile' parameter from
-	copy_type_recursive, to make this all more clear.
-
-	This patch also fixes an apparent bug in copy_type_recursive.
-	Previously it was copying the dynamic property list to the dying
-	objfile's obstack:
-
-	-      = copy_dynamic_prop_list (&objfile->objfile_obstack,
-
-	However I think this is incorrect -- that obstack is about to be
-	destroyed.
-
-2022-07-28  Tom Tromey  <tom@tromey.com>
-
-	Change address_space to use new and delete
-	This changes address_space to use new and delete, and makes some other
-	small C++-ification changes as well, like changing address_space_num
-	to be a method.
-
-	This patch was needed for the subsequent patch to rewrite the registry
-	system.
-
-2022-07-28  Simon Farre  <simon.farre.cx@gmail.com>
-
-	gdb/python: Add BreakpointLocation type
-	PR python/18385
-
-	v7:
-	This version addresses the issues pointed out by Tom.
-
-	Added nullchecks for Python object creations.
-
-	Changed from using PyLong_FromLong to the gdb_py-versions.
-
-	Re-factored some code to make it look more cohesive.
-
-	Also added the more safe Python reference count decrement PY_XDECREF,
-	even though the BreakpointLocation type is never instantiated by the
-	user (explicitly documented in the docs) decrementing < 0 is made
-	impossible with the safe call.
-
-	Tom pointed out that using the policy class explicitly to decrement a
-	reference counted object was not the way to go, so this has instead been
-	wrapped in a ref_ptr that handles that for us in blocpy_dealloc.
-
-	Moved macro from py-internal to py-breakpoint.c.
-
-	Renamed section at the bottom of commit message "Patch Description".
-
-	v6:
-	This version addresses the points Pedro gave in review to this patch.
-
-	Added the attributes `function`, `fullname` and `thread_groups`
-	as per request by Pedro with the argument that it more resembles the
-	output of the MI-command "-break-list".  Added documentation for these attributes.
-
-	Cleaned up left overs from copy+paste in test suite, removed hard coding
-	of line numbers where possible.
-
-	Refactored some code to use more c++-y style range for loops
-	wrt to breakpoint locations.
-
-	Changed terminology, naming was very inconsistent. Used a variety of "parent",
-	"owner". Now "owner" is the only term used, and the field in the
-	gdb_breakpoint_location_object now also called "owner".
-
-	v5:
-
-	Changes in response to review by Tom Tromey:
-	- Replaced manual INCREF/DECREF calls with
-	  gdbpy_ref ptrs in places where possible.
-	- Fixed non-gdb style conforming formatting
-	- Get parent of bploc increases ref count of parent.
-	- moved bploc Python definition to py-breakpoint.c
-
-	The INCREF of self in bppy_get_locations is due
-	to the individual locations holding a reference to
-	it's owner. This is decremented at de-alloc time.
-
-	The reason why this needs to be here is, if the user writes
-	for instance;
-
-	py loc = gdb.breakpoints()[X].locations[Y]
-
-	The breakpoint owner object is immediately going
-	out of scope (GC'd/dealloced), and the location
-	object requires it to be alive for as long as it is alive.
-
-	Thanks for your review, Tom!
-
-	v4:
-	Fixed remaining doc issues as per request
-	by Eli.
-
-	v3:
-	Rewritten commit message, shortened + reworded,
-	added tests.
-
-	Patch Description
-
-	Currently, the Python API lacks the ability to
-	query breakpoints for their installed locations,
-	and subsequently, can't query any information about them, or
-	enable/disable individual locations.
-
-	This patch solves this by adding Python type gdb.BreakpointLocation.
-	The type is never instantiated by the user of the Python API directly,
-	but is produced by the gdb.Breakpoint.locations attribute returning
-	a list of gdb.BreakpointLocation.
-
-	gdb.Breakpoint.locations:
-	The attribute for retrieving the currently installed breakpoint
-	locations for gdb.Breakpoint. Matches behavior of
-	the "info breakpoints" command in that it only
-	returns the last known or currently inserted breakpoint locations.
-
-	BreakpointLocation contains 7 attributes
-
-	6 read-only attributes:
-	owner: location owner's Python companion object
-	source: file path and line number tuple: (string, long) / None
-	address: installed address of the location
-	function: function name where location was set
-	fullname: fullname where location was set
-	thread_groups: thread groups (inferiors) where location was set.
-
-	1 writeable attribute:
-	enabled: get/set enable/disable this location (bool)
-
-	Access/calls to these, can all throw Python exceptions (documented in
-	the online documentation), and that's due to the nature
-	of how breakpoint locations can be invalidated
-	"behind the scenes", either by them being removed
-	from the original breakpoint or changed,
-	like for instance when a new symbol file is loaded, at
-	which point all breakpoint locations are re-created by GDB.
-	Therefore this patch has chosen to be non-intrusive:
-	it's up to the Python user to re-request the locations if
-	they become invalid.
-
-	Also there's event handlers that handle new object files etc, if a Python
-	user is storing breakpoint locations in some larger state they've
-	built up, refreshing the locations is easy and it only comes
-	with runtime overhead when the Python user wants to use them.
-
-	gdb.BreakpointLocation Python type
-	struct "gdbpy_breakpoint_location_object" is found in python-internal.h
-
-	Its definition, layout, methods and functions
-	are found in the same file as gdb.Breakpoint (py-breakpoint.c)
-
-	1 change was also made to breakpoint.h/c to make it possible
-	to enable and disable a bp_location* specifically,
-	without having its LOC_NUM, as this number
-	also can change arbitrarily behind the scenes.
-
-	Updated docs & news file as per request.
-
-	Testsuite: tests the .source attribute and the disabling of
-	individual locations.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18385
-
-
-	Change-Id: I302c1c50a557ad59d5d18c88ca19014731d736b0
-
-2022-07-28  yaowenbin  <yaowenbin1@huawei.com>
-
-	gdb/gdb_mbuild.sh: use return instead of continue to avoid shellcheck error
-	Fix:
-
-	    In gdb_mbuild.sh line 174:
-	                continue
-	                ^------^ SC2104 (error): In functions, use return instead of continue.
-
-	Change-Id: I5ce95b01359c5cfbb1612f2f48b80bfeea66c96c
-
-2022-07-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-27  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: check for the makeinfo version
-	gprofng/ChangeLog
-	2022-07-25  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29368
-		* configure.ac: Check for the makeinfo version.
-		* configure: Rebuild.
-
-2022-07-26  Keith Seitz  <keiths@redhat.com>
-
-	gdb/linux_nat: Write memory using ptrace if /proc/pid/mem is not writable
-	Commit 05c06f318fd9a112529dfc313e6512b399a645e4 enabled GDB to access
-	memory while threads are running.  It did this by accessing
-	/proc/PID/task/LWP/mem.
-
-	Unfortunately, this interface is not implemented for writing in older
-	kernels (such as RHEL6).  This means that GDB is unable to insert
-	breakpoints on these hosts:
-
-	 $ ./gdb -q gdb -ex start
-	 Reading symbols from gdb...
-	 Temporary breakpoint 1 at 0x40fdd5: file ../../src/gdb/gdb.c, line 28.
-	 Starting program: /home/rhel6/fsf/linux/gdb/gdb
-	 Warning:
-	 Cannot insert breakpoint 1.
-	 Cannot access memory at address 0x40fdd5
-
-	 (gdb)
-
-	Before this patch, linux_proc_xfer_memory_partial (previously called
-	linux_proc_xfer_partial) would return TARGET_XFER_EOF if the write to
-	/proc/PID/mem failed. [More specifically, linux_proc_xfer_partial
-	would not "bother for one word," but the effect is the essentially
-	same.]
-
-	This status was checked by linux_nat_target::xfer_partial, which would
-	then fallback to using ptrace to perform the operation.
-
-	This is the specific hunk that removed the fallback:
-
-	-  xfer = linux_proc_xfer_partial (object, annex, readbuf, writebuf,
-	-                                 offset, len, xfered_len);
-	-  if (xfer != TARGET_XFER_EOF)
-	-    return xfer;
-	+      return linux_proc_xfer_memory_partial (readbuf, writebuf,
-	+                                            offset, len, xfered_len);
-	+    }
-
-	   return inf_ptrace_target::xfer_partial (object, annex, readbuf, writebuf,
-	                                          offset, len, xfered_len);
-
-	This patch makes linux_nat_target::xfer_partial go straight to writing
-	memory via ptrace if writing via /proc/pid/mem is not possible in the
-	running kernel, enabling GDB to insert breakpoints on these older
-	kernels.  Note that a recent patch changed the return status from
-	TARGET_XFER_EOF to TARGET_XFER_E_IO.
-
-	Tested on {unix,native-gdbserver,native-extended-gdbserver}/-m{32,64}
-	on x86_64, s390x, aarch64, and ppc64le.
-
-	Change-Id: If1d884278e8c4ea71d8836bedd56e6a6c242a415
-
-2022-07-26  Pedro Alves  <pedro@palves.net>
-
-	gdb/linux-nat: Check whether /proc/pid/mem is writable
-	Probe whether /proc/pid/mem is writable, by using it to write to a GDB
-	variable.  This will be used in the following patch to avoid falling
-	back to writing to inferior memory with ptrace if /proc/pid/mem _is_
-	writable.
-
-	Change-Id: If87eff0b46cbe5e32a583e2977a9e17d29d0ed3e
-
-2022-07-26  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Handle the function return value
-	According to LoongArch ELF ABI specification [1], handle the function
-	return value of various types.
-
-	[1] https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html#_return_values
-
-2022-07-26  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Fix code style issues
-	Fix some code style issues suggested by Tom Tromey and Andrew Burgess,
-	thank you.
-
-	(1) Put an introductory comment to explain the purpose for some functions.
-
-	(2) Modify the the attribute code to make it portable.
-
-	(3) Remove globals and pass pointers to locals.
-
-	(4) Remove "*" in the subsequent comment lines.
-
-	(5) Put two spaces before "{" and "}".
-
-2022-07-26  Nick Clifton  <nickc@redhat.com>
-
-	Stop the linker from complaining about RWX segments in sparc-solaris targets.
-		PR 29411
-		* configure.tgt (ac_default_ld_warn_rwx_segments): Disable for
-		sparc-solaris configurations.
-
-2022-07-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.opt/inline-small-func.exp with clang
-	When running test-case gdb.opt/inline-small-func.exp with clang 12.0.1, I run
-	into:
-	...
-	gdb compile failed, /usr/bin/ld: inline-small-func0.o: in function `main':
-	inline-small-func.c:21: undefined reference to `callee'
-	clang-12.0: error: linker command failed with exit code 1 \
-	  (use -v to see invocation)
-	UNTESTED: gdb.opt/inline-small-func.exp: failed to prepare
-	...
-
-	Fix this by using __attribute__((always_inline)).
-
-	Tested on x86_64-linux.
-
-2022-07-26  Alan Modra  <amodra@gmail.com>
-
-	PowerPC32 ld test fails with --enable-targets=all
-	Three pppc32 ld tests fail when spe support is included in the linker
-	due to this snippet in ld/emulparams/elf32ppc.sh.
-
-	if grep -q 'ld_elf32_spu_emulation' ldemul-list.h; then
-	  DATA_START_SYMBOLS="${RELOCATING+*crt1.o(.data .data.* .gnu.linkonce.d.*)
-	    PROVIDE (__spe_handle = .);
-	    *(.data.spehandle)
-	    . += 4 * (DEFINED (__spe_handle) || . != 0);}"
-	fi
-
-		* testsuite/ld-powerpc/tlsexe32.r: Pass with .data section present.
-		* testsuite/ld-powerpc/tlsexe32no.r: Likewise.
-		* testsuite/ld-powerpc/tlsso32.r: Likewise.
-
-2022-07-26  Enze Li  <enze.li@hotmail.com>
-
-	gdb/hurd: pass memory_tagged as false to find_memory_region_ftype
-	I tried building GDB on GNU/Hurd, and ran into this error:
-
-	  CXX    gnu-nat.o
-	gnu-nat.c: In member function ‘virtual int gnu_nat_target::find_memory_regions(find_memory_region_ftype, void*)’:
-	gnu-nat.c:2620:21: error: too few arguments to function
-	 2620 |             (*func) (last_region_address,
-	      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
-	 2621 |                      last_region_end - last_region_address,
-	      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2622 |                      last_protection & VM_PROT_READ,
-	      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2623 |                      last_protection & VM_PROT_WRITE,
-	      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2624 |                      last_protection & VM_PROT_EXECUTE,
-	      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2625 |                      1, /* MODIFIED is unknown, pass it as true.  */
-	      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2626 |                      data);
-	      |                      ~~~~~
-	gnu-nat.c:2635:13: error: too few arguments to function
-	 2635 |     (*func) (last_region_address, last_region_end - last_region_address,
-	      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2636 |              last_protection & VM_PROT_READ,
-	      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2637 |              last_protection & VM_PROT_WRITE,
-	      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2638 |              last_protection & VM_PROT_EXECUTE,
-	      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2639 |              1, /* MODIFIED is unknown, pass it as true.  */
-	      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	 2640 |              data);
-	      |              ~~~~~
-	make[2]: *** [Makefile:1926: gnu-nat.o] Error 1
-
-	This is because in this commit:
-
-	  commit 68cffbbd4406b4efe1aa6e18460b1d7ca02549f1
-	  Date:   Thu Mar 31 11:42:35 2022 +0100
-
-	      [AArch64] MTE corefile support
-
-	Added a new argument to find_memory_region_ftype, but did not pass it to
-	the function in gnu-nat.c.  Fix this by passing memory_tagged as false.
-
-	As Luis pointed out, similar bugs may also appear on FreeBSD and NetBSD,
-	and I have reproduced them on both systems.  This patch fixes them
-	incidentally.
-
-	Tested by rebuilding on GNU/Hurd, FreeBSD/amd64 and NetBSD/amd64.
-
-2022-07-26  Enze Li  <enze.li@hotmail.com>
-
-	gdb/netbsd: add missing header file
-	I ran into this error when building GDB on NetBSD:
-
-	  CXX    netbsd-nat.o
-	netbsd-nat.c: In member function 'virtual bool nbsd_nat_target::info_proc(const char*, info_proc_what)':
-	netbsd-nat.c:314:3: error: 'gdb_argv' was not declared in this scope
-	   gdb_argv built_argv (args);
-	   ^~~~~~~~
-	netbsd-nat.c:314:3: note: suggested alternative: 'gdbarch'
-	   gdb_argv built_argv (args);
-	   ^~~~~~~~
-	   gdbarch
-	netbsd-nat.c:315:7: error: 'built_argv' was not declared in this scope
-	   if (built_argv.count () == 0)
-	       ^~~~~~~~~~
-	netbsd-nat.c:315:7: note: suggested alternative: 'buildargv'
-	   if (built_argv.count () == 0)
-	       ^~~~~~~~~~
-	       buildargv
-	gmake[2]: *** [Makefile:1893: netbsd-nat.o] Error 1
-
-	Fix this by adding the missing header file, as it is obvious.
-
-	Tested by rebuilding on NetBSD/amd64.
-
-2022-07-26  Nick Clifton  <nickc@redhat.com>
-
-	Updated translations for various sub-directories
-
-2022-07-26  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: rename gdbarch_tdep struct to fix g++ 4.8 build
-	After the commit:
-
-	  commit 08106042d9f5fdff60c129bf33190639f1a98b2a
-	  Date:   Thu May 19 13:20:17 2022 +0100
-
-	      gdb: move the type cast into gdbarch_tdep
-
-	GDB would no longer build using g++ 4.8.  The issue appears to be some
-	confusion caused by GDB having 'struct gdbarch_tdep', but also a
-	templated function called 'gdbarch_tdep'.  Prior to the above commit
-	the gdbarch_tdep function was not templated, and this compiled just
-	fine.  Note that the above commit compiles just fine with later
-	versions of g++, so this issue was clearly fixed at some point, though
-	I've not tried to track down exactly when.
-
-	In this commit I propose to fix the g++ 4.8 build problem by renaming
-	'struct gdbarch_tdep' to 'struct gdbarch_tdep_base'.  This rename
-	better represents that the struct is only ever used as a base class,
-	and removes the overloading of the name, which allows GDB to build
-	with g++ 4.8.
-
-	I've also updated the comment on 'struct gdbarch_tdep_base' to fix a
-	typo, and the comment on the 'gdbarch_tdep' function, to mention that
-	in maintainer mode a run-time type check is performed.
-
-2022-07-26  Nick Clifton  <nickc@redhat.com>
-
-	Fix indentation in loongarch code, preventing a compile time warning.
-
-2022-07-26  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/varobj: Fix varobj_invalidate_iter
-	The varobj_invalidate function is meant to be called when restarting a
-	process, and check at this point if some of the previously existing
-	varobj can be recreated in the context of the new process.
-
-	Two kind of varobj are subject to re-creation:  global varobj (i.e.
-	varobj which reference a global variable), and floating varobj (i.e.
-	varobj which are always re-evaluated in the context of whatever is
-	the currently selected frame at the time of evaluation).
-
-	However, in the re-creation process, the varobj_invalidate_iter
-	recreates floating varobj as non-floating, due to an invalid parameter.
-	This patches fixes this and adds an assertion to check that if a varobj
-	is indeed recreated, it matches the original varobj "floating" property.
-
-	Another issue is that if at this recreation time the expression watched
-	by the floating varobj is not in scope, then the varobj is marked as
-	invalid.  If later the user selects a frame where the expression becomes
-	valid, the varobj remains invalid and this is wrong.  This patch also
-	make sure that floating varobj are not invalidated if they cannot be
-	evaluated.
-
-	The last important thing to note is that due to the previous patch, when
-	varobj_invalidate is executed (in the context of a new process), any
-	global var have already been invalidated (this has been done when the
-	objfile it referred to got invalidated).  As a consequence,
-	varobj_invalidate tries to recreate vars which are already marked as
-	invalid.  This does not entirely feels right, but I keep this behavior
-	for backward compatibility.
-
-	Tested on x86_64-linux
-
-2022-07-26  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/varobj: Fix use after free in varobj
-	Varobj object contains references to types, variables (i.e. struct
-	variable) and expression.  All of those can reference data on an
-	objfile's obstack.  It is possible for this objfile to be deleted (and
-	the obstack to be feed), while the varobj remains valid.  Later, if the
-	user uses the varobj, this will result in a use-after-free error.  With
-	address sanitizer build, this leads to a plain error.  For non address
-	sanitizer build we might see undefined behaviour, which manifest
-	themself as assertion failures when accessing data backed by feed
-	memory.
-
-	This can be observed if we create a varobj that refers to ta symbol in a
-	shared library, after either the objfile gets reloaded (using the `file`
-	command) or after the shared library is unloaded (with a call to dlclose
-	for example).
-
-	This patch fixes those issues by:
-
-	- Adding cleanup procedure to the free_objfile observable.  When
-	  activated this observer clears expressions referencing the objfile
-	  being freed, and removes references to blocks belonging to this
-	  objfile.
-	- Adding varobj support in the `preserve_values` (gdb.value.c).  This
-	  ensures that before the objfile is unloaded, any type owned by the
-	  objfile referenced by the varobj is replaced by an equivalent type
-	  not owned by the objfile.  This process is done here instead of in the
-	  free_objfile observer in order to reuse the type hash table already
-	  used for similar purpose when replacing types of values kept in the
-	  value history.
-
-	This patch also makes sure to keep a reference to the expression's
-	gdbarch and language_defn members when the varobj->root->exp is
-	initialized.  Those structures outlive the objfile, so this is safe.
-	This is done because those references might be used initialize a python
-	context even after exp is invalidated.  Another approach could have been
-	to initialize the python context with default gdbarch and language_defn
-	(i.e. nullptr) if expr is NULL, but since we might still try to display
-	the value which was obtained by evaluating exp when it was still valid,
-	keeping track of the context which was used at this time seems
-	reasonable.
-
-	Tested on x86_64-Linux.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-
-2022-07-26  Pedro Alves  <pedro@palves.net>
-
-	MI: mi_runto -pending
-	With the CLI testsuite's runto proc, we can pass "allow-pending" as an
-	option, like:
-
-	  runto func allow-pending
-
-	That is currently not possible with MI's mi_runto, however.  This
-	patch makes it possible, by adding a new "-pending" option to
-	mi_runto.
-
-	A pending breakpoint shows different MI attributes compared to a
-	breakpoint with a location, so the regexp returned by
-	mi_make_breakpoint isn't suitable.  Thus, add a new
-	mi_make_breakpoint_pending proc for pending breakpoints.
-
-	Tweak mi_runto to let it take and pass down arguments.
-
-	Change-Id: I185fef00ab545a1df2ce12b4dbc3da908783a37c
-
-2022-07-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-25  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-	gprofng: fix bug 29356 - Execution fails if gprofng is not included in PATH
-	gprofng/Changelog:
-	2022-07-22  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-		PR gprofng/29356
-		* gp-display-html/gp-display-html.in: fixed a problem to execute
-		gp-display-text in case gprofng is not included in the search
-		path.
-
-2022-07-25  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-	gprofng: fix bug 29392 - Unexpected line format in summary file
-	gprofng/Changelog:
-	2022-07-22  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-		PR gprofng/29392
-		* gp-display-html/gp-display-html.in: modified a regex, plus the
-		code to handle the results; renamed a variable to improve the
-		consistency in naming.
-
-2022-07-25  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-	gprofng: fix bug 29353 - Fix a lay-out issue in the html disassembly files
-	gprofng/Changelog:
-	2022-07-22  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-		PR gprofng/29353
-		* gp-display-html/gp-display-html.in: fixed a problem in the
-		generation of html for the disassembly where instructions
-		without arguments were not handled correctly.
-
-2022-07-25  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-	gprofng: fix bug 29352 - Fix the message Hexadecimal number > 0xffffffff non-portable
-	gprofng/Changelog:
-	2022-07-22  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-		PR gprofng/29352
-		* gp-display-html/gp-display-html.in: the hex subroutine from
-		the bigint module is now used.
-
-2022-07-25  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-	gprofng: fix bug 29351 - Move dynamic loading of modules to a later stage
-	gprofng/Changelog:
-	2022-07-22  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-		PR gprofng/29351
-		* gp-display-html/gp-display-html.in: the dynamic loading of
-		modules occurred too early, resulting in the generation of the
-		man page to fail in case a module is missing; the loading part is
-		now done somewhat later in the execution to avoid this problem.
-
-2022-07-25  Kevin Buettner  <kevinb@redhat.com>
-
-	set/show python dont-write-bytecode fixes
-	GDB uses the environment variable PYTHONDONTWRITEBYTECODE to
-	determine whether or not to write the result of byte-compiling
-	python modules when the "python dont-write-bytecode" setting
-	is "auto".  Simon noticed that GDB's implementation doesn't
-	follow the Python documentation.
-
-	At present, GDB only checks for the existence of this environment
-	variable.  That is not sufficient though.  Regarding
-	PYTHONDONTWRITEBYTECODE, this document...
-
-	    https://docs.python.org/3/using/cmdline.html
-
-	...says:
-
-	    If this is set to a non-empty string, Python won't try to write
-	    .pyc files on the import of source modules.
-
-	This commit fixes GDB's handling of PYTHONDONTWRITEBYTECODE by adding
-	an empty string check.
-
-	This commit also corrects the set/show command documentation for
-	"python dont-write-bytecode".  The current doc was just a copy
-	of that for set/show python ignore-environment.
-
-	During his review of an earlier version of this patch, Eli Zaretskii
-	asked that the help text that I proposed for "set/show python
-	dont-write-bytecode" be expanded.  I've done that in addition to
-	clarifying the documentation of this option in the GDB manual.
-
-2022-07-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: fix invalid use disassemble_info::stream
-	After this commit:
-
-	  commit 81384924cdcc9eb2676dd9084b76845d7d0e0759
-	  Date:   Tue Apr 5 11:06:16 2022 +0100
-
-	      gdb: have gdb_disassemble_info carry 'this' in its stream pointer
-
-	The disassemble_info::stream field will no longer be a ui_file*.  That
-	commit failed to update one location in py-disasm.c though.
-
-	While running some tests using the Python disassembler API, I
-	triggered a call to gdbpy_disassembler::print_address_func, and, as I
-	had compiled GDB with the undefined behaviour sanitizer, GDB crashed
-	as the code currently (incorrectly) casts the stream field to be a
-	ui_file*.
-
-	In this commit I fix this error.
-
-	In order to test this case I had to tweak the existing test case a
-	little.  I also spotted some debug printf statements in py-disasm.py,
-	which I have removed.
-
-2022-07-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix use of uninitialised gdb_printing_disassembler::m_in_comment
-	Simon pointed out that gdb_printing_disassembler::m_in_comment can be
-	used uninitialised by the Python disassembler API code.  This issue
-	was spotted when GDB was built with the undefined behaviour sanitizer,
-	and causes the gdb.python/py-disasm.exp test to fail like this:
-
-	  (gdb) PASS: gdb.python/py-disasm.exp: global_disassembler=GlobalPreInfoDisassembler: python add_global_disassembler(GlobalPreInfoDisassembler)
-	  disassemble main
-	  Dump of assembler code for function main:
-	     0x0000555555555119 <+0>:     push   %rbp
-	     0x000055555555511a <+1>:     mov    %rsp,%rbp
-	     0x000055555555511d <+4>:     nop
-	  /home/user/src/binutils-gdb/gdb/disasm.h:144:12: runtime error: load of value 118, which is not a valid value for type 'bool'
-
-	The problem is that in disasmpy_builtin_disassemble we create a new
-	instance of gdbpy_disassembler, which is a sub-class of
-	gdb_printing_disassembler, however, the m_in_comment field is never
-	initialised.
-
-	This commit fixes the issue by providing a default initialisation
-	value for m_in_comment in disasm.h.  As we only ever disassemble a
-	single instruction in disasmpy_builtin_disassemble then we don't need
-	to worry about reseting m_in_comment back to false after the single
-	instruction has been disassembled.
-
-	With this commit the above issue is resolved and
-	gdb.python/py-disasm.exp now passes.
-
-2022-07-25  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Compile 2 CTF tests with -O2
-	When GCC 12 is used to build binutils with -O0, the following 2 tests
-	failed:
-
-	FAIL: Conflicted data syms, partially indexed, stripped, with variables
-	FAIL: Conflicted data syms, partially indexed, stripped
-
-	Compile 2 tests with -O2 to avoid test failures.
-
-		PR ld/29378
-		* testsuite/ld-ctf/data-func-conflicted-vars.d: Compile with -O2.
-		* testsuite/ld-ctf/data-func-conflicted.d: Likewise.
-
-2022-07-25  Pedro Alves  <pedro@palves.net>
-
-	struct packed: Add fallback byte array implementation
-	Attribute gcc_struct is not implemented in Clang targeting Windows, so
-	add a fallback standard-conforming implementation based on arrays.
-
-	I ran the testsuite on x86_64 GNU/Linux with this implementation
-	forced, and saw no regressions.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29373
-
-	Change-Id: I023315ee03622c59c397bf4affc0b68179c32374
-
-2022-07-25  Pedro Alves  <pedro@palves.net>
-
-	struct packed: Unit tests and more operators
-	For PR gdb/29373, I wrote an alternative implementation of struct
-	packed that uses a gdb_byte array for internal representation, needed
-	for mingw+clang.  While adding that, I wrote some unit tests to make
-	sure both implementations behave the same.  While at it, I implemented
-	all relational operators.  This commit adds said unit tests and
-	relational operators.  The alternative gdb_byte array implementation
-	will come next.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29373
-
-	Change-Id: I023315ee03622c59c397bf4affc0b68179c32374
-
-2022-07-25  Pedro Alves  <pedro@palves.net>
-
-	struct packed: Use gcc_struct on Windows
-	Building GDB on mingw/gcc hosts is currently broken, due to a static
-	assertion failure in gdbsupport/packed.h:
-
-	  In file included from ../../../../../binutils-gdb/gdb/../gdbsupport/common-defs.h:201,
-			   from ../../../../../binutils-gdb/gdb/defs.h:28,
-			   from ../../../../../binutils-gdb/gdb/dwarf2/read.c:31:
-	  ../../../../../binutils-gdb/gdb/../gdbsupport/packed.h: In instantiation of 'packed<T, Bytes>::packed(T) [with T = dwarf_unit_type; long long unsigned int Bytes = 1]':
-	  ../../../../../binutils-gdb/gdb/dwarf2/read.h:181:74:   required from here
-	  ../../../../../binutils-gdb/gdb/../gdbsupport/packed.h:41:40: error: static assertion failed
-	     41 |     gdb_static_assert (sizeof (packed) == Bytes);
-		|                        ~~~~~~~~~~~~~~~~^~~~~~~~
-	  ../../../../../binutils-gdb/gdb/../gdbsupport/gdb_assert.h:27:48: note: in definition of macro 'gdb_static_assert'
-	     27 | #define gdb_static_assert(expr) static_assert (expr, "")
-		|                                                ^~~~
-	  ../../../../../binutils-gdb/gdb/../gdbsupport/packed.h:41:40: note: the comparison reduces to '(4 == 1)'
-	     41 |     gdb_static_assert (sizeof (packed) == Bytes);
-		|                        ~~~~~~~~~~~~~~~~^~~~~~~~
-
-
-	The issue is that mingw gcc defaults to "-mms-bitfields", which
-	affects how bitfields are laid out.  We can however tell GCC that we
-	want the regular GCC layout instead using attribute gcc_struct.
-
-	Attribute gcc_struct is not implemented in "clang -target
-	x86_64-pc-windows-gnu", so that will need a different fix.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29373
-
-	Change-Id: I023315ee03622c59c397bf4affc0b68179c32374
-
-2022-07-25  Andrew Burgess  <aburgess@redhat.com>
-
-	binutils-gdb/git: highlight whitespace errors in source files
-	For a long time I've had this in my ~/.gitconfig:
-
-	  [core]
-	          whitespace = space-before-tab,indent-with-non-tab,trailing-space
-
-	which causes git to show me if I muck up and use spaces instead of
-	tabs, or leave in trailing whitespace.  I find this really useful.
-
-	I recently proposed adding something like this to the .gitattributes
-	files for the GDB sub-directories (gdb, gdbsupport, and gdbserver)[1],
-	however, the question was asked - couldn't this be done at the top
-	level?
-
-	So, in this commit, I propose to update the top-level .gitattributes
-	file, after this commit, any git diff on a C, C++, Expect, or TCL
-	source file, will highlight the following whitespace errors:
-
-	  (a) Use a space before a tab at the start of a line,
-
-	  (b) Use of spaces where a tab could be used at the start of a line,
-	  and
-
-	  (c) Any trailing whitespace.
-
-	Errors are only highlighted in the diff on new or modified lines, so
-	you don't get spammed for errors on context lines that you haven't
-	modified.
-
-	The only downside I see to adding this at the top level is if there
-	are any sub-directories that don't follow the tabs/spaces indentation
-	rules very well already, in those directories you'll end up hitting
-	issues any time you edit a line.  For GDB we're usually pretty good,
-	so having this highlighting isn't an issue.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-July/190843.html
-
-2022-07-25  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Sync sp with other *sp registers
-	For Arm Cortex-M33 with security extensions, there are 4 different
-	stack pointers (msp_s, msp_ns, psp_s, psp_ns), without security
-	extensions and for other Cortex-M targets, there are 2 different
-	stack pointers (msp and psp).
-
-	With this patch, sp will always be in sync with one of the real stack
-	pointers on Arm targets that contain more than one stack pointer.
-
-2022-07-25  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	gdb/arm: Use if-else if instead of switch
-	As the register numbers for the alternative Arm SP registers are not
-	constant, it's not possible to use switch statement to define the
-	rules.  In order to not have a mix, replace the few existing
-	switch statements with regular if-else if statements
-
-2022-07-25  Tom Tromey  <tromey@adacore.com>
-
-	Remove dead code from windows_nat_target::detach
-	windows_nat_target::detach has a variable 'detached' that is only set
-	after a call to 'error'.  However, this can't happen because 'error'
-	throws an exception.
-
-	This patch removes the dead code.
-
-2022-07-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: handle dis_style_sub_mnemonic disassembler style
-	In commit:
-
-	  commit 4f46c0bc36471b725de0253bfec1a42a36e2c5c5
-	  Date:   Mon Jul 4 17:45:25 2022 +0100
-
-	      opcodes: add new sub-mnemonic disassembler style
-
-	I added a new disassembler style dis_style_sub_mnemonic, but forgot to
-	add GDB support for this style.  Fix this oversight in this commit.
-
-2022-07-25  Andrew Burgess  <aburgess@redhat.com>
-
-	libopcodes/ppc: add support for disassembler styling
-	This commit adds disassembler styling to the libopcodes ppc
-	disassembler.  This conversion was pretty straight forward, I just
-	converted the fprintf_func calls to fprintf_styled_func calls and
-	added an appropriate style.
-
-	For testing the new styling I just assembled then disassembled the
-	source files in gas/testsuite/gas/ppc and manually checked that the
-	styling looked reasonable.
-
-	I think the only slightly weird case was how things like '4*cr1+eq'
-	are styled.  As best I can tell, this construct, used for example in
-	this instruction:
-
-	  crand   4*cr1+lt,4*cr1+gt,4*cr1+eq
-
-	is used to access a field of a control register.  I initially tried
-	styling this whole construct as a register[1], but during review it
-	was suggested that instead different parts of the text should have
-	different styles.  In this commit I propose styling '4*cr1+lt' like
-	this:
-
-	  4    - immediate,
-	  *    - text,
-	  cr1  - register
-	  +    - text
-	  lt   - sub-mnemonic
-
-	If the user does not request styled output from objdump, then there
-	should be no change in the disassembler output after this commit.
-
-	[1] https://sourceware.org/pipermail/binutils/2022-July/121771.html
-
-2022-07-25  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes: add new sub-mnemonic disassembler style
-	When adding libopcodes disassembler styling support for AArch64, it
-	feels like the results would be improved by having a new sub-mnemonic
-	style.  This will be used in cases like:
-
-	  add    w16, w7, w1, uxtb #2
-	                      ^^^^----- Here
-
-	And:
-
-	  cinc   w0, w1, ne
-	                 ^^----- Here
-
-	This commit just adds the new style, and prepares objdump to handle
-	the style.  A later commit will add AArch64 styling, and will actually
-	make use of the style.
-
-	As this style is currently unused, there should be no user visible
-	changes after this commit.
-
-2022-07-25  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Add testcases for new relocate types.
-	  gas/testsuite/gas/all/
-	    gas.exp
-	  gas/testsuite/gas/loongarch/
-	    jmp_op.d
-	    jmp_op.s
-	    macro_op.d
-	    macro_op.s
-	    macro_op_32.d
-	    macro_op_32.s
-	    macro_op_large_abs.d
-	    macro_op_large_abs.s
-	    macro_op_large_pc.d
-	    macro_op_large_pc.s
-	    reloc.d
-	    reloc.s
-
-	  ld/testsuite/ld-elf/
-	    pr26936.d
-	    shared.exp
-	  ld/testsuite/ld-loongarch-elf/
-	    attr-ifunc-4.c
-	    attr-ifunc-4.out
-	    disas-jirl.d
-	    ifunc.exp
-	    jmp_op.d
-	    jmp_op.s
-	    libnopic-global.s
-	    macro_op.d
-	    macro_op.s
-	    macro_op_32.d
-	    macro_op_32.s
-	    nopic-global-so.rd
-	    nopic-global-so.sd
-	    nopic-global.out
-	    nopic-global.s
-	    nopic-global.sd
-	    nopic-global.xd
-	    nopic-local.out
-	    nopic-local.rd
-	    nopic-local.s
-	    nopic-local.sd
-	    nopic-local.xd
-	    nopic-weak-global-so.rd
-	    nopic-weak-global-so.sd
-	    nopic-weak-global.out
-	    nopic-weak-global.s
-	    nopic-weak-global.sd
-	    nopic-weak-global.xd
-	    nopic-weak-local.out
-	    nopic-weak-local.rd
-	    nopic-weak-local.s
-	    nopic-weak-local.sd
-	    nopic-weak-local.xd
-	    pic.exp
-	    pic.ld
-
-2022-07-25  liuzhensong  <liuzhensong@loongson.cn>
-
-	bfd: Delete R_LARCH_NONE from dyn info of LoongArch.
-	  Some R_LARCH_64 in section .eh_frame will to generate
-	  R_LARCH_NONE, we change relocation to R_LARCH_32_PCREL
-	  from R_LARCH_64 in setction .eh_frame and not generate
-	  dynamic relocation for R_LARCH_32_PCREL.
-
-	  Add New relocate type R_LARCH_32_PCREL for .eh_frame.
-
-	  include/elf/
-	    loongarch.h
-
-	  bfd/
-	    bfd/bfd-in2.h
-	    libbfd.h
-	    reloc.c
-	    elfxx-loongarch.c
-	    elfnn-loongarch.c
-
-	  gas/config/
-	    tc-loongarch.c
-
-	  binutils/
-	    readelf.c
-
-	  ld/testsuite/ld-elf/
-	    eh5.d
-
-2022-07-25  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Move ifunc info to rela.dyn from rela.plt.
-	  Delete R_LARCH_IRELATIVE from dynamic loader (glibc ld.so) when
-	  loading lazy function (rela.plt section).
-
-	  In dynamic programes, move ifunc dynamic relocate info to section
-	  srelgot from srelplt.
-
-	  bfd/
-	    elfnn-loongarch.c
-
-2022-07-25  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: gas: Add new reloc types.
-	  Generate new relocate types while use new macro insns.
-
-	  gas/config/
-	    loongarch-lex.h
-	    loongarch-parse.y
-	    tc-loongarch.c
-	    tc-loongarch.h
-
-2022-07-25  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch:opcodes: Add new reloc types.
-	  opcodes: Replace old insns with news and generate new relocate types
-	  while macro insns expanding.
-
-	  opcodes/
-	    loongarch-opc.c
-
-2022-07-25  liuzhensong  <liuzhensong@loongson.cn>
-
-	bfd: Add supported for LoongArch new relocations.
-	  Define new reloc types according to linker needs.
-
-	  include/elf/
-	    loongarch.h
-
-	  bfd/
-	    bfd-in2.h
-	    libbfd.h
-	    reloc.c
-	    elfnn-loongarch.c
-	    elfxx-loongarch.c
-	    elfxx-loongarch.h
-
-2022-07-25  Alan Modra  <amodra@gmail.com>
-
-	Re: PowerPC64 .branch_lt address
-	On seeing PR29369 my suspicion was naturally on a recent powerpc64
-	change, commit 0ab80031430e.  Without a reproducer, I spent time
-	wondering what could have gone wrong, and while I doubt this patch
-	would have fixed the PR, there are some improvements that can be made
-	to cater for user silliness.
-
-	I also noticed that when -z relro -z now sections are created out of
-	order, with .got before .plt in the section headers but .got is laid
-	out at a higher address.  That's due to the address expression for
-	.branch_lt referencing SIZEOF(.got) and so calling init_os (which
-	creates a bfd section) for .got before the .plt section is created.
-	Fix that by ignoring SIZEOF in exp_init_os.  Unlike ADDR and LOADADDR
-	which need to reference section vma and lma respectively, SIZEOF can
-	and does cope with a missing bfd section by returning zero for its
-	size, which of course is correct.
-
-		PR 29369
-		* ldlang.c (exp_init_os): Don't create a bfd section for SIZEOF.
-		* emulparams/elf64ppc.sh (OTHER_RELRO_SECTIONS_2): Revise
-		.branch_lt address to take into account possible user sections
-		with alignment larger than 8 bytes.
-
-2022-07-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-24  Enze Li  <enze.li@hotmail.com>
-
-	gdb/testsuite: add a clear test to py-breakpoint.exp
-	This patch adds a test case to try to clear an internal python
-	breakpoint using the clear command.
-
-	This was suggested by Pedro during a code review of the following
-	commit.
-
-	  commit a5c69b1e49bae4d0dcb20f324cebb310c63495c6
-	  Date:   Sun Apr 17 15:09:46 2022 +0800
-
-	    gdb: fix using clear command to delete non-user breakpoints(PR cli/7161)
-
-	Tested on x86_64 openSUSE Tumbleweed.
-
-2022-07-24  Enze Li  <enze.li@hotmail.com>
-
-	gdb/testsuite: rename get_maint_bp_addr and move it to gdb-utils.exp
-	The get_maint_bp_addr procedure will be shared by other test suite, so
-	move it to gdb-utils.exp.
-
-	Following Andrew's suggestion, I renamed get_maint_bp_addr to
-	gdb_get_bp_addr, since it would have handled normal breakpoints in
-	addition to the internal ones.  Note that there is still room for
-	improvement in this procedure, which I indicated in comments nearby.
-
-2022-07-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix duplicate CUs in all_comp_units
-	When running test-case gdb.cp/cpexprs-debug-types.exp with target board
-	cc-with-debug-names on a system with gcc 12.1.1 (defaulting to dwarf 5), I
-	run into:
-	...
-	(gdb) file cpexprs-debug-types^M
-	Reading symbols from cpexprs-debug-types...^M
-	warning: Section .debug_aranges in cpexprs-debug-types has duplicate \
-	  debug_info_offset 0x0, ignoring .debug_aranges.^M
-	gdb/dwarf2/read.h:309: internal-error: set_length: \
-	  Assertion `m_length == length' failed.^M
-	...
-
-	The exec contains a .debug_names section, which gdb rejects due to
-	.debug_names containing a list of TUs, while the exec doesn't contain a
-	.debug_types section (which is what you'd expect for dwarf 4).
-
-	Gdb then falls back onto the cooked index, which calls create_all_comp_units
-	to create all_comp_units.  However, the failed index reading left some
-	elements in all_comp_units, so we end up with duplicates in all_comp_units,
-	which causes the misleading complaint and the assert.
-
-	Fix this by:
-	- asserting at the start of create_all_comp_units that all_comp_units is empty,
-	  as we do in create_cus_from_index and create_cus_from_debug_names, and
-	- cleaning up all_comp_units when failing in dwarf2_read_debug_names.
-
-	Add a similar cleanup in dwarf2_read_gdb_index.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29381
-
-2022-07-22  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: give binaries distinct names in Ada tests
-	Some Ada tests repeat their test sequence with different gnat-encodings,
-	typically "all" and "minimal".  However, they give the same name to both
-	binaries, meaning the second run overwrites the binary of the first run.
-	This makes it difficult and confusing when trying to reproduce problems
-	manually with the test artifacts.  Change those tests to use unique
-	names for each pass.
-
-	Change-Id: Iaa3c9f041241249a7d67392e785c31aa189dcc88
-
-2022-07-22  Tom Tromey  <tromey@adacore.com>
-
-	Change target_ops::async to accept bool
-	This changes the parameter of target_ops::async from int to bool.
-	Regression tested on x86-64 Fedora 34.
-
-	Fix typo in windows-nat.c
-	I noticed a typo in a printf in windows-nat.c.  This fixes it.
-
-2022-07-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Add empty range unit test for gdb::parallel_for_each
-	Add a unit test that verifies that we can call gdb::parallel_for_each with an
-	empty range.
-
-	Tested on x86_64-linux.
-
-2022-07-22  Alan Modra  <amodra@gmail.com>
-
-	PR17122, OSX 10.9 build failure
-	sbrk hasn't been used in binutils/ or ld/ for quite some time (so the
-	PR was fixed a while ago).  Tidy up configury.
-
-		PR 17122
-	binutils/
-		* configure.ac: Don't check for sbrk.
-		* sysdep.h (sbrk): Don't supply fallback declaration.
-		* config.in: Regenerate.
-		* configure: Regenerate.
-	ld/
-		* configure.ac: Don't check for sbrk.
-		* config.in: Regenerate.
-		* configure: Regenerate.
-
-2022-07-22  Jiangshuai Li  <jiangshuai_li@linux.alibaba-inc.com>
-
-	gdb/csky modify registers list for general_reggroup
-	There are two modification points here:
-	1. For the debugging of csky architecture, after executing "info register",
-	   we hope to print out GPRs, PC and the registers related to exceptions.
-	2. With tdesc-xml, users can view the register groups described in XML.
-
-2022-07-22  Alan Modra  <amodra@gmail.com>
-
-	PR15951, binutils testsuite builds status wrapper unconditionally
-		PR 15951
-		* testsuite/binutils-all/objcopy.exp: Build testglue.o when
-		needs_status_wrapper.
-
-2022-07-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-21  Peter Bergner  <bergner@linux.ibm.com>
-
-	Add ChangeLog entry from previous commit
-
-2022-07-21  Peter Bergner  <bergner@linux.ibm.com>
-
-	PowerPC: Create new MMA instruction masks and use them
-	The MMA instructions use XX3_MASK|3<<21 as an instruction mask, but that
-	misses the RC bit/bit 31, so if we disassemble a .long that represents an
-	MMA instruction except that it also has bit 31 set, we will erroneously
-	disassemble it to that MMA instruction.  We create new masks defines that
-	contain bit 31 so that doesn't happen anymore.
-
-	opcodes/
-		* ppc-opc.c (XACC_MASK, XX3ACC_MASK): New defines.
-		(P_GER_MASK, xxmfacc, xxmtacc, xxsetaccz, xvi8ger4pp, xvi8ger4,
-		xvf16ger2pp, xvf16ger2, xvf32gerpp, xvf32ger, xvi4ger8pp, xvi4ger8,
-		xvi16ger2spp, xvi16ger2s, xvbf16ger2pp, xvbf16ger2, xvf64gerpp,
-		xvf64ger, xvi16ger2, xvf16ger2np, xvf32gernp, xvi8ger4spp, xvi16ger2pp,
-		xvbf16ger2np, xvf64gernp, xvf16ger2pn, xvf32gerpn, xvbf16ger2pn,
-		xvf64gerpn, xvf16ger2nn, xvf32gernn, xvbf16ger2nn, xvf64gernn: Use them.
-
-2022-07-21  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Don't allow GOTOFF relocation against IFUNC symbol for PIC
-	We can't use the PLT entry as the function address for PIC since the PIC
-	register may not be set up properly for indirect call.
-
-	bfd/
-
-		PR ld/27998
-		* elf32-i386.c (elf_i386_relocate_section): Don't allow GOTOFF
-		relocation against IFUNC symbol for PIC.
-
-	ld/
-
-		PR ld/27998
-		* testsuite/ld-i386/pr27998a.d: Replace -shared with -e bar.
-		* testsuite/ld-i386/pr27998b.d: Expect a linker error.
-		* testsuite/ld-ifunc/ifunc-2-i386-now.d: Updated.
-		* testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise.
-		* testsuite/ld-ifunc/ifunc-2-i386.s: Replace @GOTOFF with @GOT.
-		* testsuite/ld-ifunc/ifunc-2-local-i386.s: Likewise.
-
-2022-07-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: ensure the cast in gdbarch_tdep is valid
-	This commit makes use of gdb::checked_static_cast when casting the
-	generic gdbarch_tdep pointer to a specific sub-class type.  This means
-	that, when compiled in developer mode, GDB will validate that the cast
-	is correct.
-
-	In order to use gdb::checked_static_cast the types involved must have
-	RTTI, which is why the gdbarch_tdep base class now has a virtual
-	destructor.
-
-	Assuming there are no bugs in GDB where we cast a gdbarch_tdep pointer
-	to the wrong type, then there should be no changes after this commit.
-
-	If any bugs do exist, then GDB will now assert (in a developer build).
-
-2022-07-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbsupport: add checked_static_cast
-	This commit was inspired by these mailing list posts:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-June/190323.html
-	  https://sourceware.org/pipermail/gdb-patches/2022-April/188098.html
-
-	The idea is to add a new function gdb::checked_static_cast, which can,
-	in some cases, be used as a drop-in replacement for static_cast.  And
-	so, if I previously wrote this:
-
-	  BaseClass *base = get_base_class_pointer ();
-	  DerivedClass *derived = static_cast<DerivedClass *> (base);
-
-	I can now write:
-
-	  BaseClass *base = get_base_class_pointer ();
-	  DerivedClass *derived = gdb::checked_static_cast<DerivedClass *> (base);
-
-	The requirement is that BaseClass and DerivedClass must be
-	polymorphic.
-
-	The benefit of making this change is that, when GDB is built in
-	developer mode, a run-time check will be made to ensure that `base`
-	really is of type DerivedClass before the cast is performed.  If
-	`base` is not of type DerivedClass then GDB will assert.
-
-	In a non-developer build gdb::checked_static_cast is equivalent to a
-	static_cast, and there should be no performance difference.
-
-	This commit adds the support function, but does not make use of this
-	function, a use will be added in the next commit.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-	Co-Authored-By: Tom Tromey <tom@tromey.com>
-
-2022-07-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: move the type cast into gdbarch_tdep
-	I built GDB for all targets on a x86-64/GNU-Linux system, and
-	then (accidentally) passed GDB a RISC-V binary, and asked GDB to "run"
-	the binary on the native target.  I got this error:
-
-	  (gdb) show architecture
-	  The target architecture is set to "auto" (currently "i386").
-	  (gdb) file /tmp/hello.rv32.exe
-	  Reading symbols from /tmp/hello.rv32.exe...
-	  (gdb) show architecture
-	  The target architecture is set to "auto" (currently "riscv:rv32").
-	  (gdb) run
-	  Starting program: /tmp/hello.rv32.exe
-	  ../../src/gdb/i387-tdep.c:596: internal-error: i387_supply_fxsave: Assertion `tdep->st0_regnum >= I386_ST0_REGNUM' failed.
-
-	What's going on here is this; initially the architecture is i386, this
-	is based on the default architecture, which is set based on the native
-	target.  After loading the RISC-V executable the architecture of the
-	current inferior is updated based on the architecture of the
-	executable.
-
-	When we "run", GDB does a fork & exec, with the inferior being
-	controlled through ptrace.  GDB sees an initial stop from the inferior
-	as soon as the inferior comes to life.  In response to this stop GDB
-	ends up calling save_stop_reason (linux-nat.c), which ends up trying
-	to read register from the inferior, to do this we end up calling
-	target_ops::fetch_registers, which, for the x86-64 native target,
-	calls amd64_linux_nat_target::fetch_registers.
-
-	After this I eventually end up in i387_supply_fxsave, different x86
-	based targets will end in different functions to fetch registers, but
-	it doesn't really matter which function we end up in, the problem is
-	this line, which is repeated in many places:
-
-	  i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (arch);
-
-	The problem here is that the ARCH in this line comes from the current
-	inferior, which, as we discussed above, will be a RISC-V gdbarch, the
-	tdep field will actually be of type riscv_gdbarch_tdep, not
-	i386_gdbarch_tdep.  After this cast we are relying on undefined
-	behaviour, in my case I happen to trigger an assert, but this might
-	not always be the case.
-
-	The thing I tried that exposed this problem was of course, trying to
-	start an executable of the wrong architecture on a native target.  I
-	don't think that the correct solution for this problem is to detect,
-	at the point of cast, that the gdbarch_tdep object is of the wrong
-	type, but, I did wonder, is there a way that we could protect
-	ourselves from incorrectly casting the gdbarch_tdep object?
-
-	I think that there is something we can do here, and this commit is the
-	first step in that direction, though no actual check is added by this
-	commit.
-
-	This commit can be split into two parts:
-
-	 (1) In gdbarch.h and arch-utils.c.  In these files I have modified
-	 gdbarch_tdep (the function) so that it now takes a template argument,
-	 like this:
-
-	    template<typename TDepType>
-	    static inline TDepType *
-	    gdbarch_tdep (struct gdbarch *gdbarch)
-	    {
-	      struct gdbarch_tdep *tdep = gdbarch_tdep_1 (gdbarch);
-	      return static_cast<TDepType *> (tdep);
-	    }
-
-	  After this change we are no better protected, but the cast is now
-	  done within the gdbarch_tdep function rather than at the call sites,
-	  this leads to the second, much larger change in this commit,
-
-	  (2) Everywhere gdbarch_tdep is called, we make changes like this:
-
-	    -  i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (arch);
-	    +  i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (arch);
-
-	There should be no functional change after this commit.
-
-	In the next commit I will build on this change to add an assertion in
-	gdbarch_tdep that checks we are casting to the correct type.
-
-2022-07-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: select suitable thread for gdbarch_adjust_breakpoint_address
-	The three targets that implement gdbarch_adjust_breakpoint_address are
-	arm, frv, and mips.  In each of these targets the adjust breakpoint
-	address function does some combination of reading the symbol table, or
-	reading memory at the location the breakpoint could be placed.
-
-	The problem is that performing these actions requires that the current
-	inferior and program space be the one in which the breakpoint will be
-	placed, and this is not currently always the case.
-
-	Consider a GDB session with multiple inferiors.  One inferior might be
-	a native target while another could be a remote target of a completely
-	different architecture.  Alternatively, if we consider ARM and
-	AArch64, one native inferior might be AArch64, while a second native
-	inferior could be ARM.
-
-	In these cases it is possible, and valid, for a user to have one
-	inferior selected, and place a breakpoint in the other inferior by
-	placing a breakpoint on a particular symbol.
-
-	If this happens, then currently, when
-	gdbarch_adjust_breakpoint_address is called, the wrong inferior (and
-	program space) will be selected, and memory reads, and symbol look
-	ups, will not return the expected results, this could lead to
-	breakpoints being placed in the wrong location.
-
-	There are currently two places where gdbarch_adjust_breakpoint_address
-	is called:
-
-	  1. In infrun.c, in the function handle_step_into_function.  In this
-	  case, I believe that the correct inferior and program space will
-	  already be selected as this is called as part of the stop event
-	  handling, so I don't think we need to worry about this case, and
-
-	  2. In breakpoint.c, in the function adjust_breakpoint_address, which
-	  is itself called from code_breakpoint::add_location and
-	  watch_command_1.
-
-	  The watch_command_1 case I don't think we need to worry about, this
-	  is for when a local watch expression is created, which can only be
-	  in the currently selected inferior, so this case should be fine.
-
-	  The code_breakpoint::add_location case is the one that needs fixing,
-	  this is what allows a breakpoint to be created between inferiors.
-
-	To fix the code_breakpoint::add_location case, I propose that we pass
-	the "correct" program_space (i.e. the program space in which the
-	breakpoint will be created) to the adjust_breakpoint_address function.
-	Then in adjust_breakpoint_address we can make use of
-	switch_to_program_space_and_thread to switch program_space and
-	inferior before calling gdbarch_adjust_breakpoint_address.
-
-	I discovered this issue while working on a later patch in this
-	series.  This later patch will detect when we cast the result of
-	gdbarch_tdep to the wrong type.
-
-	With this later patch in place I ran gdb.multi/multi-arch.exp on an
-	AArch64 target.  In this situation, two inferiors are created, an
-	AArch64 inferior, and an ARM inferior.  The test selected the AArch64
-	inferior and tries to create a breakpoint in the ARM inferior.
-
-	As a result of this we end up in arm_adjust_breakpoint_address, which
-	calls arm_pc_is_thumb.  Before this commit the AArch64 inferior would
-	be current.  As a result, all of the checks in arm_pc_is_thumb would
-	fail (they rely on reading symbols from the current program space),
-	and so, at the end of arm_pc_is_thumb we would call
-	arm_frame_is_thumb.  However, remember, at this point the current
-	inferior is the AArch64 inferior, so the current frame is an AArch64
-	frame.
-
-	In arm_frame_is_thumb we call arm_psr_thumb_bit, which calls
-	gdbarch_tdep and casts the result to arm_gdbarch_tdep.  This is wrong,
-	the tdep field is of type aarch64_gdbarch_tdep.  After this we have
-	undefined behaviour.
-
-	With this patch in place, we will have switched to a thread in the ARM
-	program space before calling arm_adjust_breakpoint_address.  As a
-	result, we now succeed in looking up the required symbols in
-	arm_pc_is_thumb, and so we never call arm_frame_is_thumb.
-
-	However, in the worst case scenario, if we did end up calling
-	arm_frame_is_thumb, as the current inferior should now be the ARM
-	inferior, the current frame should be an ARM frame, so we still should
-	not hit undefined behaviour.
-
-	I have added an assert to arm_frame_is_thumb.
-
-2022-07-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mips: rewrite show_mask_address
-	This commit is similar to the previous commit, but in this case GDB is
-	actually relying on undefined behaviour.
-
-	Consider building GDB for all targets on x86-64/GNU-Linux, then doing
-	this:
-
-	  (gdb) show mips mask-address
-	  Zeroing of upper 32 bits of 64-bit addresses is auto.
-	  The 32 bit address mask is set automatically.  Currently disabled
-	  (gdb)
-
-	The 'show mips mask-address' command ends up in show_mask_address in
-	mips-tdep.c, and this function does this:
-
-	  mips_gdbarch_tdep *tdep
-	    = (mips_gdbarch_tdep *) gdbarch_tdep (target_gdbarch ());
-
-	Later we might pass TDEP to mips_mask_address_p.  However, in my
-	example above, on an x86-64 native target, the current target
-	architecture will be an x86-64 gdbarch, and the tdep field within the
-	gdbarch will be of type i386_gdbarch_tdep, not of type
-	mips_gdbarch_tdep, as a result the cast above was incorrect, and TDEP
-	is not pointing at what it thinks it is.
-
-	I also think the current output is a little confusing, we appear to
-	have two lines that show the same information, but using different
-	words.
-
-	The first line comes from calling deprecated_show_value_hack, while
-	the second line is printed directly from show_mask_address.  However,
-	both of these lines are printing the same mask_address_var value.  I
-	don't think the two lines actually adds any value here.
-
-	Finally, none of the text in this function is passed through the
-	internationalisation mechanism.
-
-	It would be nice to remove another use of deprecated_show_value_hack
-	if possible, so this commit does a complete rewrite of
-	show_mask_address.
-
-	After this commit the output of the above example command, still on my
-	x86-64 native target is:
-
-	    (gdb) show mips mask-address
-	    Zeroing of upper 32 bits of 64-bit addresses is "auto" (current architecture is not MIPS).
-
-	The 'current architecture is not MIPS' text is only displayed when the
-	current architecture is not MIPS.  If the architecture is mips then we
-	get the more commonly seen 'currently "on"' or 'currently "off"', like
-	this:
-
-	  (gdb) set architecture mips
-	  The target architecture is set to "mips".
-	  (gdb) show mips mask-address
-	  Zeroing of upper 32 bits of 64-bit addresses is "auto" (currently "off").
-	  (gdb)
-
-	All the text is passed through the internationalisation mechanism, and
-	we only call gdbarch_tdep when we know the gdbarch architecture is
-	bfd_arch_mips.
-
-2022-07-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/arm: move fetch of arm_gdbarch_tdep to a more inner scope
-	This is a small refactor to resolve an issue before it becomes a
-	problem in a later commit.
-
-	Move the fetching of an arm_gdbarch_tdep into a more inner scope
-	within two functions in arm-tdep.c.
-
-	The problem with the current code is that the functions in question
-	are used as the callbacks for two set/show parameters.  These set/show
-	parameters are available no matter the current architecture, but are
-	really about controlling an ARM architecture specific setting.  And
-	so, if I build GDB for all targets on an x86-64/GNU-Linux system, I
-	can still do this:
-
-	  (gdb) show arm fpu
-	  (gdb) show arm abi
-
-	After these calls we end up in show_fp_model and arm_show_abi
-	respectively, where we unconditionally do this:
-
-	  arm_gdbarch_tdep *tdep
-	    = (arm_gdbarch_tdep *) gdbarch_tdep (target_gdbarch ());
-
-	However, the gdbarch_tdep() result will only be a arm_gdbarch_tdep if
-	the current architecture is ARM, otherwise the result will actually be
-	of some other type.
-
-	This isn't actually a problem, as in both cases the use of tdep is
-	guarded by a later check that the gdbarch architecture is
-	bfd_arch_arm.
-
-	This commit just moves the call to gdbarch_tdep() after the
-	architecture check.
-
-	In a later commit gdbarch_tdep() will be able to spot when we are
-	casting the result to the wrong type, and this function will trigger
-	assertion failures if things are not fixed.
-
-	There should be not user visible changes after this commit.
-
-2022-07-21  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
-
-	[arm] Rename arm_cache_is_sp_register to arm_is_alternative_sp_register
-	All usages of this helper are really made to check if the register is
-	one of the alternative SP registers (MSP/MSP_S/MSP_NS/PSP/PSP_S/PSP_NS)
-	with the ARM_SP_REGNUM case being handled separately.
-
-2022-07-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/python] Fix typo in test_python
-	Fix typo in ref_output_0 variable in test_python.
-
-	Tested by running the selftest on x86_64-linux with python 3.11.
-
-2022-07-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/python] Fix python selftest with python 3.11
-	With python 3.11 I noticed:
-	...
-	$ gdb -q -batch -ex "maint selftest python"
-	Running selftest python.
-	Self test failed: self-test failed at gdb/python/python.c:2246
-	Ran 1 unit tests, 1 failed
-	...
-
-	In more detail:
-	...
-	(gdb) p output
-	$5 = "Traceback (most recent call last):\n  File \"<string>\", line 0, \
-	  in <module>\nKeyboardInterrupt\n"
-	(gdb) p ref_output
-	$6 = "Traceback (most recent call last):\n  File \"<string>\", line 1, \
-	  in <module>\nKeyboardInterrupt\n"
-	...
-
-	Fix this by also allowing line number 0.
-
-	Tested on x86_64-linux.
-
-	This should hopefully fix buildbot builder gdb-rawhide-x86_64.
-
-2022-07-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdbsupport] Fix type of parallel_for_each_debug
-	When I changed the initialization of parallel_for_each_debug from 0 to false,
-	I forgot to change the type from int to bool.  Fix this.
-
-	Tested by rebuilding on x86_64-linux.
-
-2022-07-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix bad compile unit index complaint
-	I noticed this code in dw2_debug_names_iterator::next:
-	...
-	        case DW_IDX_compile_unit:
-	          /* Don't crash on bad data.  */
-	          if (ull >= per_bfd->all_comp_units.size ())
-	            {
-	              complaint (_(".debug_names entry has bad CU index %s"
-	                           " [in module %s]"),
-	                         pulongest (ull),
-	                         objfile_name (objfile));
-	              continue;
-	            }
-	          per_cu = per_bfd->get_cu (ull);
-	          break;
-	...
-
-	This code used to DTRT, before we started keeping both CUs and TUs in
-	all_comp_units.
-
-	Fix by using "per_bfd->all_comp_units.size () - per_bfd->tu_stats.nr_tus"
-	instead.
-
-	It's hard to produce a test-case for this, but let's try at least to trigger
-	the complaint somehow.  We start out by creating an exec with .debug_types and
-	.debug_names:
-	...
-	$ gcc -g ~/hello.c -fdebug-types-section
-	$ gdb-add-index -dwarf-5 a.out
-	...
-	and verify that we don't see any complaints:
-	...
-	$ gdb -q -batch -iex "set complaints 100" ./a.out
-	...
-
-	We look at the CU and TU table using readelf -w and conclude that we have
-	nr_cus == 6 and nr_tus == 1.
-
-	Now override ull in dw2_debug_names_iterator::next for the DW_IDX_compile_unit
-	case to 6, and we have:
-	...
-	$ gdb -q -batch -iex "set complaints 100" ./a.out
-	During symbol reading: .debug_names entry has bad CU index 6 [in module a.out]
-	...
-
-	After this, it still crashes because this code in
-	dw2_debug_names_iterator::next:
-	...
-	  /* Skip if already read in.  */
-	  if (m_per_objfile->symtab_set_p (per_cu))
-	    goto again;
-	...
-	is called with per_cu == nullptr.
-
-	Fix this by skipping the entry if per_cu == nullptr.
-
-	Now revert the fix and observe that the complaint disappears, so we've
-	confirmed that the fix is required.
-
-	A somewhat similar issue for .gdb_index in dw2_symtab_iter_next has been filed
-	as PR29367.
-
-	Tested on x86_64-linux, with native and target board cc-with-debug-names.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29336
-
-2022-07-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: replace wrong attributes on VCVTDQ2PH{X,Y}
-	A standalone (without SAE) StaticRounding attribute is meaningless, and
-	indeed all other similar insns have ATTSyntax there instead. I can only
-	assume this was some strange copy-and-paste mistake.
-
-	x86/Intel: correct AVX512F scatter insn element sizes
-	I clearly screwed up in 6ff00b5e12e7 ("x86/Intel: correct permitted
-	operand sizes for AVX512 scatter/gather") giving all AVX512F scatter
-	insns Dword element size. Update testcases (also their gather parts),
-	utilizing that there previously were two identical lines each (for no
-	apparent reason).
-
-2022-07-21  Alan Modra  <amodra@gmail.com>
-
-	PR29390, DW_CFA_AARCH64_negate_ra_state vs. DW_CFA_GNU_window_save
-		PR 29390
-	binutils/
-		* dwarf.c (is_aarch64, DW_CFA_GNU_window_save_name): New.
-		(display_debug_frames): Use them.
-		(init_dwarf_regnames_aarch64): Set is_aarch64.
-		(init_dwarf_regnames_by_elf_machine_code): Clear is_aarch64.
-		(init_dwarf_regnames_by_bfd_arch_and_mach): Likewise.
-	gas/
-		* testsuite/gas/aarch64/pac_ab_key.d: Adjust expected output.
-		* testsuite/gas/aarch64/pac_negate_ra_state.d: Likewise.
-
-2022-07-21  Alan Modra  <amodra@gmail.com>
-
-	PR29337, readelf CU/TU mixup in .gdb_index
-	Commit 244e19c79111 changed a number of variables in display_gdb_index
-	to count entries rather than words.
-
-		PR 29337
-		* dwarf.c (display_gdb_index): Correct use of cu_list_elements.
-
-2022-07-21  Alan Modra  <amodra@gmail.com>
-
-	PR29370, infinite loop in display_debug_abbrev
-	The PR29370 testcase is a fuzzed object file with multiple
-	.trace_abbrev sections.  Multiple .trace_abbrev or .debug_abbrev
-	sections are not a violation of the DWARF standard.  The DWARF5
-	standard even gives an example of multiple .debug_abbrev sections
-	contained in groups.  Caching and lookup of processed abbrevs thus
-	needs to be done by section and offset rather than base and offset.
-	(Why base anyway?)  Or, since section contents are kept, by a pointer
-	into the contents.
-
-		PR 29370
-		* dwarf.c (struct abbrev_list): Replace abbrev_base and
-		abbrev_offset with raw field.
-		(find_abbrev_list_by_abbrev_offset): Delete.
-		(find_abbrev_list_by_raw_abbrev): New function.
-		(process_abbrev_set): Set list->raw and list->next.
-		(find_and_process_abbrev_set): Replace abbrev list lookup with
-		new function.  Don't set list abbrev_base, abbrev_offset or next.
-
-2022-07-21  Alan Modra  <amodra@gmail.com>
-
-	binutils/dwarf.c: abbrev caching
-	I'm inclined to think that abbrev caching is counter-productive.  The
-	time taken to search the list of abbrevs converted to internal form is
-	non-zero, and it's easy to decode the raw abbrevs.  It's especially
-	silly to cache empty lists of decoded abbrevs (happens with zero
-	padding in .debug_abbrev), or abbrevs as they are displayed when there
-	is no further use of those abbrevs.  This patch stops caching in those
-	cases.
-
-		* dwarf.c (record_abbrev_list_for_cu): Add free_list param.
-		Put abbrevs on abbrev_lists here.
-		(new_abbrev_list): Delete function.
-		(process_abbrev_set): Return newly allocated list.  Move
-		abbrev base, offset and size checking to..
-		(find_and_process_abbrev_set): ..here, new function.  Handle
-		lookup of cached abbrevs here, and calculate start and end
-		for process_abbrev_set.  Return free_list if newly alloc'd.
-		(process_debug_info): Consolidate cached list lookup, new list
-		alloc and processing into find_and_process_abbrev_set call.
-		Free list when not cached.
-		(display_debug_abbrev): Similarly.
-
-2022-07-21  Alan Modra  <amodra@gmail.com>
-
-	miscellaneous dwarf.c tidies
-		* dwarf.c: Leading and trailing whitespace fixes.
-		(free_abbrev_list): New function.
-		(free_all_abbrevs): Use the above.  Free cu_abbrev_map here too.
-		(process_abbrev_set): Print actual section name on error.
-		(get_type_abbrev_from_form): Add overflow check.
-		(free_debug_memory): Don't free cu_abbrev_map here..
-		(process_debug_info): ..or here.  Warn on another case of not
-		finding a neeeded abbrev.
-
-2022-07-21  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64: fix build error on 32-bit hosts
-	elf64-ppc.c:11673:33: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘bfd_vma’ {aka ‘long long unsigned int’} [-Werror=format=]
-	11673 |   fprintf (stderr, "offset = %#lx:", stub_entry->stub_offset);
-	      |                              ~~~^    ~~~~~~~~~~~~~~~~~~~~~~~
-	      |                                 |              |
-	      |                                 |              bfd_vma {aka long long unsigned int}
-	      |                                 long unsigned int
-	      |                              %#llx
-
-		* elf64-ppc.c (dump_stub): Use BFD_VMA_FMT.
-
-2022-07-21  Kevin Buettner  <kevinb@redhat.com>
-
-	Wrap python_write_bytecode with HAVE_PYTHON ifdef
-	This commit fixes a build error on machines lacking python headers
-	and/or libraries.
-
-2022-07-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-20  Kevin Buettner  <kevinb@redhat.com>
-
-	Handle Python 3.11 deprecation of PySys_SetPath and Py_SetProgramName
-	Python 3.11 deprecates PySys_SetPath and Py_SetProgramName.  The
-	PyConfig API replaces these and other functions.  This commit uses the
-	PyConfig API to provide equivalent functionality while also preserving
-	support for older versions of Python, i.e. those before Python 3.8.
-
-	A beta version of Python 3.11 is available in Fedora Rawhide.  Both
-	Fedora 35 and Fedora 36 use Python 3.10, while Fedora 34 still used
-	Python 3.9.  I've tested these changes on Fedora 34, Fedora 36, and
-	rawhide, though complete testing was not possible on rawhide due to
-	a kernel bug.  That being the case, I decided to enable the newer
-	PyConfig API by testing PY_VERSION_HEX against 0x030a0000.  This
-	corresponds to Python 3.10.
-
-	We could try to use the PyConfig API for Python versions as early as 3.8,
-	but I'm reluctant to do this as there may have been PyConfig related
-	bugs in earlier versions which have since been fixed.  Recent linux
-	distributions should have support for Python 3.10.  This should be
-	more than adequate for testing the new Python initialization code in
-	GDB.
-
-	Information about the PyConfig API as well as the motivation behind
-	deprecating the old interface can be found at these links:
-
-	https://github.com/python/cpython/issues/88279
-	https://peps.python.org/pep-0587/
-	https://docs.python.org/3.11/c-api/init_config.html
-
-	The v2 commit also addresses several problems that Simon found in
-	the v1 version.
-
-	In v1, I had used Py_DontWriteBytecodeFlag in the new initialization
-	code, but Simon pointed out that this global configuration variable
-	will be deprecated in Python 3.12.  This version of the patch no longer
-	uses Py_DontWriteBytecodeFlag in the new initialization code.
-	Additionally, both Py_DontWriteBytecodeFlag and Py_IgnoreEnvironmentFlag
-	will no longer be used when building GDB against Python 3.10 or higher.
-	While it's true that both of these global configuration variables are
-	deprecated in Python 3.12, it makes sense to disable their use for
-	gdb builds against 3.10 and higher since those are the versions for
-	which the PyConfig API is now being used by GDB.  (The PyConfig API
-	includes different mechanisms for making the same settings afforded
-	by use of the soon-to-be deprecated global configuration variables.)
-
-	Simon also noted that PyConfig_Clear() would not have be called for
-	one of the failure paths.  I've fixed that problem and also made the
-	rest of the "bail out" code more direct.  In particular,
-	PyConfig_Clear() will always be called, both for success and failure.
-
-	The v3 patch addresses some rebase conflicts related to module
-	initialization .  Commit 3acd9a692dd ("Make 'import gdb.events' work")
-	uses PyImport_ExtendInittab instead of PyImport_AppendInittab.  That
-	commit also initializes a struct for each module to import.  Both the
-	initialization and the call to were moved ahead of the ifdefs to avoid
-	having to replicate (at least some of) the code three times in various
-	portions of the ifdefs.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28668
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29287
-
-2022-07-20  Christopher Di Bella  <cjdb@google.com>
-
-	gdb/value.c: add several headers to the include list
-	Building GDB currently fails to build with libc++, because libc++ is
-	stricter about which headers "leak" entities they're not guaranteed
-	to support. The following headers have been added:
-
-	* `<iterator>`, to support `std::back_inserter`
-	* `<utility>`, to support `std::move` and `std::swap`
-	* `<vector>`, to support `std::vector`
-
-	Change-Id: Iaeb15057c5fbb43217df77ce34d4e54446dbcf3d
-
-2022-07-20  Pedro Alves  <pedro@palves.net>
-
-	Don't stop all threads prematurely after first step of "step N"
-	In all-stop mode, when the target is itself in non-stop mode (like
-	GNU/Linux), if you use the "step N" (or "stepi/next/nexti N") to step
-	a thread a number of times:
-
-	 (gdb) help step
-	 step, s
-	 Step program until it reaches a different source line.
-	 Usage: step [N]
-	 Argument N means step N times (or till program stops for another reason).
-
-	... GDB prematurely stops all threads after the first step, and
-	doesn't re-resume them for the subsequent N-1 steps.  It's as if for
-	the 2nd and subsequent steps, the command was running with
-	scheduler-locking enabled.
-
-	This can be observed with the testcase added by this commit, which
-	looks like this:
-
-	 static pthread_barrier_t barrier;
-
-	 static void *
-	 thread_func (void *arg)
-	 {
-	   pthread_barrier_wait (&barrier);
-	   return NULL;
-	 }
-
-	 int
-	 main ()
-	 {
-	   pthread_t thread;
-	   int ret;
-
-	   pthread_barrier_init (&barrier, NULL, 2);
-
-	   /* We run to this line below, and then issue "next 3".  That should
-	      step over the 3 lines below and land on the return statement.  If
-	      GDB prematurely stops the thread_func thread after the first of
-	      the 3 nexts (and never resumes it again), then the join won't
-	      ever return.  */
-	   pthread_create (&thread, NULL, thread_func, NULL); /* set break here */
-	   pthread_barrier_wait (&barrier);
-	   pthread_join (thread, NULL);
-
-	   return 0;
-	 }
-
-	The test hangs and times out without the GDB fix:
-
-	 (gdb) next 3
-	 [New Thread 0x7ffff7d89700 (LWP 525772)]
-	 FAIL: gdb.threads/step-N-all-progress.exp: non-stop=off: target-non-stop=on: next 3 (timeout)
-
-	The problem is a core gdb bug.
-
-	When you do "step/stepi/next/nexti N", GDB internally creates a
-	thread_fsm object and associates it with the stepping thread.  For the
-	stepping commands, the FSM's class is step_command_fsm.  That object
-	is what keeps track of how many steps are left to make.  When one step
-	finishes, handle_inferior_event calls stop_waiting and returns, and
-	then fetch_inferior_event calls the "should_stop" method of the event
-	thread's FSM.  The implementation of that method decrements the
-	steps-left counter.  If the counter is 0, it returns true and we
-	proceed to presenting the stop to the user.  If it isn't 0 yet, then
-	the method returns false, indicating to fetch_inferior_event to "keep
-	going".
-
-	Focusing now on when the first step finishes -- we're in "all-stop"
-	mode, with the target in non-stop mode.  When a step finishes,
-	handle_inferior_event calls stop_waiting, which itself calls
-	stop_all_threads to stop everything.  I.e., after the first step
-	completes, all threads are stopped, before handle_inferior_event
-	returns.  And after that, now in fetch_inferior_event, we consult the
-	thread's thread_fsm::should_stop, which as we've seen, for the first
-	step returns false -- i.e., we need to keep_going for another step.
-	However, since the target is in non-stop mode, keep_going resumes
-	_only_ the current thread.  All the other threads remain stopped,
-	inadvertently.
-
-	If the target is in non-stop mode, we don't actually need to stop all
-	threads right after each step finishes, and then re-resume them again.
-	We can instead defer stopping all threads until all the steps are
-	completed.
-
-	So fix this by delaying the stopping of all threads until after we
-	called the FSM's "should_stop" method.  I.e., move it from
-	stop_waiting, to handle_inferior_events's callers,
-	fetch_inferior_event and wait_for_inferior.
-
-	New test included.  Tested on x86-64 GNU/Linux native and gdbserver.
-
-	Change-Id: Iaad50dcfea4464c84bdbac853a89df92ade6ae01
-
-2022-07-20  Alan Modra  <amodra@gmail.com>
-
-	Re: opcodes/arc: Implement style support in the disassembler
-		* arc-dis.c (print_insn_arc): Fix thinko.
-
-2022-07-20  Dmitry Selyutin  <ghostmansd@gmail.com>
-
-	gas/symbols: introduce md_resolve_symbol
-	Assuming GMSD is a special operand, marked as O_md1, the code:
-
-	    .set VREG, GMSD
-	    .set REG, VREG
-	    extsw REG, 2
-
-	...fails upon attempts to resolve the value of the symbol. This happens
-	since machine-dependent values are not handled in the giant op switch.
-	We introduce a custom md_resolve_symbol macro; the ports can use this
-	macro to customize the behavior when resolve_symbol_value hits O_md
-	operand.
-
-2022-07-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Disallow invalid relocations against protected symbols
-	Since glibc 2.36 will issue warnings for copy relocation against
-	protected symbols and non-canonical reference to canonical protected
-	functions, change the linker to always disallow such relocations.
-
-	bfd/
-
-		* elf32-i386.c (elf_i386_scan_relocs): Remove check for
-		elf_has_indirect_extern_access.
-		* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.
-		(elf_x86_64_relocate_section): Remove check for
-		elf_has_no_copy_on_protected.
-		* elfxx-x86.c (elf_x86_allocate_dynrelocs): Check for building
-		executable instead of elf_has_no_copy_on_protected.
-		(_bfd_x86_elf_adjust_dynamic_symbol): Disallow copy relocation
-		against non-copyable protected symbol.
-		* elfxx-x86.h (SYMBOL_NO_COPYRELOC): Remove check for
-		elf_has_no_copy_on_protected.
-
-	ld/
-
-		* testsuite/ld-i386/i386.exp: Expect linker error for PR ld/17709
-		test.
-		* testsuite/ld-i386/pr17709.rd: Removed.
-		* testsuite/ld-i386/pr17709.err: New file.
-		* testsuite/ld-x86-64/pr17709.rd: Removed.
-		* testsuite/ld-x86-64/pr17709.err: New file.
-		* testsuite/ld-x86-64/pr28875-func.err: Updated.
-		* testsuite/ld-x86-64/x86-64.exp: Expect linker error for PR
-		ld/17709 test.  Add tests for function pointer against protected
-		function.
-
-2022-07-19  Fangrui Song  <i@maskray.me>
-
-	x86: Make protected symbols local for -shared
-	Call _bfd_elf_symbol_refs_local_p with local_protected==true.  This has
-	2 noticeable effects for -shared:
-
-	* GOT-generating relocations referencing a protected data symbol no
-	  longer lead to a GLOB_DAT (similar to a hidden symbol).
-	* Direct access relocations (e.g. R_X86_64_PC32) no longer has the
-	  confusing diagnostic below.
-
-	    __attribute__((visibility("protected"))) void *foo() {
-	      return (void *)foo;
-	    }
-
-	    // gcc -fpic -shared -fuse-ld=bfd
-	    relocation R_X86_64_PC32 against protected symbol `foo' can not be used when making a shared object
-
-	The new behavior matches arm, aarch64 (commit
-	83c325007c5599fa9b60b8d5f7b84842160e1d1b), and powerpc ports, and other
-	linkers: gold and ld.lld.
-
-	Note: if some code tries to use direct access relocations to take the
-	address of foo, the pointer equality will break, but the error should be
-	reported on the executable link, not on the innocent shared object link.
-	glibc 2.36 will give a warning at relocation resolving time.
-
-	With this change, `#define elf_backend_extern_protected_data 1` is no
-	longer effective.  Just remove it.
-
-	Remove the test "Run protected-func-1 without PIE" since -fno-pic
-	address taken operation in the executable doesn't work with protected
-	symbol in a shared object by default.  Similarly, remove
-	protected-data-1a and protected-data-1b.  protected-data-1b can be made
-	working by removing HAVE_LD_PIE_COPYRELOC from GCC
-	(https://sourceware.org/pipermail/gcc-patches/2022-June/596678.html).
-
-2022-07-19  Luis Machado  <luis.machado@arm.com>
-
-	Reformat gdbarch-components.py to fix deviations
-	Reformat to make sure we have a clean file with no deviations
-	from the expected python code format.
-
-2022-07-19  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64] MTE corefile support
-	Teach GDB how to dump memory tags for AArch64 when using the gcore command
-	and how to read memory tag data back from a core file generated by GDB
-	(via gcore) or by the Linux kernel.
-
-	The format is documented in the Linux Kernel documentation [1].
-
-	Each tagged memory range (listed in /proc/<pid>/smaps) gets dumped to its
-	own PT_AARCH64_MEMTAG_MTE segment. A section named ".memtag" is created for each
-	of those segments when reading the core file back.
-
-	To save a little bit of space, given MTE tags only take 4 bits, the memory tags
-	are stored packed as 2 tags per byte.
-
-	When reading the data back, the tags are unpacked.
-
-	I've added a new testcase to exercise the feature.
-
-	Build-tested with --enable-targets=all and regression tested on aarch64-linux
-	Ubuntu 20.04.
-
-	[1] Documentation/arm64/memory-tagging-extension.rst (Core Dump Support)
-
-2022-07-19  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64] Support AArch64 MTE memory tag dumps in core files
-	The Linux kernel can dump memory tag segments to a core file, one segment
-	per mapped range. The format and documentation can be found in the Linux
-	kernel tree [1].
-
-	The following patch adjusts bfd and binutils so they can handle this new
-	segment type and display it accordingly. It also adds code required so GDB
-	can properly read/dump core file data containing memory tags.
-
-	Upon reading, each segment that contains memory tags gets mapped to a
-	section named "memtag". These sections will be used by GDB to lookup the tag
-	data. There can be multiple such sections with the same name, and they are not
-	numbered to simplify GDB's handling and lookup.
-
-	There is another patch for GDB that enables both reading
-	and dumping of memory tag segments.
-
-	Tested on aarch64-linux Ubuntu 20.04.
-
-	[1] Documentation/arm64/memory-tagging-extension.rst (Core Dump Support)
-
-2022-07-19  Luis Machado  <luis.machado@arm.com>
-
-	[AArch64] Fix testcase compilation failure
-	Newer distros carry newer headers that contains MTE definitions.  Account
-	for that fact in the MTE testcases (gdb.arch/aarch64-mte.exp) and define
-	constants conditionally to prevent compilation failures.
-
-2022-07-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Pass -nostdlib to compiler with -r
-	Pass -nostdlib to compiler with -r to avoid unnecessary .o file and
-	libraries.
-
-		PR ld/29377
-		* testsuite/ld-elf/linux-x86.exp: Pass -nostdlib with -r.
-
-2022-07-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Properly check invalid relocation against protected symbol
-	Only check invalid relocation against protected symbol defined in shared
-	object.
-
-	bfd/
-
-		PR ld/29377
-		* elf32-i386.c (elf_i386_scan_relocs): Only check invalid
-		relocation against protected symbol defined in shared object.
-		* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.
-
-	ld/
-
-		PR ld/29377
-		* testsuite/ld-elf/linux-x86.exp: Run PR ld/29377 tests.
-		* testsuite/ld-elf/pr29377a.c: New file.
-		* testsuite/ld-elf/pr29377b.c: Likewise.
-
-2022-07-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-18  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: link libgprofng.so against -lpthread
-	gprofng/ChangeLog
-	2022-07-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29364
-		* src/Makefile.am (libgprofng_la_LIBADD): Add -lpthread.
-		* src/Makefile.in: Rebuild.
-
-2022-07-18  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix regression in build and a race condition in autoreconf
-	gprofng/ChangeLog
-	2022-07-14  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29338
-		* libcollector/configure.ac (AC_CONFIG_HEADERS): Fix a race condition.
-		* libcollector/configure: Rebuild.
-		* libcollector/Makefile.in: Rebuild.
-		* common/config.h.in: Rebuild.
-		* common/lib-config.h.in: Created by autoreconf.
-
-2022-07-18  Tom Tromey  <tromey@adacore.com>
-
-	Add gdb.free_objfile event registry
-	Currently, Python code can use event registries to detect when gdb
-	loads a new objfile, and when gdb clears the objfile list.  However,
-	there's no way to detect the removal of an objfile, say when the
-	inferior calls dlclose.
-
-	This patch adds a gdb.free_objfile event registry and arranges for an
-	event to be emitted in this case.
-
-2022-07-18  Pedro Alves  <pedro@palves.net>
-
-	Put gdb.base/bt-on-fatal-signal.exp GDB cores in output dir
-	I noticed that gdb.base/bt-on-fatal-signal.exp was contributing four
-	core files to the count of unexpected core files:
-
-	 $ make check TESTS="gdb.base/bt-on-fatal-signal.exp"
-
-			 === gdb Summary ===
-
-	 # of unexpected core files      4
-	 # of expected passes            21
-
-	These are GDB core dumps.  They are expected, however, because the
-	whole point of the testcase is to crash GDB with a signal.
-
-	Make GDB change its current directory to the output dir just before
-	crashing, so that the core files end up there.  The result is now:
-
-			 === gdb Summary ===
-
-	 # of expected passes            25
-
-	and:
-
-	 $ find . -name "core.*"
-	 ./testsuite/outputs/gdb.base/bt-on-fatal-signal/core.gdb.1676506.nelson.1657727692
-	 ./testsuite/outputs/gdb.base/bt-on-fatal-signal/core.gdb.1672585.nelson.1657727671
-	 ./testsuite/outputs/gdb.base/bt-on-fatal-signal/core.gdb.1674833.nelson.1657727683
-	 ./testsuite/outputs/gdb.base/bt-on-fatal-signal/core.gdb.1673709.nelson.1657727676
-
-	(Note the test is skipped at the top if on a remote host.)
-
-	Change-Id: I79e4fb2e91330279c7a509930b1952194a72e85a
-
-2022-07-18  Tom Tromey  <tromey@adacore.com>
-
-	Remove array typedef assumption for Ada
-	Currently the Ada code assumes that it can distinguish between a
-	multi-dimensional array and an array of arrays by looking for an
-	intervening typedef -- that is, for an array of arrays, there will be
-	a typedef wrapping the innermost array type.
-
-	A recent compiler change removes this typedef, which causes a gdb
-	failure in the internal AdaCore test suite.
-
-	This patch handles this case by checking whether the array type in
-	question has a name.
-
-2022-07-18  Tom Tromey  <tromey@adacore.com>
-
-	Remove manual lifetime management from cli_interp
-	cli_interp manually manages its cli_out object.  This patch changes it
-	to use a unique_ptr, and also changes cli_uiout to be a private
-	member.
-
-	Remove cli_out_new
-	cli_out_new is just a small wrapper around 'new'.  This patch removes
-	it, replacing it with uses of 'new' instead.
-
-	Replace input_interactive_p with a method
-	This replaces the global input_interactive_p function with a new
-	method ui::input_interactive_p.
-
-	Remove ui_register_input_event_handler
-	This patch removes ui_register_input_event_handler and
-	ui_unregister_input_event_handler, replacing them with methods on
-	'ui'.  It also changes gdb to use these methods everywhere, rather
-	than sometimes reaching in to the ui to manage the file descriptor
-	directly.
-
-2022-07-18  Claudiu Zissulescu  <claziss@gmail.com>
-
-	opcodes/arc: Implement style support in the disassembler
-	Update the ARC disassembler to supply style information to the
-	disassembler output. The output formatting remains unchanged.
-
-	opcodes/ChangeLog:
-		* disassemble.c (disassemble_init_for_target): Set
-		created_styled_output for ARC based targets.
-		* arc-dis.c (find_format_from_table): Use fprintf_styled_ftype
-		instead of fprintf_ftype throughout.
-		(find_format): Likewise.
-		(print_flags): Likewise.
-		(print_insn_arc): Likewise.
-
-2022-07-18  Claudiu Zissulescu  <claziss@synopsys.com>
-
-	arc: Update missing cipher.
-	The ciphers 5,7, and 9 are missing when parsing an assembly
-	instruction leading to errors when those ciphers are
-	used.
-
-	gas/config
-		* tc-arc.c (md_assembly): Update strspn string with the
-	          missing ciphers.
-
-2022-07-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove duplicate of supports_gnuc
-	In commit 9d9dd861e98 ("[gdb/testsuite] Fix regression in
-	step-indirect-call-thunk.exp with gcc 7") I accidentally committed a duplicate
-	of supports_gnuc, which caused:
-	...
-	DUPLICATE: gdb.base/gdb-caching-proc.exp: supports_gnuc: consistency
-	...
-
-	Fix this by removing the duplicate.
-
-	Tested on x86_64-linux.
-
-2022-07-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: look for python, then python 3 at configure time
-	It is possible that a system might have a python3 executable, but no
-	python executable.  For example, on my Fedora system the python2
-	package provides /usr/bin/python2, the python3 package provides
-	/usr/bin/python3, and the python-unversioned-command package provides
-	/usr/bin/python, which picks between python2 and python3.
-
-	It is quite possible to only have python3 available on a system.
-
-	Currently, when GDB configures, it looks for a 'python' executable.
-	If non is found then GDB will be built without python support.  Or the
-	user needs to configure using --with-python=/usr/bin/python3.
-
-	This commit updates GDB's configure.ac script to first look for
-	'python', and then 'python3'.  Now, on a system that only has a
-	python3 executable, GDB will automatically find, and use that in order
-	to provide python support, no user supplied configure arguments are
-	needed.
-
-	I've tested this on my local machine by removing the
-	python-unversioned-command package, confirming that there is no longer
-	a 'python' executable in my $PATH, and then rebuilding GDB from
-	scratch.  GDB with this patch has python support.
-
-2022-07-18  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct VMOVSH attributes
-	Both forms were missing VexW0 (thus allowing Evex.W=1 to be encoded by
-	suitable means, which would cause #UD). The memory operand form further
-	was using the wrong Masking value, thus allowing zeroing-masking to be
-	encoded for the store form (which would again cause #UD).
-
-	x86: re-order insn template fields
-	This saves quite a number of shift instructions: The "operands" field
-	can now be retrieved by just masking (no shift), and extracting the
-	"extension_opcode" field now only requires a (signed) right shift, with
-	no prereq left one. (Of course there may be architectures where, in a
-	cross build, there might be no difference at all, e.g. when there are
-	suitable bitfield extraction insns.)
-
-2022-07-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdbsupport] Improve thread scheduling in parallel_for_each
-	When running a task using parallel_for_each, we get the following
-	distribution:
-	...
-	Parallel for: n_elements: 7271
-	Parallel for: minimum elements per thread: 10
-	Parallel for: elts_per_thread: 1817
-	Parallel for: elements on worker thread 0       : 1817
-	Parallel for: elements on worker thread 1       : 1817
-	Parallel for: elements on worker thread 2       : 1817
-	Parallel for: elements on worker thread 3       : 0
-	Parallel for: elements on main thread           : 1820
-	...
-
-	Note that there are 4 active threads, and scheduling elts_per_thread on each
-	of those handles 4 * 1817 == 7268, leaving 3 "left over" elements.
-
-	These leftovers are currently handled in the main thread.
-
-	That doesn't seem to matter much for this example, but for say 10 threads and
-	99 elements, you'd have 9 threads handling 9 elements and 1 thread handling 18
-	elements.
-
-	Instead, distribute the left over elements over the worker threads, such that
-	we have:
-	...
-	Parallel for: elements on worker thread 0       : 1818
-	Parallel for: elements on worker thread 1       : 1818
-	Parallel for: elements on worker thread 2       : 1818
-	Parallel for: elements on worker thread 3       : 0
-	Parallel for: elements on main thread           : 1817
-	...
-
-	Tested on x86_64-linux.
-
-2022-07-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Allow override of ASAN_OPTIONS in lib/gdb.exp
-	Use set_sanitizer_default for ASAN_OPTIONS in lib/gdb.exp.
-
-	This allows us to override the default detect_leaks=0 setting, by manually
-	doing:
-	...
-	$ export ASAN_OPTIONS=detect_leaks=1
-	$ make check
-	...
-
-	Tested on x86_64-linux, by building with -fsanitize=address and running
-	test-case gdb.dwarf2/gdb-add-index.exp with and without
-	"export ASAN_OPTIONS=detect_leaks=1".
-
-2022-07-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix regression in step-indirect-call-thunk.exp with gcc 7
-	Since commit 43127ae5714 ("Fix gdb.base/step-indirect-call-thunk.exp") I run
-	into:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option \
-	  '-fcf-protection=none'; did you mean '-flto-partition=none'?
-	UNTESTED: gdb.base/step-indirect-call-thunk.exp: failed to prepare
-	...
-
-	The problem is that -fcf-protection is supported starting gcc 8, but I'm using
-	system gcc 7.5.0.
-
-	Fix this by only adding -fcf-protection=none for gcc 8 and later.
-
-	Tested on x86_64-linux, with gcc 7.5.0, 8.2.1 and 12.1.1.
-
-2022-07-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/i386-mpx.exp
-	Since commit c4a3dbaf113 ("Expose current 'print' settings to Python") we
-	have:
-	...
-	(gdb) print /x $bnd0 = {0x10, 0x20}^M
-	$22 = {lbound = 0x10, ubound = 0x20} : size 0x11^M
-	(gdb) FAIL: gdb.arch/i386-mpx.exp: verify size for bnd0
-	...
-
-	The regexp in the test-case expects "size 17".
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-2022-07-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdbsupport] Add parallel_for_each_debug
-	Add a parallel_for_each_debug variable, set to false by default.
-
-	With an a.out compiled from hello world, we get with
-	parallel_for_each_debug == true:
-	...
-	$ gdb -q -batch a.out -ex start
-	  ...
-	Parallel for: n_elements: 7271
-	Parallel for: minimum elements per thread: 10
-	Parallel for: elts_per_thread: 1817
-	Parallel for: elements on worker thread 0       : 1817
-	Parallel for: elements on worker thread 1       : 1817
-	Parallel for: elements on worker thread 2       : 1817
-	Parallel for: elements on worker thread 3       : 0
-	Parallel for: elements on main thread           : 1820
-
-	Temporary breakpoint 1, main () at /home/vries/hello.c:6
-	6         printf ("hello\n");
-	...
-
-	Tested on x86_64-linux.
-
-2022-07-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-15  Aaron Merey  <amerey@redhat.com>
-
-	gdb-add-index always generates an error when libdebuginfod wasn't compiled in
-	gdb-add-index runs gdb with -iex 'set debuginfod enabled off'.  If gdb
-	is not compiled against libdebuginfod this causes an unnecessary error
-	message to be printed to stderr indicating that gdb was not built with
-	debuginfod support.
-
-	Fix this by changing the 'set debuginfod enabled off' command to a
-	no-op when gdb isn't built with libdebuginfod.
-
-2022-07-15  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: modernize gdb.base/maint.exp
-	gdb.base/maint.exp was using several gdb_expect statements, probably
-	because this test case predates the existance of gdb_test_multiple. This
-	commit updates the test case to use gdb_test_multiple, making it more
-	resilient to internal errors and such.
-
-	The only gdb_expect left in the testcase is one that specifically looks
-	for an internal error being triggered as a PASS.
-
-2022-07-15  Tom Tromey  <tromey@adacore.com>
-
-	Add 'nibbles' to gdb.print_options
-	When I rebased and updated the print_options patch, I forgot to update
-	print_options to add the new 'nibbles' feature to the result.  This
-	patch fixes the oversight.  I'm checking this in.
-
-2022-07-15  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: Add support for IEEE 128-bit format.
-	The test gdb.base/infcall-nested-structs-c.exp fails on a gdb assert
-	in function ppc64_sysv_abi_return_value in file gdb/ppc-sysv-tdep.c.  The
-	assert is due to the missing IEEE 128-bit support in file
-	gdb/ppc-sysv-tdep.c.
-
-	The IBM long double was the initial float 128-bit support added by IBM
-	The IEEE 128-bit support, which is similar IBM long double support, was
-	made the default starting with GCC 12.  The floating point format
-	differences include the number of bits used to encode the exponent
-	and significand.  Also, IBM long double values are passed in a pair of
-	floating point registers.  The  IEEE 128-bit value is passed in a single
-	vector register.
-
-	This patch fixes the gdb_assert (ok); in function
-	ppc64_sysv_abi_return_value in gdb/ppc-sysv-tdep.c by adding IEEE FLOAT
-	128-bit type support for PowerPC.
-
-	The patch has been tested on Power 10, ELFv2.  It fixes the following list
-	of regression failures on Power 10:
-
-	gdb.base/infcall-nested-structs-c.exp      192
-	gdb.base/infcall-nested-structs-c++.exp     76
-	gdb.base/structs.exp                         9
-
-	The patch has been tested on Power 8 BE which is ELFv1.
-
-2022-07-15  Tom Tromey  <tromey@adacore.com>
-
-	Add 'summary' mode to Value.format_string
-	This adds a 'summary' mode to Value.format_string and to
-	gdb.print_options.  For the former, it lets Python code format values
-	using this mode.  For the latter, it lets a printer potentially detect
-	if it is being called in a backtrace with 'set print frame-arguments'
-	set to 'scalars'.
-
-	I considered adding a new mode here to let a pretty-printer see
-	whether it was being called in a 'backtrace' context at all, but I'm
-	not sure if this is really desirable.
-
-2022-07-15  Tom Tromey  <tromey@adacore.com>
-
-	Expose current 'print' settings to Python
-	PR python/17291 asks for access to the current print options.  While I
-	think this need is largely satisfied by the existence of
-	Value.format_string, it seemed to me that a bit more could be done.
-
-	First, while Value.format_string uses the user's settings, it does not
-	react to temporary settings such as "print/x".  This patch changes
-	this.
-
-	Second, there is no good way to examine the current settings (in
-	particular the temporary ones in effect for just a single "print").
-	This patch adds this as well.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17291
-
-2022-07-15  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: fix for gdb.base/eh_return.exp
-	Disable the Traceback Table generation on PowerPC for this test.  The
-	Traceback Table consists of a series of bit fields to indicate things like
-	the Traceback Table version, language, and specific information about the
-	function.  The Traceback Table is generated following the end of the code
-	for every function by default.  The Traceback Table is defined in the
-	PowerPC ELF ABI and is intended to support debuggers and exception
-	handlers.  The Traceback Table is displayed in the disassembly of functions
-	by default and is part of the function length.  The table is typically
-	interpreted by the disassembler as data represented by .long xxx entries.
-
-	Generation of the Traceback Table is disabled in this test using the
-	PowerPC specific gcc compiler option -mtraceback=no, the xlc option
-	additional_flags-qtable=none and the clang optons
-	 -mllvm -xcoff-traceback-table=false.  Disabling the Traceback Table
-	generation in this test results in the gdb_test_multiple statement
-	correctly locating the address of the bclr instruction before the statement
-	"End of assembler dump." in the disassembly output.
-
-2022-07-15  Tom Tromey  <tromey@adacore.com>
-
-	Run 'black' on gdb
-	Running 'black' on gdb fixed a couple of small issues.  This patch is
-	the result.
-
-2022-07-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix data race in cooked_index_functions::expand_symtabs_matching
-	When building gdb with -fsanitize-threads and running test-case
-	gdb.ada/char_enum_unicode.exp, I run into:
-	...
-	WARNING: ThreadSanitizer: data race (pid=21301)^M
-	  Write of size 8 at 0x7b2000008080 by main thread:^M
-	    #0 free <null> (libtsan.so.2+0x4c5e2)^M
-	    #1 _dl_close_worker <null> (ld-linux-x86-64.so.2+0x4b7b)^M
-	    #2 convert_between_encodings() charset.c:584^M
-	  ...
-	    #21 cooked_index_functions::expand_symtabs_matching() read.c:18606
-	...
-
-	This is fixed by making cooked_index_functions::expand_symtabs_matching wait
-	for the cooked index finalization to be done.
-
-	Tested on x86_64-linux.
-
-	https://sourceware.org/bugzilla/show_bug.cgi?id=29311
-	https://sourceware.org/bugzilla/show_bug.cgi?id=29286
-
-2022-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdbsupport] Add sequential_for_each
-	Add a sequential_for_each alongside the parallel_for_each, which can be used
-	as a drop-in replacement.
-
-	This can be useful when debugging multi-threading behaviour, and you want to
-	limit multi-threading in a fine-grained way.
-
-	Tested on x86_64-linux, by using it instead of the parallel_for_each in
-	dwarf2_build_psymtabs_hard.
-
-2022-07-14  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: Document floating-point support for LoongArch
-	Update NEWS and gdb.texinfo to document floating-point support
-	for LoongArch.
-
-2022-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix gdb build with gcc 4.8.5
-	When building gdb with gcc 4.8.5, we run into:
-	...
-	In file included from /usr/include/c++/4.8/future:43:0,
-	                 from gdbsupport/thread-pool.h:30,
-	                 from gdb/dwarf2/cooked-index.h:33,
-	                 from gdb/dwarf2/read.h:26,
-	                 from gdb/dwarf2/abbrev-cache.c:21:
-	/usr/include/c++/4.8/atomic: In instantiation of \
-	  ‘_Tp std::atomic<_Tp>::load(std::memory_order) const [with _Tp = \
-	  packed<dwarf_unit_type, 1ul>; std::memory_order = std::memory_order]’:
-	gdb/dwarf2/read.h:332:44:   required from here
-	/usr/include/c++/4.8/atomic:208:13: error: no matching function for call to \
-	  ‘packed<dwarf_unit_type, 1ul>::packed()’
-	         _Tp tmp;
-	             ^
-	...
-
-	Fix this by adding the default constructor for packed.
-
-	Tested on x86_64-linux, with gdb build with gcc 4.8.5.
-
-2022-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Make per_cu->m_lang atomic
-	When building gdb with -fsanitize=thread and running test-case
-	gdb.dwarf2/inlined_subroutine-inheritance.exp, we run into a data race
-	between:
-	...
-	  Read of size 1 at 0x7b2000003010 by thread T4:
-	    #0 packed<language, 1ul>::operator language() const packed.h:54
-	    #1 dwarf2_per_cu_data::set_lang(language) read.h:363
-	...
-	and:
-	...
-	  Previous write of size 1 at 0x7b2000003010 by main thread:
-	    #0 dwarf2_per_cu_data::set_lang(language) read.h:365
-	...
-
-	Fix this by making per_cu->m_lang atomic.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29286
-
-2022-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Make per_cu->unit_type atomic
-	With gdb with -fsanitize=thread and test-case gdb.ada/array_bounds.exp, I run
-	into a data race between:
-	...
-	  Read of size 1 at 0x7b2000025f0f by main thread:
-	    #0 packed<dwarf_unit_type, 1ul>::operator dwarf_unit_type() const packed.h:54
-	    #1 dwarf2_per_cu_data::set_unit_type(dwarf_unit_type) read.h:339
-	...
-	and:
-	...
-	  Previous write of size 1 at 0x7b2000025f0f by thread T3:
-	    #0 dwarf2_per_cu_data::set_unit_type(dwarf_unit_type) read.h:341
-	...
-
-	Fix this by making per_cu->unit_type atomic.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29286
-
-2022-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix data race in ~charset_vector
-	When doing:
-	...
-	$ gdb ./outputs/gdb.ada/char_enum_unicode/foo -batch -ex "break foo.adb:26"
-	...
-	with a gdb build with -fsanitize=thread I run into a data race:
-	...
-	WARNING: ThreadSanitizer: data race (pid=30917)
-	  Write of size 8 at 0x7b0400004070 by main thread:
-	    #0 free <null> (libtsan.so.2+0x4c5e2)
-	    #1 xfree<char> gdbsupport/gdb-xfree.h:37 (gdb+0x650f17)
-	    #2 charset_vector::clear() gdb/charset.c:703 (gdb+0x651354)
-	    #3 charset_vector::~charset_vector() gdb/charset.c:697 (gdb+0x6512d3)
-	    #4 <null> <null> (libtsan.so.2+0x32643)
-	    #5 captured_main_1 gdb/main.c:1310 (gdb+0xa3975a)
-	...
-
-	The problem is that we're freeing the charset_vector elements in the destructor,
-	which may still be used by a worker thread.
-
-	Fix this by not freeing the charset_vector elements in the destructor.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29311
-
-2022-07-14  Alan Modra  <amodra@gmail.com>
-
-	Re: PowerPC: implement md_operand to parse register names
-	I meant to make this change before committing, to let compilers know
-	the code on the false branch of md_parse_name is dead.
-
-		* config/tc-ppc.c (ppc_parse_name): Return void.
-		* config/tc-ppc.h (md_parse_name): Always true.
-		(ppc_parse_name): Update prototype.
-
-2022-07-14  Alan Modra  <amodra@gmail.com>
-
-	PowerPC: implement md_operand to parse register names
-	Allows register names to appear in symbol assignments, so for example
-	 tocp = %r2
-	 mr %r3,tocp
-	now assembles.
-
-		* gas/config/tc-ppc.c (REG_NAME_CNT): Delete, replace uses with
-		ARRAY_SIZE.
-		(register_name): Rename to..
-		(md_operand): ..this.  Only handle %reg.
-		(cr_names): Rename to..
-		(cr_cond): ..this.  Just keep conditions.
-		(ppc_parse_name): Add mode param.  Search both cr_cond and
-		pre_defined_registers.  Handle absolute and register symbol
-		values here rather than in expr.c:operand().
-		(md_assemble): Don't special case register name matching in
-		operands, except to set cr_operand as appropriate.
-		* gas/config/tc-ppc.h (md_operand): Don't define.
-		(md_parse_name, ppc_parse_name): Update.
-		* read.c (pseudo_set): Copy over entire O_register value.
-		* testsuite/gas/ppc/regsyms.d.
-		* testsuite/gas/ppc/regsyms.s: New test.
-		* testsuite/gas/ppc/ppc.exp: Run it.
-
-2022-07-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-13  Pedro Alves  <pedro@palves.net>
-
-	Tighten gdb.threads/no-unwaited-for-left.exp regexps
-	A WIP version of a patch
-	(https://sourceware.org/pipermail/gdb-patches/2022-June/190202.html)
-	resulted in a bug that went unnoticed by the testuite, like so:
-
-	 (gdb) PASS: gdb.threads/no-unwaited-for-left.exp: enable scheduler-locking, for main thread
-	 continue
-	 Continuing.
-	 [New Thread 1251861.1251861]
-	 No unwaited-for children left.
-	 (gdb) PASS: gdb.threads/no-unwaited-for-left.exp: continue stops when the main thread exits
-	 info threads
-	   Id   Target Id                                Frame
-	   3    Thread 1251861.1251863 "no-unwaited-for" __pthread_clockjoin_ex (threadid=140737351558976, thread_return=0x0, clockid=<optimized out>, abstime=<optimized out>, block=<optimized out>) at pthread_join_common.c:145
-	   4    Thread 1251861.1251861 "no-unwaited-for" <unavailable> in ?? ()
-
-	 The current thread <Thread ID 1> has terminated.  See `help thread'.
-	 (gdb) PASS: gdb.threads/no-unwaited-for-left.exp: only thread 3 left, main thread terminated
-
-	Somehow, above, GDB re-added the zombie leader back before printing
-	"No unwaited-for children left.".  The "only thread 3 left, main
-	thread terminated" test should have caught this, but didn't.  That is
-	because the test's regexp has a ".*" after the part that matches
-	thread 3.  This commit tightens that regexp to catch such a bug.  It
-	also tightens the "only main thread left, thread 2 terminated" test's
-	regexp in the same way.
-
-	Change-Id: I8744f327a0aa0e2669d1ddda88247e99b91cefff
-
-2022-07-13  Carl Love  <cel@us.ibm.com>
-
-	Fix for gdb.base/stap-probe.c
-	On PowePC, the test fails on a compile error:
-
-	  /../binutils-gdb-current/gdb/testsuite/gdb.base/stap-probe.c:107:1: error: expected '=', ',', ';', 'asm' or 'attribute' before 'use_xmm_reg'
-	  107 | use_xmm_reg (int val)
-	  | ^~~~~~~~~~~
-
-	Where the source code for stap-probe.c is:
-
-	  static const char * __attribute__((noinline)) ATTRIBUTE_NOCLONE
-	  use_xmm_reg (int val)                         <-- line 107
-	  {
-	  ...
-
-	The issue is the ATTRIBUTE_NOCLONE is not defined as an attribute as
-	expected.  The #define for ATTRIBUTE_NOCLONE can be found in
-	../lib/attributes.h.
-
-	This patch adds the missing include statement for the definition of
-	ATTRIBUTE_NOCLONE.
-
-	The patch has been tested and verified on a Power10 system.
-
-2022-07-13  Carl Love  <cel@us.ibm.com>
-
-	Add PowerPC support to gdb.cp/call-method-register.cc
-	This patch adds the needed define ASM_REG for PowerPC.
-
-	The patch was run on a Power 10 system.  The gdb Summary for the run lists
-	2 expected passes, no unexpected failures or untested testcases.
-
-	Please let me know if this patch is acceptable for mainline.
-
-	                         Carl Love
-
-2022-07-13  Carl Love  <cel@us.ibm.com>
-
-	Fix gdb.base/step-indirect-call-thunk.exp
-	Due to recent changes in the default value of -fcf-protection for gcc, the
-	test gdb.base/step-indirect-call-thunk.exp fails on Intel X86-64 with the
-	error:
-
-	Executing on host: gcc  -fno-stack-protector  -fdiagnostics-color=never
-	-mindirect-branch=thunk -mfunction-return=thunk -c -g
-	-o /.../gdb/testsuite/outputs/gdb.base/step-indirect-call-thunk/step-indirect-call-thunk0.o
-	/.../gdb/testsuite/gdb.base/step-indirect-call-thunk.c
-	(timeout = 300) builtin_spawn -ignore SIGHUP gcc -fno-stack-protector
-	-fdiagnostics-color=never -mindirect-branch=thunk -mfunction-return=thunk -c
-	-g -o /.../gdb/testsuite/outputs/gdb.base/step-indirect-call-thunk/step-indirect-call-thunk0.o
-	/.../binutils-gdb-current/gdb/testsuite/gdb.base/step-indirect-call-thunk.c
-	/.../gdb/testsuite/gdb.base/step-indirect-call-thunk.c:
-	 In function 'inc': /.../gdb/testsuite/gdb.base/step-indirect-call-thunk.c:
-	22:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
-	   22 | {                /* inc.1 */
-
-	As stated in the error message the default "-fcf-protection" and
-	"-mindirect-branch' are in compatible.  The fcf-protection argument needs
-	to be "-fcf-protection=none" for the test to compile on Intel.
-
-	The gcc command line "-mindirect-branch' is an Intel specific and will give
-	an error on other platforms.  A check for X86 is added so the test will
-	only run on X86 platforms.
-
-	The patch has been tested and verified on Power 10 and Intel X86-64 systems
-	with no regressions.
-
-2022-07-13  Pedro Alves  <pedro@palves.net>
-
-	Fix "until LINE" in main, when "until" runs into longjmp
-	With a test like this:
-
-	1       #include <dlfcn.h>
-	2       int
-	3       main ()
-	4       {
-	5          dlsym (RTLD_DEFAULT, "FOO");
-	6          return 0;
-	7       }
-
-	and then "start" followed by "until 6", GDB currently incorrectly
-	stops inside the runtime loader, instead of line 6.  Vis:
-
-	  ...
-	  Temporary breakpoint 1, main () at until.c:5
-	  4       {
-	  (gdb) until 6
-	  0x00007ffff7f0a90d in __GI__dl_catch_exception (exception=exception@entry=0x7fffffffdb00, operate=<optimized out>, args=0x7ffff7f0a90d <__GI__dl_catch_exception+109>) at dl-error-skeleton.c:206
-	  206     dl-error-skeleton.c: No such file or directory.
-	  (gdb)
-
-	The problem is related to longjmp handling -- dlsym internally
-	longjmps on error.  The testcase can be reduced to this:
-
-	1       #include <setjmp.h>
-	2       void func () {
-	3         jmp_buf buf;
-	4         if (setjmp (buf) == 0)
-	5           longjmp (buf, 1);
-	6       }
-	7
-	8       int main () {
-	9         func ();
-	10        return 0; /* until to here */
-	11      }
-
-	and then with "start" followed by "until 10", GDB currently
-	incorrectly stops at line 4 (returning from setjmp), instead of line
-	10.
-
-	The problem is that the BPSTAT_WHAT_CLEAR_LONGJMP_RESUME code in
-	infrun.c fails to find the initiating frame, and so infrun thinks that
-	the longjmp jumped somewhere outer to "until"'s originating frame.
-
-	Here:
-
-	    case BPSTAT_WHAT_CLEAR_LONGJMP_RESUME:
-	      {
-		struct frame_info *init_frame;
-
-		/* There are several cases to consider.
-
-		   1. The initiating frame no longer exists.  In this case we
-		   must stop, because the exception or longjmp has gone too
-		   far.
-
-	        ...
-
-		init_frame = frame_find_by_id (ecs->event_thread->initiating_frame);
-
-		if (init_frame)   // this is NULL!
-		  {
-		     ...
-		  }
-
-		/* For Cases 1 and 2, remove the step-resume breakpoint, if it
-		   exists.  */
-		delete_step_resume_breakpoint (ecs->event_thread);
-
-		end_stepping_range (ecs);   // case 1., so we stop.
-	      }
-
-	The initiating frame is set by until_break_command ->
-	set_longjmp_breakpoint.  The initiating frame is supposed to be the
-	frame that is selected when the command was issued, but
-	until_break_command instead passes the frame id of the _caller_ frame
-	by mistake.  When the "until LINE" command is issued from main, the
-	caller frame is the caller of main.  When later infrun tries to find
-	that frame by id, it fails to find it, because frame_find_by_id
-	doesn't unwind past main.
-
-	The bug is that we passed the caller frame's id to
-	set_longjmp_breakpoint.  We should have passed the selected frame's id
-	instead.
-
-	Change-Id: Iaae1af7cdddf296b7c5af82c3b5b7d9b66755b1c
-
-2022-07-13  Enze Li  <enze.li@hotmail.com>
-
-	gdbserver: remove unused variable
-	When building with clang 15, I got this error:
-
-	  CXX    server.o
-	server.cc:2985:10: error: variable 'new_argc' set but not used [-Werror,-Wunused-but-set-variable]
-	  int i, new_argc;
-	             ^
-	Remove the unused variable to eliminate the error.
-
-	Tested by rebuilding on x86_64-linux with clang 15.
-
-2022-07-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Make per_cu->set_lang more strict
-	We have in per_cu->set_lang this comment:
-	...
-	  void set_lang (enum language lang)
-	  {
-	    /* We'd like to be more strict here, similar to what is done in
-	       set_unit_type,  but currently a partial unit can go from unknown to
-	       minimal to ada to c.  */
-	...
-
-	Fix this by not setting m_lang for partial units.
-
-	This requires us to move the m_unit_type initialization to ensure that
-	m_unit_type is initialized before per_cu->m_lang.
-
-	Tested on x86_64-linux, with native and target board cc-with-dwz-m.
-
-2022-07-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-12  Pedro Alves  <pedro@palves.net>
-
-	Improve "set scheduler-locking" documentation
-	This improves the "set scheduler-locking" documentation in the GDB
-	manual:
-
-	 - Use a table to describe the four available modes.
-
-	 - Describe "step" in terms of "on" and "off".
-
-	 - Tweak the "replay" mode's description to describe replay first
-	   instead of recording, and also mention how the mode behaves during
-	   normal execution.
-
-	 - Say what is the default mode.
-
-	Change-Id: Ie12140138b37534b7fc1d904da34f0f174aa11ce
-
-2022-07-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Add dwarf2_cu::lang ()
-	The cu->per_cu->lang field was added to carry information from the initial
-	partial symtabs phase to the symtab expansion phase, for the benefit of a
-	particular optimization in process_imported_unit_die.
-
-	Other uses have been added, but since the first phase now has been
-	parallelized, those have become problematic and sources of race conditions.
-
-	Fix this by adding dwarf2_cu::lang () and using it where we can to replace
-	cu->per_cu->lang () with cu->lang ().
-
-	Also assert in dwarf2_cu::lang () that we're not returning language_unknown.
-
-	Tested on x86_64-linux.
-
-2022-07-12  Martin Liska  <mliska@suse.cz>
-
-	LTO plugin: sync header file with GCC
-	include/ChangeLog:
-
-		* plugin-api.h (enum ld_plugin_tag): Sync with GCC.
-
-2022-07-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/record] Support recording of getrandom
-	Add missing support for recording of linux syscall getrandom.
-
-	Tested on x86_64-linux with native and target board unix/-m32.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22081
-
-2022-07-12  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdbserver: LoongArch: Add floating-point support
-	This commit adds floating-point support for LoongArch gdbserver.
-
-	gdb: LoongArch: Add floating-point support
-	This commit adds floating-point support for LoongArch gdb.
-
-2022-07-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Run two test-cases with ASAN_OPTIONS=verify_asan_link_order=0
-	When building gdb with -fsanitize=address we run into:
-	...
-	builtin_spawn gdb -nw -nx -iex set height 0 -iex set width 0 -data-directory \
-	  build/gdb/data-directory^M
-	==10637==ASan runtime does not come first in initial library list; you \
-	  should either link runtime to your application or manually preload it with \
-	  LD_PRELOAD.^M
-	ERROR: GDB process no longer exists
-	...
-
-	Prevent the ASan runtime error by using
-	ASAN_OPTIONS=verify_asan_link_order=0.  This makes both test-cases pass.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29358
-
-2022-07-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add tsan-suppressions.txt
-	Add a new file tsan-suppressions.txt, to suppress the "unlock unlocked mutex"
-	problem in ncurses, filed in PR29328.
-
-	The file is added to the TSAN_OPTIONS in lib/gdb.exp.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29328
-
-2022-07-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build with gcc 4.8.5
-	When building gdb with gcc 4.8.5, we run into problems due to unconditionally
-	using:
-	...
-	     gdb_static_assert (std::is_trivially_copyable<packed>::value);
-	...
-	in gdbsupport/packed.h.
-
-	Fix this by guarding the usage with HAVE_IS_TRIVIALLY_COPYABLE.
-
-	Tested by doing a full gdb build with gcc 4.8.5.
-
-2022-07-12  Tom de Vries  <tdevries@suse.de>
-
-	Fix -fsanitize=thread for per_cu fields
-	When building gdb with -fsanitize=thread and gcc 12, and running test-case
-	gdb.dwarf2/dwz.exp, we run into a data race between:
-	...
-	  Read of size 1 at 0x7b200000300d by thread T2:^M
-	    #0 cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*, \
-	    abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) gdb/dwarf2/read.c:6164 \
-	    (gdb+0x82ec95)^M
-	...
-	and:
-	...
-	  Previous write of size 1 at 0x7b200000300d by main thread:^M
-	    #0 prepare_one_comp_unit gdb/dwarf2/read.c:23588 (gdb+0x86f973)^M
-	...
-
-	In other words, between:
-	...
-	  if (this_cu->reading_dwo_directly)
-	...
-	and:
-	...
-	    cu->per_cu->lang = pretend_language;
-	...
-
-	Likewise, we run into a data race between:
-	...
-	  Write of size 1 at 0x7b200000300e by thread T4:
-	    #0 process_psymtab_comp_unit gdb/dwarf2/read.c:6789 (gdb+0x830720)
-	...
-	and:
-	...
-	  Previous read of size 1 at 0x7b200000300e by main thread:
-	    #0 cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*, \
-	    abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) gdb/dwarf2/read.c:6164 \
-	    (gdb+0x82edab)
-	...
-
-	In other words, between:
-	...
-	      this_cu->unit_type = DW_UT_partial;
-	...
-	and:
-	...
-	  if (this_cu->reading_dwo_directly)
-	...
-
-	Likewise for the write to addresses_seen in cooked_indexer::check_bounds and a
-	read from is_dwz in dwarf2_find_containing_comp_unit for test-case
-	gdb.dwarf2/dw2-dir-file-name.exp and target board cc-with-dwz-m.
-
-	The problem is that the written fields are part of the same memory location as
-	the read fields, so executing a read and write in different threads is
-	undefined behavour.
-
-	Making the written fields separate memory locations, using the new
-	struct packed template fixes this.
-
-	The set of fields has been established experimentally to be the
-	minimal set to get rid of this type of -fsanitize=thread errors, but
-	more fields might require the same treatment.
-
-	Looking at the properties of the lang field, unlike dwarf_version it's
-	not available in the unit header, so it will be set the first time
-	during the parallel cooked index reading.  The same holds for
-	unit_type, and likewise for addresses_seen.
-
-	dwarf2_per_cu_data::addresses_seen is moved so that the bitfields that
-	currently follow it can be merged in the same memory location as the
-	bitfields that currently precede it, for better packing.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-
-	Change-Id: Ifa94f0a2cebfae5e8f6ddc73265f05e7fd9e1532
-
-2022-07-12  Pedro Alves  <pedro@palves.net>
-
-	Introduce struct packed template
-	When building gdb with -fsanitize=thread and gcc 12, and running test-case
-	gdb.dwarf2/dwz.exp, we run into a few data races.  For example, between:
-
-	 ...
-	   Write of size 1 at 0x7b200000300e by thread T4:
-	     #0 process_psymtab_comp_unit gdb/dwarf2/read.c:6789 (gdb+0x830720)
-	 ...
-
-	and:
-
-	 ...
-	   Previous read of size 1 at 0x7b200000300e by main thread:
-	     #0 cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*, \
-	     abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) gdb/dwarf2/read.c:6164 \
-	     (gdb+0x82edab)
-	 ...
-
-	In other words, between:
-
-	 ...
-	       this_cu->unit_type = DW_UT_partial;
-	 ...
-
-	and:
-
-	 ...
-	   if (this_cu->reading_dwo_directly)
-	 ...
-
-	The problem is that the written fields are part of the same memory
-	location as the read fields, so executing a read and write in
-	different threads is undefined behavour.
-
-	Making the written fields separate memory locations, like this:
-
-	...
-	  struct {
-	    ENUM_BITFIELD (dwarf_unit_type) unit_type : 8;
-	  };
-	...
-
-	fixes it, however that also increases the size of struct
-	dwarf2_per_cu_data, because it introduces padding due to alignment of
-	these new structs, which align on the natural alignment of the
-	specified type of their fields.  We can fix that with
-	__attribute__((packed)), like so:
-
-	  struct {
-	    ENUM_BITFIELD (dwarf_unit_type) unit_type : 8 __attribute__((packed));
-	  };
-
-	but to avoid having to write that in several places and add suitable
-	comments explaining how that concoction works, introduce a new struct
-	packed template that wraps/hides this.  Instead of the above, we'll be
-	able to write:
-
-	    packed<dwarf_unit_type, 1> unit_type;
-
-	Note that we can't change the type of dwarf_unit_type, as that is
-	defined in include/, and shared with other projects, some of those
-	written in C.
-
-	This patch just adds the struct packed type.  Following patches will
-	make use of it.  One of those patches will want to wrap a struct
-	packed in an std::atomic, like:
-
-	  std::atomic<std::packed<language, 1>> m_lang;
-
-	so the new gdbsupport/packed.h header adds some operators to make
-	comparisions between that std::atomic and the type that the wrapped
-	struct packed wraps work, like in:
-
-	   if (m_lang == language_c)
-
-	It would be possible to implement struct packed without using
-	__attribute__((packed)), by having it store an array of bytes of the
-	appropriate size instead, however that would make it less convenient
-	to debug GDB.  The way it's implemented, printing a struct packed
-	variable just prints its field using its natural type, which is
-	particularly useful if the type is an enum.  I believe that
-	__attribute__((packed)) is supported by all compilers that are able to
-	build GDB.  Even a few BFD headers use on ATTRIBUTE_PACKED on external
-	types:
-
-	 include/coff/external.h:  } ATTRIBUTE_PACKED
-	 include/coff/external.h:} ATTRIBUTE_PACKED ;
-	 include/coff/external.h:} ATTRIBUTE_PACKED ;
-	 include/coff/pe.h:} ATTRIBUTE_PACKED ;
-	 include/coff/pe.h:} ATTRIBUTE_PACKED;
-	 include/elf/external.h:} ATTRIBUTE_PACKED  Elf_External_Versym;
-
-	It is not possible to build GDB with MSVC today, but if it could, that
-	would be one compiler that doesn't support this attribute.  However,
-	it supports packing via pragmas, so there's a way to cross that bridge
-	if we ever get to it.  I believe any compiler worth its salt supports
-	some way of packing.
-
-	In any case, the worse that happens without the attribute is that some
-	types become larger than ideal.  Regardless, I've added a couple
-	static assertions to catch such compilers in action:
-
-	    /* Ensure size and aligment are what we expect.  */
-	    gdb_static_assert (sizeof (packed) == Bytes);
-	    gdb_static_assert (alignof (packed) == 1);
-
-	Change-Id: Ifa94f0a2cebfae5e8f6ddc73265f05e7fd9e1532
-
-2022-07-12  Alan Modra  <amodra@gmail.com>
-
-	PowerPC md_end: Don't htab_delete(NULL)
-	It might be possible to hit md_end before md_begin is called, don't
-	segfault if so.  Also, remove a useless check.
-
-		* gas/config/tc-ppc.c (insn_calloc): Remove needless overflow
-		check.
-		(ppc_md_end): Check ppc_hash before deleting.  Clear ppc_hash.
-
-2022-07-12  Alan Modra  <amodra@gmail.com>
-
-	PR29355, ld segfaults with -r/-q and custom-named section .rela*
-	The bug testcase uses an output section named .rel or .rela which has
-	input .data sections mapped to it.  The input .data section has
-	relocations.  When counting output relocations SHT_REL and SHT_RELA
-	section reloc_count is ignored, with the justification that reloc
-	sections themselves can't have relocations and some backends use
-	reloc_count in reloc sections.  However, the test wrongly used the
-	output section type (which normally would match input section type).
-	Fix that.  Note that it is arguably wrong for ld to leave the output
-	.rel/.rela section type as SHT_REL/SHT_RELA when non-empty non-reloc
-	sections are written to it, but I'm not going to change that since it
-	might be useful to hand-craft relocs in a data section that is then
-	written to a SHT_REL/SHT_RELA output section.
-
-		PR 29355
-		* elflink.c (bfd_elf_final_link): Use input section type rather
-		than output section type to determine whether to exclude using
-		reloc_count from that section.
-
-2022-07-12  Jiangshuai Li  <jiangshuai_li@c-sky.com>
-
-	gdb/csky complete csky_dwarf_reg_to_regnum
-	For csky arch, the correspondence between Dwarf registers and GDB
-	registers are as follows:
-	dwarf regnos 0~31 ==> gdb regs r0~r31
-	dwarf regno  CSKY_HI_REGNUM(36) ==> gdb reg hi
-	dwarf regno  CSKY_LO_REGNUM(37) ==> gdb reg hi
-	dwarf regno  CSKY_PC_REGNUM(72) ==> gdb reg pc
-	dwarf regnos FV_PSEUDO_REGNO_FIRST(74)~FV_PSEUDO_REGNO_LAST(201)
-	==>
-	gdb regs s0~s127 (pseudo regs for float and vector regs)
-
-	other dwarf regnos have no corresponding gdb regs to them.
-
-2022-07-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-11  Pedro Alves  <pedro@palves.net>
-
-	Always emit =thread-exited notifications, even if silent
-	[Note: the testcased added by this commit depends on
-	https://sourceware.org/pipermail/gdb-patches/2022-June/190259.html,
-	otherwise GDB just crashes when detaching the core]
-
-	Currently, in MI, =thread-created are always emitted, like:
-
-	 =thread-group-started,id="i1",pid="195680"
-	 =thread-created,id="1",group-id="i1"
-	 ...
-
-	but on teardown, if the target uses exit_inferior_silent, then you'll
-	only see the inferior exit notification (thread-group-exited), no
-	notification for threads.
-
-	The core target is one of the few targets that use
-	exit_inferior_silent.  Here's an example session:
-
-	 -target-select core $corefile
-	 =thread-group-started,id="i1",pid="195680"
-	 =thread-created,id="1",group-id="i1"
-	 ...
-	 ^connected,frame=....
-	 (gdb)
-	 -target-detach
-	 =thread-group-exited,id="i1"
-	 ^done
-	 (gdb)
-
-	This imbalance of emitting =thread-created but then not =thread-exited
-	seems off to me.  (And, it complicates changes I want to do to
-	centralize emitting thread exit notifications for the CLI, which is
-	why I'm looking at this.)
-
-	And then, since most other targets use exit_inferior instead of
-	exit_inferior_silent, MI is already emitting =thread-exited
-	notifications when tearing down an inferior, for most targets.
-
-	This commit makes MI always emit the =thread-exited notifications,
-	even for exit_inferior_silent.
-
-	Afterwards, when debugging a core, MI outputs:
-
-	 (gdb)
-	 -target-detach
-	 =thread-exited,id="1",group-id="i1"    << new line
-	 =thread-group-exited,id="i1"
-	 ^done
-	 (gdb)
-
-	Surprisingly, there's no MI testcase debugging a core file.  This
-	commit adds the first.
-
-	Change-Id: I5100501a46f07b6bbad3e04d120c2562a51c93a4
-
-2022-07-11  Pedro Alves  <pedro@palves.net>
-
-	Fix core-file -> detach -> crash (corefiles/29275)
-	After loading a core file, you're supposed to be able to use "detach"
-	to unload the core file.  That unfortunately regressed starting with
-	GDB 11, with these commits:
-
-	 1192f124a308 - gdb: generalize commit_resume, avoid commit-resuming when threads have pending statuses
-	 408f66864a1a - detach in all-stop with threads running
-
-	resulting in a GDB crash:
-
-	 ...
-	 Thread 1 "gdb" received signal SIGSEGV, Segmentation fault.
-	 0x0000555555e842bf in maybe_set_commit_resumed_all_targets () at ../../src/gdb/infrun.c:2899
-	 2899          if (proc_target->commit_resumed_state)
-	 (top-gdb) bt
-	 #0  0x0000555555e842bf in maybe_set_commit_resumed_all_targets () at ../../src/gdb/infrun.c:2899
-	 #1  0x0000555555e848bf in scoped_disable_commit_resumed::reset (this=0x7fffffffd440) at ../../src/gdb/infrun.c:3023
-	 #2  0x0000555555e84a0c in scoped_disable_commit_resumed::reset_and_commit (this=0x7fffffffd440) at ../../src/gdb/infrun.c:3049
-	 #3  0x0000555555e739cd in detach_command (args=0x0, from_tty=1) at ../../src/gdb/infcmd.c:2791
-	 #4  0x0000555555c0ba46 in do_simple_func (args=0x0, from_tty=1, c=0x55555662a600) at ../../src/gdb/cli/cli-decode.c:95
-	 #5  0x0000555555c112b0 in cmd_func (cmd=0x55555662a600, args=0x0, from_tty=1) at ../../src/gdb/cli/cli-decode.c:2514
-	 #6  0x0000555556173b1f in execute_command (p=0x5555565c5916 "", from_tty=1) at ../../src/gdb/top.c:699
-
-	The code that crashes looks like:
-
-	 static void
-	 maybe_set_commit_resumed_all_targets ()
-	 {
-	   scoped_restore_current_thread restore_thread;
-
-	   for (inferior *inf : all_non_exited_inferiors ())
-	     {
-	       process_stratum_target *proc_target = inf->process_target ();
-
-	       if (proc_target->commit_resumed_state)
-	           ^^^^^^^^^^^
-
-	With 'proc_target' above being null.  all_non_exited_inferiors filters
-	out inferiors that have pid==0.  We get here at the end of
-	detach_command, after core_target::detach has already run, at which
-	point the inferior _should_ have pid==0 and no process target.  It is
-	clear it no longer has a process target, but, it still has a pid!=0
-	somehow.
-
-	The reason the inferior still has pid!=0, is that core_target::detach
-	just unpushes, and relies on core_target::close to actually do the
-	getting rid of the core and exiting the inferior.  The problem with
-	that is that detach_command grabs an extra strong reference to the
-	process stratum target, so the unpush_target inside
-	core_target::detach doesn't actually result in a call to
-	core_target::close.
-
-	Fix this my moving the cleaning up the core inferior to a shared
-	routine called by both core_target::close and core_target::detach.  We
-	still need to cleanup the inferior from within core_file::close
-	because there are paths to it that want to get rid of the core without
-	going through detach.  E.g., "core-file" -> "run".
-
-	This commit includes a new test added to gdb.base/corefile.exp to
-	cover the "core-file core" -> "detach" scenario.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29275
-
-	Change-Id: Ic42bdd03182166b19f598428b0dbc2ce6f67c893
-
-2022-07-11  Pedro Alves  <pedro@palves.net>
-
-	Fix non-existent "@var{thread-id}" in stop reply descriptions
-	In the description of stop replies, where the "thread" register is
-	explained, and where the fork and vfork stop reasons are detailed,
-	there are references to "@var{thread-id}", but such variable does not
-	actually exist.  This commit fixes it.
-
-	Change-Id: If679944aaf15f6f64aabe506339a9e7667864cab
-
-2022-07-11  Luis Machado  <luis.machado@arm.com>
-
-	Try a couple PAuth compilation flags for gdb.arch/aarch64-pauth.exp
-	The -msign-return-address switch has been dropped from GCC, but some
-	older compiler may still support it.  Make sure we try both
-	-msign-return-address and -mbranch-protection before bailing out when
-	running gdb.arch/aarch64-pauth.exp.
-
-2022-07-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add support for disassembler styling using libopcodes
-	This commit extends GDB to make use of libopcodes styling support
-	where available, currently this is just i386 based architectures, and
-	RISC-V.
-
-	For architectures that don't support styling using libopcodes GDB will
-	fall back to using the Python Pygments package, when the package is
-	available.
-
-	The new libopcodes based styling has the disassembler identify parts
-	of the disassembled instruction, e.g. registers, immediates,
-	mnemonics, etc, and can style these components differently.
-	Additionally, as the styling is now done in GDB we can add settings to
-	allow the user to configure which colours are used right from the GDB
-	CLI.
-
-	There's some new maintenance commands:
-
-	  maintenance set libopcodes-styling enabled on|off
-	  maintenance show libopcodes-styling
-
-	These can be used to manually disable use of libopcodes styling.  This
-	is a maintenance command as it's not anticipated that a user should
-	need to do this.  But, this could be useful for testing, or, in some
-	rare cases, a user might want to override the Python hook used for
-	disassembler styling, and then disable libopcode styling so that GDB
-	falls back to using Python.  Right now I would consider this second
-	use case a rare situation, which is why I think a maintenance command
-	is appropriate.
-
-	When libopcodes is being used for styling then the user can make use
-	of the following new styles:
-
-	  set/show style disassembler comment
-	  set/show style disassembler immediate
-	  set/show style disassembler mnemonic
-	  set/show style disassembler register
-
-	The disassembler also makes use of the 'address' and 'function'
-	styles to style some parts of the disassembler output.  I have also
-	added the following aliases though:
-
-	  set/show style disassembler address
-	  set/show style disassembler symbol
-
-	these are aliases for:
-
-	  set/show style address
-	  set/show style function
-
-	respectively, and exist to make it easier for users to discover
-	disassembler related style settings.  The 'address' style is used to
-	style numeric addresses in the disassembler output, while the 'symbol'
-	or 'function' style is used to style the names of symbols in
-	disassembler output.
-
-	As not every architecture supports libopcodes styling, the maintenance
-	setting 'libopcodes-styling enabled' has an "auto-off" type behaviour.
-	Consider this GDB session:
-
-	  (gdb) show architecture
-	  The target architecture is set to "auto" (currently "i386:x86-64").
-	  (gdb) maintenance show libopcodes-styling enabled
-	  Use of libopcodes styling support is "on".
-
-	the setting defaults to "on" for architectures that support libopcodes
-	based styling.
-
-	  (gdb) set architecture sparc
-	  The target architecture is set to "sparc".
-	  (gdb) maintenance show libopcodes-styling enabled
-	  Use of libopcodes styling support is "off" (not supported on architecture "sparc")
-
-	the setting will show as "off" if the user switches to an architecture
-	that doesn't support libopcodes styling.  The underlying setting is
-	still "on" at this point though, if the user switches back to
-	i386:x86-64 then the setting would go back to being "on".
-
-	  (gdb) maintenance set libopcodes-styling enabled off
-	  (gdb) maintenance show libopcodes-styling enabled
-	  Use of libopcodes styling support is "off".
-
-	now the setting is "off" for everyone, even if the user switches back
-	to i386:x86-64 the setting will still show as "off".
-
-	  (gdb) maintenance set libopcodes-styling enabled on
-	  Use of libopcodes styling not supported on architecture "sparc".
-	  (gdb) maintenance show libopcodes-styling enabled
-	  Use of libopcodes styling support is "off".
-
-	attempting to switch the setting "on" for an unsupported architecture
-	will give an error, and the setting will remain "off".
-
-	  (gdb) set architecture auto
-	  The target architecture is set to "auto" (currently "i386:x86-64").
-	  (gdb) maintenance show libopcodes-styling enabled
-	  Use of libopcodes styling support is "off".
-	  (gdb) maintenance set libopcodes-styling enabled on
-	  (gdb) maintenance show libopcodes-styling enabled
-	  Use of libopcodes styling support is "on".
-
-	the user will need to switch back to a supported architecture before
-	they can one again turn this setting "on".
-
-2022-07-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: have gdb_disassemble_info carry 'this' in its stream pointer
-	The gdb_disassemble_info class is a wrapper around the libopcodes
-	disassemble_info struct.  The 'stream' field of disassemble_info is
-	passed as an argument to the fprintf_func and fprintf_styled_func
-	callbacks when the disassembler wants to print anything.
-
-	Previously, GDB would store a pointer to a ui_file object in the
-	'stream' field, then, when the disassembler wanted to print anything,
-	the content would be written to the ui_file object.  An example of an
-	fprintf_func callback, from gdb/disasm.c is:
-
-	  int
-	  gdb_disassembler::dis_asm_fprintf (void *stream, const char *format, ...)
-	  {
-	    /* Write output to STREAM here.  */
-	  }
-
-	This is fine, but has one limitation, within the print callbacks we
-	only have access to STREAM, we can't access any additional state
-	stored within the gdb_disassemble_info object.
-
-	Right now this isn't a problem, but in a future commit this will
-	become an issue, how we style the output being written to STREAM will
-	depend on the state of the gdb_disassemble_info object, and this state
-	might need to be updated, depending on what is being printed.
-
-	In this commit I propose changing the 'stream' field of the
-	disassemble_info to carry a pointer to the gdb_disassemble_info
-	sub-class, rather than the stream itself.
-
-	We then have the two sub-classes of gdb_disassemble_info to consider,
-	the gdb_non_printing_disassembler class never cared about the stream,
-	previously, for this class, the stream was nullptr.  With the change
-	to make stream be a gdb_disassemble_info pointer, no further updates
-	are needed for gdb_non_printing_disassembler.
-
-	The other sub-class is gdb_printing_disassembler.  In this case the
-	sub-class now carries around a pointer to the stream object.  The
-	print callbacks are updated to cast the incoming stream object back to
-	a gdb_printing_disassembler, and then extract the stream.
-
-	This is purely a refactoring commit.  A later commit will add
-	additional state to the gdb_printing_disassembler, and update the
-	print callbacks to access this state.
-
-	There should be no user visible changes after this commit.
-
-2022-07-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix data race in per_cu->length
-	With gdb build with -fsanitize=thread and test-case
-	gdb.dwarf2/dw4-sig-types.exp and target board cc-with-dwz-m we run into a data
-	race between:
-	...
-	  Write of size 4 at 0x7b2800002268 by thread T4:^M
-	    #0 cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*, \
-	    abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) gdb/dwarf2/read.c:6236 \
-	    (gdb+0x82f525)^M
-	...
-	and this read:
-	...
-	  Previous read of size 4 at 0x7b2800002268 by thread T1:^M
-	    #0 dwarf2_find_containing_comp_unit gdb/dwarf2/read.c:23444 \
-	    (gdb+0x86e22e)^M
-	...
-
-	In other words, between this write:
-	...
-		    this_cu->length = cu->header.get_length ();
-	...
-	and this read:
-	...
-		      && mid_cu->sect_off + mid_cu->length > sect_off))
-	...
-	of per_cu->length.
-
-	Fix this similar to the per_cu->dwarf_version case, by only setting it if
-	needed, and otherwise verifying that the same value is used.  [ Note that the
-	same code is already present in the other cutu_reader constructor. ]
-
-	Move this logic into into a member function set_length to make sure it's used
-	consistenly, and make the field private in order to enforce access through the
-	member functions, and rename it to m_length.
-
-	This exposes (running test-case gdb.dwarf2/fission-reread.exp) that in
-	fill_in_sig_entry_from_dwo_entry, the m_length field is overwritten.
-	For now, allow for that exception.
-
-	While we're at it, make sure that the length is set before read.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29344
-
-2022-07-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Use comp_unit_head::get_length
-	There's a spot in read_comp_units_from_section where we explictly use
-	initial_length_size to get the total length:
-	...
-	      this_cu->length = cu_header.length + cu_header.initial_length_size;
-	...
-
-	Instead, just use cu_header.get_length ().
-
-	Tested on x86_64-linux.
-
-2022-07-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-10  Luis Machado  <luis.machado@arm.com>
-
-	Fix include guard naming for arch/aarch64-mte-linux.h
-	It should be ARCH_AARCH64_MTE_LINUX_H as opposed to ARCH_AARCH64_LINUX_H.
-
-2022-07-10  Youling Tang  <tangyouling@loongson.cn>
-
-	gdbserver: LoongArch: Add orig_a0 processing
-	Commit 736918239b16 ("gdb: LoongArch: add orig_a0 into register set")
-	introduced orig_a0, similar processing needs to be done in gdbserver.
-
-	At the same time, add orig_a0 related comments.
-
-2022-07-10  Youling Tang  <tangyouling@loongson.cn>
-
-	gdbserver: LoongArch: Simplify code with register number macros
-	Move "enum loongarch_regnum" to gdb/arch/loongarch.h so that the
-	macro definitions can be used in gdbserver/linux-loongarch-low.cc
-	to simplify the code.
-
-2022-07-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: tc-tic54x.c hash tables
-	Cleaning up the subsym_hash memory is a real pain.  Keys and values
-	entered into the table are quite diverse.  In some cases the key is
-	allocated and thus needs to be freed, in others the key is a const
-	string.  Values are similar, and in some cases not even a string.
-	Tidy this by inserting a new subsym_ent_t that describes key/value
-	type.  This meant the math_hash table was no longer needed.  The patch
-	also tidies how math functions are called, those that are supposed to
-	return int now no longer return their value in a float.
-
-		* config/tc-tic54x.c (math_hash): Delete.
-		(subsym_proc_entry): Move earlier, make proc a union, merge with..
-		(math_proc_entry): ..this.  Delete type.
-		(math_procs): Merge into subsym_procs.
-		(subsym_ent_t): New.  Use this type in subsym_hash..
-		(stag_add_field_symbols, tic54x_var, tic54x_macro_info): ..here..
-		(md_begin, subsym_create_or_replace, subsym_lookup): ..and here..
-		(subsym_substitute): ..and here.  Adjust subsym_proc_entry
-		function calls.  Free replacement when not returned.
-		(subsym_get_arg): Adjust subsym_lookup.
-		(free_subsym_ent, subsym_htab_create ): New functions, use when
-		creating subsym_hash.
-		(free_local_label_ent, local_label_htab_create): Similarly.
-		(tic54x_remove_local_label): Delete.
-		(tic54x_clear_local_labels): Simplify.
-		(tic54x_asg): Use notes obstack to dup strings.
-		(tic54x_eval): Likewise.
-		(subsym_ismember): Likewise.
-		(math_cvi, math_int, math_sgn): Return int.
-		(tic54x_macro_start): Decrement macro_level before calling as_fatal.
-		(tic54x_md_end): New function.
-		* config/tc-tic54h.c (tic54x_md_end): Declare.
-		(md_end): Define.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: use notes_calloc in string hash
-	Using notes_calloc means all of the string hash table memory should
-	now be freed before gas exits, even though htab_delete isn't called.
-	This also means that the hash table free_f and del_f must be NULL,
-	because freeing notes obstack memory results in all more recently
-	allocated notes memory being freed too.  So hash table resizing won't
-	free any memory, and will be a little faster.  Also, htab_delete won't
-	do anything (and be quick about it).
-
-	Since htab_traverse can also resize hash tables (to make another
-	traversal faster if the table is largely empty), stop that happening
-	when only one traversal is done.
-
-		* as.h: Reorder hash.h after symbols.h for notes_calloc decl.
-		* hash.h (str_htab_create): Use notes_calloc.  Do not free.
-		* symbols.c (resolve_local_symbol_values): Don't resize
-		during hash table traversal.
-		* config/obj-elf.c (elf_frob_file_after_relocs): Likewise.
-		* config/tc-ia64.c (ia64_adjust_symtab, ia64_frob_file): Likewise.
-		* config/tc-nds32.c (nds32_elf_analysis_relax_hint): Likewise.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: target string hash tables
-	This allocates entries added to the string hash tables on the notes
-	obstack, so that at least those do not leak.  A followup patch will
-	switch over the str_hash allocation to notes_calloc, which is why I
-	haven't implemented deleting all the target string hash tables.
-
-		* config/obj-coff-seh.c (get_pxdata_name, alloc_pxdata_item): Use
-		notes obstack for string hash table entries.
-		* config/tc-alpha.c (get_alpha_reloc_tag, md_begin): Likewise.
-		* config/tc-h8300.c (md_begin): Likewise.
-		* config/tc-ia64.c (dot_rot, dot_pred_rel, dot_alias): Likewise.
-		* config/tc-nds32.c (nds32_relax_hint): Likewise.
-		* config/tc-riscv.c (riscv_init_csr_hash): Likewise.
-		* config/tc-score.c (s3_insert_reg): Likewise.
-		(s3_build_score_ops_hsh, s3_build_dependency_insn_hsh): Likewise.
-		* config/tc-score7.c (s7_build_score_ops_hsh): Likewise.
-		(s7_build_dependency_insn_hsh): Likewise.
-		* config/tc-tic4x.c (tic4x_asg): Likewise.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	arc gas: don't leak arc_opcode_hash memory
-	The arc opcode hash table has entries that have a realloc'd field.
-	This doesn't lend itself to obstack allocation, so freeing must be
-	done with a purpose built hashtab del_f.
-
-		* config/tc-arc.c (arc_opcode_free): New function.
-		(md_begin): Pass the above as del_f to htab_create_alloc.
-		(arc_md_end): New function.
-		* config/tc-arc.h (arc_md_end): Declare.
-		(md_end): Define.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	i386 gas: don't leak op_hash or reg_hash memory
-	This tidies memory used by the two x86 gas string hash tables before
-	exiting.  I'm using a two-pronged approach, firstly the obvious call
-	to htab_delete plus telling the libiberty/hashtab.c infrastructure to
-	free tuples generated by str_hash_insert, and secondly putting the x86
-	core_optab memory on the notes obstack.  It would be possible to free
-	core_optab memory by using a custom hash table del_f on x86, as I do
-	for arc, but a later patch will move all the string hash memory to the
-	notes obstack.
-
-		* config/tc-i386.c (md_begin): Use notes_alloc for core_optab.
-		(386_md_end): New function.
-		* config/tc-i386.h (386_md_end): Declare.
-		(md_end): Define.
-		* hash.h (str_htab_create): Pass free as del_f.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	ppc gas: don't leak ppc_hash memory
-		* config/tc-ppc.c (insn_obstack): New.
-		(insn_calloc): New function.
-		(ppc_setup_opcodes): Use insn_obstack for ppc_hash.
-		(ppc_md_end): New function.
-		* config/tc-ppc.h (ppc_md_end): Declare
-		(md_end): Define.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas hash.h tidy
-	Only inline functions should be defined in hash.h, there's no benefit
-	in having multiple copies of hash_string_tuple and eq_string_tuple.
-	Also, use the table alloc_f when allocating tuples to be stored, so
-	that these functions are usable with different memory allocation
-	strategies.
-
-		* hash.h (struct string_tuple, string_tuple_t): Move earlier.
-		(string_tuple_alloc): Add table param, allocate using table alloc_f.
-		(str_hash_insert): Adjust to suit.  Call table->free_f when
-		entry is not used.
-		(hash_string_tuple, eq_string_tuple): Move to..
-		* hash.c: ..here.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: rename md_end to md_finish
-	Currently md_end is typically used for some final actions rather than
-	freeing memory like other *_end functions.  Rename it to md_finish,
-	and rename target implementation.  The renaming of target functions
-	makes it possible to find them all with "grep md_finish",
-	eg. md_mips_end is renamed to mips_md_finish, not md_mips_finish.
-	This patch leaves a number of md_end functions unchanged, those that
-	either do nothing or deallocate memory, and calls them late.
-
-	The idea here is that target maintainers implement md_end functions to
-	tidy memory, if anyone cares.  Freeing persistent memory in gas is
-	not at all important, except that it can hide more important memory
-	leaks, those that happen once per some frequent gas operation, amongst
-	these unimportant memory leaks.
-
-		* as.c (main): Rename md_end to md_finish.
-		* config/tc-alpha.c, * config/tc-alpha.h,
-		* config/tc-arc.c, * config/tc-arc.h,
-		* config/tc-arm.c, * config/tc-arm.h,
-		* config/tc-csky.c, * config/tc-csky.h,
-		* config/tc-ia64.c, * config/tc-ia64.h,
-		* config/tc-mcore.c, * config/tc-mcore.h,
-		* config/tc-mips.c, * config/tc-mips.h,
-		* config/tc-mmix.c, * config/tc-mmix.h,
-		* config/tc-msp430.c, * config/tc-msp430.h,
-		* config/tc-nds32.c, * config/tc-nds32.h,
-		* config/tc-ppc.c, * config/tc-ppc.h,
-		* config/tc-pru.c, * config/tc-pru.h,
-		* config/tc-riscv.c, * config/tc-riscv.h,
-		* config/tc-s390.c, * config/tc-s390.h,
-		* config/tc-sparc.c, * config/tc-sparc.h,
-		* config/tc-tic4x.c, * config/tc-tic4x.h,
-		* config/tc-tic6x.c, * config/tc-tic6x.h,
-		* config/tc-v850.c, * config/tc-v850.h,
-		* config/tc-xtensa.c, * config/tc-xtensa.h,
-		* config/tc-z80.c, * config/tc-z80.h: Similarly.
-		* output-file.c (output_file_close): Call md_end.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: set up notes obstack earlier
-	So that the notes obstack can be used for persistent storage in
-	parse_args.
-
-		* as.c (parse_args): Use notes_alloc and notes_strdup.
-		(free_notes): New function.
-		(main): Init notes obstack, and arrange to be freed on exit.
-		* read.c (read_begin): Don't init notes obstack.
-		(read_end): Free cond_obstack.
-		* subsegs.c (subsegs_end): Don't free cond_obstack or notes.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: itbl_files
-	itbl_files seems to be debug code.  Get rid of it.
-
-		* as.c (struct itbl_file_list): Delete.
-		(itbl_files): Delete.
-		(parse_args): Don't keep itbl_files list.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: free sy_hash, macro_hash and po_hash
-		* macro.c (macro_end): New function.
-		* macro.h (macro_end): Declare.
-		* read.c (read_end, poend): New functions.
-		* read.h (read_end): Declare.
-		* symbols.c (symbol_end): New function.
-		* symbols.h (symbol_end): Declare.
-		* output-file.c (output_file_close): Call new *_end functions.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	dw2gencfi.c: use notes obstack
-	Use notes obstack for dwcfi_hash entries, and free table.  Freeing the
-	table makes memory checkers complain more about "definitely lost"
-	memory as we've moved some from the "still reachable" category.
-	That will be fixed with a later patch.
-
-		* dw2gencfi.c (get_debugseg_name): Allocate on notes obstack.
-		(alloc_debugseg_item): Likewise.
-		(dwcfi_hash_find_or_make): Adjust failure path free.
-		(cfi_finish): Delete dwfci_hash.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	expr.c make_expr_symbol: use notes obstack
-		* expr.c (make_expr_symbol): Use notes_alloc.
-
-	read.c assign_symbol: use notes obstack for dummy listing frag
-		* read.c (assign_symbol): Use notes_calloc for dummy_frag.
-
-	read.c s_include: use notes obstack for path
-		* read.c (s_include): Use notes obstack for path mem.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	macro.c: use string hash from hash.h for macro_hash
-	Another case of duplicated hash.h code, the only minor difference
-	being that macro->format_hash was created with 7 entries vs. str_hash
-	with 16 entries.
-
-		* macro.c (macro_init, define_macro): Use str_htab_create.
-		(do_formals, define_macro, macro_expand_body): Use str_hash_insert
-		(macro_expand_body): Use str_hash_find and str_hash_delete.
-		(delete_macro): Likewise.
-		(sub_actual, macro_expand, check_macro): Use str_hash_find.
-		(expand_irp): Use str_htab_create and str_hash_insert.
-		* macro.h (struct macro_struct): Tidy.
-		(struct macro_hash_entry, macro_hash_entry_t, hash_macro_entry),
-		(eq_macro_entry, macro_entry_alloc, macro_entry_find),
-		(struct formal_hash_entry, formal_hash_entry_t),
-		(hash_formal_entry, eq_formal_entry, formal_entry_alloc),
-		(formal_entry_find): Delete.
-		* config/tc-iq2000.c (iq2000_add_macro): Use str_htab_create
-		and str_hash_insert.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	read.c: use string hash from hash.h for po_hash
-	po_hash code duplicates the str_hash code in hash.h for no good reason.
-
-		* read.c (struct po_entry, po_entry_t): Delete.
-		(hash_po_entry, eq_po_entry, po_entry_alloc, po_entry_find): Delete.
-		(pop_insert): Use str_hash_insert.
-		(pobegin): Use str_htab_create.
-		(read_a_source_file, s_macro): Use str_hash_find.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	free read_symbol_name string
-	read_symbol_name mallocs the string it returns.  Free it when done.
-
-		* read.c (read_symbol_name): Free name on error path.
-		* config/tc-ppc.c (ppc_GNU_visibility): Free name returned from
-		read_symbol_name.
-		(ppc_extern, ppc_globl, ppc_weak): Likewise.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: output_file_close
-	This is mostly a tidy with the aim of being able to free
-	out_file_name, but it does fix a possible attempt to unlink the output
-	file twice (not that that matters).
-
-		* as.h (keep_it): New global.
-		* as.c (keep_it): Delete.
-		(close_output_file): Delete, merged into..
-		* output-file.c (output_file_close): ..here.  Delete parameter.
-		* output-file.h (output_file_close): Update prototype.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: utility notes memory alloc functions
-	Makes it a little easier to use the notes obstack for persistent
-	storage.
-
-		* as.h (gas_mul_overflow): Define.
-		* symbols.h (notes_alloc, notes_calloc, notes_memdup),
-		(notes_strdup, notes_concat, notes_free): Declare.
-		* symbols.c (notes_alloc, notes_calloc, notes_memdup),
-		(notes_strdup, notes_concat, notes_free): New functions.
-		(save_symbol_name): Use notes_strdup.
-		(symbol_create, local_symbol_make, local_symbol_convert),
-		(symbol_clone, decode_local_label_name): Use notes_alloc.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	gas: arm -mwarn-syms duplicates
-	arm gas is only supposed to warn once per symbol for -mwarn-syms, but
-	doesn't because the str_hash_find added with commit 629310abec88
-	always returns NULL.  That's so because the str_hash_insert inserts a
-	NULL value for the key,value pair.  Let str_hash_insert do the job
-	instead.
-
-		* config/tc-arm.c (arm_tc_equal_in_insn): Correct already_warned
-		logic.
-		* testsuite/gas/arm/pr18347.s: Modify to generate duplicate
-		warning without this patch.
-
-2022-07-09  Alan Modra  <amodra@gmail.com>
-
-	Regenerate with automake-1.15.1
-	Until we update the recommended versions of autoconf/automake, files
-	should be regenerated with automake-1.15.1 and autoconf-2.69.  That's
-	not because we think those versions are golden, and newer versions are
-	bad.  It's simply because maintainers want to be able to update
-	configury files without trouble, and if someone regenerates files with
-	automake-1.16.5 then --enable-maintainer-mode builds will hit errors:
-
-	checking that generated files are newer than configure... configure.ac:26: error: version mismatch.  This is Automake 1.15.1,
-	configure.ac:26: but the definition used by this AM_INIT_AUTOMAKE
-	configure.ac:26: comes from Automake 1.16.5.  You should recreate
-	configure.ac:26: aclocal.m4 with aclocal and run automake again.
-	WARNING: 'automake-1.15' is probably too old.
-
-	Correcting this requires regenerating the files by hand.
-
-2022-07-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-08  Tom Tromey  <tom@tromey.com>
-
-	Accept gdb.Value in more Python APIs
-	PR python/27000 points out that gdb.block_for_pc will accept a Python
-	integer, but not a gdb.Value.  This patch corrects this oversight.
-
-	I looked at all uses of GDB_PY_LLU_ARG and fixed these up to use
-	get_addr_from_python instead.  I also looked at uses of GDB_PY_LL_ARG,
-	but those seemed relatively unlikely to be useful with a gdb.Value, so
-	I didn't change them.  My thinking here is that a Value will typically
-	come from inferior memory, and something like a line number is not too
-	likely to be found this way.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27000
-
-2022-07-08  Tom Tromey  <tom@tromey.com>
-
-	Handle bool specially in gdb.set_parameter
-	PR python/29217 points out that gdb.parameter will return bool values,
-	but gdb.set_parameter will not properly accept them.  This patch fixes
-	the problem by adding a special case to set_parameter.
-
-	I looked at a fix involving rewriting set_parameter in C++.  However,
-	this one is simpler.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29217
-
-2022-07-08  Ludovic Courtès  <ludo@gnu.org>
-
-	[gdb/build] Handle deprecation of scm_install_gmp_memory_functions
-	When building gdb with guile 3.0.8, we run into:
-	...
-	gdb/guile/guile.c: In function \
-	  'void gdbscm_initialize(const extension_language_defn*)':
-	gdb/guile/guile.c:680:5: error: 'scm_install_gmp_memory_functions' is \
-	  deprecated [-Werror=deprecated-declarations]
-	  680 |     scm_install_gmp_memory_functions = 0;
-	      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	In file included from /usr/include/guile/3.0/libguile.h:128,
-	                 from gdb/guile/guile-internal.h:30,
-	                 from gdb/guile/guile.c:36:
-	/usr/include/guile/3.0/libguile/deprecated.h:164:20: note: declared here
-	  164 | SCM_DEPRECATED int scm_install_gmp_memory_functions;
-	      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	cc1plus: all warnings being treated as errors
-	make[1]: *** [Makefile:1896: guile/guile.o] Error 1
-	...
-
-	The variable has been deprecated because it no longer has any effect.
-
-	Fix this by disabling the specific deprecation warning.
-
-	Also handle upcoming guile versions > 3.0, in which the variable will be
-	removed, by limiting the usage of the variable to guile versions <= 3.0.
-
-	This does not break anything.  The variable was merely used to address a
-	problem present in guile versions <= v3.0.5.
-
-	Note that we don't limit the usage of the variable to guile versions <= 3.0.5,
-	because we want to support f.i. building against 3.0.6 and then using a shared
-	lib with 3.0.5.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28994
-
-2022-07-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix assert in process_imported_unit_die
-	When running test-case gdb.dwarf2/dw2-symtab-includes.exp with target board
-	cc-with-debug-names, I run into:
-	...
-	(gdb) maint expand-symtab dw2-symtab-includes.h^M
-	src/gdb/dwarf2/read.h:311: internal-error: unit_type: \
-	  Assertion `m_unit_type != 0' failed.^M
-	A problem internal to GDB has been detected,^M
-	further debugging may prove unreliable.^M
-	----- Backtrace -----^M
-	FAIL: gdb.dwarf2/dw2-symtab-includes.exp: maint expand-symtab \
-	  dw2-symtab-includes.h (GDB internal error)
-	...
-
-	The assert was recently added in commit 2c474c46943 ("[gdb/symtab] Add get/set
-	functions for per_cu->lang/unit_type").
-
-	The assert is triggered here:
-	...
-	    /* We're importing a C++ compilation unit with tag DW_TAG_compile_unit
-	       into another compilation unit, at root level.  Regard this as a hint,
-	       and ignore it.  */
-	    if (die->parent && die->parent->parent == NULL
-	        && per_cu->unit_type () == DW_UT_compile
-	        && per_cu->lang () == language_cplus)
-	      return;
-	...
-
-	We're trying to access unit_type / lang which hasn't been set yet.
-
-	Normally, these are set during cooked index creation, but that's not the case
-	when using an index (or using -readnow).
-
-	In other words, this lto binary reading speed optimization only works in the
-	normal use case.
-
-	IWBN to have this working in all use cases, but for now, allow lang () and
-	unit_type () to return language_unknown and 0 here.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29321
-
-2022-07-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix segfault in dwarf2_per_objfile::symtab_set_p
-	When running test-case gdb.cp/cpexprs-debug-types.exp with target board
-	cc-with-debug-names, I run into:
-	...
-	(gdb) print base::operator new^M
-	^M
-	^M
-	Fatal signal: Segmentation fault^M
-	----- Backtrace -----^M
-	0x57ea46 gdb_internal_backtrace_1^M
-	        /home/vries/gdb_versions/devel/src/gdb/bt-utils.c:122^M
-	0x57eae9 _Z22gdb_internal_backtracev^M
-	        /home/vries/gdb_versions/devel/src/gdb/bt-utils.c:168^M
-	0x75b8ad handle_fatal_signal^M
-	        /home/vries/gdb_versions/devel/src/gdb/event-top.c:946^M
-	0x75ba19 handle_sigsegv^M
-	        /home/vries/gdb_versions/devel/src/gdb/event-top.c:1019^M
-	0x7f795f46a8bf ???^M
-	0x6d3cb1 _ZNK18dwarf2_per_objfile12symtab_set_pEPK18dwarf2_per_cu_data^M
-	        /home/vries/gdb_versions/devel/src/gdb/dwarf2/read.c:1515^M
-	...
-
-	The problem is in this piece of code in dw2_debug_names_iterator::next:
-	...
-	        case DW_IDX_type_unit:
-	          /* Don't crash on bad data.  */
-	          if (ull >= per_bfd->tu_stats.nr_tus)
-	            {
-	              complaint (_(".debug_names entry has bad TU index %s"
-	                           " [in module %s]"),
-	                         pulongest (ull),
-	                         objfile_name (objfile));
-	              continue;
-	            }
-	          per_cu = per_bfd->get_cu (ull + per_bfd->tu_stats.nr_tus);
-	          break;
-	...
-
-	The all_comp_units vector (which get_cu accesses) contains both CUs and TUs,
-	with CUs first.
-
-	So to get the nth TU we need the element at "nr_cus + n", but
-	the code uses "nr_tus + n" instead.
-
-	Fix this by using "nr_cus + n".
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29334
-
-2022-07-08  Enze Li  <enze.li@hotmail.com>
-
-	gdb: initialize the data_head variable to eliminate compilation warnings
-	On a machine with gcc 12, I get this warning:
-
-	  CXX    nat/linux-btrace.o
-	In function ‘btrace_error linux_read_bts(btrace_data_bts*, btrace_target_info*, btrace_read_type)’,
-	    inlined from ‘btrace_error linux_read_btrace(btrace_data*, btrace_target_info*, btrace_read_type)’ at ../gdb/nat/linux-btrace.c:935:29:
-	../gdb/nat/linux-btrace.c:865:21: warning: ‘data_head’ may be used uninitialized [-Wmaybe-uninitialized]
-	  865 |   pevent->last_head = data_head;
-	      |   ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
-	../gdb/nat/linux-btrace.c: In function ‘btrace_error linux_read_btrace(btrace_data*, btrace_target_info*, btrace_read_type)’:
-	../gdb/nat/linux-btrace.c:792:9: note: ‘data_head’ was declared here
-	  792 |   __u64 data_head, data_tail;
-	      |         ^~~~~~~~~
-
-	Fix this by initializing the 'data_head' variable.
-
-	Tested by rebuilding on x86_64 openSUSE Tumbleweed with gcc 12.
-
-2022-07-08  Andrew Burgess  <aburgess@redhat.com>
-
-	libopcodes/s390: add support for disassembler styling
-	This commit adds disassembler style to the libopcodes s390
-	disassembler.  This conversion was pretty straight forward, I just
-	converted the fprintf_func calls to fprintf_styled_func calls and
-	added an appropriate style.
-
-	For testing the new styling I just assembled then disassembled the
-	source files in gas/testsuite/gas/s390 and manually checked that the
-	styling looked reasonable.
-
-	If the user does not request styled output from objdump, then there
-	should be no change in the disassembler output after this commit.
-
-2022-07-08  Nick Clifton  <nickc@redhat.com>
-
-	Fix regeneration of ld configure and makefiles
-
-	Update release README with new version numbers
-
-	Update version to 2.39.50 and regenerate files
-
-	Add markers for 2.39 branch
-
-2022-07-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix regression in testing for not yet installed version
-	gprofng/ChangeLog
-	2022-07-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* src/Settings.cc (Settings::read_rc): Read environment variable
-		GPROFNG_SYSCONFDIR.
-		* testsuite/lib/Makefile.skel: Export GPROFNG_SYSCONFDIR.
-		* testsuite/gprofng.display/display.exp: Shorten the list of tests.
-
-2022-07-07  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix {rs6000_nat_target,aix_thread_target}::wait to not use inferior_ptid
-	Trying to run a simple program (empty main) on AIX, I get:
-
-	    (gdb) run
-	    Starting program: /scratch/simark/build/gdb/a.out
-	    Child process unexpectedly missing: There are no child processes..
-	    ../../src/binutils-gdb/gdb/inferior.c:304: internal-error: find_inferior_pid: Assertion `pid != 0' failed.
-	    A problem internal to GDB has been detected,
-	    further debugging may prove unreliable.
-	    ----- Backtrace -----
-	    0x10ef12a8 gdb_internal_backtrace_1()
-	            ../../src/binutils-gdb/gdb/bt-utils.c:122
-	    0x10ef1470 gdb_internal_backtrace()
-	            ../../src/binutils-gdb/gdb/bt-utils.c:168
-	    0x1004d368 internal_vproblem(internal_problem*, char const*, int, char const*, char*)
-	            ../../src/binutils-gdb/gdb/utils.c:396
-	    0x1004d8a8 internal_verror(char const*, int, char const*, char*)
-	            ../../src/binutils-gdb/gdb/utils.c:476
-	    0x1004c424 internal_error(char const*, int, char const*, ...)
-	            ../../src/binutils-gdb/gdbsupport/errors.cc:55
-	    0x102ab344 find_inferior_pid(process_stratum_target*, int)
-	            ../../src/binutils-gdb/gdb/inferior.c:304
-	    0x102ab4a4 find_inferior_ptid(process_stratum_target*, ptid_t)
-	            ../../src/binutils-gdb/gdb/inferior.c:318
-	    0x1061bae8 find_thread_ptid(process_stratum_target*, ptid_t)
-	            ../../src/binutils-gdb/gdb/thread.c:519
-	    0x10319e98 handle_inferior_event(execution_control_state*)
-	            ../../src/binutils-gdb/gdb/infrun.c:5532
-	    0x10315544 fetch_inferior_event()
-	            ../../src/binutils-gdb/gdb/infrun.c:4221
-	    0x10952e34 inferior_event_handler(inferior_event_type)
-	            ../../src/binutils-gdb/gdb/inf-loop.c:41
-	    0x1032640c infrun_async_inferior_event_handler(void*)
-	            ../../src/binutils-gdb/gdb/infrun.c:9548
-	    0x10673188 check_async_event_handlers()
-	            ../../src/binutils-gdb/gdb/async-event.c:335
-	    0x1066fce4 gdb_do_one_event()
-	            ../../src/binutils-gdb/gdbsupport/event-loop.cc:214
-	    0x10001a94 start_event_loop()
-	            ../../src/binutils-gdb/gdb/main.c:411
-	    0x10001ca0 captured_command_loop()
-	            ../../src/binutils-gdb/gdb/main.c:471
-	    0x10003d74 captured_main(void*)
-	            ../../src/binutils-gdb/gdb/main.c:1329
-	    0x10003e48 gdb_main(captured_main_args*)
-	            ../../src/binutils-gdb/gdb/main.c:1344
-	    0x10000744 main
-	            ../../src/binutils-gdb/gdb/gdb.c:32
-	    ---------------------
-	    ../../src/binutils-gdb/gdb/inferior.c:304: internal-error: find_inferior_pid: Assertion `pid != 0' failed.
-	    A problem internal to GDB has been detected,
-	    further debugging may prove unreliable.
-	    Quit this debugging session? (y or n)
-
-	This is due to some bit-rot in the AIX port, still relying on the entry
-	value of inferior_ptid in the wait methods.
-
-	Problem #1 is in rs6000_nat_target::wait, here:
-
-	      /* Ignore terminated detached child processes.  */
-	      if (!WIFSTOPPED (status) && pid != inferior_ptid.pid ())
-		pid = -1;
-
-	At this point, waitpid has returned an "exited" status for some pid, so
-	pid is non-zero.  Since inferior_ptid is set to null_ptid on entry, the
-	pid returned by wait is not equal to `inferior_ptid.pid ()`, so we reset
-	pid to -1 and go to waiting again.  Since there are not more children to
-	wait for, waitpid then returns -1 so we get here:
-
-	      if (pid == -1)
-		{
-		  gdb_printf (gdb_stderr,
-			      _("Child process unexpectedly missing: %s.\n"),
-			      safe_strerror (save_errno));
-
-		  /* Claim it exited with unknown signal.  */
-		  ourstatus->set_signalled (GDB_SIGNAL_UNKNOWN);
-		  return inferior_ptid;
-		}
-
-	We therefore return a "signalled" status with a null_ptid (again,
-	inferior_ptid is null_ptid).  This confuses infrun, because if the
-	target returns a "signalled" status, it should be coupled with a ptid
-	for an inferior that exists.
-
-	So, the first step is to fix the snippets above to not use
-	inferior_ptid.  In the first snippet, use find_inferior_pid to see if
-	we know the event process.  If there is no inferior with that pid, we
-	assume it's a detached child process to we ignore the event.  That
-	should be enough to fix the problem, because it should make it so we
-	won't go into the second snippet.  But still, fix the second snippet to
-	return an "ignore" status.  This is copied from inf_ptrace_target::wait,
-	which is where rs6000_nat_target::wait appears to be copied from in the
-	first place.
-
-	These changes, are not sufficient, as the aix_thread_target, which sits
-	on top of rs6000_nat_target, also relies on inferior_ptid.
-	aix_thread_target::wait, by calling pd_update, assumes that
-	rs6000_nat_target has set inferior_ptid to the appropriate value (the
-	ptid of the event thread), but that's not the case.  pd_update
-	returns inferior_ptid - null_ptid - and therefore
-	aix_thread_target::wait returns null_ptid too, and we still hit the
-	assert shown above.
-
-	Fix this by changing pd_activate, pd_update, sync_threadlists and
-	get_signaled_thread to all avoid using inferior_ptid.  Instead, they
-	accept as a parameter the pid of the process we are working on.
-
-	With this patch, I am able to run the program to completion:
-
-	    (gdb) r
-	    Starting program: /scratch/simark/build/gdb/a.out
-	    [Inferior 1 (process 11010794) exited normally]
-
-	As well as break on main:
-
-	    (gdb) b main
-	    Breakpoint 1 at 0x1000036c
-	    (gdb) r
-	    Starting program: /scratch/simark/build/gdb/a.out
-
-	    Breakpoint 1, 0x1000036c in main ()
-	    (gdb) c
-	    Continuing.
-	    [Inferior 1 (process 26083688) exited normally]
-
-	Change-Id: I7c2613bbefe487d75fa1a0c0994423471d961ee9
-
-2022-07-07  Pedro Alves  <pedro@palves.net>
-
-	Fix pedantically invalid DWARF in gdb.trace/unavailable-dwarf-piece.exp
-	The DWARF spec says:
-
-	  Any debugging information entry representing the declaration of an object,
-	  module, subprogram or type may have DW_AT_decl_file, DW_AT_decl_line and
-	  DW_AT_decl_column attributes, each of whose value is an unsigned integer
-								  ^^^^^^^^
-	  constant.
-
-	Grepping around the DWARF-assembler-based testcases, I noticed that
-	gdb.trace/unavailable-dwarf-piece.exp emits decl_line with
-	DW_FORM_sdata, a signed integer form.  This commit tweaks it to use
-	DW_FORM_udata instead.
-
-	Unsurprisingly, this:
-
-	  $ make check \
-	      TESTS="gdb.trace/unavailable-dwarf-piece.exp" \
-	      RUNTESTFLAGS="--target_board=native-gdbserver"
-
-	... still passes cleanly for me after this change.
-
-	I've noticed this because current llvm-dwarfdump crashed on an
-	ROCm-internal DWARF-assembler-based testcase that incorrectly used
-	signed forms for DW_AT_decl_file/DW_AT_decl_line.
-
-	The older llvm-dwarfdump found on Ubuntu 20.04 (LLVM 10) reads the
-	line numbers with signed forms as "0" instead of crashing.  Here's the
-	before/after fix for gdb.trace/unavailable-dwarf-piece.exp with that
-	llvm-dwarfdump version:
-
-	  $ diff -up before.txt after.txt
-	  --- before.txt    2022-07-07 13:21:28.387690334 +0100
-	  +++ after.txt     2022-07-07 13:21:39.379801092 +0100
-	  @@ -18,7 +18,7 @@
-			   DW_AT_name     ("s")
-			   DW_AT_byte_size        (3)
-			   DW_AT_decl_file        (0)
-	  -                DW_AT_decl_line        (0)
-	  +                DW_AT_decl_line        (1)
-
-	   0x0000002f:     DW_TAG_member
-			     DW_AT_name   ("a")
-	  @@ -41,7 +41,7 @@
-			   DW_AT_name     ("t")
-			   DW_AT_byte_size        (3)
-			   DW_AT_decl_file        (0)
-	  -                DW_AT_decl_line        (0)
-	  +                DW_AT_decl_line        (1)
-
-	   0x00000054:     DW_TAG_member
-			     DW_AT_name   ("a")
-
-	Change-Id: I5c866946356da421ff944019d0eca2607b2b738f
-
-2022-07-07  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Fix typos in code comments
-	"it’s" should be "it's".
-
-2022-07-07  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/testsuite: Add coverage for `print -elements' command
-	We currently have no coverage for the `print -elements ...' command (or
-	`p -elements ...' in the shortened form), so add a couple of test cases
-	mimicking ones using corresponding `set print elements ...' values.
-
-2022-07-07  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Implement the push_dummy_call gdbarch method
-	According to "Procedure Calling Convention" in "LoongArch ELF ABI
-	specification" [1], implement the push_dummy_call gdbarch method
-	as clear as possible.
-
-	[1] https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html#_procedure_calling_convention
-
-2022-07-07  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Added Zfhmin and Zhinxmin.
-	This commit adds Zfhmin and Zhinxmin extensions (subsets of Zfh and
-	Zhinx extensions, respectively).  In the process supporting Zfhmin and
-	Zhinxmin extension, this commit also changes how instructions are
-	categorized considering Zfhmin, Zhinx and Zhinxmin extensions.
-
-	Detailed changes,
-
-	* From INSN_CLASS_ZFH to INSN_CLASS_ZFHMIN:
-
-	flh, fsh, fmv.x.h and fmv.h.x.
-
-	* From INSN_CLASS_ZFH to INSN_CLASS_ZFH_OR_ZHINX:
-
-	fmv.h.
-
-	* From INSN_CLASS_ZFH_OR_ZHINX to INSN_CLASS_ZFH_OR_ZHINX:
-
-	fneg.h, fabs.h, fsgnj.h, fsgnjn.h, fsgnjx.h,
-	fadd.h, fsub.h, fmul.h, fdiv.h, fsqrt.h, fmin.h, fmax.h,
-	fmadd.h, fnmadd.h, fmsub.h, fnmsub.h,
-	fcvt.w.h, fcvt.wu.h, fcvt.h.w, fcvt.h.wu,
-	fcvt.l.h, fcvt.lu.h, fcvt.h.l, fcvt.h.lu,
-	feq.h, flt.h, fle.h, fgt.h, fge.h,
-	fclass.h.
-
-	* From INSN_CLASS_ZFH_OR_ZHINX to INSN_CLASS_ZFHMIN_OR_ZHINXMIN:
-
-	fcvt.s.h and fcvt.h.s.
-
-	* From INSN_CLASS_D_AND_ZFH_INX to INSN_CLASS_ZFHMIN_AND_D:
-
-	fcvt.d.h and fcvt.h.d.
-
-	* From INSN_CLASS_Q_AND_ZFH_INX to INSN_CLASS_ZFHMIN_AND_Q:
-
-	fcvt.q.h and fcvt.h.q.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_implicit_subsets): Change implicit
-		subsets.  Zfh->Zicsr is not needed and Zfh->F is replaced with
-		Zfh->Zfhmin and Zfhmin->F.  Zhinx->Zicsr is not needed and
-		Zhinx->Zfinx is replaced with Zhinx->Zhinxmin and
-		Zhinxmin->Zfinx.
-		(riscv_supported_std_z_ext): Added zfhmin and zhinxmin.
-		(riscv_multi_subset_supports):  Rewrite handling for new
-		instruction classes.
-		(riscv_multi_subset_supports_ext): Updated.
-		(riscv_parse_check_conflicts): Change error message to include
-		zfh and zfhmin extensions.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail.s: New complex
-		error handling test.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.d: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.l: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.d: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.l: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.d: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.l: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.d: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.l: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.d: Likewise.
-		* testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.l: Likewise.
-		* testsuite/gas/riscv/zhinx.d: Renamed from fp-zhinx-insns.d
-		and refactored.
-		* testsuite/gas/riscv/zhinx.s: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/riscv.h (enum riscv_insn_class): Removed INSN_CLASS_ZFH,
-		INSN_CLASS_D_AND_ZFH_INX and INSN_CLASS_Q_AND_ZFH_INX.  Added
-		INSN_CLASS_ZFHMIN, INSN_CLASS_ZFHMIN_OR_ZHINXMIN,
-		INSN_CLASS_ZFHMIN_AND_D and INSN_CLASS_ZFHMIN_AND_Q.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_opcodes): Change instruction classes for
-		Zfh and Zfhmin instructions.  Fix `fcvt.h.lu' instruction
-		(two operand variant) mask.
-
-2022-07-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: adjust GPROFNG_VARIANT
-	GPROFNG_VARIANT depends on compiler options, not on $(host).
-
-	gprofng/ChangeLog
-	2022-07-06  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29116
-		* libcollector/configure.ac: Adjust GPROFNG_VARIANT.
-		* libcollector/configure: Rebuild.
-
-2022-07-07  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix disassembling Zfinx with -M numeric
-	This commit fixes floating point operand register names from ABI ones
-	to dynamically set ones.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/zfinx-dis-numeric.s: Test new behavior of
-		Zfinx extension and -M numeric disassembler option.
-		* testsuite/gas/riscv/zfinx-dis-numeric.d: Likewise.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (riscv_disassemble_insn): Use dynamically set GPR
-		names to disassemble Zfinx instructions.
-
-2022-07-07  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix requirement handling on Zhinx+{D,Q}
-	This commit fixes how instructions are masked on Zhinx+Z{d,q}inx.
-	fcvt.h.d and fcvt.d.h require ((D&&Zfh)||(Zdinx&&Zhinx)) and
-	fcvt.h.q and fcvt.q.h require ((Q&&Zfh)||(Zqinx&&Zhinx)).
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Fix feature gate
-		on INSN_CLASS_{D,Q}_AND_ZFH_INX.
-		(riscv_multi_subset_supports_ext): Fix feature gate diagnostics
-		on INSN_CLASS_{D,Q}_AND_ZFH_INX.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/fp-zhinx-insns.d: Add Zqinx to -march
-		for proper testing.
-
-2022-07-07  Alan Modra  <amodra@gmail.com>
-
-	PR29320, 'struct obstack' declared inside parameter list
-		PR 29320
-		* frags.h: Move declaration of struct obstack..
-		* as.h: ..to here.
-
-2022-07-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-06  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-	gprofng: implement a functional gp-display-html
-	This patch enables the first support for the "gprofng display html" command.
-	This command works for C/C++ applications on x86_64. Using one or more gprofng
-	experiment directories as input, a new directory with html files is created.
-	Through the index.html file in this directory, the performance results may be
-	viewed in a browser.
-
-	gprofng/Changelog:
-	2022-06-28  Ruud van der Pas  <ruud.vanderpas@oracle.com>
-
-		* gp-display-html/gp-display-html.in: implement first support for x86_64 and C/C++
-
-2022-07-06  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Copy p_align of PT_GNU_STACK for stack alignment
-	commit 74e315dbfe5200c473b226e937935fb8ce391489
-	Author: H.J. Lu <hjl.tools@gmail.com>
-	Date:   Mon Dec 13 19:46:04 2021 -0800
-
-	    elf: Set p_align to the minimum page size if possible
-
-	may ignore p_align of PT_GNU_STACK when copying ELF program header if
-	the maximum page size is larger than p_align of PT_LOAD segments.  Copy
-	p_align of PT_GNU_STACK since p_align of PT_GNU_STACK describes stack
-	alignment, not page size,
-
-		PR binutils/29319
-		* elf.c (copy_elf_program_header): Copy p_align of PT_GNU_STACK
-		for stack alignment.
-
-2022-07-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: make D attribute usable for XOP and FMA4 insns
-	This once again allows to reduce redundancy in (and size of) the opcode
-	table.
-
-	Don't go as far as also making D work on the two 5-operand XOP insns:
-	This would significantly complicate the code, as there the first
-	(immediate) operand would need special treatment in several places.
-
-	Note that the .s suffix isn't being enabled to have any effect, for
-	being deprecated. Whereas neither {load} nor {store} pseudo prefixes
-	make sense here, as the respective operands are inputs (loads) only
-	anyway, regardless of order. Hence there is (as before) no way for the
-	programmer to request the alternative encoding to be used for register-
-	only insns.
-
-	Note further that it is always the first original template which is
-	retained (and altered), to make sure the same encoding as before is
-	used for register-only insns. This has the slightly odd (but pre-
-	existing) effect of XOP register-only insns having XOP.W clear, but FMA4
-	ones having VEX.W set.
-
-2022-07-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fold two switch() statements in match_template()
-	I don't see why two of them were introduced (very long ago) using
-	similar fall-through logic.
-
-2022-07-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fix 3-operand insn reverse-matching
-	The middle operand would have gone entirely unchecked, allowing e.g.
-
-		vmovss		%xmm0, %esp, %xmm2
-
-	to assemble successfully, or e.g.
-
-		vmovss		%xmm0, $4, %xmm2
-
-	causing an internal error. Alongside dealing with this also drop a
-	related comment, which hasn't been applicable anymore since the
-	introduction of 3-operand patterns with D set (and which perhaps never
-	had been logical to be there, as reverse-matched insns don't make it
-	there in the first place).
-
-2022-07-06  Bhuvanendra Kumar N  <Bhuvanendra.KumarN@amd.com>
-
-	Descriptive DWARF operations dump support for DW_AT_rank
-	DW_AT_rank is a dwarf-5 feature.
-
-2022-07-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: introduce a state stack for .arch
-	When using just slightly non-trivial combinations of .arch, it can be
-	quite useful to be able to go back to prior state without needing to
-	re-invoke perhaps many earlier directives and without needing to invoke
-	perhaps many "negative" ones. Like some other architectures allow
-	saving (pushing) and restoring (popping) present/prior state.
-
-	For now require the same .code<N> to be in effect for ".arch pop" that
-	was in effect for the corresponding ".arch push".
-
-	Also change the global "no_cond_jump_promotion" to be bool, to match the
-	new struct field.
-
-2022-07-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: generalize disabling of sub-architectures
-	I never really understood upon what basis ".arch .no*" options were made
-	available. Let's not have any "criteria" at all, and simply allow
-	disabling of all of them. Then we also have all data for a sub-arch in
-	a single place, as we now only need a single table.
-
-2022-07-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: permit "default" with .arch
-	So far there was no way to reset the architecture to that assembly would
-	start with in the absence of any overrides (command line or directives).
-	Note that for Intel MCU "default" is merely an alias of "iamcu".
-
-	While there also zap a stray @item from the doc section, as noticed
-	when inspecting the generated output (which still has some quirks, but
-	those aren't easy to address without re-flowing almost the entire
-	section).
-
-2022-07-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: don't leak sub-architecture accumulated strings
-	While it may not be necessary in i386_target_format() (but then setting
-	the variable to NULL also wouldn't be necessary), at least in the other
-	cases strings may already have accumulated.
-
-2022-07-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/exp] Fix internal error when printing C++ pointer-to-member
-	When running the test-case included with this patch, we run into:
-	...
-	(gdb) print ptm^M
-	$1 = gdb/gdbtypes.h:695: internal-error: loc_bitpos: \
-	  Assertion `m_loc_kind == FIELD_LOC_KIND_BITPOS' failed.^M
-	...
-	while printing a c++ pointer-to-member.
-
-	Fix this by skipping static fields in cp_find_class_member, such that we have:
-	...
-	(gdb) print ptm^M
-	$1 = &A::i^M
-	...
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29294
-
-2022-07-05  Tom Tromey  <tromey@adacore.com>
-
-	Add gdb.Objfile.is_file attribute
-	Sometimes an objfile comes from memory and not from a file.  It can be
-	useful to be able to check this from Python, so this patch adds a new
-	"is_file" attribute.
-
-2022-07-05  Tom Tromey  <tromey@adacore.com>
-
-	Make 'import gdb.events' work
-	Pierre-Marie noticed that, while gdb.events is a Python module, it
-	can't be imported.  This patch changes how this module is created, so
-	that it can be imported, while also ensuring that the module is always
-	visible, just as it was in the past.
-
-	This new approach required one non-obvious change -- when running
-	gdb.base/warning.exp, where --data-directory is intentionally not
-	found, the event registries can now be nullptr.  Consequently, this
-	patch probably also requires
-
-	    https://sourceware.org/pipermail/gdb-patches/2022-June/189796.html
-
-	Note that this patch obsoletes
-
-	    https://sourceware.org/pipermail/gdb-patches/2022-June/189797.html
-
-2022-07-05  Xi Ruoyao  <xry111@xry111.site>
-
-	gdb: LoongArch: add orig_a0 into register set
-	The basic support for LoongArch has been merged into the upstream Linux
-	kernel since 5.19-rc1 on June 5, 2022.  This commit adds orig_a0 which
-	is added into struct user_pt_regs [1] to match the upstream kernel, and
-	then the upstream GDB will work with the upstream kernel.
-
-	Note that orig_a0 was added into struct user_pt_regs in the development
-	cycle for merging LoongArch port into the upstream Linux kernel, so
-	earlier kernels (notably, the product kernel with version 4.19 used in
-	distros like UOS and Loongnix) don't have it.  Inspect
-	arch/loongarch/include/uapi/asm/ptrace.h in the kernel tree to make sure.
-	To build upstream GDB for a kernel lacking orig_a0, it's necessary to
-	revert this commit locally.
-
-	[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/loongarch/include/uapi/asm/ptrace.h#n24
-
-2022-07-05  Bhuvanendra Kumar N  <Bhuvanendra.KumarN@amd.com>
-
-	Support for location and range lists for split-dwarf and dwarf-5.
-	Adding support for location and range lists for split-dwarf and dwarf-5.
-	Following issues are taken care.
-	1. Display of the index values for DW_FORM_loclistx and DW_FORM_rnglistx.
-	2. Display of .debug_loclists.dwo and .debug_rnglists.dwo sections.
-
-	        * dwarf.c(read_and_display_attr_value): Handle DW_FORM_loclistx
-	        and DW_FORM_rnglistx for .dwo files.
-	        (process_debug_info): Load .debug_loclists.dwo and
-	        .debug_rnglists.dwo if exists.
-	        (load_separate_debug_files): Load .debug_loclists and
-	        .debug_rnglists if exists.
-	        Include 2 entries in debug_displays table.
-	        * dwarf.h (enum dwarf_section_display_enum): Include 2 entries.
-
-2022-07-05  Jan Beulich  <jbeulich@suse.com>
-
-	x86: introduce fake processor type to mark sub-arch entries in cpu_arch[]
-	This is in preparation of dropping the leading . from the strings.
-
-	While there also move PROCESSOR_GENERIC{32,64} from the middle of AMD
-	entries to near the top.
-
-2022-07-05  Jan Beulich  <jbeulich@suse.com>
-
-	x86: macro-ize cpu_arch[] entries
-	Putting individual elements behind macros, besides (imo) improving
-	readability, will make subsequent (and likely also future) changes less
-	intrusive.
-
-	Utilize this right away to pack the table a little more tightly, by
-	converting "skip" to bool and putting it earlier in a group of bitfields
-	together with "len".
-
-2022-07-05  Jan Beulich  <jbeulich@suse.com>
-
-	x86: de-duplicate sub-architecture strings accumulation
-	Introduce a helper function to replace 4 instances of similar code. Use
-	reconcat() to cover the previously explicit free().
-
-2022-07-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-04  Nick Clifton  <nickc@redhat.com>
-
-	Fix snafu in rust demangler recursion limit code
-
-2022-07-04  Alan Modra  <amodra@gmail.com>
-
-	alloc gas seginfo on notes obstack
-	Lots of memory used in gas should go on this obstack.  The patch also
-	frees all the gas obstacks on exit, which isn't a completely trivial
-	task.
-
-		* subsegs.c (alloc_seginfo): New function.
-		(subseg_change, subseg_get): Use it.
-		(subsegs_end): New function.
-		* as.h (subsegs_end): Declare.
-		* output-file.c: Include subsegs.h
-		(stash_frchain_obs): New function.
-		(output_file_close): Save obstacks attached to output bfd before
-		closing.  Call subsegs_end with the array of obstacks.
-
-2022-07-04  Alan Modra  <amodra@gmail.com>
-
-	objcopy: bfd_alloc orelocation
-	This fixes an inconsequential objcopy memory leak.  I'd normally
-	ignore reports of leaks like this one, that are merely one block or
-	fewer per section processed, since objcopy soon exits and frees all
-	memory.  However I thought it worth providing support for allocating
-	memory on a bfd objalloc in objcopy and other utils.
-
-		PR 29233
-		* bucomm.c (bfd_xalloc): New function.
-		* bucomm.h (bfd_xalloc): Declare.
-		* objcopy.c (copy_relocations_in_section): Use it to allocate
-		array of reloc pointers.  Rewrite code stripping relocs to do
-		without extra memory allocation.
-
-2022-07-04  Nick Clifton  <nickc@redhat.com>
-
-	Synchronize libbierty sources with gcc.
-
-2022-07-04  Bhuvanendra Kumar N  <Bhuvanendra.KumarN@amd.com>
-
-	Modified changes for split-dwarf and dwarf-5.
-	        * dwarf.c(process_debug_info): Include DW_TAG_skeleton_unit.
-	        (display_debug_str_offsets): While dumping .debug_str_offsets.dwo,
-	        pass proper str_offsets_base to fetch_indexed_string().
-	        (load_separate_debug_files): Skip DWO ID dump for dwarf-5.
-
-2022-07-04  Marcus Nilsson  <brainbomb@gmail.com>
-
-	opcodes/avr: Implement style support in the disassembler
-		* disassemble.c: (disassemble_init_for_target): Set
-		created_styled_output for AVR based targets.
-		* avr-dis.c: (print_insn_avr): Use fprintf_styled_ftype
-		instead of fprintf_ftype throughout.
-		(avr_operand): Pass in and fill disassembler_style when
-		parsing operands.
-
-2022-07-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Add get/set functions for per_cu->lang/unit_type
-	The dwarf2_per_cu_data fields lang and unit_type both have a dont-know
-	initial value (respectively language_unknown and (dwarf_unit_type)0), which
-	allows us to add certain checks, f.i. checking that that a field is not read
-	before written.
-
-	Add get/set member functions for the two fields as a convenient location to
-	add such checks, make the fields private to enforce using the member
-	functions, and add the m_ prefix.
-
-	Tested on x86_64-linux.
-
-2022-07-04  Jan Beulich  <jbeulich@suse.com>
-
-	gas/testsuite: properly exclude aout in all/weakref1u
-	Use the (wider) predicate rather than a triplet. This eliminates the sole
-	i386-msdos failure in the testsuite.
-
-2022-07-04  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fold Disp32S and Disp32
-	The only case where 64-bit code uses non-sign-extended (can also be
-	considered zero-extended) displacements is when an address size override
-	is in place for a memory operand (i.e. particularly excluding
-	displacements of direct branches, which - if at all - are controlled by
-	operand size, and then are still sign-extended, just from 16 bits).
-	Hence the distinction in templates is unnecessary, allowing code to be
-	simplified in a number of places. The only place where logic becomes
-	more complicated is when signed-ness of relocations is determined in
-	output_disp().
-
-	The other caveat is that Disp64 cannot be specified anymore in an insn
-	template at the same time as Disp32. Unlike for non-64-bit mode,
-	templates don't specify displacements for both possible addressing
-	modes; the necessary adjustment to the expected ones has already been
-	done in match_template() anyway (but of course the logic there needs
-	tweaking now). Hence the single template so far doing so is split.
-
-2022-07-04  Jan Beulich  <jbeulich@suse.com>
-
-	x86: restore masking of displacement kinds
-	Commit 7d5e4556a375 rendered the check near the end of what is now
-	i386_finalize_displacement() entirely dead for AT&T mode, since for
-	operands involving a displacement .unspecified will always be set. But
-	the logic there is bogus anyway - Intel syntax operand size specifiers
-	are of no interest there either. The only thing which matters in the
-	"displacement only" determination is .baseindex.
-
-	Of course when masking displacement kinds we should not at the same time
-	also mask off other attributes.
-
-	Furthermore the type mask returned by lex_got() also needs to be
-	adjusted: The only case where we want Disp32 (rather than Disp32S) is
-	when dealing with 32-bit addressing mode in 64-bit code.
-
-2022-07-04  Jan Beulich  <jbeulich@suse.com>
-
-	x86-64: improve handling of branches to absolute addresses
-	There are two related problems here: The use of "addr32" on a direct
-	branch would, besides causing a warning, result in operands to be
-	permitted which mistakenly are refused without "addr32". Plus at some
-	point not too long ago I'm afraid it may have been me who regressed the
-	relocation addends emitted for such branches. Correct both problems,
-	adding a testcase to guard against regressing this again.
-
-2022-07-04  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Update Zihintpause extension version
-	Because ratified Zihintpause extension has a version number of 2.0
-	(not 1.0), we should update the number.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_supported_std_z_ext): Update version
-		number of Zihintpause extension.
-
-2022-07-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix data race on per_cu->dwarf_version
-	When building gdb with -fsanitize=thread and gcc 12, and running test-case
-	gdb.dwarf2/dwz.exp, we run into a data race between thread T2 and the main
-	thread in the same write:
-	...
-	Write of size 1 at 0x7b200000300c:^M
-	    #0 cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*, \
-	    abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) gdb/dwarf2/read.c:6252 \
-	    (gdb+0x82f3b3)^M
-	...
-	which is here:
-	...
-	         this_cu->dwarf_version = cu->header.version;
-	...
-
-	Both writes are called from the parallel for in dwarf2_build_psymtabs_hard,
-	this one directly:
-	...
-	    #1 process_psymtab_comp_unit gdb/dwarf2/read.c:6774 (gdb+0x8304d7)^M
-	    #2 operator() gdb/dwarf2/read.c:7098 (gdb+0x8317be)^M
-	    #3 operator() gdbsupport/parallel-for.h:163 (gdb+0x872380)^M
-	...
-	and this via the PU import:
-	...
-	    #1 cooked_indexer::ensure_cu_exists(cutu_reader*, dwarf2_per_objfile*, \
-	    sect_offset, bool,  bool) gdb/dwarf2/read.c:17964 (gdb+0x85c43b)^M
-	    #2 cooked_indexer::index_imported_unit(cutu_reader*, unsigned char const*, \
-	    abbrev_info const*) gdb/dwarf2/read.c:18248 (gdb+0x85d8ff)^M
-	    #3 cooked_indexer::index_dies(cutu_reader*, unsigned char const*, \
-	    cooked_index_entry const*, bool) gdb/dwarf2/read.c:18302 (gdb+0x85dcdb)^M
-	    #4 cooked_indexer::make_index(cutu_reader*) gdb/dwarf2/read.c:18443 \
-	    (gdb+0x85e68a)^M
-	    #5 process_psymtab_comp_unit gdb/dwarf2/read.c:6812 (gdb+0x830879)^M
-	    #6 operator() gdb/dwarf2/read.c:7098 (gdb+0x8317be)^M
-	    #7 operator() gdbsupport/parallel-for.h:171 (gdb+0x8723e2)^M
-	...
-
-	Fix this by setting the field earlier, in read_comp_units_from_section.
-
-	The write in cutu_reader::cutu_reader() is still needed, in case
-	read_comp_units_from_section is not used (run the test-case with say, target
-	board cc-with-gdb-index).
-
-	Make the write conditional, such that it doesn't trigger if the field is
-	already set by read_comp_units_from_section.  Instead, verify that the
-	field already has the value that we're trying to set it to.
-
-	Move this logic into into a member function set_version (in analogy to the
-	already present member function version) to make sure it's used consistenly,
-	and make the field private in order to enforce access through the member
-	functions, and rename it to m_dwarf_version.
-
-	While we're at it, make sure that the version is set before read, to avoid
-	say returning true for "per_cu.version () < 5" if "per_cu.version () == 0".
-
-	Tested on x86_64-linux.
-
-2022-07-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/early-init-file.exp with -fsanitize=thread
-	When building gdb with -fsanitize=thread, I run into:
-	...
-	FAIL: gdb.base/early-init-file.exp: check startup version string has style \
-	  version
-	...
-	due to this:
-	...
-	warning: Found custom handler for signal 7 (Bus error) preinstalled.^M
-	warning: Found custom handler for signal 8 (Floating point exception) \
-	  preinstalled.^M
-	warning: Found custom handler for signal 11 (Segmentation fault) \
-	  preinstalled.^M
-	Some signal dispositions inherited from the environment (SIG_DFL/SIG_IGN)^M
-	won't be propagated to spawned programs.^M
-	...
-	appearing before the "GNU gdb (GDB) $version" line.
-
-	This is similar to the problem fixed by commit f0bbba7886f
-	("gdb.debuginfod/fetch_src_and_symbols.exp: fix when GDB is built with
-	AddressSanitizer").
-
-	In that commit, the problem was fixed by starting gdb with -quiet, but using
-	that would mean the "GNU gdb (GDB) $version" line that we're trying to check
-	would disappear.
-
-	Fix this instead by updating the regexp to allow the message.
-
-	Tested on x86_64-linux.
-
-2022-07-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-07-01  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/doc: Remove indentation from `print -elements' completion example
-	Remove indentation from the text of the manual after the example here:
-
-	"  Completion will in some cases guide you with a suggestion of what
-	kind of argument an option expects.  For example:
-
-	     (gdb) print -elements <TAB><TAB>
-	     NUMBER     unlimited
-
-	   Here, the option expects a number (e.g., '100'), not literal
-	'NUMBER'.  Such metasyntactical arguments are always presented in
-	uppercase."
-
-	as this is a continuation of the same paragraph.
-
-2022-07-01  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/doc: Remove extraneous spaces from completion examples
-	Completion results are usually different when the operation is applied
-	to a word that is or is not followed by a space.  In some cases they are
-	equivalent, however a space would not be produced if completion was used
-	earlier on in the word processed.
-
-	However in the manual we have completion examples given using a space
-	that actually prevents the example from working.  E.g.:
-
-	(gdb) info bre <TAB>
-
-	(nothing) and:
-
-	(gdb) info bre <TAB><TAB>
-	Display all 200 possibilities? (y or n)
-
-	as it now goes on to propose the entire symbol table, while:
-
-	(gdb) info bre<TAB>
-	(gdb) info breakpoints
-
-	does the right thing, but is not what is shown in the manual.
-
-	In other cases an extraneous space is used that does not correspond to
-	the actual completion pattern shown, which gives an impression of
-	sloppiness.
-
-	Remove extraneous spaces then from completion examples as appropriate.
-
-2022-07-01  Nick Clifton  <nickc@redhat.com>
-
-	Add newline to the end of the rnglists displsy.
-
-2022-07-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-30  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Add `NUMBER' completion to `set' integer commands
-	Fix a completion consistency issue with `set' commands accepting integer
-	values and the special `unlimited' keyword:
-
-	(gdb) complete print -elements
-	print -elements NUMBER
-	print -elements unlimited
-	(gdb)
-
-	vs:
-
-	(gdb) complete set print elements
-	set print elements unlimited
-	(gdb)
-
-	(there is a space entered at the end of both commands, not shown here)
-	which also means if you strike <Tab> with `set print elements ' input,
-	it will, annoyingly, complete to `set print elements unlimited' right
-	away rather than showing a choice between `NUMBER' and `unlimited'.
-
-	Add `NUMBER' then as an available completion for such `set' commands:
-
-	(gdb) complete set print elements
-	set print elements NUMBER
-	set print elements unlimited
-	(gdb)
-
-	Adjust the testsuite accordingly.  Also document the feature in the
-	Completion section of the manual in addition to the Command Options
-	section already there.
-
-2022-06-30  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: Expand gdb.cp/mb-ctor.exp to test dynamic allocation
-	When testing GDB's ability to stop in constructors, gdb.cp/mb-ctor.exp
-	only tested objects allocated on the stack. This commit adds a couple of
-	dynamic allocations and tests if GDB can stop in it as well.
-
-2022-06-30  Nick Clifton  <nickc@redhat.com>
-
-	Fix implementation of readelf's -wE and -wN options,
-		* dwarf.c (dwarf_select_sections_by_name): If the entry's value is
-		zero then clear the corresponding variable.
-		(dwarf_select_sections_by_letters): Likewise.
-		* testsuite/binutils-all/debuginfo.exp: Expect -WE and -wE
-		debuginfod tests to fail.
-
-2022-06-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Block SIGTERM in worker threads
-	With gdb build with gcc-12 and -fsanitize=thread, and test-case
-	gdb.base/gdb-sigterm.exp, I run into:
-	...
-	WARNING: ThreadSanitizer: data race (pid=9722)^M
-	  Write of size 4 at 0x00000325bc68 by thread T1:^M
-	  #0 handle_sigterm(int) src/gdb/event-top.c:1211 (gdb+0x8ec01f)^M
-	  ...
-	  Previous read of size 4 at 0x00000325bc68 by main thread:^M
-	    [failed to restore the stack]^M
-	^M
-	  Location is global 'sync_quit_force_run' of size 4 at \
-	  0x00000325bc68 (gdb+0x325bc68)^M
-	  ...
-	SUMMARY: ThreadSanitizer: data race gdb/event-top.c:1211 in \
-	  handle_sigterm(int)^M
-	...
-	and 3 more data races involving handle_sigterm and locations:
-	- active_ext_lang
-	- quit_flag
-	- heap block of size 40
-	  (XNEW (async_signal_handler) in create_async_signal_handler)
-
-	This was reported in PR29297.
-
-	The testcase executes a "kill -TERM $gdb_pid", which generates a
-	process-directed signal.
-
-	A process-directed signal can be delivered to any thread, and what we see
-	here is the fallout of the signal being delivered to a worker thread rather
-	than the main thread.
-
-	Fix this by blocking SIGTERM in the worker threads.
-
-	[ I have not been able to reproduce this after it occurred for the first time,
-	so unfortunately I cannot confirm that the patch fixes the problem. ]
-
-	Tested on x86_64-linux, with and without -fsanitize=thread.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29297
-
-2022-06-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: fix column widths in MI compatibility table
-	In passing I noticed that the column headings for the table of MI
-	compatibility and breaking changes, were overlapping, at least when
-	the PDF is generated on my machine.
-
-	I propose giving slightly more space to the two version number
-	columns, this prevents the headers overlapping for me.
-
-2022-06-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-29  Pedro Alves  <pedro@palves.net>
-
-	Fix GDBserver regression due to change to avoid reading shell registers
-	Simon reported that the recent change to make GDB and GDBserver avoid
-	reading shell registers caused a GDBserver regression, caught with
-	ASan while running gdb.server/non-existing-program.exp:
-
-	 $ /home/smarchi/build/binutils-gdb/gdb/testsuite/../../gdb/../gdbserver/gdbserver stdio non-existing-program
-	 =================================================================
-	 ==127719==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f0000000e9 at pc 0x55bcbfa301f4 bp 0x7ffd238a7320 sp 0x7ffd238a7310
-	 WRITE of size 1 at 0x60f0000000e9 thread T0
-	     #0 0x55bcbfa301f3 in scoped_restore_tmpl<bool>::~scoped_restore_tmpl() /home/smarchi/src/binutils-gdb/gdbserver/../gdbsupport/scoped_restore.h:86
-	     #1 0x55bcbfa2ffe9 in post_fork_inferior(int, char const*) /home/smarchi/src/binutils-gdb/gdbserver/fork-child.cc:120
-	     #2 0x55bcbf9c9199 in linux_process_target::create_inferior(char const*, std::__debug::vector<char*, std::allocator<char*> > const&) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:991
-	     #3 0x55bcbf954549 in captured_main /home/smarchi/src/binutils-gdb/gdbserver/server.cc:3941
-	     #4 0x55bcbf9552f0 in main /home/smarchi/src/binutils-gdb/gdbserver/server.cc:4084
-	     #5 0x7ff9d663b0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
-	     #6 0x55bcbf8ef2bd in _start (/home/smarchi/build/binutils-gdb/gdbserver/gdbserver+0x1352bd)
-
-	 0x60f0000000e9 is located 169 bytes inside of 176-byte region [0x60f000000040,0x60f0000000f0)
-	 freed by thread T0 here:
-	     #0 0x7ff9d6c6f0c7 in operator delete(void*) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:160
-	     #1 0x55bcbf910d00 in remove_process(process_info*) /home/smarchi/src/binutils-gdb/gdbserver/inferiors.cc:164
-	     #2 0x55bcbf9c4ac7 in linux_process_target::remove_linux_process(process_info*) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:454
-	     #3 0x55bcbf9cdaa6 in linux_process_target::mourn(process_info*) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:1599
-	     #4 0x55bcbf988dc4 in target_mourn_inferior(ptid_t) /home/smarchi/src/binutils-gdb/gdbserver/target.cc:205
-	     #5 0x55bcbfa32020 in startup_inferior(process_stratum_target*, int, int, target_waitstatus*, ptid_t*) /home/smarchi/src/binutils-gdb/gdbserver/../gdb/nat/fork-inferior.c:515
-	     #6 0x55bcbfa2fdeb in post_fork_inferior(int, char const*) /home/smarchi/src/binutils-gdb/gdbserver/fork-child.cc:111
-	     #7 0x55bcbf9c9199 in linux_process_target::create_inferior(char const*, std::__debug::vector<char*, std::allocator<char*> > const&) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:991
-	     #8 0x55bcbf954549 in captured_main /home/smarchi/src/binutils-gdb/gdbserver/server.cc:3941
-	     #9 0x55bcbf9552f0 in main /home/smarchi/src/binutils-gdb/gdbserver/server.cc:4084
-	     #10 0x7ff9d663b0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
-
-	 previously allocated by thread T0 here:
-	     #0 0x7ff9d6c6e5a7 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
-	     #1 0x55bcbf910ad0 in add_process(int, int) /home/smarchi/src/binutils-gdb/gdbserver/inferiors.cc:144
-	     #2 0x55bcbf9c477d in linux_process_target::add_linux_process_no_mem_file(int, int) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:425
-	     #3 0x55bcbf9c8f4c in linux_process_target::create_inferior(char const*, std::__debug::vector<char*, std::allocator<char*> > const&) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:985
-	     #4 0x55bcbf954549 in captured_main /home/smarchi/src/binutils-gdb/gdbserver/server.cc:3941
-	     #5 0x55bcbf9552f0 in main /home/smarchi/src/binutils-gdb/gdbserver/server.cc:4084
-	     #6 0x7ff9d663b0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
-
-	Above we see that in the non-existing-program case, the process gets
-	deleted before the starting_up flag gets restored to false.
-
-	This happens because startup_inferior calls target_mourn_inferior
-	before throwing an error, and in GDBserver, unlike in GDB, mourning
-	deletes the process.
-
-	Fix this by not using a scoped_restore to manage the starting_up flag,
-	since we should only clear it when startup_inferior doesn't throw.
-
-	Change-Id: I67325d6f81c64de4e89e20e4ec4556f57eac7f6c
-
-2022-06-29  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/testsuite: Tighten `set print elements' error check
-	Match the whole error message expected to be given rather than omitting
-	the part about the "unlimited" keyword.  There's no point in omitting
-	the missing part first, and second with an upcoming change the part in
-	parentheses will no longer be a fixed string, so doing a full match will
-	ensure the algorithm correctly builds the message expected here.  Also
-	avoid any wildcard matches.
-
-2022-06-29  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB: Remove extraneous full stops from `set' command error messages
-	With errors given for bad commands such as `set annotate' or `set width'
-	we produce an extraneous full stop within parentheses:
-
-	(gdb) set annotate
-	Argument required (integer to set it to.).
-	(gdb) set width
-	Argument required (integer to set it to, or "unlimited".).
-	(gdb)
-
-	This is grammatically incorrect, so remove the full stop and adjust the
-	testsuite accordingly.
-
-2022-06-29  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: improve description of --data-disassemble opcodes output
-	Extend the description of the MI command --data-disassemble.
-	Specifically, expand the description of the 'opcodes' field to explain
-	how the bytes are formatted.
-
-2022-06-29  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Only stack S16..S31 when FPU registers are secure
-	The FPCCR.TS bit is used to identify if FPU registers are considered
-	non-secure or secure.  If they are secure, then callee saved registers
-	(S16 to S31) are stacked on exception entry or otherwise skipped.
-
-2022-06-29  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/aarch64: split off creation of comment text in disassembler
-	The function aarch64_print_operand (aarch64-opc.c) is responsible for
-	converting an instruction operand into the textual representation of
-	that operand.
-
-	In some cases, a comment is included in the operand representation,
-	though this (currently) only happens for the last operand of the
-	instruction.
-
-	In a future commit I would like to enable the new libopcodes styling
-	for AArch64, this will allow objdump and GDB[1] to syntax highlight
-	the disassembler output, however, having operands and comments
-	combined in a single string like this makes such styling harder.
-
-	In this commit, I propose to extend aarch64_print_operand to take a
-	second buffer.  Any comments for the instruction are written into this
-	extra buffer.  The two callers of aarch64_print_operand are then
-	updated to pass an extra buffer, and print any resulting comment.
-
-	In this commit no styling is added, that will come later.  However, I
-	have adjusted the output slightly.  Before this commit some comments
-	would be separated from the instruction operands with a tab character,
-	while in other cases the comment was separated with two single spaces.
-
-	After this commit I use a single tab character in all cases.  This
-	means a few test cases needed updated.  If people would prefer me to
-	move everyone to use the two spaces, then just let me know.  Or maybe
-	there was a good reason why we used a mix of styles, I could probably
-	figure out a way to maintain the old output exactly if that is
-	critical.
-
-	Other than that, there should be no user visible changes after this
-	commit.
-
-	[1] GDB patches have not been merged yet, but have been posted to the
-	GDB mailing list:
-	https://sourceware.org/pipermail/gdb-patches/2022-June/190142.html
-
-2022-06-29  Carl Love  <cel@us.ibm.com>
-	    Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix gdb.base/break-idempotent.exp on ppc
-	When running the gdb.base/break-idempotent.exp test on ppc, I was
-	seeing some test failures (or rather errors), that looked like this:
-
-	  (gdb) watch local
-	  Hardware watchpoint 2: local
-
-	  has_hw_wp_support: Hardware watchpoint detected
-	  ERROR: no fileid for gcc2-power8
-	  ERROR: Couldn't send delete breakpoints to GDB.
-	  ERROR OCCURED: can't read "gdb_spawn_id": no such variable
-	      while executing
-	  "expect {
-	  -i 1000 -timeout 100
-	          -re ".*A problem internal to GDB has been detected" {
-	              fail "$message (GDB internal error)"
-	              gdb_internal_erro..."
-	      ("uplevel" body line 1)
-	      invoked from within
-
-	What happens is that in break-idempotent.exp we basically do this:
-
-	    if {[prepare_for_testing "failed to prepare" $binfile $srcfile $opts]} {
-	        continue
-	    }
-
-	    # ....
-
-	    if {![skip_hw_watchpoint_tests]} {
-	        test_break $always_inserted "watch"
-	    }
-
-	The problem with this is that skip_hw_watchpoint_tests, includes this:
-
-	    if { [istarget "i?86-*-*"]
-		 || [istarget "x86_64-*-*"]
-		 || [istarget "ia64-*-*"]
-		 || [istarget "arm*-*-*"]
-		 || [istarget "aarch64*-*-*"]
-		 || ([istarget "powerpc*-*-linux*"] && [has_hw_wp_support])
-		 || [istarget "s390*-*-*"] } {
-		return 0
-	    }
-
-	For powerpc only we call has_hw_wp_support.  This is a caching proc
-	that runs a test within GDB to detect if we have hardware watchpoint
-	support or not.
-
-	Unfortunately, to run this test we restart GDB, and when the test has
-	completed, we exit GDB.  This means that in break-idempotent.exp, when
-	we call skip_hw_watchpoint_tests for the first time on powerpc, GDB
-	will unexpectedly be exited.  When we later call delete_breakpoints we
-	see the errors I reported above.
-
-	The fix is to call skip_hw_watchpoint_tests early, before we start GDB
-	as part of the break-idempotent.exp script, and store the result in a
-	variable, we can then check this variable in the script as needed.
-
-	After this change break-idempotent.exp runs fine on powerpc.
-
-2022-06-29  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop stray NoRex64 from XBEGIN
-	Presumably this being there was a result of taking CALL as a reference
-	when adding the RTM insns. But with No_qSuf the attribute has no effect.
-
-2022-06-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build when BUILD_MAN is false
-	gprofng/ChangeLog
-	2022-06-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29131
-		* gp-display-html/Makefile.am: Set man_MANS only when BUILD_MAN is true.
-		* src/Makefile.am: Likewise.
-		* gp-display-html/Makefile.in: Rebuild.
-		* src/Makefile.in: Rebuild.
-
-2022-06-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: use $(sysconfdir) instead $(prefix)/etc
-	gprofng/ChangeLog
-	2022-06-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29191
-		* src/Makefile.am: Use $(sysconfdir) instead $(prefix)/etc.
-		* src/Settings.cc: Likewise.
-		* src/Makefile.in: Rebuild.
-
-2022-06-29  Alan Modra  <amodra@gmail.com>
-
-	Re: ld/x86: skip p_align-1 tests with unsuitable compiler
-	commit d0e0f9c87a3e results "ERROR: i586-linux-cc does not exist" if
-	cross-building an i586-linux target without a target compiler
-	installed.
-
-		* testsuite/ld-elf/linux-x86.exp (compiler_honours_aligned): New.
-		Use it after first testing check_compiler_available.
-
-2022-06-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-28  Pedro Alves  <pedro@palves.net>
-
-	gdb+gdbserver/Linux: avoid reading registers while going through shell
-	For every stop, Linux GDB and GDBserver save the stopped thread's PC,
-	in lwp->stop_pc.  This is done in save_stop_reason, in both
-	gdb/linux-nat.c and gdbserver/linux-low.cc.  However, while we're
-	going through the shell after "run", in startup_inferior, we shouldn't
-	be reading registers, as we haven't yet determined the target's
-	architecture -- the shell's architecture may not even be the same as
-	the final inferior's.
-
-	In gdb/linux-nat.c, lwp->stop_pc is only needed when the thread has
-	stopped for a breakpoint, and since when going through the shell, no
-	breakpoint is going to hit, we could simply teach save_stop_reason to
-	only record the stop pc when the thread stopped for a breakpoint.
-
-	However, in gdbserver/linux-low.cc, lwp->stop_pc is used in more cases
-	than breakpoint hits (e.g., it's used in tracepoints & the
-	"while-stepping" feature).
-
-	So to avoid GDB vs GDBserver divergence, we apply the same approach to
-	both implementations.
-
-	We set a flag in the inferior (process in GDBserver) whenever it is
-	being nursed through the shell, and when that flag is set,
-	save_stop_reason bails out early.  While going through the shell,
-	we'll only ever get process exits (normal or signalled), random
-	signals, and exec events, so nothing is lost.
-
-	Change-Id: If0f01831514d3a74d17efd102875de7d2c6401ad
-
-2022-06-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix gdb build with -fsanitize=thread and gcc 7
-	When building gdb with system gcc 7.5.0, I run into:
-	...
-	gdb/ia64-tdep.c: In function ‘int is_float_or_hfa_type_recurse(type*, type**)’:
-	gdb/ia64-tdep.c:3362:1: error: control reaches end of non-void function \
-	  [-Werror=return-type]
-	...
-
-	This is due to PR gcc/81275 - "-fsanitize=thread produce incorrect
-	-Wreturn-type warning", which has been fixed in gcc-8.
-
-	Work around this by moving the default return outside the switch.
-
-	Tested on x86_64-linux.
-
-2022-06-28  Clément Chigot  <chigot@adacore.com>
-
-	bfd: handle codepage when opening files on MinGW
-	Even if MS docs say that CP_UTF8 should always be used on newer
-	applications, forcing it might produce undefined filename if the
-	encoding isn't UTF-8.
-	MinGW seems to call ___lc_codepage_func() in order to retrieve the
-	current thread codepage.
-
-	bfd/ChangeLog:
-
-	        * bfdio.c (_bfd_real_fopen): Retrieve codepage with
-	        ___lc_codepage_func() on MinGW.
-
-2022-06-28  Clément Chigot  <chigot@adacore.com>
-
-	windres: add quotes around preprocessor cmd if needed
-	This patch ensures that the gcc binary called by windres is quoted if
-	needed. Otherwise, errors can occur if the gcc is under a folder having
-	a name containing a space (eg "Program Files").
-
-	binutils/
-		* resrc.c (DEFAULT_PREPROCESSOR): Split into...
-		(DEFAULT_PREPROCESSOR_CMD): that...
-		(DEFAULT_PREPROCESSOR_ARGS): and that.
-		(look_for_default): Add quotes around the command if needed.
-		(read_rc_file): Adapt to new defines.
-
-2022-06-28  Nick Clifton  <nickc@redhat.com>
-
-	Fix the display of the idnex values for DW_FORM_loclistx and DW_FORM_rnglistx.  Correct the display of .debug.loclists sections.
-		PR 29267
-		* dwarf.c (display_debug_rnglists): New function, broken out of..
-		(display_debug_ranges): ... here.
-		(read_and_display_attr_value): Correct calculation of index
-		displayed for DW_FORM_loclistx and DW_FORM_rnglistx.
-		* testsuite/binutils-all/x86-64/pr26808.dump: Update expected
-		output.
-
-2022-06-28  Jan Beulich  <jbeulich@suse.com>
-
-	ld/x86: skip p_align-1 tests with unsuitable compiler
-	When the compiler doesn't properly arrange for foo's alignment, there's
-	no point even trying these tests. Report the situation as a single
-	"unsupported" test.
-
-2022-06-28  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64: align plt_branch stubs
-	plt_branch stubs are similar to plt_call stubs in that they branch
-	via bctr.  Align them too.
-
-	bfd/
-		* elf64-ppc.c (ppc_size_one_stub): Align plt_branch stubs as for
-		plt_call stubs.
-	ld/
-		* testsuite/ld-powerpc/elfv2exe.d: Adjust for plt_branch changes.
-		* testsuite/ld-powerpc/notoc.d: Likewise.
-		* testsuite/ld-powerpc/notoc.wf: Likewise.
-		* testsuite/ld-powerpc/notoc3.d: Likewise.
-		* testsuite/ld-powerpc/pr23937.d: Likewise.
-
-2022-06-28  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64: plt_stub_pad
-		* elf64-ppc.c (plt_stub_pad): Simplify parameters and untangle
-		from plt_stub_size.
-		(ppc_size_one_stub): Call plt_stub_size before plt_stub_pad to
-		provide size.  Recalculate size if it might change.
-
-2022-06-28  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64: Tidy stub type changes
-	It made sense before I started using separate fields for main type and
-	sub type to add a difference in main type to the type (thus keeping
-	sub type unchanged).  Not so much now.
-
-		* elf64-ppc.c (ppc_merge_stub): Simplify stub type change.
-		(ppc_size_one_stub): Likewise.
-
-2022-06-28  Jiangshuai Li  <jiangshuai_li@c-sky.com>
-
-	gdb:csky add pseudo regs for float and vector regs
-	In the existing CSKY architecture, there are at most 32 floating
-	and 16 vector registers. Float registers's count can be configured
-	as 16 or 32. In the future, the vector registers's count may be
-	extended to 32.
-
-	The bit width of floating-point register is 64bits, and the bit
-	width of vector register is 128bit.
-
-	Special points: in fr0~fr15 and vr0~vr15, each FRx is the lower
-	64 bits of the corresponding VRx.
-
-	Here, we will split each floating-point and vector register to
-	32bits wide, add the corresponding pseudo registers, and finally
-	use them for the dwarf registers.
-
-	There are 128 pseudo registers in total, s0~s127, including:
-	1. s0 and s1 correspond to fr0, s4 and s5 correspond to fr1, and so on.
-	Every two separated pseudo registers correspond to a float register.
-	2. s0, s1, s2 and s3 correspond to vr0; s4, s5, s6 and s7 correspond to vr1,
-	and so on. Every four pseudo registers corresponds to a vector register.
-
-	Therefore, in s64~s127, there are general registers that are not actually
-	used. This part is to prepare for the expansion of vector registers to 32
-
-	Therefore, in s64~s127, half of the registers are actually unused. This
-	part is to prepare for the expansion of the vector register to 32.
-
-2022-06-28  Pekka Seppänen  <pexu@sourceware.mail.kapsi.fi>
-
-	PR29293, elfnn-aarch64.c: def_protected member unintialized
-		PR 29293
-		* elfnn-aarch64.c (elfNN_aarch64_link_hash_newfunc): Init def_protected.
-
-2022-06-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add 'Sstc' extension and its CSRs
-	This commit adds "stimecmp / vstimecmp" Extension (Sstc) and its CSRs.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Sstc'
-		extension to valid 'S' extension list.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for
-		'Sstc' extension. (riscv_csr_address): Add handling for new CSR
-		classes.
-		* testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
-		* testsuite/gas/riscv/csr.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (CSR_STIMECMP, CSR_STIMECMPH,
-		CSR_VSTIMECMP, CSR_VSTIMECMPH): New CSR macros.
-
-2022-06-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add 'Sscofpmf' extension with its CSRs
-	This commit adds Count Overflow and Mode-Based Filtering Extension
-	(Sscofpmf) and its CSRs.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Sscofpmf'
-		extension to valid 'S' extension list.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for
-		'Sscofpmf' extension. (riscv_csr_address): Add handling for new
-		CSR classes.
-		* testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
-		* testsuite/gas/riscv/csr.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (CSR_SCOUNTOVF, CSR_MHPMEVENT3H,
-		CSR_MHPMEVENT4H, CSR_MHPMEVENT5H, CSR_MHPMEVENT6H,
-		CSR_MHPMEVENT7H, CSR_MHPMEVENT8H, CSR_MHPMEVENT9H,
-		CSR_MHPMEVENT10H, CSR_MHPMEVENT11H, CSR_MHPMEVENT12H,
-		CSR_MHPMEVENT13H, CSR_MHPMEVENT14H, CSR_MHPMEVENT15H,
-		CSR_MHPMEVENT16H, CSR_MHPMEVENT17H, CSR_MHPMEVENT18H,
-		CSR_MHPMEVENT19H, CSR_MHPMEVENT20H, CSR_MHPMEVENT21H,
-		CSR_MHPMEVENT22H, CSR_MHPMEVENT23H, CSR_MHPMEVENT24H,
-		CSR_MHPMEVENT25H, CSR_MHPMEVENT26H, CSR_MHPMEVENT27H,
-		CSR_MHPMEVENT28H, CSR_MHPMEVENT29H, CSR_MHPMEVENT30H,
-		CSR_MHPMEVENT31H): New CSR macros.
-
-2022-06-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add 'Smstateen' extension and its CSRs
-	This commit adds State Enable Extension (Smstateen) and its CSRs.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Smstateen'
-		extension to valid 'S' extension list.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for
-		'Smstateen' extension. (riscv_csr_address): Add handling for
-		new CSR classes.
-		* testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
-		* testsuite/gas/riscv/csr.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (CSR_MSTATEEN0, CSR_MSTATEEN1,
-		CSR_MSTATEEN2, CSR_MSTATEEN3, CSR_SSTATEEN0, CSR_SSTATEEN1,
-		CSR_SSTATEEN2, CSR_SSTATEEN3, CSR_HSTATEEN0, CSR_HSTATEEN1,
-		CSR_HSTATEEN2, CSR_HSTATEEN3, CSR_MSTATEEN0H, CSR_MSTATEEN1H,
-		CSR_MSTATEEN2H, CSR_MSTATEEN3H, CSR_HSTATEEN0H, CSR_HSTATEEN1H,
-		CSR_HSTATEEN2H, CSR_HSTATEEN3H): New CSR macros.
-
-2022-06-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add new CSR feature gate handling (RV32,H)
-	To support feature gate like Smstateen && H, this commit adds certain
-	CSR feature gate handling.  It also changes how RV32-only CSRs are
-	handled for cleanliness.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (riscv_csr_address): Add CSR feature gate
-		handling for H.  Change handling on RV32.
-
-2022-06-28  Alan Modra  <amodra@gmail.com>
-
-	Re: Disable execstack and rwx segments warnings for MIPS targets.
-		PR 29263
-		* configure.ac: Fix typo.
-		* testsuite/ld-elf/elf.exp: Add mips to targets that need
-		--warn-execstack to pass first pr29072 test.
-
-2022-06-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-27  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: update bug numbers from Gnats to bugzilla
-	Some tests link to outdated bug numbers when an XFAIL or a KFAIL happen.
-
-	gdb.base/macscp.exp was referencing bug number 555, and the bug 7660
-	mentions that it used to be 555 on the Gnats system and seems to relate
-	to the issue at hand.
-
-	gdb.base/annota1.exp was referencing bug number 1270, and bug 8375
-	mentions being number 1270 on Gnats, and mentions annota1 specifically,
-	so it seemed pretty obvious.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build breaker with --enable-shared
-	When building gdb with --enable-shared, I run into:
-	...
-	ld: build/zlib/libz.a(libz_a-inffast.o): relocation R_X86_64_32S against \
-	  `.rodata' can not be used when making a shared object; recompile with -fPIC
-	ld: build/zlib/libz.a(libz_a-inflate.o): warning: relocation against \
-	  `inflateResetKeep' in read-only section `.text'
-	collect2: error: ld returned 1 exit status
-	make[3]: *** [libbfd.la] Error 1
-	...
-
-	This is a regression since commit a08bdb159bb ("[gdb/build] Fix gdbserver
-	build with -fsanitize=thread").
-
-	The problem is that a single case statement in configure is shared to handle
-	special requirements for both the host libiberty and host zlib, which has the
-	effect that only one is handled.
-
-	Fix this by handling libiberty and zlib each in its own case statement.
-
-	Build on x86_64-linux, with and without --enable-shared.
-
-	ChangeLog:
-
-	2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-		* configure.ac: Set extra_host_libiberty_configure_flags and
-		extra_host_zlib_configure_flags in separate case statements.
-		* configure: Regenerate.
-
-2022-06-27  Pedro Alves  <pedro@palves.net>
-
-	Make GDBserver abort on internal error in development mode
-	Currently, if GDBserver hits some internal assertion, it exits with
-	error status, instead of aborting.  This makes it harder to debug
-	GDBserver, as you can't just debug a core file if GDBserver fails an
-	assertion.  I've had to hack the code to make GDBserver abort to debug
-	something several times before.
-
-	I believe the reason it exits instead of aborting, is to prevent
-	potentially littering the filesystem of smaller embedded targets with
-	core files.  I think I recall Daniel Jacobowitz once saying that many
-	years ago, but I can't be sure.  Anyhow, that seems reasonable to me.
-
-	Since we nowadays have a distinction between development and release
-	modes, I propose to make GDBserver abort on internal error if in
-	development mode, while keeping the status quo when in release mode.
-
-	Thus, after this patch, in development mode, you get:
-
-	 $ ../gdbserver/gdbserver
-	 ../../src/gdbserver/server.cc:3711: A problem internal to GDBserver has been detected.
-	 captured_main: Assertion `0' failed.
-	 Aborted (core dumped)
-	 $
-
-	while in release mode, you'll continue to get:
-
-	 $ ../gdbserver/gdbserver
-	 ../../src/gdbserver/server.cc:3711: A problem internal to GDBserver has been detected.
-	 captured_main: Assertion `0' failed.
-	 $ echo $?
-	 1
-
-	I do not think that this requires a separate configure switch.
-
-	A "--target_board=native-extended-gdbserver" run on Ubuntu 20.04 ends
-	up with:
-
-			 === gdb Summary ===
-
-	 # of unexpected core files      29
-	 ...
-
-	for me, of which 8 are GDBserver core dumps, 7 more than without this
-	patch.
-
-	Change-Id: I6861e08ad71f65a0332c91ec95ca001d130b0e9d
-
-2022-06-27  Nick Clifton  <nickc@redhat.com>
-
-	Replace a run-time assertion failure with a warning message when parsing corrupt DWARF data.
-		PR 29289
-		* dwarf.c (display_debug_names): Replace assert with a warning
-		message.
-
-	Fix NULL pointer indirection when parsing corrupt DWARF data.
-		PR 29290
-		* dwarf.c (read_and_display_attr_value): Check that debug_info_p
-		is set before dereferencing it.
-
-	Have gold's File_read::do_read() function check the start parameter
-		PR 23765
-		* fileread.cc (File_read::do_read): Check start parameter before
-		computing number of bytes to read.
-
-2022-06-27  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Unwind Non-Secure callbacks from Secure
-	Without this changeset, the unwinding doesn't take into account
-	Non-Secure to Secure stack unwinding enablement status and
-	doesn't choose the proper SP to do the unwinding.
-
-	This patch only unwinds the stack when Non-Secure to Secure
-	unwinding is enabled, previous SP is set w/r to the current mode
-	(Handler -> msp_s, Thread -> psp_s) and then the Secure stack is
-	unwound.  Ensure thumb bit is set in PSR when needed.  Also, drop
-	thumb bit from PC if set.
-
-2022-06-27  Nick Clifton  <nickc@redhat.com>
-
-	Stop bogus warnings about DWARF indexed string offsets being too big.
-		* dwarf.c (fetch_indexed_string): Do not use length of first table
-		in string section as the length of every table in the section.
-		* testsuite/binutils-all/pr26112.r: Update expected output.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle older python in gdb.python/py-send-packet.py
-	With python 3.4, I run into:
-	...
-	Traceback (most recent call last):^M
-	  File "<string>", line 1, in <module>^M
-	  File
-	  "outputs/gdb.python/py-send-packet/py-send-packet.py", line 128, in \
-	    run_set_global_var_test^M
-	    res = conn.send_packet(b"X%x,4:\x02\x02\x02\x02" % addr)^M
-	TypeError: Could not convert Python object: b'X%x,4:\x02\x02\x02\x02'.^M
-	Error while executing Python code.^M
-	...
-	while with python 3.6 this works fine.
-
-	The type of addr is <class 'gdb.Value'>, so the first thing to try is whether
-	changing it into a string works:
-	...
-	    addr_str = "%x" % addr
-	    res = conn.send_packet(b"X%s,4:\x02\x02\x02\x02" % addr_str)
-	...
-	which gets us the more detailed:
-	...
-	TypeError: unsupported operand type(s) for %: 'bytes' and 'str'
-	...
-
-	Fix this by avoiding the '%' operator in the byte literal, and use instead:
-	...
-	def xpacket_header (addr):
-	    return ("X%x,4:" % addr).encode('ascii')
-	  ...
-	    res = conn.send_packet(xpacket_header(addr) + b"\x02\x02\x02\x02")
-	...
-
-	Tested on x86_64-linux, with python 3.4 and 3.6, and a backported version was
-	tested on the gdb-12-branch in combination with python 2.7.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.reverse/i387-env-reverse.exp for -pie
-	When running test-case gdb.reverse/i387-env-reverse.exp for x86_64-linux with
-	target board unix/-m32/-fPIE/-pie, we run into:
-	...
-	(gdb) PASS: gdb.reverse/i387-env-reverse.exp: push st0
-	info register eax^M
-	eax            0x56550000          1448411136^M
-	(gdb) FAIL: gdb.reverse/i387-env-reverse.exp: verify eax == 0x8040000
-	...
-
-	The problem is that the tested instruction (fstsw) only sets $ax, not $eax.
-
-	Fix this by verifying $ax instead of $eax.
-
-	Tested on x86_64-linux with target boards unix/-m32 and unix/-m32/-fPIE/-pie.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Enable some test-cases for x86_64 -m32
-	When trying to run test-case gdb.reverse/i387-env-reverse.exp for x86_64-linux
-	with target board unix/-m32, it's skipped.
-
-	Fix this by using is_x86_like_target instead of istarget "i?86-*linux*".
-
-	This exposes a number of duplicates, fix those by making the test names unique.
-
-	Likewise in a couple of other test-cases.
-
-	Tested on x86_64-linux with target boards unix/-m32.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Workaround unnecessary .s file with gfortran 4.8
-	After running test-case gdb.fortran/namelist.exp with gfortran 4.8.5, I'm left
-	with:
-	...
-	$ git sti
-	On branch master
-	Your branch is up to date with 'origin/master'.
-
-	Untracked files:
-	  (use "git add <file>..." to include in what will be committed)
-	        gdb/testsuite/lib/compiler.s
-
-	nothing added to commit but untracked files present (use "git add" to track)
-	...
-
-	We're running into PR gcc/60447, which was fixed in gcc 4.9.0.
-
-	Workaround this by first copying the source file to the temp dir, such that
-	the .s file is left there instead:
-	...
-	$ ls build/gdb/testsuite/temp/<runtest pid>/
-	compiler.c  compiler.F90  compiler.s
-	...
-
-	Tested on x86_64-linux.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Skip gdb.fortran/namelist.exp for gfortran 4.8
-	The test-case gdb.fortran/namelist.exp uses a gfortran feature (emitting
-	DW_TAG_namelist in the debug info) that has been supported since gfortran 4.9,
-	see PR gcc/37132.
-
-	Skip the test for gfortran 4.8 and earlier.  Do this using gcc_major_version,
-	and update it to be able to handle "gcc_major_version {gfortran-*} f90".
-
-	Tested on x86_64-linux, with gfortran 4.8.5, 7.5.0, and 12.1.1.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix parsing of .debug_str_offsets header
-	When running test-case gdb.dwarf2/fission-mix.exp with target board dwarf64
-	and gcc-12 (defaulting to DWARF5), I run into:
-	...
-	(gdb) break func2^M
-	Offset from DW_FORM_GNU_str_index or DW_FORM_strx pointing outside of \
-	  .debug_str.dwo section in CU at offset 0x0 [in module fission-mix]^M
-	(gdb) FAIL: gdb.dwarf2/fission-mix.exp: break func2
-	...
-
-	The .debug_str_offsets section has version 5, so as per the standard it has
-	it's own header, with initial length and version:
-	...
-	Contents of the .debug_str_offsets.dwo section (loaded from fission-mix2.dwo):
-
-	    Length: 0x1c
-	    Version: 0x5
-	       Index   Offset [String]
-	           0        0 build/gdb/testsuite
-	           1       33 GNU C17
-	           2       8f src/gdb/testsuite/gdb.dwarf2/fission-mix-2.c
-	...
-
-	But when trying to read the string offset at index 0 in the table (which
-	is 0), we start reading at offset 8, which points in the header, at the last
-	4 bytes of the initial length (it's 12 bytes because of 64-bit dwarf), as well
-	at the 2-byte version field and 2 bytes of padding, so we get:
-	...
-	(gdb) p /x str_offset
-	$1 = 0x500000000
-	...
-	which indeed is an offset that doesn't fit in the .debug_str section.
-
-	The offset 8 is based on reader->cu->header.addr_size:
-	...
-	static const char *
-	read_dwo_str_index (const struct die_reader_specs *reader, ULONGEST str_index)
-	{
-	 ULONGEST str_offsets_base = reader->cu->header.version >= 5
-	                             ? reader->cu->header.addr_size : 0;
-	...
-	which doesn't in look in agreement with the standard.
-
-	Note that this happens to give the right answer for 32-bit dwarf and
-	addr_size == 8, because then we have header size ==
-	(initial length (4) + version (2) + padding (2)) == 8.
-
-	Conversely, for 32-bit dwarf and addr_size == 4 (target board unix/-m32)
-	we run into a similar problem.  It just happens to not trigger the warning,
-	instead we get the wrong strings, like "func2" for DW_AT_producer and
-	"build/gdb/testsuite" for DW_AT_name of the DW_TAG_compile_unit DIE.
-
-	Fix this by parsing the .debug_str_offsets header in read_dwo_str_index.
-
-	Add a FIXME that we should not parse this for every call.
-
-	Tested on x86_64-linux.
-
-2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix gdbserver build with -fsanitize=thread
-	[ Copied from gcc commit 153689603fd ("[gdb/build] Fix gdbserver build with
-	-fsanitize=thread"). ]
-
-	When building gdbserver with -fsanitize=thread (added to CFLAGS/CXXFLAGS) we
-	run into:
-	...
-	ld: ../libiberty/libiberty.a(safe-ctype.o): warning: relocation against \
-	  `__tsan_init' in read-only section `.text'
-	ld: ../libiberty/libiberty.a(safe-ctype.o): relocation R_X86_64_PC32 \
-	  against symbol `__tsan_init' can not be used when making a shared object; \
-	  recompile with -fPIC
-	ld: final link failed: bad value
-	collect2: error: ld returned 1 exit status
-	make[1]: *** [libinproctrace.so] Error 1
-	...
-	which looks similar to what is described in commit 78e49486944 ("[gdb/build]
-	Fix gdbserver build with -fsanitize=address").
-
-	The gdbserver component builds a shared library libinproctrace.so, which uses
-	libiberty and therefore requires the pic variant.  The gdbserver Makefile is
-	setup to use this variant, if available, but it's not there.
-
-	Fix this by listing gdbserver in the toplevel configure alongside libcc1, as a
-	component that needs the libiberty pic variant, setting:
-	...
-	extra_host_libiberty_configure_flags=--enable-shared
-	...
-
-	Tested on x86_64-linux.
-
-	ChangeLog:
-
-	2022-06-27  Tom de Vries  <tdevries@suse.de>
-
-		* configure.ac: Build libiberty pic variant for gdbserver.
-		* configure: Regenerate.
-
-2022-06-27  Nick Clifton  <nickc@redhat.com>
-
-	Disable execstack and rwx segments warnings for MIPS targets.
-		PR 29263
-		* configure.ac: Move HPPA specific code from here...
-		* configure.tgt: ... to here.  Add similar code for MIPS.
-		Move code for CRIS, MIPS and HPPA to block at start of file.
-		* configure: Regenerate.
-
-2022-06-27  Jan Beulich  <jbeulich@suse.com>
-
-	bfd: prune config.bfd's setting of targ_archs
-	The final "match all" case can take care of a few explicit entries:
-	Purge those. Also move s12z* into proper position (the table is
-	otherwise sorted, after all).
-
-2022-06-27  Jan Beulich  <jbeulich@suse.com>
-
-	drop XC16x bits
-	Commit 04f096fb9e25 ("Move the xc16x target to the obsolete list") moved
-	the architecture from the "obsolete but still available" to the
-	"obsolete / support removed" list in config.bfd, making the architecture
-	impossible to enable (except maybe via "enable everything" options").
-
-	Note that I didn't touch */po/*.po{,t} on the assumption that these
-	would be updated by some (half)automatic means.
-
-2022-06-27  Bhuvanendra Kumar N  <Bhuvanendra.KumarN@amd.com>
-
-	Fix location list offset address dump under DW_AT_location (dwarf-5)
-	For clang compiled objects with dwarf-5, location list offset address dump
-	under DW_AT_location is corrected, where DW_FORM_loclistx is used. While
-	dumping the location list offset, the address dumped is wrong where it was
-	refering to .debug_addr instead of .debug_loclists
-
-	      * dwarf.c (fetch_indexed_value): Add base_address as parameter and
-	      use it to access the section offset.
-	      (read_and_display_attr_value): Handle DW_FORM_loclistx form separately.
-	      Pass loclists_base to fetch_indexed_value().
-
-2022-06-27  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 .branch_lt address
-	.branch_lt is really an extension of .plt, as is .iplt.  We'd like all
-	of the PLT sections to be fixed relative to .TOC. after stub sizing,
-	because changes in offset to PLT entries might mean a change in stub
-	sizes.  When -z relro, the relro layout does this by laying out
-	sections from the end of the relro segment.  So for example, a change
-	in .eh_frame (which happens after stub sizing) will keep the same GOT
-	to PLT offset when -z relro.  Not so when -z norelro, because then the
-	usual forward layout of section is done and .got is more aligned than
-	.branch_lt.
-
-		* emulparams/elf64ppc.sh: Set .branch_lt address fixed relative
-		to .got.
-		* testsuite/ld-powerpc/elfv2exe.d: Adjust to suit.
-
-2022-06-27  Alan Modra  <amodra@gmail.com>
-
-	-z relro relaxation and ld script SIZEOF
-	A number of targets use assignments like:
-	. = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .);
-	(from i386) in linker scripts to put the end of the relro segment past
-	the header in .got.plt.  Examination of testcases like those edited by
-	this patch instead sees the end of the relro segment being placed at
-	the start of .got.plt.  For the i386 pie1 test:
-
-	  [ 9] .got.plt          PROGBITS        00002000 001000 00000c 04  WA  0   0  4
-
-	  GNU_RELRO      0x000f90 0x00001f90 0x00001f90 0x00070 0x00070 R   0x1
-
-	A map file shows:
-
-	.dynamic        0x0000000000001f90       0x70
-	 *(.dynamic)
-	 .dynamic       0x0000000000001f90       0x70 tmpdir/pie1.o
-	                0x0000000000001f90                _DYNAMIC
-
-	.got            0x0000000000002000        0x0
-	 *(.got)
-	 .got           0x0000000000002000        0x0 tmpdir/pie1.o
-	 *(.igot)
-	                0x0000000000002ff4                . = DATA_SEGMENT_RELRO_END (., (SIZEOF (.got.plt) >= 0xc)?0xc:0x0)
-
-	.got.plt        0x0000000000002000        0xc
-	 *(.got.plt)
-	 .got.plt       0x0000000000002000        0xc tmpdir/pie1.o
-	                0x0000000000002000                _GLOBAL_OFFSET_TABLE_
-
-	The DATA_SEGMENT_RELRO_END value in the map file is weird too.  All of
-	this is triggered by SIZEOF (.got.plt) being evaluated wrongly as
-	zero.  Fix it by taking into account the action of
-	lang_reset_memory_regions during relaxation.
-
-		* ldexp.c (fold_name <SIZEOF>): Use rawsize if size has been reset.
-		* ldlang.c (lang_size_sections_1): Don't reset processed_vma here.
-		* testsuite/ld-i386/pie1.d: Adjust to suit.
-		* testsuite/ld-x86-64/pr20830a.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a.d: Likewise.
-		* testsuite/ld-x86-64/pr21038b.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c.d: Likewise.
-
-2022-06-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-25  Fangrui Song  <i@maskray.me>
-
-	arm: Define elf_backend_extern_protected_data to 0 [PR 18705]
-	Similar to commit 4fb55bf6a9606eb7b626c30a9f4e71d6c2d4fbb2 for aarch64.
-
-	Commit b68a20d6675f1360ea4db50a9835c073675b9889 changed ld to produce
-	R_ARM_GLOB_DAT but that defeated the purpose of protected visibility
-	as an optimization.  Restore the previous behavior (which matches
-	ld.lld) by defining elf_backend_extern_protected_data to 0.
-
-2022-06-25  Tom Tromey  <tom@tromey.com>
-
-	Fix corrupt DWARF in dw2-double-set-die-type
-	The dw2-double-set-die-type.exp test case caused an AddressSanitizer
-	failure in the new DWARF scanner.
-
-	The immediate cause was bad DWARF in the test -- in particular, the
-	the sibling attribute here:
-
-	     <2><181>: Abbrev Number: 33 (DW_TAG_subprogram)
-		<182>   DW_AT_external    : 1
-		<183>   DW_AT_name        : address
-		<18b>   DW_AT_type        : <0x171>
-		<18f>   DW_AT_declaration : 1
-		<190>   DW_AT_sibling     : <0x1a1>
-	    ...
-	     <1><1a1>: Abbrev Number: 23 (DW_TAG_pointer_type)
-		<1a2>   DW_AT_byte_size   : 4
-		<1a3>   DW_AT_type        : <0x1a7>
-
-	...points to a "sibling" DIE that is at a different child depth.
-
-	Because this test case doesn't really require sibling attributes, this
-	patch fixes the problem by removing them from the test.
-
-	Note that gdb is not generally robust against malformed DWARF.
-	Detecting and compensating for this problem would probably be
-	expensive and, IMO, is better left to some (still hypothetical) DWARF
-	linter.
-
-2022-06-25  Tom Tromey  <tom@tromey.com>
-
-	Fix end of CU calculation in cooked_indexer::index_dies
-	cooked_indexer::index_dies incorrect computes the end of the current
-	CU in the .debug_info.  This isn't readily testable without writing
-	intentionally corrupt DWARF, but it's apparent through observation: it
-	is currently based on 'info_ptr', which does not always point to the
-	start of the CU.  This patch fixes the expression.  Tested on x86-64
-	Fedora 34.
-
-2022-06-25  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Implement loongarch_linux_syscall_next_pc()
-	When FRAME is at a syscall instruction, return the PC of the next
-	instruction to be executed.
-
-	gdb: LoongArch: Define register numbers and clean up code
-	This commit defines register numbers of various important registers,
-	we can use them directly in the related code, and also clean up some
-	code to make them more clear and readable.
-
-2022-06-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-24  Pedro Alves  <pedro@palves.net>
-
-	Eliminate TUI/CLI observers duplication
-	For historical reasons, the CLI and the TUI observers are basically
-	exact duplicates, except for the downcast:
-
-	 cli:
-	       struct cli_interp *cli = as_cli_interp (interp);
-	 tui:
-	       struct interp *tui = as_tui_interp (interp);
-
-	and how they get at the interpreter's ui_out:
-
-	 cli:
-	       cli->cli_uiout
-	 tui:
-	       tui->interp_ui_out ()
-
-	Since interp_ui_out() is a virtual method that also works for the CLI
-	interpreter, and, both the CLI and the TUI interpreters inherit from
-	the same base class (cli_interp_base), we can convert the CLI
-	observers to cast to cli_interp_base instead and use interp_ui_out()
-	too.  With that, the CLI observers will work for the TUI interpreter
-	as well.  This lets us completely eliminate the TUI observers.  That's
-	what this commit does.
-
-	Change-Id: Iaf6cf12dfa200ed3ab203a895a72b69dfedbd6e0
-
-2022-06-24  Pedro Alves  <pedro@palves.net>
-
-	Revert "Delete delete_thread_silent"
-	Turns out we'll be gaining a new use of this function very soon, the
-	incoming AMDGPU port needs it.  Let's add it back, as it isn't really
-	hurting anything.
-
-	This reverts commit 39b8a8090ed7e8967ceca3655aa5f3a2ae91219d.
-
-2022-06-24  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Update the value of active sp when base sp changes
-	For Arm Cortex-M33 with security extensions, there are 4 different
-	stacks pointers (msp_s, msp_ns, psp_s, psp_ns).
-	When plain "sp" is updated during unwinding of the stack, the active
-	stack pointer of the 4 stack pointers needs to be kept in sync.
-
-2022-06-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove unneeded calls to get_compiler_info
-	It is not necessary to call get_compiler_info before calling
-	test_compiler_info, and, after recent commits that removed setting up
-	the gcc_compiled, true, and false globals from get_compiler_info,
-	there is now no longer any need for any test script to call
-	get_compiler_info directly.
-
-	As a result every call to get_compiler_info outside of lib/gdb.exp is
-	redundant, and this commit removes them all.
-
-	There should be no change in what is tested after this commit.
-
-2022-06-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove global gcc_compiled from gdb.exp
-	After this commit the gcc_compiled global is no longer exported from
-	lib/gdb.exp.  In theory we could switch over all uses of gcc_compiled
-	to instead call test_compiler_info directly, however, I have instead
-	added a new proc to gdb.exp: 'is_c_compiler_gcc'.  I've then updated
-	the testsuite to call this proc instead of using the global.
-
-	Having a new proc specifically for this task means that we have a
-	single consistent pattern for detecting gcc.  By wrapping this logic
-	within a proc that calls test_compiler_info, rather than using the
-	global, means that test scripts don't need to call get_compiler_info
-	before they read the global, simply calling the new proc does
-	everything in one go.
-
-	As a result I've been able to remove the get_compiler_info calls from
-	all the test scripts that I've touched in this commit.
-
-	In some of the tests e.g. gdb.dwarf2/*.exp, the $gcc_compiled flag was
-	being checked at the top of the script to decide if the whole script
-	should be skipped or not.  In these cases I've called the new proc
-	directly and removed all uses of gcc_compiled.
-
-	In other cases, e.g. most of the gdb.base scripts, there were many
-	uses of gcc_compiled.  In these cases I set a new global gcc_compiled
-	near the top of the script, and leave the rest of the script
-	unchanged.
-
-	There should be no changes in what is tested after this commit.
-
-2022-06-24  Pedro Alves  <pedro@palves.net>
-
-	Include count of unexpected core files in gdb.sum summary
-	If GDB, GDBserver, a testcase program, Valgrind, etc. unexpectedly
-	crash while running the GDB testsuite, and you've setup your machine
-	such that core files are dumped in the current directory instead of
-	being shoved somewhere by abrt, apport, or similar (as you should for
-	proper GDB testing), you'll end up with an unexpected core file in the
-	$build/gdb/testsuite/ directory.
-
-	It can happen that GDB, GDBserver, etc. even crashes _after_ gdb_exit,
-	during teardown, and thus such a crash won't be noticed by looking at
-	the gdb.sum file at all.  This commit aims at improving that, by
-	including a new "unexpected core files" line in the testrun summary.
-
-	For example, here's what I get on x86-64 Ubuntu 20.04, with this
-	patch:
-
-			 === gdb Summary ===
-
-	 # of unexpected core files      12          << new info
-	 # of expected passes            107557
-	 # of unexpected failures        35
-	 # of expected failures          77
-	 # of unknown successes          2
-	 # of known failures             114
-	 # of untested testcases         31
-	 # of unsupported tests          139
-
-	I have my core pattern setup like this:
-
-	 $ cat /proc/sys/kernel/core_pattern
-	 core.%e.%p.%h.%t
-
-	That's:
-
-	 %e: executable filename
-	 %p: pid
-	 %h: hostname
-	 %t: UNIX time of dump
-
-	and so I get these core files:
-
-	 $ ls -1 testsuite/core.*
-	 testsuite/core.connect-with-no.216191.nelson.1656002431
-	 testsuite/core.connect-with-no.217729.nelson.1656002431
-	 testsuite/core.gdb.194247.nelson.1656002423
-	 testsuite/core.gdb.226014.nelson.1656002435
-	 testsuite/core.gdb.232078.nelson.1656002438
-	 testsuite/core.gdb.352268.nelson.1656002441
-	 testsuite/core.gdb.4152093.nelson.1656002337
-	 testsuite/core.gdb.4154515.nelson.1656002338
-	 testsuite/core.gdb.4156668.nelson.1656002339
-	 testsuite/core.gdb.4158871.nelson.1656002341
-	 testsuite/core.gdb.468495.nelson.1656002444
-	 testsuite/core.vgdb.4192247.nelson.1656002366
-
-	where we can see that GDB crashed a number of times, but also
-	Valgrind's vgdb, and a couple testcase programs.  Neither of which is
-	good.
-
-	If your core_pattern is just "core" (but why??), then I guess that you
-	may end up with just a single core file in testsuite/.  Still, that is
-	one core file too many.
-
-	Above, we see a couple cores for "connect-with-no", which are the
-	result of gdb.server/connect-with-no-symbol-file.exp.  This is a case
-	mentioned above -- while the program crashed, that happens during
-	testcase teardown, and it goes unnoticed (without this commit) by
-	gdb.sum results.  Vis:
-
-	 $ make check TESTS="gdb.server/connect-with-no-symbol-file.exp"
-	 ...
-			 === gdb Summary ===
-
-	 # of unexpected core files      2
-	 # of expected passes            8
-
-	 ...
-	 $
-
-	The tests fully passed, but still the testcase program crashed
-	somehow:
-
-	 $ ls -1 testsuite/core.*
-	 testsuite/core.connect-with-no.941561.nelson.1656003317
-	 testsuite/core.connect-with-no.941682.nelson.1656003317
-
-	Against --target_board=native-extended-gdbserver it's even worse.  I
-	get:
-
-	 # of unexpected core files      26
-
-	and note that when GDBserver hits an assertion failure, it exits with
-	error, instead of crashing with SIGABRT.  I think that should be
-	changed, at least on development builds, but that would be for another
-	patch.  After such patch, I suspect the number of unexpected cores
-	will be higher, as there are likely teardown GDBserver assertions that
-	we're not noticing.
-
-	I decided to put this new info in the "gdb Summary" section, as that's
-	a place people already are used to looking at, either when looking at
-	the tail of gdb.sum, or when diffing gdb.sum files, and we've already
-	extended this section before, to include the count of DUPLICATE and
-	PATH problems, so there's precedent.
-
-	Implementation-wise, the new line is appended after DejaGnu is
-	finished, with a shell script that is invoked by the Makefile.  It is
-	done this way so that serial and parallel testing work the same way.
-	My initial cut at an implementation was in TCL, straight in
-	testsuite/lib/check-test-names.exp, where DUPLICATES and PATH are
-	handled, like so:
-
-	 @@ -148,6 +159,10 @@ namespace eval ::CheckTestNames {
-		     $counts(paths,$which)
-		 maybe_show_count "# of duplicate test names\t" \
-		     $counts(duplicates,$which)
-	 +
-	 +       set cores [glob -nocomplain -directory $::objdir core*]
-	 +       maybe_show_count "# of unexpected core files\t" \
-	 +           [llength $cores]
-	      }
-
-	But that would only work for serial testing, as in parallel testing,
-	the final gdb.sum is generated by aggregating the results of all the
-	individual gdb.sum files, and dg-extract-results.sh doesn't know about
-	our new summary line.  And I don't think that dg-extract-results.sh
-	should be taught about it, since the count of core files is not
-	something that we want to count many times, once per testcase, and
-	then add up the subcounts at the end.  Every time we count the core
-	files, we're already counting the final count.
-
-	I considered using the Tcl implementation in serial mode, and the
-	script approach for parallel testing, but that has the obvious
-	downside of implementing and maintaining the same thing twice.  In the
-	end, I settled on the script approach for serial mode too, which
-	requires making the "check-single" rule print the tail end of the
-	gdb.sum file, with a side effect being that if you look at the
-	terminal after a run (instead of at the gdb.sum file), you'll see the
-	"gdb Summary" section twice, once without the unexpected core lines
-	printed, and then another with.  IMO, this isn't an issue; when
-	testing in parallel mode, if you look at the terminal after "make -jN
-	check", you'll also see multiple "gdb Summary" sections printed.
-
-	Change-Id: I190b8d41856d49ad143854b6e3e6ccd7caa04491
-
-2022-06-24  Pedro Alves  <pedro@palves.net>
-
-	Improve core file path detection & put cores in output dir
-	After a testrun, I noticed that I have some kernel-produced cores for
-	testcase programs, under build/gdb/testsuite/, which shouldn't be
-	there:
-
-	 $ ls -1 testsuite/core.*
-	 testsuite/core.annota1.1274351.nelson.1656004407
-	 testsuite/core.annota3.1288474.nelson.1656004414
-	 testsuite/core.exitsignal.1240674.nelson.1656004391
-
-	I have my core pattern setup like this:
-
-	 $ cat /proc/sys/kernel/core_pattern
-	 core.%e.%p.%h.%t
-
-	That's:
-
-	 %e: executable filename
-	 %p: pid
-	 %h: hostname
-	 %t: UNIX time of dump
-
-	so it's easy to tell which program produced the core from the core
-	file name.
-
-	From above, we can tell that the corresponding testcases are
-	gdb.base/annota1.exp, gdb.base/annota3.exp and
-	gdb.base/exitsignal.exp.
-
-	At least gdb.base/annota1.exp and gdb.base/annota3.exp have code in
-	them to delete the core file.  However, that isn't working for me,
-	because said code only looks for cores named exactly either "core" or
-	"core.PID", and my core_pattern doesn't match that.
-
-	Another issue I noticed, is that I have not been running
-	gdb.base/bigcore.exp, for a similar reason.  I get:
-
-	  Program terminated with signal SIGABRT, Aborted.
-	  The program no longer exists.
-	  (gdb) PASS: gdb.base/bigcore.exp: signal SIGABRT
-	  UNTESTED: gdb.base/bigcore.exp: can't generate a core file
-
-	But I actually have a core file under the testcase's output dir:
-
-	 $ find . -name "core.*"
-	 ./testsuite/outputs/gdb.base/bigcore/core.bigcore.2306705.nelson.1656005213
-	 $
-
-	This commit fixes these things, by adding a find_core_file routine
-	that searches core files in a way that works with my core pattern as
-	well.  This then also adds a convenience remove_core routine as a
-	wrapper around find_core_file that removes the found core file.
-
-	In addition, it changes some testcases that expect to have their
-	program dump core, to switch the inferior's cwd to the testcase's
-	output dir, so that the core is dumped there instead of in
-	build/gdb/testsuite/.  Some testcases were already doing that, but not
-	all.  The idea is that any core file dumped in build/gdb/testsuite/ is
-	an unexpected core file.  The next patch will add a count of such
-	unexpected core files to gdb.sum.
-
-	Another change is that the directory changing is now done with "set
-	cwd" instead of with "cd".  "set cwd" only affects the inferior cwd,
-	while "cd" affects GDB's cwd too.  By using "set cwd" instead of "cd",
-	if GDB dumps core in these testcases, the GDB core dump will still end
-	up in build/gdb/testsuite/, and can thus be detected as an unexpected
-	core.
-
-	Change-Id: I45068f21ffd4814350aaa8a3cc65cad5e3107607
-
-2022-06-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make use of RAII in run_inferior_call
-	In passing I noticed that there are three local variables in
-	run_inferior_call that are used to save, and then restore some state,
-	I think these could all be replaced with a RAII style scoped_restore
-	instead.
-
-	Of the three locals that I've changed, the only one that I believe is
-	now restored in a different location is ui::async, before this commit
-	the async field was restored after a call to either delete_file_handle
-	or ui_register_input_event_handler, and after this commit, the field
-	is restored before these calls.  However, I don't believe that either
-	of these functions depend on the value of the async field, so I
-	believe the commit is fine.
-
-	Tested on x86-64/Linux passes with no regressions.
-
-2022-06-24  Pedro Alves  <pedro@palves.net>
-
-	Delete delete_thread_silent
-	delete_thread_silent is no longer used anywhere.  Delete it.
-
-	Change-Id: Iafcec12339861d5ab2e29c14d7b1f884c9e11c0f
-
-2022-06-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-23  Tom Tromey  <tromey@adacore.com>
-
-	Don't declare cli_set_logging
-	cli_set_logging is declared but not defined.  It's probably a leftover
-	from whenever interpreters were changed to use inheritance.  This
-	patch removes the declaration.  Tested by grep and rebuilding.
-
-	Use PyBool_FromLong
-	I noticed a few spots that were explicitly creating new references to
-	Py_True or Py_False.  It's simpler here to use PyBool_FromLong, so
-	this patch changes all the places I found.
-
-2022-06-23  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64: fix assertion in ppc_build_one_stub with -Os code
-	save_res stubs aren't written in ppc_build_one_stub, their offsets
-	(which are zero) should not be checked.
-
-		* elf64-ppc.c (ppc_build_one_stub): Don't check save_res offsets.
-
-2022-06-23  Alan Modra  <amodra@gmail.com>
-
-	Re: PowerPC64: stub debug dump
-	Let's show the current stub as well as the previous one.  Of interest
-	is the current offset and a new field, id.  Check that the build
-	hash table traversal is in the same order as sizing traversal too.
-
-		* elf64-ppc.c (struct ppc_stub_hash_entry): Add id.
-		(struct ppc_link_hash_table): Add stub_id.
-		(stub_hash_newfunc): Init id and symtype.
-		(dump_stub): New function, extracted from..
-		(dump_previous_stub): ..here.  Deleted.
-		(ppc_build_one_stub): Sanity check stub id as well as offset.
-		Show current stub as well as previous.
-		(ppc_size_one_stub): Set stub id.
-		(ppc64_elf_size_stubs): Init stub_id before traversal.
-		(ppc64_elf_build_stubs): Likewise.
-
-2022-06-23  Fangrui Song  <maskray@google.com>
-
-	aarch64: Allow PC-relative relocations against protected STT_FUNC for -shared
-	    __attribute__((visibility("protected"))) void *foo() {
-	      return (void *)foo;
-	    }
-
-	gcc -fpic -shared -fuse-ld=bfd fails with the confusing diagnostic:
-
-	    relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `foo' which may bind externally can not be used when making a shared object; recompile with -fPIC
-
-	Call _bfd_elf_symbol_refs_local_p with local_protected==true to suppress
-	the error.  The new behavior matches gold and ld.lld.
-
-	Note: if some code tries to use direct access relocations to take the
-	address of foo (likely due to -fno-pic), the pointer equality will
-	break, but the error should be reported on the executable link, not on
-	the innocent shared object link.  glibc 2.36 will give a warning at
-	relocation resolving time.
-
-2022-06-23  Fangrui Song  <maskray@google.com>
-
-	aarch64: Define elf_backend_extern_protected_data to 0 [PR 18705]
-	Follow-up to commit 90b7a5df152a64d2bea20beb438e8b81049a5c30
-	("aarch64: Disallow copy relocations on protected data").
-
-	Commit 32f573bcb3aaa1c9defcad79dbb5851fcc02ae2d changed ld to produce
-	R_AARCH64_GLOB_DAT but that defeated the purpose of protected visibility
-	as an optimization.  Restore the previous behavior (which matches
-	ld.lld) by defining elf_backend_extern_protected_data to 0.
-
-2022-06-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-22  Tom Tromey  <tromey@adacore.com>
-
-	Use std::string for interpreter_p
-	The global interpreter_p is a manually-managed 'char *'.  This patch
-	changes it to be a std::string instead, and removes some erroneous
-	comments.
-
-	Move mi_interpreter to mi-interp.h
-	I noticed that touching interps.h caused a lot of recompilation.  I
-	tracked this down to mi-common.h including this file.  This patch
-	moves the MI interpreter to mi-interp.h, which cuts down on
-	recompilation when modifying interps.h.
-
-	Use unique_xmalloc_ptr in interp
-	This changes interp::m_name to be a unique_xmalloc_ptr, removing some
-	manual memory management.  It also cleans up the initialization of the
-	'inited' member, and moves the 'private:' and 'public:' keywords to
-	their proper spots.
-
-2022-06-22  Fangrui Song  <i@maskray.me>
-
-	aarch64: Disallow copy relocations on protected data
-	If an executable has copy relocations for extern protected data, that
-	can only work if the shared object containing the definition is built
-	with assumptions (a) the compiler emits GOT-generating relocations (b)
-	the linker produces R_*_GLOB_DAT instead of R_*_RELATIVE.  Otherwise the
-	shared object uses its own definition directly and the executable
-	accesses a stale copy.  Note: the GOT relocations defeat the purpose of
-	protected visibility as an optimization, and it turns out this never
-	worked perfectly.
-
-	glibc 2.36 will warn on copy relocations on protected data.  Let's
-	produce a warning at link time, matching ld.lld which has been used on
-	many aarch64 OSes.
-
-	Note: x86 requires GNU_PROPERTY_NO_COPY_ON_PROTECTED to have the error.
-	This is to largely due to GCC 5's "x86-64: Optimize access to globals in
-	PIE with copy reloc" which started to use direct access relocations for
-	external data symbols in -fpie mode.
-
-	GCC's aarch64 port does not have the change.  Nowadays with most builds
-	switching to -fpie/-fpic, aarch64 mostly doesn't need to worry about
-	copy relocations.  So for aarch64 we simply don't check
-	GNU_PROPERTY_NO_COPY_ON_PROTECTED.
-
-2022-06-22  Kumar N, Bhuvanendra  <Kavitha.Natarajan@amd.com>
-
-	Binutils support for split-dwarf and dwarf-5
-		* dwarf.c (fetch_indexed_string): Added new parameter
-		str_offsets_base to calculate the string offset.
-		(read_and_display_attr_value): Read DW_AT_str_offsets_base
-		attribute.
-		(process_debug_info): While allocating memory and initializing
-		debug_information, do it for do_debug_info also, if its true.
-		(load_separate_debug_files): Load .debug_str_offsets if exists.
-		* dwarf.h (struct debug_info): Add str_offsets_base field.
-
-2022-06-22  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Reorder the prefixed extensions which are out of order.
-	This patch has been pending for almost a year...  However, I noticed that
-	llvm can already re-order the extensions, even if they are out of orders.
-	Not really sure if they can also re-order the single letter extensions,
-	but at least we can do this for the multi-letter extensions in binutils.
-
-	bfd/
-	    * elfxx-riscv.c (riscv_parse_prefixed_ext): Removed the code which are
-	    used to check the prefixed extension orders.
-	gas/
-	    * testsuite/gas/riscv/march-fail-order-x-z.d: Removed since we will help
-	    tp reorder the prefixed extensions for now.
-	    * testsuite/gas/riscv/march-fail-order-x-z.l: Likewise.
-	    * testsuite/gas/riscv/march-fail-order-x.d: Likewise.
-	    * testsuite/gas/riscv/march-fail-order-x.l: Likewise.
-	    * testsuite/gas/riscv/march-fail-order-z.d: Likewise.
-	    * testsuite/gas/riscv/march-fail-order-z.l: Likewise.
-
-2022-06-22  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Use single h extension to control hypervisor CSRs and instructions.
-	According to the picture 28.1 in the current ISA spec, h is no larger the
-	multi-letter extension, it is a single extension after v.  Therefore, this
-	patch fix the implementation, and use the single h to control hypervisor
-	CSRs and instructions, which we promised to do before.
-
-	bfd/
-	    * elfxx-riscv.c (riscv_supported_std_ext): Added h with version 1.0 after v.
-	    (riscv_supported_std_h_ext): Removed.
-	    (riscv_all_supported_ext): Updated since riscv_supported_std_h_ext is removed.
-	    (riscv_prefix_ext_class): Removed RV_ISA_CLASS_H.
-	    (parse_config): Updated since riscv_prefix_ext_class is removed.
-	    (riscv_recognized_prefixed_ext): Likewise.
-	    (riscv_get_default_ext_version): Likewise.
-	    (riscv_multi_subset_supports): Handle INSN_CLASS_H for hypervisor instructions.
-	    (riscv_multi_subset_supports_ext): Likewise.
-	gas/
-	    * config/tc-riscv.c (riscv_csr_class): Added CSR_CLASS_H and CSR_CLASS_H_32 for
-	    hypervisor CSRs.
-	    (riscv_csr_address): Likewise.
-	    * testsuite/gas/riscv/csr-version-1p10.d: Updated since hypervisor CSRs are
-	    controlled by single h extension for now.
-	    * testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-	    * testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-	    * testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-	    * testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-	    * testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-	    * testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-	    * testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-	    * testsuite/gas/riscv/h-ext-32.d: Added h to architecture string.
-	    * testsuite/gas/riscv/h-ext-64.d: Likewise.
-	    * testsuite/gas/riscv/march-fail-single-prefix-h: Removed since h is no
-	    longer multi-letter extension.
-	    * testsuite/gas/riscv/march-fail-unknown-h.d: Likewise.
-	include/
-	    * opcode/riscv-opc.h: Control hypervisor CSRs by h extension, rather than
-	    the privileged spec verisons.
-	    * opcode/riscv.h (riscv_insn_class): Added INSN_CLASS_H.
-	opcodes/
-	    * riscv-opc.c (riscv_opcodes): Control hypervisor instructions by h extension.
-
-2022-06-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add 'H' to canonical extension ordering
-	This commit adds 'H' to canonical extension ordering based on current
-	consensus (not officially ratified as a new ISA specification manual
-	but discussion for software compatibility is made).
-
-	bfd/ChangeLog
-
-		* elfxx-riscv.c (riscv_ext_canonical_order): Add 'H' for
-		canonical extension ordering based on current consensus.
-
-2022-06-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Prepare i18n for required ISA extensions
-	Some strings returned by the riscv_multi_subset_supports_ext function
-	contain not just extension names but words like "and" and "or".
-	This commit wraps such strings with the gettext macro (_) for
-	internationalization in the future.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports_ext): Wrap some
-		strings with the gettext macro to prepare future i18n.
-
-2022-06-22  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix inconsistent error message (range)
-	This commit fixes inconsistent error message format involving compressed
-	funct<n> fields.  In specific, funct6 had an error message with range
-	0..2^<n> ("0..64") unlike other funct<n> fields with 0..2^<n>-1
-	(e.g. funct4 with "0..15").
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (riscv_ip): Fix inconsistent error message.
-
-2022-06-22  Marcus Nilsson  <brainbomb@gmail.com>
-
-	readelf: replace xmalloc with malloc in slurp_relr_relocs
-	Using xmalloc makes the null check redundant since failing allocation
-	will exit the program. Instead use malloc and let the error be
-	conveyed up the call chain.
-
-2022-06-22  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64: stub debug dump
-	powerpc64le-linux-ld is failing the assertion in ppc_build_one_stub,
-	again apparently, which means a stub will overwrite the tail of a
-	previous stub.  The difficulty with debugging these issues is that
-	it's not a problem with the stub that triggers the assertion, but the
-	previous stub in that section.  This patch keeps track of the last
-	stub and adds a debug dump.  Hopefully that will help.
-
-		* elf64-ppc.c (enum _ppc64_sec_type): Add sec_stub.
-		(struct _ppc64_elf_section_data): Add u.last_ent.
-		(dump_previous_stub): New function.
-		(ppc_build_one_stub): Keep track of previous stub, and dump it
-		when finding an overlapping stub.
-
-2022-06-22  Alan Modra  <amodra@gmail.com>
-
-	PR29270, DW_FORM_udata signed output
-		PR 29270
-		* dwarf.c (read_and_display_attr_value): Output DW_FORM_udata
-		as unsigned.
-
-2022-06-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-21  Nick Alcock  <nick.alcock@oracle.com>
-
-	ld: regenerate configure after recent misgeneration
-	Things work again after this.
-
-	ld/ChangeLog:
-
-		* configure: Regenerate.
-
-2022-06-21  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: tests: prune warnings from compiler output
-	We were failing to call prune_warnings appropriately, leading to
-	false-positive test failures on some platforms (observed on
-	sparclinux).
-
-	libctf/ChangeLog:
-
-		* testsuite/lib/ctf-lib.exp: Prune warnings from compiler and
-		linker output.
-		* testsuite/libctf-regression/libctf-repeat-cu.exp: Likewise,
-		and ar output too.
-
-2022-06-21  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: avoid mingw warning
-	A missing paren led to an intended cast to avoid dependence on the size
-	of size_t in one argument of ctf_err_warn applying to the wrong type by
-	mistake.
-
-	libctf/ChangeLog:
-
-		* ctf-serialize.c (ctf_write_mem): Fix cast.
-
-2022-06-21  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: fix linking together multiple objects derived from the same source
-	Right now, if you compile the same .c input repeatedly with CTF enabled
-	and different compilation flags, then arrange to link all of these
-	together, then things misbehave in various ways.  libctf may conflate
-	either inputs (if the .o files have the same name, say if they are
-	stored in different .a archives), or per-CU outputs when conflicting
-	types are found: the latter can lead to entirely spurious errors when
-	it tries to produce multiple per-CU outputs with the same name
-	(discarding all but the last, but then looking for types in the earlier
-	ones which have just been thrown away).
-
-	Fixing this is multi-pronged.  Both inputs and outputs need to be
-	differentiated in the hashtables libctf keeps them in: inputs with the
-	same cuname and filename need to be considered distinct as long as they
-	have different associated CTF dicts, and per-CU outputs need to be
-	considered distinct as long as they have different associated input
-	dicts.  Right now there is nothing tying the two together other than the
-	CU name: fix this by introducing a new field in the ctf_dict_t named
-	ctf_link_in_out, which (for input dicts) points to the associated per-CU
-	output dict (if any), and for output dicts points to the associated
-	input dict.  At creation time the name used is completely arbitrary:
-	it's only important that it be distinct if CTF dicts are distinct.  So,
-	when a clash is found, adjust the CU name by sticking the number of
-	elements in the input on the end.  At output time, the CU name will
-	appear in the linked object, so it matters a little more that it look
-	slightly less ugly: in conflicting cases, append an incrementing
-	integer, starting at 0.
-
-	This naming scheme is not very helpful, but it's hard to see what else
-	we can do.  The input .o name may be the same.  The input .a name is not
-	even visible to ctf_link, and even *that* might be the same, because
-	.a's can contain many members with the same name, all of which
-	participate in the link.  All we really know is that the two have
-	distinct dictionaries with distinct types in them, and at least this way
-	they are all represented, any any symbols, variables etc referring to
-	those types are accurately stored.
-
-	(As a side-effect this also fixes a use-after-free and double-free when
-	errors are found during variable or symbol emission.)
-
-	Use the opportunity to prevent a couple of sources of problems, to wit
-	changing the active CU mappings when a link has already been done
-	(no effect on ld, which doesn't use CU mappings at all), and causing
-	multiple consecutive ctf_link's to have the same net effect as just
-	doing the last one (no effect on ld, which only ever does one
-	ctf_link) rather than having the links be a sort of half-incremental
-	not-really-intended mess.
-
-	libctf/ChangeLog:
-
-		PR libctf/29242
-		* ctf-impl.h (struct ctf_dict) [ctf_link_in_out]: New.
-		* ctf-dedup.c (ctf_dedup_emit_type): Set it.
-		* ctf-link.c (ctf_link_add_ctf_internal): Set the input
-		CU name uniquely when clashes are found.
-		(ctf_link_add): Document what repeated additions do.
-		(ctf_new_per_cu_name): New, come up with a consistent
-		name for a new per-CU dict.
-		(ctf_link_deduplicating): Use it.
-		(ctf_create_per_cu): Use it, and ctf_link_in_out, and set
-		ctf_link_in_out properly.  Don't overwrite per-CU dicts with
-		per-CU dicts relating to different inputs.
-		(ctf_link_add_cu_mapping): Prevent per-CU mappings being set up
-		if we already have per-CU outputs.
-		(ctf_link_one_variable): Adjust ctf_link_per_cu call.
-		(ctf_link_deduplicating_one_symtypetab): Likewise.
-		(ctf_link_empty_outputs): New, delete all the ctf_link_outputs
-		and blank out ctf_link_in_out on the corresponding inputs.
-		(ctf_link): Clarify the effect of multiple ctf_link calls.
-		Empty ctf_link_outputs if it already exists rather than
-		having the old output leak into the new link.  Fix a variable
-		name.
-		* testsuite/config/default.exp (AR): Add.
-		(OBJDUMP): Likewise.
-		* testsuite/libctf-regression/libctf-repeat-cu.exp: New test.
-		* testsuite/libctf-regression/libctf-repeat-cu*: Main program,
-		library, and expected results for the test.
-
-2022-06-21  Kevin Buettner  <kevinb@redhat.com>
-
-	Document how GDB searches for files when using -s, -e, and -se options
-	GDB's documentation of the 'file' command says:
-
-	    If you do not specify a directory and the file is not found in the
-	    GDB working directory, GDB uses the environment variable PATH as a
-	    list of directories to search, just as the shell does when looking
-	    for a program to run.
-
-	The same is true for files specified via commandline options -s, -e,
-	and -se.
-
-	This commit adds a cross reference to the file command for these options.
-
-2022-06-21  Nick Clifton  <nickc@redhat.com>
-
-	Binutils support for dwarf-5 (location and range lists related)
-		* dwarf.h (struct debug_info): Add rnglists_base field.
-		* dwarf.c (read_and_display_attr_value): Read attribute DW_AT_rnglists_base.
-		(display_debug_rnglists_list): While handling DW_RLE_base_addressx,
-	  	DW_RLE_startx_endx, DW_RLE_startx_length items, pass the proper parameter
-		value to fetch_indexed_addr(), i.e. fetch the proper entry in .debug_addr section.
-		(display_debug_ranges): Add rnglists_base to the .debug_rnglists base address.
-		(load_separate_debug_files): Load .debug_addr section, if exists.
-
-	Default to disabling the linker warnings about execstack and RWX segments if the target is the HPPA architecture.
-		PR 29263
-		* configure.ac (ac_default_ld_warn_execstack): Default to 'no' for
-		HPPA targets.
-		(ac_default_ld_warn_rwx_segments): Likewise.
-		* configure: Regenerate.
-		* testsuite/ld-elf/elf.exp: Add the --warn-execstack command line
-		option to the command line when running execstack tests for the
-		HPPA target.
-
-2022-06-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-20  Tom Tromey  <tromey@adacore.com>
-
-	Move finish_print out of value_print_options
-	'finish_print' does not really belong in value_print_options -- this
-	is consulted only when deciding whether or not to print a value, and
-	never during the course of printing.  This patch removes it from the
-	structure and makes it a static global in infcmd.c instead.
-
-	Tested on x86-64 Fedora 34.
-
-2022-06-20  Alan Modra  <amodra@gmail.com>
-
-	PR29262, memory leak in pr_function_type
-		PR 29262
-		* prdbg.c (pr_function_type): Free "s" on failure path.
-
-	PR29261, memory leak in parse_stab_struct_fields
-		PR 29261
-		* stabs.c (parse_stab_struct_fields): Free "fields" on failure path.
-
-2022-06-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-18  Tom Tromey  <tom@tromey.com>
-
-	Fix assertion failure in copy_type
-	PR exp/20630 points out a simple way to cause an assertion failure in
-	copy_type -- but this was found in the wild a few times as well.
-
-	copy_type only works for objfile-owned types, but there isn't a deep
-	reason for this.  This patch fixes the bug by updating copy_type to
-	work for any sort of type.
-
-	Better would perhaps be to finally implement type GC, but I still
-	haven't attempted this.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20630
-
-2022-06-18  Tomoaki Kawada  <kawada@kmckk.co.jp>
-
-	Fix the sorting algorithm for reloc entries
-	The optimized insertion sort algorithm in `elf_link_adjust_relocs`
-	incorrectly assembled "runs" from unsorted entries and inserted them to an
-	already-sorted prefix, breaking the loop invariants of insertion sort.
-	This commit updates the run assembly loop to break upon encountering a
-	non-monotonic change in the sort key.
-
-		PR 29259
-	bfd/
-		* elflink.c (elf_link_adjust_relocs): Ensure run being inserted
-		is sorted.
-	ld/
-		* testsuite/ld-elf/pr29259.d,
-		* testsuite/ld-elf/pr29259.s,
-		* testsuite/ld-elf/pr29259.t: New test.
-
-2022-06-18  Enze Li  <enze.li@hotmail.com>
-
-	gdb/python: Export nibbles to python layer
-	This patch makes it possible to allow Value.format_string() to return
-	nibbles output.
-
-	When we set the parameter of nibbles to True, we can achieve the
-	displaying binary values in groups of every four bits.
-
-	Here's an example:
-	  (gdb) py print (gdb.Value (1230).format_string (format='t', nibbles=True))
-	  0100 1100 1110
-	  (gdb)
-
-	Note that the parameter nibbles is only useful if format='t' is also used.
-
-	This patch also includes update to the relevant testcase and
-	documentation.
-
-	Tested on x86_64 openSUSE Tumbleweed.
-
-2022-06-18  Enze Li  <enze.li@hotmail.com>
-
-	gdb/doc: Documentation for the new print command
-	Document the new command "print nibbles" and add a NEWS entry.
-
-2022-06-18  Enze Li  <enze.li@hotmail.com>
-
-	gdb: Add new 'print nibbles' feature
-	Make an introduction of a new print setting that can be set by 'set
-	print nibbles [on|off]'.  The default value if OFF, which can be changed
-	by user manually.  Of course, 'show print nibbles' is also included in
-	the patch.
-
-	The new feature displays binary values by group, with four bits per
-	group.  The motivation for this work is to enhance the readability of
-	binary values.
-
-	Here's a GDB session before this patch is applied.
-	  (gdb) print var_a
-	  $1 = 1230
-	  (gdb) print/t var_a
-	  $2 = 10011001110
-
-	With this patch applied, we can use the new print setting to display the
-	new form of the binary values.
-	  (gdb) print var_a
-	  $1 = 1230
-	  (gdb) print/t var_a
-	  $2 = 10011001110
-	  (gdb) set print nibbles on
-	  (gdb) print/t var_a
-	  $3 = 0100 1100 1110
-
-	Tested on x86_64 openSUSE Tumbleweed.
-
-2022-06-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-17  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: NEWS: Move LoongArch gdbserver to the correct section
-	commit e5ab6af52d38 ("gdbserver: Add LoongArch/Linux support")
-	was merged into the master since GDB 12, so we should put the
-	news in the "Changes since GDB 12" section.
-
-	Thanks Tom Tromey for your correction [1], sorry for that.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-June/190122.html
-
-2022-06-17  Alan Modra  <amodra@gmail.com>
-
-	PR29256, memory leak in obj_elf_section_name
-	When handling section names in quotes obj_elf_section_name calls
-	demand_copy_C_string, which puts the name on the gas notes obstack.
-	Such strings aren't usually freed, since obstack_free frees all more
-	recently allocated objects as well as its arg.  When handling
-	non-quoted names, obj_elf_section_name mallocs the name.  Due to the
-	mix of allocation strategies it isn't possible for callers to free
-	names, if that was desirable.  Partially fix this by always creating
-	names on the obstack, which is more efficient anyway.  (You still
-	can't obstack_free on error paths due to the xtensa
-	tc_canonicalize_section_name.)  Also remove a couple of cases where
-	the name is dup'd for no good reason as far as I know.
-
-		PR 29256
-		* config/obj-elf.c (obj_elf_section_name): Create name on notes
-		obstack.
-		(obj_elf_attach_to_group): Don't strdup group name.
-		(obj_elf_section): Likewise.
-		(obj_elf_vendor_attribute): Use xmemdup0 rather than xstrndup.
-
-2022-06-17  Alan Modra  <amodra@gmail.com>
-
-	PR29255, memory leak in make_tempdir
-		PR 29255
-		* bucomm.c (make_tempdir, make_tempname): Free template on all
-		failure paths.
-
-	PR29254, memory leak in stab_demangle_v3_arg
-		PR 29254
-		* stabs.c (stab_demangle_v3_arg): Free dt on failure path.
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	Fix GDB build with GCC 4.8 & 4.9
-	With gcc 4.8/4.9, we run into this build failure (and other similar
-	ones):
-
-	  /home/palves/gdb/binutils-gdb/src/gdb/location.h:224:59: error: could not convert ‘{0, LINE_OFFSET_UNKNOWN}’ from ‘<brace-enclosed initializer list>’ to ‘line_offset’
-	     struct line_offset line_offset = {0, LINE_OFFSET_UNKNOWN};
-								     ^
-
-	The issue is that at around the GCC 4.8/4.9 era, a default member
-	initializer prevented the struct from being an aggregate, so you
-	cannot use aggregate initialization on them.  That rule changed after
-	GCC 4.9 and GCC 5 & later uses new rules.
-
-	Fix this by not using aggregate initialization for struct line_offset.
-	The default member initization already leaves line_offset as {0,
-	LINE_OFFSET_UNKNOWN}, so initialization to those values can just go
-	away.  The remaining cases are of the form {0, LINE_OFFSET_NONE}, and
-	those cases can be better rewritten to delay setting the sign field
-	until we know we have a valid offset.
-
-	Change-Id: I0506ea4a83c5fa2f15e159569db68b3b0a7509b4
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	Convert set_location_spec_string to a method
-	This converts set_location_spec_string to a method of location_spec,
-	and makes the location_spec::as_string field protected, renaming it to
-	m_as_string along the way.
-
-	Change-Id: Iccfb1654e9fa7808d0512df89e775f9eacaeb9e0
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	Convert location_spec_to_string to a method
-	This converts location_spec_to_string to a method of location_spec,
-	simplifying the code using it, as it no longer has to use
-	std::unique_ptr::get().
-
-	Change-Id: I621bdad8ea084470a2724163f614578caf8f2dd5
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	Convert location_spec_type to a method
-	This converts location_spec_type to location_spec::type().
-
-	Change-Id: Iff4cbfafb1cf3d22adfa142ff939b4a148e52273
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	Convert location_spec_empty_p to a method
-	This converts location_spec_empty_p to a method of location_spec,
-	simplifying users, as they no longer have to use
-	std::unique_ptr::get().
-
-	Change-Id: I83381a729896f12e1c5a1b4d6d4c2eb1eb6582ff
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	Eliminate copy_location_spec
-	copy_location_spec is just a wrapper around location_spec::clone(), so
-	remove it and call clone() directly.  This simplifies users, as they
-	no longer have to use std::unique_ptr::get().
-
-	Change-Id: I8ce8658589460b98888283b306b315a5b8f73976
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	Eliminate the two-level data structures behind location_specs
-	Currently, there's the location_spec hierarchy, and then some
-	location_spec subclasses have their own struct type holding all their
-	data fields.
-
-	I.e., there is this:
-
-	 location_spec
-	   explicit_location_spec
-	   linespec_location_spec
-	   address_location_spec
-	   probe_location_spec
-
-	and then these separate types:
-
-	  explicit_location
-	  linespec_location
-
-	where:
-
-	  explicit_location_spec
-	     has-a explicit_location
-	  linespec_location_spec
-	     has-a linespec_location
-
-	This patch eliminates explicit_location and linespec_location,
-	inlining their members in the corresponding location_spec type.
-
-	The location_spec subclasses were the ones currently defined in
-	location.c, so they are moved to the header.  Since the definitions of
-	the classes are now visible, we no longer need location_spec_deleter.
-
-	Some constructors that are used for cloning location_specs, like:
-
-	  explicit explicit_location_spec (const struct explicit_location *loc)
-
-	... were converted to proper copy ctors.
-
-	In the process, initialize_explicit_location is eliminated, and some
-	functions that returned the "data type behind a locspec", like
-	get_linespec_location are converted to downcast functions, like
-	as_linespec_location_spec.
-
-	Change-Id: Ia31ccef9382b25a52b00fa878c8df9b8cf2a6c5a
-
-2022-06-17  Pedro Alves  <pedro@palves.net>
-
-	event_location -> location_spec
-	Currently, GDB internally uses the term "location" for both the
-	location specification the user input (linespec, explicit location, or
-	an address location), and for actual resolved locations, like the
-	breakpoint locations, or the result of decoding a location spec to
-	SaLs.  This is expecially confusing in the breakpoints module, as
-	struct breakpoint has these two fields:
-
-	  breakpoint::location;
-	  breakpoint::loc;
-
-	"location" is the location spec, and "loc" is the resolved locations.
-
-	And then, we have a method called "locations()", which returns the
-	resolved locations as range...
-
-	The location spec type is presently called event_location:
-
-	  /* Location we used to set the breakpoint.  */
-	  event_location_up location;
-
-	and it is described like this:
-
-	  /* The base class for all an event locations used to set a stop event
-	     in the inferior.  */
-
-	  struct event_location
-	  {
-
-	and even that is incorrect...  Location specs are used for finding
-	actual locations in the program in scenarios that have nothing to do
-	with stop events.  E.g., "list" works with location specs.
-
-	To clean all this confusion up, this patch renames "event_location" to
-	"location_spec" throughout, and then all the variables that hold a
-	location spec, they are renamed to include "spec" in their name, like
-	e.g., "location" -> "locspec".  Similarly, functions that work with
-	location specs, and currently have just "location" in their name are
-	renamed to include "spec" in their name too.
-
-	Change-Id: I5814124798aa2b2003e79496e78f95c74e5eddca
-
-2022-06-17  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build with -Werror=format-truncation
-	gprofng/ChangeLog
-	2022-06-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* configure.ac: Remove -Wno-format-truncation.
-		* src/Makefile.am: Likewise.
-		* configure: Rebuild.
-		* src/Makefile.in: Rebuild.
-		* common/hwctable.c: Fix -Werror=format-truncation errors.
-		* src/ipc.cc: Likewise.
-		* src/parse.cc: Likewise.
-
-2022-06-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix have_mpx test
-	When testing on openSUSE Leap 15.4 I ran into this FAIL:
-	...
-	FAIL: gdb.arch/i386-mpx-map.exp: NULL address of the pointer
-	...
-	and likewise for all the other mpx tests.
-
-	The problem is that have_mpx is supposed to return 0, but it doesn't because
-	it tries to match this output:
-	...
-	builtin_spawn -ignore SIGHUP temp/20294/have_mpx-2-20294.x^M
-	No MPX support^M
-	No MPX support^M
-	...
-	using:
-	...
-	                   && ![string equal $output "No MPX support\r\n"]]
-	...
-
-	Fix this by matching using a regexp instead.
-
-	Tested on x86_64-linux.
-
-2022-06-16  Alan Modra  <amodra@gmail.com>
-
-	use of uninitialised value in input_file_open
-	Triggered by a file containing just "#N" or "#A".  fgets when hitting
-	EOF before reading anything returns NULL and does not write to buf.
-	strchr (buf, '\n') then is reading from uninitialised memory.
-
-		* input-file.c (input_file_open): Don't assume buf contains
-		zero string terminator when fgets returns NULL.
-
-2022-06-16  Alan Modra  <amodra@gmail.com>
-
-	Always free matching vector from bfd_check_format_matches
-	At least one place calling list_matching_formats failed to free the
-	"matching" vector from bfd_check_format_matches afterwards.  Fix that
-	by calling free inside list_matching_formats.
-
-	binutils/
-		* bucomm.c (list_matching_formats): Free arg.
-		* addr2line.c (process_file): Adjust to suit.
-		* ar.c (open_inarch, ranlib_touch): Likewise.
-		* coffdump.c (main): Likewise.
-		* nm.c (display_archive, display_file): Likewise.
-		* objcopy.c (copy_file): Likewise.
-		* objdump.c (display_object_bfd): Likewise.
-		* size.c (display_bfd): Likewise.
-		* srconv.c (main): Likewise.
-	ld/
-		* ldlang.c (load_symbols): Free "matching".
-
-2022-06-16  Alan Modra  <amodra@gmail.com>
-
-	Revert "Revert "Fix fbsd core matching""
-	This reverts commit 476288fa2bddecf0f0e13dee826a076309bf01fe.
-
-2022-06-16  Alan Modra  <amodra@gmail.com>
-
-	Restore readelf -wF
-	Commit 94585d6d4495 resulted in readelf -wF failing with
-	Unrecognized debug letter option 'F'
-
-	binutils/
-		* dwarf.c (debug_dump_long_opts): Add letter.
-		(debug_option_table): New, replacing..
-		(opts_table, letter_table): ..these.
-		(dwarf_select_sections_by_names): Adjust to suit.  Set
-		do_debug_frames outside of loop.
-		(dwarf_select_sections_by_letters): Similarly.
-	gas/
-		* testsuite/gas/i386/ehinterp.d: Use readelf -wF.
-
-2022-06-16  Alan Modra  <amodra@gmail.com>
-
-	PR29250, readelf erases CIE initial register state
-		PR 29250
-	binutils/
-		* dwarf.c (display_debug_frames): Set col_type[reg] on sizing
-		pass over FDE to cie->col_type[reg] if CIE specifies reg.
-		Handle DW_CFA_restore and DW_CFA_restore_extended on second
-		pass using the same logic.  Remove unnecessary casts.  Don't
-		call frame_need_space on second pass over FDE.
-	gas/
-		* testsuite/gas/i386/ehinterp.d,
-		* testsuite/gas/i386/ehinterp.s: New test.
-		* testsuite/gas/i386/i386.exp: Run it.
-
-2022-06-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-15  Sergei Trofimovich  <siarheit@google.com>
-
-	sim: fix BFD_VMA format arguments on 32-bit hosts [PR gdb/29184]
-	Noticed format mismatch when attempted to build gdb on i686-linux-gnu
-	in --enable-64-bit-bfd mode:
-
-	    sim/../../sim/cris/sim-if.c:576:28:
-	        error: format '%lx' expects argument of type 'long unsigned int',
-	        but argument 4 has type 'bfd_size_type' {aka 'long long unsigned int'} [-Werror=format=]
-	      576 |       sim_do_commandf (sd, "memory region 0x%" BFD_VMA_FMT "x,0x%lx",
-	          |                            ^~~~~~~~~~~~~~~~~~~
-	      577 |          interp_load_addr, interpsiz);
-	          |                            ~~~~~~~~~
-	          |                            |
-	          |                            bfd_size_type {aka long long unsigned int}
-
-	While at it fixed format string for time-related types.
-
-2022-06-15  Tom Tromey  <tromey@adacore.com>
-
-	Check for listeners in emit_exiting_event
-	I noticed that emit_exiting_event does not check whether there are any
-	listeners before creating the event object.  All other event emitters
-	do this, so this patch updates this one as well.
-
-2022-06-15  Tom Tromey  <tom@tromey.com>
-
-	Add to documentation of Python 'dont_repeat' method
-	PR python/28533 points out that the Python 'dont_repeat' documentation
-	is a bit ambiguous about when the method ought to be called.  This
-	patch spells it out.
-
-2022-06-15  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Make sp alias for one of the other stack pointers
-	For Cortex-M targets, SP register is never detached from msp or
-	psp, it always has the same value as one of them.  Let GDB treat
-	ARM_SP_REGNUM as an alias similar to what is done in hardware.
-
-2022-06-15  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Track msp and psp
-	For Arm Cortex-M33 with security extensions, there are 4 different
-	stack pointers (msp_s, msp_ns, psp_s, psp_ns).  To be compatible
-	with earlier Cortex-M derivates, the msp and psp registers are
-	aliases for one of the 4 real stack pointer registers.
-
-	These are the combinations that exist:
-	sp -> msp -> msp_s
-	sp -> msp -> msp_ns
-	sp -> psp -> psp_s
-	sp -> psp -> psp_ns
-
-	This means that when the GDB client is to show the value of "msp",
-	the value should always be equal to either "msp_s" or "msp_ns".
-	Same goes for "psp".
-
-	To add a bit more context; GDB does not really use the register msp
-	(or psp) internally, but they are part of the set of registers which
-	are provided by the target.xml file.  As a result, they will be part
-	of the set of registers printed by the "info r" command.
-
-	Without this particular patch, GDB will hit the assert in the bottom
-	of arm_cache_get_sp_register function.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29121
-
-2022-06-15  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Fetch initial sp value prior to compare
-	For Arm Cortex-M33 with security extensions, there are 4 different
-	stack pointers (msp_s, msp_ns, psp_s, psp_ns).  In order to
-	identify the active one, compare the values of the different
-	stacks. The value of the initial sp register needs to be fetched to
-	perform this comparison.
-
-2022-06-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: unify two dis_asm_read_memory functions in disasm.c
-	After the recent restructuring of the disassembler code, GDB has ended
-	up with two identical class static functions, both called
-	dis_asm_read_memory, with identical implementations.
-
-	My first thought was to move these out of their respective classes,
-	and just make them global functions, then I'd only need a single
-	copy.
-
-	And maybe that's the right way to go.  But I disliked that by doing
-	that I loose the encapsulation of the method with the corresponding
-	disassembler class.
-
-	So, instead, I placed the static method into its own class, and had
-	both the gdb_non_printing_memory_disassembler and gdb_disassembler
-	classes inherit from this new class as an additional base-class.
-
-	In terms of code generated, I don't think there's any significant
-	difference with this approach, but I think this better reflects how
-	the function is closely tied to the disassembler.
-
-	There should be no user visible changes after this commit.
-
-2022-06-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: refactor the non-printing disassemblers
-	This commit started from an observation I made while working on some
-	other disassembler patches, that is, that the function
-	gdb_buffered_insn_length, is broken ... sort of.
-
-	I noticed that the gdb_buffered_insn_length function doesn't set up
-	the application data field if the disassemble_info structure.
-
-	Further, I noticed that some architectures, for example, ARM, require
-	that the application_data field be set, see gdb_print_insn_arm in
-	arm-tdep.c.
-
-	And so, if we ever use gdb_buffered_insn_length for ARM, then GDB will
-	likely crash.  Which is why I said only "sort of" broken.  Right now
-	we don't use gdb_buffered_insn_length with ARM, so maybe it isn't
-	broken yet?
-
-	Anyway to prove to myself that there was a problem here I extended the
-	disassembler self tests in disasm-selftests.c to include a test of
-	gdb_buffered_insn_length.  As I run the test for all architectures, I
-	do indeed see GDB crash for ARM.
-
-	To fix this we need gdb_buffered_insn_length to create a disassembler
-	that inherits from gdb_disassemble_info, but we also need this new
-	disassembler to not print anything.
-
-	And so, I introduce a new gdb_non_printing_disassembler class, this is
-	a disassembler that doesn't print anything to the output stream.
-
-	I then observed that both ARC and S12Z also create non-printing
-	disassemblers, but these are slightly different.  While the
-	disassembler in gdb_non_printing_disassembler reads the instruction
-	from a buffer, the ARC and S12Z disassemblers read from target memory
-	using target_read_code.
-
-	And so, I further split gdb_non_printing_disassembler into two
-	sub-classes, gdb_non_printing_memory_disassembler and
-	gdb_non_printing_buffer_disassembler.
-
-	The new selftests now pass, but otherwise, there should be no user
-	visible changes after this commit.
-
-2022-06-15  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: implement the print_insn extension language hook
-	This commit extends the Python API to include disassembler support.
-
-	The motivation for this commit was to provide an API by which the user
-	could write Python scripts that would augment the output of the
-	disassembler.
-
-	To achieve this I have followed the model of the existing libopcodes
-	disassembler, that is, instructions are disassembled one by one.  This
-	does restrict the type of things that it is possible to do from a
-	Python script, i.e. all additional output has to fit on a single line,
-	but this was all I needed, and creating something more complex would,
-	I think, require greater changes to how GDB's internal disassembler
-	operates.
-
-	The disassembler API is contained in the new gdb.disassembler module,
-	which defines the following classes:
-
-	  DisassembleInfo
-
-	      Similar to libopcodes disassemble_info structure, has read-only
-	  properties: address, architecture, and progspace.  And has methods:
-	  __init__, read_memory, and is_valid.
-
-	      Each time GDB wants an instruction disassembled, an instance of
-	  this class is passed to a user written disassembler function, by
-	  reading the properties, and calling the methods (and other support
-	  methods in the gdb.disassembler module) the user can perform and
-	  return the disassembly.
-
-	  Disassembler
-
-	      This is a base-class which user written disassemblers should
-	  inherit from.  This base class provides base implementations of
-	  __init__ and __call__ which the user written disassembler should
-	  override.
-
-	  DisassemblerResult
-
-	      This class can be used to hold the result of a call to the
-	  disassembler, it's really just a wrapper around a string (the text
-	  of the disassembled instruction) and a length (in bytes).  The user
-	  can return an instance of this class from Disassembler.__call__ to
-	  represent the newly disassembled instruction.
-
-	The gdb.disassembler module also provides the following functions:
-
-	  register_disassembler
-
-	      This function registers an instance of a Disassembler sub-class
-	  as a disassembler, either for one specific architecture, or, as a
-	  global disassembler for all architectures.
-
-	  builtin_disassemble
-
-	      This provides access to GDB's builtin disassembler.  A common
-	  use case that I see is augmenting the existing disassembler output.
-	  The user code can call this function to have GDB disassemble the
-	  instruction in the normal way.  The user gets back a
-	  DisassemblerResult object, which they can then read in order to
-	  augment the disassembler output in any way they wish.
-
-	      This function also provides a mechanism to intercept the
-	  disassemblers reads of memory, thus the user can adjust what GDB
-	  sees when it is disassembling.
-
-	The included documentation provides a more detailed description of the
-	API.
-
-	There is also a new CLI command added:
-
-	  maint info python-disassemblers
-
-	This command is defined in the Python gdb.disassemblers module, and
-	can be used to list the currently registered Python disassemblers.
-
-2022-06-15  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: add extension language print_insn hook
-	This commit is setup for the next commit.
-
-	In the next commit I will add a Python API to intercept the print_insn
-	calls within GDB, each print_insn call is responsible for
-	disassembling, and printing one instruction.  After the next commit it
-	will be possible for a user to write Python code that either wraps
-	around the existing disassembler, or even, in extreme situations,
-	entirely replaces the existing disassembler.
-
-	This commit does not add any new Python API.
-
-	What this commit does is put the extension language framework in place
-	for a print_insn hook.  There's a new callback added to 'struct
-	extension_language_ops', which is then filled in with nullptr for Python
-	and Guile.
-
-	Finally, in the disassembler, the code is restructured so that the new
-	extension language function ext_lang_print_insn is called before we
-	delegate to gdbarch_print_insn.
-
-	After this, the next commit can focus entirely on providing a Python
-	implementation of the new print_insn callback.
-
-	There should be no user visible change after this commit.
-
-2022-06-15  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: add new base class to gdb_disassembler
-	The motivation for this change is an upcoming Python disassembler API
-	that I would like to add.  As part of that change I need to create a
-	new disassembler like class that contains a disassemble_info and a
-	gdbarch.  The management of these two objects is identical to how we
-	manage these objects within gdb_disassembler, so it might be tempting
-	for my new class to inherit from gdb_disassembler.
-
-	The problem however, is that gdb_disassembler has a tight connection
-	between its constructor, and its print_insn method.  In the
-	constructor the ui_file* that is passed in is replaced with a member
-	variable string_file*, and then in print_insn, the contents of the
-	member variable string_file are printed to the original ui_file*.
-
-	What this means is that the gdb_disassembler class has a tight
-	coupling between its constructor and print_insn; the class just isn't
-	intended to be used in a situation where print_insn is not going to be
-	called, which is how my (upcoming) sub-class would need to operate.
-
-	My solution then, is to separate out the management of the
-	disassemble_info and gdbarch into a new gdb_disassemble_info class,
-	and make this class a parent of gdb_disassembler.
-
-	In arm-tdep.c and mips-tdep.c, where we used to cast the
-	disassemble_info->application_data to a gdb_disassembler, we can now
-	cast to a gdb_disassemble_info as we only need to access the gdbarch
-	information.
-
-	Now, my new Python disassembler sub-class will still want to print
-	things to an output stream, and so we will want access to the
-	dis_asm_fprintf functionality for printing.
-
-	However, rather than move this printing code into the
-	gdb_disassemble_info base class, I have added yet another level of
-	hierarchy, a gdb_printing_disassembler, thus the class structure is
-	now:
-
-	  struct gdb_disassemble_info {};
-	  struct gdb_printing_disassembler : public gdb_disassemble_info {};
-	  struct gdb_disassembler : public gdb_printing_disassembler {};
-
-	In a later commit my new Python disassembler will inherit from
-	gdb_printing_disassembler.
-
-	The reason for adding the additional layer to the class hierarchy is
-	that in yet another commit I intend to rewrite the function
-	gdb_buffered_insn_length, and to do this I will be creating yet more
-	disassembler like classes, however, these will not print anything,
-	thus I will add a gdb_non_printing_disassembler class that also
-	inherits from gdb_disassemble_info.  Knowing that that change is
-	coming, I've gone with the above class hierarchy now.
-
-	There should be no user visible changes after this commit.
-
-2022-06-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: convert gdbpy_err_fetch to use gdbpy_ref
-	Convert the gdbpy_err_fetch class to make use of gdbpy_ref, this
-	removes the need for manual reference count management, and allows the
-	destructor to be removed.
-
-	There should be no functional change after this commit.
-
-	I think this cleanup is worth doing on its own, however, in a later
-	commit I will want to copy instances of gdbpy_err_fetch, and switching
-	to using gdbpy_ref means that I can rely on the default copy
-	constructor, without having to add one that handles the reference
-	counts, so this is good preparation for that upcoming change.
-
-2022-06-15  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop print_operand_value()'s "hex" parameter
-	For quite some  time all callers have been passing 1 / true. While there
-	fold the final oappend_with_style() calls.
-
-2022-06-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build for gcc < 11
-	When building trunk on openSUSE Leap 15.3 with system gcc 7.5.0, I run into:
-	...
-	In file included from ../bfd/bfd.h:46:0,
-	                 from gdb/defs.h:37,
-	                 from gdb/debuginfod-support.c:19:
-	gdb/debuginfod-support.c: In function ‘bool debuginfod_is_enabled()’:
-	gdb/../include/diagnostics.h:42:3: error: unknown option after \
-	  ‘#pragma GCC diagnostic’ kind [-Werror=pragmas]
-	   _Pragma (DIAGNOSTIC_STRINGIFY (GCC diagnostic ignored option))
-	   ^
-	gdb/../include/diagnostics.h:80:3: note: in expansion of macro \
-	  ‘DIAGNOSTIC_IGNORE’
-	   DIAGNOSTIC_IGNORE ("-Wstringop-overread")
-	   ^~~~~~~~~~~~~~~~~
-	gdb/debuginfod-support.c:201:4: note: in expansion of macro \
-	  ‘DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD’
-	    DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD
-	    ^
-	...
-
-	The problem is that the warning -Wstringop-overread has been introduced for
-	gcc 11, and we can only tell gcc to ignore if it knows about it.
-
-	Fix this by guarding the DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD definition in
-	diagnostics.c with '#if __GNUC__ >= 11'.
-
-	Tested on x86_64-linux, by completing a build.
-
-2022-06-15  Alan Modra  <amodra@gmail.com>
-
-	PR29230, segv in lookup_symbol_in_variable_table
-	The PR23230 testcase uses indexed strings without specifying
-	SW_AT_str_offsets_base.  In this case we left u.str with garbage (from
-	u.val) which then led to a segfault when attempting to access the
-	string.  Fix that by clearing u.str.  The patch also adds missing
-	sanity checks in the recently committed read_indexed_address and
-	read_indexed_string functions.
-
-		PR 29230
-		* dwarf2.c (read_indexed_address): Return uint64_t.  Sanity check idx.
-		(read_indexed_string): Use uint64_t for str_offset.  Sanity check idx.
-		(read_attribute_value): Clear u.str for indexed string forms when
-		DW_AT_str_offsets_base is not yet read or missing.
-
-2022-06-15  Mark Wielaard  <mark@klomp.org>
-
-	gdb: Always suppress stringop-overread warning in debuginfod-support.c
-	Just like on s390x with g++ 11.2.1 and ppc64le with g++ 11.3.1 g++ 11
-	on hppa produces a spurious warning for stringop-overread in
-	debuginfod_is_enabled for url_view. Just always suppress it on all
-	arches.
-
-	https://sourceware.org/bugzilla/show_bug.cgi?id=29198
-
-	gdb/ChangeLog:
-
-		* debuginfod-support.c (debuginfod_is_enabled): Always use
-		DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD.
-
-2022-06-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-14  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng docs: provide help for <rate> == <interval>
-	The help message from 'gprofng collect app -h', in
-	the section on <rate> == <interval>, had a dangling
-	reference to a non-existent manpage. Provide basic
-	info, including reasons for caution.
-
-	gprofng docs: mention HTML / PDF in the gprofng README
-	The HTML and PDF formats are described in the gprofng tutorial (info
-	topic "Other Document Formats"). In addition, describe them in the
-	README because: they are important; they are easily searchable; and the
-	README is primarily oriented to the person who is installing gprofng,
-	who may differ from the person who follows a user tutorial.
-
-2022-06-14  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build with -Werror=format-security
-	gprofng/ChangeLog
-	2022-06-13  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/28968
-		* src/src/Hist_data.cc (print_row): Make param const.
-		* src/src/Hist_data.h (print_row): Likewise.
-		* src/src/Print.h: Remove unused functions and variables.
-		* src/Print.cc: Fix -Werror=format-security errors.
-		* src/parse.cc: Likewise.
-
-2022-06-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle unordered dict in gdb.python/py-mi-cmd.exp
-	When running test-case gdb.python/py-mi-cmd.exp on openSUSE Leap 42.3 with
-	python 3.4, I occasionally run into:
-	...
-	Expecting: ^(-pycmd dct[^M
-	]+)?(\^done,result={hello="world",times="42"}[^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	-pycmd dct^M
-	^done,result={times="42",hello="world"}^M
-	(gdb) ^M
-	FAIL: gdb.python/py-mi-cmd.exp: -pycmd dct (unexpected output)
-	...
-
-	The problem is that the data type used here in py-mi-cmd.py:
-	...
-	        elif argv[0] == "dct":
-	            return {"result": {"hello": "world", "times": 42}}
-	...
-	is a dictionary, and only starting version 3.6 are dictionaries insertion
-	ordered, so using PyDict_Next in serialize_mi_result doesn't guarantee a
-	fixed order.
-
-	Fix this by allowing the alternative order.
-
-	Tested on x86_64-linux.
-
-2022-06-14  Tom Tromey  <tromey@adacore.com>
-
-	Implement lazy FPU initialization for ravenscar
-	Some ravenscar runtimes implement lazy FPU handling.  On these
-	runtimes, the FPU is only initialized when a task tries to use it.
-	Furthermore, the FP registers aren't automatically saved on a task
-	switch -- instead, the save is deferred until the new task tries to
-	use the FPU.  Furthermore, each task's context area has a flag
-	indicating whether the FPU has been initialized for this task.
-
-	This patch teaches GDB to understand this implementation.  When
-	fetching or storing registers, GDB now checks to see whether the live
-	FP registers should be used.  If not, the task's saved FP registers
-	will be used if the task has caused FPU initialization.
-
-	Currently only AArch64 uses this code.  bb-runtimes implements this
-	for ARM as well, but GDB doesn't yet have an arm-ravenscar-thread.c.
-
-2022-06-14  Tom Tromey  <tromey@adacore.com>
-
-	Reimplement ravenscar registers using tables
-	Currently, the ravenscar-thread implementation for each architecture
-	is written by hand.  However, these are actually written by
-	copy-paste.  It seems better to switch to a table-driven approach.
-
-	The previous code also fetched all registers whenever any register was
-	requested.  This is corrected in the new implementation.
-
-2022-06-14  Tom Tromey  <tromey@adacore.com>
-
-	Fix bugs in aarch64-ravenscar-thread.c
-	We found a few bugs in aarch64-ravenscar-thread.c.
-
-	First, some of the register offsets were incorrect.  The "bb-runtimes"
-	file for this runtime had the wrong offsets in comments, which GDB
-	took to be correct.  However, those comments didn't account for
-	alignment.  This patch adjusts the offsets.
-
-	Next, the "FPU Saved field" is not a register -- it is an
-	implementation detail of the runtime.  This is removed.
-
-	Finally, I think the FP registers are actually named V0-V31, and the
-	"Q" names are pseudo-registers.  This patch fixes the comment.
-
-2022-06-14  Tom Tromey  <tromey@adacore.com>
-
-	Allow 'interrupt -a' in all-stop mode
-	PR gdb/17160 points out that "interrupt -a" errors in all-stop mode,
-	but there's no good reason for this.  This patch removes the error.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17160
-
-2022-06-14  Youling Tang  <tangyouling@loongson.cn>
-
-	gdbserver: Add LoongArch/Linux support
-	Implement LoongArch/Linux support, including XML target description
-	handling based on features determined, GPR regset support, and software
-	breakpoint handling.
-
-	In the Linux kernel code of LoongArch, ptrace implements PTRACE_POKEUSR
-	and PTRACE_PEEKUSR in the arch_ptrace function, so srv_linux_usrregs is
-	set to yes.
-
-	With this patch on LoongArch:
-
-	  $ make check-gdb TESTS="gdb.server/server-connect.exp"
-	  [...]
-	  # of expected passes		18
-	  [...]
-
-2022-06-14  Tom de Vries  <tdevries@suse.de>
-
-	Revert "Fix fbsd core matching"
-	This reverts commit a7e29f797cecd5a2f73c27838b09eae1f1b6c657.
-
-	I accidentally pushed this, so revert.
-
-2022-06-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix regexp in gdb.ada/mi_var_access.exp
-	With gcc-12 and target board unix/-m32, we run into:
-	...
-	(gdb) ^M
-	Expecting: ^(-var-create A_String_Access \* A_String_Access[^M
-	]+)?(\^done,name="A_String_Access",numchild="1",.*[^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	-var-create A_String_Access * A_String_Access^M
-	^error,msg="Value out of range."^M
-	(gdb) ^M
-	FAIL: gdb.ada/mi_var_access.exp: Create varobj (unexpected output)
-	...
-
-	What happens is easier to understand if we take things out of the mi context:
-	...
-	$ gdb -q -batch \
-	    outputs/gdb.ada/mi_var_access/mi_access \
-	    -ex "b mi_access.adb:19" \
-	    -ex run \
-	    -ex "p A_String_Access"
-	  ...
-	Breakpoint 1, mi_access () at mi_access.adb:19
-	19         A_String : String (3 .. 5) := "345"; -- STOP
-	$1 = (pck.string_access) <error reading variable: Value out of range.>
-	...
-	while with target board unix we have instead:
-	...
-	$1 = (pck.string_access) 0x431b40 <ada_main.sec_default_sized_stacks>
-	...
-
-	The var-create command samples the value of the variable at a location where
-	the variable is not yet initialized, and with target board unix we
-	accidentally hit a valid address, but with target board unix/-m32 that's not
-	the case.
-
-	Fix the FAIL by accepting the error message.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28464
-
-2022-06-14  Alan Modra  <amodra@gmail.com>
-
-	Fix fbsd core matching
-	On Thu, Jun 09, 2022 at 08:59:37AM -0700, John Baldwin wrote:
-	> On 6/9/22 1:58 AM, Tom de Vries via Gdb-patches wrote:
-	> > Hi,
-	> >
-	> > With an --enable-targets=all build and target board unix/-m32 I run into a
-	> > FAIL in test-case gdb.base/corefile.exp:
-	> > ...
-	> > (gdb) file outputs/gdb.base/corefile/corefile^M
-	> > Reading symbols from outputs/gdb.base/corefile/corefile...^M
-	> > (gdb) core-file outputs/gdb.base/corefile/corefile.core^M
-	> > warning: core file may not match specified executable file.^M
-	> > [New LWP 12011]^M
-	> > Core was generated by `outputs/gdb.base/corefile/co'.^M
-	> > Program terminated with signal SIGABRT, Aborted.^M
-	> > (gdb) FAIL: gdb.base/corefile.exp: core-file warning-free
-	> > ...
-	> >
-	> > The warning is there because of this mismatch between core and exec:
-	> > ...
-	> > (gdb) p core_bfd->xvec
-	> > $3 = (const struct bfd_target *) 0x20112a0 <i386_elf32_fbsd_vec>
-	> > (gdb) p exec_bfd->xvec
-	> > $4 = (const struct bfd_target *) 0x2010b00 <i386_elf32_vec>
-	> > ...
-	> >
-	> > In the exec case, the detected architecture is i386_elf32_vec because this bit
-	> > of code in elfcode.h:elf_object_p():
-	> > ...
-	> >    if (ebd->elf_machine_code != EM_NONE
-	> >        && i_ehdrp->e_ident[EI_OSABI] != ebd->elf_osabi
-	> >        && ebd->elf_osabi != ELFOSABI_NONE)
-	> >      goto got_wrong_format_error;
-	> > ...
-	> > prevents i386_elf32_fbsd from matching.
-	> >
-	> > Fix the core matching by copying that code to elfcore.h:elf_core_file_p().
-	> >
-	> > Tested on x86_64-linux.
-	> >
-	> > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29227
-	> >
-	> > Any comments?
-
-	Looks good.
-
-	> Looking at elfcore.h, it seems to have not gotten changes made to elfcode.h over
-	> time and is a bit rotted.  I suspect that all of changes made in commit 0aabe54e6222
-	> that added these lines in elfcode.h (along with several other changes) need to
-	> be applied to this function in elfcore.h, not just adding these lines.
-
-	Yes, the commit 0aabe54e6222 changes likely should go in too.  I'm a
-	little wary of adding all the sanity checks to elf_core_file_p since
-	that might result in some core files not being recognised at all.  For
-	example, despite the FIXME I'd guess leaving out the EI_VERSION check
-	was deliberate.  The following seems reasonable to me.  Please test.
-
-2022-06-14  Kavitha Natarajan  <kavitha.natarajan@amd.com>
-
-	Debug support for global alias variable
-	Starting with (future) Clang 15 (since
-	https://reviews.llvm.org/D120989), Clang emits the DWARF information
-	of global alias variables as DW_TAG_imported_declaration.  However,
-	GDB does not handle it.  It incorrectly always reads this tag as
-	C++/Fortran imported declaration (type alias, namespace alias and
-	Fortran module).  This commit adds support to handle this tag as an
-	alias variable.
-
-	This change fixes the failures in the gdb.base/symbol-alias.exp
-	testcase with current git Clang.  This testcase is also updated to
-	test nested (recursive) aliases.
-
-2022-06-14  Alan Modra  <amodra@gmail.com>
-
-	BFD_RELOC_MIPS_16
-	MIPS should not be using BFD_RELOC_16 for its R_MIPS_16 relocation,
-	since R_MIPS_16 specifies a 16-bit field in a 32-bit word.
-	BFD_RELOC_16, emitted by generic code to handle fixups on 16-bit data
-	directives, expects fixups to operate on the whole of a 16-bit word.
-
-	This patch corrects the problem by using BFD_RELOC_MIPS_16, a new bfd
-	reloc that is used to generate R_MIPS_16.  BFD_RELOC_16 is handled in
-	md_apply_fix for cases where the fixup can be applied at assembly
-	time.  Like BFD_RELOC_8, BFD_RELOC_16 now has no corresponding object
-	file relocation, and thus .half, .hword, .short and .dc.w must be
-	resolved at assembly time.  BFD_RELOC_MIPS_REL16 is removed by this
-	patch since it isn't used.
-
-		PR 3243
-		PR 26542
-		* reloc.c (BFD_RELOC_MIPS_16): Rename from BFD_RELOC_MIPS_REL16.
-		* elf32-mips.c (mips_reloc_map): Map BFD_RELOC_MIPS_16 to R_MIPS_16.
-		* elf64-mips.c (mips_reloc_map): Likewise, delete BFD_RELOC_MIPS_REL16.
-		* elfn32-mips.c (mips_reloc_map): Likewise.
-		* libbfd.h: Regenerate.
-		* bfd-in2.h: Regenerate.
-	gas/
-		* config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS_16.
-		(macro_build): Likewise.
-		(mips_percent_op <%half>): Generate BFD_RELOC_MIPS_16.
-		(md_apply_fix): Handle BFD_RELOC_16 and BFD_RELOC_MIPS_16 when fx_done.
-	ld/
-		* testsuite/ld-mips-elf/reloc-local-overflow.d,
-		* testsuite/ld-mips-elf/reloc-local-overflow.s: Rewrite.
-
-2022-06-14  Alan Modra  <amodra@gmail.com>
-
-	Correct R_MIPS_16 n32 howto
-	If the howto is actually used, an all-zero dst_mask will result in
-	unchanged section contents on attempting to apply R_MIPS_16.
-
-		* elfn32-mips.c (elf_mips_howto_table_rela <R_MIPS_16>): Correct
-		dst_mask.
-
-2022-06-14  Alan Modra  <amodra@gmail.com>
-
-	asan: applying zero offset to NULL pointer
-		* dwarf.c (fetch_indexed_string): Move initialisation of "curr"
-		and "end" after checking for missing section.
-
-2022-06-14  Alan Modra  <amodra@gmail.com>
-
-	gas dwarf2dbg.c tidy
-	Make it a little more obvious that remap_debug_filename returns an
-	allocated string (that should be freed) by returning a char * rather
-	than const char *.  Free a few missed cases in dwarf2dbg.c, and free
-	other memory allocated in dwarf2dbg.c.  Also remove static
-	initialisation of variables and initialise in dwarf2_init instead,
-	in order to ensure gas state is saner for oss-fuzz.
-
-		* remap.c (remap_debug_filename): Remove const from return.
-		* as.h (remap_debug_filename): Update prototype.
-		* config/obj-elf.c (obj_elf_ident): Simplify free of
-		remap_debug_filename output.
-		* stabs.c (stabs_generate_asm_file): Likewise.
-		* dwarf2dbg.c (dirs, dirs_in_use, dirs_allocated, current): Don't
-		initialise statically..
-		(dwarf2_init): ..do so here, along with most other static vars.
-		(assign_file_to_slot): Don't set files_allocated until we
-		succeed in allocating memory.
-		(purge_generated_debug): Add bool param, free more stuff if true.
-		(dwarf2_directive_filename): Adjust purge_generated_debug call.
-		(process_entries): Don't free line_entry here..
-		(dwarf2_cleanup): ..do so here instead, new function.
-		(dwarf2_finish): Call dwarf2_cleanup.  When chaining together
-		subseg line entries, unhook entries from old subseg list.
-		(dwarf2_directive_loc): Free remap_debug_filename string.
-		(out_dir_and_file_list): Likewise.
-		(out_debug_str): Likewise.
-
-2022-06-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.reverse/test_ioctl_TCSETSW.exp with libc debuginfo
-	When running test-case gdb.reverse/test_ioctl_TCSETSW.exp with glibc debuginfo
-	installed, I run into:
-	...
-	(gdb) PASS: gdb.reverse/test_ioctl_TCSETSW.exp: at TCSETSW call
-	step^M
-	__tcsetattr (fd=0, optional_actions=1, termios_p=0x7fffffffcf50) at \
-	  ../sysdeps/unix/sysv/linux/tcsetattr.c:45^M
-	45      {^M
-	(gdb) FAIL: gdb.reverse/test_ioctl_TCSETSW.exp: handle TCSETSW
-	...
-
-	The problem is that the step is expected to step over the call to tcsetattr,
-	but due to glibc debuginfo being installed, we step into the call.
-
-	Fix this by using next instead of step.
-
-	Tested on x86_64-linux.
-
-2022-06-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Avoid warnings in cooked_{read,write}_test for m68hc11
-	With --enable-targets=all we have:
-	...
-	$ gdb -q -batch -ex "maint selftest"
-	  ...
-	Running selftest regcache::cooked_read_test::m68hc11.
-	warning: No frame soft register found in the symbol table.
-	Stack backtrace will not work.
-	Running selftest regcache::cooked_read_test::m68hc12.
-	warning: No frame soft register found in the symbol table.
-	Stack backtrace will not work.
-	Running selftest regcache::cooked_read_test::m68hc12:HCS12.
-	warning: No frame soft register found in the symbol table.
-	Stack backtrace will not work.
-	...
-
-	Likewise for regcache::cooked_write_test.
-
-	The warning has no use in the selftest context.
-
-	Fix this by skipping the specific selftests.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29224
-
-2022-06-13  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Deal with atomic sequence
-	We can't put a breakpoint in the middle of a ll/sc atomic sequence,
-	so look for the end of the sequence and put the breakpoint there.
-
-2022-06-13  Sam James  <sam@gentoo.org>
-
-	gdb: don't use bashism in configure test
-	Results in configure output like:
-	```
-	checking for X... no
-	/var/tmp/portage/sys-devel/gdb-12.1/work/gdb-12.1/gdb/configure: 18837: test: yes: unexpected operator
-	checking whether to use babeltrace... auto
-	```
-
-	... when /bin/sh is provided by a POSIX-compliant shell, like dash,
-	instead of bash.
-
-2022-06-13  Jiangshuai Li  <jiangshuai_li@c-sky.com>
-
-	gdb:csky add support target-descriptions for CSKY arch
-	Registers in CSKY architecture included:
-	1. 32 gprs
-	2. 16 ars (alternative gprs used for quick interrupt)
-	3. hi, lo, pc
-	4. fr0~fr31, fcsr, fid, fesr
-	5. vr0~vr15
-	6. ((32 banks) * 32) cr regs (max 32 banks, 32 control regs a bank)
-
-	For register names:
-	Except over control registers, other registers, like gprs, hi, lo ...
-	are fixed names. Among the 32*32 control registers, some used registers
-	will have fixed names, others will have a default name "cpxcry". 'x'
-	refers to bank, y refers index in the bank(a control register in bank
-	4 with index 14 will has a default name cp4cr14).
-
-	For register numbers in GDB:
-	We assign a fixed number to each register in GDB, like:
-	r0~r31 with 0~31
-	hi, lo with 36, 37
-	fpu/vpu with 40~71
-	...
-	described in function csky_get_supported_register_by_index().
-
-	Function csky_get_supported_tdesc_registers_count():
-	To calculate the total number of registers that GDB can analyze,
-	including those with fixed names and those with default register names.
-
-	Function csky_get_supported_register_by_index():
-	To find a supported struct csky_supported_tdesc_register, return a
-	struct include name with regnum via index.
-
-	Arrays csky_supported_tdesc_feature_names[]:
-	Include all supported feature names in tdesc-xmls.
-
-	We use the information described above to load the register description
-	file of the target from the stub. When loading, do a little check that
-	whether the register description file contains SP, LR and PC.
-
-2022-06-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle quotes in gdb_py_module_available
-	On openSUSE Leap 42.3 with python 3.4, I run into:
-	...
-	(gdb) python import pygments^M
-	Traceback (most recent call last):^M
-	  File "<string>", line 1, in <module>^M
-	ImportError: No module named 'pygments'^M
-	Error while executing Python code.^M
-	(gdb) FAIL: gdb.base/style.exp: python import pygments
-	ERROR: unexpected output from python import
-	...
-	because gdb_py_module_available doesn't handle the single quotes around the
-	module name in the ImportError.
-
-	Fix this by allowing the single quotes.
-
-	Tested on x86_64-linux.
-
-2022-06-13  Jan Beulich  <jbeulich@suse.com>
-
-	x86: fix incorrect indirection
-	Commit 384e201e5aec ("x86: properly initialize struct instr_info
-	instance(s)") was based on an improperly refreshed patch. Correct the
-	oversight.
-
-2022-06-13  Jan Beulich  <jbeulich@suse.com>
-
-	x86: replace global scratch buffer
-	With its movement to the stack, and with the subsequent desire to
-	initialize the entire instr_info instances, this has become doubly
-	inefficient. Individual users have better knowledge of how big a buffer
-	they need, and in a number of cases going through an intermediate buffer
-	can be avoided altogether.
-
-	Having got confirmation that it wasn't intentional to print memory
-	operand displacements with inconsistent style, print_displacement() is
-	now using dis_style_address_offset consistently (eliminating the need
-	for callers to pass in a style).
-
-	While touching print_operand_value() also convert its "hex" parameter to
-	bool. And while altering (and moving) oappend_immediate(), fold
-	oappend_maybe_intel_with_style() into its only remaining caller. Finally
-	where doing adjustments, use snprintf() in favor of sprintf().
-
-2022-06-13  Jan Beulich  <jbeulich@suse.com>
-
-	x86: avoid string copy when swapping Vex.W controlled operands
-	Now that op_out[] is an array of pointers, there's no need anymore to
-	copy strings. Simply swap the pointers.
-
-2022-06-13  Jan Beulich  <jbeulich@suse.com>
-
-	x86: shrink prefix related disassembler state fields
-	By changing the values used for "artificial" prefix values,
-	all_prefixes[] can be shrunk to array of unsigned char. All that
-	additionally needs adjusting is the printing of possible apparently
-	standalone prefixes when recovering from longjmp(): Simply check
-	whether any prefixes were successfully decoded, to avoid converting
-	opcode bytes matching the "artificial" values to prefix mnemonics.
-
-	Similarly by re-arranging the bits assigned to PREFIX_* mask values
-	we can fit all segment register masks in a byte and hence shrink
-	active_seg_prefix to unsigned char.
-
-	Somewhat similarly with last_*_prefix representing offsets into the
-	opcode being disassembled, signed char is sufficient to hold all possible
-	values.
-
-2022-06-13  Jan Beulich  <jbeulich@suse.com>
-
-	x86: properly initialize struct instr_info instance(s)
-	Commit 39fb369834a3 ("opcodes: Make i386-dis.c thread-safe") introduced
-	a lot of uninitialized data. Alan has in particular observed ubsan
-	taking issue with the loop inverting the order of operands, where
-	op_riprel[] - an array of bool - can hold values other than 0 or 1.
-
-	Move instantiation of struct instr_info into print_insn() (thus having
-	just a single central point), and make use of C99 dedicated initializers
-	to fill fields right in the initializer where possible. This way all
-	fields not explicitly initialized will be zero-filled, which in turn
-	allows dropping of some other explicit initialization later in the
-	function or in ckprefix(). Additionally this removes a lot of
-	indirection, as all "ins->info" uses can simply become "info".
-
-	Make one further arrangement though, to limit the amount of data needing
-	(zero)initializing on every invocation: Convert the op_out structure
-	member to just an array of pointers, with the actual arrays living
-	inside print_insn() (and, as befoe, having just their 1st char filled
-	with nul).
-
-	While there, instead of adjusting print_insn()'s forward declaration,
-	arrange for no such declaration to be needed in the first place.
-
-2022-06-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-12  Tom Tromey  <tom@tromey.com>
-
-	Fix self-test failure in addrmap
-	Mark pointed out that my recent addrmap C++-ficiation changes caused a
-	regression in the self-tests.  This patch fixes the problem by
-	updating this test not to allocate the mutable addrmap on an obstack.
-
-	Remove psymtab_addrmap
-	While working on addrmaps, I noticed that psymtab_addrmap is no longer
-	needed now.  It was introduced in ancient times as an optimization for
-	DWARF, but no other symbol reader was ever updated to use it.  Now
-	that DWARF does not use psymtabs, it can be deleted.
-
-	Use malloc for mutable addrmaps
-	Mutable addrmaps currently require an obstack.  This was probably done
-	to avoid having to call splay_tree_delete, but examination of the code
-	shows that all mutable obstacks have a limited lifetime -- now it's
-	simple to treat them as ordinary C++ objects, in some cases
-	stack-allocating them, and have a destructor to make the needed call.
-	This patch implements this change.
-
-	Remove addrmap::create_fixed
-	addrmap::create_fixed is just a simple wrapper for 'new', so remove it
-	in favor of uses of 'new'.
-
-	Remove addrmap_create_mutable
-	This removes addrmap_create_mutable in favor of using 'new' at the
-	spots where the addrmap is created.
-
-	Remove addrmap wrapper functions
-	This removes the various addrmap wrapper functions in favor of simple
-	method calls on the objects themselves.
-
-	Move addrmap classes to addrmap.h
-	This moves the addrmap class definitions to addrmap.h.  This is safe
-	to do now that the contents are private.
-
-	Privacy for addrmap_mutable
-	This changes addrmap_mutable so that its data members are private.
-
-	Privacy for addrmap_fixed
-	This changes addrmap_fixed so that its data members are private.
-	It also makes struct addrmap_transition private as well.
-
-	Use inheritance for addrmap
-	This is a simply C++-ification of the basics of addrmap: it uses
-	virtual methods rather than a table of function pointers, and it
-	changes the concrete implementations to be subclasses.
-
-2022-06-12  Jon Turney  <jon.turney@dronecode.org.uk>
-
-	Trivial fixes to Cygwin build after 8fea1a81
-	* Remove a stray semicolon
-	* Restore dropped nullptr program argument in use of create_process() under CYGWIN
-
-	Simplify __USEWIDE
-	Prior to c6ca3dab dropping support for Cygwin 1.5, __USEWIDE was not
-	defined for Cygwin 1.5.  After that, it's always defined if __CYGWIN__
-	is, so remove __USEWIDE conditionals inside __CYGWIN__ conditionals.
-
-	Simplify cygwin_buf_t
-	Prior to c6ca3dab dropping support for Cygwin 1.5, cygwin_buf_t was
-	defined as char for Cygwin 1.5.  After that, it's always wchar_t, so
-	just use that.
-
-2022-06-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-10  Tom Tromey  <tom@tromey.com>
-
-	Fix warning-avoidance initialization in xcoffread.c
-	With the registry rewrite series, on Fedora 34, I started seeing this
-	error in xcoffread.c:
-
-	../../binutils-gdb/gdb/xcoffread.c: In function ‘void read_xcoff_symtab(objfile*, legacy_psymtab*)’:
-	../../binutils-gdb/gdb/xcoffread.c:948:25: error: ‘main_aux’ is used uninitialized [-Werror=uninitialized]
-	  948 |   union internal_auxent fcn_aux_saved = main_aux;
-	      |                         ^~~~~~~~~~~~~
-	../../binutils-gdb/gdb/xcoffread.c:933:25: note: ‘main_aux’ declared here
-	  933 |   union internal_auxent main_aux;
-	      |                         ^~~~~~~~
-
-	I don't know why this error started suddenly... that seems weird,
-	because it's not obviously related to the changes I made.
-
-	Looking into it, it seems this line was intended to avoid a similar
-	warning -- but since 'main_aux' is uninitialized at the point where it
-	is used, this fix was incomplete.
-
-	This patch avoids the warning by initializing using "{}".  I'm
-	checking this in.
-
-2022-06-10  Carl Love  <cel@us.ibm.com>
-
-	Fix comparison of unsigned long int to int in record_linux_system_call.
-	The if statement in case gdb_sys_ioctl in function
-	record_linux_system_call in file gdb/linux-record.c is as follows:
-
-	   if (tmpulongest == tdep->ioctl_FIOCLEX
-	      || tmpulongest == tdep->ioctl_FIONCLEX
-	    ....
-	      || tmpulongest == tdep->ioctl_TCSETSW
-	     ...
-	   }
-
-	The PowerPC ioctl value for ioctl_TCSETW is 0x802c7415.  The variable
-	ioctl_TCSETW is defined in gdb/linux-record.h as an int.  The TCSETW value
-	has the MSB set to one so it is a negative integer.  The comparison of the
-	unsigned long value tmpulongest to a negative integer value for
-	ioctl_TCSETSW fails.
-
-	This patch changes the declarations for the ioctl_* values in struct
-	linux_record_tdep to unsigned long to fix the comparisons between
-	tmpulongest and the tdep->ioctl_* values.
-
-	An additional test gdb.reverse/test_ioctl_TCSETSW.exp is added to verify
-	the gdb record_linux_system_call() if statement for the ioctl TCSETSW
-	succeeds.
-
-	This patch has been tested on Power 10 and Intel with no test failures.
-
-2022-06-10  Carl Love  <cel@us.ibm.com>
-
-	PowerPC, correct the gdb ioctl values for TCGETS, TCSETS, TCSETSW and TCSETSF.
-	Some of the ioctl numbers are based on the size of kernel termios structure.
-	Currently the PowerPC GDB definitions are "hard coded" into the ioctl
-	number.
-
-	The current PowerPC values for TCGETS, TCSETS, TCSETSW and TCSETSF are
-	defined in gdb/ppc-linux-tdep.c as:
-
-	  record_tdep->ioctl_TCGETS = 0x403c7413;
-	  record_tdep->ioctl_TCSETS = 0x803c7414;
-	  record_tdep->ioctl_TCSETSW = 0x803c7415;
-	  record_tdep->ioctl_TCSETSF = 0x803c7416;
-
-	Where the termios structure size is in hex digits [5:4] as 0x3c.
-
-	The definition for the PowerPC termios structure is given in:
-	  arch/powerpc/include/uapi/asm/termbits.h
-
-	The size of the termios data structure in this file is 0x2c not 0x3c.
-
-	This patch changes the hex digits for the size of the PowerPC termios size
-	in the ioctl values for TCGETS, TCSETS, TCSETSW and TCSETSF to 0x2c.
-	This patch also changes the hard coding to generate the number based on a
-	it easier to update the ioctl numbers.
-
-2022-06-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove definition of true/false from gdb_compiler_info
-	Since pretty much forever the get_compiler_info function has included
-	these lines:
-
-	    # Most compilers will evaluate comparisons and other boolean
-	    # operations to 0 or 1.
-	    uplevel \#0 { set true 1 }
-	    uplevel \#0 { set false 0 }
-
-	These define global variables true (to 1) and false (to 0).
-
-	It seems odd to me that these globals are defined in
-	get_compiler_info, I guess maybe the original thinking was that if a
-	compiler had different true/false values then we would detect it there
-	and define true/false differently.
-
-	I don't think we should be bundling this logic into get_compiler_info,
-	it seems weird to me that in order to use $true/$false a user needs to
-	first call get_compiler_info.
-
-	It would be better I think if each test script that wants these
-	variables just defined them itself, if in the future we did need
-	different true/false values based on compiler version then we'd just
-	do:
-
-	  if { [test_compiler_info "some_pattern"] } {
-	    # Defined true/false one way...
-	  } else {
-	    # Defined true/false another way...
-	  }
-
-	But given the current true/false definitions have been in place since
-	at least 1999, I suspect this will not be needed any time soon.
-
-	Given that the definitions of true/false are so simple, right now my
-	suggestion is just to define them in each test script that wants
-	them (there's not that many).  If we ever did need more complex logic
-	then we can always add a function in gdb.exp that sets up these
-	globals, but that seems overkill for now.
-
-	There should be no change in what is tested after this commit.
-
-2022-06-10  Luis Machado  <luis.machado@arm.com>
-
-	Document the ARM_CC_FOR_TARGET testsuite variable
-	This variable is useful when exercising AArch64 multi-arch support (debugging
-	32-bit AArch32 executables).
-
-	Unfortunately it isn't well documented. This patch adds information about it
-	and explains how to use it.
-
-2022-06-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix XPASS with gcc-12 in gdb.base/vla-struct-fields.exp
-	With gcc-12, I get for test-case gdb.base/vla-struct-fields.exp:
-	...
-	(gdb) print inner_vla_struct_object_size == sizeof(inner_vla_struct_object)^M
-	$7 = 1^M
-	(gdb) XPASS: gdb.base/vla-struct-fields.exp: size of inner_vla_struct_object
-	...
-
-	Fix this by limiting the xfailing to gcc-11 and earlier.  Also, limit the
-	xfailing to the equality test.
-
-	Tested on x86_64-linux.
-
-2022-06-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix timeout in gdb.ada/ghost.exp
-	On openSUSE Tumbleweed with gcc-12, I run into a timeout:
-	...
-	(gdb) print value^M
-	Multiple matches for value^M
-	[0] cancel^M
-	[1] ada.strings.maps.value (<ref> ada.strings.maps.character_mapping; \
-	    character) return character at a-strmap.adb:599^M
-	[2] pck.value at src/gdb/testsuite/gdb.ada/ghost/pck.ads:17^M
-	[3] system.object_reader.value (<ref> system.object_reader.object_symbol) \
-	    return system.object_reader.uint64 at s-objrea.adb:2279^M
-	[4] system.traceback.symbolic.value (system.address) return string at \
-	    s-trasym.adb:200^M
-	> FAIL: gdb.ada/ghost.exp: print value (timeout)
-	print ghost_value^M
-	Argument must be choice number^M
-	(gdb) FAIL: gdb.ada/ghost.exp: print ghost_value
-	...
-
-	Fix this by prefixing value (as well as the other printed values) with the
-	package name:
-	...
-	(gdb) print pck.value^M
-	...
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29055
-
-2022-06-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-09  Tom Tromey  <tromey@adacore.com>
-
-	Minor fix to Python breakpoint event documentation
-	I noticed that the Python event documentation referred to the event's
-	"breakpoint" field as a function, whereas it is actually an attribute.
-	This patch fixes the error.
-
-2022-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/aarch64: fix 32-bit arm compatibility
-	GDB's ability to run 32-bit ARM processes on an AArch64 native target
-	is currently broken.  The test gdb.multi/multi-arch.exp currently
-	fails with a timeout.
-
-	The cause of these problems is the following three functions:
-
-	  aarch64_linux_nat_target::thread_architecture
-	  aarch64_linux_nat_target::fetch_registers
-	  aarch64_linux_nat_target::store_registers
-
-	What has happened, over time, is that these functions have been
-	modified, forgetting that any particular thread (running on the native
-	target) might be an ARM thread, or might be an AArch64 thread.
-
-	The problems always start with a line similar to this:
-
-	  aarch64_gdbarch_tdep *tdep
-	    = (aarch64_gdbarch_tdep *) gdbarch_tdep (inf->gdbarch);
-
-	The problem with this line is that if 'inf->gdbarch' is an ARM
-	architecture, then gdbarch_tdep will return a pointer to an
-	arm_gdbarch_tdep object, not an aarch64_gdbarch_tdep object.  The
-	result of the above cast will, as a consequence, be undefined.
-
-	In aarch64_linux_nat_target::thread_architecture, after the undefined
-	cast we then proceed to make use of TDEP, like this:
-
-	  if (vq == tdep->vq)
-	    return inf->gdbarch;
-
-	Obviously at this point the result is undefined, but, if this check
-	returns false we then proceed with this code:
-
-	  struct gdbarch_info info;
-	  info.bfd_arch_info = bfd_lookup_arch (bfd_arch_aarch64, bfd_mach_aarch64);
-	  info.id = (int *) (vq == 0 ? -1 : vq);
-	  return gdbarch_find_by_info (info);
-
-	As a consequence we will return an AArch64 gdbarch object for our ARM
-	thread!  Things go downhill from there on.
-
-	There are similar problems, with similar undefined behaviour, in the
-	fetch_registers and store_registers functions.
-
-	The solution is to make use of a check like this:
-
-	  if (gdbarch_bfd_arch_info (inf->gdbarch)->bits_per_word == 32)
-
-	If the word size is 32 then we know we have an ARM architecture.  We
-	just need to make sure that we perform this check before trying to
-	read the tdep field.
-
-	In aarch64_linux_nat_target::thread_architecture a little reordering,
-	and the addition of the above check allows us to easily avoid the
-	undefined behaviour.
-
-	For fetch_registers and store_registers I made the decision to split
-	each of the functions into two new helper functions, and so
-	aarch64_linux_nat_target::fetch_registers now calls to either
-	aarch64_fetch_registers or aarch32_fetch_registers, and there's a
-	similar change for store_registers.
-
-	One thing I had to decide was whether to place the new aarch32_*
-	functions into the aarch32-linux-nat.c file.  In the end I decided to
-	NOT place the functions there, but instead leave them in
-	aarch64-linux-nat.c, my reasoning was this:
-
-	The existing functions in that file are shared from arm-linux-nat.c
-	and aarch64-linux-nat.c, this generic code to support 32-bit ARM
-	debugging from either native target.
-
-	In contrast, the two new aarch32 functions I have added _only_ make
-	sense when debugging on an AArch64 native target.  These function
-	shouldn't be called from arm-linux-nat.c at all, and so, if we places
-	the functions into aarch32-linux-nat.c, the functions would be built
-	into a 32-bit ARM GDB, but never used.
-
-	With that said, there's no technical reason why they couldn't go in
-	aarch32-linux-nat.c, so if that is preferred I'm happy to move them.
-
-	After this commit the gdb.multi/multi-arch.exp passes.
-
-2022-06-09  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Document and fix exception stack offsets
-	Add a description of exception entry context stacking and fix next
-	frame offset (at 0xA8 relative to R0 location) as well as FPU
-	registers ones (starting at 0x68 relative to R0).
-
-	gdb/arm: Simplify logic for updating addresses
-	Small performance improvement by fetching previous SP value only
-	once before the loop and reuse it to avoid fetching at every
-	iteration.
-
-2022-06-09  Pedro Alves  <pedro@palves.net>
-
-	Fix ARM_CC_FOR_TARGET handling
-	The previous patch that introduced the arm_cc_for_target procedure
-	moved the ARM_CC_FOR_TARGET global check to that procedure, but forgot
-	to tell tcl that ARM_CC_FOR_TARGET is a global.  As a result,
-	specifying ARM_CC_FOR_TARGET on the command line actually does
-	nothing.  This fixes it.
-
-	Change-Id: I4e33b7633fa665e2f7b8f8c9592a949d74a19153
-
-2022-06-09  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb/arm: Terminate unwinding when LR is 0xffffffff
-	ARMv7-M Architecture Reference "A2.3.1 Arm core registers" states
-	that LR is set to 0xffffffff on reset.
-
-	ARMv8-M Architecture Reference "B3.3 Registers" states that LR is set
-	to 0xffffffff on warm reset if Main Extension is implemented,
-	otherwise the value is unknown.
-
-2022-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: solve problems with compiler_info caching
-	After this commit:
-
-	  commit 44d469c5f85a4243462b8966722dafa62b602bf5
-	  Date:   Tue May 31 16:43:44 2022 +0200
-
-	      gdb/testsuite: add Fortran compiler identification to GDB
-
-	Some regressions were noticed:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-May/189673.html
-
-	The problem is associated with how compiler_info variable is cached
-	between calls to get_compiler_info.
-
-	Even before the above commit, get_compiler_info supported two
-	language, C and C++.  Calling get_compiler_info would set the global
-	compiler_info based on the language passed as an argument to
-	get_compiler_info, and, in theory, compiler_info would not be updated
-	for the rest of the dejagnu run.
-
-	This obviously is slightly broken behaviour.  If the first call to
-	get_compiler_info was for the C++ language then compiler_info would be
-	set based on the C++ compiler in use, while if the first call to
-	get_compiler_info was for the C language then compiler_info would be
-	set based on the C compiler.
-
-	This probably wasn't very noticable, assuming a GCC based test
-	environment then in most cases the C and C++ compiler would be the
-	same version.
-
-	However, if the user starting playing with CC_FOR_TARGET or
-	CXX_FOR_TARGET, then they might not get the behaviour they expect.
-
-	Except, to make matters worse, most of the time, the user probably
-	would get the behaviour they expected .... except when they didn't!
-	I'll explain:
-
-	In gdb.exp we try to avoid global variables leaking between test
-	scripts, this is done with the help of the two procs
-	gdb_setup_known_globals and gdb_cleanup_globals.  All known globals
-	are recorded before a test script starts, and then, when the test
-	script ends, any new globals are deleted.
-
-	Normally, compiler_info is only set as a result of a test script
-	calling get_compiler_info or test_compiler_info.  This means that the
-	compiler_info global will not exist when the test script starts, but
-	will exist when the test script end, and so, the compiler_info
-	variable is deleted at the end of each test.
-
-	This means that, in reality, the compiler_info is recalculated once
-	for each test script, hence, if a test script just checks on the C
-	compiler, or just checks on the C++ compiler, then compiler_info will
-	be correct and the user will get the behaviour they expect.
-
-	However, if a single test script tries to check both the C and C++
-	compiler versions then this will not work (even before the above
-	commit).
-
-	The situation is made worse be the behaviour or the load_lib proc.
-	This proc (provided by dejagnu) will only load each library once.
-	This means that if a library defines a global, then this global would
-	normally be deleted at the end of the first test script that includes
-	the library.
-
-	As future attempts to load the library will not actually reload it,
-	then the global will not be redefined and would be missing for later
-	test scripts that also tried to load that library.
-
-	To work around this issue we override load_lib in gdb.exp, this new
-	version adds all globals from the newly loaded library to the list of
-	globals that should be preserved (not deleted).
-
-	And this is where things get interesting for us.  The library
-	trace-support.exp includes calls, at the file scope, to things like
-	is_amd64_regs_target, which cause get_compiler_info to be called.
-	This means that after loading the library the compiler_info global is
-	defined.
-
-	Our override of load_lib then decides that this new global has to be
-	preserved, and adds it to the gdb_persistent_globals array.
-
-	From that point on compiler_info will never be recomputed!
-
-	This commit addresses all the caching problems by doing the following:
-
-	Change the compiler_info global into compiler_info_cache global.  This
-	new global is an array, the keys of this array will be each of the
-	supported languages, and the values will be the compiler version for
-	that language.
-
-	Now, when we call get_compiler_info, if the compiler information for
-	the specific language has not been computed, then we do that, and add
-	it to the cache.
-
-	Next, compiler_info_cache is defined by calling
-	gdb_persistent_global.  This automatically adds the global to the list
-	of persistent globals.  Now the cache will not be deleted at the end
-	of each test script.
-
-	This means that, for a single test run, we will compute the compiler
-	version just once for each language, this result will then be cached
-	between test scripts.
-
-	Finally, the legacy 'gcc_compiled' flag is now only set when we call
-	get_compiler_info with the language 'c'.  Without making this change
-	the value of 'gcc_compiled' would change each time a new language is
-	passed to get_compiler_info.  If the last language was e.g. Fortran,
-	then gcc_compiled might be left false.
-
-2022-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: handle errors better in test_compiler_info
-	Now that get_compiler_info might actually fail (if the language is not
-	handled), then we should try to handle this failure better in
-	test_compiler_info.
-
-	After this commit, if get_compiler_info fails then we will return a
-	suitable result depending on how the user called test_compiler_info.
-
-	If the user does something like:
-
-	  set version [test_compiler_info "" "unknown-language"]
-
-	Then test_compiler_info will return an empty string.  My assumption is
-	that the user will be trying to match 'version' against something, and
-	the empty string hopefully will not match.
-
-	If the user does something like:
-
-	  if { [test_compiler_info "some_pattern" "unknown-language"] } {
-	    ....
-	  }
-
-	Then test_compiler_info will return false which seems the obvious
-	choice.
-
-	There should be no change in the test results after this commit.
-
-2022-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: make 'c' default language for get/test compiler info
-	This commit is a minor cleanup for the two functions (in gdb.exp)
-	get_compiler_info and test_compiler_info.
-
-	Instead of using the empty string as the default language, and just
-	"knowing" that this means the C language.  Make this explicit.  The
-	language argument now defaults to "c" if not specified, and the if
-	chain in get_compiler_info that checks the language not explicitly
-	handles "c" and gives an error for unknown languages.
-
-	This is a good thing, now that the API appears to take a language, if
-	somebody does:
-
-	  test_compiler_info "xxxx" "rust"
-
-	to check the version of the rust compiler then we will now give an
-	error rather than just using the C compiler and leaving the user
-	having to figure out why they are not getting the results they
-	expect.
-
-	After a little grepping, I think the only place we were explicitly
-	passing the empty string to either get_compiler_info or
-	test_compiler_info was in gdb_compile_shlib_1, this is now changed to
-	pass "c" as the default language.
-
-	There should be no changes to the test results after this commit.
-
-2022-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove get_compiler_info calls from gdb.exp and dwarf.exp
-	We don't need to call get_compiler_info before calling
-	test_compiler_info; test_compiler_info includes a call to
-	get_compiler_info.
-
-	This commit cleans up lib/gdb.exp and lib/dwarf.exp a little by
-	removing some unneeded calls to get_compiler_info.  We could do the
-	same cleanup throughout the testsuite, but I'm leaving that for
-	another day.
-
-	There should be no change in the test results after this commit.
-
-2022-06-09  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: use test_compiler_info in gcc_major_version
-	The procedure gcc_major_version was earlier using the global variable
-	compiler_info to retrieve gcc's major version.  This is discouraged and
-	(as can be read in a comment in compiler.c) compiler_info should be
-	local to get_compiler_info and test_compiler_info.
-
-	The preferred way of getting the compiler string is via calling
-	test_compiler_info without arguments.  Gcc_major_version was changed to
-	do that.
-
-2022-06-09  Yvan Roux  <yvan.roux@foss.st.com>
-
-	gdb: add Yvan Roux to gdb/MAINTAINERS
-
-2022-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: resolve duplicate test names in gdb.threads/tls.exp
-	While running the gdb.threads/tls.exp test with a GDB configured
-	without Python, I noticed some duplicate test names.
-
-	This is caused by a call to skip_python_tests that is within a proc
-	that is called multiple times by the test script.  Each call to
-	skip_python_tests results in a call to 'unsupported', and this causes
-	the duplicate test names.
-
-	After this commit we now call skip_python_tests just once and place
-	the result into a variable.  Now, instead of calling skip_python_tests
-	multiple times, we just check the variable.
-
-	There should be no change in what is tested after this commit.
-
-2022-06-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: resolve duplicate test name in gnu_vector.exp
-	While testing on AArch64 I spotted a duplicate test name in the
-	gdb.base/gnu_vector.exp test.
-
-	This commit adds a 'with_test_prefix' to resolve the duplicate.
-
-	While I was in the area I updated a 'gdb_test_multiple' call to make
-	use of $gdb_test_name.
-
-	There should be no change in what is tested after this commit.
-
-2022-06-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-08  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make throw_perror_with_name static
-	The throw_perror_with_name function is not used outside of utils.c
-	right now.  And as perror_with_name is just a wrapper around
-	throw_perror_with_name, then any future calls would be to
-	perror_with_name.
-
-	Lets make throw_perror_with_name static.
-
-	There should be no user visible changes after this commit.
-
-2022-06-08  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove trailing '.' from perror_with_name calls
-	I ran into this error while working on AArch64 GDB:
-
-	  Unable to fetch VFP registers.: Invalid argument.
-
-	Notice the '.:' in the middle of this error message.
-
-	This is because of this call in aarch64-linux-nat.c:
-
-	  perror_with_name (_("Unable to fetch VFP registers."));
-
-	The perror_with_name function take a string, and adds ': <message>' to
-	the end the string, so I don't think the string that we pass to
-	perror_with_name should end in '.'.
-
-	This commit removes all of the trailing '.' characters from
-	perror_with_name calls, which give more readable error messages.
-
-	I don't believe that any of these errors are tested in the
-	testsuite (after a little grepping).
-
-2022-06-08  Tom Tromey  <tom@tromey.com>
-
-	Move CU queue to dwarf2_per_objfile
-	The CU queue is a member of dwarf2_per_bfd, but it is only used when
-	expanding CUs.  Also, the dwarf2_per_objfile destructor checks the
-	queue -- however, if the per-BFD object is destroyed first, this will
-	not work.  This was pointed out Lancelot as fallout from the patch to
-	rewrite the registry system.
-
-	This patch avoids this problem by moving the queue to the per-objfile
-	object.
-
-2022-06-08  Tom Tromey  <tom@tromey.com>
-
-	Change allocation of m_dwarf2_cus
-	m_dwarf2_cus manually manages the 'dwarf2_cu' pointers it owns.  This
-	patch simplifies the code by changing it to use unique_ptr.
-
-2022-06-08  Andrew Burgess  <aburgess@redhat.com>
-
-	libopcodes: extend the styling within the i386 disassembler
-	The i386 disassembler is pretty complex.  Most disassembly is done
-	indirectly; operands are built into buffers within a struct instr_info
-	instance, before finally being printed later in the disassembly
-	process.
-
-	Sometimes the operand buffers are built in a different order to the
-	order in which they will eventually be printed.
-
-	Each operand can contain multiple components, e.g. multiple registers,
-	immediates, other textual elements (commas, brackets, etc).
-
-	When looking for how to apply styling I guess the ideal solution would
-	be to move away from the operands being a single string that is built
-	up, and instead have each operand be a list of "parts", where each
-	part is some text and a style.  Then, when we eventually print the
-	operand we would loop over the parts and print each part with the
-	correct style.
-
-	But it feels like a huge amount of work to move from where we are
-	now to that potentially ideal solution.  Plus, the above solution
-	would be pretty complex.
-
-	So, instead I propose a .... different solution here, one that works
-	with the existing infrastructure.
-
-	As each operand is built up, piece be piece, we pass through style
-	information.  This style information is then encoded into the operand
-	buffer (see below for details).  After this the code can continue to
-	operate as it does right now in order to manage the set of operand
-	buffers.
-
-	Then, as each operand is printed we can split the operand buffer into
-	chunks at the style marker boundaries, with each chunk being printed
-	with the correct style.
-
-	For encoding the style information I use a single character, currently
-	\002, followed by the style encoded as a single hex digit, followed
-	again by the \002 character.
-
-	This of course relies on there not being more than 16 styles, but that
-	is currently true, and hopefully will remain true for the foreseeable
-	future.
-
-	The other major concern that has arisen around this work is whether
-	the escape character could ever be encountered in output naturally
-	generated by the disassembler.  If this did happen then the escape
-	characters would be stripped from the output, and the wrong styling
-	would be applied.
-
-	However, I don't believe that this is currently a problem.
-	Disassembler content comes from a number of sources.  First there's
-	content that copied directly from the i386-dis.c file, this is things
-	like register names, and other syntax elements (brackets, commas,
-	etc).  We can easily check that the i386-dis.c file doesn't contain
-	our special character.
-
-	The next source of content are immediate operands.  The text for these
-	operands is generated by calls into libc.  By selecting a
-	non-printable character we can be confident that this is not something
-	that libc will generate as part of an immediate representation.
-
-	The other output that appears to be from the disassembler is operands
-	that contain addresses and (possibly) symbol names.  It is quite
-	possible that a symbol name might contain any special character we
-	could imagine, so is this a problem?
-
-	I don't think it is, we don't actually print address and symbol
-	operands through the disassembler, instead, the disassembler calls
-	back to the user (objdump, gdb, etc) to print the address and symbol
-	on its behalf.  This content is printed directly to the output stream,
-	it does not pass through the i386 disassembler output buffers.  As a
-	result, we never check this particular output for styling escape
-	characters.
-
-	In some (not very scientific) benchmarking on my machine,
-	disassembling a reasonably large (142M) shared library, I'm not seeing
-	any significant slow down in disassembler speed with this change.
-
-	Most instructions are now being fully syntax highlighted when I
-	disassemble using the --disassembler-color=extended-color option.  I'm
-	sure that there are probably still a few corner cases that need fixing
-	up, but we can come back to them later I think.
-
-	When disassembler syntax highlighting is not being used, then there
-	should be no user visible changes after this commit.
-
-2022-06-08  Carl Love  <cel@us.ibm.com>
-
-	Fix gdb.arch/powerpc-power7.exp isel disassembly output.
-	The following commit changes the output format for the isel instruction on
-	PowerPC.
-
-	   commit dd4832bf3efc1bd1797a6b9188260692b8b0db52     Introduces error in test
-	   Author: Dmitry Selyutin <ghostmansd@gmail.com>
-	   Date:   Tue May 24 13:46:35 2022 +0000
-
-	       opcodes: introduce BC field; fix isel
-
-	       Per Power ISA Version 3.1B 3.3.12, isel uses BC field rather than CRB
-	       field present in binutils sources. Also, per 1.6.2, BC has the same
-	       semantics as BA and BB fields, so this should keep the same flags and
-	       mask, only with the different offset.
-
-	       opcodes/
-	               * ppc-opc.c
-	               (BC): Define new field, with the same definition as CRB field,
-	               but with the PPC_OPERAND_CR_BIT flag present.
-	       gas/
-	               * testsuite/gas/ppc/476.d: Update.
-	               * testsuite/gas/ppc/a2.d: Update.
-	               * testsuite/gas/ppc/e500.d: Update.
-	               * testsuite/gas/ppc/power7.d: Update.
-	  <snip>
-	   --- a/gas/testsuite/gas/ppc/476.d
-	   +++ b/gas/testsuite/gas/ppc/476.d
-	   @@ -209,7 +209,7 @@ Disassembly of section \.text:
-	    .*:    (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
-	    +.*:    (7c 43 27 1e|1e 27 43 7c)       isel    r2,r3,r4,4\*cr7\+lt
-
-	The above change breaks the gdb regression test gdb.arch/powerpc-power7.exp
-	on Power 7, Power 8, Power 9 and Power 10.
-
-	This patch updates the regression test gdb.arch/powerpc-power7.exp with
-	the new expected output for the isel instruction.
-
-	The patch has been tested on Power 7 and Power 10 to verify the patch fixes
-	the test.
-
-2022-06-08  Pedro Alves  <pedro@palves.net>
-
-	aarch64: Add fallback if ARM_CC_FOR_TARGET not set
-	On Aarch64, you can set ARM_CC_FOR_TARGET to point to the 32-bit
-	compiler to use when testing gdb.multi/multi-arch.exp and
-	gdb.multi/multi-arch-exec.exp.  If you don't set it, then those
-	testcases don't run.
-
-	I guess that approximately nobody remembers to set ARM_CC_FOR_TARGET.
-
-	This commit adds a fallback.  If ARM_CC_FOR_TARGET is not set, and
-	testing for Linux, try arm-linux-gnueabi-gcc,
-	arm-none-linux-gnueabi-gcc, arm-linux-gnueabihf-gcc as 32-bit
-	compilers, making sure that the produced executable runs on the target
-	machine before claiming that the compiler produces useful executables.
-
-	Change-Id: Iefe5865d5fc84b4032eaff7f4c5c61582bf75c39
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	Don't encode reloc.size
-	I expect the encoded reloc.size field originally came from aout
-	r_length ecoding, but somehow went wrong for 64-bit relocs (which
-	should have been encoded as 3).  Toss all that out, just use a byte
-	size instead.  The changes outside of reloc.c in this patch should
-	make the code independent of how reloc.size is encoded.
-
-		* reloc.c (struct reloc_howto_struct): Increase size field by
-		one bit.  Comment.
-		(HOWTO_RSIZE): Don't encode size.
-		(bfd_get_reloc_size): Adjust, and make it an inline function.
-		(read_reloc, write_reloc): Adjust.
-		* bfd-in2.h: Regenerate.
-		* aout-ns32k.c: Include libbfd.h.
-		(put_reloc): Don't use howto->size directly.  Calculate r_length
-		using bfd_log2 and bfd_get_reloc_size.
-		* aoutx.h (swap_std_reloc_out): Likewise.
-		(aout_link_reloc_link_order): Likewise.
-		* i386lynx.c (swap_std_reloc_out
-		* mach-o-i386.c (bfd_mach_o_i386_swap_reloc_out
-		* pdp11.c (aout_link_reloc_link_order
-		* coff-arm.c (coff_arm_reloc): Don't use howto->size directly,
-		use bfd_get_reloc_size instead and adjust switch cases.
-		* coff-i386.c (coff_i386_reloc): Similarly.
-		* coff-x86_64.c (coff_amd64_reloc): Likewise.
-		* cpu-ns32k.c (do_ns32k_reloc): Likewise.
-		* elf32-arc.c (arc_do_relocation): Likewise.
-		* elf32-arm.c (elf32_arm_final_link_relocate): Likewise.
-		* elf32-bfin.c (bfin_bfd_reloc): Likewise.
-		* elf32-cr16.c (cr16_elf_final_link_relocate): Likewise.
-		* elf32-cris.c (cris_elf_pcrel_reloc): Likewise.
-		* elf32-crx.c (crx_elf_final_link_relocate): Likewise.
-		* elf32-csky.c (csky_elf_relocate_section): Likewise.
-		* elf32-d10v.c (extract_rel_addend, insert_rel_addend): Likewise.
-		* elf32-i386.c (elf_i386_relocate_section): Likewise.
-		* elf32-m32r.c (m32r_elf_generic_reloc): Likewise.
-		* elf32-nds32.c (nds32_elf_generic_reloc): Likewise.
-		* syms.c (_bfd_stab_section_find_nearest_line): Likewise.
-		* coff-rs6000.c (xcoff_ppc_relocate_section): Adjust howto.size.
-		* coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	bfin reloc offset checks
-	These all ought to use bfd_reloc_offset_in_range.  In particular, replace
-	the check using howto->size + 1u.
-
-		* elf32-bfin.c (bfin_pcrel24_reloc): Use bfd_reloc_offset_in_range.
-		(bfin_imm16_reloc, bfin_byte4_reloc, bfin_bfd_reloc),
-		(bfin_final_link_relocate): Likewise.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	Revert reloc howto nits
-	The "HOWTO size encoding" patch put 1 as the HOWTO size arg for
-	numerous howtos that are unused, describe dynamic relocs, are markers,
-	or otherwise are special purpose reloc howtos that don't care about
-	the size.  The idea was to ensure no howto changed by inspecting
-	object files.  Revert those changes, making them zero size.
-
-		* coff-alpha.c: Give special purpose reloc howtos a size of zero.
-		* coff-mcore.c, * elf-hppa.h, * elf-m10300.c, * elf32-arm.c,
-		* elf32-csky.c, * elf32-m32c.c, * elf32-m68k.c, * elf32-mep.c,
-		* elf32-mips.c, * elf32-ppc.c, * elf32-rx.c, * elf32-s390.c,
-		* elf32-spu.c, * elf32-tic6x.c, * elf32-tilepro.c, *elf32-vax.c,
-		* elf32-xtensa.c, * elf64-alpha.c, * elf64-mips.c,
-		* elf64-mmix.c, * elf64-ppc.c, * elf64-s390.c, * elfn32-mips.c,
-		* elfxx-loongarch.c, * elfxx-riscv.c, * elfxx-sparc.c,
-		* elfxx-tilegx.c, * som.c, * vms-alpha.c: Likewise.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	HOWTO size encoding
-	This changes the HOWTO macro to encode the howto.size field from a
-	value given in bytes.  This of course requires editing all target
-	uses of HOWTO, a major pain, but makes it a little nicer to specify
-	new target HOWTOs.  Object files before/after this patch are
-	unchanged in .data and .rodata.
-
-	bfd/
-		* reloc.c (HOWTO_RSIZE): Encode size in bytes.
-		(EMPTY_HOWTO): Adjust to keep it all zero.
-		* aout-ns32k.c, * aoutx.h, * coff-alpha.c, * coff-arm.c,
-		* coff-i386.c, * coff-mcore.c, * coff-mips.c, * coff-rs6000.c,
-		* coff-sh.c, * coff-tic30.c, * coff-tic4x.c, * coff-tic54x.c,
-		* coff-x86_64.c, * coff-z80.c, * coff-z8k.c, * coff64-rs6000.c,
-		* elf-hppa.h, * elf-m10200.c, * elf-m10300.c, * elf32-arc.c,
-		* elf32-arm.c, * elf32-avr.c, * elf32-bfin.c, * elf32-cr16.c,
-		* elf32-cris.c, * elf32-crx.c, * elf32-csky.c, * elf32-d10v.c,
-		* elf32-d30v.c, * elf32-dlx.c, * elf32-epiphany.c,
-		* elf32-fr30.c, * elf32-frv.c, * elf32-ft32.c, * elf32-gen.c,
-		* elf32-h8300.c, * elf32-i386.c, * elf32-ip2k.c, * elf32-iq2000.c,
-		* elf32-lm32.c, * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc11.c,
-		* elf32-m68hc12.c, * elf32-m68k.c, * elf32-mcore.c, * elf32-mep.c,
-		* elf32-metag.c, * elf32-microblaze.c, * elf32-mips.c,
-		* elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c,
-		* elf32-nios2.c, * elf32-or1k.c, * elf32-pj.c, * elf32-ppc.c,
-		* elf32-pru.c, * elf32-rl78.c, * elf32-rx.c, * elf32-s12z.c,
-		* elf32-s390.c, * elf32-score.c, * elf32-score7.c,
-		* elf32-sh-relocs.h, * elf32-spu.c, * elf32-tic6x.c,
-		* elf32-tilepro.c, * elf32-v850.c, * elf32-vax.c,
-		* elf32-visium.c, * elf32-wasm32.c, * elf32-xc16x.c,
-		* elf32-xgate.c, * elf32-xstormy16.c, * elf32-xtensa.c,
-		* elf32-z80.c, * elf64-alpha.c, * elf64-bpf.c, * elf64-gen.c,
-		* elf64-mips.c, * elf64-mmix.c, * elf64-nfp.c, * elf64-ppc.c,
-		* elf64-s390.c, * elf64-x86-64.c, * elfn32-mips.c,
-		* elfnn-aarch64.c, * elfxx-ia64.c, * elfxx-loongarch.c,
-		* elfxx-mips.c, * elfxx-riscv.c, * elfxx-sparc.c,
-		* elfxx-tilegx.c, * mach-o-aarch64.c, * mach-o-arm.c,
-		* mach-o-i386.c, * mach-o-x86-64.c, * pdp11.c, * reloc.c,
-		* som.c, * vms-alpha.c: Adjust all uses of HOWTO.
-		* bfd-in2.h: Regenerate.
-	include/
-		* elf/arc-reloc.def: Adjust all uses of HOWTO.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	HOWTO_RSIZE
-	Define a helper macro for HOWTO.
-
-	       * reloc.c (HOWTO_RSIZE): Define.
-	       (HOWTO): Use it.
-	       * bfd-in2.h: Regenerate.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	elf64-nfp reloc fix
-	These are all dummy howtos, there is no reason one of them should
-	have partial_inplace true.
-
-		* elf64-nfp.c (elf_nfp_howto_table <R_NFP_IMMED_LO16_I_B>): Don't
-		set partial_inplace.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	coff-z80 reloc howto fixes
-	Mostly cosmetic unless attempting to link coff-z80 into another output
-	format.
-
-		* coff-z80.c (howto_table <R_IMM24, R_WORD0, R_WORD1>): Correct size.
-		(extra_case): Use bfd_{get,put}_24 when applying R_IMM24.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	NONE reloc fixes
-	Make them all zero size standard do-nothing howtos.
-
-		* elf32-csky.c (csky_elf_howto_table <R_CKCORE_NONE>): Correct howto.
-		* elf32-ft32.c (ft32_elf_howto_table <R_FT32_NONE>): Likewise.
-		* elf32-gen.c (dummy): Likewise.
-		* elf32-nds32.c (none_howto): Likewise.
-		* elf32-nios2.c (elf_nios2_r2_howto_table_rel <R_NIOS2_NONE>):
-		Likewise.
-		* elf32-pru.c (elf_pru_howto_table_rel <R_PRU_NONE>): Likewise.
-		* elf32-v850.c (v800_elf_howto_table <R_V810_NONE>): Likewise.
-		* elf64-gen.c (dummy): Likewise.
-		* elfn32-mips.c (elf_mips_howto_table_rela <R_MIPS_NONE): Likewise.
-		* elfxx-mips.c (none_howto): Likewise.
-		* reloc.c (none_howto): Likewise.
-
-2022-06-08  Alan Modra  <amodra@gmail.com>
-
-	asan: double free sb_kill
-	oss-fuzz hits a flaky crash with a double-free.  I think this is due
-	to gas static state not being reinitialised between testcases, a bug
-	with oss-fuzz not gas.  Anyway, this patch should avoid the problem.
-
-		* input-scrub.c (input_scrub_push): Move init of sb_index..
-		(input_scrub_reinit): ..to here.
-
-2022-06-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-07  Tom Tromey  <tromey@adacore.com>
-
-	Use subclasses of windows_process_info
-	This changes windows_process_info to use virtual methods for its
-	callbacks, and then changes the two clients of this code to subclass
-	this class to implement the methods.
-
-	I considered using CRTP here, but that would require making the new
-	structures visible to the compilation of of nat/windows-nat.c.  This
-	seemed like a bit of a pain, so I didn't do it.
-
-	This change then lets us change all the per-inferior globals to be
-	members of the new subclass.  Note that there can still only be a
-	single inferior -- currently there's a single global of the new type.
-	This is just another step toward possibly implementing multi-inferior
-	for Windows.
-
-	It's possible this could be cleaned up further... ideally I'd like to
-	move more of the data into the base class.  However, because gdb
-	supports Cygwin and gdbserver does not, and because I don't have a way
-	to build or test Cygwin, larger refactorings are difficult.
-
-2022-06-07  Tom Tromey  <tromey@adacore.com>
-
-	Turn some windows-nat.c static functions into methods
-	This patch turns some windows-nat.c static functions into methods on
-	windows_nat_target.  This avoids having to reference the
-	windows_nat_target singleton in some more spots -- a minor code
-	cleanup.
-
-	Allow ASLR to be disabled on Windows
-	On Windows, it is possible to disable ASLR when creating a process.
-	This patch adds code to do this, and hooks it up to gdb's existing
-	disable-randomization feature.  Because the Windows documentation
-	cautions that this isn't available on all versions of Windows, the
-	CreateProcess wrapper function is updated to make the attempt, and
-	then fall back to the current approach if it fails.
-
-	Introduce wrapper for CreateProcess
-	This is a small refactoring that introduces a wrapper for the Windows
-	CreateProcess function.  This is done to make the next patch a bit
-	simpler.
-
-2022-06-07  Enze Li  <enze.li@hotmail.com>
-
-	Update my email address in gdb/MAINTAINERS
-
-2022-06-07  Tom Tromey  <tromey@adacore.com>
-
-	Constify solib_name_from_address
-	I noticed that solib_name_from_address returned a non-const string,
-	but it's more appropriate to return const.  This patch implements
-	this.  Tested by rebuilding.
-
-2022-06-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/rust] Add missing _() for error call
-	In commit 1390b65a1b9 ("[gdb/rust] Fix literal truncation") I forgot to add
-	_() around a string using in an error call.
-
-	Fix this by adding the missing _().
-
-	Tested on x86_64-linux.
-
-2022-06-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Allow frv::fr300 in selftests
-	In skip_arch in gdb/selftest-arch.c we skip architecture fr300 because of
-	PR20946, but the PR has been fixed by commit 0ae60c3ef45 ("Prevent an abort in
-	the FRV disassembler if the target bfd name is unknown.") in Januari 2017.
-
-	Remove the skipping of frv::fr300.
-
-	Tested on x86_64-linux.
-
-2022-06-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-06  Tom Tromey  <tromey@adacore.com>
-
-	Consolidate "Python API" sections in NEWS
-	I noticed that the gdb NEWS file had two "Python API" sections in
-	"Changes since GDB 12".  This patch consolidates the two.  I chose to
-	preserve the second one, first because it is longer, and second
-	because I felt that user command changes should come before API
-	changes.
-
-	Simplify varobj "change" logic
-	varobj used to store 'print_value' as a C string, where NULL was a
-	valid value, and so it had logic to handle this situation.  However,
-	at some point this was changed to be a std::string, and so the code
-	can be simplified in this spot.
-
-2022-06-06  Tom Tromey  <tromey@adacore.com>
-
-	Remove "-break-insert -r" tests
-	PR mi/14270 points out that mi-break.exp has some tests for an
-	unimplemented "-r" switch for "-break-insert".  This switch was never
-	implemented, and is not documented -- though it is mentioned in a
-	comment in the documentation.  This patch removes the test and the doc
-	comment.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=14270
-
-2022-06-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Name arch selftests more clearly
-	When running some all archs selftest I get:
-	...
-	$ gdb -q -batch -ex "maint selftest unpack_field_as_long"
-	Running selftest unpack_field_as_long::A6.
-	...
-
-	By now I know that A6 is an arc architecture, but for others that's less
-	clear.
-
-	Fix this by using unpack_field_as_long::arc::A6 instead.
-
-	This then introduces redundant names like arm::arm, so try to avoid those,
-	though I'm not entirely convinced that that's worth the trouble.
-
-	This introduces the following new names:
-	...
-	+Running selftest unpack_field_as_long::am33_2::am33-2.
-	+Running selftest unpack_field_as_long::arc::A6.
-	+Running selftest unpack_field_as_long::arc::A7.
-	+Running selftest unpack_field_as_long::arc::EM.
-	+Running selftest unpack_field_as_long::arc::HS.
-	+Running selftest unpack_field_as_long::arm::ep9312.
-	+Running selftest unpack_field_as_long::arm::iwmmxt.
-	+Running selftest unpack_field_as_long::arm::iwmmxt2.
-	+Running selftest unpack_field_as_long::arm::xscale.
-	+Running selftest unpack_field_as_long::bpf::xbpf.
-	+Running selftest unpack_field_as_long::frv::fr400.
-	+Running selftest unpack_field_as_long::frv::fr450.
-	+Running selftest unpack_field_as_long::frv::fr500.
-	+Running selftest unpack_field_as_long::frv::fr550.
-	+Running selftest unpack_field_as_long::frv::simple.
-	+Running selftest unpack_field_as_long::frv::tomcat.
-	+Running selftest unpack_field_as_long::iq2000::iq10.
-	+Running selftest unpack_field_as_long::m32c::m16c.
-	+Running selftest unpack_field_as_long::mep::c5.
-	+Running selftest unpack_field_as_long::mep::h1.
-	+Running selftest unpack_field_as_long::nds32::n1.
-	+Running selftest unpack_field_as_long::nds32::n1h.
-	+Running selftest unpack_field_as_long::nds32::n1h_v2.
-	+Running selftest unpack_field_as_long::nds32::n1h_v3.
-	+Running selftest unpack_field_as_long::nds32::n1h_v3m.
-	+Running selftest unpack_field_as_long::z80::ez80-adl.
-	+Running selftest unpack_field_as_long::z80::ez80-z80.
-	+Running selftest unpack_field_as_long::z80::gbz80.
-	+Running selftest unpack_field_as_long::z80::r800.
-	+Running selftest unpack_field_as_long::z80::z180.
-	...
-
-	Tested on x86_64-linux.
-
-2022-06-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Enable some more print_one_insn selftests
-	In print_one_insn_test we have this cluster of skipped tests:
-	...
-	    case bfd_arch_ia64:
-	    case bfd_arch_mep:
-	    case bfd_arch_mips:
-	    case bfd_arch_tic6x:
-	    case bfd_arch_xtensa:
-	      return;
-	...
-
-	Enable some of these, and document in more detail why they're enabled or
-	skipped.
-
-	Likewise, document bfd_arch_or1k because it's an odd case.
-
-	Tested on x86_64-linux.
-
-2022-06-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix maint selftest -v print_one_insn
-	When running the print_one_insn selftests with -v, I get:
-	...
-	$ gdb -q -batch -ex "maint selftest -v print_one_insn"
-	Running selftest print_one_insn::A6.
-	.shor   0x783eRunning selftest print_one_insn::A7.
-	trap_s  0x1Running selftest print_one_insn::ARC600.
-	.shor   0x783eRunning selftest print_one_insn::ARC601.
-	Running selftest print_one_insn::ARC700.
-	trap_s  0x1Running selftest print_one_insn::ARCv2.
-	trap_s  0x1Running selftest print_one_insn::EM.
-	trap_s  0x1Running selftest print_one_insn::HS.
-	trap_s  0x1Running selftest print_one_insn::Loongarch32.
-	...
-
-	The insn is written to gdb_stdout, and there is code in the selftest to add a
-	newline after the insn, which writes to stream().
-
-	The stream() ui_file points into a string buffer, which the disassembler uses
-	before writing to gdb_stdout, so writing into it after the disassembler has
-	finished has no effect.
-
-	Fix this by using gdb_stdlog and debug_printf (which is what the unit test
-	infrastructure itself uses) instead, such that we have:
-	...
-	Running selftest print_one_insn::A6.
-	.shor   0x783e
-	Running selftest print_one_insn::A7.
-	trap_s  0x1
-	Running selftest print_one_insn::ARC600.
-	.shor   0x783e
-	Running selftest print_one_insn::ARC601.
-	Running selftest print_one_insn::ARC700.
-	trap_s  0x1
-	Running selftest print_one_insn::ARCv2.
-	trap_s  0x1
-	Running selftest print_one_insn::Loongarch32.
-	...
-
-	Note: I've also removed the printing of arch_name, which would give
-	us otherwise the redundant:
-	...
-	Running selftest print_one_insn::A6.
-	arc .shor       0x783e
-	Running selftest print_one_insn::A7.
-	arc trap_s      0x1
-	...
-
-	Tested on x86_64-linux.
-
-2022-06-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: add missing skip_python_tests call in py-doc-reformat.exp
-	In commit:
-
-	  commit 51e8dbe1fbe7d8955589703140ca5eba7b4f1bd7
-	  Date:   Mon May 16 19:26:54 2022 +0100
-
-	      gdb/python: improve formatting of help text for user defined commands
-
-	the test that was added (gdb.python/py-doc-reformat.exp) was missing a
-	call to skip_python_tests.  As a result, this test would fail for any
-	GDB built within Python support.
-
-	This commit adds a call to skip_python_tests.
-
-2022-06-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-05  Tom Tromey  <tom@tromey.com>
-
-	Remove obsolete Python 2 comment
-	I found a comment that referred to Python 2, but that is now obsolete
-	-- the code it refers to is gone.  I'm checking in this patch to
-	remove the comment.
-
-	There's a similar comment elsewhere, but I plan to remove that one in
-	another patch I'm going to submit shortly.
-
-2022-06-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-04  Alan Modra  <amodra@gmail.com>
-
-	asan: null dereference in coff_count_linenumbers
-		* coffgen.c (coff_count_linenumbers): Don't segfault when asymbol
-		the_bfd is NULL.
-
-	asan: uninitialised write in bfd_mach_o_write_contents
-		* mach-o.c (bfd_mach_o_write_contents): Always set
-		bfd_mach_o_dyld_info_command *_off fields.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/ada] Fix literal truncation
-	Make sure we error out on overflow instead of truncating in all cases.
-
-	Tested on x86_64-linux, with a build with --enable-targets=all.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/m2] Fix UB and literal truncation
-	Rewrite parse_number to use ULONGEST instead of LONGEST, to fix UB errors as
-	mentioned in PR29163.
-
-	Furthermore, make sure we error out on overflow instead of truncating in all
-	cases.
-
-	Tested on x86_64-linux, with a build with --enable-targets=all.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29163
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/rust] Fix literal truncation
-	Make sure we error out on overflow instead of truncating in all cases.
-
-	I've used as overflow string: "Integer literal is too large", based
-	on what I found at
-	<rust-lang/rust>/src/test/ui/parser/int-literal-too-large-span.rs
-	but perhaps someone has a better idea.
-
-	Tested on x86_64-linux, with a build with --enable-targets=all.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/pascal] Fix literal truncation
-	Make sure we error out on overflow instead of truncating in all cases.
-
-	The current implementation of parse_number contains a comment about PR16377,
-	but that's related to C-like languages.  In absence of information of whether
-	the same fix is needed for pascal, take the conservative approach and keep
-	behaviour for decimals unchanged.
-
-	Tested on x86_64-linux, with a build with --enable-targets=all.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/go] Fix literal truncation
-	Make sure we error out on overflow instead of truncating in all cases.
-
-	The current implementation of parse_number contains a comment about PR16377,
-	but that's related to C-like languages.  In absence of information of whether
-	the same fix is needed for go, take the conservative approach and keep
-	behaviour for decimals unchanged.
-
-	Tested on x86_64-linux, with a build with --enable-targets=all.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/fortran] Fix literal truncation
-	As mentioned in commit 5b758627a18 ("Make gdb.base/parse_number.exp test all
-	architectures"):
-	...
-	    There might be a bug that 32-bit fortran truncates 64-bit values to
-	    32-bit, given "p/x 0xffffffffffffffff" returns "0xffffffff".
-	...
-
-	More concretely, we have:
-	...
-	$ for arch in i386:x86-64 i386; do \
-	    gdb -q -batch -ex "set arch $arch" -ex "set lang fortran" \
-	      -ex "p /x 0xffffffffffffffff"; \
-	  done
-	The target architecture is set to "i386:x86-64".
-	$1 = 0xffffffffffffffff
-	The target architecture is set to "i386".
-	$1 = 0xffffffff
-	...
-
-	Fix this by adding a range check in parse_number in gdb/f-exp.y.
-
-	Furthermore, make sure we error out on overflow instead of truncating in all
-	other cases.
-
-	Tested on x86_64-linux.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/c] Fix type of 2147483648 and literal truncation
-	[ Assuming arch i386:x86-64, sizeof (int) == 4,
-	sizeof (long) == sizeof (long long) == 8. ]
-
-	Currently we have (decimal for 0x80000000):
-	...
-	(gdb) ptype 2147483648
-	type = unsigned int
-	...
-
-	According to C language rules, unsigned types cannot be used for decimal
-	constants, so the type should be long instead (reported in PR16377).
-
-	Fix this by making sure the type of 2147483648 is long.
-
-	The next interesting case is (decimal for 0x8000000000000000):
-	...
-	(gdb) ptype 9223372036854775808
-	type = unsigned long
-	...
-
-	According to the same rules, unsigned long is incorrect.
-
-	Current gcc uses __int128 as type, which is allowed, but we don't have that
-	available in gdb, so the strict response here would be erroring out with
-	overflow.
-
-	Older gcc without __int128 support, as well as clang use an unsigned type, but with
-	a warning.  Interestingly, clang uses "unsigned long long" while gcc uses
-	"unsigned long", which seems the better choice.
-
-	Given that the compilers allow this as a convience, do the same in gdb
-	and keep type "unsigned long", and make this explicit in parser and test-case.
-
-	Furthermore, make sure we error out on overflow instead of truncating in all
-	cases.
-
-	Tested on x86_64-linux with --enable-targets=all.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16377
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Test more values in gdb.base/parse_numbers.exp
-	Currently we only test value 0xffffffffffffffff in test-case
-	gdb.base/parse_numbers.exp.
-
-	Test more interesting values, both in decimal and hex format, as well as
-	negative decimals for language modula-2.
-
-	This results in an increase in total tests from 15572 to 847448 (55 times
-	more tests).
-
-	Balance out the increase in runtime by reducing the number of architectures
-	tested: only test one architecture per sizeof longlong/long/int/short
-	combination, while keeping the possibility intact to run with all
-	architectures (through setting a variable in the test-case)
-
-	Results in slight reduction of total tests: 15572 -> 13853.
-
-	Document interesting cases in the expected results:
-	- wrapping from unsigned to signed
-	- truncation
-	- PR16377: using unsigned types to represent decimal constants in C
-
-	Running the test-case with a gdb build with -fsanitize=undefined, we trigger
-	two UB errors in the modula-2 parser, filed as PR29163.
-
-	Tested on x86_64-linux with --enable-targets=all.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix ERROR in gdb.ctf/funcreturn.exp
-	On openSUSE Tumbleweed (with gcc-12, enabling ctf tests) I run into:
-	...
-	ERROR: tcl error sourcing src/gdb/testsuite/gdb.ctf/funcreturn.exp.
-	ERROR: tcl error code NONE
-	ERROR: Unexpected arguments: \
-	  {print v_double_func} \
-	  {[0-9]+ = {double \(\)} 0x[0-9a-z]+.*} \
-	  {print double function} \
-	  }
-	...
-
-	The problem is a curly brace as fourth argument to gdb_test, which errors out
-	due to recently introduced more strict argument checking in gdb_test.
-
-	Fix the error by removing the brace.
-
-	Though this fixes the error for me, due to PR29160 I get only FAILs, so I can't
-	claim proper testing on x86_64-linux.
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/manythreads.exp with check-read1
-	When running test-case gdb.threads/manythreads.exp with check-read1, I ran
-	into this hard-to-reproduce FAIL:
-	...
-	[New Thread 0x7ffff7318700 (LWP 31125)]^M
-	[Thread 0x7ffff7321700 (LWP 31124) exited]^M
-	[New T^C^M
-	^M
-	Thread 769 "manythreads" received signal SIGINT, Interrupt.^M
-	[Switching to Thread 0x7ffff6d66700 (LWP 31287)]^M
-	0x00007ffff7586a81 in clone () from /lib64/libc.so.6^M
-	(gdb) FAIL: gdb.threads/manythreads.exp: stop threads 1
-	...
-
-	The matching in the failing gdb_test_multiple is done in an intricate way,
-	trying to pass on some order and fail on another order.
-
-	Fix this by rewriting the regexps to match one line at most, and detecting
-	invalid order by setting and checking state variables.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29177
-
-2022-06-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix warning in print_one_insn::ez80-adl
-	When running selftest print_one_insn::ez80-adl we run into this warning:
-	...
-	Running selftest print_one_insn::ez80-adl.
-	warning: Unable to determine inferior's software breakpoint type: couldn't
-	  find `_break_handler' function in inferior. Will be used default software \
-	  breakpoint instruction RST 0x08.
-	...
-
-	Fix this by explicitly handling bfd_arch_z80 in print_one_insn_test.
-
-	Tested on x86_64-linux.
-
-2022-06-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-03  Tom Tromey  <tromey@adacore.com>
-
-	Use bool for evregpy_no_listeners_p
-	I noticed that evregpy_no_listeners_p should return a bool.  This
-	patch makes this change.  I'm checking it in.
-
-2022-06-03  Alan Modra  <amodra@gmail.com>
-
-	asan: heap buffer overflow in _bfd_mips_elf_section_from_shdr
-		* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Sanity check
-		intopt.size and remaining bytes in section for reginfo.
-
-2022-06-03  Alan Modra  <amodra@gmail.com>
-
-	Re: ubsan: undefined shift in frag_align_code
-	This one needs the same fix too.
-
-		* config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Avoid signed
-		integer overflow.
-
-2022-06-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix warning in foreach_arch selftests
-	When running the selftests, I run into:
-	...
-	$ gdb -q -batch -ex "maint selftest"
-	  ...
-	Running selftest execute_cfa_program::aarch64:ilp32.
-	warning: A handler for the OS ABI "GNU/Linux" is not built into this
-	configuration of GDB.  Attempting to continue with the default aarch64:ilp32
-	settings.
-	...
-	and likewise for execute_cfa_program::i8086 and
-	execute_cfa_program::ia64-elf32.
-
-	The warning can easily be reproduced outside the selftests by doing:
-	...
-	$ gdb -q -batch -ex "set arch aarch64:ilp32"
-	...
-	and can be prevented by first doing "set osabi none".
-
-	Fix the warning by setting osabi to none while doing selftests that iterate
-	over all architectures.
-
-	This causes a regression in the print_one_insn selftests for the ARC
-	architecture.
-
-	The problem is pre-existing, and can be demonstrated (already without this
-	patch) using:
-	...
-	$ gdb -q -batch -ex "set osabi none" -ex "maint selftest print_one_insn::A6"
-	Running selftest print_one_insn::A6.
-	Self test failed: Cannot access memory at address 0x0
-	Ran 1 unit tests, 1 failed
-	$
-	...
-
-	For ARC, we use the generic case in print_one_insn_test, containing this code:
-	...
-	       int kind = gdbarch_breakpoint_kind_from_pc (gdbarch, &pc);
-	       ...
-	       insn = gdbarch_sw_breakpoint_from_kind (gdbarch, kind, &bplen);
-	...
-
-	The problem is that with osabi linux we trigger:
-	...
-	static int
-	arc_linux_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
-	{
-	  return trap_size;
-	}
-	...
-	but with osabi none:
-	...
-	arc_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
-	{
-	  size_t length_with_limm = gdb_insn_length (gdbarch, *pcptr);
-	...
-	which needs access to memory, and will consequently fail.
-
-	Fix this in print_one_insn_test, in the default case, by iterating over
-	supported osabi's to makes sure we trigger arc_linux_breakpoint_kind_from_pc
-	which will give us a usable instruction to disassemble.
-
-	Tested on x86_64-linux.
-
-2022-06-03  Tom de Vries  <tdevries@suse.de>
-
-	Revert "[gdb] Fix warning in foreach_arch selftests"
-	This reverts commit fc18b1c5afd ("[gdb] Fix warning in foreach_arch
-	selftests").
-
-	The commit introduced regressions for an --enable-targets=all build:
-	...
-	Running selftest print_one_insn::A6.^M
-	Self test failed: Cannot access memory at address 0x0^M
-	...
-	and while investigating those I realized that the commit fc18b1c5afd
-	complicates things by trying to set the current osabi.
-
-	So, revert the patch in preparation for a simpler solution.
-
-	Tested on x86_64-linux.
-
-2022-06-03  Jan Beulich  <jbeulich@suse.com>
-
-	x86: exclude certain ISA extensions from v3/v4 ISA
-	Like TBM and LWP, XOP and FMA4 also shouldn't be included in v3.
-
-	Like AVX512-4VNNIW, AVX512-4FMAPS also shouldn't be included in v4.
-
-2022-06-03  Roland McGrath  <mcgrathr@google.com>
-
-	gdb: LoongArch: Remove nonportable #include
-	Don't use gregset.h in *-tdep.c since it's not usable on
-	hosts that don't have <sys/procfs.h>.  It's not needed by
-	this file, and should only be needed by *-nat.c files.
-
-2022-06-03  Alan Modra  <amodra@gmail.com>
-
-	Re: asan: mips_gprel_reloc segfault
-	Similarly for the elf mips support.
-
-		* elf32-mips.c (mips_elf_final_gp): Don't segfault on symbols
-		in any of the bfd_is_const_section sections.
-		* elf64-mips.c (mips_elf64_final_gp): Likewise.
-		* elfn32-mips.c (mips_elf_final_gp): Likewise.
-
-2022-06-03  Alan Modra  <amodra@gmail.com>
-
-	asan: mips_gprel_reloc segfault
-	Not just the undefined section has a NULL owner, the absolute section
-	has too.  Which means we can't find output_bfd for __gp.  Also, may as
-	well test directly for output_bfd == NULL.
-
-		* coff-mips.c (mips_gprel_reloc): Don't segfault on any of
-		bfd_is_const_section sections.
-
-2022-06-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Detect change instead of init in gdb.mi/mi-var-block.exp
-	On openSUSE Tumbleweed with target board unix/-m32, I run into:
-	...
-	PASS: gdb.mi/mi-var-block.exp: step at do_block_test 2
-	Expecting: ^(-var-update \*[^M
-	]+)?(\^done,changelist=\[{name="foo",in_scope="true",type_changed="false",has_more="0"},
-	{name="cb",in_scope="true",type_changed="false",has_more="0"}\][^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	-var-update *^M
-	^done,changelist=[{name="foo",in_scope="true",type_changed="false",has_more="0"}]^M
-	(gdb) ^M
-	FAIL: gdb.mi/mi-var-block.exp: update all vars: cb foo changed (unexpected output)
-	...
-
-	The problem is that the test-case attempts to detect a change in the cb
-	variable caused by this initialization:
-	...
-	void
-	do_block_tests ()
-	{
-	  int cb = 12;
-	...
-	but that only works if the stack location happens to be unequal to 12 before
-	the initialization.
-
-	Fix this by first initializing to 0, and then changing the value to 12:
-	...
-	-  int cb = 12;
-	+  int cb = 0;
-	+  cb = 12;
-	...
-	and detecting that change.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29195
-
-2022-06-02  Eli Zaretskii  <eliz@gnu.org>
-
-	Rearrange and slightly reword the "Location Specification" section
-	This rearranges and changes the wording of the "Location
-	Specification" section of the GDB manual in minor ways.
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warning for "main"
-	"main" is redeclared with a different type in maint.c.  I think this
-	might have come from my first gdb patch, many many years ago.  While I
-	wonder if this profiling code is actually useful at all any more, in
-	the meantime it's simple to fix the declaration.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warnings for "struct coff_symbol"
-	"struct coff_symbol" is defined in multiple .c files, causing ODR
-	warnings.  This patch renames just the xcoffread.c type.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warnings for "struct insn_decode_record_t"
-	"struct insn_decode_record_t" is defined in multiple .c files, causing
-	ODR warnings.  This patch renames the types, and removes the use of
-	"typedef" here -- this is a C-ism that's no longer needed.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warnings for "struct insn_info"
-	"struct insn_info" is defined in multiple .c files, causing ODR
-	warnings.  This patch renames the type in z80-tdep.c, leaving the
-	other one alone.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warnings from overlay constants
-	Some overlay-related constants are duplicated in z80-tdep.c, causing
-	ODR warnings.  This patch renames just the z80-specific ones.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warning for "enum string_repr_result"
-	"enum string_repr_result" is defined in multiple .c files, causing ODR
-	warnings.  This patch renames the types.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warning for "struct find_targ_sec_arg"
-	"struct find_targ_sec_arg" is defined in multiple .c files, causing
-	ODR warnings.  This patch renames the types.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warning for "struct stack_item"
-	"struct stack_item" is defined in multiple .c files, causing ODR
-	warnings.  This patch renames these types.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warning for "struct instruction_type"
-	"struct instruction_type" is defined in multiple .c files, causing an
-	ODR warning.  This patch renames the types.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warning for struct ext_link_map
-	This renames the solib-dsbt.c copy of "struct ext_link_map" to avoid
-	an ODR warning.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warning for struct field_info
-	This renames one of the instance of "struct field_info" to avoid an
-	ODR warning.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warnings for struct nextfield
-	"struct nextfield" is defined in multiple places in GDB.  This patch
-	renames just the stabs one, leaving the DWARF one untouched.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	ODR warnings for struct symloc
-	"struct symloc" is defined in multiple spots in gdb, causing ODR
-	warnings.  This patch renames these.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tom Tromey  <tromey@adacore.com>
-
-	Fix ODR warning in observable.h
-	observable.h triggers an ODR warning because this line:
-
-	    extern observable<struct target_ops */* target */> target_changed;
-
-	... may be the only declaration of "struct target_ops" in scope
-	(depending on the particular .c file) -- and this declares it in a
-	namespace, resulting in confusion.
-
-	This patch fixes the problem by adding a forward declaration.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
-
-2022-06-02  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Implement the software_single_step gdbarch method
-	When execute the following command on LoongArch:
-
-	  make check-gdb TESTS="gdb.base/branch-to-self.exp"
-
-	there exist the following failed testcases:
-
-	  FAIL: gdb.base/branch-to-self.exp: single-step: si (timeout)
-	  FAIL: gdb.base/branch-to-self.exp: break-cond: side=host: continue to breakpoint: continue to break (timeout)
-	  FAIL: gdb.base/branch-to-self.exp: break-cond: side=host: p counter (timeout)
-
-	Implement the software_single_step gdbarch method to decode the current
-	branch instruction and determine the address of the next instruction on
-	LoongArch to fix the above failed testcases.
-
-2022-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>
-
-	gdb: Do not add empty sections to the section map
-	From: Ulrich Weigand <ulrich.weigand@de.ibm.com>
-
-	build_objfile_section_table () creates four synthetic sections per
-	objfile, which are collected by update_section_map () and passed to
-	std::sort ().  When there are a lot of objfiles, for example, when
-	debugging JITs, the presence of these sections slows down the sorting
-	significantly.
-
-	The output of update_section_map () is used by find_pc_section (),
-	which can never return any of these sections: their size is 0, so they
-	cannot be accepted by bsearch_cmp ().
-
-	Filter them (and all the other empty sections) out in
-	insert_section_p (), which is used only by update_section_map ().
-
-2022-06-02  Jon Turney  <jon.turney@dronecode.org.uk>
-
-	Fix a new warning on Cygwin
-	> ../../gdb/windows-nat.c: In function ‘windows_solib* windows_make_so(const char*, LPVOID)’:
-	> ../../gdb/windows-nat.c:714:12: error: declaration of ‘char name [512]’ shadows a parameter [-Werror=shadow=compatible-local]
-	>   714 |       char name[SO_NAME_MAX_PATH_SIZE];
-	>       |            ^~~~
-	> ../../gdb/windows-nat.c:655:30: note: shadowed declaration is here
-	>   655 | windows_make_so (const char *name, LPVOID load_addr)
-	>       |                  ~~~~~~~~~~~~^~~~
-
-	Fix Cygwin build after 85b25bd9
-	Fix Cygwin build after 85b25bd9 ("Simplify windows-nat.c solib handling").
-
-	Fix Cygwin build after 0578e87f
-	Fix Cygwin build after 0578e87f ("Remove some globals from
-	nat/windows-nat.c").  Update code under ifdef __CYGWIN__ for globals
-	moved to members of struct windows_process_info.
-
-	Fix Cygwin build after fcab5839
-	Fix Cygwin build after fcab5839 ("Implement pid_to_exec_file for Windows
-	in gdbserver"). That change moves code from gdb/windows-nat.c to
-	gdb/nat/windows-nat.c, but doesn't add the required typedefs and
-	includes for parts of that code under ifdef __CYGWIN__.
-
-2022-06-02  Alan Modra  <amodra@gmail.com>
-
-	Re: ubsan: signed integer overflow in atof_generic
-	Oops.
-
-		* atof-generic.c: Include limits.h.
-
-2022-06-02  Alan Modra  <amodra@gmail.com>
-
-	ubsan: signed integer overflow in atof_generic
-	Fix the signed overflows by using unsigned variables and detect
-	overflow at BUG! comment.
-
-		* atof-generic.c (atof_generic): Avoid signed integer overflow.
-		Return ERROR_EXPONENT_OVERFLOW if exponent overflows a long.
-
-2022-06-02  Alan Modra  <amodra@gmail.com>
-
-	asan: uninit write _bfd_ecoff_write_object_contents
-		* ecoff.c (_bfd_ecoff_write_object_contents): zalloc reloc_buff.
-
-	asan: null deref in coff_write_relocs
-		* coffcode.h (coff_write_relocs): Don't deref NULL howto.
-
-	ubsan: undefined shift in frag_align_code
-		* frags.c (MAX_MEM_FOR_RS_ALIGN_CODE): Avoid signed integer
-		overflow.
-
-2022-06-02  Alan Modra  <amodra@gmail.com>
-
-	gas read_a_source_file #APP processing
-	This fixes some horrible code using do_scrub_chars.  What we had ran
-	text through do_scrub_chars twice, directly in read_a_source_file and
-	again via the input_scrub_include_sb call.  That's silly, and since
-	do_scrub_chars is a state machine, possibly wrong.  More silliness is
-	evident in the temporary malloc'd buffer for do_scrub_chars output,
-	which should have been written directly to sbuf.
-
-	So, get rid of the do_scrub_chars call and support functions, leaving
-	scrubbing to input_scrub_include_sb.  I did wonder about #NO_APP
-	overlapping input_scrub_next_buffer buffers, but that should only
-	happen if the string starts in one file and finishes in another.
-
-		* read.c (scrub_string, scrub_string_end): Delete.
-		(scrub_from_string): Delete.
-		(read_a_source_file): Rewrite #APP processing.
-
-2022-06-02  Alan Modra  <amodra@gmail.com>
-
-	sb_scrub_and_add_sb not draining input string buffer
-	It is possible for sb_scrub_and_add_sb to not consume all of the input
-	string buffer.  If this happens for reasons explained in the comment,
-	do_scrub_chars can leave pointers to the string buffer for the next
-	call.  This patch fixes that by ensuring the input is drained.  Note
-	that the behaviour for an empty string buffer is also changed,
-	avoiding another do_scrub_chars bug where empty input and single char
-	sized output buffers could result in a write past the end of the
-	output.
-
-		sb.c (sb_scrub_and_add_sb): Loop until all of input sb is
-		consumed.
-
-2022-06-02  Alan Modra  <amodra@gmail.com>
-
-	asan: heap buffer overflow in dwarf2_directive_filename
-	Seen with .file 4294967289 "xxx.c"
-
-		* dwarf2dbg.c (assign_file_to_slot): Catch more cases of integer
-		overflow.  Make param i an unsigned int.
-
-2022-06-02  Alan Modra  <amodra@gmail.com>
-
-	asan: NULL deref in scan_unit_for_symbols
-	Since commit b43771b045 it has been possible to look up addresses
-	that match a unit with errors, since ranges are added to a trie while
-	the unit is being parsed.  On error, parse_comp_unit leaves
-	first_child_die_ptr NULL which results in a NULL info_ptr being passed
-	to scan_unit_for_symbols.  Fix this by setting unit->error.
-
-	Also wrap some overlong lines, and fix some formatting errors.
-
-		* dwarf2.c: Formatting.
-		(parse_comp_unit): Set unit->error on err_exit path.
-
-2022-06-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix warning in foreach_arch selftests
-	When running the selftests, I run into:
-	...
-	$ gdb -q -batch -ex "maint selftest"
-	  ...
-	Running selftest execute_cfa_program::aarch64:ilp32.
-	warning: A handler for the OS ABI "GNU/Linux" is not built into this
-	configuration of GDB.  Attempting to continue with the default aarch64:ilp32
-	settings.
-	...
-	and likewise for execute_cfa_program::i8086 and
-	execute_cfa_program::ia64-elf32.
-
-	The warning can easily be reproduced outside the selftests by doing:
-	...
-	$ gdb -q -batch -ex "set arch aarch64:ilp32"
-	...
-	and can be prevented by first doing "set osabi none".
-
-	Fix the warning by setting osabi to none while doing selftests that iterate
-	over all architectures.
-
-	Tested on x86_64-linux.
-
-2022-06-01  Tom Tromey  <tromey@adacore.com>
-
-	Add gdb.current_language and gdb.Frame.language
-	This adds the gdb.current_language function, which can be used to find
-	the current language without (1) ever having the value "auto" or (2)
-	having to parse the output of "show language".
-
-	It also adds the gdb.Frame.language, which can be used to find the
-	language of a given frame.  This is normally preferable if one has a
-	Frame object handy.
-
-2022-06-01  Yvan Roux  <yvan.roux@foss.st.com>
-
-	[arm] Don't use special treatment for PC
-	In an exception frame the PC register is extracted from the stack
-	just like other base registers, so there is no need for a special
-	treatment.
-
-	[arm] Add support for FPU registers in prologue unwinder
-	The prologue unwinder had support for FPU registers, but only to
-	calculate the correct offset on the stack, the values were not saved.
-
-2022-06-01  Yvan Roux  <yvan.roux@foss.st.com>
-
-	[arm] d0..d15 are 64-bit each, not 32-bit
-	When unwinding the stack, the floating point registers d0 to d15
-	need to be handled as double words, not words.
-
-	Only the first 8 registers have been confirmed fixed with this patch
-	on a STM32F407-DISC0 board, but the upper 8 registers on Cortex-M33
-	should be handled in the same way.
-
-	The test consisted of running a program compiled with float-abi=hard.
-	In the main function, a function taking a double as an argument was
-	called. After the function call, a hardware timer was used to
-	trigger an interrupt.
-
-	In the debug session, a breakpoint was set in the function called
-	from main to verify the content of the registers using "info float"
-	and another breakpoint in the interrupt handler was used to check
-	the same registers using "info float" on frame 2 (the frame just
-	before the dummy frame created for the signal handler in gdb).
-
-2022-06-01  Yvan Roux  <yvan.roux@foss.st.com>
-
-	[arm] Cleanup: use hex for offsets
-	Changed offset from decimal to hex to match architecture reference
-	manual terminology and keep coherency with the rest of the code.
-
-2022-06-01  Jiangshuai Li  <jiangshuai_li@c-sky.com>
-
-	gdb:csky save fpu and vdsp info to struct csky_gdbarch_tdep
-	First, add three variables fpu_abi, fpu_hardfp and vdsp_version
-	to csky_gdbarch_tdep. They will be initialized from info.abfd in
-	cskg_gdbarch_init.
-
-	Now, they are just used to find a candidate among the list of pre-declared
-	architectures
-
-	Later, they will be used in gdbarch_return_value and gdbarch_push_dummy_call
-	for funtions described below:
-	fpu_abi: to check if the bfd is using VAL_CSKY_FPU_ABI_HARD or
-	VAL_CSKY_FPU_ABI_SOFT
-	fpu_hardfp: to check if the bfd is using VAL_CSKY_FPU_HARDFP_SINGLE
-	or VAL_CSKY_FPU_HARDFP_DOUBLE
-	vdsp_version: to check if a function is returned with CSKY_VRET_REGNUM
-
-2022-06-01  Alan Modra  <amodra@gmail.com>
-
-	Re: use libiberty xmalloc in bfd/doc/chew.c
-	We can't use libiberty.a in chew.  libiberty is a host library, chew
-	a build program.  Partly revert commit 7273d78f3f7a, instead define
-	local versions of the libiberty functions.  ansidecl.h also isn't
-	needed.
-
-		* doc/chew.c: Don't include libiberty.h or ansidecl.h.
-		(xmalloc, xrealloc, xstrdup): New functions.
-		* doc/local.mk (LIBIBERTY): Don't define or use.
-		* Makefile.in: Regenerate.
-
-2022-06-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-06-01  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Properly handle IFUNC function pointer reference
-	Update
-
-	commit 68c4956b1401de70173848a6bdf620cb42fa9358
-	Author: H.J. Lu <hjl.tools@gmail.com>
-	Date:   Tue Apr 26 09:08:54 2022 -0700
-
-	    x86: Properly handle function pointer reference
-
-	to properly handle IFUNC function pointer reference.  Since IFUNC symbol
-	value is only known at run-time, set pointer_equality_needed for IFUNC
-	function pointer reference in PDE so that it will be resolved to its PLT
-	entry directly.
-
-	bfd/
-
-		PR ld/29216
-		* elf32-i386.c (elf_i386_scan_relocs): Set pointer_equality_needed
-		for IFUNC function pointer reference in PDE.
-		* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.
-
-	ld/
-
-		PR ld/29216
-		* testsuite/ld-ifunc/ifunc.exp: Run PR ld/29216 test.
-		* testsuite/ld-ifunc/pr29216.c: New file.
-
-2022-05-31  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Ajdust more tests for opcodes/i386: remove trailing whitespace
-	This fixes:
-
-	FAIL: Build ifunc-1a with -z ibtplt
-	FAIL: Build ifunc-1a with PIE -z ibtplt
-	FAIL: Build libno-plt-1b.so
-	FAIL: No PLT (dynamic 1a)
-	FAIL: No PLT (dynamic 1b)
-	FAIL: No PLT (dynamic 1c)
-	FAIL: No PLT (static 1d)
-	FAIL: No PLT (PIE 1e)
-	FAIL: No PLT (PIE 1f)
-	FAIL: No PLT (PIE 1g)
-	FAIL: No PLT (dynamic 1h)
-	FAIL: No PLT (dynamic 1i)
-	FAIL: No PLT (static 1j)
-
-		* ld-i386/libno-plt-1b.dd: Remove trailing whitespaces.
-		* ld-i386/no-plt-1a.dd: Likewise.
-		* ld-i386/no-plt-1b.dd: Likewise.
-		* ld-i386/no-plt-1c.dd: Likewise.
-		* ld-i386/no-plt-1d.dd: Likewise.
-		* ld-i386/no-plt-1e.dd: Likewise.
-		* ld-i386/no-plt-1f.dd: Likewise.
-		* ld-i386/no-plt-1g.dd: Likewise.
-		* ld-i386/no-plt-1h.dd: Likewise.
-		* ld-i386/no-plt-1i.dd: Likewise.
-		* ld-i386/no-plt-1j.dd: Likewise.
-		* ld-i386/plt-main-ibt.dd: Likewise.
-		* ld-i386/plt-pie-ibt.dd: Likewise.
-
-2022-05-31  Tom Tromey  <tom@tromey.com>
-
-	Use unique_ptr for objfiles
-	A while back, I changed objfiles to be held via a shared_ptr.  The
-	idea at the time was that this was a step toward writing to the index
-	cache in the background, and this would let gdb keep a reference alive
-	to do so.  However, since then we've rewritten the DWARF reader, and
-	the new index can do this without requiring a shared pointer -- in
-	fact there are patches pending to implement this.
-
-	This patch switches objfile management to unique_ptr, which makes more
-	sense now.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: fixup common-block.exp for intel compilers
-	The order in which the variables in info common and info locals are
-	displayed is compiler (and dwarf) dependent.  While all symbols should
-	be displayed the order is not fixed.
-
-	I added a gdb_test_multiple that lets ifx and ifort pass in cases where
-	only the order differs.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb, testsuite, fortran: fixup mixed-lang-stack for Intel/LLVM compilers
-	When value-printing a pointer within GDB by default GDB will look for
-	defined symbols residing at the address of the pointer.  For the given
-	test the Intel/LLVM compiler stacks both display a symbol associated
-	with a printed pointer while the gnu stack does not.  This leads to
-	failures in the test when running the test with CC_FOR_TARGET='clang'
-	CXX_FOR_TARGET='clang' F90_FOR_TARGET='flang'"
-
-	  (gdb) b 37
-	  (gdb) r
-	  (gdb) f 6
-	  (gdb) info args
-	  a = 1
-	  b = 2
-	  c = 3
-	  d = 4 + 5i
-	  f = 0x419ed0 "abcdef"
-	  g = 0x4041a0 <.BSS4>
-
-	or CC_FOR_TARGET='icx' CXX_FOR_TARGET='icpx' F90_FOR_TARGET='ifx'"
-
-	  (gdb) b 37
-	  (gdb) r
-	  (gdb) f 6
-	  (gdb) info args
-	  a = 1
-	  b = 2
-	  c = 3
-	  d = 4 + 5i
-	  f = 0x52eee0 "abcdef"
-	  g = 0x4ca210 <mixed_func_1a_$OBJ>
-
-	For the compiled binary the Intel/LLVM compilers both decide to move the
-	local variable g into the .bss section of their executable.  The gnu
-	stack will keep the variable locally on the stack and not define a
-	symbol for it.
-
-	Since the behavior for Intel/LLVM is actually expected I adapted the
-	testcase at this point to be a bit more allowing for other outputs.
-	I added the optional "<SYMBOLNAME>" to the regex testing for g.
-
-	The given changes reduce the test fails for Intel/LLVM stack by 4 each.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb, testsuite, fortran: fix double free in mixed-lang-stack.exp
-	While testing mixed-lang-stack I realized that valgrind actually
-	complained about a double free in the test.
-
-	   All done
-	  ==2503051==
-	  ==2503051== HEAP SUMMARY:
-	  ==2503051==     in use at exit: 0 bytes in 0 blocks
-	  ==2503051==   total heap usage: 26 allocs, 27 frees, 87,343 bytes allocated
-	  ==2503051==
-	  ==2503051== All heap blocks were freed -- no leaks are possible
-	  ==2503051==
-	  ==2503051== For lists of detected and suppressed errors, rerun with: -s
-	  ==2503051== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
-
-	Reason for this is that in mixed-lang-stack.cpp in mixed_func_1f an
-	object "derived_type obj" goes on the stack which is then passed-by-value
-	(so copied) to mixed_func_1g.  The default copy-ctor will be called but,
-	since derived_type contains a heap allocated string and the copy
-	constructor is not implemented it will only be able to shallow copy the
-	object.  Right after each of the functions the object gets freed - on the
-	other hand the d'tor of derived_type actually is implemented and calls
-	free on the heap allocated string which leads to a double free.  Instead
-	of obeying the rule of 3/5 I just got rid of all that since it does not
-	serve the test.  The string is now just a const char* = ".." object
-	member.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	testsuite, fortran: allow additional completions in module.exp
-	For ifort, ifx, and flang the tests "complete modm" and "complete
-	modmany" fail.  This is because all three emit additional completion
-	suggestions.  These additional suggestions have their origin in symbols
-	emitted by the compilers which can also be completed from the respective
-	incomplete word (modm or modmany).  For this specific example gfortran
-	does not emit any additional symbols.
-
-	For example, in this test the linkage name for var_a in ifx is
-	"modmany_mp_var_a_" while gfortran uses "__modmany_MOD_var_a" instead.
-	Since modmany_mp_var_a can be completed from modm and also modmany they
-	will get displayed, while gfortran's symbol starts with "__" and thus will
-	be ignored (it cannot be a completion of a word starting with "m").
-
-	Similar things happen in flang and ifort.  Some example output is shown
-	below:
-
-	FLANG
-	  (gdb) complete p modm
-	  p modmany
-	  p modmany::var_a
-	  p modmany::var_b
-	  p modmany::var_c
-	  p modmany::var_i
-	  p modmany_
-
-	IFX/IFORT
-	  (gdb) complete p modm
-	  p modmany
-	  p modmany._
-	  p modmany::var_a
-	  p modmany::var_b
-	  p modmany::var_c
-	  p modmany::var_i
-	  p modmany_mp_var_a_
-	  p modmany_mp_var_b_
-	  p modmany_mp_var_c_
-	  p modmany_mp_var_i_
-
-	GFORTRAN
-	  (gdb) complete p modm
-	  p modmany
-	  p modmany::var_a
-	  p modmany::var_b
-	  p modmany::var_c
-	  p modmany::var_i
-
-	I want to emphasize: for Fortran (and also C/C++) the complete command
-	does not actually check whether its suggestions make sense - all it does
-	is look for any symbol (in the minimal symbols, partial symbols etc.)
-	that a given substring can be completed to (meaning that the given substring
-	is the beginning of the symbol).  One can easily produce a similar
-	output for the gfortran compiled executable.  For this look at the
-	slightly modified "complete p mod" in gfortran:
-
-	  (gdb) complete p mod
-	  p mod1
-	  p mod1::var_const
-	  ...
-	  p mod_1.c
-	  p modcounter
-	  p mode_t
-	  p modf
-	  ...
-	  p modify_ldt
-	  p modmany
-	  p modmany::var_a
-	  p modmany::var_b
-	  p modmany::var_c
-	  p modmany::var_i
-	  p module
-	  p module.f90
-	  p module_entry
-	  p moduse
-	  p moduse::var_x
-	  p moduse::var_y
-
-	Many of the displayed symbols do not actually work with print:
-
-	  (gdb) p mode_t
-	  Attempt to use a type name as an expression
-	  (gdb) p mod_1.c
-	  No symbol "mod_1" in current context.
-	  (gdb)
-
-	I think that in the given test the output for gfortran only looks nice
-	"by chance" rather than is actually expected.  Expected is any output
-	that also contains the completions
-
-	  p modmany
-
-	  p modmany::var_a
-	  p modmany::var_b
-	  p modmany::var_c
-	  p modmany::var_i
-
-	while anythings else can be displayed as well (depending on the
-	compiler and its emitted symbols).
-
-	This, I'd consider all three outputs as valid and expected - one is just
-	somewhat lucky that gfortran does not produce any additional symbols that
-	got matched.
-
-	The given patch improves test performance for all three compilers
-	by allowing additional suggested completions inbetween and after
-	the two given blocks in the test.  I did not allow additional print
-	within the modmany_list block since the output is ordered alphabetically
-	and there should normally not appear any additional symbols there.
-
-	For flang/ifx/ifort I each see 2 failures less (which are exactly the two
-	complete tests).
-
-	As a side note and since I mentioned C++ in the beginning: I also tried
-	the gdb.cp/completion.exp.  The output seems a bit more reasonable,
-	mainly since C++ actually has a demangler in place and linkage symbols
-	do not appear in the output of complete.  Still, with a poor enough
-	to-be-completed string one can easily produce similar results:
-
-	  (gdb) complete p t
-	  ...
-	  p typeinfo name for void
-	  p typeinfo name for void const*
-	  p typeinfo name for void*
-	  p typeinfo name for wchar_t
-	  p typeinfo name for wchar_t const*
-	  p typeinfo name for wchar_t*
-	  p t *** List may be truncated, max-completions reached. ***
-	  (gdb) p typeinfo name for void*
-	  No symbol "typeinfo" in current context.
-	  (gdb) complete p B
-	  p BACK_SLASH
-	  p BUF_FIRST
-	  p BUF_LAST
-	  ...
-	  p Base
-	  p Base::Base()
-	  p Base::get_foo()
-	  p bad_key_err
-	  p buf
-	  p buffer
-	  p buffer_size
-	  p buflen
-	  p bufsize
-	  p build_charclass.isra
-	  (gdb) p bad_key_err
-	  No symbol "bad_key_err" in current context.
-
-	(compiled with gcc/g++ and breaking at main).
-
-	This patch is only about making the referenced test more 'fair' for the
-	other compilers.  Generally, I find the behavior of complete a bit
-	confusing and maybe one wants to change this at some point but this
-	would be a bigger task.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	testsuite, fortran: fix info-types for intel compilers
-	This info-types.exp test case had a few issues that this patch fixes.
-
-	First, the emitted symbol character(kind=1)/character*1 (different
-	compilers use different naming converntions here) which is checkedin the
-	test is not actually expected given the test program.  There is no
-	variable of that type in the test.  Still, gfortran emits it for every
-	Fortran program there is.  The reason is the way gfortran handles Fortran's
-	named main program.  It generates a wrapper around the Fortran program
-	that is quite similar to a C main function.  This C-like wrapper has
-	argc and argv arguments for command line argument passing and the argv
-	pointer type has a base type character(kind=1) DIE emitted at CU scope.
-
-	Given the program
-
-	  program prog
-	  end program prog
-
-	the degbug info gfortran emits looks somewhat like
-
-	   <0><c>: Abbrev Number: 3 (DW_TAG_compile_unit)
-	      ...
-	   <1><2f>: Abbrev Number: 4 (DW_TAG_subprogram)
-	      <30>   DW_AT_external    : 1
-	      <30>   DW_AT_name        : (indirect string, ...): main
-	      ...
-	   <2><51>: Abbrev Number: 1 (DW_TAG_formal_parameter)
-	      <52>   DW_AT_name        : (indirect string, ...): argc
-	      ...
-	   <2><5d>: Abbrev Number: 1 (DW_TAG_formal_parameter)
-	      <5e>   DW_AT_name        : (indirect string, ...): argv
-	      ...
-	      <62>   DW_AT_type        : <0x77>
-	      ...
-	   <2><6a>: Abbrev Number: 0
-	   ...
-	   <1><77>: Abbrev Number: 6 (DW_TAG_pointer_type)
-	      <78>   DW_AT_byte_size   : 8
-	      <79>   DW_AT_type        : <0x7d>
-	   <1><7d>: Abbrev Number: 2 (DW_TAG_base_type)
-	      <7e>   DW_AT_byte_size   : 1
-	      <7f>   DW_AT_encoding    : 8        (unsigned char)
-	      <80>   DW_AT_name        : (indirect string, ...): character(kind=1)
-	   <1><84>: Abbrev Number: 7 (DW_TAG_subprogram)
-	      <85>   DW_AT_name        : (indirect string, ...): prog
-	   ...
-
-	Ifx and flang do not emit any debug info for a wrapper main method so
-	the type is missing here.  There was the possibility of actually adding
-	a character*1 type variable to the Fortran executable, but both, ifx and
-	gfortran chose to emit this variable's type as a DW_TAG_string_type of
-	length one (instead of a character(kind=1), or whatever the respective
-	compiler naming convention is).  While string types are printed as
-	character*LENGHT in the fortran language part (e.g. when issuing a
-	'ptype') they do not generate any symbols inside GDB.  In read.c it says
-
-	   /* These dies have a type, but processing them does not create
-	      a symbol or recurse to process the children.  Therefore we can
-	      read them on-demand through read_type_die.  */
-
-	So they did not add any output to 'info types'.  Only flang did emit a
-	character type here.
-	As adding a type would have a) not solved the problem for ifx and would
-	have b) somehow hidden the curious behavior of gfortran, instead, the
-	check for this character type was chagened to optional with the
-	check_optional_entry to allow for the symbols's absence and to allow
-	flang and ifx to pass this test as well.
-
-	Second, the line checked for s1 was hardcoded as 37 in the test.  Given
-	that the type is actually defined on line 41 (which is what is emitted by
-	ifx) it even seems wrong.  The line check for s1 was changed to actually
-	check for 41 and a gfortran bug has been filed here
-
-	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105454
-
-	The test is now marked as xfail for gfortran.
-
-	Third, the whole test of checking for the 'Type s1' in info types seemed
-	questionable.  The type s1 is declared iside the scope of the Fortran
-	program info_types_test.  Its DIE however is emitted as a child of the
-	whole compilation unit making it visible outside of the program's scope.
-	The 'info types' command checks for types stored in the GLOBAL_BLOCK,
-	or STATIC_BLOCKm wgucm according to block.h
-
-	   The GLOBAL_BLOCK contains all the symbols defined in this compilation
-	   whose scope is the entire program linked together.
-	   The STATIC_BLOCK contains all the symbols whose scope is the
-	   entire compilation excluding other separate compilations.
-
-	so for gfortran, the type shows up in the output of 'info types'.  For
-	flang and ifx on the other hand this is not the case.  The two compilers
-	emit the type (correctly) as a child of the Fortran program, thus not
-	adding it to either, the GLOBAL_BLOCK nor the LOCAL_BLOCK.  A bug has
-	been opened for the gfortran scoping issue:
-
-	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105454
-
-	While the most correct change might have been removing the check for s1,
-	the change made here was to only check for this type in case of gfortran
-	being used as the compiler, as this check also covers the declaration
-	line issue mentioned above.  A comment was added to maybe remove this
-	check once the scoping issue is resolved (and it starts to fail with
-	newer gfortran versions).  The one used to test these changes was 13.0.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	testsuite/lib: add check_optional_entry for GDBInfoSymbols
-	There was already a similar functionality for the GDBInfoModuleSymbols.
-	This just extends the GDBInfoSymbols.  We will use this feature in a
-	later commit to make a testcase less GNU specific and more flexible for
-	other compilers.
-
-	Namely, in gdb.fortran/info-types.exp currenlty
-	GDBInfoSymbols::check_entry is used to verify and test the output of the
-	info symbols command.  The test, however was written with gfortran as a
-	basis and some of the tests are not fair with e.g. ifx and ifort as
-	they test for symbols that are not actually required to be emitted.  The
-	lines
-	   GDBInfoSymbols::check_entry "${srcfile}" "" "${character1}"
-	and
-	   GDBInfoSymbols::check_entry "${srcfile}" "37" "Type s1;"
-
-	check for types that are either not used in the source file (character1)
-	or should not be emitted by the compiler at global scope (s1) thus no
-	appearing in the info symbols command.  In order to fix this we will
-	later use the newly introduced check_optional_entry over check_entry.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	testsuite, fortran: Add '-debug-parameters all' when using ifx/ifort
-	In order for ifx and ifort to emit all debug entries, even for unused
-	parameters in modules we have to define the '-debug-parameters all' flag.
-
-	This commit adds it to the ifx-*/ifort-* specific flags in gdb.exp.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	testsuite, fortran: add compiler dependent types to dynamic-ptype-whatis
-	The test was earlier not using the compiler dependent type print system
-	in fortran.exp.  I changed this.  It should generally improve the test
-	performance for different compilers.  For ifx and gfortran I do not see
-	any failures.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	testsuite, fortran: add required external keyword
-	Currenlty, ifx/ifort cannot compile the given executable as it is not
-	valid Fortran.  It is missing the external keyword on the
-	no_arg_subroutine.  Gfortran compiles the example but this is actually
-	a bug and there is an open gcc ticket for this here:
-
-	   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50377
-
-	Adding the keyword does not change the gfortran compiling of the example.
-	It will, however, prevent a future fail once 50377 has been addressed.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: disable charset.exp for intel compilers
-	The test specifically tests for the Fortran CHARACTER(KIND=4) which is
-	not available in ifx/ifort.
-
-	Since the other characters are also printed elsewhere, we disable this
-	test for the unsupported compilers.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: rename intel next gen c/cpp compilers
-	The name for icx and icpx in the testsuite was earlier set to 'intel-*'
-	by the compiler identification.  This commit changes this to 'icx-*'.
-
-	Note, that currently these names are not used within the testsuite so no
-	tests have to be adapted here.
-
-2022-05-31  Cristian Sandu  <cristian.sandu@intel.com>
-	    Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: add Fortran compiler identification to GDB
-	This commit adds a separate Fortran compiler identification mechanism to
-	the testsuite, similar to the existing one for C/C++.  Before this
-	change, the options and version for the Fortran compiler specified when
-	running the testsuite with F90_FOR_TARGET set, was detected via its
-	respective C compiler.  So running the testsuite as
-
-	  make check TEST=gdb.fortran/*.exp CC_FOR_TARGET=gcc F90_FOR_TARGET=ifx
-
-	or even
-
-	  make check TEST=gdb.fortran/*.exp F90_FOR_TARGET=ifx
-
-	would use the gcc compiler inside the procedures get_compiler_info and
-	test_compiler_info to identify compiler flags and the compiler version.
-	This could sometimes lead to unpredictable outputs.  It also limited
-	testsuite execution to combinations where C and Fortran compiler would
-	come from the same family of compiers (gcc/gfortran, icc/ifort, icx/ifx,
-	clang/flang ..).  This commit enables GDB to detect C and Fortran
-	compilers independently of each other.
-
-	As most/nearly all Fortran compilers have a mechanism for preprocessing
-	files in a C like fashion we added the exact same meachnism that already
-	existed for C/CXX.  We let GDB preprocess a file with the compilers
-	Fortran preprocessor and evaluate the preprocessor defined macros in that
-	file.
-
-	This enables GDB to properly run heterogeneous combinations of C and
-	Fortran compilers such as
-
-	  CC_FOR_TARGET='gcc' and F90_FOR_TARGET='ifort'
-
-	or enables one to run the testsuite without specifying a C compiler as in
-
-	  make check TESTS=gdb.fortran/*.exp F90_FOR_TARGET='ifx'
-	  make check TESTS=gdb.fortran/*.exp F90_FOR_TARGET='flang'
-
-	On the other hand this also requires one to always specify a
-	identification mechanism for Fortran compilers in the compiler.F90 file.
-
-	We added identification for GFORTRAN, FLANG (CLASSIC and LLVM) IFX,
-	IFORT, and ARMFLANG for now.
-
-	Classic and LLVM flang were each tested with their latest releases on
-	their respective release pages.  Both get recognized by the new compiler
-	identification and we introduced the two names flang-classic and
-	flang-llvm to distinguish the two.  While LLVM flang is not quite mature
-	enough yet for running the testsuite we still thought it would be a good
-	idea to include it already.  For this we added a case for the fortran_main
-	procedure.  LLVM flang uses 'MAIN__' as opposed to classic flang which
-	uses 'MAIN_' here.
-
-	We did not have the possibility to test ARMFLANG - the versioning scheme
-	here was extracted from its latest online documentation.
-
-	We changed the test_compiler_info procedure to take another optional
-	argument, the language string, which will be passed though to the
-	get_compiler_info procedure.  Passing 'f90' or 'c++' here will then
-	trigger the C++/Fortran compiler identification within
-	get_compiler_info.  The latter procedure was extended to also handle
-	the 'f90' argument (similarly to the already existing 'c++' one).
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: move getting_compiler_info to front of gdb_compile
-	The procedure gdb_compile queries its options via
-
-	   [lsearch -exact $options getting_compiler_info]
-
-	to check whether or not it was called in with the option
-	getting_compiler_info.  If it was called with this option it would
-	preprocess some test input to try and figure out the actual compiler
-	version of the compiler used.  While doing this we cannot again try to
-	figure out the current compiler version via the 'getting_compiler_info'
-	option as this would cause infinite recursion.  As some parts of the
-	procedure do recursively test for the compiler version to e.g. set
-	certain flags, at several places gdb_compile there are checks for the
-	getting_compiler_info option needed.
-
-	In the procedure, there was already a variable 'getting_compiler_info'
-	which was set to the result of the 'lsearch' query and used instead of
-	again and again looking for getting_compiler_info in the procedure
-	options.  But, this variable was actually set too late within the code.
-	This lead to a mixture of querying 'getting_compiler_info' or
-	doing an lserach on the options passed to the procedure.
-
-	I found this inconsistent and instead moved the variable
-	getting_compiler_info to the front of the procedure.  It is set to true
-	or false depending on whether or not the argument is found in the
-	procedure's options (just as before) and queried instead of doing an
-	lsearch on the procedure options in the rest of the procedure.
-
-2022-05-31  Felix Willgerodt  <felix.willgerodt@intel.com>
-	    Abdul Basit Ijaz  <abdul.b.ijaz@intel.com>
-	    Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: Fix fortran types for Intel compilers.
-	Newer Intel compilers emit their dwarf type name in a slightly different
-	format.  Therefore, this needs adjustment to make more tests pass in the
-	Fortran testsuite.
-
-2022-05-31  Abdul Basit Ijaz  <abdul.b.ijaz@intel.com>
-
-	gdb/testsuite: Use -module option for Intel Fortran compilers
-	The '-J' option is not supported in Intel compilers (ifx and ifort).
-	The Intel version of the flag is '-module' which serves the same purpose.
-
-2022-05-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: remove F77_FOR_TARGET support
-	The last uses of the F77_FOR_TARGET via passing f77 to GDB's compile
-	procedure were removed in this commit
-
-	   commit 0ecee54cfd04a60e7ca61ae07c72b20e21390257
-	   Author: Tom Tromey <tromey@redhat.com>
-	   Date:   Wed Jun 29 17:50:47 2011 +0000
-
-	over 10 years ago.  The last .f files in the testsuite by now are all
-	being compiled by passing 'f90' to the GDB compile, thus only actually
-	using F90_FOR_TARGET (array-element.f, block-data.f, subarray.f).
-	Gfortran in this case is backwards compatible with most f77 code as
-	claimed on gcc.gnu.org/fortran.
-
-	The reason we'd like to get rid of this now is, that we'll be
-	implementing a Fortran compiler identification mechanism, similar to the
-	C/Cpp existing ones.  It would be using the Fortran preprocessor macro
-	defines to identify the Fortran compiler version at hand.  We found it
-	inconsequent to only implement this for f90 but, on the other hand, f77
-	seems deprecated.  So, with this commit we remove the remaining lines for
-	its support.
-
-2022-05-31  Pedro Alves  <pedro@palves.net>
-
-	Improve clear command's documentation
-	Co-Authored-By: Eli Zaretskii <eliz@gnu.org>
-
-	Change-Id: I9440052fd28f795d6f7c93a4576beadd21f28885
-
-2022-05-31  Pedro Alves  <pedro@palves.net>
-
-	Clarify why we unit test matching symbol names with 0xff characters
-	In the name matching unit tests in gdb/dwarf2/read.c, explain better
-	why we test symbols with \377 / 0xff characters (Latin1 'ÿ').
-
-	Change-Id: I517f13adfff2e4d3cd783fec1d744e2b26e18b8e
-
-2022-05-31  Pedro Alves  <pedro@palves.net>
-
-	Improve break-range's documentation
-	Change-Id: Iac26e1d2e7d8dc8a7d9516e6bdcc5c3fc4af45c8
-
-	Explicitly mention yet-unloaded shared libraries in location spec examples
-	Change-Id: I05639ddb3bf620c7297b57ed286adc3aa926b7b6
-
-2022-05-31  Alan Modra  <amodra@gmail.com>
-
-	sparc64 segfault in finish_dynamic_symbol
-	SYMBOL_REFERENCES_LOCAL can return true for undefined symbols.  This
-	can result in a segfault when running sparc64 ld/testsuite/ld-vsb
-	tests that expect a failure.
-
-		* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Don't
-		access u.def.section on non-default visibility undefined symbol.
-
-2022-05-31  Alan Modra  <amodra@gmail.com>
-
-	ia64 gas: Remove unnecessary init
-	The whole struct is cleared by alloc_record.
-
-		* config/tc-ia64.c (output_prologue, output_prologue_gr): Don't
-		zero r.record.r.mask.
-
-2022-05-31  Alan Modra  <amodra@gmail.com>
-
-	v850_elf_set_note prototype
-	v850_elf_set_note is declared using an unsigned int note param in
-	elf32-v850.h but defined with enum c850_notes note in elf32-v850.c.
-	Current mainline gcc is warning about this.  Huh.
-
-		* elf32-v850.c (v850_elf_set_note): Make "note" param an
-		unsigned int.
-
-2022-05-31  Alan Modra  <amodra@gmail.com>
-
-	Import libiberty from gcc
-		PR 29200
-	include/
-		* ansidecl.h,
-		* demangle.h: Import from gcc.
-	libiberty/
-		* cp-demangle.c,
-		* testsuite/demangle-expected: Import from gcc.
-
-2022-05-31  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: resolve duplicate test name in gdb.trace/signal.exp
-	Spotted a duplicate test name in gdb.trace/signal.exp, resolved in
-	this commit by making use of 'with_test_prefix'.
-
-2022-05-31  Alan Modra  <amodra@gmail.com>
-
-	Ajdust more tests for opcodes/i386: remove trailing whitespace
-	git commit 202be274a4 also missed adjusting a few testsuite files.
-	This fixes
-	i686-vxworks  +FAIL: VxWorks shared library test 1
-	i686-vxworks  +FAIL: VxWorks executable test 1 (dynamic)
-
-2022-05-31  Alan Modra  <amodra@gmail.com>
-
-	Trailing spaces in objdump -r header
-	git commit 202be274a4 went a little wild in removing trailing spaces
-	in gas/testsuite/gas/i386/{secidx.d,secrel.d}, causing
-	x86_64-w64-mingw32  +FAIL: i386 secrel reloc
-	x86_64-w64-mingw32  +FAIL: i386 secidx reloc
-
-	I could have just replaced the trailing space, but let's fix the
-	objdump output instead.  Touches lots of testsuite files.
-
-2022-05-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-30  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: fix gdb.trace/signal.exp on x86
-	Patch
-
-	  202be274a41a ("opcodes/i386: remove trailing whitespace from insns with zero operands")
-
-	causes this regression:
-
-	  FAIL: gdb.trace/signal.exp: find syscall insn in kill
-
-	It's because the test still expects to match a whitespace after the
-	instruction, which the patch mentioned above removed.  Remove the
-	whitespaces for the regexp.
-
-	Change-Id: Ie194273cc942bfd91332d4035f6eec55b7d3a428
-
-2022-05-30  Pedro Alves  <pedro@palves.net>
-
-	gdb/manual: Introduce location specs
-	The current "Specify Location" section of the GDB manual starts with:
-
-	 "Several @value{GDBN} commands accept arguments that specify a location
-	 of your program's code."
-
-	And then, such commands are documented as taking a "location"
-	argument.  For example, here's a representative subset:
-
-	 @item break @var{location}
-	 @item clear @var{location}
-	 @item until @var{location}
-	 @item list @var{location}
-	 @item edit @var{location}
-	 @itemx info line @var{location}
-	 @item info macros @var{location}
-	 @item trace @var{location}
-	 @item info scope @var{location}
-	 @item maint agent @r{[}-at @var{location}@r{,}@r{]} @var{expression}
-
-	The issue here is that "location" isn't really correct for most of
-	these commands.  Instead, the "location" argument is really a
-	placeholder that represent an umbrella term for all of the
-	"linespecs", "explicit location", and "address location" input
-	formats.  GDB parses these and then finds the actual code locations
-	(plural) in the program that match.  For example, a "location"
-	specified like "-function func" will actually match all the code
-	locations in the program that correspond to the address/file/lineno of
-	all the functions named "func" in all the loaded programs and shared
-	libraries of all the inferiors.  A location specified like "-function
-	func -label lab" matches all the addresses of C labels named "lab" in
-	all functions named "func".  Etc.
-
-	This means that several of the commands that claim they accept a
-	"location", actually end up working with multiple locations, and the
-	manual doesn't explain that all that well.  In some cases, the command
-	will work with all the resolved locations.  In other cases, the
-	command aborts with an error if the location specification resolves to
-	multiple locations in the program.  In other cases, GDB just
-	arbitrarily and silently picks whatever is the first resolved code
-	location (which sounds like should be improved).
-
-	To clarify this, I propose we use the term "Location Specification",
-	with shorthand "locaction spec", when we're talking about the user
-	input, the argument or arguments that is/are passed to commands to
-	instruct GDB how to find locations of interest.  This is distinct from
-	the actual code locations in the program, which are what GDB finds
-	based on the user-specified location spec.  Then use "location
-	specification or the shorter "location spec" thoughout instead of
-	"location" when we're talking about the user input.
-
-	Thus, this commit does the following:
-
-	- renames the "Specify Location" section of the manual to "Location
-	  Specifications".
-
-	- It then introduces the term "Location Specification", with
-	  corresponding shorthand "location spec", as something distinct from
-	  an actual code location in the program.  It explains what a concrete
-	  code location is.  It explains that a location specification may be
-	  incomplete, and that may match multiple code locations in the
-	  program, or no code location at all.  It gives examples.  Some
-	  pre-existing examples were moved from the "Set Breaks" section, and
-	  a few new ones that didn't exist yet were added.  I think it is
-	  better to have these centralized in this "Location Specification"
-	  section, since all the other commands that accept a location spec
-	  have an xref that points there.
-
-	- Goes through the manual, and where "@var{location}" was used for a
-	  command argument, updated it to say "@var{locspec}" instead.  At the
-	  same time, tweaks the description of the affected commands to
-	  describe what happens when the location spec resolves to more than
-	  one location.  Most commands just did not say anything about that.
-
-	  One command -- "maint agent -at @var{location}" -- currently says it
-	  accepts a "location", suggesting it can accept address and explicit
-	  locations too, but that's incorrect.  In reality, it only accepts
-	  linespecs, so fix it accordingly.
-
-	  One MI command -- "-trace-find line" -- currently says it accepts a
-	  "line specification", but it can accept address and explicit
-	  locations too, so fix it accordingly.
-
-	Special thanks goes to Eli Zaretskii for reviews and rewording
-	suggestions.
-
-	Change-Id: Ic42ad8565e79ca67bfebb22cbb4794ea816fd08b
-
-2022-05-30  Luis Machado  <luis.machado@arm.com>
-
-	Move 64-bit BFD files from ALL_TARGET_OBS to ALL_64_TARGET_OBS
-	Doing a 32-bit build with "--enable-targets=all --disable-sim" fails to link
-	properly.
-
-	--
-
-	loongarch-tdep.o: In function `loongarch_gdbarch_init':
-	binutils-gdb/gdb/loongarch-tdep.c:443: undefined reference to `loongarch_r_normal_name'
-	loongarch-tdep.o: In function `loongarch_fetch_instruction':
-	binutils-gdb/gdb/loongarch-tdep.c:37: undefined reference to `loongarch_insn_length'
-	loongarch-tdep.o: In function `loongarch_scan_prologue(gdbarch*, unsigned long long, unsigned long long, frame_info*, trad_frame_cache*) [clone .isra.4]':
-	binutils-gdb/gdb/loongarch-tdep.c:87: undefined reference to `loongarch_insn_length'
-	binutils-gdb/gdb/loongarch-tdep.c:88: undefined reference to `loongarch_decode_imm'
-	binutils-gdb/gdb/loongarch-tdep.c:89: undefined reference to `loongarch_decode_imm'
-	binutils-gdb/gdb/loongarch-tdep.c:90: undefined reference to `loongarch_decode_imm'
-	binutils-gdb/gdb/loongarch-tdep.c:91: undefined reference to `loongarch_decode_imm'
-	binutils-gdb/gdb/loongarch-tdep.c:92: undefined reference to `loongarch_decode_imm'
-
-	--
-
-	Given the list of 64-bit BFD files in
-	opcodes/Makefile.am:TARGET64_LIBOPCODES_CFILES, it looks like GDB's
-	ALL_TARGET_OBS list is including files that should be included in
-	ALL_64_TARGET_OBS instead.
-
-	This patch accomplishes this and enables a 32-bit build with
-	"--enable-targets=all --disable-sim" to complete.
-
-	Moving the bpf, tilegx and loongarch files to the correct list means GDB can
-	find the correct disassembler function instead of finding a null pointer.
-
-	We still need the "--disable-sim" switch (or "--enable-64-bit-bfd") to
-	make a 32-bit build with "--enable-targets=all" complete correctly
-
-2022-05-30  Luis Machado  <luis.machado@arm.com>
-
-	Fix failing test for armeb-gnu-eabi
-	The following test fails on the armeb-gnu-eabi target:
-
-	FAIL: Unwind information for Armv8.1-M.Mainline PACBTI extension
-
-	This patch adjusts the expected output for big endian.
-
-2022-05-30  Alan Modra  <amodra@gmail.com>
-
-	Use a union to avoid casts in bfd/doc/chew.c
-	This fixes -Wpedantic warnings in chew.c.  Conversion between function
-	and object pointers is not guaranteed.  They can even be different
-	sizes, not that we're likely to encounter build machines like that
-	nowadays.
-
-		PR 29194
-		* doc/chew.c (pcu): New union typedef.
-		(dict_type, pc): Use it here.  Adjust uses of pc.
-		(add_to_definition): Make "word" param a pcu.  Adjust all uses
-		of function.
-		(stinst_type): Delete.
-
-2022-05-30  Alan Modra  <amodra@gmail.com>
-
-	use libiberty xmalloc in bfd/doc/chew.c
-	Catch out of memory.
-
-		* doc/chew.c: Include libibery.h.
-		(init_string_with_size, nextword): Replace malloc with xmalloc.
-		(newentry, add_to_definition): Likewise.
-		(catchar, catbuf): Replace realloc with xrealloc.
-		(add_intrinsic): Replace strdup with xstrdup.
-		* doc/local.mk (LIBIBERTY): Define.
-		(chew): Link against libiberty.
-		* Makefile.in: Regenerate.
-
-2022-05-30  Alan Modra  <amodra@gmail.com>
-
-	Update K&R functions in bfd/doc/chew.c
-		* doc/chew.c: Update function definitions to ISO C, remove
-		now unnecessary prototypes.
-
-2022-05-30  Alan Modra  <amodra@gmail.com>
-
-	Reorganise bfd/doc/chew.c a little
-	This also removes some unused variables, and deletes support for the
-	"var" keyword which isn't used and was broken.  (No means to set
-	variables, and add_var used push_number inconsistent with its use
-	elsewhere.)
-
-		* doc/chew.c: Move typedefs before variables, variables before
-		functions.
-		(die): Move earlier.
-		(word_type, sstack, ssp): Delete.
-		(dict_type): Delete var field.
-		(add_var): Delete.
-		(compile): Remove "var" support.
-
-2022-05-30  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Add zhinx extension supports.
-	The zhinx extension is a sub-extension in zfinx, corresponding to
-	zfh extension but use GPRs instead of FPRs.
-
-	This patch expanded the zfh insn class define, since zfh and zhinx
-	use the same opcodes, thanks for Nelson's works.
-
-	changelog in V2: Add missing classes of 'zfh' and 'zhinx' in
-	"riscv_multi_subset_supports_ext".
-
-	bfd/ChangeLog:
-
-	        * elfxx-riscv.c (riscv_multi_subset_supports): New extensions.
-	        (riscv_multi_subset_supports_ext): New extensions.
-
-	gas/ChangeLog:
-
-	        * testsuite/gas/riscv/fp-zhinx-insns.d: New test.
-	        * testsuite/gas/riscv/fp-zhinx-insns.s: New test.
-
-	include/ChangeLog:
-
-	        * opcode/riscv.h (enum riscv_insn_class): New INSN classes.
-
-	opcodes/ChangeLog:
-
-	        * riscv-opc.c: Modify INSN_CLASS.
-
-2022-05-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: improve formatting of help text for user defined commands
-	Consider this command defined in Python (in the file test-cmd.py):
-
-	  class test_cmd (gdb.Command):
-	    """
-	    This is the first line.
-	      Indented second line.
-	    This is the third line.
-	    """
-
-	    def __init__ (self):
-	      super ().__init__ ("test-cmd", gdb.COMMAND_OBSCURE)
-
-	    def invoke (self, arg, from_tty):
-	      print ("In test-cmd")
-
-	  test_cmd()
-
-	Now, within a GDB session:
-
-	  (gdb) source test-cmd.py
-	  (gdb) help test-cmd
-
-	    This is the first line.
-	      Indented second line.
-	    This is the third line.
-
-	  (gdb)
-
-	I think there's three things wrong here:
-
-	  1. The leading blank line,
-	  2. The trailing blank line, and
-	  3. Every line is indented from the left edge slightly.
-
-	The problem of course, is that GDB is using the Python doc string
-	verbatim as its help text.  While the user has formatted the help text
-	so that it appears clear within the .py file, this means that the text
-	appear less well formatted when displayed in the "help" output.
-
-	The same problem can be observed for gdb.Parameter objects in their
-	set/show output.
-
-	In this commit I aim to improve the "help" output for commands and
-	parameters.
-
-	To do this I have added gdbpy_fix_doc_string_indentation, a new
-	function that rewrites the doc string text following the following
-	rules:
-
-	  1. Leading blank lines are removed,
-	  2. Trailing blank lines are removed, and
-	  3. Leading whitespace is removed in a "smart" way such that the
-	  relative indentation of lines is retained.
-
-	With this commit in place the above example now looks like this:
-
-	  (gdb) source ~/tmp/test-cmd.py
-	  (gdb) help test-cmd
-	  This is the first line.
-	    Indented second line.
-	  This is the third line.
-	  (gdb)
-
-	Which I think is much neater.  Notice that the indentation of the
-	second line is retained.  Any blank lines within the help text (not
-	leading or trailing) will be retained.
-
-	I've added a NEWS entry to note that there has been a change in
-	behaviour, but I didn't update the manual.  The existing manual is
-	suitably vague about how the doc string is used, so I think the new
-	behaviour is covered just as well by the existing text.
-
-2022-05-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: use gdb::unique_xmalloc_ptr<char> for docs in cmdpy_init
-	Make use of gdb::unique_xmalloc_ptr<char> to hold the documentation
-	string in cmdpy_init (when creating a custom GDB command in Python).
-	I think this is all pretty straight forward, the only slight weirdness
-	is the removal of the call to free toward the end of this function.
-
-	Prior to this commit, if an exception was thrown after the GDB command
-	was created then we would (I think) end up freeing the documentation
-	string even though the command would remain registered with GDB, which
-	would surely lead to undefined behaviour.
-
-	After this commit we release the doc string at the point that we hand
-	it over to the command creation routines.  If we throw _after_ the
-	command has been created within GDB then the doc string will be left
-	live.  If we throw during the command creation itself (either from
-	add_prefix_cmd or add_cmd) then it is up to those functions to free
-	the doc string (I suspect we don't, but I think in general the
-	commands are pretty bad at cleaning up after themselves, so I don't
-	think this is a huge problem).
-
-2022-05-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build with -mx32
-	gprofng/ChangeLog
-	2022-05-27  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/28983
-		PR gprofng/29143
-		* src/Experiment.cc (write_header): Fix argument for ctime.
-		Fix -Wformat= warnings.
-		* src/Dbe.cc: Likewise.
-		* src/DwarfLib.h: Fix [-Wsign-compare] warnings.
-		* src/Experiment.h: Likewise.
-		* src/ipc.cc: Fix -Wformat= warnings.
-
-2022-05-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-27  Tom Tromey  <tom@tromey.com>
-
-	Fix crash with "maint print arc"
-	Luis noticed that "maint print arc" would crash, because the command
-	handler did not find "show" in the command name, violating an
-	invariant.  This patch fixes the bug by changing the registration to
-	use add_basic_prefix_cmd instead.
-
-2022-05-27  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/i386: remove trailing whitespace from insns with zero operands
-	While working on another patch[1] I had need to touch this code in
-	i386-dis.c:
-
-	  ins->obufp = ins->mnemonicendp;
-	  for (i = strlen (ins->obuf) + prefix_length; i < 6; i++)
-	    oappend (ins, " ");
-	  oappend (ins, " ");
-	  (*ins->info->fprintf_styled_func)
-	    (ins->info->stream, dis_style_mnemonic, "%s", ins->obuf);
-
-	What this code does is add whitespace after the instruction mnemonic
-	and before the instruction operands.
-
-	The problem I ran into when working on this code can be seen by
-	assembling this input file:
-
-	    .text
-	    nop
-	    retq
-
-	Now, when I disassemble, here's the output.  I've replaced trailing
-	whitespace with '_' so that the issue is clearer:
-
-	    Disassembly of section .text:
-
-	    0000000000000000 <.text>:
-	       0:	90                   	nop
-	       1:	c3                   	retq___
-
-	Notice that there's no trailing whitespace after 'nop', but there are
-	three spaces after 'retq'!
-
-	What happens is that instruction mnemonics are emitted into a buffer
-	instr_info::obuf, then instr_info::mnemonicendp is setup to point to
-	the '\0' character at the end of the mnemonic.
-
-	When we emit the whitespace, this is then added starting at the
-	mnemonicendp position.  Lets consider 'retq', first the buffer is
-	setup like this:
-
-	  'r' 'e' 't' 'q' '\0'
-
-	Then we add whitespace characters at the '\0', converting the buffer
-	to this:
-
-	  'r' 'e' 't' 'q' ' ' ' ' ' ' '\0'
-
-	However, 'nop' is actually an alias for 'xchg %rax,%rax', so,
-	initially, the buffer is setup like this:
-
-	  'x' 'c' 'h' 'g' '\0'
-
-	Then in NOP_Fixup we spot that we have an instruction that is an alias
-	for 'nop', and adjust the buffer to this:
-
-	  'n' 'o' 'p' '\0' '\0'
-
-	The second '\0' is left over from the original buffer contents.
-	However, when we rewrite the buffer, we don't afjust mnemonicendp,
-	which still points at the second '\0' character.
-
-	Now, when we insert whitespace we get:
-
-	  'n' 'o' 'p' '\0' ' ' ' ' ' ' ' ' '\0'
-
-	Notice the whitespace is inserted after the first '\0', so, when we
-	print the buffer, the whitespace is not printed.
-
-	The fix for this is pretty easy, I can change NOP_Fixup to adjust
-	mnemonicendp, but now a bunch of tests start failing, we now produce
-	whitespace after the 'nop', which the tests don't expect.
-
-	So, I could update the tests to expect the whitespace....
-
-	...except I'm not a fan of trailing whitespace, so I'd really rather
-	not.
-
-	Turns out, I can pretty easily update the whitespace emitting code to
-	spot instructions that have zero operands and just not emit any
-	whitespace in this case.  So this is what I've done.
-
-	I've left in the fix for NOP_Fixup, I think updating mnemonicendp is
-	probably a good thing, though this is not really required any more.
-
-	I've then updated all the tests that I saw failing to adjust the
-	expected patterns to account for the change in whitespace.
-
-	[1] https://sourceware.org/pipermail/binutils/2022-April/120610.html
-
-2022-05-27  Alan Modra  <amodra@gmail.com>
-
-	Replace bfd_hostptr_t with uintptr_t
-	bfd_hostptr_t is defined as a type large enough to hold either a long
-	or a pointer.  It mostly appears in the coff backend code in casts.
-	include/coff/internal.h struct internal_syment and union
-	internal_auxent have the only uses in data structures, where
-	comparison with include/coff/external.h and other code reveals that
-	the type only needs to be large enough for a 32-bit integer or a
-	pointer.  That should mean replacing with uintptr_t is OK.
-
-	Remove much of BFD_HOST configury
-	This patch removes the definition of bfd_uint64_t and bfd_int64_t as
-	well as most BFD_HOST_* which are now unused.
-
-	Remove use of bfd_uint64_t and similar
-	Requiring C99 means that uses of bfd_uint64_t can be replaced with
-	uint64_t, and similarly for bfd_int64_t, BFD_HOST_U_64_BIT, and
-	BFD_HOST_64_BIT.  This patch does that, removes #ifdef BFD_HOST_*
-	and tidies a few places that print 64-bit values.
-
-2022-05-27  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build with --disable-shared
-	gprofng/ChangeLog
-	2022-05-26  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* libcollector/configure.ac: Use AC_MSG_WARN instead of AC_MSG_ERROR
-		* libcollector/configure: Rebuild.
-
-2022-05-27  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: allow MASM representation of embedded rounding / SAE
-	MASM doesn't support the separate operand form; the modifier belongs
-	after the instruction instead. Accept this form alongside the original
-	(now legacy) one. Short of having access to a MASM version to actually
-	check in how far "after the instruction" is a precise statement in their
-	documentation, allow both that and the SDM mandated form where the
-	modifier is on the last register operand (with a possible immediate
-	operand following).
-
-	Sadly the split out function, at least for the time being, needs to cast
-	away constness at some point, as the two callers disagree in this
-	regard.
-
-	Adjust some, but not all of the testcases.
-
-2022-05-27  Jan Beulich  <jbeulich@suse.com>
-
-	x86: re-work AVX512 embedded rounding / SAE
-	As a preparatory step to allowing proper non-operand forms of specifying
-	embedded rounding / SAE, convert the internal representation to non-
-	operand form. While retaining properties (and in a few cases perhaps
-	providing more meaningful diagnostics), this means doing away with a few
-	hundred standalone templates, thus - as a nice side effect - reducing
-	memory consumption / cache occupancy.
-
-	x86/Intel: adjust representation of embedded rounding / SAE
-	MASM doesn't consider {sae} and alike a separate operand; it is attached
-	to the last register operand instead, just like spelled out by the SDM.
-	Make the disassembler follow this first, before also adjusting the
-	assembler (such that it'll be easy to see that the assembler change
-	doesn't alter generated code).
-
-2022-05-27  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: allow MASM representation of embedded broadcast
-	MASM doesn't support the {1to<n>} form; DWORD BCST (paralleling
-	DWORD PTR) and alike are to be used there instead. Accept these forms
-	alongside the original (now legacy) ones.
-
-	Acceptance of the original {1to<n>} operand suffix is retained both for
-	backwards compatibility and to disambiguate VFPCLASSP{S,D,H} and vector
-	conversions with shrinking element sizes. I have no insight (yet) into
-	how MASM expects those to be disambiguated.
-
-	Adjust some, but not all of the testcases.
-
-2022-05-27  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: adjust representation of embedded broadcast
-	MASM doesn't support the {1to<n>} form; DWORD BCST (paralleling
-	DWORD PTR) and alike are to be used there instead. Make the disassembler
-	follow this first, before also adjusting the assembler (such that it'll
-	be easy to see that the assembler change doesn't alter generated code).
-
-	For VFPCLASSP{S,D,H} and vector conversions with shrinking element sizes
-	the original {1to<n>} operand suffix is retained, to disambiguate
-	output. I have no insight (yet) into how MASM expects those to be
-	disambiguated.
-
-2022-05-27  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fix build with -mx32
-	gprofng/ChangeLog
-	2022-05-26  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/28983
-		* libcollector/libcol_util.h (__collector_getsp, __collector_getfp,
-		__collector_getpc): Adapt for build with -mx32
-		* libcollector/heaptrace.c: Fix -Wpointer-to-int-cast warnings.
-		* libcollector/hwprofile.h: Likewise.
-		* libcollector/mmaptrace.c: Likewise.
-		* libcollector/synctrace.c: Likewise.
-		* libcollector/unwind.c: Likewise.
-
-2022-05-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-27  Hans-Peter Nilsson  <hp@axis.com>
-
-	ld: cris*-elf: Default to --no-warn-rwx-segment
-	ld:
-		configure.tgt (cris-*-*, crisv32-*-* sans *-aout and *-linux): Unless
-		specified through the --enable-* -option, default to
-		--no-warn-rwx-segment.
-
-	Change-Id: I846bcd3e6762da807b17215a9fe337461ea0d710
-
-2022-05-27  Hans-Peter Nilsson  <hp@axis.com>
-
-	cris: bfd: Correct default to no execstack
-	In the now-historical CRIS glibc port, the default stack permission
-	was no-exec as in "#define DEFAULT_STACK_PERMS (PF_R|PF_W)", and the
-	gcc port only emits the executable-stack marker when needed; when
-	emitting code needing it.  In other words, the binutils setting
-	mismatches.  It doesn't matter much, except being confusing and
-	defaulting to "off" is more sane.
-
-	ld:
-
-		* testsuite/ld-elf/elf.exp (target_defaults_to_execstack): Switch to 0
-		for cris*-*-*.
-
-	bfd:
-		* elf32-cris.c (elf_backend_default_execstack): Define to 0.
-
-	Change-Id: I52f37598f119b19111c7a6546c00a627fca0f396
-
-2022-05-26  John Baldwin  <jhb@FreeBSD.org>
-
-	aarch64-fbsd-nat: Move definition of debug_regs_probed under HAVE_DBREG.
-	This fixes the build on older FreeBSD systems without support for
-	hardware breakpoints/watchpoints.
-
-2022-05-26  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Change psymbol_functions::require_partial_symbols to partial_symbols
-	The previous patch ensured that partial symbols are read before calling
-	most of the quick_function's methods.
-
-	The psymbol_functions class has the require_partial_symbols method which
-	serves this exact purpose, and does not need to do it anymore.
-
-	This patch renames this method to partial_symbols and makes it an accessor
-	which asserts that partial symbols have been read at this point.
-
-	Regression tested on x86_64-linux.
-
-2022-05-26  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Require psymtab before calling quick_functions in objfile
-	The recent DWARF indexer rewrite introduced a regression when debugging
-	a forking program.
-
-	Here is a way to reproduce the issue (there might be other ways, but one
-	is enough and this one mimics the situation we encountered).  Consider a
-	program which forks, and the child loads a shared library and calls a
-	function in this shared library:
-
-	    if (fork () == 0)
-	      {
-	        void *solib = dlopen (some_solib, RTLD_NOW);
-	        void (*foo) () = dlsym (some_solib, "foo");
-	        foo ();
-	      }
-
-	Suppose that this program is compiled without debug info, but the shared
-	library it loads has debug info enabled.
-
-	When debugging such program with the following options:
-
-	  - set detach-on-fork off
-	  - set follow-fork-mode child
-
-	we see something like:
-
-	    (gdb) b foo
-	    Function "foo" not defined.
-	    Make breakpoint pending on future shared library load? (y or [n]) y
-	    Breakpoint 1 (foo) pending.
-	    (gdb) run
-	    Starting program: a.out
-	    [Attaching after process 19720 fork to child process 19723]
-	    [New inferior 2 (process 19723)]
-	    [Switching to process 19723]
-
-	    Thread 2.1 "a.out" hit Breakpoint 1, 0x00007ffff7fc3101 in foo () from .../libfoo.so
-	    (gdb) list
-
-	    Fatal signal: Segmentation fault
-	    ----- Backtrace -----
-	    0x55a278f77d76 gdb_internal_backtrace_1
-	            ../../gdb/bt-utils.c:122
-	    0x55a278f77f83 _Z22gdb_internal_backtracev
-	            ../../gdb/bt-utils.c:168
-	    0x55a27940b83b handle_fatal_signal
-	            ../../gdb/event-top.c:914
-	    0x55a27940bbb1 handle_sigsegv
-	            ../../gdb/event-top.c:987
-	    0x7effec0343bf ???
-	            /build/glibc-sMfBJT/glibc-2.31/nptl/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
-	    0x55a27924c9d3 _ZNKSt15__uniq_ptr_implI18dwarf2_per_cu_data26dwarf2_per_cu_data_deleterE6_M_ptrEv
-	            /usr/include/c++/9/bits/unique_ptr.h:154
-	    0x55a279248bc9 _ZNKSt10unique_ptrI18dwarf2_per_cu_data26dwarf2_per_cu_data_deleterE3getEv
-	            /usr/include/c++/9/bits/unique_ptr.h:361
-	    0x55a2792ae718 _ZN27dwarf2_base_index_functions23find_last_source_symtabEP7objfile
-	            ../../gdb/dwarf2/read.c:3164
-	    0x55a279afb93e _ZN7objfile23find_last_source_symtabEv
-	            ../../gdb/symfile-debug.c:139
-	    0x55a279aa3040 _Z20select_source_symtabP6symtab
-	            ../../gdb/source.c:365
-	    0x55a279aa22a1 _Z34set_default_source_symtab_and_linev
-	            ../../gdb/source.c:268
-	    0x55a27903c44c list_command
-	            ../../gdb/cli/cli-cmds.c:1185
-	    0x55a279051233 do_simple_func
-	            ../../gdb/cli/cli-decode.c:95
-	    0x55a27905f221 _Z8cmd_funcP16cmd_list_elementPKci
-	            ../../gdb/cli/cli-decode.c:2514
-	    0x55a279c3b0ba _Z15execute_commandPKci
-	            ../../gdb/top.c:660
-	    0x55a27940a6c3 _Z15command_handlerPKc
-	            ../../gdb/event-top.c:598
-	    0x55a27940b032 _Z20command_line_handlerOSt10unique_ptrIcN3gdb13xfree_deleterIcEEE
-	            ../../gdb/event-top.c:797
-	    0x55a279caf401 tui_command_line_handler
-	            ../../gdb/tui/tui-interp.c:278
-	    0x55a279409098 gdb_rl_callback_handler
-	            ../../gdb/event-top.c:230
-	    0x55a279ed5df2 rl_callback_read_char
-	            ../../../readline/readline/callback.c:281
-	    0x55a279408bd8 gdb_rl_callback_read_char_wrapper_noexcept
-	            ../../gdb/event-top.c:188
-	    0x55a279408de7 gdb_rl_callback_read_char_wrapper
-	            ../../gdb/event-top.c:205
-	    0x55a27940a061 _Z19stdin_event_handleriPv
-	            ../../gdb/event-top.c:525
-	    0x55a27a23771e handle_file_event
-	            ../../gdbsupport/event-loop.cc:574
-	    0x55a27a237f5f gdb_wait_for_event
-	            ../../gdbsupport/event-loop.cc:700
-	    0x55a27a235d81 _Z16gdb_do_one_eventv
-	            ../../gdbsupport/event-loop.cc:237
-	    0x55a2796c2ef0 start_event_loop
-	            ../../gdb/main.c:418
-	    0x55a2796c3217 captured_command_loop
-	            ../../gdb/main.c:478
-	    0x55a2796c717b captured_main
-	            ../../gdb/main.c:1340
-	    0x55a2796c7217 _Z8gdb_mainP18captured_main_args
-	            ../../gdb/main.c:1355
-	    0x55a278d0b381 main
-	            ../../gdb/gdb.c:32
-	    ---------------------
-	    A fatal error internal to GDB has been detected, further
-	    debugging is not possible.  GDB will now terminate.
-
-	    This is a bug, please report it.  For instructions, see:
-	    <https://www.gnu.org/software/gdb/bugs/>.
-
-	The first issue observed is in the message printed when hitting the
-	breakpoint.  It says that there was a break in the .so file as if there
-	was no debug info associated with it, but there is.  Later, if we try to
-	display the source where the execution stopped, we have a segfault.
-
-	Note that not having the debug info on the main binary is not strictly
-	required to encounter some issues, it only is to encounter the segfault.
-	If the main binary has debug information, GDB shows some source form the
-	main binary, unrelated to where we stopped.
-
-	The core of the issue is that GDB never loads the psymtab for the
-	library.  It is not loaded when we first see the .so because in case of
-	detach-on-fork off, follow-fork-mode child, infrun.c sets
-	child_inf->symfile_flags = SYMFILE_NO_READ to delay the psymtab loading
-	as much as possible.  If we compare to what was done to handle this
-	before the new indexer was activated, the psymatb construction for the
-	shared library was done under
-	psymbol_functions::expand_symtabs_matching:
-
-	    bool
-	    psymbol_functions::expand_symtabs_matching (...)
-	    {
-	        for (partial_symtab *ps : require_partial_symbols (objfile))
-	        ...
-	    }
-
-	The new indexer's expand_symtabs_matching callback does not have a call
-	to the objfile's require_partial_symbols, so if the partial symbol table
-	is not loaded at this point, there is no mechanism to fix this.
-
-	Instead of requiring each implementation of the quick_functions to check
-	that partial symbols have been read, I think it is safer to enforce this
-	when calling the quick functions.  The general pattern for calling the
-	quick functions is:
-
-	    for (auto *iter : qf)
-	      iter->the_actual_method_call (...)
-
-	This patch proposes to wrap the access of the `qf` field with an accessor
-	which ensures that partial symbols have been read before iterating:
-	qf_require_partial_symbols.  All calls to quick functions are updated
-	except:
-
-	- quick_functions::dump
-	- quick_functions::read_partial_symbols (from
-	  objfile::require_partial_symbols)
-	- quick_functions::can_lazily_read_symbols and quick_functions::has_symbols
-	  (from objfile::has_partial_symbols)
-
-	Regression tested on x86_64-gnu-linux.
-
-	Change-Id: I39a13a937fdbaae613a5cf68864b021000554546
-
-2022-05-26  Tom Tromey  <tom@tromey.com>
-
-	Fix crash in new DWARF indexer
-	PR gdb/29128 points out a crash in the new DWARF index code.  This
-	happens if the aranges for a CU claims a PC, but the symtab that is
-	created during CU expansion does not actually contain the PC.  This
-	can only occur due to bad debuginfo, but at the same time, gdb should
-	not crash.
-
-	This patch fixes the bug and further merges some code into
-	dwarf2_base_index_functions.  This merger helps prevent the same issue
-	from arising from the other index implementations.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29128
-
-2022-05-26  Tom Tromey  <tromey@adacore.com>
-
-	Finalize each cooked index separately
-	After DWARF has been scanned, the cooked index code does a
-	"finalization" step in a worker thread.  This step combines all the
-	index entries into a single master list, canonicalizes C++ names, and
-	splits Ada names to synthesize package names.
-
-	While this step is run in the background, gdb will wait for the
-	results in some situations, and it turns out that this step can be
-	slow.  This is PR symtab/29105.
-
-	This can be sped up by parallelizing, at a small memory cost.  Now
-	each index is finalized on its own, in a worker thread.  The cost
-	comes from name canonicalization: if a given non-canonical name is
-	referred to by multiple indices, there will be N canonical copies (one
-	per index) rather than just one.
-
-	This requires changing the users of the index to iterate over multiple
-	results.  However, this is easily done by introducing a new "chained
-	range" class.
-
-	When run on gdb itself, the memory cost seems rather low -- on my
-	current machine, "maint space 1" reports no change due to the patch.
-
-	For performance testing, using "maint time 1" and "file" will not show
-	correct results.  That approach measures "time to next prompt", but
-	because the patch only affects background work, this shouldn't (and
-	doesn't) change.  Instead, a simple way to make gdb wait for the
-	results is to set a breakpoint.
-
-	Before:
-
-	    $ /bin/time -f%e ~/gdb/install/bin/gdb -nx -q -batch \
-	        -ex 'break main' /tmp/gdb
-	    Breakpoint 1 at 0x43ec30: file ../../binutils-gdb/gdb/gdb.c, line 28.
-	    2.00
-
-	After:
-
-	    $ /bin/time -f%e ./gdb/gdb -nx -q -batch \
-	        -ex 'break main' /tmp/gdb
-	    Breakpoint 1 at 0x43ec30: file ../../binutils-gdb/gdb/gdb.c, line 28.
-	    0.65
-
-	Regression tested on x86-64 Fedora 34.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29105
-
-2022-05-26  Alan Modra  <amodra@gmail.com>
-
-	bit-rot in target before_parse function
-	Copy initialisation over from the elf.em before_parse.  Commit
-	ba951afb999 2022-05-03 changed behaviour on arm and score regarding
-	exec stack.  This patch restores the previous behaviour.
-
-		* emultempl/aarch64elf.em (before_parse): Init separate_code,
-		warn_execstack, no_warn_rwx_segments and default_execstack.
-		* emultempl/armelf.em (before_parse): Likewise.
-		* emultempl/scoreelf.em (before_parse): Likewise.
-		* testsuite/ld-elf/elf.exp (target_defaults_to_execstack): Return
-		true for arm and nacl.
-
-2022-05-26  Richard Earnshaw  <rearnsha@arm.com>
-
-	 arm: avoid use of GNU builtin function in s_arm_unwind_save_mixed
-	Whilst reviewing Luis' proposed change to s_arm_unwind_save_mixed
-	yesterday I noticed that we were making use of __builting_clzl
-	directly within the main function, which is not guaranteed to be
-	portable.  Whilst studying the code further, I also realized that it
-	could be rewritten without using it and also reworked to remove a lot
-	of unnecessary iterations steps.  So this patch does that (and also
-	removes the source of the warning that Luis was trying to fix).
-	Finally, with the rewrite we can also simplify the caller of this
-	routine as the new version can handle all the cases directly.
-
-		* config/tc-arm.c (s_arm_unwind_save_mixed): Rewrite without
-		using __builtin_clzl.
-		(s_arm_unwind_save): Simplify logic for simple/mixed register saves.
-
-2022-05-26  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/linux-nat: xfer_memory_partial return E_IO on error
-	When accessing /proc/PID/mem, if pread64/pwrite64/read/write encounters
-	an error and return -1, linux_proc_xfer_memory_partial return
-	TARGET_XFER_EOF.
-
-	I think it should return TARGET_XFER_E_IO in this case.  TARGET_XFER_EOF
-	is returned when pread64/pwrite64/read/frite returns 0, which indicates
-	that the address space is gone and the whole process has exited or
-	execed.
-
-	This patch makes this change.
-
-	Regression tested on x86_64-linux-gnu.
-
-	Change-Id: I6030412459663b8d7933483fdda22a6c2c5d7221
-
-2022-05-26  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: prefer gdb_test in gdb.dwarf2/calling-convention
-	Since ed01945057c "Make gdb_test's question non-optional if specified",
-	if the question and response parameters are given to gdb_test, the
-	framework enforces that GDB asks the question.  Before this patch, tests
-	needed to use gdb_test_multiple to enforce this.
-
-	This patch updates the gdb.dwarf2/calling-convention.exp testcase to use
-	gdb_test to check that GDB asks a question.  This replaces the more
-	complicated gdb_test_multiple based implementation.
-
-	Tested on x86_64-gnu-linux.
-
-	Change-Id: I7216e822ca68f2727e0450970097d74c27c432fe
-
-2022-05-26  Potharla, Rupesh  <Rupesh.Potharla@amd.com>
-
-	bfd: Add Support for DW_FORM_strx* and DW_FORM_addrx*
-
-2022-05-26  Luca Boccassi  <bluca@debian.org>
-
-	ld: add --package-metadata
-	Generate a .note.package FDO package metadata ELF note, following
-	the spec: https://systemd.io/ELF_PACKAGE_METADATA/
-
-	If the jansson library is available at build time (and it is explicitly
-	enabled), link ld to it, and use it to validate that the input is
-	correct JSON, to avoid writing garbage to the file. The
-	configure option --enable-jansson has to be used to explicitly enable
-	it (error out when not found). This allows bootstrappers (or others who
-	are not interested) to seamlessly skip it without issues.
-
-2022-05-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-26  Natarajan, Kavitha  <Kavitha.Natarajan@amd.com>
-
-	Re: Add bionutils support for DWARF v5's DW_OP_addrx
-	Testsuite files belonging to commit 3ac9da49378c.
-
-2022-05-25  Pedro Alves  <pedro@palves.net>
-
-	Show enabled locations with disabled breakpoint parent as "y-"
-	Currently, breakpoint locations that are enabled while their parent
-	breakpoint is disabled are displayed with "y" in the Enb colum of
-	"info breakpoints":
-
-	 (gdb) info breakpoints
-	 Num     Type           Disp Enb Address            What
-	 1       breakpoint     keep n   <MULTIPLE>
-	 1.1                         y   0x00000000000011b6 in ...
-	 1.2                         y   0x00000000000011c2 in ...
-	 1.3                         n   0x00000000000011ce in ...
-
-	Such locations won't trigger a break, so to avoid confusion, show "y-"
-	instead.  For example:
-
-	 (gdb) info breakpoints
-	 Num     Type           Disp Enb Address            What
-	 1       breakpoint     keep n   <MULTIPLE>
-	 1.1                         y-  0x00000000000011b6 in ...
-	 1.2                         y-  0x00000000000011c2 in ...
-	 1.3                         n   0x00000000000011ce in ...
-
-	The "-" sign is inspired on how the TUI represents breakpoints on the
-	left side of the source window, with "b-" for a disabled breakpoint.
-
-	Change-Id: I9952313743c51bf21b4b380c72360ef7d4396a09
-
-2022-05-25  Natarajan, Kavitha  <Kavitha.Natarajan@amd.com>
-
-	Add bionutils support for DWARF v5's DW_OP_addrx.
-
-2022-05-25  Pedro Alves  <pedro@palves.net>
-
-	gdb: Fix DUPLICATE and PATH regressions throughout
-	The previous patch to add -prompt/-lbl to gdb_test introduced a
-	regression: Before, you could specify an explicit empty message to
-	indicate you didn't want to PASS, like so:
-
-	  gdb_test COMMAND PATTERN ""
-
-	After said patch, gdb_test no longer distinguishes
-	no-message-specified vs empty-message, so tests that previously would
-	be silent on PASS, now started emitting PASS messages based on
-	COMMAND.  This in turn introduced a number of PATH/DUPLICATE
-	violations in the testsuite.
-
-	This commit fixes all the regressions I could see.
-
-	This patch uses the new -nopass feature introduced in the previous
-	commit, but tries to avoid it if possible.  Most of the patch fixes
-	DUPLICATE issues the usual way, of using with_test_prefix or explicit
-	unique messages.
-
-	See previous commit's log for more info.
-
-	In addition to looking for DUPLICATEs, I also looked for cases where
-	we would now end up with an empty message in gdb.sum, due to a
-	gdb_test being passed both no message and empty command.  E.g., this
-	in gdb.ada/bp_reset.exp:
-
-	 gdb_run_cmd
-	 gdb_test "" "Breakpoint $decimal, foo\\.nested_sub \\(\\).*"
-
-	was resulting in this in gdb.sum:
-
-	 PASS: gdb.ada/bp_reset.exp:
-
-	I fixed such cases by passing an explicit message.  We may want to
-	make such cases error out.
-
-	Tested on x86_64 GNU/Linux, native and native-extended-gdbserver.  I
-	see zero PATH cases now.  I get zero DUPLICATEs with native testing
-	now.  I still see some DUPLICATEs with native-extended-gdbserver, but
-	those were preexisting, unrelated to the gdb_test change.
-
-	Change-Id: I5375f23f073493e0672190a0ec2e847938a580b2
-
-2022-05-25  Pedro Alves  <pedro@palves.net>
-
-	Add -nopass option to gdb_test/gdb_test_multiple
-	The previous patch to add -prompt/-lbl to gdb_test introduced a
-	regression: Before, you could specify an explicit empty message to
-	indicate you didn't want to PASS, like so:
-
-	  gdb_test COMMAND PATTERN ""
-
-	After said patch, gdb_test no longer distinguishes
-	no-message-specified vs empty-message, so tests that previously would
-	be silent on PASS, now started emitting PASS messages based on
-	COMMAND.  This in turn introduced a number of PATH/DUPLICATE
-	violations in the testsuite.
-
-	I think that not issuing a PASS should be restricted to only a few
-	cases -- namely in shared routines exported by gdb.exp, which happen
-	to use gdb_test internally.  In tests that iterate an unknown number
-	of tests exercising some racy scenario.  In the latter case, if we
-	emit PASSes for each iteration, we run into the situation where
-	different testsuite runs emit a different number of PASSes.
-
-	Thus, this patch preserves the current behavior, and, instead, adds a
-	new "-nopass" option to gdb_test and gdb_test_no_output.  Compared to
-	the old way of supressing PASS with an empty message, this has the
-	advantage that you can specify a FAIL message that is distinct from
-	the command string, and, it's also more explicit.
-
-	Change-Id: I5375f23f073493e0672190a0ec2e847938a580b2
-
-2022-05-25  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix RV32Q conflict
-	This commit makes RV32 + 'Q' extension (version 2.2 or later) not
-	conflicting since this combination is no longer prohibited by the
-	specification.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_parse_check_conflicts): Remove conflict
-		detection that prohibits RV32Q on 'Q' version 2.2 or later.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/march-fail-rv32iq.d: Removed.
-		* testsuite/gas/riscv/march-fail-rv32iq.l: Likewise.
-		* testsuite/gas/riscv/march-fail-rv32iq2p0.d: New test
-		showing RV32IQ fails on 'Q' extension version 2.0.
-		* testsuite/gas/riscv/march-fail-rv32iq2p0.l: Likewise.
-		* testsuite/gas/riscv/march-fail-rv32iq2.d: Likewise.
-		* testsuite/gas/riscv/march-fail-rv32iq-isa-2p2.d: New test
-		showing RV32IQ fails on ISA specification version 2.2.
-		* testsuite/gas/riscv/march-ok-rv32iq2p2.d: New test
-		showing RV32IQ succesds on 'Q' extension version 2.2.
-		* testsuite/gas/riscv/march-ok-rv32iq-isa-20190608.d: New test
-		showing RV32IQ succesds on ISA specification 20190608.
-
-2022-05-25  Dmitry Selyutin  <ghostmansd@gmail.com>
-
-	opcodes: introduce BC field; fix isel
-	Per Power ISA Version 3.1B 3.3.12, isel uses BC field rather than CRB
-	field present in binutils sources. Also, per 1.6.2, BC has the same
-	semantics as BA and BB fields, so this should keep the same flags and
-	mask, only with the different offset.
-
-	opcodes/
-	        * ppc-opc.c
-	        (BC): Define new field, with the same definition as CRB field,
-	        but with the PPC_OPERAND_CR_BIT flag present.
-	gas/
-	        * testsuite/gas/ppc/476.d: Update.
-	        * testsuite/gas/ppc/a2.d: Update.
-	        * testsuite/gas/ppc/e500.d: Update.
-	        * testsuite/gas/ppc/power7.d: Update.
-
-2022-05-25  Dmitry Selyutin  <ghostmansd@gmail.com>
-
-	ppc: extend opindex to 16 bits
-	With the upcoming SVP64 extension[0] to PowerPC architecture, it became
-	evident that PowerPC operand indices no longer fit 8 bits. This patch
-	switches the underlying type to uint16_t, also introducing a special
-	typedef so that any future extension goes even smoother.
-
-	[0] https://libre-soc.org
-
-	include/
-		* opcode/ppc.h (ppc_opindex_t): New typedef.
-		(struct powerpc_opcode): Use it.
-		(PPC_OPINDEX_MAX): Define.
-	gas/
-		* write.h (struct fix): Increase size of fx_pcrel_adjust.
-		Reorganise.
-		* config/tc-ppc.c (insn_validate): Use ppc_opindex_t for operands.
-		(md_assemble): Likewise.
-		(md_apply_fix): Likewise.  Mask fx_pcrel_adjust with PPC_OPINDEX_MAX.
-		(ppc_setup_opcodes): Adjust opcode index assertion.
-	opcodes/
-		* ppc-dis.c (skip_optional_operands): Use ppc_opindex_t for
-		operand pointer.
-		(lookup_powerpc, lookup_prefix, lookup_vle, lookup_spe2): Likewise.
-		(print_insn_powerpc): Likewise.
-
-2022-05-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.opt/clobbered-registers-O2.exp with clang
-	When running test-case gdb.opt/clobbered-registers-O2.exp with clang 12.0.1, I
-	get:
-	...
-	(gdb) run ^M
-	Starting program: clobbered-registers-O2 ^M
-	^M
-	Program received signal SIGSEGV, Segmentation fault.^M
-	gen_movsd (operand0=<optimized out>, operand1=<optimized out>) at \
-	  clobbered-registers-O2.c:31^M
-	31              return *start_sequence(operand0, operand1);^M
-	(gdb) FAIL: gdb.opt/clobbered-registers-O2.exp: runto: run to start_sequence
-	...
-
-	The problem is that the breakpoint in start_sequence doesn't trigger, because:
-	- the call to start_sequence in gen_movsd is optimized away, despite the
-	  __attribute__((noinline)), so the actual function start_sequence doesn't get
-	  called, and
-	- the debug info doesn't contain inlined function info, so there's only one
-	  breakpoint location.
-
-	Adding noclone and noipa alongside the noinline attribute doesn't fix this.
-
-	Adding the clang-specific attribute optnone in start_sequence does, but since
-	it inhibits all optimization, that's not a preferred solution in a gdb.opt
-	test-case, and it would work only for clang and not other compilers that
-	possibly have the same issue.
-
-	Fix this by moving functions start_sequence and gen_movsd into their own
-	files, as a way of trying harder to enforce noinline/noipa/noclone.
-
-	Tested on x86_64-linux.
-
-2022-05-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.opt/clobbered-registers-O2.exp with gcc-12
-	When running test-case gdb.opt/clobbered-registers-O2.exp with gcc-12, I run
-	into:
-	...
-	(gdb) PASS: gdb.opt/clobbered-registers-O2.exp: backtracing
-	print operand0^M
-	$1 = (unsigned int *) 0x7fffffffd070^M
-	(gdb) print *operand0^M
-	$2 = 4195541^M
-	(gdb) FAIL: gdb.opt/clobbered-registers-O2.exp: print operand0
-	...
-
-	The problem is that starting gcc-12, the assignments to x and y in main are
-	optimized away:
-	...
-	int main(void)
-	{
-	  unsigned x, y;
-
-	  x = 13;
-	  y = 14;
-	  return (int)gen_movsd (&x, &y);
-	...
-
-	Fix this by making x and y volatile.
-
-	Note that the test-case intends to check the handling of debug info for
-	optimized code in function gen_movsd, so inhibiting optimization in main
-	doesn't interfere with that.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29161
-
-2022-05-24  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Define LOONGARCH_LINUX_NUM_GREGSET as 45
-	LOONGARCH_LINUX_NUM_GREGSET should be defined as 45 (32 + 1 + 1 + 11)
-	due to reserved 11 for extension in glibc, otherwise when execute:
-
-	  make check-gdb TESTS="gdb.base/corefile.exp"
-
-	there exists the following failed testcase:
-
-	  (gdb) core-file /home/loongson/build.git/gdb/testsuite/outputs/gdb.base/corefile/corefile.core
-	  [New LWP 7742]
-	  warning: Unexpected size of section `.reg/7742' in core file.
-	  Core was generated by `/home/loongson/build.git/gdb/testsuite/outputs/gdb.base/corefile/corefile'.
-	  Program terminated with signal SIGABRT, Aborted.
-	  warning: Unexpected size of section `.reg/7742' in core file.
-	  #0  0x000000fff76f4e24 in raise () from /lib/loongarch64-linux-gnu/libc.so.6
-	  (gdb) FAIL: gdb.base/corefile.exp: core-file warning-free
-
-2022-05-24  Christophe Lyon  <christophe.lyon@arm.com>
-
-	AArch64: add support for DFP (Decimal Floating point)
-	This small patch adds support for TYPE_CODE_DECFLOAT in
-	aapcs_is_vfp_call_or_return_candidate_1 and pass_in_v_vfp_candidate,
-	so that GDB for AArch64 knows how to pass DFP parameters and how to
-	read DFP results when calling a function.
-
-	Tested on aarch64-linux-gnu, with a GCC with DFP support in the PATH,
-	all of GDB's DFP tests pass.
-
-2022-05-24  Christophe Lyon  <christophe.lyon@arm.com>
-
-	Merge config/ changes from GCC, to enable DFP on AArch64
-	2022-04-28  Christophe Lyon  <christophe.lyon@arm.com>
-
-		config/
-		* dfp.m4 (enable_decimal_float): Enable BID for AArch64.
-
-		libdecnumber/
-		* configure: Regenerate.
-
-2022-05-24  Alan Modra  <amodra@gmail.com>
-
-	PR29171, invalid read causing SIGSEGV
-	The fix here is to pass "section" down to read_and_display_attr_value.
-	The test in read_and_display_attr_value is a little bit of hardening.
-
-		PR 29171
-		* dwarf.c (display_debug_macro, display_debug_names): Pass section
-		to read_and_display_attr_value2.
-		(read_and_display_attr_value): Don't attempt to check for .dwo
-		section name when section is NULL.
-
-2022-05-24  Alan Modra  <amodra@gmail.com>
-
-	PR29170, divide by zero displaying fuzzed .debug_names
-		PR 29170
-		* dwarf.c (display_debug_names): Don't attempt to display bucket
-		clashes when bucket count is zero.
-
-	PR29169, invalid read displaying fuzzed .gdb_index
-		PR 29169
-		* dwarf.c (display_gdb_index): Combine sanity checks.  Calculate
-		element counts, not word counts.
-
-2022-05-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-23  John Baldwin  <jhb@FreeBSD.org>
-
-	Tweak the std::hash<> specialization for aarch64_features.
-	Move the specialization into an explicit std namespace to workaround a
-	bug in older compilers.  GCC 6.4.1 at least fails to compile the previous
-	version with the following error:
-
-	gdb/arch/aarch64.h:48:13: error: specialization of 'template<class _Tp> struct std::hash' in different namespace [-fpermissive]
-
-	  struct std::hash<aarch64_features>
-
-2022-05-23  John Baldwin  <jhb@FreeBSD.org>
-
-	Fix loongarch_iterate_over_regset_sections for non-native targets.
-	Define a constant for the number of registers stored in a register set
-	and use this with register_size to compute the size of the
-	general-purpose register set in core dumps.
-
-	This also fixes the build on hosts such as FreeBSD that do not define
-	an elf_gregset_t type.
-
-2022-05-23  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Implement the iterate_over_regset_sections gdbarch method
-	When execute the following command on LoongArch:
-
-	  make check-gdb TESTS="gdb.base/auxv.exp"
-
-	there exist the following unsupported and failed testcases:
-
-	  UNSUPPORTED: gdb.base/auxv.exp: gcore
-	  FAIL: gdb.base/auxv.exp: load core file for info auxv on native core dump
-	  FAIL: gdb.base/auxv.exp: info auxv on native core dump
-	  FAIL: gdb.base/auxv.exp: matching auxv data from live and core
-	  UNSUPPORTED: gdb.base/auxv.exp: info auxv on gcore-created dump
-	  UNSUPPORTED: gdb.base/auxv.exp: matching auxv data from live and gcore
-
-	we can see the following messages in gdb/testsuite/gdb.log:
-
-	  gcore /home/loongson/build.git/gdb/testsuite/outputs/gdb.base/auxv/auxv.gcore
-	  Target does not support core file generation.
-	  (gdb) UNSUPPORTED: gdb.base/auxv.exp: gcore
-
-	In order to fix the above issues, implement the iterate_over_regset_sections
-	gdbarch method to iterate over core file register note sections on LoongArch.
-
-	By the way, with this patch, the failed testcases in gdb.base/corefile.exp
-	and gdb.base/gcore.exp can also be fixed.
-
-2022-05-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix -prompt handling in gdb_test
-	With check-read1 I run into:
-	...
-	   [infrun] maybe_set_commit_resumed_all_targets: not requesting
-	commit-resumed for target native, no resumed threads^M
-	(gdb) FAIL: gdb.base/ui-redirect.exp: debugging: continue
-	[infrun] fetch_inferior_event: exit^M
-	...
-
-	The problem is that proc gdb_test doesn't pass down the -prompt option to proc
-	gdb_test_multiple, due to a typo making this lappend without effect:
-	...
-	    set opts {}
-	    lappend "-prompt $prompt"
-	...
-
-	Fix this by actually appending to opts.
-
-	Tested on x86_64-linux.
-
-2022-05-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdbsupport] Fix UB in print-utils.cc:int_string
-	When building gdb with -fsanitize=undefined, I run into:
-	...
-	(gdb) PASS: gdb.ada/access_to_packed_array.exp: set logging enabled on
-	maint print symbols^M
-	print-utils.cc:281:29:runtime error: negation of -9223372036854775808 cannot \
-	  be represented in type 'long int'; cast to an unsigned type to negate this \
-	  value to itself
-	(gdb) FAIL: gdb.ada/access_to_packed_array.exp: maint print symbols
-	...
-
-	By running in a debug session, we find that this happens during printing of:
-	...
-	   typedef system.storage_elements.storage_offset: \
-	     range -9223372036854775808 .. 9223372036854775807;
-	...
-	Possibly, an ada test-case could be created that exercises this in isolation.
-
-	The problem is here in int_string, where we negate a val with type LONGEST:
-	...
-	         return decimal2str ("-", -val, width);
-	...
-
-	Fix this by, as recommend, using "-(ULONGEST)val" instead.
-
-	Tested on x86_64-linux.
-
-2022-05-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/exp] Fix UB in scalar_binop
-	When building gdb with -fsanitize=undefined, I run into:
-	...
-	$ gdb -q -batch -ex "p -(-0x7fffffffffffffff - 1)"
-	src/gdb/valarith.c:1385:10: runtime error: signed integer overflow: \
-	  0 - -9223372036854775808 cannot be represented in type 'long int'
-	$1 = -9223372036854775808
-	...
-
-	Fix this by performing the substraction in scalar_binop using unsigned types.
-
-	Tested on x86_64-linux.
-
-2022-05-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/ada] Fix gdb.ada/dynamic-iface.exp with gcc 7
-	This test in test-case gdb.ada/dynamic-iface.exp passes with gcc 8:
-	...
-	(gdb) print obj^M
-	$1 = (n => 3, a => "ABC", value => 93)^M
-	(gdb) PASS: gdb.ada/dynamic-iface.exp: print local as interface
-	...
-	but fails with gcc 7:
-	...
-	(gdb) print obj^M
-	$1 = ()^M
-	(gdb) FAIL: gdb.ada/dynamic-iface.exp: print local as interface
-	...
-
-	More concretely, we have trouble finding the type of obj.  With gcc 8:
-	...
-	$ gdb -q -batch main -ex "b concrete.adb:20" -ex run -ex "ptype obj"
-	  ...
-	type = <ref> new concrete.intermediate with record
-	    value: integer;
-	end record
-	...
-	and with gcc 7:
-	...
-	type = <ref> tagged record null; end record
-	...
-
-	The translation from tagged type to "full view" type happens in
-	ada_tag_value_at_base_address, where we hit this code:
-	...
-	  /* Storage_Offset'Last is used to indicate that a dynamic offset to
-	     top is used.  In this situation the offset is stored just after
-	     the tag, in the object itself.  */
-	  if (offset_to_top == last)
-	    {
-	      struct value *tem = value_addr (tag);
-	      tem = value_ptradd (tem, 1);
-	      tem = value_cast (ptr_type, tem);
-	      offset_to_top = value_as_long (value_ind (tem));
-	    }
-	...
-	resulting in an offset_to_top for gcc 8:
-	...
-	(gdb) p offset_to_top
-	$1 = -16
-	...
-	and for gcc 7:
-	...
-	(gdb) p offset_to_top
-	$1 = 16
-	...
-
-	The difference is expected, it bisects to gcc commit d0567dc0dbf ("[multiple
-	changes]") which mentions this change.
-
-	There's some code right after the code quoted above that deals with this
-	change:
-	...
-	  else if (offset_to_top > 0)
-	    {
-	      /* OFFSET_TO_TOP used to be a positive value to be subtracted
-		 from the base address.  This was however incompatible with
-		 C++ dispatch table: C++ uses a *negative* value to *add*
-		 to the base address.  Ada's convention has therefore been
-		 changed in GNAT 19.0w 20171023: since then, C++ and Ada
-		 use the same convention.  Here, we support both cases by
-		 checking the sign of OFFSET_TO_TOP.  */
-	      offset_to_top = -offset_to_top;
-	    }
-	...
-	but it's not activated because of the 'else'.
-
-	Fix this by removing the 'else'.
-
-	Tested on x86_64-linux, with gcc 7.5.0.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29057
-
-2022-05-23  Mark Harmstone  <mark@harmstone.com>
-
-	ld: use definitions in generate_reloc rather than raw literals
-
-2022-05-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Skip language auto in gdb.base/parse_number.exp
-	In test-case gdb.base/parse_number.exp, we skip architecture auto in the
-	$supported_archs loop, to prevent duplicate testing.
-
-	Likewise, skip language auto and its alias local in the $::all_languages
-	loop.  This reduces the number of tests from 17744 to 15572.
-
-	Tested on x86_64-linux, with a build with --enable-targets=all.
-
-2022-05-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-22  Alok Kumar Sharma  <AlokKumar.Sharma@amd.com>
-
-	Accept functions with DW_AT_linkage_name present
-	Currently GDB is not able to debug (Binary generated with Clang) variables
-	present in shared/private clause of OpenMP Task construct. Please note that
-	LLVM debugger LLDB is able to debug.
-
-	In case of OpenMP, compilers generate artificial functions which are not
-	present in actual program. This is done to apply parallelism to block of
-	code.
-
-	For non-artifical functions, DW_AT_name attribute should contains the name
-	exactly as present in actual program.
-	(Ref# http://wiki.dwarfstd.org/index.php?title=Best_Practices)
-	Since artificial functions are not present in actual program they not having
-	DW_AT_name and having DW_AT_linkage_name instead should be fine.
-
-	Currently GDB is invalidating any function not havnig DW_AT_name which is why
-	it is not able to debug OpenMP (Clang).
-
-	It should be fair to fallback to check DW_AT_linkage_name in case DW_AT_name
-	is absent.
-
-2022-05-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Rename base_breakpoint -> code_breakpoint
-	Even after the previous patches reworking the inheritance of several
-	breakpoint types, the present breakpoint hierarchy looks a bit
-	surprising, as we have "breakpoint" as the superclass, and then
-	"base_breakpoint" inherits from "breakpoint".  Like so, simplified:
-
-	   breakpoint
-	       base_breakpoint
-	          ordinary_breakpoint
-		  internal_breakpoint
-		  momentary_breakpoint
-		  ada_catchpoint
-		  exception_catchpoint
-	       tracepoint
-	       watchpoint
-	       catchpoint
-		  exec_catchpoint
-		  ...
-
-	The surprising part to me is having "base_breakpoint" being a subclass
-	of "breakpoint".  I'm just refering to naming here -- I mean, you'd
-	expect that it would be the top level baseclass that would be called
-	"base".
-
-	Just flipping the names of breakpoint and base_breakpoint around
-	wouldn't be super great for us, IMO, given we think of every type of
-	*point as a breakpoint at the user visible level.  E.g., "info
-	breakpoints" shows watchpoints, tracepoints, etc.  So it makes to call
-	the top level class breakpoint.
-
-	Instead, I propose renaming base_breakpoint to code_breakpoint.  The
-	previous patches made sure that all code breakpoints inherit from
-	base_breakpoint, so it's fitting.  Also, "code breakpoint" contrasts
-	nicely with a watchpoint also being typically known as a "data
-	breakpoint".
-
-	After this commit, the resulting hierarchy looks like:
-
-	   breakpoint
-	       code_breakpoint
-	          ordinary_breakpoint
-		  internal_breakpoint
-		  momentary_breakpoint
-		  ada_catchpoint
-		  exception_catchpoint
-	       tracepoint
-	       watchpoint
-	       catchpoint
-		  exec_catchpoint
-		  ...
-
-	... which makes a lot more sense to me.
-
-	I've left this patch as last in the series in case people want to
-	bikeshed on the naming.
-
-	"code" has a nice property that it's exactly as many letters as
-	"base", so this patch didn't require any reindentation.  :-)
-
-	Change-Id: Id8dc06683a69fad80d88e674f65e826d6a4e3f66
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Test "set multiple-symbols on" creating multiple breakpoints
-	To look for code paths that lead to create_breakpoints_sal creating
-	multiple breakpoints, I ran the whole testsuite with this hack:
-
-	  --- a/gdb/breakpoint.c
-	  +++ b/gdb/breakpoint.c
-	  @@ -8377,8 +8377,7 @@ create_breakpoints_sal (struct gdbarch *gdbarch,
-				  int from_tty,
-				  int enabled, int internal, unsigned flags)
-	   {
-	  -  if (canonical->pre_expanded)
-	  -    gdb_assert (canonical->lsals.size () == 1);
-	  +  gdb_assert (canonical->lsals.size () == 1);
-
-	surprisingly, the assert never failed...
-
-	The way to get to create_breakpoints_sal with multiple lsals is to use
-	"set multiple-symbols ask" and then select multiple options from the
-	menu, like so:
-
-	 (gdb) set multiple-symbols ask
-	 (gdb) b overload1arg
-	 [0] cancel
-	 [1] all
-	 [2] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg()
-	 [3] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(char)
-	 [4] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(double)
-	 [5] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(float)
-	 [6] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(int)
-	 [7] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(long)
-	 [8] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(short)
-	 [9] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(signed char)
-	 [10] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(unsigned char)
-	 [11] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(unsigned int)
-	 [12] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(unsigned long)
-	 [13] /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc:foo::overload1arg(unsigned short)
-	 > 2-3
-	 Breakpoint 2 at 0x1532: file /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc, line 107.
-	 Breakpoint 3 at 0x154b: file /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.cp/ovldbreak.cc, line 110.
-	 warning: Multiple breakpoints were set.
-	 Use the "delete" command to delete unwanted breakpoints.
-
-	... which would trigger the assert.
-
-	This commit makes gdb.cp/ovldbreak.exp test this scenario.  It does
-	that by making set_bp_overloaded take a list of expected created
-	breakpoints rather than just one breakpoint.  It converts the
-	procedure to use gdb_test_multiple instead of send_gdb/gdb_expect
-	along the way.
-
-	Change-Id: Id87d1e08feb6670440d926f5344e5081f5e37c8e
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Make sure momentary breakpoints are always thread-specific
-	This adds a new ctor to momentary_breakpoints with a few parameters
-	that are always necessary for momentary breakpoints.
-
-	In particular, I noticed that set_std_terminate_breakpoint doesn't
-	make the breakpoint be thread specific, which looks like a bug to me.
-
-	The point of that breakpoint is to intercept std::terminate calls that
-	happen as result of the called thread throwing an exception that won't
-	be caught by the dummy frame.  If some other thread calls
-	std::terminate, IMO, it's no different from some other thread calling
-	exit/_exit, for example.
-
-	Change-Id: Ifc5ff4a6d6e58b8c4854d00b86725382d38a1a02
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Momentary breakpoints should have no breakpoint number
-	Momentary breakpoints have no breakpoint number, their breakpoint
-	number should be always 0, to avoid constantly incrementing (or
-	decrementing) the internal breakpoint count.
-
-	Indeed, set_momentary_breakpoint installs the created breakpoint
-	without a number.
-
-	However, momentary_breakpoint_from_master incorrectly gives an
-	internal breakpoint number to the new breakpoint.  This commit fixes
-	that.
-
-	Change-Id: Iedcae5432cdf232db9e9a6e1a646d358abd34f95
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Add/tweak intro comments of struct breakpoint and several subclasses
-	This tweaks the intro comments of the following classes:
-
-	 internal_breakpoint
-	 momentary_breakpoint
-	 breakpoint
-	 base_breakpoint
-	 watchpoint
-	 catchpoint
-
-	Change-Id: If6b31f51ebbb81705fbe5b8435f60ab2c88a98c8
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Move add_location(sal) to base_breakpoint
-	After the previous patches, only base_breakpoint subclasses use
-	add_location(sal), so we can move it to base_breakpoint (a.k.a. base
-	class for code breakpoints).
-
-	This requires a few casts here and there, but always at spots where
-	you can see from context what the breakpoint's type actually is.
-
-	I inlined new_single_step_breakpoint into its only caller exactly for
-	this reason.
-
-	I did try to propagate more use of base_breakpoint to avoid casts, but
-	that turned out unwieldy for this patch.
-
-	Change-Id: I49d959322b0fdce5a88a216bb44730fc5dd7c6f8
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Move common bits of catchpoint/exception_catchpoint to breakpoint's ctor
-	Move common bits of catchpoint and exception_catchpoint to
-	breakpoint's ctor, to avoid duplicating code.
-
-	Change-Id: I3a115180f4d496426522f1d89a3875026aea3cf2
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Make catchpoint inherit breakpoint, eliminate init_raw_breakpoint
-	struct catchpoint's ctor currently calls init_raw_breakpoint, which is
-	a bit weird, as that ctor-like function takes a sal argument, but
-	catchpoints don't have code locations.
-
-	Instead, make struct catchpoint's ctor add the catchpoint's dummy
-	location using add_dummy_location.
-
-	init_raw_breakpoint uses add_location under the hood, and with a dummy
-	sal it would ultimately use the breakpoint's gdbarch for the
-	location's gdbarch, so replace the references to loc->gdbarch (which
-	is now NULL) in syscall_catchpoint to references to the catchpoint's
-	gdbarch.
-
-	struct catchpoint's ctor was the last user of init_raw_breakpoint, so
-	this commit eliminates the latter.
-
-	Since catchpoint locations aren't code locations, make struct
-	catchpoint inherit struct breakpoint instead of base_breakpoint.  This
-	let's us delete the tracepoint::re_set override too.
-
-	Change-Id: Ib428bf71efb09fdaf399c56e4372b0f41d9c5869
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Make breakpoint_address_bits look at the location kind
-	Software watchpoints allocate a special dummy location using
-	software_watchpoint_add_no_memory_location, and then
-	breakpoint_address_bits checks whether the location is that special
-	location to decide whether the location has a meaninful address to
-	print.
-
-	Introduce a new bp_loc_software_watchpoint location kind, and make
-	breakpoint_address_bits use bl_address_is_meaningful instead, which
-	returns false for bp_loc_other, which is in accordance with we
-	document for bp_location::address:
-
-	  /* (... snip ...)  Valid for all types except
-	     bp_loc_other.  */
-	  CORE_ADDR address = 0;
-
-	Rename software_watchpoint_add_no_memory_location to
-	add_dummy_location, and simplify it.  This will be used by catchpoints
-	too in a following patch.
-
-	Note that neither "info breakpoints" nor "maint info breakpoints"
-	actually prints the addresses of watchpoints, but I think it would be
-	useful to do so in "maint info breakpoints".  This approach let's us
-	implement that in the future.
-
-	Change-Id: I50e398f66ef618c31ffa662da755eaba6295aed7
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Make exception_catchpoint inherit base_breakpoint instead of catchpoint
-	exception_catchpoint is really a code breakpoint, with locations set
-	by sals, re-set like other code breakpoints, etc., so make it inherit
-	base_breakpoint.
-
-	This adds a bit of duplicated code to exception_catchpoint's ctor
-	(copied from struct catchpoint's ctor), but it will be eliminated in a
-	following patch.
-
-	Change-Id: I9fbb2927491120e9744a4f5e5cb5e6870ca07009
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Refactor momentary breakpoints, eliminate set_raw_breakpoint{,_without_location}
-	This commit makes set_momentary_breakpoint allocate the breakpoint
-	type without relying on set_raw_breakpoint, and similarly,
-	momentary_breakpoint_from_master not rely on
-	set_raw_breakpoint_without_location.  This will let us convert
-	init_raw_breakpoint to a ctor in a following patch.
-
-	The comment about set_raw_breakpoint being used in gdbtk sources is
-	stale.  gdbtk no longer uses it.
-
-	Change-Id: Ibbf77731e4b22e18ccebc1b5799bbec0aff28c8a
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Refactor set_internal_breakpoint / internal_breakpoint ctor
-	This moves initialization of internal_breakpoint's breakpoint fields
-	to internal_breakpoint's ctor, and stops using
-	new_breakpoint_from_type for internal_breakpoint breakpoints.
-
-	Change-Id: I898ed0565f47cb00e4429f1c6446e6f9a385a78d
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Convert init_ada_exception_catchpoint to a ctor
-	Currently, init_ada_exception_catchpoint is defined in breakpoint.c, I
-	presume so it can call the static describe_other_breakpoints function.
-	I think this is a dependency inversion.
-	init_ada_exception_catchpoint, being code specific to Ada catchpoints,
-	should be in ada-lang.c, and describe_other_breakpoints, a core
-	function, should be exported.
-
-	And then, we can convert init_ada_exception_catchpoint to an
-	ada_catchpoint ctor.
-
-	Change-Id: I07695572dabc5a75d3d3740fd9b95db1529406a1
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Make ada_catchpoint_location's owner ctor parameter be ada_catchpoint
-	This commit changes ada_catchpoint_location's ctor from:
-
-	  ada_catchpoint_location (breakpoint *owner)
-
-	to:
-
-	  ada_catchpoint_location (ada_catchpoint *owner)
-
-	just to make the code better document intention.
-
-	To do this, we need to move the ada_catchpoint_location type's
-	definition to after ada_catchpoint is defined, otherwise the compiler
-	doesn't know that ada_catchpoint is convertible to struct breakpoint.
-
-	Change-Id: Id908b2e38bde30b262381e00c5637adb9bf0129d
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	init_breakpoint_sal -> base_breakpoint::base_breakpoint
-	This converts init_breakpoint_sal to a base_breakpoint constructor.
-
-	It removes a use of init_raw_breakpoint.
-
-	To avoid manually adding a bunch of parameters to
-	new_breakpoint_from_type, and manually passing them down to the
-	constructors of a number of different base_breakpoint subclasses, make
-	new_breakpoint_from_type a variable template function.
-
-	Change-Id: I4cc24133ac4c292f547289ec782fc78e5bbe2510
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Remove "internal" parameter from a couple functions
-	None of init_breakpoint_sal, create_breakpoint_sal, and
-	strace_marker_create_breakpoints_sal make use of their "internal"
-	parameter, so remove it.
-
-	Change-Id: I943f3bb44717ade7a7b7547edf8f3ff3c37da435
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	More breakpoint_ops parameter elimination
-	Remove breakpoint_ops parameters from a few functions that don't need
-	it.
-
-	Change-Id: Ifcf5e1cc688184acbf5e19b8ea60138ebe63cf28
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Make a few functions work with base_breakpoint instead of breakpoint
-	This makes tracepoints inherit from base_breakpoint, since their
-	locations are code locations.  If we do that, then we can eliminate
-	tracepoint::re_set and tracepoint::decode_location, as they are doing
-	the same as the base_breakpoint implementations.
-
-	With this, all breakpoint types created by new_breakpoint_from_type
-	are code breakpoints, i.e., base_breakpoint subclasses, and thus we
-	can make it return a base_breakpoint pointer.
-
-	Finally, init_breakpoint_sal can take a base_breakpoint pointer as
-	"self" pointer too.  This will let us convert this function to a
-	base_breakpoint ctor in a following patch.
-
-	Change-Id: I3a4073ff1a4c865f525588095c18dc42b744cb54
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	ranged_breakpoint: move initialization to ctor
-	Move initialization of ranged_breakpoint's fields to its ctor.
-
-	Change-Id: If7b842861f3cc6a429ea329d45598b5852283ba3
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	ranged_breakpoint: use install_breakpoint
-	This commit replaces a chunk of code in break_range_command by an
-	equivalent call to install_breakpoint.
-
-	Change-Id: I31c06cabd36f5be91740aab029265f678aa78e35
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	ranged_breakpoint: don't use init_raw_breakpoint
-	ranged_breakpoint's ctor already sets the breakpoint's type to
-	bp_hardware_breakpoint.
-
-	Since this is a "regular" breakpoint, b->pspace should remain NULL.
-
-	Thus, the only thing init_raw_breakpoint is needed for, is to add the
-	breakpoint's location.  Do that directly.
-
-	Change-Id: I1505de94c3919881c2b300437e2c0da9b05f76bd
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	Make structs breakpoint/base_breakpoint/catchpoint be abstract
-	You should never instanciate these types directly.
-
-	Change-Id: I8086c74c415eadbd44924bb0ef20f34b5b97ee6f
-
-2022-05-20  Pedro Alves  <pedro@palves.net>
-
-	add_location_to_breakpoint -> breakpoint::add_location
-	Make add_location_to_breakpoint be a method of struct breakpoint.
-
-	A patch later in the series will move this to base_breakpoint, but for
-	now, it needs to be here.
-
-	Change-Id: I5bdc2ec1a7c2d66f26f51bf6f6adc8384a90b129
-
-2022-05-20  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: Make test gdb.arch/powerpc-power10.exp Endian independent.
-	The .quad statement stores the 64-bit hex value in Endian order.  When used
-	to store a 64-bit prefix instructions on Big Endian (BE) systems, the .quad
-	statement stores the 32-bit suffix followed by the 32-bit prefix rather
-	than the expected order of prefix word followed by the suffix word.  GDB
-	fetches 32-bits at a time when disassembling instructions.  The disassembly
-	on BE gets messed up since GDB fetches the suffix first and interprets it
-	as a word instruction not a prefixed instruction.  When gdb fetches the
-	prefix part of the instruction, following the initial suffix word, gdb
-	associates the prefix word incorrectly with the following 32-bits as the
-	suffix for the instruction when in fact it is the following instruction.
-
-	For example on BE we have two prefixed instructions stored using the
-	.quad statement as follows:
-
-	 addr    word                GDB action
-	---------------------------------------------
-	  1      suffix inst A   <- GDB interprets as a word instruction
-	  2      prefix inst A   <- GDB uses this prefix with
-
-	  3      suffix inst B   <- this suffix rather than the suffix at addr 1.
-	  4      prefix inst B
-
-	This patch changes the .quad statement into two .longs to explicitly store
-	the prefix followed by the suffix of the instruction.
-
-	The patch rearranges the instructions to put all of the word instructions
-	together followed by the prefix instructions for clarity.
-
-	The patch has been tested on Power 10 and Power 7 BE and LE to verify
-	the change works as expected.
-
-2022-05-20  Tom Tromey  <tromey@adacore.com>
-
-	Remove obsolete text from documentation
-	The documentation says that -enable-pretty-printing is experimental in
-	7.0 and may change -- that's long enough ago that I think we can say
-	that this text is no longer correct or useful.
-
-2022-05-20  Nick Clifton  <nickc@redhat.com>
-
-	Stop readekf and objdump from aggressively following links.
-		* dwarf.c (dwarf_select_sections_by_names): Return zero if no
-		sections were selected.
-		(dwarf_select_sections_by_letters): Likewise.
-		* dwarf.h: (dwarf_select_sections_by_names): Update prototype.
-		(dwarf_select_sections_by_letters): Update prototype.
-		* objdump.c (might_need_separate_debug_info): New function.
-		(dump_bfd): Call new function before attempting to load separate
-		debug info files.
-		(main): Do not enable dwarf section dumping for -WK or -WN.
-		* readelf.c (parse_args): Do not enable dwarf section dumping for
-		-wK or -wN.
-		(might_need_separate_debug_info): New function.
-		(process_object): Call new function before attempting to load
-		separate debug info files.
-		* testsuite/binutils-all/debuginfo.exp: Expect -WE and -wE
-		debuginfod tests to pass.
-		* testsuite/binutils-all/objdump.Wk: Add extra regexps.
-		* testsuite/binutils-all/readelf.k: Add extra regexps.
-
-2022-05-20  Jia-Wei Chen  <jiawei@iscas.ac.cn>
-
-	RISC-V: Update zfinx implement with zicsr.
-	Update zfinx implement with zicsr, fix missing fcsr use by zfinx.
-	add zicsr imply by zfinx.
-
-	bfd/ChangeLog:
-
-	        * elfxx-riscv.c: New imply.
-
-	gas/ChangeLog:
-
-	        * testsuite/gas/riscv/csr-insns-pseudo-zfinx.d: New test.
-
-	opcodes/ChangeLog:
-
-	        * riscv-opc.c: Update insn class.
-
-2022-05-20  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Remove RV128-only fmv instructions
-	As fmv.x.q and fmv.q.x instructions are RV128-only (not RV64-only),
-	it should be removed until RV128 support for GNU Binutils is required
-	again.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/fmv.x.q-rv64-fail.d: New failure test.
-		* testsuite/gas/riscv/fmv.x.q-rv64-fail.l: Likewise.
-		* testsuite/gas/riscv/fmv.x.q-rv64-fail.s: Likewise.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_FMV_X_Q, MASK_FMV_X_Q,
-		MATCH_FMV_Q_X, MASK_FMV_Q_X): Remove RV128-only instructions.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_opcodes): Remove RV128-only instructions.
-
-2022-05-20  Aditya Vidyadhar Kamath  <ADITYA.VIDYADHAR.KAMATH@ibm.com>
-
-	Fix non-pointer type compilation error in aix-thread.c
-	In aix-thread.c we use ms->value_address () to get the symbol address.
-	This triggers the following compiler error...
-
-	     base operand of '->'  has non-pointer type 'bound_minimal_symbol'
-
-	... because ms is not a pointer.
-
-	This commit fixes this error by using ms.value_address () instead.
-
-2022-05-20  Steinar H. Gunderson  <sesse@google.com>
-
-	add a trie to map quickly from address range to compilation unit
-	When using perf to profile large binaries, _bfd_dwarf2_find_nearest_line()
-	becomes a hotspot, as perf wants to get line number information
-	(for inline-detection purposes) for each and every sample. In Chromium
-	in particular (the content_shell binary), this entails going through
-	475k address ranges, which takes a long time when done repeatedly.
-
-	Add a radix-256 trie over the address space to quickly map address to
-	compilation unit spaces; for content_shell, which is 1.6 GB when some
-	(but not full) debug information turned is on, we go from 6 ms to
-	0.006 ms (6 µs) for each lookup from address to compilation unit, a 1000x
-	speedup.
-
-	There is a modest RAM increase of 180 MB in this binary (the existing
-	linked list over ranges uses about 10 MB, and the entire perf job uses
-	between 2–3 GB for a medium-size profile); for smaller binaries with few
-	ranges, there should be hardly any extra RAM usage at all.
-
-2022-05-20  Alan Modra  <amodra@gmail.com>
-
-	Tidy warn-execstack handling
-	Make ld and bfd values consistent by swapping values 0 and 2 in
-	link_info.warn_execstack.  This has the benefit of making the value an
-	"extended" boolean, with 0 meaning no warning, 1 meaning warn, other
-	values a conditional warning.
-
-	Yes, this patch introduces fails on arm/aarch64.  Not a problem with
-	this patch but an arm/aarch64 before_parse problem.
-
-	bfd/
-		* elflink.c (bfd_elf_size_dynamic_sections): Adjust
-		warn_execstack test.
-	include/
-		* bfdlink.h (warn_execstack): Swap 0 and 2 meaning.
-	ld/
-		* configure.ac (DEFAULT_LD_WARN_EXECSTACK): Use values of 0,
-		1, 2 consistent with link_info.warn_execstack.
-		* ld.texi: Typo fixes.
-		* lexsup.c (parse_args): Adjust setting of link_info.warn_execstack.
-		(elf_static_list_options): Adjust help message conditions.
-		* configure: Regenerate.
-
-2022-05-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-19  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	arm: Fix system register fpcxt_ns and fpcxt_s naming convention.
-	The current assembler accepts system registers FPCXTNS and FPCXTS for Armv8.1-M
-	Mainline Instructions VSTR, VLDR, VMRS and VMSR.
-	Assembler should be also allowing FPCXT_NS, fpcxt_ns, fpcxtns, FPCXT_S, fpcxt_s
-	and fpcxts. This patch fixes the issue.
-
-2022-05-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: use @value{GDBP} in 'info pretty-printer' example
-	Update the 'info pretty-printer' example in the manual to make use of
-	@value{GDBP} instead of hard-coding '(gdb)'.
-
-2022-05-19  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: make use of group/end group in 'info pretty-printers' example
-	The 'info pretty-printers' example is pretty long and consists of many
-	commands and their output.
-
-	Currently, when the pdf manual is generated this example spans a
-	page-break, with the page-break falling part way through some example
-	output from GDB.
-
-	This commit breaks up the example using @group .... @end group, within
-	each group is a single GDB command and all its output.
-
-	Now, when the pdf manual is created, the page-break is placed after
-	the output of one GDB command, and before the subsequent command, this
-	looks much nicer.
-
-2022-05-19  Nikolaos Chatzikonstantinou  <nchatz314@gmail.com>
-
-	gdb/doc: fix inconsistent info pretty-printer example
-	The example for 'info pretty-printer' in the manual passes an
-	object-regexp in some cases, but presents output as though no
-	object-regexp was passed.
-
-	This commit fixes the two mistakes, in one case, fixing the output to
-	filter based on object-regexp, and in the other, to remove the
-	object-regexp from the command and leave all the output.
-
-2022-05-19  Nick Clifton  <nickc@redhat.com>
-
-	Fix potentially uninitialised variables in the Windows tools
-
-2022-05-19  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: Support displaced stepping on LoongArch
-	When execute the following command on LoongArch:
-
-	  make check-gdb TESTS="gdb.base/async-shell.exp"
-
-	we can see the following message in gdb/testsuite/gdb.sum:
-
-	  UNSUPPORTED: gdb.base/async-shell.exp: displaced stepping
-
-	modify support_displaced_stepping to support displaced stepping
-	on LoongArch.
-
-	With this patch:
-
-	  PASS: gdb.base/async-shell.exp: run &
-	  PASS: gdb.base/async-shell.exp: shell echo foo
-	  PASS: gdb.base/async-shell.exp: interrupt
-	  PASS: gdb.base/async-shell.exp: process stopped
-
-	I did the following tests that use support_displaced_stepping
-	with this patch on LoongArch, there is no failed testcases.
-
-	loongson@linux:~/gdb.git$ grep -r support_displaced_stepping gdb/testsuite/gdb.*
-	gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.base/step-over-no-symbols.exp:    if { $displaced != "off" && ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.base/moribund-step.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.base/async-shell.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.base/inferior-died.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.base/step-over-syscall.exp:        if {$displaced == "on" && ![support_displaced_stepping]} {
-	gdb/testsuite/gdb.mi/mi-watch-nonstop.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.mi/mi-nonstop.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.mi/mi-nsmoribund.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.mi/mi-nsintrall.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.mi/mi-nsthrexec.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.mi/mi-nonstop-exit.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.multi/watchpoint-multi.exp:if [support_displaced_stepping] {
-	gdb/testsuite/gdb.python/py-evthreads.exp:if { ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp:    if { $displaced != "off" && ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.threads/interrupt-while-step-over.exp:    if { ${displaced-stepping} != "off" && ![support_displaced_stepping] } {
-	gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp:    if { $displaced != "off" && ![support_displaced_stepping] } {
-
-2022-05-19  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: fix path_join crash with -std=c++17 and -D_GLIBCXX_DEBUG
-	When building GDB with -std=c++17 and -D_GLIBCXX_DEBUG=1, I get:
-
-	  $ ./gdb -nx --data-directory=data-directory -q -ex "maint selftest path_join"
-	  /usr/include/c++/11.2.0/string_view:233: constexpr const value_type& std::basic_string_view<_CharT, _Traits>::operator[](std::basic_string_view<_CharT, _Traits>::size_type) const [with _CharT = char; _Traits = std::char_traits<char>; std::basic_string_view<_CharT, _Traits>::const_reference = const char&; std::basic_string_view<_CharT, _Traits>::size_type = long unsigned int]: Assertion  '__pos < this->_M_len' failed.
-
-	The problem is that we're passing an empty string_view to
-	IS_ABSOLUTE_PATH.  IS_ABSOLUTE_PATH accesses [0] on that string_view,
-	which is out-of-bounds.
-
-	The reason this is not seen with -std less than c++17 is that our local
-	copy of string_view (used with C++ < 17) does not have the assert in
-	operator[], as that wouldn't work in a constexpr method:
-
-	  https://gitlab.com/gnutools/binutils-gdb/-/blob/5890af36e5112bcbb8d7555e63570f68466e6944/gdbsupport/gdb_string_view.h#L180
-
-	IS_ABSOLUTE_PATH is normally used with null-terminated string.  It's
-	fine to pass an empty null-terminated string to IS_ABSOLUTE_PATH,
-	because index 0 in such a string is valid.  But not with an empty
-	string_view.
-
-	Fix that by avoiding the "call" to IS_ABSOLUTE_PATH if the string_view
-	is empty.
-
-	Change-Id: Idf4df961b63f513b3389235e93814c02b89ea32e
-
-2022-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	Arm64: force emission of ILP32-dependent relocs
-	Like the placeholder types added in 04dfe7aa5217 ("Arm64: follow-on to
-	PR gas/27217 fix"), these are also placeholders which are subsequently
-	resolved (albeit later, hence this being a separate issue). As for the
-	resolved types 1 is returned, these pseudo-relocs should also have 1
-	returned to force retaining of the [eventual] relocations. This is also
-	spelled out individually for each of them in md_apply_fix().
-
-2022-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	COFF: use hash for string table also when copying / stripping
-	Otherwise the string table may grow and hence e.g. change a final binary
-	(observed with PE/COFF ones) even if really there's no change. Doing so
-	in fact reduces the overall amount of code, and in particular the number
-	of places which need to remain in sync.
-
-	Afaics there's no real equivalent to the "traditional_format" field used
-	when linking, so hashing is always enabled when copying / stripping.
-
-2022-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	COFF/PE: keep linker version during objcopy / strip
-	Neither of the tools is really a linker, so whatever was originally
-	recorded should be retained rather than being overwritten by these
-	tools' versions.
-
-	COFF/PE: don't leave zero timestamp after objcopy / strip
-	Fill the timestamp field suitably for _bfd_XXi_only_swap_filehdr_out().
-	Instead of re-arranging the present if(), fold this logic with that of
-	copying the optional header.
-
-2022-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	COFF: make objcopy / strip honor --keep-file-symbols
-	So far this option had no effect when used together with e.g.
-	--strip-debug. Set BSF_FILE on these symbols to change that.
-
-	While altering this also join two adjacent blocks of case labeled
-	statements with identical code.
-
-2022-05-19  Jan Beulich  <jbeulich@suse.com>
-
-	don't over-align file positions of PE executable sections
-	When a sufficiently small alignment was specified via --file-alignment,
-	individual section alignment shouldn't affect placement within the file.
-	This involves first of all clearing D_PAGED for images when section and
-	file alignment together don't permit paging of the image. The involved
-	comparison against COFF_PAGE_SIZE in turn helped point out (through a
-	compiler warning) that 'page_size' should be of unsigned type (as in
-	particular FileAlignment is). This yet in turn pointed out a dubious
-	error condition (which is being deleted).
-
-	For the D_PAGED case I think the enforced file alignment may still be
-	too high, but I'm wary of changing that logic without knowing of
-	possible corner cases.
-
-	Furthermore file positions in PE should be independent of the alignment
-	recorded in section headers anyway. Otherwise there are e.g. anomalies
-	following commit 6f8f6017a0c4 ("PR27567, Linking PE files adds alignment
-	section flags to executables") in that linking would use information a
-	subsequent processing step (e.g. stripping) wouldn't have available
-	anymore, and hence a binary could change in that 2nd step for no actual
-	reason. (Similarly stripping a binary linked with a linker pre-dating
-	that commit would change the binary again when stripping it a 2nd time.)
-
-2022-05-19  Yvan Roux  <yvan.roux@foss.st.com>
-
-	 _bfd_real_fopen should not use ccs parameter on Windows
-		PR 25713
-		* bfdio.c (_bfd_real_fopen): Delete ccs string.
-
-2022-05-19  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix canonical extension order (K and J)
-	This commit fixes canonical extension order to follow the RISC-V ISA
-	Manual draft-20210402-1271737 or later.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_recognized_prefixed_ext): Fix "K" extension
-		prefix to be placed before "J".
-
-2022-05-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-18  John Baldwin  <jhb@FreeBSD.org>
-
-	Use aarch64_features to describe register features in target descriptions.
-	Replace the sve bool member of aarch64_features with a vq member that
-	holds the vector quotient.  It is zero if SVE is not present.
-
-	Add std::hash<> specialization and operator== so that aarch64_features
-	can be used as a key with std::unordered_map<>.
-
-	Change the various functions that create or lookup aarch64 target
-	descriptions to accept a const aarch64_features object rather than a
-	growing number of arguments.
-
-	Replace the multi-dimension tdesc_aarch64_list arrays used to cache
-	target descriptions with unordered_maps indexed by aarch64_feature.
-
-2022-05-18  Jan Beulich  <jbeulich@suse.com>
-
-	Arm64: follow-on to PR gas/27217 fix
-	PR gas/27217
-
-	Prior to trying to address PR gas/28888 I noticed anomalies in how
-	certain insns would / wouldn't be affected in similar ways.
-
-	Commit eac4eb8ecb26 ("Fix a problem assembling AArch64 sources when a
-	relocation is generated against a symbol that has a defined value") had
-	two copy-and-paste mistakes, passing the wrong type to
-	aarch64_force_reloc().
-
-	It further failed to add placeholder relocation types to that function's
-	block of case labels leading to a return of 1. While not of interest for
-	aarch64_force_relocation() (these placeholders are resolved right in
-	parse_operands()), calls to aarch64_force_reloc() happen before that
-	resolution would take place.
-
-2022-05-18  Nick Clifton  <nickc@redhat.com>
-
-	Fix compile time warning building gold with Clang-14.
-		* int_encoding.cc (get_length_as_unsigned_LEB_128): Remove
-		current_length variable.
-
-2022-05-18  Victor Do Nascimento  <victor.donascimento@arm.com>
-
-	oops - forgot changelog entry for the previous delta.
-
-	arm: Add unwind support for mixed register lists
-		* config/tc-arm.c (parse_reg_list): Add handling of mixed register
-		types.
-		(reg_names): Enumerate pseudoregister according to mapped physical
-		register number.
-		(s_arm_unwind_save_pseudo): Modify function signature.
-		(s_arm_unwind_save_core): Likewise.
-		(s_arm_unwind_save_mixed): New function.
-		(s_arm_unwind_save): Generate register list mask to pass to nested
-		functions.
-		* testsuite/gas/arm/unwind-pacbti-m.s: Expand test for mixed
-	 	register type lists.
-	 	* testsuite/gas/arm/unwind-pacbti-m.d: Likewise.
-		* testsuite/gas/arm/unwind-pacbti-m-readelf.d: Likewise.
-
-2022-05-18  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: bp-permanent.exp, kill-after-signal fix
-	Fix changes that didn't make it into commit:
-	dd9cd55e990bcc9f8448cac38d242d53974b3604.
-
-	Fix missing -wrap on gdb_test_multiple in gdb.base/kill-after-signal.exp
-	that is causing regression test on x86_64-linux with taskset -c 0.
-
-2022-05-18  Yichao Yu  <yyc1992@gmail.com>
-
-	[AArch64] Return the regnum for PC (32) on aarch64
-	This will allow the unwind info to explicitly specify a different value
-	for the return address from the link register.
-	Such usage, although uncommon, is valid and useful for signal frames.
-	It is also supported by aadwarf64 from ARM (Note 9 in [1]).
-
-	Ref https://sourceware.org/pipermail/gdb/2022-May/050091.html
-
-	[1] https://github.com/ARM-software/abi-aa/blob/2022Q1/aadwarf64/aadwarf64.rst#dwarf-register-names
-
-2022-05-18  Jan Beulich  <jbeulich@suse.com>
-
-	x86: shrink op_riprel
-	It is only ever initialized from a boolean, so it as well as related
-	variables' types can simply be bool and there's no masking to 32 bits
-	needed in set_op().
-
-2022-05-18  Nick Clifton  <nickc@redhat.com>
-
-	Add a --no-weak option to nm.
-		PR 29135
-		* nm.c (non_weak): New variable.
-		(filter_symbols): When non-weak is true, ignore weak symbols.
-		(long_options): Add --no-weak.
-		(usage): Mention --no-weak.
-		(main): Handle -W/--no-weak.
-		* doc/binutils.texi: Document new feature.
-		* NEWS: Mention the new feature.
-		* testsuite/binutils-all/nm.exp: Add test of new feature.
-		* testsuite/binutils-all/no-weak.s: New test source file.
-
-2022-05-18  Pedro Alves  <pedro@palves.net>
-
-	Support -prompt and -lbl in gdb_test
-	This teaches gdb_test to forward the -prompt and -lbl options to
-	gdb_test_multiple.
-
-	The option parsing is done with parse_args.
-
-	As a cleanup, instead of using llength and lindex to get at the
-	positional arguments, use lassign, and check whether the corresponding
-	variable is empty.
-
-	Convert gdb.base/ui-redirect.exp and gdb.xml/tdesc-reload.exp to use
-	gdb_test -prompt/-lbl instead of gdb_test_multiple as examples.
-
-	Change-Id: I243e1296d32c05a421ccef30b63d43a89eaeb4a0
-
-2022-05-18  Luis Machado  <luis.machado@arm.com>
-
-	Remove unused DWARF PAUTH registers
-	The AARCH64_DWARF_PAUTH_DMASK and AARCH64_DWARF_PAUTH_CMASK DWARF registers
-	never made their way into the aadwarf64. The following patch removes these
-	constants and their use.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26295
-
-2022-05-18  Luis Machado  <luis.machado@arm.com>
-
-	Rename PAUTH_RA_STATE to RA_SIGN_STATE
-	The aadwarf64 [1] names this register RA_SIGN_STATE, so update the code to use
-	the same name.
-
-	[1] https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst
-
-2022-05-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Simplify unknown lang testing in gdb.base/parse_number.exp
-	Move testing of language unknown out of the $supported_archs loop in
-	gdb.base/parse_number.exp.  This reduces total amount of tests from 18466 to
-	17744.
-
-	Tested on x86_64-linux.
-
-2022-05-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use hex_for_lang in gdb.base/parse_number.exp
-	In gdb.base/parse_number.exp, add a new proc hex_for_lang that formats a hex
-	number appropriately for a given language.
-
-	Tested on x86_64-linux.
-
-2022-05-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Add gdb/syscalls/update-linux-from-src.sh
-	Add a new script gdb/syscalls/update-linux-from-src.sh, that can be used to
-	generate *-linux.xml.in files from linux kernel sources, like so:
-	...
-	$ ./update-linux-from-src.sh ~/upstream/linux-stable.git
-	Skipping aarch64-linux.xml.in, no syscall.tbl
-	Generating amd64-linux.xml.in
-	Skipping arm-linux.xml.in, use arm-linux.py instead
-	Skipping bfin-linux.xml.in, no longer supported
-	Generating i386-linux.xml.in
-	Generating mips-n32-linux.xml.in
-	Generating mips-n64-linux.xml.in
-	Generating mips-o32-linux.xml.in
-	Generating ppc64-linux.xml.in
-	Generating ppc-linux.xml.in
-	Generating s390-linux.xml.in
-	Generating s390x-linux.xml.in
-	Generating sparc64-linux.xml.in
-	Generating sparc-linux.xml.in
-	...
-
-	Update *-linux.xml.in and *-linux.xml using linux kernel tag v5.18-rc6.
-
-2022-05-18  Tamar Christina  <tamar.christina@arm.com>
-
-	AArch64: Enable FP16 by default for Armv9-A.
-	In Armv9-A SVE is mandatory, and for SVE FP16 is mandatory.  This fixes a disconnect
-	between GCC and binutils where GCC has FP16 on by default and gas doesn't.
-
-	include/ChangeLog:
-
-	2022-05-16  Tamar Christina  <tamar.christina@arm.com>
-
-		* opcode/aarch64.h (AARCH64_ARCH_V9_FEATURES): Add AARCH64_FEATURE_F16.
-
-2022-05-18  Jan Beulich  <jbeulich@suse.com>
-
-	gas: avoid octal numbers being accepted when processing .linefile
-	Compilers would put decimal numbers there, so I think we should treat
-	finding octal numbers the same as finding bignums - ignore them as
-	actually being comments of some very specific form.
-
-2022-05-18  Jan Beulich  <jbeulich@suse.com>
-
-	gas: avoid bignum related errors when processing .linefile
-	Any construct which to the scrubber looks like a C preprocessor
-	line/file "directive" is converted to .linefile, but the amount of
-	checking the scrubber does is minimal (albeit it does let through only
-	decimal digits for the line part of the contruct). Since the scrubber
-	conversion is further tied to # being a line comment character, anything
-	which upon closer inspection turns out not to be a line/file "directive"
-	is supposed to be treated as a comment, i.e. ignored. Therefore we
-	cannot use get_absolute_expression(), as this may raise errors. Open-
-	code the function instead, treating everything not resulting in
-	O_constant as a comment as well.
-
-	Furthermore also bounds-check the parsed value. This bounds check tries
-	to avoid implementation defined behavior (which may be the raising of an
-	implementation defined signal), but for now makes the assumption that
-	int has less than 64 bits. The way bfd_signed_vma (which is what offsetT
-	aliases) is defined in bfd.h for the BFD64 case I cannot really see a
-	clean way of avoiding this assumption. Omitting the #ifdef, otoh, would
-	risk "condition is always false" warnings by compilers.
-
-	Convert get_linefile_number() to return bool at this occasion as well.
-
-2022-05-18  Jan Beulich  <jbeulich@suse.com>
-
-	gas: fold do_repeat{,_with_expander}()
-	do_repeat_with_expander() already deals with the "no expander" case
-	quite fine, so there's really little point having two functions. What it
-	lacks compared with do_repeat() is a call to sb_build(), which can
-	simply be moved (and the then redundant sb_new() be avoided). Along with
-	this moving also flip if the main if()'s condition such that the "no
-	expander" case is handled first.
-
-	gas: don't ignore .linefile inside false conditionals
-	When assembling code previously pre-processed by a C compiler, long
-	enough comments may have been collapsed into "# <line> <file>"
-	constructs. If we skip these, line numbers (and possibly even file
-	names) will be off / wrong in both diagnostics and debug info.
-
-	gas: simplify ignore_input()
-	First of all convert to switch(), in preparation of adding another
-	directive here which may not be ignored. While doing so drop dead code:
-	A string the first two characters of which do not match "if" also wont
-	match "ifdef" or "ifndef".
-
-	gas: tweak .irp and alike file/line handling for M68K/MRI
-	In commit 2ee1792bec22 ("gas: further adjust file/line handling for .irp
-	and alike") I neglected the need to omit the leading . in M68K/MRI mode.
-
-2022-05-18  Xi Ruoyao  <xry111@mengyan1223.wang>
-
-	gold: don't invoke IA32 syscall in x86_64 assembly testcase
-	pr17704a_test.s is a x86_64 assembly file, but it invokes IA32 exit
-	syscall with "int 0x80".  This causes a segfault on kernels with
-	CONFIG_IA32_EMULATION disabled.
-
-	gold/
-
-		* testsuite/pr17704a_test.s (_start): Invoke x86_64 exit syscall
-		instead of its IA32 counterpart.
-
-2022-05-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-17  Nikolaos Chatzikonstantinou  <nchatz314@gmail.com>
-
-	Fix typo in info page
-
-2022-05-17  Pedro Alves  <pedro@palves.net>
-
-	Fix gdb.python/py-connection.exp with remote targets
-	After the patch to make gdb_test's question non-optional when
-	specified, gdb.python/py-connection.exp started failing like so:
-
-	  $ make check TESTS="gdb.python/py-connection.exp" RUNTESTFLAGS="--target_board=native-gdbserver"
-	  (gdb) PASS: gdb.python/py-connection.exp: info connections while the connection is still around
-	  disconnect^M
-	  Ending remote debugging.^M
-	  (gdb) FAIL: gdb.python/py-connection.exp: kill the inferior
-
-	The problem is that "disconnect" when debugging with the native target
-	asks the user whether to kill the program, while with remote targets,
-	it doesn't.
-
-	Fix it by explicitly killing before disconnecting.
-
-	Tested with --target_board unix, native-gdbserver, and native-extended-gdbserver.
-
-	Change-Id: Icd85015c76deb84b71894715d43853c1087eba0b
-
-2022-05-17  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, btrace: Throw an error for empty recordings when replaying starts.
-	This makes record_btrace_start_replaying() more consistent, as it already
-	errors out e.g. on a recording with only gaps.
-
-2022-05-17  Pedro Alves  <pedro@palves.net>
-
-	Make gdb_test's question non-optional if specified
-	gdb_test supports handling scenarios where GDB asks a question before
-	finishing handling some command.  The full prototype of gdb_test is:
-
-	  # gdb_test COMMAND PATTERN MESSAGE QUESTION RESPONSE
-
-	However, QUESTION is a question that GDB _may_ ask, not one that GDB
-	_must_ ask:
-
-	 # QUESTION is a question GDB may ask in response to COMMAND, like
-	 #   "are you sure?"
-	 # RESPONSE is the response to send if QUESTION appears.
-
-	If GDB doesn't raise the question, the test still passes.
-
-	I think that this is a misfeature.  If GDB regresses and stops asking
-	a question, the testsuite won't notice.  So I think that if a QUESTION
-	is specified, gdb_test should ensure it comes out of GDB.
-
-	Running the testsuite exposed a number of tests that pass
-	QUESTION/RESPONSE to GDB, but no question comes out.  The previous
-	commits fixed them all, so this commit changes gdb_test's behavior.
-
-	A related issue is that gdb_test doesn't enforce that if you specify
-	QUESTION, that you also specify RESPONSE.  I.e., you should pass 1, 2,
-	3, or 5 arguments to gdb_test, but never 4, or more than 5.  Making
-	gdb_test detect bogus arguments actually regressed some testcases,
-	also all fixed in previous commits.
-
-	Change-Id: I47c39c9034e6a6841129312037a5ca4c5811f0db
-
-2022-05-17  Pedro Alves  <pedro@palves.net>
-
-	gdb.base/skip.exp: Don't abuse gdb_test's question support
-	gdb.base/skip.exp abuses gdb_test's support for answering a GDB
-	question to do this:
-
-	    # With gcc 9.2.0 we jump once back to main before entering foo here.
-	    # If that happens try to step a second time.
-	    gdb_test "step" "foo \\(\\) at.*" "step 3" \
-		"main \\(\\) at .*\r\n$gdb_prompt " "step"
-
-	After a patch later in this series, gdb_test will FAIL if GDB does NOT
-	issue the question, so this test would start failing on older GCCs.
-
-	Switch to using gdb_test_multiple instead.  There are three spots in
-	the file that have the same pattern, and they're actually in a
-	sequence of commands that is repeated those 3 times.  Factor all that
-	out to a procedure.
-
-	I don't have gcc 9.2 handy, but I do have gcc 6.5, and that one is
-	affected as well, so update the comment.
-
-	Change-Id: If0a7e3cdf5191b4eec95ce0c8845c3a4d801c39e
-
-2022-05-17  Pedro Alves  <pedro@palves.net>
-
-	Avoid having to unload file in gdb.server/connect-with-no-symbol-file.exp
-	gdb.server/connect-with-no-symbol-file.exp's connect_no_symbol_file
-	does:
-
-		gdb_test "file" ".*" "discard symbol table" \
-		    {Discard symbol table from `.*'\? \(y or n\) } "y"
-
-	A following patch will make gdb_test expect the question out of GDB if
-	one is passed down as argument to gdb_test.  With that, this test
-	starts failing.  This is because connect_no_symbol_file is called in a
-	loop, and the first time around, there's a loaded file, so "file" asks
-	the "Discard symbol table ... ?" question, while in the following
-	iterations there's no file, so there's no question.
-
-	Fix this by not loading a file into GDB in the first place.
-
-	Change-Id: I810c036b57842c4c5b47faf340466b0d446d1abc
-
-2022-05-17  Pedro Alves  <pedro@palves.net>
-
-	Fix bogus gdb_test invocations
-	A following patch will make gdb_test error out if bogus arguments are
-	passed, which exposed bugs in a few testcases:
-
-	 - gdb.python/py-parameter.exp, passing a spurious "1" as extra
-	   parameter, resulting in:
-
-	   ERROR: Unexpected arguments: {set test-file-param bar.txt} {The name of the file has been changed to bar.txt} {set new file parameter} 1
-
-	 - gdb.python/py-xmethods.exp, a missing test message, resulting in
-	   the next gdb_test being interpreted as message, question and
-	   response!  With the enforcing patch, this was caught with:
-
-	   ERROR: Unexpected arguments: {p g.mul<char>('a')} {From Python G<>::mul.*} gdb_test {p g_ptr->mul<char>('a')} {From Python G<>::mul.*} {after: g_ptr->mul<char>('a')}
-
-	 - gdb.base/pointers.exp, missing a quote.
-
-	Change-Id: I66f2db4412025a64121db7347dfb0b48240d46d4
-
-2022-05-17  Pedro Alves  <pedro@palves.net>
-
-	gdb.base/scope.exp: Remove bogus gdb_test questions
-	This test is abusing the QUESTION/RESPONSE feature to send an
-	alternative command to GDB if the first command fails.  Like so:
-
-	   gdb_test "print 'scope0.c'::filelocal" \
-		    "\\\$$decimal = 1" "print 'scope0.c'::filelocal at main" \
-		    "No symbol \"scope0.c\" in current context.*" \
-		    "print '$srcdir/$subdir/scope0.c'::filelocal"
-
-	So if 'scope0.c' doesn't work, we try again with
-	'$srcdir/$subdir/scope0.c'.  I strongly suspect this is really an
-	obsolete test.  I think that if '$srcdir/$subdir/scope0.c' works, then
-	'scope0.c' should have worked too, thus I'd think that if we pass due
-	to the question path, then it's a bug.  So just remove the question
-	part passed to gdb_test.
-
-	Change-Id: I2acc99285f1d519284051b49693b5441fbdfe3cd
-
-2022-05-17  Pedro Alves  <pedro@palves.net>
-
-	Remove gdb_test questions that GDB doesn't ask
-	Change-Id: Ib2616dc883e9dc9ee100f6c86d83a921a0113c16
-
-2022-05-17  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Added half-precision floating-point v1.0 instructions.
-	bfd/
-		* elfxx-riscv.c (riscv_implicit_subsets): Added implicit f
-		and zicsr for zfh.
-		(riscv_supported_std_z_ext): Added default v1.0 version for zfh.
-		(riscv_multi_subset_supports): Handle INSN_CLASS_ZFH,
-		INSN_CLASS_D_AND_ZFH and INSN_CLASS_Q_AND_ZFH.
-	gas/
-		* config/tc-riscv.c (FLT_CHARS): Added "hH".
-		(macro): Expand Pseudo M_FLH and M_FSH.
-		(riscv_pseudo_table): Added .float16 directive.
-		* testsuite/gas/riscv/float16-be.d: New testcase for .float16.
-		* testsuite/gas/riscv/float16-le.d: Likewise.
-		* testsuite/gas/riscv/float16.s: Likewise.
-		* testsuite/gas/riscv/fp-zfh-insns.d: New testcase for zfh.
-		* testsuite/gas/riscv/fp-zfh-insns.s: Likewise.
-	include/
-		* opcode/riscv-opc.h: Added MASK and MATCH encodings for zfh.
-		* opcode/riscv.h: Added INSN_CLASS and pseudo macros for zfh.
-	opcodes/
-		* riscv-opc.c (riscv_opcodes): Added zfh instructions.
-
-2022-05-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-16  Ilya Leoshkevich  <iii@linux.ibm.com>
-
-	IBM zSystems: Fix left-shifting negative PCRel32 values (PR gas/29152)
-	s390_insert_operand ()'s val, min and max are encoded PCRel32 values
-	and need to be left-shifted by 1 before being shown to the user.
-	Left-shifting negative values is undefined behavior in C, but the
-	current code does not try to prevent it, causing UBSan to complain.
-
-	Fix by casting the values to their unsigned equivalents before
-	shifting.
-
-2022-05-16  Pedro Alves  <pedro@palves.net>
-
-	Reindent gdbsupport/event-loop.cc:handle_file_event
-	The handle_file_event function has a few unnecessary {} lexical
-	blocks, presumably because they were originally if blocks, and the
-	conditions were removed, or something along those lines.
-
-	Remove the unnecessary blocks, and reindent.
-
-	Change-Id: Iaecbe5c9f4940a80b81dbbc42e51ce506f6aafb2
-
-2022-05-16  Pedro Alves  <pedro@palves.net>
-
-	gdbsupport/event-loop.cc: simplify !HAVE_POLL paths
-	gdbsupport/event-loop.cc throughout handles the case of use_poll being
-	true on a system where HAVE_POLL is not defined, by calling
-	internal_error if that situation ever happens.
-
-	Simplify this by moving the "use_poll" global itself under HAVE_POLL,
-	so that it's way more unlikely to ever end up in such a situation.
-	Then, move the code that checks the value of use_poll under HAVE_POLL
-	too, and remove the internal_error calls.  Like, from:
-
-	    if (use_poll)
-	      {
-	  #ifdef HAVE_POLL
-	        // poll code
-	  #else
-	      internal_error (....);
-	  #endif /* HAVE_POLL */
-	      }
-	    else
-	      {
-		// select code
-	      }
-
-	to
-
-	  #ifdef HAVE_POLL
-	    if (use_poll)
-	      {
-	        // poll code
-	      }
-	    else
-	  #endif /* HAVE_POLL */
-	      {
-		// select code
-	      }
-
-	While at it, make use_poll be a bool.  The current code is using
-	unsigned char most probably to save space, but I don't think it really
-	matters here.
-
-	Co-Authored-By: Youling Tang <tangyouling@loongson.cn>
-	Change-Id: I0dd74fdd4d393ccd057906df4cd75e8e83c1cdb4
-
-2022-05-16  Eli Zaretskii  <eliz@gnu.org>
-
-	gdb: Fix typo in last change in gdb.texinfo
-
-	gdb: Document the 'metadata' styling in GDB displays.
-	The 'metadata' styling was never documented in the GDB manual.
-	This fills that gap.
-
-2022-05-16  Tom Tromey  <tromey@adacore.com>
-
-	Fix Ada exception regression on Windows
-	The breakpoint c++-ification series introduced another bug in Ada --
-	it caused "catch exception" and related commands to fail on Windows.
-	The problem is that the re_set method calls the wrong superclass
-	method, so the breakpoint doesn't get correctly re-set when the
-	runtime offsets change.  This patch fixes the problem.
-
-2022-05-16  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb/testsuite: fix "continue outside of loop" TCL errors
-	Many test cases had a few lines in the beginning that look like:
-
-	if { condition } {
-	  continue
-	}
-
-	Where conditions varied, but were mostly in the form of ![runto_main] or
-	[skip_*_tests], making it quite clear that this code block was supposed
-	to finish the test if it entered the code block. This generates TCL
-	errors, as most of these tests are not inside loops.  All cases on which
-	this was an obvious mistake are changed in this patch.
-
-2022-05-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-13  Tom Tromey  <tromey@adacore.com>
-
-	Remove unused field cooked_index::m_start
-	cooked_index::m_start is unused and can be removed.  I think this was
-	a leftover from a previous approach in the index finalization code,
-	and then when rewriting it I forgot to remove it.
-
-	Tested by rebuilding.
-
-2022-05-13  Tom Tromey  <tromey@adacore.com>
-
-	Implement pid_to_exec_file for Windows in gdbserver
-	I noticed that gdbserver did not implement pid_to_exec_file for
-	Windows, while gdb did implement it.  This patch moves the code to
-	nat/windows-nat.c, so that it can be shared.  This makes the gdbserver
-	implementation trivial.
-
-	Remove windows_process_info::id
-	I noticed that windows_process_info::id is only used by gdbserver, and
-	not really necessary.  This patch removes it.
-
-	Constify target_pid_to_exec_file
-	This changes target_pid_to_exec_file and target_ops::pid_to_exec_file
-	to return a "const char *".  I couldn't build many of these targets,
-	but did examine the code by hand -- also, as this only affects the
-	return type, it's normally pretty safe.  This brings gdb and gdbserver
-	a bit closer, and allows for the removal of a const_cast as well.
-
-	Put corefile-run.core into test subdirectory
-	I noticed that corefile-run.core ends up in the 'runtest' directory.
-	It's better, when at all possible, for test files to end up in the
-	test's designated subdirectory.  This patch makes this change.
-
-2022-05-13  Tom Tromey  <tromey@adacore.com>
-
-	Do not double-read minimal symbols for PE COFF
-	This changes coffread.c to avoid re-reading minimal symbols when
-	possible.  This only works when there are no COFF symbols to be read,
-	but at least for my mingw builds of gdb, this seems to be the case.
-
-	Tested using the AdaCore internal test suite on Windows.  I also did
-	some local builds to ensure that no warnings crept in.
-
-2022-05-13  Pedro Alves  <pedro@palves.net>
-
-	Fix "gdb --write" with core files
-	If you load a core file into GDB with the --write option, or "set
-	write on" (equivalent), and then poke memory expecting it to patch the
-	core binary, you'll notice something odd -- the write seems to
-	succeed, but in reality, it doesn't.  The value you wrote doesn't
-	persist.  Like so:
-
-	 $ gdb -q --write -c testsuite/outputs/gdb.base/patch/gcore.test
-	 [New LWP 615986]
-	 Core was generated by `/home/pedro/gdb/build/gdb/testsuite/outputs/gdb.base/patch/patch'.
-	 Program terminated with signal SIGTRAP, Trace/breakpoint trap.
-	 #0  0x0000555555555131 in ?? ()
-	 (gdb) p *(unsigned char *)0x0000555555555131 = 1
-	 $1 = 1 '\001'
-	 (gdb) p *(unsigned char *)0x0000555555555131
-	 $2 = 185 '\271'
-	 (gdb)
-
-	Diffing hexdumps of before/after patching, reveals that a "0x1" was
-	actually written somewhere in the file.  The problem is that the "0x1"
-	was written at the wrong offset in the file...
-
-	That happens because _bfd_elf_set_section_contents does this to seek
-	to the section's offset:
-
-	  pos = hdr->sh_offset + offset;
-	  if (bfd_seek (abfd, pos, SEEK_SET) != 0
-	      || bfd_bwrite (location, count, abfd) != count)
-	    return false;
-
-	... and 'hdr->sh_offset' is zero, so we seek to just OFFSET, which is
-	incorrect.  The reason 'hdr->sh_offset' is zero is that
-	kernel-generated core files normally don't even have a section header
-	table (gdb-generated ones do, but that's more an accident than a
-	feature), and indeed elf_core_file_p doesn't even try to read sections
-	at all:
-
-	  /*  Core files are simply standard ELF formatted files that partition
-	      the file using the execution view of the file (program header table)
-	      rather than the linking view.  In fact, there is no section header
-	      table in a core file.
-
-	      The process status information (including the contents of the general
-	      register set) and the floating point register set are stored in a
-	      segment of type PT_NOTE.  We handcraft a couple of extra bfd sections
-	      that allow standard bfd access to the general registers (.reg) and the
-	      floating point registers (.reg2).  */
-
-	  bfd_cleanup
-	  elf_core_file_p (bfd *abfd)
-
-	Changing _bfd_elf_set_section_contents from:
-
-	  pos = hdr->sh_offset + offset;
-
-	to:
-
-	  pos = section->filepos + offset;
-
-	fixes it.  If we do that however, the tail end of
-	_bfd_elf_set_section_contents ends up as a copy of
-	_bfd_generic_set_section_contents, so just call the latter, thus
-	eliminating some duplicate code.
-
-	New GDB testcase included, which exercises both patching an executable
-	and patching a core file.  Patching an executable already works
-	without this fix, because in that case BFD reads in the sections
-	table.  Still, we had no testcase for that yet.  In fact, we have no
-	"set write on" testcases at all, this is the first one.
-
-	Tested on x86-64 GNU/Linux, gdb, ld, binutils, and gas.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18227
-	Change-Id: I0f49f58b48aabab2e269f2959b8fd8a7fe36fdce
-
-2022-05-13  Alan Modra  <amodra@gmail.com>
-
-	Import libiberty from gcc
-
-	sim: remove use of PTR
-	PTR will soon disappear from ansidecl.h.  Remove uses in sim.  Where
-	a PTR cast is used in assignment or function args to a void* I've
-	simply removed the unnecessary (in C) cast rather than replacing with
-	(void *).
-
-2022-05-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-13  Alan Modra  <amodra@gmail.com>
-
-	gdb: remove use of PTR
-	PTR will disappear from ansidecl.h and libiberty on the next import
-	from gcc.  Remove current uses in gdb.
-
-2022-05-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/break-f-std-string.cc with older gcc
-	When running test-case gdb.cp/break-f-std-string.exp on openSUSE Leap 15.3
-	with system gcc 7.5.0, I run into:
-	...
-	(gdb) whatis /r std::string^M
-	No symbol "string" in namespace "std".^M
-	(gdb) FAIL: gdb.cp/break-f-std-string.exp: _GLIBCXX_USE_CXX11_ABI=1: \
-	  whatis /r std::string
-	...
-	The same for gcc 8.2.1, but it passes with gcc 9.3.1.
-
-	At source level (as we can observe in the .ii file with -save-temps) we have
-	indeed:
-	...
-	namespace std {
-	  namespace __cxx11 {
-	    typedef basic_string<char> string;
-	  }
-	}
-	...
-	while with gcc 9.3.1, we have instead:
-	...
-	namespace std {
-	  namespace __cxx11 {
-	    ...
-	  }
-	  typedef basic_string<char> string;
-	}
-	...
-	due to gcc commit 33b43b0d8cd ("Define std::string and related typedefs
-	outside __cxx11 namespace").
-
-	Fix this by adding the missing typedef for gcc version 5 (the first version to
-	have the dual abi) to 8 (the last version missing aforementioned gcc commit).
-
-	Tested on x86_64-linux, with:
-	- system gcc 7.5.0
-	- gcc 4.8.5, 8.2.1, 9.3.1, 10.3.0, 11.2.1
-	- clang 8.0.1, 12.0.1
-
-2022-05-12  Alan Modra  <amodra@gmail.com>
-
-	Fix an illegal memory access when creating DLLs.
-		PR 29006
-		* pe-dll.c (dll_name): Delete, replacing with..
-		(dll_filename): ..this, moved earlier in file.
-		(generate_edata): Delete parameters.  Don't set up dll_name here..
-		(pe_process_import_defs): ..instead set up dll_filename and
-		dll_symname here before returning.
-		(dll_symname_len): Delete write-only variable.
-		(pe_dll_generate_implib): Don't set up dll_symname here.
-
-2022-05-12  Mark Wielaard  <mark@klomp.org>
-
-	gdb: Workaround stringop-overread warning in debuginfod-support.c on powerpc64
-	Just like on s390x with g++ 11.2.1, ppc64le with g++ 11.3.1 produces a
-	spurious warning for stringop-overread in debuginfod_is_enabled
-	for url_view. Also suppress it on powerpc64.
-
-	 gdb/ChangeLog:
-
-	    * debuginfod-support.c (debuginfod_is_enabled): Use
-	      DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD on powerpc64.
-
-2022-05-12  Luis Machado  <luis.machado@arm.com>
-
-	Make gdb.ada/float-bits.exp more generic
-	There are assumptions in the test about the long double format
-	being used. While the results are OK for i387 128-bit long doubles, it
-	is not correct for IEEE quad 128-bit long doubles.
-
-	Also, depending on the target (64-bit/32-bit), long doubles may not
-	be available at all. And it may be the case that the compiler for a 64-bit
-	target doesn't support 128-bit long doubles, but GDB might still support it
-	internally.
-
-	Lastly, not every long double format has invalid values. Some formats
-	consider all values as valid floating point numbers.
-
-	These divergences cause the following FAIL's on aarch64/arm:
-
-	FAIL: gdb.ada/float-bits.exp: print val_long_double
-	FAIL: gdb.ada/float-bits.exp: print val_long_double after assignment
-
-	With the above in mind, extend the test a little so it behaves well on
-	different architectures and so it works with different long double
-	formats.
-
-	Main changes:
-
-	- Use long double values appropriate for the long double format.
-	- Test long double assignment to compiler-generated long
-	  double variables.
-	- Test long double assignment to GDB internal variables.
-
-	Tested on x86_64 (16 PASS), i686 (16 PASS), aarch64 (12 PASS) and arm (9 PASS).
-
-2022-05-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Improve gdb/syscalls/update-linux.sh
-	Fix two things in update-linux.sh:
-	- remove use of unnecessary tmp file
-	- inline gen-header.py into update-linux.sh
-
-	Tested on x86_64-linux.
-
-2022-05-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-out-of-range-end-of-seq.exp on aarch64
-	On aarch64-linux, with test-case gdb.dwarf2/dw2-out-of-range-end-of-seq.exp I
-	run into:
-	...
-	(gdb) run ^M
-	Starting program: dw2-out-of-range-end-of-seq ^M
-	^M
-	Program received signal SIGILL, Illegal instruction.^M
-	main () at src/gdb/testsuite/gdb.dwarf2/main.c:1^M
-	1       /* This testcase is part of GDB, the GNU debugger.^M
-	(gdb) FAIL: gdb.dwarf2/dw2-out-of-range-end-of-seq.exp: runto: run to main
-	...
-
-	There are two problems here:
-	- the test-case contains a hardcoded "DW_LNS_advance_pc 1" which causes the
-	  breakpoint pointing in the middle of an insn
-	- the FAIL triggers on aarch64-linux, but not on x86_64-linux, because the
-	  test-case uses 'main_label' as the address of the first and only valid entry
-	  in the line table, and:
-	  - on aarch64-linux, there's no prologue, so main_label and main coincide,
-	    while
-	  - on x86_64-linux, there's a prologue, so main_label is different from main.
-
-	Fix these problems by:
-	- eliminating the use of "DW_LNS_advance_pc 1", and using
-	  "DW_LNE_set_address $main_end" instead, and
-	- eliminating the use of main_label, using "DW_LNE_set_address $main_start"
-	  instead.
-
-	Tested on both x86_64-linux and aarch64-linux.
-
-2022-05-12  Alan Modra  <amodra@gmail.com>
-
-	cgen: increase buffer for hash_insn_list
-	As was done for hash_insn_array in commit d3d1cc7b13b4.
-
-		* cgen-dis.c (hash_insn_list): Increase size of buf.  Assert
-		size is large enough.
-
-2022-05-12  Alan Modra  <amodra@gmail.com>
-
-	PR29142, segv in ar with empty archive and libdeps specified
-		PR 29142
-		* ar.c (main): Properly handle libdeps for zero file_count.
-
-2022-05-12  Alan Modra  <amodra@gmail.com>
-
-	Re: IBM zSystems: Accept (. - 0x100000000) PCRel32 operands
-	The new test failed on s390-linux due to bfd_sprintf_vma trimming
-	output to 32 bits for 32-bit targets.  The test was faulty anyway,
-	expecting zero as the min end of the range is plainly wrong, but
-	that's what you get if you cast min to int.
-
-		* config/tc-s390.c (s390_insert_operand): Print range error using
-		PRId64.
-		* testsuite/gas/s390/zarch-z900-err.l: Correct expected output.
-
-2022-05-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/catch-syscall.exp with --with-expat=no
-	When doing a gdb build with --with-expat=no, I run into:
-	...
-	(gdb) PASS: gdb.base/catch-syscall.exp: determine pipe syscall: \
-	  continue to breakpoint: before pipe call
-	catch syscall pipe^M
-	Unknown syscall name 'pipe'.^M
-	(gdb) PASS: gdb.base/catch-syscall.exp: determine pipe syscall: \
-	  catch syscall pipe
-	catch syscall pipe2^M
-	Unknown syscall name 'pipe2'.^M
-	(gdb) PASS: gdb.base/catch-syscall.exp: determine pipe syscall: \
-	  catch syscall pipe2
-	continue^M
-	Continuing.^M
-	[Detaching after vfork from child process 18538]^M
-	[Inferior 1 (process 18537) exited normally]^M
-	(gdb) FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: continue
-	...
-
-	This is a regression since recent commit 5463a15c18b ("[gdb/testsuite] Handle
-	pipe2 syscall in gdb.base/catch-syscall.exp").
-
-	Fix this by using pipe/pipe2 syscall numbers instead.
-
-	Tested on x86_64-linux.
-
-2022-05-11  Nick Clifton  <nickc@redhat.com>
-
-	nm: use -U as an alias for --defines-only, in line with llvm-nm
-
-2022-05-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/catch-syscall.exp without --enable-targets
-	When doing a gdb build without --enable-targets, I run into:
-	...
-	(gdb) UNSUPPORTED: gdb.base/catch-syscall.exp: multiple targets: \
-	  s390:31-bit vs s390:64-bit: set architecture s390:64-bit
-	delete breakpoints^M
-	(gdb) info breakpoints^M
-	No breakpoints or watchpoints.^M
-	(gdb) break -qualified main^M
-	No symbol table is loaded.  Use the "file" command.^M
-	Make breakpoint pending on future shared library load? (y or [n]) n^M
-	(gdb) FAIL: gdb.base/catch-syscall.exp: gdb_breakpoint: set breakpoint at main
-	...
-
-	The problem is that due to recent commit e21d8399303 ("[gdb/testsuite] Remove
-	target limits in gdb.base/catch-syscall.exp") "clean_restart $binfile" no
-	longer is called at the end of test_catch_syscall_multi_arch.
-
-	Fix this by moving "clean_restart $binfile" back to
-	test_catch_syscall_multi_arch.
-
-	Tested on x86_64-linux.
-
-2022-05-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/maint.exp on powerpc64le
-	On powerpc64le-linux, I ran into:
-	...
-	FAIL: gdb.base/maint.exp: maint print objfiles: symtabs
-	...
-
-	The problem is that:
-	- the "Cooked index in use" line occurs twice in the gdb output:
-	  - once for exec maint, and
-	  - once for "Object file system-supplied DSO".
-	- the matching of the second "Cooked index in use" also consumes
-	  the "Symtabs:" string, and consequently the corresponding
-	  clause does not trigger and $symtabs remains 0.
-
-	Fix this by limiting the output of the command to the exec.
-
-	Tested on x86_64-linux and powerpcle-linux.
-
-2022-05-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Update syscalls/{ppc64,ppc}-linux.xml
-	Regenerate syscalls/{ppc64,ppc}-linux.xml on a system with 5.14 kernel.
-
-2022-05-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove target limits in gdb.base/catch-syscall.exp
-	In test-case gdb.base/catch-syscall.exp, proc test_catch_syscall_multi_arch we
-	test for supported targets using istarget, like so:
-	...
-	    if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } {
-	        ...
-	    } elseif { [istarget "powerpc-*-linux*"] \
-	                  || [istarget "powerpc64*-linux*"] } {
-	        ...
-	...
-	but the tests excercised there can all be executed if gdb is configured with
-	--enable-targets=all.
-
-	Rewrite the proc to iterate over all cases, and check if the test is supported
-	by trying "set arch $arch1" and "set arch $arch2".
-
-	Tested on x86_64-linux, with:
-	- a gdb build with --enable-targets=all, and
-	- a gdb build build with my usual --enable-targets setting (too long to
-	  include here) which means the sparc vs sparc:v9 case is unsupported.
-
-2022-05-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/record] Handle statx system call
-	When running test-case gdb.reverse/fstatat-reverse.exp with target board
-	unix/-m32 on openSUSE Tumbleweed, I run into:
-	...
-	(gdb) PASS: gdb.reverse/fstatat-reverse.exp: set breakpoint at marker2
-	continue^M
-	Continuing.^M
-	Process record and replay target doesn't support syscall number 383^M
-	Process record: failed to record execution log.^M
-	^M
-	Program stopped.^M
-	0xf7fc5555 in __kernel_vsyscall ()^M
-	(gdb) FAIL: gdb.reverse/fstatat-reverse.exp: continue to breakpoint: marker2
-	...
-
-	The problems is that while with native we're trying to record these syscalls
-	(showing strace output):
-	...
-	openat(AT_FDCWD, "/", O_RDONLY|O_PATH)  = 3
-	newfstatat(3, ".", {st_mode=S_IFDIR|0755, st_size=146, ...}, 0) = 0
-	...
-	with unix/-m32 we have instead:
-	...
-	openat(AT_FDCWD, "/", O_RDONLY|O_PATH)  = 3
-	statx(3, ".", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, \
-	  {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=STATX_ATTR_MOUNT_ROOT, \
-	  stx_mode=S_IFDIR|0755, stx_size=146, ...}) = 0
-	...
-	and statx is not supported.
-
-	Fix this by adding support for recording syscall statx.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28461
-
-2022-05-11  Alan Modra  <amodra@gmail.com>
-
-	opcodes cgen: remove use of PTR
-	Note that opcodes is regenerated with cgen commit d1dd5fcc38e reverted,
-	due to failure of bpf to compile with that patch applied.
-
-	.../opcodes/bpf-opc.c:57:11: error: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘18446744073709486335’ to ‘4294902015’ [-Werror=overflow]
-	   57 |   64, 64, 0xffffffffffff00ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-	plus other similar errors.
-
-	cpu/
-		* mep.opc (print_tpreg, print_spreg): Delete unnecessary
-		forward declarations.  Replace PTR with void *.
-		* mt.opc (print_dollarhex, print_pcrel): Delete forward decls.
-	opcodes/
-		* bpf-desc.c, * bpf-dis.c, * cris-desc.c,
-		* epiphany-desc.c, * epiphany-dis.c,
-		* fr30-desc.c, * fr30-dis.c, * frv-desc.c, * frv-dis.c,
-		* ip2k-desc.c, * ip2k-dis.c, * iq2000-desc.c, * iq2000-dis.c,
-		* lm32-desc.c, * lm32-dis.c, * m32c-desc.c, * m32c-dis.c,
-		* m32r-desc.c, * m32r-dis.c, * mep-desc.c, * mep-dis.c,
-		* mt-desc.c, * mt-dis.c, * or1k-desc.c, * or1k-dis.c,
-		* xc16x-desc.c, * xc16x-dis.c,
-		* xstormy16-desc.c, * xstormy16-dis.c: Regenerate.
-
-2022-05-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-10  Youling Tang  <tangyouling@loongson.cn>
-
-	gdb: mips: Fix large-frame.exp test case failure
-	$ objdump -d outputs/gdb.base/large-frame/large-frame-O2
-	0000000120000b20 <func>:
-	   120000b20:   67bdbff0        daddiu  sp,sp,-16400
-	   120000b24:   ffbc4000        sd      gp,16384(sp)
-	   120000b28:   3c1c0002        lui     gp,0x2
-	   120000b2c:   679c8210        daddiu  gp,gp,-32240
-	   120000b30:   0399e02d        daddu   gp,gp,t9
-	   120000b34:   df998058        ld      t9,-32680(gp)
-	   120000b38:   ffbf4008        sd      ra,16392(sp)
-	   120000b3c:   0411ffd8        bal     120000aa0 <blah>
-	...
-
-	The disassembly of the above func function shows that we may use
-	instructions such as daddiu/daddu, so add "daddiu $gp,$gp,n",
-	"daddu $gp,$gp,$t9" and "daddu $gp,$t9,$gp" to the mips32_scan_prologue
-	function to fix the large-frame.exp test case.
-
-	Before applying the patch:
-
-	 backtrace
-	 #0  blah (a=0xfffffee220) at .../gdb/testsuite/gdb.base/large-frame-1.c:24
-	 #1  0x0000000120000b44 in func ()
-	 Backtrace stopped: frame did not save the PC
-	 (gdb) FAIL: gdb.base/large-frame.exp: optimize=-O2: backtrace
-
-	 # of expected passes            5
-	 # of unexpected failures        1
-
-	After applying the patch:
-
-	 # of expected passes            6
-
-2022-05-10  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Use GDB style to check readbuf and writebuf
-	The GDB style is to write 'if (readbuf != nullptr)', and the same for
-	writebuf.
-
-2022-05-10  Tom Tromey  <tromey@adacore.com>
-
-	Fix --disable-threading build
-	PR build/29110 points out that GDB fails to build on mingw when the
-	"win32" thread model is in use.  It turns out that the Fedora cross
-	tools using the "posix" thread model, which somehow manages to support
-	std::future, whereas the win32 model does not.
-
-	While looking into this, I found that the configuring with
-	--disable-threading will also cause a build failure.
-
-	This patch fixes this build by introducing a compatibility wrapper for
-	std::future.
-
-	I am not able to test the win32 thread model build, but I'm going to
-	ask the reporter to try this patch.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29110
-
-2022-05-10  Pedro Alves  <pedro@palves.net>
-
-	Fix "b f(std::string)" when current language is C
-	If you try to set a breakpoint at a function such as "b
-	f(std::string)", and the current language is C, the breakpoint fails
-	to be set, like so:
-
-	  (gdb) set language c
-	  break f(std::string)
-	  Function "f(std::string)" not defined.
-	  Make breakpoint pending on future shared library load? (y or [n]) n
-	  (gdb)
-
-	The problem is that the code in GDB that expands the std::string
-	typedef hits this in c-typeprint.c:
-
-	      /* If we have "typedef struct foo {. . .} bar;" do we want to
-		 print it as "struct foo" or as "bar"?  Pick the latter for
-		 C++, because C++ folk tend to expect things like "class5
-		 *foo" rather than "struct class5 *foo".  We rather
-		 arbitrarily choose to make language_minimal work in a C-like
-		 way. */
-	      if (language == language_c || language == language_minimal)
-		{
-		  if (type->code () == TYPE_CODE_UNION)
-		    gdb_printf (stream, "union ");
-		  else if (type->code () == TYPE_CODE_STRUCT)
-		    {
-		      if (type->is_declared_class ())
-			gdb_printf (stream, "class ");
-		      else
-			gdb_printf (stream, "struct ");
-		    }
-		  else if (type->code () == TYPE_CODE_ENUM)
-		    gdb_printf (stream, "enum ");
-		}
-
-	I.e., std::string is expanded to "class std::..." instead of just
-	"std::...", and then the "f(class std::..." symbol doesn't exist.
-
-	Fix this by making cp-support.c:inspect_type print the expanded
-	typedef type using the language of the symbol whose type we're
-	expanding the typedefs for -- in the example in question, the
-	"std::string" typedef symbol, which is a C++ symbol.
-
-	Use type_print_raw_options as it seems to me that in this scenario we
-	always want raw types, to match the real symbol names.
-
-	Adjust the gdb.cp/break-f-std-string.exp testcase to try setting a
-	breakpoint at "f(std::string)" in both C and C++.
-
-	Change-Id: Ib54fab4cf0fd307bfd55bf1dd5056830096a653b
-
-2022-05-10  Pedro Alves  <pedro@palves.net>
-
-	Always pass an explicit language down to c_type_print
-	The next patch will want to do language->print_type(type, ...), to
-	print a type in a given language, avoiding a dependency on the current
-	language.  That doesn't work correctly currently, however, because
-	most language implementations of language_defn::print_type call
-	c_print_type without passing down the language.  There are two
-	overloads of c_print_type, one that takes a language, and one that
-	does not.  The one that does not uses the current language, defeating
-	the point of calling language->print_type()...
-
-	This commit removes the c_print_type overload that does not take a
-	language, and adjusts the codebase throughout to always pass down a
-	language.  In most places, there's already an enum language handy.
-	language_defn::print_type implementations naturally pass down
-	this->la_language.  In a couple spots, like in ada-typeprint.c and
-	rust-lang.c there's no enum language handy, but the code is written
-	for a specific language, so we just hardcode the language.
-
-	In gnuv3_print_method_ptr, I wasn't sure whether we could hardcode C++
-	here, and we don't have an enum language handy, so I made it use the
-	current language, just like today.  Can always be improved later.
-
-	Change-Id: Ib54fab4cf0fd307bfd55bf1dd5056830096a653b
-
-2022-05-10  Pedro Alves  <pedro@palves.net>
-
-	Fix "b f(std::string)", always use DMGL_VERBOSE
-	Currently, on any remotely modern GNU/Linux system,
-	gdb.cp/no-dmgl-verbose.exp fails like so:
-
-	  break 'f(std::string)'
-	  Function "f(std::string)" not defined.
-	  (gdb) FAIL: gdb.cp/no-dmgl-verbose.exp: gdb_breakpoint: set breakpoint at 'f(std::string)'
-	  break 'f(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
-	  Function "f(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)" not defined.
-	  (gdb) PASS: gdb.cp/no-dmgl-verbose.exp: DMGL_VERBOSE-demangled f(std::string) is not defined
-
-	This testcase was added back in 2011, here:
-
-	  [patch] Remove DMGL_VERBOSE
-	  https://sourceware.org/pipermail/gdb-patches/2011-June/083081.html
-
-	Back then, the testcase would pass cleanly.  It turns out that the
-	reason it fails today is that the testcase is exercising something in
-	GDB that only makes sense if the program is built for the pre-C++11
-	libstc++ ABI.  Back then the C++11 ABI didn't exist yet, but nowadays,
-	you need to compile with -D_GLIBCXX_USE_CXX11_ABI=0 to use the old
-	ABI.  See "Dual ABI" in the libstdc++ manual, at
-	<https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html>.
-
-	If we tweak the gdb.cp/no-dmgl-verbose.exp testcase to force the old
-	ABI with -D_GLIBCXX_USE_CXX11_ABI=0, then it passes cleanly.
-
-	So why is it that setting a breakpoint at "f(std::string)" fails with
-	modern ABI, but passes with old ABI?
-
-	This is where libiberty demangler's DMGL_VERBOSE option comes in.  The
-	Itanium ABI mangling scheme has a shorthand form for std::string (and
-	some other types).  See
-	<https://itanium-cxx-abi.github.io/cxx-abi/abi.html>:
-
-	  "In addition, the following catalog of abbreviations of the form "Sx" are used:
-
-	     <substitution> ::= St # ::std::
-	     <substitution> ::= Sa # ::std::allocator
-	     <substitution> ::= Sb # ::std::basic_string
-	     <substitution> ::= Ss # ::std::basic_string < char,
-							   ::std::char_traits<char>,
-							   ::std::allocator<char> >
-	     <substitution> ::= Si # ::std::basic_istream<char,  std::char_traits<char> >
-	     <substitution> ::= So # ::std::basic_ostream<char,  std::char_traits<char> >
-	     <substitution> ::= Sd # ::std::basic_iostream<char, std::char_traits<char> >
-	  "
-
-	When the libiberty demangler encounters such a abbreviation, by
-	default, it expands it to the user-friendly typedef "std::string",
-	"std::iostream", etc..  If OTOH DMGL_VERBOSE is specified, the
-	abbreviation is expanded to the underlying, non-typedefed fullname
-	"std::basic_string<char, std::char_traits<char>, std::allocator<char> >"
-	etc. as documented in the Itanium ABI, and pasted above.  You can see
-	the standard abbreviations/substitutions in
-	libiberty/cp-demangle.c:standard_subs.
-
-	Back before Jan's patch in 2011, there were parts of GDB that used
-	DMGL_VERBOSE, and others that did not, leading to mismatches.  The
-	solution back then was to stop using DMGL_VERBOSE throughout.
-
-	GDB has code in place to let users set a breakpoint at a function with
-	typedefs in its parameters, like "b f(uint32_t)".  Demangled function
-	names as they appear in the symbol tables almost (more on this is in a
-	bit) never have typedefs in them, so when processing "b f(uint32_t)"
-	GDB first replaces "uint32_t" for its underlying type, and then sets a
-	breakpoint on the resulting prototype, in this case "f(unsigned int)".
-
-	Now, if DMGL_VERBOSE is _not_ used, then the demangler demangles the
-	mangled name of a function such as "void f(std::string)" that was
-	mangled using the standard abbreviations mentioned above really as:
-
-	  "void f(std::string)".
-
-	For example, the mangled name of "void f(std::string)" if you compile
-	with old pre-C++11 ABI is "_Z1fSs".  That uses the abbreviation "Ss",
-	so if you demangle that without DMGL_VERBOSE, you get:
-
-	  $ echo "_Z1fSs" | c++filt --no-verbose
-	  f(std::string)
-
-	while with DMGL_VERBOSE you'd get:
-
-	  $ echo "_Z1fSs" | c++filt
-	  f(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)
-
-	If, when the user sets a breakpoint at "f(std::string)", GDB would
-	replace the std::string typedef for its underlying type using the same
-	mechanism I mentioned for the "f(uint32_t)" example above, then GDB
-	would really try to set a breakpoint at "f(std::basic_string<char,
-	std::char_traits<char>, std::allocator<char> >)", and that would fail,
-	as the function symbol GDB knows about for that function, given no
-	DMGL_VERBOSE, is "f(std::string)".
-
-	For this reason, the code that expands typedefs in function parameter
-	names has an exception for std::string (and other standard
-	abbreviation types), such that "std::string" is never
-	typedef-expanded.
-
-	And here lies the problem when you try to do "b f(std::string)" with a
-	program compiled with the C++11 ABI.  In that case, std::string
-	expands to a different underlying type, like so:
-
-	  f(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
-
-	and this symbol naturally mangles differently, as:
-
-	  _Z1fNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
-
-	and then because this doesn't use the shorthand mangling abbreviation
-	for "std::string" anymore, it always demangles as:
-
-	  f(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
-
-	Now, when using the C++11 ABI, and you set a breakpoint at
-	"f(std::string)", GDB's typedefs-in-parameters expansion code hits the
-	exception for "std::string" and doesn't expand it, so the breakpoint
-	fails to be inserted, because the symbol that exists is really the
-
-	  f(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
-
-	one, not "f(std::string)".
-
-	So to fix things for C++11 ABI, clearly we need to remove the
-	"std::string" exception from the typedef-in-parameters expansion
-	logic.  If we do just that, then "b f(std::string)" starts working
-	with the C++11 ABI.
-
-	However, if we do _just_ that, and nothing else, then we break
-	pre-C++11 ABI...
-
-	The solution is then to in addition switch GDB to always use
-	DMGL_VERBOSE.  If we do this, then pre-C++11 ABI symbols works the
-	same as C++11 ABI symbols overall -- the demangler expands the
-	standard abbreviation for "std::string" as "std::basic_string<char,
-	std::char_traits<char>, std::allocator<char> >" and letting GDB expand
-	the "std::string" typedef (etc.) too is no longer a problem.
-
-	To avoid getting in the situation where some parts of GDB use
-	DMGL_VERBOSE and others not, this patch adds wrappers around the
-	demangler's entry points that GDB uses, and makes those force
-	DMGL_VERBOSE.
-
-	The point of the gdb.cp/no-dmgl-verbose.exp testcase was to try to
-	ensure that DMGL_VERBOSE doesn't creep back in:
-
-	 gdb_test {break 'f(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'} \
-		  {Function ".*" not defined\.} \
-		  "DMGL_VERBOSE-demangled f(std::string) is not defined"
-
-	This obviously no longer makes sense to have, since we now depend on
-	DMGL_VERBOSE.  So the patch replaces gdb.cp/no-dmgl-verbose.exp with a
-	new gdb.cp/break-f-std-string.exp testcase whose purpose is to make
-	sure that setting a breakpoint at "f(std::string)" works.  It
-	exercises both pre-C++11 ABI and C++11 ABI.
-
-	Change-Id: Ib54fab4cf0fd307bfd55bf1dd5056830096a653b
-
-2022-05-10  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: fix testsuite regressions for unix/-m32 board
-	This commit fixes two regressions introduced by
-	891e4190ba705373eec7b374209478215fff5401.
-
-	Reason for the failures was, that on a 32 bit machine the maximum
-	array length as well as the maximum allocatable memory for arrays
-	(in bytes) both seem to be limited by the maximum value of a 4
-	byte (signed) Fortran integer.  This lead to compiler errors/unexpected
-	behavior when compiling/running the test with the -m32 board.  This
-	behavior is compiler dependent and can differ for different compiler
-	implementations, but generally, it seemed like a good idea to simply
-	avoid such situations.
-
-	The affected tests check for GDB's overflow behavior when using KIND
-	parameters with GDB implemented Fortran intrinsic functions.  If these
-	KIND parameters are too small to fit the actual intrinsic function's
-	result, an overflow is expected.  This was done for 1, 2, and 4
-	byte overflows.  The last one caused problems, as it tried to allocate
-	arrays of length/byte-size bigger than the 4 byte signed integers which
-	would then be used with the LBOUND/UBOUND/SIZE intrinsics.
-
-	The tests were adapted to only execute the 4 byte overflow tests when
-	running on targets with 64 bit.  For this, the compiled tests evaluate the
-	byte size of a C_NULL_PTR via C_SIZEOF, both defined in the ISO_C_BINDING
-	module.  The ISO_C_BINDING constant C_NULL_PTR is a Fortran 2003, the
-	C_SIZEOF a Fortran 2008 extension.  Both have been implemented in their
-	respective compilers for while (e.g. C_SIZEOF is available since
-	gfortran 4.6).  If this byte size evaluates to less than 8 we skip the
-	4 byte overflow tests in the compiled tests of size.f90 and
-	lbound-ubound.f90.  Similarly, in the lbound-ubound.exp testsfile we skip
-	the 4 byte overflow tests if the procedure is_64_target evaluates to false.
-
-	In size.f90, additionally, the to-be-allocated amount of bytes did not
-	fit into 4 byte signed integers for some of the arrays, as it was
-	approximately 4 times the maximum size of a 4 byte signed integer.  We
-	adapted the dimensions of the arrays in question as the meaningfulness
-	of the test does not suffer from this.
-
-	With this patch both test run fine with the unix/-m32 board and
-	gcc/gfortran (9.4) as well as the standard board file.
-
-	We also thought about completely removing the affected test from the
-	testsuite.  We decided against this as the 32 bit identification comes
-	with Fortran 2008 and removing tests would have decreased coverage.
-
-	A last change that happened with this patch was due to gfortran's and
-	ifx's type resolution when assigning big constants to Fortran Integer*8
-	variables.  Before the above changes this happened in a parameter
-	statement.  Here, both compilers happily accepted a line like
-
-	  integer*8, parameter :: var = 2147483647 + 5.
-
-	After this change the assignment is not done as a parameter
-	anymore, as this triggered compile time overflow errors.  Instead,
-	the assignment is done dynamically, depending on the kind of machine one
-	is on.  Sadly, just changing this line to
-
-	  integer*8 :: var
-	  var = 2147483647 + 5
-
-	does not work with ifx (or flang for that matter, they behave similarly
-	here).  It will create an integer overflow in the addition as ifx deduces
-	the type the additon is done in as Integer*4.  So var will actually
-	contain the value -2147483644 after this.  The lines
-
-	  integer*8 :: var
-	  var = 2147483652
-
-	on the other hand fail to compile with gfortran (9.4.0) as the compiler
-	identifies an Integer overflow here.  Finally, to make this work with
-	all three compilers an additional parameter has been introduced
-
-	  integer*8, parameter :: helper = 2147483647
-	  integer*8 :: var
-	  var = helper + 5.
-
-	This works on all 3 compilers as expected.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29053
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29054
-
-2022-05-10  Pedro Alves  <pedro@palves.net>
-
-	Move non-dependent gdb::observers::observable::visit_state outside template
-	The other day, while looking at the symbols that end up in a GDB
-	index, I noticed that the gdb::observers::observable::visit_state enum
-	class appears a number of times:
-
-	 $ grep VISIT gdb-index-symbol-names.txt
-	 gdb::observers::observable<bpstat*, int>::visit_state::NOT_VISITED
-	 gdb::observers::observable<bpstat*, int>::visit_state::VISITED
-	 gdb::observers::observable<bpstat*, int>::visit_state::VISITING
-	 gdb::observers::observable<breakpoint*>::visit_state::NOT_VISITED
-	 gdb::observers::observable<breakpoint*>::visit_state::VISITED
-	 gdb::observers::observable<breakpoint*>::visit_state::VISITING
-	 gdb::observers::observable<char const*, char const*>::visit_state::NOT_VISITED
-	 gdb::observers::observable<char const*, char const*>::visit_state::VISITED
-	 gdb::observers::observable<char const*, char const*>::visit_state::VISITING
-	 gdb::observers::observable<char const*>::visit_state::NOT_VISITED
-	 gdb::observers::observable<char const*>::visit_state::VISITED
-	 gdb::observers::observable<char const*>::visit_state::VISITING
-	 gdb::observers::observable<enum_flags<user_selected_what_flag> >::visit_state::NOT_VISITED
-	 gdb::observers::observable<enum_flags<user_selected_what_flag> >::visit_state::VISITED
-	 gdb::observers::observable<enum_flags<user_selected_what_flag> >::visit_state::VISITING
-	 gdb::observers::observable<frame_info*, int>::visit_state::NOT_VISITED
-	 gdb::observers::observable<frame_info*, int>::visit_state::VISITED
-	 gdb::observers::observable<frame_info*, int>::visit_state::VISITING
-	 gdb::observers::observable<gdbarch*>::visit_state::NOT_VISITED
-	 gdb::observers::observable<gdbarch*>::visit_state::VISITED
-	 gdb::observers::observable<gdbarch*>::visit_state::VISITING
-	 gdb::observers::observable<gdb_signal>::visit_state::NOT_VISITED
-	 gdb::observers::observable<gdb_signal>::visit_state::VISITED
-	 gdb::observers::observable<gdb_signal>::visit_state::VISITING
-	 [... snip ...]
-
-	 $ grep VISIT gdb-index-symbol-names.txt | wc -l
-	 72
-
-	enum class visit_state is defined inside the class template
-	observable, but it doesn't have to be, as it does not depend on the
-	template parameters.  This commit moves it out, so that only one such
-	type exists.  This reduces the size of a -O0 -g3 build for me by
-	around 0.6%, like so:
-
-	 $ du -b gdb.before gdb.after
-	 164685280       gdb.before
-	 163707424       gdb.fixed
-
-	and codesize by some 0.5%.
-
-	Change-Id: I405f4ef27b8358fdd22158245b145d849b45658e
-
-2022-05-10  Nick Clifton  <nickc@redhat.com>
-
-	Fix compiling binutils/resbin.c with Clang version 14
-
-2022-05-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: include percentages in default metrics list
-	gprofng/ChangeLog
-	2022-05-09  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* src/gprofng.rc: Include percentages in default metrics list.
-
-2022-05-10  Alan Modra  <amodra@gmail.com>
-
-	gprof: remove use of PTR
-		* basic_blocks.c: Replace uses of PTR with void * throughout.
-		* cg_arcs.c: Likewise.
-		* cg_print.c: Likewise.
-		* hist.c: Likewise.
-		* source.h: Likewise.
-		* symtab.c: Likewise.
-
-	gas: remove use of PTR
-		* config/obj-evax.c (evax_symbol_new_hook): Don't cast to PTR.
-
-2022-05-10  Alan Modra  <amodra@gmail.com>
-
-	opcodes: remove use of PTR
-	The non-cgen parts of opcodes.
-
-		* cr16-dis.c (print_arg): Replace PTR with void *.
-		* crx-dis.c (print_arg): Likewise.
-		* rl78-dis.c (print_insn_rl78_common): Don't use PTR cast.
-		* rx-dis.c (print_insn_rx): Likewise.
-		* visium-dis.c (print_insn_visium): Likewise.
-		* z8k-dis.c (print_insn_z8k): Likewise.
-
-2022-05-10  Alan Modra  <amodra@gmail.com>
-
-	bfd: remove use of PTR
-		* coffcode.h (coff_write_object_contents): Don't cast to PTR.
-		* elf32-csky.c (csky_elf_link_hash_traverse): Remove use of PTR
-		and PARAMS.
-		(csky_allocate_dynrelocs): Don't use PTR cast.
-		* elf32-nios2.c (adjust_dynrelocs, allocate_dynrelocs): Replace
-		PTR with void *.
-		* elf32-visium.c (visium_elf_howto_parity_reloc): Likewise.
-		* elfxx-ia64.c (ia64_elf_reloc): Likewise.
-		* plugin.c (bfd_plugin_bfd_print_private_bfd_data): Likewise.
-
-	include: remove use of PTR
-		* hashtab.h (HTAB_EMPTY_ENTRY): Replace PTR with void *.
-		(HTAB_DELETED_ENTRY): Likewise.
-
-2022-05-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-09  Ilya Leoshkevich  <iii@linux.ibm.com>
-
-	IBM zSystems: Accept (. - 0x100000000) PCRel32 operands
-	as does not accept instructions like brasl %r0,.-0x100000000, because
-	of two problems with the generic overflow check:
-
-	1. PCRel32 operands are signed, but are treated as unsigned.
-
-	2. The allowed range for these operands is [-(1 << 32), (1 << 32) - 1],
-	   and not [-(1 << 31), (1 << 31) - 1].
-
-	Fix both by disabling the generic overflow check - it's not needed,
-	because s390_insert_operand () performs its own.
-
-	gas/
-
-	        * config/tc-s390.c (md_gather_operands): Set fx_no_overflow.
-	        * testsuite/gas/s390/s390.exp: Add zarch-z900-err.
-	        * testsuite/gas/s390/esa-z900.d: New test.
-	        * testsuite/gas/s390/esa-z900.s: New test.
-	        * testsuite/gas/s390/zarch-z900-err.l: New test.
-	        * testsuite/gas/s390/zarch-z900-err.s: New test.
-
-2022-05-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix occasional failure in gdb.mi/mi-multi-commands.exp
-	In bug PR gdb/29036, another failure was reported for the test
-	gdb.mi/mi-multi-commands.exp.  This test sends two commands to GDB as
-	a single write, and then checks that both commands are executed.
-
-	The problem that was encountered here is that the output of the first
-	command, which looks like this:
-
-	  ^done,value="\"FIRST COMMAND\""
-
-	Is actually produced in parts, first the '^done' is printed, then the
-	',value="\"FIRST COMMAND\"" is printed.
-
-	What was happening is that some characters from the second command
-	were being echoed after the '^done' had been printed, but before the
-	value part had been printed.  To avoid this issue I've relaxed the
-	pattern that checks for the first command a little.  With this fix in
-	place the occasional failure in this test is no longer showing up.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29036
-
-2022-05-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Update syscalls/{amd64,i386}-linux.xml
-	- Add a script syscalls/gen-header.py, based on syscalls/arm-linux.py.
-	- Add a script syscalls/update-linux.sh (alongside update-freebsd.sh and
-	  update-netbsd.sh).
-	- Use syscalls/update-linux.sh to update syscalls/{amd64,i386}-linux.xml.in.
-	- Regenerate syscalls/{amd64,i386}-linux.xml using syscalls/Makefile.
-
-	In gdb/syscalls/i386-linux.xml.in, updating has the following notable effect:
-	...
-	-  <syscall name="madvise1" number="220"/>
-	-  <syscall name="getdents64" number="221"/>
-	-  <syscall name="fcntl64" number="222"/>
-	+  <syscall name="getdents64" number="220"/>
-	+  <syscall name="fcntl64" number="221"/>
-	...
-
-	I've verified in ./arch/x86/entry/syscalls/syscall_32.tbl that the numbers are
-	correct.
-
-	Tested on x86_64-linux.
-
-2022-05-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Add gdb/syscalls/Makefile
-	Add a Makefile in gdb/syscalls that can be used to translate
-	gdb/syscalls/*.xml.in into gdb/syscalls/*.xml.
-
-	Calling make reveals that bfin-linux.xml is missing, so add it.
-
-	Tested on x86_64-linux.
-
-2022-05-09  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Implement the return_value gdbarch method
-	When execute the following command on LoongArch:
-
-	  make check-gdb TESTS="gdb.base/async.exp"
-
-	there exist the following failed testcases:
-
-	  FAIL: gdb.base/async.exp: finish& (timeout)
-	  FAIL: gdb.base/async.exp: jump& (timeout)
-	  FAIL: gdb.base/async.exp: until& (timeout)
-	  FAIL: gdb.base/async.exp: set exec-done-display off (GDB internal error)
-
-	we can see the following messages in gdb/testsuite/gdb.log:
-
-	  finish&
-	  Run till exit from #0  foo () at /home/loongson/gdb.git/gdb/testsuite/gdb.base/async.c:9
-	  (gdb) /home/loongson/gdb.git/gdb/gdbarch.c:2646: internal-error: gdbarch_return_value: Assertion `gdbarch->return_value != NULL' failed.
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-
-	In order to fix the above failed testcases, implement the return_value
-	gdbarch method on LoongArch.
-
-2022-05-09  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix for gdb.base/eof-exit.exp test failures
-	This fix relates to PR gdb/29032, this makes the test more stable by
-	ensuring that the Ctrl-D is only sent once the prompt has been
-	displayed.  This issue was also discussed on the mailing list here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-April/187670.html
-
-	The problem identified in the bug report is that sometimes the Ctrl-D
-	(that the test sends to GDB) arrives while GDB is processing a
-	command.  When this happens the Ctrl-D is handled differently than if
-	the Ctrl-D is sent while GDB is waiting for input at a prompt.
-
-	The original intent of the test was that the Ctrl-D be sent while GDB
-	was waiting at a prompt, and that is the case the occurs most often,
-	but, when the Ctrl-D arrives during command processing, then GDB will
-	ignore the Ctrl-D, and the test will fail.
-
-	This commit ensures the Ctrl-D is always sent while GDB is waiting at
-	a prompt, which makes this test stable.
-
-	But, that still leaves an open question, what should happen when the
-	Ctrl-D arrives while GDB is processing a command?  This commit doesn't
-	attempt to answer that question, which is while bug PR gdb/29032 will
-	not be closed once this commit is merged.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29032
-
-2022-05-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Make btrace maintainer entry more clear
-	Do:
-	...
-	-record btrace          <name>       <email>
-	+record
-	+  btrace               <name>       <email>
-	...
-	to clarify that the listed maintainer is only maintainer of the btrace part of
-	record.
-
-2022-05-09  Martin Liska  <mliska@suse.cz>
-
-	ansidecl.h: sync from GCC
-	include/ChangeLog:
-
-		* ansidecl.h: Sync from GCC.
-
-2022-05-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Support catch syscall pipe2 for i386
-	With test-case gdb.base/catch-syscall.exp and target board unix/-m32, we run
-	into:
-	...
-	(gdb) catch syscall pipe2^M
-	Unknown syscall name 'pipe2'.^M
-	(gdb) FAIL: gdb.base/catch-syscall.exp: determine pipe syscall: catch syscall pipe2
-	...
-
-	Fix this by:
-	- adding a pipe2 entry in gdb/syscalls/i386-linux.xml.in, and
-	- regenerating gdb/syscalls/i386-linux.xml using
-	  "xsltproc --output i386-linux.xml apply-defaults.xsl i386-linux.xml.in".
-
-	Tested on x86_64-linux with native and unix/-m32.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056
-
-2022-05-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp
-	When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
-	I run into:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	^M
-	Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M
-	(gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \
-	  syscall pipe has returned
-	...
-
-	The current glibc on Tumbleweed is 2.35, which contains commit
-	"linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
-	is used instead of syscall pipe.
-
-	Fix this by detecting whether syscall pipe or pipe2 is used before running the
-	tests.
-
-	Tested on x86_64-linux, specifically on:
-	- openSUSE Tumbleweed (with glibc 2.35), and
-	- openSUSE Leap 15.3 (with glibc 2.31).
-
-	On openSUSE Tumbleweed + target board unix/-m32, this exposes:
-	...
-	(gdb) catch syscall pipe2^M
-	Unknown syscall name 'pipe2'.^M
-	...
-	which will be fixed in a folllow-up patch.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056
-
-2022-05-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Handle pipe2 syscall for amd64
-	When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed,
-	I run into:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	Process record and replay target doesn't support syscall number 293^M
-	Process record: failed to record execution log.^M
-	^M
-	Program stopped.^M
-	0x00007ffff7daabdb in pipe () from /lib64/libc.so.6^M
-	(gdb) FAIL: gdb.reverse/pipe-reverse.exp: continue to breakpoint: marker2
-	...
-
-	The current glibc on Tumbleweed is 2.35, which contains commit
-	"linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2
-	is used in stead of syscall pipe.
-
-	There is already support added for syscall pipe2 for aarch64 (which only has
-	syscall pipe2, not syscall pipe), so enable the same for amd64, by:
-	- adding amd64_sys_pipe2 in enum amd64_syscall
-	- translating amd64_sys_pipe2 to gdb_sys_pipe2 in amd64_canonicalize_syscall
-
-	Tested on x86_64-linux, specifically on:
-	- openSUSE Tumbleweed (with glibc 2.35), and
-	- openSUSE Leap 15.3 (with glibc 2.31).
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056
-
-2022-05-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.tui/scroll.exp with read1
-	When running test-case gdb.tui/scroll.exp, I get:
-	...
-	Box Dump (80 x 8) @ (0, 0):
-	    0 $17 = 16
-	    1 (gdb) p 17
-	    2 $18 = 17
-	    3 (gdb) p 18
-	    4 $19 = 18
-	    5 (gdb) p 19
-	    6 $20 = 19
-	    7 (gdb)
-	PASS: gdb.tui/scroll.exp: check cmd window in flip layout
-	...
-	but with check-read1 I get instead:
-	...
-	Box Dump (80 x 8) @ (0, 0):
-	    0 (gdb) 15
-	    1 (gdb) p 16
-	    2 $17 = 16
-	    3 (gdb) p 17
-	    4 $18 = 17
-	    5 (gdb) p 18
-	    6 $19 = 18
-	    7 (gdb) p 19
-	FAIL: gdb.tui/scroll.exp: check cmd window in flip layout
-	...
-
-	The "p 19" command is handled by Term::command, which sends the command and then
-	does Term::wait_for "^$gdb_prompt [string_to_regexp $cmd]", which:
-	- matches the line with "(gdb) p 19", and
-	- tries to match the following prompt "(gdb) "
-
-	The problem is that scrolling results in reissuing output before the "(gdb) p
-	19", and the second matching triggers on that.  Consequently, wait_for no
-	longer translates gdb output into screen actions, and the screen does not
-	reflect the result of "p 19".
-
-	Fix this by using a new proc wait_for_region_contents, which in contrast to
-	wait_for can handle a multi-line regexp.
-
-	Tested on x86_64-linux with make targets check and check-read1.
-
-2022-05-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/casts.exp with -m32
-	When running test-case gdb.cp/casts.exp with target board unix/-m32, I run
-	into:
-	...
-	(gdb) print (unsigned long long) &gd == gd_value^M
-	$31 = false^M
-	(gdb) FAIL: gdb.cp/casts.exp: print (unsigned long long) &gd == gd_value
-	...
-
-	With some additional printing, we can see in more detail why the comparison
-	fails:
-	...
-	(gdb) print /x &gd^M
-	$31 = 0xffffc5c8^M
-	(gdb) PASS: gdb.cp/casts.exp: print /x &gd
-	print /x (unsigned long long)&gd^M
-	$32 = 0xffffc5c8^M
-	(gdb) PASS: gdb.cp/casts.exp: print /x (unsigned long long)&gd
-	print /x gd_value^M
-	$33 = 0xffffffffffffc5c8^M
-	(gdb) PASS: gdb.cp/casts.exp: print /x gd_value
-	print (unsigned long long) &gd == gd_value^M
-	$34 = false^M
-	(gdb) FAIL: gdb.cp/casts.exp: print (unsigned long long) &gd == gd_value
-	...
-
-	The gd_value is set by this assignment:
-	...
-	  unsigned long long gd_value = (unsigned long long) &gd;
-	...
-
-	The problem here is directly casting from a pointer to a non-pointer-sized
-	integer.
-
-	Fix this by adding an intermediate cast to std::uintptr_t.
-
-	Tested on x86_64-linux with native and target board unix/-m32.
-
-2022-05-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle init errors in gdb.mi/user-selected-context-sync.exp
-	In OBS, on aarch64-linux, with a gdb 11.1 based package, I run into:
-	...
-	(gdb) builtin_spawn -pty^M
-	new-ui mi /dev/pts/5^M
-	New UI allocated^M
-	(gdb) =thread-group-added,id="i1"^M
-	(gdb) ERROR: MI channel failed
-	warning: Error detected on fd 11^M
-	thread 1.1^M
-	Unknown thread 1.1.^M
-	(gdb) UNRESOLVED: gdb.mi/user-selected-context-sync.exp: mode=non-stop: \
-	  test_cli_inferior: reset selection to thread 1.1
-	...
-	with many more UNRESOLVED following.
-
-	The ERROR is a common problem, filed as
-	https://sourceware.org/bugzilla/show_bug.cgi?id=28561 .
-
-	But the many UNRESOLVEDs are due to not checking whether the setup as done in
-	the test_setup function succeeds or not.
-
-	Fix this by:
-	- making test_setup return an error upon failure
-	- handling test_setup error at the call site
-	- adding a "setup done" pass/fail to be turned into an unresolved
-	  in case of error during setup.
-
-	Tested on x86_64-linux, by manually triggering the error in
-	mi_gdb_start_separate_mi_tty.
-
-2022-05-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/catch_ex_std.exp with remote-gdbserver-on-localhost
-	When running test-case gdb.ada/catch_ex_std.exp on target board
-	remote-gdbserver-on-localhost, I run into:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	[Inferior 1 (process 15656) exited with code 0177]^M
-	(gdb) FAIL: gdb.ada/catch_ex_std.exp: runto: run to main
-	Remote debugging from host ::1, port 49780^M
-	/home/vries/foo: error while loading shared libraries: libsome_package.so: \
-	  cannot open shared object file: No such file or directory^M
-	...
-
-	Fix this by adding the usual shared-library + remote-target helper
-	"gdb_load_shlib $sofile".
-
-	Tested on x86_64-linux with native and target board
-	remote-gdbserver-on-localhost.
-
-2022-05-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/fork-plus-threads.exp with check-readmore
-	When running test-case gdb.threads/fork-plus-threads.exp with check-readmore,
-	I run into:
-	...
-	[Inferior 11 (process 7029) exited normally]^M
-	[Inferior 1 (process 6956) exited normally]^M
-	FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: \
-	  inferior 1 exited (timeout)
-	...
-
-	The problem is that the regexp consuming the "Inferior exited normally"
-	messages:
-	- consumes more than one of those messages at a time, but
-	- counts only one of those messages.
-
-	Fix this by adopting a line-by-line approach, which deals with those messages
-	one at a time.
-
-	Tested on x86_64-linux with native, check-read1 and check-readmore.
-
-2022-05-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-07  Tom Tromey  <tom@tromey.com>
-
-	Fix "catch syscall"
-	Simon pointed out that some recent patches of mine broke "catch
-	syscall".  Apparently I forgot to finish the conversion of this code
-	when removing init_catchpoint.  This patch completes the conversion
-	and fixes the bug.
-
-2022-05-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/readline: fix extra 'quit' message problem
-	After these two commits:
-
-	  commit 4fb7bc4b147fd30b781ea2dad533956d0362295a
-	  Date:   Mon Mar 7 13:49:21 2022 +0000
-
-	      readline: back-port changes needed to properly detect EOF
-
-	  commit 91395d97d905c31ac38513e4aaedecb3b25e818f
-	  Date:   Tue Feb 15 17:28:03 2022 +0000
-
-	      gdb: handle bracketed-paste-mode and EOF correctly
-
-	It was observed that, if a previous command is selected at the
-	readline prompt using the up arrow key, then when the command is
-	accepted (by pressing return) an unexpected 'quit' message will be
-	printed by GDB.  Here's an example session:
-
-	  (gdb) p 123
-	  $1 = 123
-	  (gdb) p 123
-	  quit
-	  $2 = 123
-	  (gdb)
-
-	In this session the second 'p 123' was entered not by typing 'p 123',
-	but by pressing the up arrow key to select the previous command.  It
-	is important that the up arrow key is used, typing Ctrl-p will not
-	trigger the bug.
-
-	The problem here appears to be readline's EOF detection when handling
-	multi-character input sequences.  I have raised this issue on the
-	readline mailing list here:
-
-	  https://lists.gnu.org/archive/html/bug-readline/2022-04/msg00012.html
-
-	a solution has been proposed here:
-
-	  https://lists.gnu.org/archive/html/bug-readline/2022-04/msg00016.html
-
-	This patch includes a test for this issue as well as a back-port of
-	(the important bits of) readline commit:
-
-	  commit 2ef9cec8c48ab1ae3a16b1874a49bd1f58eaaca1
-	  Date:   Wed May 4 11:18:04 2022 -0400
-
-	      fix for setting RL_STATE_EOF in callback mode
-
-	That commit also includes some updates to the readline documentation
-	and tests that I have not included in this commit.
-
-	With this commit in place the unexpected 'quit' messages are resolved.
-
-2022-05-07  Alan Modra  <amodra@gmail.com>
-
-	Fix multiple ubsan warnings in i386-dis.c
-	Commit 39fb369834a3 "opcodes: Make i386-dis.c thread-safe" introduced
-	a number of casts to bfd_signed_vma that cause undefined behaviour
-	with a 32-bit libbfd.  Revert those changes.
-
-		* i386-dis.c (OP_E_memory): Do not cast disp to bfd_signed_vma
-		for negation.
-		(get32, get32s): Don't use bfd_signed_vma here.
-
-2022-05-07  Alan Modra  <amodra@gmail.com>
-
-	Re: Fix new linker testsuite failures due to rwx segment test problems
-	Fix it some more.
-
-	bfd/
-		* elfnn-loongarch.c: Remove commented out elf_backend_* defines.
-	ld/
-		* testsuite/ld-elf/elf.exp (target_defaults_to_execstack): Match
-		arm*.  Delete loongarch.
-
-2022-05-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-07  Carl Love  <cel@us.ibm.com>
-
-	PowerPC fix for gdb.server/sysroot.exp
-	On PowerPC, the stop in the printf function is of the form:
-
-	Breakpoint 2, 0x00007ffff7c6ab08 in printf@@GLIBC_2.17 () from /lib64/libc.so.6
-
-	On other architectures the output looks like:
-
-	Breakpoint 2, 0x0000007fb7ea29ac in printf () from /lib/aarch64-linux-gnu/libc.so.6
-
-	The following patch modifies the printf test by matchine any character
-	starting immediately after the printf.  The test now works for PowerPC
-	output as well as the output from other architectures.
-
-	The test has been run on a Power 10 system and and Intel x86_64 system.
-
-2022-05-06  Nick Clifton  <nickc@redhat.com>
-
-	Fix new linker testsuite failures due to rwx segment test problems
-
-2022-05-06  Tom Tromey  <tom@tromey.com>
-
-	Introduce catchpoint class
-	This introduces a catchpoint class that is used as the base class for
-	all catchpoints.  init_catchpoint is rewritten to be a constructor
-	instead.
-
-	This changes the hierarchy a little -- some catchpoints now inherit
-	from base_breakpoint whereas previously they did not.  This isn't a
-	problem, as long as re_set is redefined in catchpoint.
-
-2022-05-06  Tom Tromey  <tom@tromey.com>
-
-	Add initializers to tracepoint
-	This adds some initializers to tracepoint.  I think right now these
-	may not be needed, due to obscure rules about zero initialization.
-	However, this will change in the next patch, and anyway it is clearer
-	to be explicit.
-
-	Remove init_raw_breakpoint_without_location
-	This removes init_raw_breakpoint_without_location, replacing it with a
-	constructor on 'breakpoint' itself.  The subclasses and callers are
-	all updated.
-
-	Disable copying for breakpoint
-	It seems to me that breakpoint should use DISABLE_COPY_AND_ASSIGN.
-	This patch does this.
-
-	Add constructor to exception_catchpoint
-	This adds a constructor to exception_catchpoint and simplifies the
-	caller.
-
-	Add constructor to syscall_catchpoint
-	This adds a constructor to syscall_catchpoint and simplifies the
-	caller.
-
-	Add constructor to signal_catchpoint
-	This adds a constructor to signal_catchpoint and simplifies the
-	caller.
-
-	Add constructor to solib_catchpoint
-	This adds a constructor to solib_catchpoint and simplifies the caller.
-
-	Add constructor to fork_catchpoint
-	This adds a constructor to fork_catchpoint and simplifies the caller.
-
-	Remove unnecessary line from catch_exec_command_1
-	catch_exec_command_1 clears the new catchpoint's "exec_pathname"
-	field, but this is already done by virtue of calling "new".
-
-	Constify breakpoint::print_recreate
-	This constifies breakpoint::print_recreate.
-
-	Constify breakpoint::print_mention
-	This constifies breakpoint::print_mention.
-
-	Constify breakpoint::print_one
-	This constifies breakpoint::print_one.
-
-	Constify breakpoint::print_it
-	This constifies breakpoint::print_it.  Doing this pointed out some
-	code in ada-lang.c that can be simplified a little as well.
-
-	Move works_in_software_mode to watchpoint
-	works_in_software_mode is only useful for watchpoints.  This patch
-	moves it from breakpoint to watchpoint, and changes it to return bool.
-
-	Boolify breakpoint::explains_signal
-	This changes breakpoint::explains_signal to return bool.
-
-	Remove breakpoint::ops
-	The breakpoint::ops field is set but never used.  This removes it.
-
-	Change print_recreate_thread to a method
-	This changes print_recreate_thread to be a method on breakpoint.  This
-	function is only used as a helper by print_recreate methods, so I
-	thought this transformation made sense.
-
-2022-05-06  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: bp-permanent.exp, kill-after-signal fix
-	The break point after the stepi on Intel is the entry point of the user
-	signal handler function test_signal_handler.  The code at the break point
-	looks like:
-
-	     0x<hex address> <test_signal_handler>: endbr64
-
-	On PowerPC with a Linux 5.9 kernel or latter, the address where gdb stops
-	after the stepi is in the vdso code inserted by the kernel.  The code at the
-	breakpoint looks like:
-
-	  0x<hex address>  <__kernel_start_sigtramp_rt64>:	bctrl
-
-	This is different from other architectures.  As discussed below, recent
-	kernel changes involving the vdso for PowerPC have been made changes to the
-	signal handler code flow.  PowerPC is now stopping in function
-	__kernel_start_sigtramp_rt64.  PowerPC now requires an additional stepi to
-	reach the user signal handler unlike other architectures.
-
-	The bp-permanent.exp and kill-after-signal tests run fine on PowerPC with an
-	kernel that is older than Linux 5.9.
-
-	The PowerPC 64 signal handler was updated by the Linux kernel 5.9-rc1:
-
-	    commit id: 0138ba5783ae0dcc799ad401a1e8ac8333790df9
-	    powerpc/64/signal: Balance return predictor stack in signal trampoline
-
-	An additional change to the PowerPC 64 signal handler was made in Linux
-	kernel version 5.11-rc7 :
-
-	     commit id: 24321ac668e452a4942598533d267805f291fdc9
-	     powerpc/64/signal: Fix regression in __kernel_sigtramp_rt64() semantics
-
-	The first kernel change, puts code into the user space signal handler (in
-	the vdso) as a performance optimization to prevent the call/return stack
-	from getting out of balance.  The patch ensures that the entire
-	user/kernel/vdso cycle is balanced with the addition of the "brctl"
-	instruction.
-
-	The second patch, fixes the semantics of __kernel_sigtramp_rt64().  A new
-	symbol is introduced to serve as the jump target from the kernel to the
-	trampoline which now consists of two parts.
-
-	The above changes for PowerPC signal handler, causes gdb to stop in the
-	kernel code not the user signal handler as expected.  The kernel dispatches
-	to the vdso code which in turn calls into the signal handler.  PowerPC is
-	special in that the kernel is using a vdso instruction (bctrl) to enter the
-	signal handler.
-
-	I do not have access to a system with the first patch but not the second.  I did
-	test on Power 9 with the Linux 5.15.0-27-generic kernel.  Both tests fail on
-	this Power 9 system.  The two tests also fail on Power 10 with the Linux
-	5.14.0-70.9.1.el9_0.ppc64le kernel.
-
-	The following patch fixes the issue by checking if gdb stopped at "signal
-	handler called".  If gdb stopped there, the tests verifies gdb is in the kernel
-	function __kernel_start_sigtramp_rt64 then does an additional stepi to reach the
-	user signal handler.  With the patch below, the tests run without errors on both
-	the Power 9 and Power 10 systems with out any failures.
-
-2022-05-06  Alan Modra  <amodra@gmail.com>
-
-	bfd targmatch.h makefile rule
-	I hit this just now with a make -j build after touching config.bfd.
-	mv: cannot stat 'targmatch.new': No such file or directory
-	make[2]: *** [Makefile:2336: targmatch.h] Error 1
-	make[2]: *** Waiting for unfinished jobs....
-
-	Fix that by not removing the target of the rule, a practice that seems
-	likely to cause parallel running of the rule recipe.  The bug goes
-	back to 1997, the initial c0734708814c commit.
-
-		* Makefile.am (targmatch.h): rm the temp file, not targmatch.h.
-		* Makefile.in: Regenerate.
-
-2022-05-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/locexpr-data-member-location.exp with nopie
-	When running test-case gdb.dwarf2/locexpr-data-member-location.exp with
-	target board unix/-fno-PIE/-no-pie/-m32 I run into:
-	...
-	(gdb) step^M
-	26        return 0;^M
-	(gdb) FAIL: gdb.dwarf2/locexpr-data-member-location.exp: step into foo
-	...
-
-	The problem is that the test-case tries to mimic some gdb_compile_shlib
-	behaviour using:
-	...
-	set flags {additional_flags=-fpic debug}
-	get_func_info foo $flags
-	...
-	but this doesn't work with the target board setting, because we end up doing:
-	...
-	gcc locexpr-data-member-location-lib.c -fpic -g -lm -fno-PIE -no-pie -m32 \
-	  -o func_addr23029.x
-	...
-	while gdb_compile_shlib properly filters out the -fno-PIE -no-pie.
-
-	Consequently, the address for foo determined by get_func_info doesn't match
-	the actual address of foo.
-
-	Fix this by printing the address of foo using the result of gdb_compile_shlib.
-
-2022-05-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use gdb::function_view for gdbarch_iterate_over_objfiles_in_search_order callback
-	A rather straightforward patch to change an instance of callback +
-	void pointer to gdb::function_view, allowing pasing lambdas that
-	capture, and eliminating the need for the untyped pointer.
-
-	Change-Id: I73ed644e7849945265a2c763f79f5456695b0037
-
-2022-05-05  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: use $host instead $target
-	By mistake, $target was used instead of $host to configure the gprogng build.
-
-	gprofng/ChangeLog
-	2022-04-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29113
-		PR gprofng/29116
-		* configure.ac: Use $host instead $target.
-		* libcollector/configure.ac: Likewise.
-		* configure: Rebuild.
-		* libcollector/configure: Rebuild.
-
-2022-05-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make regcache's cooked_write_test selftest work with native-extended-gdbserver board
-	Running
-
-	    $ make check TESTS="gdb.gdb/unittest.exp" RUNTESTFLAGS="--target_board=native-extended-gdbserver"
-
-	I get some failures:
-
-	    Running selftest regcache::cooked_write_test::i386.^M
-	    Self test failed: target already pushed^M
-	    Running selftest regcache::cooked_write_test::i386:intel.^M
-	    Self test failed: target already pushed^M
-	    Running selftest regcache::cooked_write_test::i386:x64-32.^M
-	    Self test failed: target already pushed^M
-	    Running selftest regcache::cooked_write_test::i386:x64-32:intel.^M
-	    Self test failed: target already pushed^M
-	    Running selftest regcache::cooked_write_test::i386:x86-64.^M
-	    Self test failed: target already pushed^M
-	    Running selftest regcache::cooked_write_test::i386:x86-64:intel.^M
-	    Self test failed: target already pushed^M
-	    Running selftest regcache::cooked_write_test::i8086.^M
-	    Self test failed: target already pushed^M
-
-	This is because the native-extended-gdbserver automatically connects GDB
-	to a GDBserver on startup, and therefore pushes a remote target on the
-	initial inferior.  cooked_write_test is currently written in a way that
-	errors out if the current inferior has a process_stratum_target pushed.
-
-	Rewrite it to use scoped_mock_context, so it doesn't depend on the
-	current inferior (the current one upon entering the function).
-
-	Change-Id: I0357f989eacbdecc4bf88b043754451b476052ad
-
-2022-05-05  Luis Machado  <luis.machado@arm.com>
-
-	Move TILE-Gx files to TARGET64_LIBOPCODES_CFILES
-	TILE-Gx is a 64-bit core, so we should include those files in the
-	TARGET64_LIBOPCODES_CFILES as opposed to TARGET32_LIBOPCODES_CFILES.
-
-	Don't define ARCH_cris for BFD64
-	I believe it is a mistake to define ARCH_cris when BFD64 is defined. It is
-	a 32-bit architecture, so should be placed outside of the BFD64 block.
-
-2022-05-05  Xi Ruoyao  <xry111@mengyan1223.wang>
-
-	loongarch: Don't check ABI flags if no code section
-	Various packages (glib and gtk4 for example) produces data-only objects
-	using `ld -r -b binary` or `objcopy`, with no elf header flags set.  But
-	these files also have no code sections, so they should be compatible
-	with all ABIs.
-
-	bfd/
-		* elfnn-loongarch.c (elfNN_loongarch_merge_private_bfd_data):
-		Skip ABI checks if the input has no code sections.
-
-	Reported-by: Wu Xiaotian <yetist@gmail.com>
-	Suggested-by: Wang Xuerui <i@xen0n.name>
-
-2022-05-05  Andreas Krebbel  <krebbel@linux.ibm.com>
-
-	IBM zSystems: mgrk, mg first operand requires register pair
-	opcodes/
-
-		* s390-opc.c (INSTR_RRF_R0RER): New instruction type.
-		(MASK_RRF_R0RER): Define mask for new instruction type.
-		* s390-opc.txt: Use RRF_R0RER for mgrk and RXY_RERRD for mg.
-
-2022-05-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Check NULL pointer before setting ref_real
-		PR ld/29086
-		* linker.c (bfd_wrapped_link_hash_lookup): Check NULL pointer
-		before setting ref_real.
-
-2022-05-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	LTO: Handle __real_SYM reference in IR
-	When an IR symbol SYM is referenced in IR via __real_SYM, its resolution
-	should be LDPR_PREVAILING_DEF, not PREVAILING_DEF_IRONLY, since LTO
-	doesn't know that __real_SYM should be resolved by SYM.
-
-	bfd/
-
-		PR ld/29086
-		* linker.c (bfd_wrapped_link_hash_lookup): Mark SYM is referenced
-		via __real_SYM.
-
-	include/
-
-		PR ld/29086
-		* bfdlink.h (bfd_link_hash_entry): Add ref_real.
-
-	ld/
-
-		PR ld/29086
-		* plugin.c (get_symbols): Resolve SYM definition to
-		LDPR_PREVAILING_DEF for __real_SYM reference.
-		* testsuite/ld-plugin/lto.exp: Run PR ld/29086 test.
-		* testsuite/ld-plugin/pr29086.c: New file.
-
-2022-05-04  Alan Modra  <amodra@gmail.com>
-
-	cris bfd config
-	cris support will be built into a 32-bit bfd if using --enable-targets=all
-	on a 32-bit host, so we may as well make targmatch.h include cris.
-
-		* config.bfd (cris): Remove #idef BFD64.
-
-2022-05-04  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 check_relocs
-	Tidy the dynamic reloc handling code in check_relocs, removing
-	leftover comments and code from when check_relocs was called as each
-	object file was read in.
-
-		* elf64-ppc.c (ppc64_elf_check_relocs): Tidy dynamic reloc
-		handling code.
-		(dec_dynrel_count): Do the same here.
-
-2022-05-04  Tom Tromey  <tromey@adacore.com>
-
-	Fix crash when creating index from index
-	My patches yesterday to unify the DWARF index base classes had a bug
-	-- namely, I did the wholesale dynamic_cast-to-static_cast too hastily
-	and introduced a crash.  This can be seen by trying to add an index to
-	a file that has an index, or by running a test like gdb-index-cxx.exp
-	using the cc-with-debug-names.exp target board.
-
-	This patch fixes the crash by introducing a new virtual method and
-	removing some of the static casts.
-
-2022-05-04  Luis Machado  <luis.machado@arm.com>
-
-	Fix build failure for aarch64 gdbserver
-	We're missing an argument.
-
-2022-05-04  Mark Wielaard  <mark@klomp.org>
-
-	gdb: Workaround stringop-overread warning in debuginfod-support.c on s390x
-	For some reason g++ 11.2.1 on s390x produces a spurious warning for
-	stringop-overread in debuginfod_is_enabled for url_view. Add a new
-	DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD macro to suppress this warning.
-
-	include/ChangeLog:
-
-		* diagnostics.h (DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD): New
-		macro.
-
-	gdb/ChangeLog:
-
-		* debuginfod-support.c (debuginfod_is_enabled): Use
-		DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD on s390x.
-
-2022-05-04  Pedro Alves  <pedro@palves.net>
-
-	Fix GDBserver Aarch64 Linux regression
-	Luis noticed that the recent changes to gdbserver to make it track
-	process and threads independently regressed a few gdb.multi/*.exp
-	tests for aarch64-linux.
-
-	We started seeing the following internal error for
-	gdb.multi/multi-target-continue.exp for example:
-
-	 Starting program: binutils-gdb/gdb/testsuite/outputs/gdb.multi/multi-target-continue/multi-target-continue ^M
-	 Error in re-setting breakpoint 2: Remote connection closed^M
-	 ../../../repos/binutils-gdb/gdb/thread.c:85: internal-error: inferior_thread: Assertion `current_thread_ != nullptr' failed.^M
-	 A problem internal to GDB has been detected,^M
-	 further debugging may prove unreliable.
-
-	A backtrace looks like:
-
-	 #0  thread_regcache_data (thread=thread@entry=0x0) at ../../../repos/binutils-gdb/gdbserver/inferiors.cc:120
-	 #1  0x0000aaaaaaabf0e8 in get_thread_regcache (thread=0x0, fetch=fetch@entry=0) at ../../../repos/binutils-gdb/gdbserver/regcache.cc:31
-	 #2  0x0000aaaaaaad785c in is_64bit_tdesc () at ../../../repos/binutils-gdb/gdbserver/linux-aarch64-low.cc:194
-	 #3  0x0000aaaaaaad8a48 in aarch64_target::sw_breakpoint_from_kind (this=<optimized out>, kind=4, size=0xffffffffef04) at ../../../repos/binutils-gdb/gdbserver/linux-aarch64-low.cc:3226
-	 #4  0x0000aaaaaaabe220 in bp_size (bp=0xaaaaaab6f3d0) at ../../../repos/binutils-gdb/gdbserver/mem-break.cc:226
-	 #5  check_mem_read (mem_addr=187649984471104, buf=buf@entry=0xaaaaaab625d0 "\006", mem_len=mem_len@entry=56) at ../../../repos/binutils-gdb/gdbserver/mem-break.cc:1862
-	 #6  0x0000aaaaaaacc660 in read_inferior_memory (memaddr=<optimized out>, myaddr=0xaaaaaab625d0 "\006", len=56) at ../../../repos/binutils-gdb/gdbserver/target.cc:93
-	 #7  0x0000aaaaaaac3d9c in gdb_read_memory (len=56, myaddr=0xaaaaaab625d0 "\006", memaddr=187649984471104) at ../../../repos/binutils-gdb/gdbserver/server.cc:1071
-	 #8  gdb_read_memory (memaddr=187649984471104, myaddr=0xaaaaaab625d0 "\006", len=56) at ../../../repos/binutils-gdb/gdbserver/server.cc:1048
-	 #9  0x0000aaaaaaac82a4 in process_serial_event () at ../../../repos/binutils-gdb/gdbserver/server.cc:4307
-	 #10 handle_serial_event (err=<optimized out>, client_data=<optimized out>) at ../../../repos/binutils-gdb/gdbserver/server.cc:4520
-	 #11 0x0000aaaaaaafbcd0 in gdb_wait_for_event (block=block@entry=1) at ../../../repos/binutils-gdb/gdbsupport/event-loop.cc:700
-	 #12 0x0000aaaaaaafc0b0 in gdb_wait_for_event (block=1) at ../../../repos/binutils-gdb/gdbsupport/event-loop.cc:596
-	 #13 gdb_do_one_event () at ../../../repos/binutils-gdb/gdbsupport/event-loop.cc:237
-	 #14 0x0000aaaaaaacacb0 in start_event_loop () at ../../../repos/binutils-gdb/gdbserver/server.cc:3518
-	 #15 captured_main (argc=4, argv=<optimized out>) at ../../../repos/binutils-gdb/gdbserver/server.cc:3998
-	 #16 0x0000aaaaaaab66dc in main (argc=<optimized out>, argv=<optimized out>) at ../../../repos/binutils-gdb/gdbserver/server.cc:4084
-
-	This sequence of functions is invoked due to a series of conditions:
-
-	 1 - The probe-based breakpoint mechanism failed (for some reason) so ...
-
-	 2 - ... gdbserver has to know what type of architecture it is dealing
-	     with so it can pick the right breakpoint kind, so it wants to
-	     check if we have a 64-bit target.
-
-	 3 - To determine the size of a register, we currently fetch the
-	     current thread's register cache, and the current thread pointer
-	     is now nullptr.
-
-	In #3, the current thread is nullptr because gdb_read_memory clears it
-	on purpose, via set_desired_process, exactly to expose code relying on
-	the current thread when it shouldn't.  It was always possible to end
-	up in this situation (when the current thread exits), but it was
-	harder to reproduce before.
-
-	This commit fixes it by tweaking is_64bit_tdesc to look at the current
-	process's tdesc instead of the current thread's tdesc.
-
-	Note that the thread's tdesc is itself filled from the process's
-	tdesc, so this should be equivalent:
-
-	 struct regcache *
-	 get_thread_regcache (struct thread_info *thread, int fetch)
-	 {
-	   struct regcache *regcache;
-
-	   regcache = thread_regcache_data (thread);
-
-	 ...
-	   if (regcache == NULL)
-	     {
-	       struct process_info *proc = get_thread_process (thread);
-
-	       gdb_assert (proc->tdesc != NULL);
-
-	       regcache = new_register_cache (proc->tdesc);
-	       set_thread_regcache_data (thread, regcache);
-	     }
-	 ...
-
-	Change-Id: Ibc809d7345e70a2f058b522bdc5cdbdca97e2cdc
-
-2022-05-04  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/remote: send qSymbol to all inferiors on startup
-	start_remote_1 calls remote_check_symbols after things are set up to
-	give the remote side a chance to look up symbols.  One call to
-	remote_check_symbols sets the "general thread", if needed, and sends one
-	qSymbol packet.  However, a remote target could have more than one
-	process on initial connection, and this would send a qSymbol for only
-	one of these processes.
-
-	Change it to iterate on all the target's inferiors and send a qSymbol
-	packet for each one.
-
-	I tested this by changing gdbserver to spawn two processes on startup:
-
-	    diff --git a/gdbserver/server.cc b/gdbserver/server.cc
-	    index 33c42714e72..9b682e9f85f 100644
-	    --- a/gdbserver/server.cc
-	    +++ b/gdbserver/server.cc
-	    @@ -3939,6 +3939,7 @@ captured_main (int argc, char *argv[])
-
-	           /* Wait till we are at first instruction in program.  */
-	           target_create_inferior (program_path.get (), program_args);
-	    +      target_create_inferior (program_path.get (), program_args);
-
-	           /* We are now (hopefully) stopped at the first instruction of
-	             the target process.  This assumes that the target process was
-
-	Instead of hacking GDBserver, it should also be possible to test this by
-	starting manually two inferiors on an "extended-remote" connection,
-	disconnecting from GDBserver (with the disconnect command), and
-	re-connecting.
-
-	I was able to see qSymbol being sent for each inferior:
-
-	      [remote] Sending packet: $Hgp828dc.828dc#1f
-	      [remote] Packet received: OK
-	      [remote] Sending packet: $qSymbol::#5b
-	      [remote] Packet received: qSymbol:6764625f6167656e745f6764625f74705f686561705f627566666572
-	      [remote] Sending packet: $qSymbol::6764625f6167656e745f6764625f74705f686561705f627566666572#1e
-	      [remote] Packet received: qSymbol:6e70746c5f76657273696f6e
-	      [remote] Sending packet: $qSymbol::6e70746c5f76657273696f6e#4d
-	      [remote] Packet received: OK
-	      [remote] Sending packet: $Hgp828dd.828dd#21
-	      [remote] Packet received: OK
-	      [remote] Sending packet: $qSymbol::#5b
-	      [remote] Packet received: qSymbol:6764625f6167656e745f6764625f74705f686561705f627566666572
-	      [remote] Sending packet: $qSymbol::6764625f6167656e745f6764625f74705f686561705f627566666572#1e
-	      [remote] Packet received: qSymbol:6e70746c5f76657273696f6e
-	      [remote] Sending packet: $qSymbol::6e70746c5f76657273696f6e#4d
-	      [remote] Packet received: OK
-
-	Note that there would probably be more work to be done to fully support
-	this scenario, more things that need to be done for each discovered
-	inferior instead of just for one.
-
-	Change-Id: I21c4ecf6367391e2e389b560f0b4bd906cf6472f
-
-2022-05-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/remote: iterate on pspace inferiors in remote_new_objfile
-	Commit 152a17495663 ("gdb: prune inferiors at end of
-	fetch_inferior_event, fix intermittent failure of
-	gdb.threads/fork-plus-threads.exp") broke some tests with the
-	native-gdbserver board, such as:
-
-	    (gdb) PASS: gdb.base/step-over-syscall.exp: detach-on-fork=off: follow-fork=child: break cond on target : vfork: break marker
-	    continue^M
-	    Continuing.^M
-	    terminate called after throwing an instance of 'gdb_exception_error'^M
-
-	I can manually reproduce the issue by running (just the commands that
-	the test does as a one liner):
-
-	    $ ./gdb -q --data-directory=data-directory \
-	          testsuite/outputs/gdb.base/step-over-syscall/step-over-vfork \
-		  -ex "tar rem | ../gdbserver/gdbserver - testsuite/outputs/gdb.base/step-over-syscall/step-over-vfork" \
-		  -ex "b main" \
-		  -ex c \
-		  -ex "d 1" \
-		  -ex "set displaced-stepping off" \
-		  -ex "b *0x7ffff7d7ac5a if main == 0" \
-		  -ex "set detach-on-fork off" \
-		  -ex "set follow-fork-mode child" \
-		  -ex c \
-		  -ex "inferior 1" \
-		  -ex "b marker" \
-		  -ex c
-
-	... where 0x7ffff7d7ac5a is the exact address of the vfork syscall
-	(which can be found by looking at gdb.log).
-
-	The important part of the above is that a vfork syscall creates inferior
-	2, then inferior 2 executes until exit, then we switch back to inferior
-	1 and try to resume it.
-
-	The uncaught exception happens here:
-
-	    #4  0x00005596969d81a9 in error (fmt=0x559692da9e40 "Cannot execute this command while the target is running.\nUse the \"interrupt\" command to stop the target\nand then try again.")
-	        at /home/simark/src/binutils-gdb/gdbsupport/errors.cc:43
-	    #5  0x0000559695af6f66 in remote_target::putpkt_binary (this=0x617000038080, buf=0x559692da4380 "qSymbol::", cnt=9) at /home/simark/src/binutils-gdb/gdb/remote.c:9560
-	    #6  0x0000559695af6aaf in remote_target::putpkt (this=0x617000038080, buf=0x559692da4380 "qSymbol::") at /home/simark/src/binutils-gdb/gdb/remote.c:9518
-	    #7  0x0000559695ab50dc in remote_target::remote_check_symbols (this=0x617000038080) at /home/simark/src/binutils-gdb/gdb/remote.c:5141
-	    #8  0x0000559695b3cccf in remote_new_objfile (objfile=0x0) at /home/simark/src/binutils-gdb/gdb/remote.c:14600
-	    #9  0x0000559693bc52a9 in std::__invoke_impl<void, void (*&)(objfile*), objfile*> (__f=@0x61b0000167f8: 0x559695b3cb1d <remote_new_objfile(objfile*)>) at /usr/include/c++/11.2.0/bits/invoke.h:61
-	    #10 0x0000559693bb2848 in std::__invoke_r<void, void (*&)(objfile*), objfile*> (__fn=@0x61b0000167f8: 0x559695b3cb1d <remote_new_objfile(objfile*)>) at /usr/include/c++/11.2.0/bits/invoke.h:111
-	    #11 0x0000559693b8dddf in std::_Function_handler<void (objfile*), void (*)(objfile*)>::_M_invoke(std::_Any_data const&, objfile*&&) (__functor=..., __args#0=@0x7ffe0bae0590: 0x0) at /usr/include/c++/11.2.0/bits/std_function.h:291
-	    #12 0x00005596956374b2 in std::function<void (objfile*)>::operator()(objfile*) const (this=0x61b0000167f8, __args#0=0x0) at /usr/include/c++/11.2.0/bits/std_function.h:560
-	    #13 0x0000559695633c64 in gdb::observers::observable<objfile*>::notify (this=0x55969ef5c480 <gdb::observers::new_objfile>, args#0=0x0) at /home/simark/src/binutils-gdb/gdb/../gdbsupport/observable.h:150
-	    #14 0x0000559695df6cc2 in clear_symtab_users (add_flags=...) at /home/simark/src/binutils-gdb/gdb/symfile.c:2873
-	    #15 0x000055969574c263 in program_space::~program_space (this=0x6120000c8a40, __in_chrg=<optimized out>) at /home/simark/src/binutils-gdb/gdb/progspace.c:154
-	    #16 0x0000559694fc086b in delete_inferior (inf=0x61700003bf80) at /home/simark/src/binutils-gdb/gdb/inferior.c:205
-	    #17 0x0000559694fc341f in prune_inferiors () at /home/simark/src/binutils-gdb/gdb/inferior.c:390
-	    #18 0x0000559695017ada in fetch_inferior_event () at /home/simark/src/binutils-gdb/gdb/infrun.c:4293
-	    #19 0x0000559694f629e6 in inferior_event_handler (event_type=INF_REG_EVENT) at /home/simark/src/binutils-gdb/gdb/inf-loop.c:41
-	    #20 0x0000559695b3b0e3 in remote_async_serial_handler (scb=0x6250001ef100, context=0x6170000380a8) at /home/simark/src/binutils-gdb/gdb/remote.c:14466
-	    #21 0x0000559695c59eb7 in run_async_handler_and_reschedule (scb=0x6250001ef100) at /home/simark/src/binutils-gdb/gdb/ser-base.c:138
-	    #22 0x0000559695c5a42a in fd_event (error=0, context=0x6250001ef100) at /home/simark/src/binutils-gdb/gdb/ser-base.c:189
-	    #23 0x00005596969d9ebf in handle_file_event (file_ptr=0x60700005af40, ready_mask=1) at /home/simark/src/binutils-gdb/gdbsupport/event-loop.cc:574
-	    #24 0x00005596969da7fa in gdb_wait_for_event (block=0) at /home/simark/src/binutils-gdb/gdbsupport/event-loop.cc:700
-	    #25 0x00005596969d8539 in gdb_do_one_event () at /home/simark/src/binutils-gdb/gdbsupport/event-loop.cc:212
-
-	If I enable "set debug infrun" just before the last continue, we see:
-
-	    (gdb) continue
-	    Continuing.
-	    [infrun] clear_proceed_status_thread: 965604.965604.0
-	    [infrun] proceed: enter
-	      [infrun] proceed: addr=0xffffffffffffffff, signal=GDB_SIGNAL_DEFAULT
-	      [infrun] scoped_disable_commit_resumed: reason=proceeding
-	      [infrun] start_step_over: enter
-	        [infrun] start_step_over: stealing global queue of threads to step, length = 0
-	        [infrun] operator(): step-over queue now empty
-	      [infrun] start_step_over: exit
-	      [infrun] resume_1: step=0, signal=GDB_SIGNAL_0, trap_expected=0, current thread [965604.965604.0] at 0x7ffff7d7ac5c
-	      [infrun] do_target_resume: resume_ptid=965604.0.0, step=0, sig=GDB_SIGNAL_0
-	      [infrun] prepare_to_wait: prepare_to_wait
-	      [infrun] reset: reason=proceeding
-	      [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target remote
-	    [infrun] proceed: exit
-	    [infrun] fetch_inferior_event: enter
-	      [infrun] scoped_disable_commit_resumed: reason=handling event
-	      [infrun] do_target_wait: Found 2 inferiors, starting at #1
-	      [infrun] random_pending_event_thread: None found.
-	      [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	      [infrun] print_target_wait_results:   965604.965604.0 [Thread 965604.965604],
-	      [infrun] print_target_wait_results:   status->kind = VFORK_DONE
-	      [infrun] handle_inferior_event: status->kind = VFORK_DONE
-	      [infrun] context_switch: Switching context from 0.0.0 to 965604.965604.0
-	      [infrun] handle_vfork_done: not waiting for a vfork-done event
-	      [infrun] start_step_over: enter
-	        [infrun] start_step_over: stealing global queue of threads to step, length = 0
-	        [infrun] operator(): step-over queue now empty
-	      [infrun] start_step_over: exit
-	      [infrun] resume_1: step=0, signal=GDB_SIGNAL_0, trap_expected=0, current thread [965604.965604.0] at 0x7ffff7d7ac5c
-	      [infrun] do_target_resume: resume_ptid=965604.0.0, step=0, sig=GDB_SIGNAL_0
-	      [infrun] prepare_to_wait: prepare_to_wait
-	      [infrun] reset: reason=handling event
-	      [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target remote
-	    terminate called after throwing an instance of 'gdb_exception_error'
-
-	What happens is:
-
-	 - After doing the "continue" on inferior 1, the remote target gives us
-	   a VFORK_DONE event.  The core ignores it and resumes inferior 1.
-	 - Since prune_inferiors is now called after each handled event, in
-	   fetch_inferior_event, it is called after we handled that VFORK_DONE
-	   event and resumed inferior 1.
-	 - Inferior 2 is pruned, which (see backtrace above) causes its program
-	   space to be deleted, which clears the symtabs for that program space,
-	   which calls the new_objfile observable and remote_new_objfile
-	   observer (with a nullptr objfile, to indicate that the previously
-	   loaded symbols have been discarded), which calls
-	   remote_check_symbols.
-
-	remote_check_symbols is the function that sends the qSymbol packet, to
-	let the remote side ask for symbol addresses.  The problem is that the
-	remote target is working in all-stop / sync mode and is currently
-	resumed.  It has sent a vCont packet to resume the target and is waiting
-	for a stop reply.  It can't send any packets in the mean time.  That
-	causes the exception to be thrown.
-
-	This wasn't a problem before, when prune_inferiors was called in
-	normal_stop, because it was always called at a time the target was not
-	resumed.
-
-	An important observation here is that the new_objfile observable is
-	invoked for a change in inferior 2's program space (inferior 2's program
-	space is the current program space).  Inferior 2 isn't bound to any
-	process on the remote side (it has exited, that's why it's being
-	pruned).  It doesn't make sense to try to send a qSymbol packet for a
-	process that doesn't exist on the remote side.  remote_check_symbols
-	actually attempts to avoid that:
-
-	   /* The remote side has no concept of inferiors that aren't running
-	     yet, it only knows about running processes.  If we're connected
-	     but our current inferior is not running, we should not invite the
-	     remote target to request symbol lookups related to its
-	     (unrelated) current process.  */
-	  if (!target_has_execution ())
-	    return;
-
-	The problem here is that while inferior 2's program space is the current
-	program space, inferior 1 is the current inferior.  So the check above
-	passes, since inferior has execution.  We therefore try to send a
-	qSymbol packet for inferior 1 in reaction to a change in inferior 2's
-	program space, that's wrong.
-
-	This exposes a conceptual flaw in remote_new_objfile.  The "new_objfile"
-	event concerns a specific program space, which can concern multiple
-	inferiors, as inferiors can share a program space.  We shouldn't
-	consider the current inferior at all, but instead all inferiors bound to
-	the affected program space.  Especially since the current inferior can
-	be unrelated to the current program space at that point.
-
-	To be clear, we are in this state because ~program_space sets itself as
-	the current program space, but there is no more inferior having that
-	program space to switch to, inferior 2 has already been unlinked.
-
-	To fix this, make remote_new_objfile iterate on all inferiors bound to
-	the affected program space.  Remove the target_has_execution check from
-	remote_check_symbols, replace it with an assert.  All callers must
-	ensure that the current inferior has execution before calling it.
-
-	Change-Id: Ica643145bcc03115248290fd310cadab8ec8371c
-
-2022-05-04  Jan Beulich  <jbeulich@suse.com>
-
-	Dwarf: rename yet another instance of "index"
-	As before, on sufficiently old glibc this conflicts with a global
-	identifier in the library headers. While there also zap the unusual
-	padding by blanks.
-
-2022-05-04  Martin Liska  <mliska@suse.cz>
-
-	LTO plugin: sync header file with GCC
-	include/ChangeLog:
-
-		* plugin-api.h (enum ld_plugin_tag): Sync with GCC.
-
-2022-05-04  Alan Modra  <amodra@gmail.com>
-
-	PowerPC32 treatment of absolute symbols
-	As already done for PowerPC64, fix dynamic relocs for absolute symbols.
-	The patch also tidies the dynamic reloc handling code in check_relocs,
-	removing leftover comments and code from when check_relocs was called
-	as each object file was read in.
-
-	bfd/
-		* elf32-ppc.c (ppc_elf_check_relocs): Set isym and ifunc earlier.
-		Rearrange tests for dynamic relocs, handling absolute symbols.
-		(allocate_dynrelocs): Don't allocate dynamic relocs for locally
-		defined absolute symbols.
-		(ppc_elf_size_dynamic_sections): Similarly.
-		(ppc_elf_relocate_section): Similarly.
-	ld/
-		* testsuite/ld-powerpc/abs32-pie.d,
-		* testsuite/ld-powerpc/abs32-pie.r,
-		* testsuite/ld-powerpc/abs32-reloc.s,
-		* testsuite/ld-powerpc/abs32-shared.d,
-		* testsuite/ld-powerpc/abs32-shared.r,
-		* testsuite/ld-powerpc/abs32-static.d,
-		* testsuite/ld-powerpc/abs32-static.r: New tests.
-		* testsuite/ld-powerpc/powerpc.exp: Run them.
-
-2022-05-04  John Baldwin  <jhb@FreeBSD.org>
-
-	gdbserver: Fix build after adding tls feature to arm tdesc.
-
-2022-05-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-04  John Baldwin  <jhb@FreeBSD.org>
-
-	NEWS: Add a note for TLS support on FreeBSD/arm and FreeBSD/Aarch64.
-
-	Read the tpidr register from NT_ARM_TLS on Linux.
-
-	gdbserver: Read the tpidr register from NT_ARM_TLS on Linux.
-
-	Read the tpidr register from NT_ARM_TLS core dump notes on Linux Aarch64.
-
-	Fetch the NT_ARM_TLS register set for native FreeBSD/Aarch64 processes.
-	This permits resolving TLS variables.
-
-	Support TLS variables on FreeBSD/Aarch64.
-	Derive the pointer to the DTV array from the tpidr register.
-
-	Read the tpidr register from NT_ARM_TLS core dump notes on FreeBSD/Aarch64.
-
-	Add an aarch64-tls feature which includes the tpidr register.
-
-	Fetch the NT_ARM_TLS register set for native FreeBSD/arm processes.
-	This permits resolving TLS variables.
-
-	Support TLS variables on FreeBSD/arm.
-	Derive the pointer to the DTV array from the tpidruro register.
-
-	Read the tpidruro register from NT_ARM_TLS core dump notes on FreeBSD/arm.
-
-	Add an arm-tls feature which includes the tpidruro register from CP15.
-
-	fbsd-nat: Add helper routines for register sets using PT_[G]SETREGSET.
-	FreeBSD's kernel has recently added PT_GETREGSET and PT_SETREGSET
-	operations to fetch a register set named by an ELF note type.  These
-	helper routines provide helpers to check for a register set's
-	existence, fetch registers for a register set, and store registers to
-	a register set.
-
-2022-05-03  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Regenerate aclocal.m4 with automake 1.15.1
-		* aclocal.m4: Regenerate with automake 1.15.1.
-
-2022-05-03  Pedro Alves  <pedro@palves.net>
-
-	gdbserver: track current process as well as current thread
-	The recent commit 421490af33bf ("gdbserver/linux: Access memory even
-	if threads are running") caused a regression in
-	gdb.threads/access-mem-running-thread-exit.exp with gdbserver, which I
-	somehow missed.  Like so:
-
-	 (gdb) print global_var
-	 Cannot access memory at address 0x555555558010
-	 (gdb) FAIL: gdb.threads/access-mem-running-thread-exit.exp: non-stop: access mem (print global_var after writing, inf=2, iter=1)
-
-	The problem starts with GDB telling GDBserver to select a thread, via
-	the Hg packet, which GDBserver complies with, then that thread exits,
-	and GDB, without knowing the thread is gone, tries to write to memory,
-	through the context of the previously selected Hg thread.
-
-	GDBserver's GDB-facing memory access routines, gdb_read_memory and
-	gdb_write_memory, call set_desired_thread to make GDBserver re-select
-	the thread that GDB has selected with the Hg packet.  Since the thread
-	is gone, set_desired_thread returns false, and the memory access
-	fails.
-
-	Now, to access memory, it doesn't really matter which thread is
-	selected.  All we should need is the target process.  Even if the
-	thread that GDB previously selected is gone, and GDB does not yet know
-	about that exit, it shouldn't matter, GDBserver should still know
-	which process that thread belonged to.
-
-	Fix this by making GDBserver track the current process separately,
-	like GDB also does.  Add a new set_desired_process routine that is
-	similar to set_desired_thread, but just sets the current process,
-	leaving the current thread as NULL.  Use it in the GDB-facing memory
-	read and write routines, to avoid failing if the selected thread is
-	gone, but the process is still around.
-
-	Change-Id: I4ff97cb6f42558efbed224b30d5c71f6112d44cd
-
-2022-05-03  Pedro Alves  <pedro@palves.net>
-
-	Fix gdb.threads/access-mem-running-thread-exit.exp w/ native-extended-gdbserver
-	When testing gdb.threads/access-mem-running-thread-exit.exp with
-	--target_board=native-extended-gdbserver, we get:
-
-	  Running gdb.threads/access-mem-running-thread-exit.exp ...
-	  FAIL: gdb.threads/access-mem-running-thread-exit.exp: non-stop: second inferior: runto: run to main
-	  WARNING: Timed out waiting for EOF in server after monitor exit
-
-			  === gdb Summary ===
-
-	  # of expected passes            3
-	  # of unexpected failures        1
-	  # of unsupported tests          1
-
-	The problem is that the testcase spawns a second inferior with
-	-no-connection, and then runto_main does "run", which fails like so:
-
-	 (gdb) run
-	 Don't know how to run.  Try "help target".
-	 (gdb) FAIL: gdb.threads/access-mem-running-thread-exit.exp: non-stop: second inferior: runto: run to main
-
-	That "run" above failed because native-extended-gdbserver forces "set
-	auto-connect-native-target off", to prevent testcases from mistakenly
-	running programs with the native target, which would exactly be the
-	case here.
-
-	Fix this by letting the second inferior share the first inferior's
-	connection everywhere except on targets that do reload on run (e.g.,
-	--target_board=native-gdbserver).
-
-	Change-Id: Ib57105a238cbc69c57220e71261219fa55d329ed
-
-2022-05-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add some additional thread status debug output
-	While working on this patch:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-January/185109.html
-
-	I found it really useful to print the executing/resumed status of all
-	threads (or all threads in a particular inferior) at various
-	places (e.g. when a new inferior is started, when GDB attaches, etc).
-
-	This debug was originally part of the above patch, but I wanted to
-	rewrite this as a separate patch and move the code into a new function
-	in infrun.h, which is what this patch does.
-
-	Unless 'set debug infrun on' is in effect, then there should be no
-	user visible changes after this commit.
-
-2022-05-03  Nick Clifton  <nickc@redhat.com>
-
-	Add a linker warning when creating potentially dangerous executable segments.  Add tests, options to disabke and configure switches to choose defaults.
-
-	Fix potential arithmetic overflow in the linker's plugin handling code.
-		PR 29101
-		* libdep_plugin.c (get_libdeps): Check for overflow when computing
-		amount of memory to allocate.
-
-2022-05-03  Andrew Burgess  <aburgess@redhat.com>
-
-	objdump: fix styled printing of addresses
-	Previous work to add styled disassembler output missed a case in
-	objdump_print_addr, which is fixed in this commit.
-
-2022-05-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: small cleanup in mi-break-qualified.exp
-	It is not necessary to pass an empty string to mi_gdb_start, passing
-	the empty string is equivalent to passing no arguments, which is what
-	we do everywhere else (that we don't need to specify an actual
-	argument).
-
-	The only place we use 'mi_gdb_start ""' is in
-	gdb.mi/mi-break-qualified.exp, so in this commit I just replace that
-	with a call to 'mi_gdb_start' - just for consistency.
-
-	There should be no change in what is tested after this commit.
-
-2022-05-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: change mi_gdb_start to take a list of flags
-	After this previous commit I was thinking about the API of
-	mi_gdb_start.  I felt that the idea of passing flags as separate
-	arguments and using 'args' to gather these into a list, though clever,
-	was not an intuitive API.
-
-	In this commit I modify mi_gdb_start so that it expects a single
-	argument, which should be a list of flags.  Thus, where we previously
-	would have said:
-
-	  mi_gdb_start separate-mi-tty separate-inferior-tty
-
-	We would now say:
-
-	  mi_gdb_start { separate-mi-tty separate-inferior-tty }
-
-	However, it turns out we never actually call mi_gdb_start passing two
-	arguments in this way at all.  We do in some places do this:
-
-	  mi_gdb_start separate-inferior-tty
-
-	But that's fine, a single string like this works equally well as a
-	single item list, so this will not need updating.
-
-	There is also one place where we do this:
-
-	  eval mi_gdb_start $start_ops
-
-	where $start_ops is a list that might contains 0, 1, or 2 items.  The
-	eval here is used to expand the $start_ops list so mi_gdb_start sees
-	the list contents as separate arguments.  In this case we just need to
-	drop the use of eval.
-
-	I think that the new API is more intuitive, but others might
-	disagree, in which case I can drop this change.
-
-	There should be no change in what is tested after this commit.
-
-2022-05-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix mi-exec-run.exp with native-extended-gdbserver board
-	When running with the native-extended-gdbserver board, I currently see
-	one failure in gdb.mi/mi-exec-run.exp:
-
-	    FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: force-fail=0: breakpoint hit reported on console (timeout)
-
-	In this test the MI interface should be started in a separate tty,
-	which means we should have a CLI tty and an MI tty, however, this is
-	not happening.  Instead GDB is just started in MI mode and there is no
-	CLI tty.
-
-	The test script tries to switch between the CLI an MI terminals and
-	look for some expected output on each, however, as there is no CLI
-	terminal the expected output never arrives, and the test times out.
-
-	It turns out that this is not a GDB problem, rather, this is an issue
-	with argument passing within the test script.
-
-	The proc default_mi_gdb_start expects to take a set of flags (strings)
-	as arguments, each of flag is expected to be a separate argument.  The
-	default_mi_gdb_start proc collects all its arguments into a list using
-	the special 'args' parameter name, and then iterates over this list to
-	see which flags were passed.
-
-	In mi_gdb_start, which forwards to default_mi_gdb_start, the arguments
-	are also gathered into the 'args' parameter list, but are then
-	expanded back to be separate arguments using the eval trick, i.e.:
-
-	  proc mi_gdb_start { args } {
-	    return [eval default_mi_gdb_start $args]
-	  }
-
-	This ensures that when we arrive in default_mi_gdb_start each flag is
-	a separate argument, rather than appearing as a single list containing
-	all arguments.
-
-	When using the native-extended-gdbserver board however, the file
-	boards/native-extended-gdbserver.exp is loaded, and this file replaces
-	the default mi_gdb_start with its own version.
-
-	This new mi_gdb_start also gathers the arguments into an 'args' list,
-	but forgets to expand the arguments out using the eval trick.
-
-	As a result, when using the native-extended-gdbserver board, by the
-	time we get to default_mi_gdb_start, we end up with the args list
-	containing a single item, which is a list containing all the arguments
-	the user passed.
-
-	What this means is that if the user passes two arguments, then, in
-	default_mi_gdb_start, instead of seeing two separate arguments, we see
-	a single argument made by concatenating the two arguments together.
-
-	The only place this is a problem is in the test mi-exec-run.exp,
-	which (as far as I can see) is the only test where we might try to
-	pass both arguments at the same time.  Currently we think we passed
-	both arguments to mi_gdb_start, but mi_gdb_start behaves as if no
-	arguments were passed.
-
-	This commit fixes the problem by making use of the eval trick within
-	the native-extended-gdbserver version of mi_gdb_start.  After this,
-	the FAIL listed at the top of this message is resolved.
-
-2022-05-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix failures in gdb.mi/mi-exec-run.exp with native-extended-gdbserver
-	When running the gdb.mi/mi-exec-run.exp test using the
-	native-extended-gdbserver I see failures like this:
-
-	  FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=main: mi=main: force-fail=1: run failure detected
-	  FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=main: mi=separate: force-fail=1: run failure detected
-	  FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: force-fail=1: run failure detected
-
-	There's a race condition here, so you might see a slightly different
-	set of failures, but I always see some from the 'run failure detected'
-	test.
-
-	NOTE: I also see an additional test failure:
-
-	 FAIL: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: force-fail=0: breakpoint hit reported on console (timeout)
-
-	but that is a completely different issue, and is not being addressed
-	in this commit.
-
-	The problem for the 'run failure detected' test is that we end up
-	in gdb_expect looking for output from two spawn-ids, one from
-	gdbserver, and one from gdb.  We're looking for one output pattern
-	from each spawn-id, and for the test to pass we need to see both
-	patterns.
-
-	Now, if gdb exits then this is a test failure (this would indicate gdb
-	crashing, which is bad), so we have an eof pattern associated with
-	the gdb spawn-id.
-
-	However, in this particular test we expect gdbserver to fail to
-	execute the binary (the test binary is set non-executable), and so we
-	get an error message from gdbserver (which matches the pattern), and
-	then gdbserver exits, this is expected.
-
-	The problem is that after spotting the pattern from gdbserver, we
-	often see the eof from gdbserver before we see the pattern from gdb.
-	If this happens then we drop out of the gdb_expect without ever seeing
-	the pattern from gdb, and fail the test.
-
-	In this commit, I place the spawn-id of gdbserver into a global
-	variable, and then use this global variable as the -i option within
-	the gdb_expect.
-
-	Now, once we have seen the expected pattern on the gdbserver spawn-id,
-	the global variable is cleared.  After this the gdb_expect no longer
-	checks the gdbserver spawn-id for additional output, and so never sees
-	the eof event.  This leaves the gdb_expect running, which allows the
-	pattern from gdb to be seen, and for the test to pass.
-
-	I now see no failures relating to 'run failure detected'.
-
-2022-05-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/align.exp with gcc 12.1 / 11.3
-	Starting with gcc 12.1 / gcc 11.3, for test-case gdb.cp/align.exp we run into:
-	...
-	align.cc:29:23: error: invalid application of 'alignof' to a void type^M
-	   29 |     unsigned a_void = alignof (void);^M
-	      |                       ^~~~~~~~~~~~~~^M
-	...
-
-	Fix this by using __alignof__ instead.
-
-	Tested on x86_64-linux, with gcc 7.5.0, gcc 12.1 and clang 12.0.1.
-
-2022-05-02  Aaron Merey  <amerey@redhat.com>
-
-	gdb/debuginfod: Whitespace-only URL should disable debuginfod
-	Currently debuginfod is disabled when the string of server URLs
-	is unset or set to be the empty string (via the $DEBUGINFOD_URLS
-	environment variable or the 'set debuginfod urls' gdb command).
-
-	Extend this functionality so that a whitespace-only URL also disables
-	debuginfod.
-
-	Modify a testcase to verify that a whitespace-only URL disables
-	debuginfod.
-
-2022-05-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove type_wanted parameter from a few functions
-	The type_wanted value, passed down to the create_sals_from_location
-	callback, is never used.  Remove it.
-
-	Change-Id: Ic363ee13f6af593a3e875ff7fe46de130cdc190c
-
-2022-05-02  Simon Marchi  <simon.marchi@efficios.com>
-
-	gnulib: update to bd11400942d6
-	Update the gnulib import to fixes these issues:
-
-	  - GDB build with clang + glibc < 2.33.
-
-	      https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=d6a07b4dc21b3118727743142c678858df442853
-	      https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00072.html
-
-	    With glibc < 2.33, gnulib (since relatively recently) enables a
-	    replacement for free (see gnulib/import/m4/free.m4).  In that path,
-	    clang shows this error:
-
-	        make[2]: Entering directory '/home/smarchi/build/binutils-gdb-clang/gdbsupport'
-	          CXX      agent.o
-	        In file included from /home/smarchi/src/binutils-gdb/gdbsupport/agent.cc:20:
-	        In file included from /home/smarchi/src/binutils-gdb/gdbsupport/common-defs.h:95:
-	        ../gnulib/import/string.h:636:19: error: exception specification in declaration does not match previous declaration
-	        _GL_EXTERN_C void free (void *) throw ();
-	                          ^
-	        ../gnulib/import/stdlib.h:737:17: note: expanded from macro 'free'
-	        #   define free rpl_free
-	                        ^
-	        ../gnulib/import/stdlib.h:739:1: note: previous declaration is here
-	        _GL_FUNCDECL_RPL (free, void, (void *ptr));
-	        ^
-	        ../gnulib/import/sys/select.h:251:23: note: expanded from macro '_GL_FUNCDECL_RPL'
-	          _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
-	                              ^
-	        <scratch space>:139:1: note: expanded from here
-	        rpl_free
-	        ^
-
-	    The gnulib commit mentioned fixes the exception specification of `free`.
-
-	 - GDB build on RHEL 7:
-
-	      CC       libgnu_a-openat-proc.o
-	    In file included from /usr/include/string.h:633,
-	                     from ./string.h:41,
-	                     from ../../../binutils-gdb/gnulib/import/openat-proc.c:30:
-	    ./string.h:1105:1: error: expected identifier or '(' before '__extension__'
-	     1105 | _GL_FUNCDECL_SYS (strndup, char *,
-	          | ^~~~~~~~~~~~~~~~
-
-	     https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=84863a1c4dc8cca8fb0f6f670f67779cdd2d543b
-	     https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00075.html
-
-	Change-Id: Ibd51302feece6f385d0c53e0d08921b5d95e2776
-
-2022-05-02  Tom Tromey  <tromey@adacore.com>
-
-	Fix Ada catchpoint regression
-	The breakpoint C++-ification series introduced a regression for Ada
-	catchpoints.  Specifically, commit 2b5ab5b8 ("Convert base breakpoints
-	to vtable ops") caused these to start failing.  I didn't notice this
-	because testing Ada using a Linux distro compiler requires installing
-	the GNAT debuginfo, which I hadn't done.
-
-	This patch fixes the problem.  I'm checking it in.
-
-2022-05-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-05-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.multi/attach-no-multi-process.exp with check-readmore
-	When running test-case gdb.multi/attach-no-multi-process.exp with
-	check-readmore, I get:
-	...
-	(gdb) attach 13411^M
-	Attaching to Remote target^M
-	No unwaited-for children left.^M
-	(gdb) Reading symbols from attach-no-multi-process...^M
-	Reading symbols from /lib64/libm.so.6...^M
-	(No debugging symbols found in /lib64/libm.so.6)^M
-	Reading symbols from /lib64/libc.so.6...^M
-	(No debugging symbols found in /lib64/libc.so.6)^M
-	Reading symbols from /lib64/ld-linux-x86-64.so.2...^M
-	(No debugging symbols found in /lib64/ld-linux-x86-64.so.2)^M
-	0x00007f5df1fffc8a in clock_nanosleep@GLIBC_2.2.5 () from /lib64/libc.so.6^M
-	FAIL: gdb.multi/attach-no-multi-process.exp: target_non_stop=off: \
-	  attach to the program via remote (timeout)
-	...
-
-	The problem is that the attach output is matched using gdb_test, which uses
-	the '$gdb_prompt $' regexp, and this does not handle the case that '(gdb) ' is
-	not the last available output.
-
-	Fix this by using a gdb_test_multiple instead with a '$gdb_prompt ' regexp, so
-	without the '$' anchor.
-
-	Tested on x86_64-linux with native, check-read1 and check-readmore.
-
-2022-05-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-30  Thomas Hebb  <tommyhebb@gmail.com>
-
-	opcodes: don't assume ELF in riscv, csky, rl78, mep disassemblers
-	Currently, the get_disassembler() implementations for riscv, csky, and
-	rl78--and mep_print_insn() for mep--access ELF variants of union fields
-	without first checking that the bfd actually represents an ELF.  This
-	causes undefined behavior and crashes when disassembling non-ELF files
-	(the "binary" BFD, for example).  Fix that.
-
-2022-04-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Remove create_breakpoints_sal_default
-	create_breakpoints_sal_default is just a simple wrapper, so remove it.
-
-	Remove allocate_bp_location
-	allocate_bp_location is just a small wrapper for a method call, so
-	inline it everywhere.
-
-	Constify breakpoint_ops
-	Now that all breakpoint_ops are statically initialized, they can all
-	be made const.
-
-	Remove breakpoint ops initialization
-	initialize_breakpoint_ops does not do much any more, so remove it in
-	favor of statically-initialize objects.
-
-	Remove vtable_breakpoint_ops
-	There's no need to have vtable_breakpoint_ops any more, so remove it
-	in favor of base_breakpoint_ops.
-
-	Remove most fields from breakpoint_ops
-	At this point, all implementations of breakpoints use the vtable.  So,
-	we can now remove most function pointers from breakpoint_ops and
-	switch to using methods directly in the callers.  Only the two "static
-	virtual" methods remain in breakpoint_ops.
-
-	Remove breakpoint_ops from init_catchpoint
-	init_catchpoint is only ever passed a single breakpoint_ops pointer,
-	so remove the parameter.
-
-	Remove breakpoint_ops from init_ada_exception_breakpoint
-	init_ada_exception_breakpoint is only ever passed a single
-	breakpoint_ops structure, so remove the parameter.
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Merge probe and ordinary tracepoints
-	Right now, probe tracepoints are handled by a separate ops object.
-	However, they differ only in a small way from ordinary tracepoints,
-	and furthermore can be distinguished by their event location.
-
-	This patch merges the two cases, just as was done for breakpoints.
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Merge probe and ordinary breakpoints
-	Right now, probe breakpoints are handled by a separate ops object.
-	However, they differ only in a small way from ordinary breakpoints,
-	and furthermore can be distinguished by their "probe" object.
-
-	This patch merges the two cases.  This avoids having to introduce a
-	new bp_ constant (which can be quite subtle to do correctly) and a new
-	subclass.
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Remove bkpt_base_breakpoint_ops
-	An earlier patch removed the last use of bkpt_base_breakpoint_ops, so
-	remove the object entirely.
-
-	Convert static marker tracepoints to vtable ops
-	This converts static marker tracepoints to use vtable_breakpoint_ops.
-
-	Add bp_static_marker_tracepoint
-	Because the actual construction of a breakpoint is buried deep in
-	create_breakpoint, at present it's necessary to have a new bp_
-	enumerator constant any time a new subclass is needed.  Static marker
-	tracepoints are one such case, so this patch introduces
-	bp_static_marker_tracepoint and updates various spots to recognize it.
-
-	Convert ranged breakpoints to vtable ops
-	This converts ranged breakpoints to use vtable_breakpoint_ops.  This
-	requires introducing a new ranged_breakpoint type, but this is
-	relatively simple because ranged breakpoints can only be created by
-	break_range_command.
-
-	Convert dprintf to vtable ops
-	This converts dprintf to use vtable_breakpoint_ops.
-
-	Convert Ada catchpoints to vtable ops
-	This converts Ada catchpoints to use vtable_breakpoint_ops.
-
-	Convert ordinary breakpoints to vtable ops
-	This converts "ordinary" breakpoint to use vtable_breakpoint_ops.
-	Recall that an ordinary breakpoint is both the kind normally created
-	by users, and also a base class used by other classes.
-
-	Change inheritance of dprintf
-	The dprintf breakpoint ops is mostly a copy of bpkt_breakpoint_ops,
-	except it's written out explicitly -- and, importantly, there's
-	nothing that bpkt_breakpoint_ops overrides that dprintf does not.
-	This changes dprintf to simply inherit directly, and updates struct
-	dprintf_breakpoint to reflect the change as well.
-
-	Convert momentary breakpoints to vtable ops
-	This converts momentary breakpoints to use vtable_breakpoint_ops.
-
-	Convert internal breakpoints to vtable ops
-	This converts internal breakpoints to use vtable_breakpoint_ops.
-
-	Convert break-catch-throw to vtable ops
-	This converts break-catch-throw.c to use vtable_breakpoint_ops.
-
-	Convert base breakpoints to vtable ops
-	This converts base breakpoints to use vtable_breakpoint_ops.
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Add some new subclasses of breakpoint
-	This adds a few new subclasses of breakpoint.  The inheritance
-	hierarchy is chosen to reflect what's already present in
-	initialize_breakpoint_ops -- it mirrors the way that the _ops
-	structures are filled in.
-
-	This patch also changes new_breakpoint_from_type to create the correct
-	sublcass based on bptype.  This is important due to the somewhat
-	inverted way in which create_breakpoint works; and in particular later
-	patches will change some of these entries.
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Convert tracepoints to vtable ops
-	This converts tracepoints to use vtable_breakpoint_ops.
-
-	Convert watchpoints to vtable ops
-	This converts watchpoints and masked watchpoints. to use
-	vtable_breakpoint_ops.  For masked watchpoints, a new subclass must be
-	introduced, and watch_command_1 is changed to create one.
-
-	Convert break-catch-load to vtable ops
-	This converts break-catch-load.c to use vtable_breakpoint_ops.
-
-	Convert break-catch-fork to vtable ops
-	This converts break-catch-fork.c to use vtable_breakpoint_ops.
-
-	Convert break-catch-exec to vtable ops
-	This converts break-catch-exec.c to use vtable_breakpoint_ops.
-
-	Convert break-catch-syscall to vtable ops
-	This converts break-catch-syscall.c to use vtable_breakpoint_ops.
-
-	Convert break-catch-sig to use vtable ops
-	This converts break-catch-sig.c to use vtable_breakpoint_ops.
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Add a vtable-based breakpoint ops
-	This adds methods to struct breakpoint.  Each method has a similar
-	signature to a corresponding function in breakpoint_ops, with the
-	exceptions of create_sals_from_location and create_breakpoints_sal,
-	which can't be virtual methods on breakpoint -- they are only used
-	during the construction of breakpoints.
-
-	Then, this adds a new vtable_breakpoint_ops structure and populates it
-	with functions that simply forward a call from breakpoint_ops to the
-	corresponding virtual method.  These are all done with lambdas,
-	because they are just a stepping stone -- by the end of the series,
-	this structure will be deleted.
-
-2022-04-29  Tom Tromey  <tom@tromey.com>
-
-	Return bool from breakpoint_ops::print_one
-	This changes breakpoint_ops::print_one to return bool, and updates all
-	the implementations and the caller.  The caller is changed so that a
-	NULL check is no longer needed -- something that will be impossible
-	with a real method.
-
-	Delete some unnecessary wrapper functions
-	This patch deletes a few unnecessary wrapper functions from
-	breakpoint.c.
-
-	Add an assertion to clone_momentary_breakpoint
-	This adds an assertion to clone_momentary_breakpoint.  This will
-	eventually be removed, but in the meantime is is useful for helping
-	convince oneself that momentary breakpoints will always use
-	momentary_breakpoint_ops.  This understanding will help when cleaning
-	up the code later.
-
-	Boolify print_solib_event
-	Change print_solib_event to accept a bool parameter and update the
-	callers.
-
-	Move "catch load" to a new file
-	The "catch load" code is reasonably self-contained, and so this patch
-	moves it out of breakpoint.c and into a new file, break-catch-load.c.
-	One function from breakpoint.c, print_solib_event, now has to be
-	exposed, but this seems pretty reasonable.
-
-2022-04-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: assertion in gprofng/src/Expression.cc:139
-	gprofng/ChangeLog
-	2022-04-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29102
-		* src/Expression.h: Remove fixupValues.
-		* src/Expression.cc (Expression::copy): Fix a bug.
-
-2022-04-29  Tom Tromey  <tromey@adacore.com>
-
-	De-duplicate .gdb_index
-	This de-duplicates variables and types in .gdb_index, making the new
-	index closer to what gdb generated before the new DWARF scanner
-	series.  Spot-checking the resulting index for gdb itself, it seems
-	that the new scanner picks up some extra symbols not detected by the
-	old one.  I tested both the new and old versions of gdb on both new
-	and old versions of the index, and startup time in all cases is
-	roughly the same (it's worth noting that, for gdb itself, the index no
-	longer provides any benefit over the DWARF scanner).  So, I think this
-	fixes the size issue with the new index writer.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-04-29  Tom Tromey  <tromey@adacore.com>
-
-	Fix .debug_names regression with new indexer
-	At AdaCore, we run the internal gdb test suite in several modes,
-	including one using the .debug_names index.  This caught a regression
-	caused by the new DWARF indexer.
-
-	First, the psymtabs-based .debug_names generator was completely wrong.
-	However, to avoid making the rewrite series even bigger (fixing the
-	writer will also require rewriting the .debug_names reader), it
-	attempted to preserve the weirdness.
-
-	However, this was not done properly.  For example the old writer did
-	this:
-
-	-      case STRUCT_DOMAIN:
-	-	return DW_TAG_structure_type;
-
-	The new code, instead, simply preserves the actual DWARF tag -- but
-	this makes future lookups fail, because the .debug_names reader only
-	looks for DW_TAG_structure_type.
-
-	This patch attempts to revert to the old behavior in the writer.
-
-2022-04-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/infrun: make fetch_inferior_event restore thread if exited or signalled
-	Commit 152a1749566 ("gdb: prune inferiors at end of
-	fetch_inferior_event, fix intermittent failure of
-	gdb.threads/fork-plus-threads.exp") introduced some follow-fork-related
-	test failures, such as:
-
-	    info inferiors^M
-	      Num  Description       Connection           Executable        ^M
-	    * 1    process 634972    1 (native)           /home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.base/foll-fork/foll-fork ^M
-	      2    process 634975    1 (native)           /home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.base/foll-fork/foll-fork ^M
-	    (gdb) PASS: gdb.base/foll-fork.exp: follow-fork-mode=parent: detach-on-fork=off: cmd=next 2: test_follow_fork: info inferiors
-	    inferior 2^M
-	    [Switching to inferior 2 [process 634975] (/home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.base/foll-fork/foll-fork)]^M
-	    [Switching to thread 2.1 (Thread 0x7ffff7c9a740 (LWP 634975))]^M
-	    #0  0x00007ffff7d7abf7 in _Fork () from /usr/lib/libc.so.6^M
-	    (gdb) PASS: gdb.base/foll-fork.exp: follow-fork-mode=parent: detach-on-fork=off: cmd=next 2: test_follow_fork: inferior 2
-	    continue^M
-	    Continuing.^M
-	    [Inferior 2 (process 634975) exited normally]^M
-	    [Switching to Thread 0x7ffff7c9a740 (LWP 634972)]^M
-	    (gdb) PASS: gdb.base/foll-fork.exp: follow-fork-mode=parent: detach-on-fork=off: cmd=next 2: test_follow_fork: continue until exit at continue unfollowed inferior to end
-	    break callee^M
-	    Breakpoint 2 at 0x555555555160: file /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/foll-fork.c, line 9.^M
-	    (gdb) FAIL: gdb.base/foll-fork.exp: follow-fork-mode=parent: detach-on-fork=off: cmd=next 2: test_follow_fork: break callee
-
-	What happens here is:
-
-	 - inferior 2 is selected
-	 - we continue, leading to inferior 2's exit
-	 - we set breakpoint, expect 2 locations, but only one location is
-	   resolved
-
-	Reading between the lines, we understand that inferior 2 got pruned,
-	when it shouldn't have been.
-
-	The issue can be reproduced by hand with:
-
-	    $ ./gdb -q --data-directory=data-directory testsuite/outputs/gdb.base/foll-fork/foll-fork -ex "set detach-on-fork off" -ex start -ex "next 2" -ex "inferior 2" -ex "set debug infrun"
-	    ...
-	    Temporary breakpoint 1, main () at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/foll-fork.c:14
-	    14        int  v = 5;
-	    [New inferior 2 (process 637627)]
-	    [Thread debugging using libthread_db enabled]
-	    Using host libthread_db library "/usr/lib/../lib/libthread_db.so.1".
-	    17        if (pid == 0) /* set breakpoint here */
-	    [Switching to inferior 2 [process 637627] (/home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.base/foll-fork/foll-fork)]
-	    [Switching to thread 2.1 (Thread 0x7ffff7c9a740 (LWP 637627))]
-	    #0  0x00007ffff7d7abf7 in _Fork () from /usr/lib/libc.so.6
-	    (gdb) continue
-	    Continuing.
-	    [infrun] clear_proceed_status_thread: 637627.637627.0
-	    [infrun] proceed: enter
-	      [infrun] proceed: addr=0xffffffffffffffff, signal=GDB_SIGNAL_DEFAULT
-	      [infrun] scoped_disable_commit_resumed: reason=proceeding
-	      [infrun] start_step_over: enter
-	        [infrun] start_step_over: stealing global queue of threads to step, length = 0
-	        [infrun] operator(): step-over queue now empty
-	      [infrun] start_step_over: exit
-	      [infrun] proceed: start: resuming threads, all-stop-on-top-of-non-stop
-	        [infrun] proceed: resuming 637627.637627.0
-	        [infrun] resume_1: step=0, signal=GDB_SIGNAL_0, trap_expected=0, current thread [637627.637627.0] at 0x7ffff7d7abf7
-	        [infrun] do_target_resume: resume_ptid=637627.637627.0, step=0, sig=GDB_SIGNAL_0
-	        [infrun] infrun_async: enable=1
-	        [infrun] prepare_to_wait: prepare_to_wait
-	      [infrun] proceed: end: resuming threads, all-stop-on-top-of-non-stop
-	      [infrun] reset: reason=proceeding
-	      [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target native
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target native
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target native
-	    [infrun] proceed: exit
-	    [infrun] fetch_inferior_event: enter
-	      [infrun] scoped_disable_commit_resumed: reason=handling event
-	      [infrun] do_target_wait: Found 2 inferiors, starting at #1
-	      [infrun] random_pending_event_thread: None found.
-	      [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	      [infrun] print_target_wait_results:   637627.637627.0 [process 637627],
-	      [infrun] print_target_wait_results:   status->kind = EXITED, exit_status = 0
-	      [infrun] handle_inferior_event: status->kind = EXITED, exit_status = 0
-	    [Inferior 2 (process 637627) exited normally]
-	      [infrun] stop_waiting: stop_waiting
-	      [infrun] stop_all_threads: start: reason=presenting stop to user in all-stop, inf=-1
-	        [infrun] stop_all_threads: pass=0, iterations=0
-	        [infrun] stop_all_threads:   637624.637624.0 not executing
-	        [infrun] stop_all_threads: pass=1, iterations=1
-	        [infrun] stop_all_threads:   637624.637624.0 not executing
-	        [infrun] stop_all_threads: done
-	      [infrun] stop_all_threads: end: reason=presenting stop to user in all-stop, inf=-1
-	    [Switching to Thread 0x7ffff7c9a740 (LWP 637624)]
-	      [infrun] infrun_async: enable=0
-	      [infrun] reset: reason=handling event
-	      [infrun] maybe_set_commit_resumed_all_targets: not requesting commit-resumed for target native, no resumed threads
-	    (gdb) [infrun] fetch_inferior_event: exit
-	    (gdb) info inferiors
-	      Num  Description       Connection           Executable
-	    * 1    process 637624    1 (native)           /home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.base/foll-fork/foll-fork
-	    (gdb) i th
-	      Id   Target Id                                      Frame
-	    * 1    Thread 0x7ffff7c9a740 (LWP 637624) "foll-fork" main () at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/foll-fork.c:17
-
-	After handling the EXITED event for inferior 2, inferior 2 should have
-	stayed the current inferior, which should have prevented it from getting
-	pruned.  When debugging, we find that when getting at the
-	prune_inferiors call, the current inferior is inferior 1.  Further
-	debugging shows that prior to the call to
-	clean_up_just_stopped_threads_fsms, the current inferior is inferior 2,
-	and after, it's inferior 1.  Then, back in fetch_inferior_event, the
-	restore_thread object is disabled, due to:
-
-		    /* If we got a TARGET_WAITKIND_NO_RESUMED event, then the
-		       previously selected thread is gone.  We have two
-		       choices - switch to no thread selected, or restore the
-		       previously selected thread (now exited).  We chose the
-		       later, just because that's what GDB used to do.  After
-		       this, "info threads" says "The current thread <Thread
-		       ID 2> has terminated." instead of "No thread
-		       selected.".  */
-		    if (!non_stop
-			&& cmd_done
-			&& ecs->ws.kind () != TARGET_WAITKIND_NO_RESUMED)
-		      restore_thread.dont_restore ();
-
-	So in the end, inferior 1 stays current, and inferior 2 gets wrongfully
-	pruned.
-
-	I'd say clean_up_just_stopped_threads_fsms is the culprit here.  It
-	actually attempts to restore the event_thread to be current at the end,
-	after the loop (I presume the current thread on entry is always supposed
-	to be the event thread).  But in this case, the event is of kind EXITED,
-	and ecs->event_thread is not set, so the current inferior isn't
-	restored.
-
-	Fix that by using scoped_restore_current_thread.  If there is no current
-	thread, scoped_restore_current_thread will still restore the current
-	inferior, and that's what we want.
-
-	Random note: the thread_info object for inferior 2's thread is never
-	freed.  It is held (by refcount) by the restore_thread object in
-	fetch_inferior_event, while the inferior's thread list gets cleared, in
-	the exit event processing.  When the refcount reaches 0 (when the
-	restore_thread object is destroyed), there's nothing that actually
-	deletes the thread_info object.  And I think that nothing in GDB points
-	to it anymore, so it leaks.  I don't want to fix that in this patch, but
-	thought it would be good to mention it, in case somebody has an idea for
-	how to fix that.
-
-	Change-Id: Ibc7df543e2c46aad5f3b9250b28c3fb5912be4e8
-
-2022-04-29  Pedro Alves  <pedro@palves.net>
-
-	Slightly tweak and clarify target_resume's interface
-	The current target_resume interface is a bit odd & non-intuitive.
-	I've found myself explaining it a couple times the recent past, while
-	reviewing patches that assumed STEP/SIGNAL always applied to the
-	passed in PTID.  It goes like this today:
-
-	  - if the passed in PTID is a thread, then the step/signal request is
-	    for that thread.
-
-	  - otherwise, if PTID is a wildcard (all threads or all threads of
-	    process), the step/signal request is for inferior_ptid, and PTID
-	    indicates which set of threads run free.
-
-	Because GDB always switches the current thread to "leader" thread
-	being resumed/stepped/signalled, we can simplify this a bit to:
-
-	  - step/signal are always for inferior_ptid.
-
-	  - PTID indicates the set of threads that run free.
-
-	Still not ideal, but it's a minimal change and at least there are no
-	special cases this way.
-
-	That's what this patch does.  It renames the PTID parameter to
-	SCOPE_PTID, adds some assertions to target_resume, and tweaks
-	target_resume's description.  In addition, it also renames PTID to
-	SCOPE_PTID in the remote and linux-nat targets, and simplifies their
-	implementation a little bit.  Other targets could do the same, but
-	they don't have to.
-
-	Change-Id: I02a2ec2ab3a3e9b191de1e9a84f55c17cab7daaf
-
-2022-04-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-28  Tom Tromey  <tromey@adacore.com>
-
-	Fix libinproctrace.so build on PPC
-	The recent gnulib import caused a build failure of libinproctrace.so
-	on PPC:
-
-	    alloc.c:(.text+0x20): undefined reference to `rpl_malloc'
-	    alloc.c:(.text+0x70): undefined reference to `rpl_realloc'
-
-	This patch fixes the problem using the same workaround that was
-	previously used for free.
-
-2022-04-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Properly handle function pointer reference
-	Update
-
-	commit ebb191adac4ab45498dec0bfaac62f0a33537ba4
-	Author: H.J. Lu <hjl.tools@gmail.com>
-	Date:   Wed Feb 9 15:51:22 2022 -0800
-
-	    x86: Disallow invalid relocation against protected symbol
-
-	to allow function pointer reference and make sure that PLT entry isn't
-	used for function reference due to function pointer reference.
-
-	bfd/
-
-		PR ld/29087
-		* elf32-i386.c (elf_i386_scan_relocs): Don't set
-		pointer_equality_needed nor check non-canonical reference for
-		function pointer reference.
-		* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.
-
-	ld/
-
-		PR ld/29087
-		* testsuite/ld-x86-64/x86-64.exp: Run PR ld/29087 tests.
-		* testsuite/ld-x86-64/protected-func-3.c: New file.
-
-2022-04-28  Tom Tromey  <tom@tromey.com>
-
-	Check OBJF_NOT_FILENAME in DWARF index code
-	The DWARF index code currently uses 'stat' to see if an objfile
-	represents a real file.  However, I think it's more correct to check
-	OBJF_NOT_FILENAME instead.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-04-28  Tom Tromey  <tromey@adacore.com>
-
-	Remove "typedef enum ..."
-	I noticed a few spots in GDB that use "typedef enum".  However, in C++
-	this isn't as useful, as the tag is automatically entered as a
-	typedef.  This patch removes most uses of "typedef enum" -- the
-	exceptions being in some nat-* code I can't compile, and
-	glibc_thread_db.h, which I think is more or less a copy of some C code
-	from elsewhere.
-
-	Tested by rebuilding.
-
-2022-04-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix nullptr dereference in block::ranges()
-	This commit:
-
-	  commit f5cb8afdd297dd68273d98a10fbfd350dff918d8
-	  Date:   Sun Feb 6 22:27:53 2022 -0500
-
-	      gdb: remove BLOCK_RANGES macro
-
-	introduces a potential nullptr dereference in block::ranges, this is
-	breaking most tests, e.g. gdb.base/break.exp is failing for me.
-
-	In the above patch BLOCK_CONTIGUOUS_P is changed from this:
-
-	  #define BLOCK_CONTIGUOUS_P(bl)  (BLOCK_RANGES (bl) == nullptr \
-	                                   || BLOCK_NRANGES (bl) <= 1)
-
-	to this:
-
-	  #define BLOCK_CONTIGUOUS_P(bl)  ((bl)->ranges ().size () == 0 \
-	                                   || (bl)->ranges ().size () == 1)
-
-	So, before the commit we checked for the block ranges being nullptr,
-	but afterwards we just call block::ranges() in all cases.
-
-	The problem is that block::ranges() looks like this:
-
-	  /* Return a view on this block's ranges.  */
-	  gdb::array_view<blockrange> ranges ()
-	  { return gdb::make_array_view (m_ranges->range, m_ranges->nranges); }
-
-	where m_ranges is:
-
-	  struct blockranges *m_ranges;
-
-	And so, we see that the nullptr check has been lost, and we might end
-	up dereferencing a nullptr.
-
-	My proposed fix is to move the nullptr check into block::ranges, and
-	return an explicit empty array_view if m_ranges is nullptr.
-
-	After this, everything seems fine again.
-
-2022-04-28  Stefan Liebler  <stli@linux.ibm.com>
-
-	s390: Add DT_JMPREL pointing to .rela.[i]plt with static-pie
-	In static-pie case, there are IRELATIVE-relocs in
-	.rela.iplt (htab->irelplt), which will later be grouped
-	to .rela.plt.  On s390, the IRELATIVE relocations are
-	always located in .rela.iplt - even for non-static case.
-	Ensure that DT_JMPREL, DT_PLTRELA, DT_PLTRELASZ is added
-	to the dynamic section even if htab->srelplt->size == 0.
-	See _bfd_elf_add_dynamic_tags in bfd/elflink.c.
-
-	bfd/
-		elf64-s390.c (elf_s390_size_dynamic_sections):
-		Enforce DT_JMPREL via htab->elf.dt_jmprel_required.
-
-2022-04-28  Stefan Liebler  <stli@linux.ibm.com>
-
-	s390: Avoid dynamic TLS relocs in PIE
-	No dynamic relocs are needed for TLS defined in an executable, the
-	TP relative offset is known at link time.
-
-	Fixes
-	FAIL: Build pr22263-1
-
-	bfd/
-		PR ld/22263
-		* elf64-s390.c (elf_s390_tls_transition): Use bfd_link_dll
-		instead of bfd_link_pic for TLS.
-		(elf_s390_check_relocs): Likewise.
-		(allocate_dynrelocs): Likewise.
-		(elf_s390_relocate_section): Likewise.
-
-2022-04-28  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: impose an ordering on conflicting types
-	When two types conflict and they are not types which can have forwards
-	(say, two arrays of different sizes with the same name in two different
-	TUs) the CTF deduplicator uses a popularity contest to decide what to
-	do: the type cited by the most other types ends up put into the shared
-	dict, while the others are relegated to per-CU child dicts.
-
-	This works well as long as one type *is* most popular -- but what if
-	there is a tie?  If several types have the same popularity count,
-	we end up picking the first we run across and promoting it, and
-	unfortunately since we are working over a dynhash in essentially
-	arbitrary order, this means we promote a random one.  So multiple
-	runs of ld with the same inputs can produce different outputs!
-	All the outputs are valid, but this is still undesirable.
-
-	Adjust things to use the same strategy used to sort types on the output:
-	when there is a tie, always put the type that appears in a CU that
-	appeared earlier on the link line (and if there is somehow still a tie,
-	which should be impossible, pick the type with the lowest type ID).
-
-	Add a testcase -- and since this emerged when trying out extern arrays,
-	check that those work as well (this requires a newer GCC, but since all
-	GCCs that can emit CTF at all are unreleased this is probably OK as
-	well).
-
-	Fix up one testcase that has slight type ordering changes as a result
-	of this change.
-
-	libctf/ChangeLog:
-
-		* ctf-dedup.c (ctf_dedup_detect_name_ambiguity): Use
-		cd_output_first_gid to break ties.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-ctf/array-conflicted-ordering.d: New test, using...
-		* testsuite/ld-ctf/array-char-conflicting-1.c: ... this...
-		* testsuite/ld-ctf/array-char-conflicting-2.c: ... and this.
-		* testsuite/ld-ctf/array-extern.d: New test, using...
-		* testsuite/ld-ctf/array-extern.c: ... this.
-		* testsuite/ld-ctf/conflicting-typedefs.d: Adjust for ordering
-		changes.
-
-2022-04-28  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: add a comment explaining how to use ctf_*open
-	Specifically, tell users what to pass to those functions that accept raw
-	section content, since it's fairly involved and easy to get wrong.
-	(.dynsym / .dynstr when CTF_F_DYNSTR is set, otherwise .symtab / .strtab).
-
-	include/ChangeLog:
-
-		* ctf-api.h (ctf_*open): Improve comment.
-
-2022-04-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: test suite problems
-	gprofng/ChangeLog
-	2022-04-27  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29065
-		* testsuite/lib/Makefile.skel: Search parent dir for libs too.
-
-2022-04-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove BLOCKVECTOR_MAP macro
-	Replace with equivalent methods.
-
-	Change-Id: I4e56c76dfc363c1447686fb29c4212ea18b4dba0
-
-2022-04-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: constify addrmap_find
-	addrmap_find shouldn't need to modify the addrmap, so constify the
-	addrmap parameter.  This helps for the following patch, where getting
-	the map of a const blockvector will return a const addrmap.
-
-	Change-Id: If670e425ed013724a3a77aab7961db50366dccb2
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCKVECTOR_BLOCK and BLOCKVECTOR_NBLOCKS macros
-	Replace with calls to blockvector::blocks, and the appropriate method
-	call on the returned array_view.
-
-	Change-Id: I04d1f39603e4d4c21c96822421431d9a029d8ddd
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_ENTRY_PC macro
-	Replace with equivalent method.
-
-	Change-Id: I0e033095e7358799930775e61028b48246971a7d
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_CONTIGUOUS_P macro
-	Replace with an equivalent method.
-
-	Change-Id: I60fd3be7b4c2601c2a74328f635fa48ed80eb7f5
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_RANGE macro
-	Replace with access through the block::ranges method.
-
-	Change-Id: I50f3ed433b997c9f354e49bc6583f540ae4b6121
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_NRANGES macro
-	Replace with range for loops.
-
-	Change-Id: Icbe04f9b6f9e6ddae2e15b2409c61f7a336bc3e3
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_RANGES macro
-	Replace with an equivalent method on struct block.
-
-	Change-Id: I6dcf13e9464ba8a08ade85c89e7329c300fd6c2a
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_RANGE_{START,END} macros
-	Replace with equivalent methods on blockrange.
-
-	Change-Id: I20fd8f624e0129782c36768291891e7582d77c74
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_NAMESPACE macro
-	Replace with equivalent methods.
-
-	Change-Id: If86b8cbdfb0f52e22c929614cd53e73358bab76a
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_MULTIDICT macro
-	Replace with equivalent methods.
-
-	Change-Id: If9a239c511a664f2a59fecb6d1cd579881b23dc2
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_SUPERBLOCK macro
-	Replace with equivalent methods.
-
-	Change-Id: I334a319909a50b5cc5570a45c38c70e10dc00630
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_FUNCTION macro
-	Replace with equivalent methods.
-
-	Change-Id: I31ec00f5bf85335c8b23d306ca0fe0b84d489101
-
-2022-04-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove BLOCK_{START,END} macros
-	Replace with equivalent methods.
-
-	Change-Id: I10a6c8a2a86462d9d4a6a6409a3f07a6bea66310
-
-2022-04-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-27  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Disable 2 tests with large memory requirement
-	gas/
-
-		* testsuite/gas/i386/i386.exp: Disable rept.
-
-	ld/
-
-		* testsuite/ld-x86-64/x86-64.exp: Disable pr17618.
-
-2022-04-27  Pedro Alves  <pedro@palves.net>
-
-	Make gdb.base/parse_number.exp test all architectures
-	There are some subtle differences between architectures, like the size
-	of a "long" type, and this isn't currently accounted for in
-	gdb.base/parse_number.exp.
-
-	For example, on aarch64 a long type is 8 bytes, whereas a long type is
-	4 bytes for x86_64.  This causes the following FAIL's:
-
-	 FAIL: gdb.base/parse_number.exp: lang=asm: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=auto: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=c: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=c++: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=fortran: p/x 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=fortran: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=go: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=local: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=minimal: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=objective-c: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=opencl: ptype 0xffffffffffffffff
-	 FAIL: gdb.base/parse_number.exp: lang=pascal: ptype 0xffffffffffffffff
-
-	There are some fortran-specific divergences as well, where 32-bit
-	architectures show "unsigned int" for both 32-bit and 64-bit integers
-	and 64-bit architectures show "unsigned int" and "unsigned long" for
-	32-bit and 64-bit integers.
-
-	There might be a bug that 32-bit fortran truncates 64-bit values to
-	32-bit, given "p/x 0xffffffffffffffff" returns "0xffffffff".
-
-	Here's what we get for aarch64:
-
-	 (gdb) ptype 0xffffffff
-	 type = unsigned int
-	 (gdb) ptype 0xffffffffffffffff
-	 type = unsigned long
-	 (gdb) p sizeof (0xffffffff)
-	 $1 = 4
-	 (gdb) p sizeof (0xffffffffffffffff)
-	 quit
-	 $2 = 8
-	 (gdb) ptype 0xffffffff
-	 type = unsigned int
-	 (gdb) ptype 0xffffffffffffffff
-	 type = unsigned long
-
-	And for arm:
-
-	 (gdb) ptype 0xffffffff
-	 type = unsigned int
-	 (gdb) ptype 0xffffffffffffffff
-	 quit
-	 type = unsigned long long
-	 (gdb) p sizeof (0xffffffff)
-	 quit
-	 $1 = 4
-	 (gdb) p sizeof (0xffffffffffffffff)
-	 quit
-	 $2 = 8
-	 (gdb) ptype 0xffffffff
-	 type = unsigned int
-	 (gdb) ptype 0xffffffffffffffff
-	 type = unsigned long
-
-	This patch...
-
-	* Makes the testcase iterate over all architectures, thus covering all
-	  the different combinations of types/sizes every time.
-
-	* Adjusts the expected values and types based on the sizes of long
-	  long, long and int.
-
-	A particularly curious architecture is s12z, which has 32-bit long
-	long, and thus no way to represent 64-bit integers in C-like
-	languages.
-
-	Co-Authored-By: Luis Machado <luis.machado@arm.com>
-	Change-Id: Ifc0ccd33e7fd3c7585112ff6bebe7d266136768b
-
-2022-04-27  Tom Tromey  <tromey@adacore.com>
-
-	Fix gdbserver build for x86-64 Windows
-	I broke the gdbserver build on x86-64 Windows a little while back.
-	Previously, I could not build this configuration, but today I found
-	out that if I configure with:
-
-	    --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
-
-	using the Fedora 34 tools, it will in fact build.  I'm not certain,
-	but maybe the gnulib update helped with this.
-
-	This patch fixes the build.  I'm checking it in.
-
-2022-04-27  John Baldwin  <jhb@FreeBSD.org>
-
-	Create pseudo sections for NT_ARM_TLS notes on FreeBSD.
-	bfd/ChangeLog:
-
-		* elf.c (elfcore_grok_freebsd_note): Handle NT_ARM_TLS notes.
-
-2022-04-27  Christophe Lyon  <christophe.lyon@arm.com>
-
-	gdb/arm: Extend arm_m_addr_is_magic to support FNC_RETURN, add unwind-secure-frames command
-	This patch makes use of the support for several stack pointers
-	introduced by the previous patch to switch between them as needed
-	during unwinding.
-
-	It introduces a new 'unwind-secure-frames' arm command to enable/disable
-	mode switching during unwinding. It is enabled by default.
-
-	It has been tested using an STM32L5 board (with cortex-m33) and the
-	sample applications shipped with the STM32Cube development
-	environment: GTZC_TZSC_MPCBB_TrustZone in
-	STM32CubeL5/Projects/NUCLEO-L552ZE-Q/Examples/GTZC.
-
-	The test consisted in setting breakpoints in various places and check
-	that the backtrace is correct: SecureFault_Callback (Non-secure mode),
-	__gnu_cmse_nonsecure_call (before and after the vpush instruction),
-	SecureFault_Handler (Secure mode).
-
-	This implies that we tested only some parts of this patch (only MSP*
-	were used), but remaining parts seem reasonable.
-
-2022-04-27  Christophe Lyon  <christophe.lyon@arm.com>
-
-	gdb/arm: Add support for multiple stack pointers on Cortex-M
-	Armv8-M architecture with Security extension features four stack pointers
-	to handle Secure and Non-secure modes.
-
-	This patch adds support to switch between them as needed during
-	unwinding, and replaces all updates of cache->prev_sp with calls to
-	arm_cache_set_prev_sp.
-
-2022-04-27  Christophe Lyon  <christophe.lyon@arm.com>
-
-	gdb/arm: Introduce arm_cache_init
-	This patch is a preparation for the rest of the series and adds two
-	arm_cache_init helper functions. It updates every place that updates
-	cache->saved_regs to call the helper instead.
-
-	gdb/arm: Define MSP and PSP registers for M-Profile
-	This patch removes the hardcoded access to PSP in
-	arm_m_exception_cache() and relies on the definition with the XML
-	descriptions.
-
-2022-04-27  Christophe Lyon  <christophe.lyon@arm.com>
-
-	gdb/arm: Fix prologue analysis to support vpush
-	While working on adding support for Non-secure/Secure modes unwinding,
-	I noticed that the prologue analysis lacked support for vpush, which
-	is used for instance in the CMSE stub routine.
-
-	This patch updates thumb_analyze_prologue accordingly, adding support
-	for vpush of D-registers.
-
-2022-04-27  Enze Li  <lienze2010@hotmail.com>
-
-	gdb/testsuite: fix FAIL in gdb.base/clear_non_user_bp.exp
-	Tom and Simon feedback that there is a test failing in this commit:
-
-	  commit a5c69b1e49bae4d0dcb20f324cebb310c63495c6
-	  Date:   Sun Apr 17 15:09:46 2022 +0800
-
-	    gdb: fix using clear command to delete non-user breakpoints(PR cli/7161)
-
-	Then, I reproduced the same fail with Ubuntu 20.04 as Simon said, and I
-	fixed the nit in this patch.  The root of the problem is not correctly
-	matching the presentation of internal breakpoints.
-
-	In addition, as Pedro pointed out, the original testcase is not portable
-	in some methods, so this patch fixes this issue and some other
-	improvements.
-
-	Tested on x86_64 ubuntu 20.04.4 and openSUSE Tumbleweed(VERSION_ID="20220425").
-
-2022-04-27  Jan Beulich  <jbeulich@suse.com>
-
-	x86: VFPCLASSSH is Evex.LLIG
-	This also was mistakenly flagged as Evex.128.
-
-2022-04-27  Nick Clifton  <nickc@redhat.com>
-
-	Fix potential buffer overruns when creating DLLs.
-		PR 29006
-		* pe-dll.c (make_head): Use asprintf to allocate and populate a
-		buffer containing the temporary name.
-		(make_tail, make_one, make_singleton_name_thunk): Likewise.
-		(make_import_fixup_mark, make_import_fixup_entry): Likewise.
-		(make_runtime_pseudo_reloc): Likewise.
-		(pe_create_runtime_relocator_reference): Likewise.
-
-2022-04-27  Alan Modra  <amodra@gmail.com>
-
-	Revert pr29072 lto test changes
-	Revert commit 65daf5bed6 testsuite changes in ld-plugin/.  -z isn't
-	supported for non-ELF targets, and isn't needed since we now prune the
-	exec stack warning (commit 333cd559ba).
-
-		PR 29072
-
-2022-04-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: use with_cwd where possible
-	I learned about with_cwd today.  I spotted a few spots that could use
-	it, to make the code more robust.
-
-	Change-Id: Ia23664cb827f25e79d31948e0c006a8dc61c33e1
-
-2022-04-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-26  Carl Love  <cel@us.ibm.com>
-
-	GDB PowerPC record test cases for ISA 2.06 and ISA 3.1
-	This patch adds PowerPC specific tests to verify recording of various
-	instructions.  The first test case checks the ISA 2.06 lxvd2x instruction.
-	The second test case tests several of the ISA 3.01 instructions.  Specifically,
-	it checks the word and prefixed instructions and some of the Matrix
-	Multiply Assist (MMA) instructions.
-
-	The patch has been run on both Power 10 and Power 9 to verify the ISA
-	2.06 test case runs on both platforms without errors.  The ISA 3.1 test
-	runs without errors on Power 10 and is skipped as expected on Power 9.
-
-2022-04-26  Carl Love  <cel@us.ibm.com>
-
-	Add recording support for the ISA 3.1 PowerPC instructions.
-	This patch adds support for the PowerPC ISA 3.1 instructions to the PowerPC
-	gdb instruction recording routines.  Case statement entries are added to a
-	number of the existing routines for recording the 32-bit word instructions.
-	A few new functions were added to handle the new word instructions.  The 64-bit
-	prefix instructions are all handled by a set of new routines.  The function
-	ppc_process_prefix_instruction() is the primary function to handle the
-	prefixed instructions. It calls additional functions to handle specific
-	sets of prefixed instructions.  These new functions are:
-	  ppc_process_record_prefix_vsx_d_form(),
-	  ppc_process_record_prefix_store_vsx_ds_form(),
-	  ppc_process_record_prefix_op34(),
-	  ppc_process_record_prefix_op33(),
-	  ppc_process_record_prefix_op32(),
-	  ppc_process_record_prefix_store(),
-	  ppc_process_record_prefix_op59_XX3(),
-	  ppc_process_record_prefix_op42().
-
-2022-04-26  Tom Tromey  <tromey@adacore.com>
-
-	Handle encoding failures in Windows thread names
-	Internally at AdaCore, we noticed that the new Windows thread name
-	code could fail.  First, it might return a zero-length string, but in
-	gdb conventions it should return nullptr instead.  Second, an encoding
-	failure could wind up showing replacement characters to the user; this
-	is confusing and not useful; it's better to recognize such errors and
-	simply discard the name.  This patch makes both of these changes.
-
-2022-04-26  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Pass -z noexecstack to linker tests
-		PR ld/29072
-		* testsuite/ld-i386/i386.exp: Pass -z noexecstack to gotpc1
-		and property-6.
-
-2022-04-26  John Baldwin  <jhb@FreeBSD.org>
-
-	bsd-kvm: Fix build after recent changes to path handling functions.
-	Convert bsd_kvm_corefile and the local filename in bsd_kvm_open to
-	std::string rather than simple char * pointers freed by xfree.
-
-2022-04-26  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make some random Python files Python 3-compatible
-	I noticed that these files failed to format with Black, because they use
-	print without parenthesis (which isn't Python 3 compatible).
-
-	I don't know if these files are still relevant, but the change is
-	trivial, so here it is.
-
-	Change-Id: I116445c2b463486016f824d32effffc915b60766
-
-2022-04-26  Carl Love  <cel@us.ibm.com>
-
-	PowerPC: Update expected floating point output for gdb.arch/altivec-regs.exp and gdb.arch/vsx-regs.exp
-	The format for printing the floating point values was changed by commit:
-
-	   commit 56262a931b7ca8ee3ec9104bc7e9e0b40cf3d64e
-	   Author: Tom Tromey <tromey@adacore.com>
-	   Date:   Thu Feb 17 13:43:59 2022 -0700
-
-	       Change how "print/x" displays floating-point value
-
-	       Currently, "print/x" will display a floating-point value by first
-	       casting it to an integer type.  This yields weird results like:
-
-	           (gdb) print/x 1.5
-	           $1 = 0x1
-	        ...
-	        Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16242
-
-	The above change results in 417 regression test failures since the expected
-	Power vector register output no longer match.
-
-	This patch updates the expected Altivec floating point register prints to
-	the hexadecimal format for both big endian and little endian systems.  The
-	patch also fixes a formatting isue with the decimal_vector expected value
-	assign statements.
-
-	The expected VSX vector_register1, vector_register1_vr, vector_register2,
-	vector_register2_vr variables are updated to include the new float128 entry.
-	Additionally, the comment in the vsx expect file about the initialization
-	of the vs registers is updated.
-
-	The patch has been tested on Power 10, Power 8 LE and Power 8 BE.
-
-2022-04-26  John Baldwin  <jhb@FreeBSD.org>
-
-	gdbsupport/pathstuff.h: #include <array> explicitly for std::array<>
-	This fixes build breakage using clang with libc++ on FreeBSD where
-	std::array<> is not yet declared when used by the path_join variadic
-	function template.
-
-2022-04-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-25  Tom Tromey  <tromey@adacore.com>
-
-	Do not put linkage names into .gdb_index
-	This changes the .gdb_index writer to skip linkage names.  This was
-	always done historically (though somewhat implicitly).
-
-2022-04-25  Nick Clifton  <nickc@redhat.com>
-
-	Emit a note warning the user that creating an executable stack because of a missing .note.GNU-stack section is deprecated.
-		PR 29072
-	bfd	* elflink.c (bfd_elf_size_dynamic_sections): Display a note to the
-		user that the current ehaviour of creating an executable stack
-		because of a missing .note.GNU-stack section is deprecated and
-		will be changed in a future release.
-
-	binutils* testsuite/lib/binutils-common.exp (prune_warnings_extra): Filter
-		out notes about the executable stacjk behaviour beign deprecated.
-
-	ld	* testsuite/ld-elf/pr29072.b.warn: Update to include the note
-		about the linker's behaviour being depreccated.
-
-2022-04-25  rupothar  <rupesh.potharla@amd.com>
-
-	gdb/fortran: Support for assumed rank zero
-	If a variable is passed to function in FORTRAN as an argument the
-	variable is treated as an array with rank zero.  GDB currently does
-	not support the case for assumed rank 0.  This patch provides support
-	for assumed rank 0 and updates the testcase as well.
-
-	Without patch:
-	Breakpoint 1, arank::sub1 (a=<error reading variable:
-	  failed to resolve dynamic array rank>) at assumedrank.f90:11
-	11       PRINT *, RANK(a)
-	(gdb) p a
-	failed to resolve dynamic array rank
-	(gdb) p rank(a)
-	failed to resolve dynamic array rank
-
-	With patch:
-	Breakpoint 1, arank::sub1 (a=0) at assumedrank.f90:11
-	11       PRINT *, RANK(a)
-	(gdb) p a
-	$1 = 0
-	(gdb) p rank(a)
-	$2 = 0
-
-2022-04-25  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/infrun: assert !step_over_info_valid_p in restart_threads
-	While working in gdb/infrun.c:restart_threads, I was wondering what are
-	the preconditions to call the function.  It seems to me that
-	!step_over_info_valid_p should be a precondition (i.e. if we are doing
-	an inline step over breakpoint, we do not want to resume non stepping
-	threads as one of them might miss the breakpoint which is temporally
-	disabled).
-
-	To convince myself that this is true, I have added an assertion to
-	enforce this, and got one regression in the testsuite:
-
-	    FAIL: gdb.base/step-over-syscall.exp: vfork: displaced=off: single step over vfork (GDB internal error)
-
-	This call to restart_threads originates from handle_vfork_done which
-	does not check if a step over is active when restarting other threads:
-
-	    if (target_is_non_stop_p ())
-	      {
-	        scoped_restore_current_thread restore_thread;
-
-	        insert_breakpoints ();
-	        restart_threads (event_thread, event_thread->inf);
-	        start_step_over ();
-	      }
-
-	In this patch, I propose to:
-	- Call start_step_over before restart_threads.  If a step over is already
-	  in progress (as it is the case in the failing testcase),
-	  start_step_over return immediately, and there is no point in restarting
-	  all threads just to stop them right away for a step over breakpoint.
-	- Only call restart_threads if no step over is in progress at this
-	  point.
-
-	In this patch, I also propose to keep the assertion in restart_threads
-	to help enforce this precondition, and state it explicitly.
-
-	I have also checked all other places which call restart_threads, and
-	they all seem to check that there is no step over currently active
-	before doing the call.
-
-	As for infrun-related things, I am never completely sure I did not miss
-	something.  So as usual, all feedback and thoughts are very welcome.
-
-	Tested on x86_64-linux-gnu.
-
-	Change-Id: If5f5f98ec4cf9aaeaabb5e3aa88ae6ffd70d4f37
-
-2022-04-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: move setbuf calls out of gdb_readline_no_editing_callback
-	After this commit:
-
-	  commit d08cbc5d3203118da5583296e49273cf82378042
-	  Date:   Wed Dec 22 12:57:44 2021 +0000
-
-	      gdb: unbuffer all input streams when not using readline
-
-	Issues were reported with some MS-Windows hosts, see the thread
-	starting here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/187004.html
-
-	Filed in bugzilla as: PR mi/29002
-
-	The problem seems to be that calling setbuf on terminal file handles
-	is not always acceptable, see this mail for more details:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-April/187310.html
-
-	This commit does two things, first moving the setbuf calls out of
-	gdb_readline_no_editing_callback so that we don't end up calling
-	setbuf so often.
-
-	Then, for MS-Windows hosts, we don't call setbuf for terminals, this
-	appears to resolve the issues that have been reported.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29002
-
-2022-04-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-22  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: handle_no_resumed: only update thread list of event target
-	When running:
-
-	    $ make check TESTS="gdb.multi/multi-re-run.exp" RUNTESTFLAGS="--target_board=native-gdbserver"
-
-	I get:
-
-	    target remote localhost:2347^M
-	    Remote debugging using localhost:2347^M
-	    Reading symbols from /lib64/ld-linux-x86-64.so.2...^M
-	    Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.31.so...^M
-	    0x00007ffff7fd0100 in _start () from /lib64/ld-linux-x86-64.so.2^M
-	    (gdb) continue^M
-	    Continuing.^M
-	    Cannot execute this command while the target is running.^M
-	    Use the "interrupt" command to stop the target^M
-	    and then try again.^M
-	    (gdb) FAIL: gdb.multi/multi-re-run.exp: re_run_inf=1: iter=1: runto: run to all_started
-
-	The test does:
-
-	 - Connect to a remote target with inferior 2, continue and stop on the
-	   all_started function
-	 - Connect to a separate remote target / GDBserver instance with inferior 1,
-	   continue and (expect to) stop on the all_started function
-
-	The failure seen above happens when trying to continue inferior 1.
-
-	What happens is:
-
-	 - GDB tells inferior 1's remote target to continue
-	 - We go into fetch_inferior_event, try to get an event at random from
-	   the targets
-	 - do_target_wait happens to pick inferior 2's target
-	 - That target return TARGET_WAITKIND_NO_RESUMED, which makes sense:
-	   inferior 2 is stopped, that target has no resumed thread
-	 - handle_no_resumed tries to update the thread list of all targets:
-
-	   for (auto *target : all_non_exited_process_targets ())
-	     {
-	       switch_to_target_no_thread (target);
-	       update_thread_list ();
-	     }
-
-	 - When trying to update the thread list of inferior 1's target, it hits
-	   the "Cannot execute this command while the target is running" error.
-	   This target is working in "remote all-stop" mode, and it is currently
-	   waiting for a stop reply, so it can't send packets to update the
-	   thread list at this time.
-
-	To handle the problem described in the comment in handle_no_resumed, I
-	don't think it is necessary to update the thread list of all targets,
-	but only the event target.  That comment describes a kind of race
-	condition where some target reports a breakpoint hit for a thread and
-	then its last remaining resumed thread exits, so sends a "no resumed"
-	event.  If we ended up resuming the thread that hit a breakpoint, we
-	want to ignore the "no resumed" and carry on.
-
-	But I don't really see why we need to update the thread list on the
-	other targets.  I can't really articulate this, it's more a gut feeling,
-	maybe I just fail to imagine the situation where this is needed.  But
-	here is the patch anyway, so we can discuss it.  The patch changes
-	handle_no_resumed to only update the thread list of the event target.
-	This fixes the test run shown above.
-
-	The way I originally tried to fix this was to make
-	remote_target::update_thread_list return early if the target is
-	currently awaiting a stop reply, since there's no way it can update the
-	thread list at that time.  But that felt more like papering over the
-	problem.  I then thought that we probably shouldn't be asking the target
-	to update the thread list unnecessarily.
-
-	Change-Id: Ide3df22b4f556478e155ad1c67ad4b4fe7c26a58
-
-2022-04-22  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver/linux: free process_info_private and arch_process_info when failing to attach
-	Running
-
-	  $ ../gdbserver/gdbserver --once --attach :1234 539436
-
-	with ASan while /proc/sys/kernel/yama/ptrace_scope is set to 1 (prevents
-	attaching) shows that we fail to free some platform-specific objects
-	tied to the process_info (process_info_private and arch_process_info):
-
-	    Direct leak of 32 byte(s) in 1 object(s) allocated from:
-	        #0 0x7f6b558b3fb9 in __interceptor_calloc /usr/src/debug/gcc/libsanitizer/asan/asan_malloc_linux.cpp:154
-	        #1 0x562eaf15d04a in xcalloc /home/simark/src/binutils-gdb/gdbserver/../gdb/alloc.c:100
-	        #2 0x562eaf251548 in xcnew<process_info_private> /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/poison.h:122
-	        #3 0x562eaf22810c in linux_process_target::add_linux_process_no_mem_file(int, int) /home/simark/src/binutils-gdb/gdbserver/linux-low.cc:426
-	        #4 0x562eaf22d33f in linux_process_target::attach(unsigned long) /home/simark/src/binutils-gdb/gdbserver/linux-low.cc:1132
-	        #5 0x562eaf1a7222 in attach_inferior /home/simark/src/binutils-gdb/gdbserver/server.cc:308
-	        #6 0x562eaf1c1016 in captured_main /home/simark/src/binutils-gdb/gdbserver/server.cc:3949
-	        #7 0x562eaf1c1d60 in main /home/simark/src/binutils-gdb/gdbserver/server.cc:4084
-	        #8 0x7f6b552f630f in __libc_start_call_main (/usr/lib/libc.so.6+0x2d30f)
-
-	    Indirect leak of 56 byte(s) in 1 object(s) allocated from:
-	        #0 0x7f6b558b3fb9 in __interceptor_calloc /usr/src/debug/gcc/libsanitizer/asan/asan_malloc_linux.cpp:154
-	        #1 0x562eaf15d04a in xcalloc /home/simark/src/binutils-gdb/gdbserver/../gdb/alloc.c:100
-	        #2 0x562eaf2a0d79 in xcnew<arch_process_info> /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/poison.h:122
-	        #3 0x562eaf295e2c in x86_target::low_new_process() /home/simark/src/binutils-gdb/gdbserver/linux-x86-low.cc:723
-	        #4 0x562eaf22819b in linux_process_target::add_linux_process_no_mem_file(int, int) /home/simark/src/binutils-gdb/gdbserver/linux-low.cc:428
-	        #5 0x562eaf22d33f in linux_process_target::attach(unsigned long) /home/simark/src/binutils-gdb/gdbserver/linux-low.cc:1132
-	        #6 0x562eaf1a7222 in attach_inferior /home/simark/src/binutils-gdb/gdbserver/server.cc:308
-	        #7 0x562eaf1c1016 in captured_main /home/simark/src/binutils-gdb/gdbserver/server.cc:3949
-	        #8 0x562eaf1c1d60 in main /home/simark/src/binutils-gdb/gdbserver/server.cc:4084
-	        #9 0x7f6b552f630f in __libc_start_call_main (/usr/lib/libc.so.6+0x2d30f)
-
-	Those objects are deleted by linux_process_target::mourn, but that is
-	not called if we fail to attach, we only call remove_process.  I
-	initially fixed this by making linux_process_target::attach call
-	linux_process_target::mourn on failure (before calling error).  But this
-	isn't done anywhere else (including in GDB) so it would just be
-	confusing to do things differently here.
-
-	Instead, add a linux_process_target::remove_linux_process helper method
-	(which calls remove_process), and call that instead of remove_process in
-	the Linux target.  Move the free-ing of the extra data from the mourn
-	method to that new method.
-
-	Change-Id: I277059a69d5f08087a7f3ef0b8f1792a1fcf7a85
-
-2022-04-22  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: handle bracketed-paste-mode and EOF correctly
-	This commit replaces an earlier commit that worked around the issues
-	reported in bug PR gdb/28833.
-
-	The previous commit just implemented a work around in order to avoid
-	the worst results of the bug, but was not a complete solution.  The
-	full solution was considered too risky to merge close to branching GDB
-	12.  This improved fix has been applied after GDB 12 branched.  See
-	this thread for more details:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186391.html
-
-	This commit replaces this earlier commit:
-
-	  commit 74a159a420d4b466cc81061c16d444568e36740c
-	  Date:   Fri Mar 11 14:44:03 2022 +0000
-
-	      gdb: work around prompt corruption caused by bracketed-paste-mode
-
-	Please read that commit for a full description of the bug, and why is
-	occurs.
-
-	In this commit I extend GDB to use readline's rl_deprep_term_function
-	hook to call a new function gdb_rl_deprep_term_function.  From this
-	new function we can now print the 'quit' message, this replaces the
-	old printing of 'quit' in command_line_handler.  Of course, we only
-	print 'quit' in gdb_rl_deprep_term_function when we are handling EOF,
-	but thanks to the previous commit (to readline) we now know when this
-	is.
-
-	There are two aspects of this commit that are worth further
-	discussion, the first is in the new gdb_rl_deprep_term_function
-	function.  In here I have used a scoped_restore_tmpl to disable the
-	readline global variable rl_eof_found.
-
-	The reason for this is that, in rl_deprep_terminal, readline will
-	print an extra '\n' character before printing the escape sequence to
-	leave bracketed paste mode.  You might then think that in the
-	gdb_rl_deprep_term_function function, we could simply print "quit" and
-	rely on rl_deprep_terminal to print the trailing '\n'.  However,
-	rl_deprep_terminal only prints the '\n' when bracketed paste mode is
-	on.  If the user has turned this feature off, no '\n' is printed.
-	This means that in gdb_rl_deprep_term_function we need to print
-	"quit" when bracketed paste mode is on, and "quit\n" when bracketed
-	paste mode is off.
-
-	We could absolutely do that, no problem, but given we know how
-	rl_deprep_terminal is implemented, it's easier (I think) to just
-	temporarily clear rl_eof_found, this prevents the '\n' being printed
-	from rl_deprep_terminal, and so in gdb_rl_deprep_term_function, we can
-	now always print "quit\n" and this works for all cases.
-
-	The second issue that should be discussed is backwards compatibility
-	with older versions of readline.  GDB can be built against the system
-	readline, which might be older than the version contained within GDB's
-	tree.  If this is the case then the system readline might not contain
-	the fixes needed to support correctly printing the 'quit' string.
-
-	To handle this situation I have retained the existing code in
-	command_line_handler for printing 'quit', however, this code is only
-	used now if the version of readline we are using doesn't not include
-	the required fixes.  And so, if a user is using an older version of
-	readline, and they have bracketed paste mode on, then they will see
-	the 'quit' sting printed on the line below the prompt, like this:
-
-	  (gdb)
-	  quit
-
-	I think this is the best we can do when someone builds GDB against an
-	older version of readline.
-
-	Using a newer version of readline, or the patched version of readline
-	that is in-tree, will now give a result like this in all cases:
-
-	  (gdb) quit
-
-	Which is what we want.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28833
-
-2022-04-22  Andrew Burgess  <aburgess@redhat.com>
-
-	readline: back-port changes needed to properly detect EOF
-	This commit is a partial back-port of this upstream readline commit:
-
-	  commit 002d31aa5f5929eb32d0e0e2e8b8d35d99e59961
-	  Author: Chet Ramey <chet.ramey@case.edu>
-	  Date:   Thu Mar 3 11:11:47 2022 -0500
-
-	      add rl_eof_found to public API; fix pointer aliasing problems  \
-	            with history-search-backward; fix a display problem with \
-	            runs of invisible characters at the end of a physical    \
-	            screen line
-
-	I have only pulled in the parts of this commit that relate to the new
-	rl_eof_found global, and the RL_STATE_EOF state flag.  These changes
-	are needed in order to fix PR cli/28833, and are discussed in this
-	thread to the bug-readline mailing list:
-
-	  https://lists.gnu.org/archive/html/bug-readline/2022-02/msg00021.html
-
-	The above commit is not yet in any official readline release, but my
-	hope is that now it has been merged into the readline tree it should
-	be safe enough to back port this fix to GDB's tree.
-
-	At some point in the future we will inevitably want to roll forward
-	the version of readline that we maintain in the binutils-gdb
-	repository.  When that day comes the changes in this commit can be
-	replaced with the latest upstream readline code, as I have not changed
-	the meaning of this code at all from what is in upstream readline.
-
-	This commit alone does not fix the PR cli/28833 issue, for that see
-	the next commit, which changes GDB itself.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28833
-
-2022-04-22  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: improved EOF handling when using readline 7
-	In this commit:
-
-	  commit a6b413d24ccc5d76179bab866834e11fd6fec294
-	  Date:   Fri Mar 11 14:44:03 2022 +0000
-
-	      gdb: work around prompt corruption caused by bracketed-paste-mode
-
-	a change was made to GDB to work around bug PR gdb/28833.  The
-	consequence of this work around is that, when bracketed paste mode is
-	enabled in readline, and GDB is quit by sending EOF, then the output
-	will look like this:
-
-	  (gdb)
-	  quit
-
-	The ideal output, which is what we get when bracketed paste mode is
-	off, is this:
-
-	  (gdb) quit
-
-	The reason we need to make this change is explained in the original
-	commit referenced above.  What isn't mentioned in the above commit, is
-	that the change that motivated this work around was only added in
-	readline 8, older versions of readline don't require the change.
-
-	In later commits in this series I will add a fix to GDB's in-tree copy
-	of readline (this fix is back-ported from upstream readline), and then
-	I will change GDB so that, when using the (patched) in-tree readline,
-	we can have the ideal output in all cases.
-
-	However, GDB can be built against the system readline.  When this is
-	done, and the system readline is version 8, then we will still have to
-	use the work around (two line) style output.
-
-	But, if GDB is built against the system readline, and the system
-	readline is an older version 7 readline, then there's no reason why we
-	can't have the ideal output, after all, readline 7 doesn't include the
-	change that we need to work around.
-
-	This commit changes GDB so that, when using readline 7 we get the
-	ideal output in all cases.  This change is trivial (a simple check
-	against the readline version number) so I think this should be fine to
-	include.
-
-	For testing this commit, you need to configure GDB including the
-	'--with-system-readline' flag, and build GDB on a system that uses
-	readline 7, for example 'Ubuntu 18.04'.  Then run the test
-	'gdb.base/eof-exit.exp', you should expect everything to PASS.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28833
-
-2022-04-22  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: prune inferiors at end of fetch_inferior_event, fix intermittent failure of gdb.threads/fork-plus-threads.exp
-	This test sometimes fail like this:
-
-	    info threads^M
-	      Id   Target Id         Frame ^M
-	      11.12 process 2270719   Couldn't get registers: No such process.^M
-	    (gdb) FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: no threads left
-	    [Inferior 11 (process 2270719) exited normally]^M
-	    info inferiors^M
-	      Num  Description       Connection           Executable        ^M
-	    * 1    <null>                                 /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.threads/fork-plus-threads/fork-plus-threads ^M
-	      11   <null>                                 /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.threads/fork-plus-threads/fork-plus-threads ^M
-	    (gdb) FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: only inferior 1 left (the program exited)
-
-	I can get it to fail quite reliably by pinning it to a core:
-
-	  $ taskset -c 5 make check TESTS="gdb.threads/fork-plus-threads.exp"
-
-	The previous attempt at fixing this was:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-October/182846.html
-
-	What we see is part due to a possible unfortunate ordering of events
-	given by the kernel, and what could be considered a bug in GDB.
-
-	The test program makes a number of forks, waits them all, then exits.
-	Most of the time, GDB will get and process the exit event for inferior 1
-	after the exit events of all the children.  But this is not guaranteed.
-	After the last child exits and is waited by the parent, the parent can
-	exit quickly, such that GDB collects from the kernel the exit events for
-	the parent and that child at the same time.  It then chooses one event
-	at random, which can be the event for the parent.  This will result in
-	the parent appearing to exit before its child.  There's not much we can
-	do about it, so I think we have to adjust the test to cope.
-
-	After expect has seen the "exited normally" notification for inferior 1,
-	it immediately does an "info thread" that it expects to come back empty.
-	But at this point, GDB might not have processed inferior 11's (the last
-	child) exit event, so it will look like there is still a thread.  Of
-	course that thread is dead, we just don't know it yet.  But that makes
-	the "no thread" test fail.  If the test waited just a bit more for the
-	"exited normally" notification for inferior 11, then the list of threads
-	would be empty.
-
-	So, first change, make the test collect all the "exited normally"
-	notifications for all inferiors before proceeding, that should ensure we
-	see an empty thread list.  That would fix the first FAIL above.
-
-	However, we would still have the second FAIL, as we expect inferior 11
-	to not be there, it should have been deleted automatically.  Inferior 11
-	is normally deleted when prune_inferiors is called.  That is called by
-	normal_stop, which is only called by fetch_inferior_event only if the
-	event thread completed an execution command FSM (thread_fsm).  But the
-	FSM for the continue command completed when inferior 1 exited.  At that
-	point inferior 11 was not prunable, as it still had a thread.  When
-	inferior 11 exits, prune_inferiors is not called.
-
-	I think that can be considered a GDB bug.  From the user point of view,
-	there's no reason why in one case inferior 11 would be deleted and not
-	in the other case.
-
-	This patch makes the somewhat naive change to call prune_inferiors in
-	fetch_inferior_event, so that it is called in this case.  It is placed
-	at this particular point in the function so that it is called after the
-	user inferior / thread selection is restored.  If it was called before
-	that, inferior 11 wouldn't be pruned, because it would still be the
-	current inferior.
-
-	Change-Id: I48a15d118f30b1c72c528a9f805ed4974170484a
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26272
-
-2022-04-22  Tom Tromey  <tromey@adacore.com>
-
-	Un-break the coff-pe-read.c build
-	This fixes a build breakage in my recent coff-pe-read.c change.
-
-	I'm sorry about this.  I don't understand how it happened, because I
-	definitely built and tested the series on Windows, and I didn't change
-	it before pushing.  Something must have gone wrong on the Windows
-	build, but I don't know what.  I'll investigate and and re-test to be
-	sure.
-
-2022-04-22  Tom Tromey  <tromey@adacore.com>
-
-	More const use and alloca avoidance in coff-pe-read.c
-	This changes another function in coff-pe-read.c to use 'const' more,
-	and to avoid the use of alloca by instead using std::string.
-
-	Use std::string in coff-pe-read.c
-	coff-pe-read.c uses xsnprintf and alloca, but using std::string is
-	better, and just as easy.  In general I think alloca is something to
-	be avoided, and unbounded uses especially so.
-
-	Remove a const-removing cast from coff-pe-read.c
-	coff-pe-read.c casts away const at one spot, but this is easily
-	replaced by calling bfd_get_filename directly in a couple of debugging
-	prints.
-
-	Simplify BFD section iteration in coff-pe-read.c
-	coff-pe-read.c iterates over BFD sections using bfd_map_over_sections,
-	but it's much simpler to use a for-each loop.  This allows for the
-	removal of helper functions and types.
-
-2022-04-22  Tom Tromey  <tromey@adacore.com>
-
-	Fix method naming bug in new DWARF indexer
-	Pedro pointed out that gdb-add-index is much slower with the new DWARF
-	indexer.  He also noticed that, in some cases, the generated
-	.gdb_index would have the wrong fully-qualified name for a method.
-
-	I tracked this down to a bug in the indexer.  If a type could have
-	methods but was marked as a declaration, the indexer was ignoring it.
-	However, this meant that the internal map to find the qualified name
-	was not updated for this container.
-
-2022-04-22  Christoph Muellner  <cmuellner@gcc.gnu.org>
-
-	RISC-V: Add missing DECLARE_INSNs for Zicbo{m,p,z}
-	The recently added support for the Zicbo{m,p,z} extensions did not
-	include DECLARE_INSN() declarations for the instructions.
-	These declarations are needed by GDB's instruction detection code.
-	This patch adds them.
-
-2022-04-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-21  Carl Love  <cel@us.ibm.com>
-
-	Fix for gdb.base/solib-search.exp test.
-	The variable right_lib_flags is not being set correctly to define RIGHT.
-	The value RIGHT is needed to force the address of the library functions
-	lib1_func3 and lib2_func4 to occur at different address in the wrong and
-	right libraries.
-
-	With RIGHT defined correctly, functions lib1_func3 and lib2_func4 occur
-	at different addresses the test runs correctly on Powerpc.
-
-	The test needs the lib2 addresses to be different in the right and
-	wrong cases.  That is the point of introducing function lib2_spacer
-	with the ifdef RIGHT compiler directive.
-
-	On Intel, the ARRAY_SIZE of 1 versus 8192 is sufficient to get the
-	dynamic linker to move the addresses of the library.  You can also get
-	the same effect on PowerPC but you must use a value much larger than
-	8192.
-
-	The key thing is that the test was not properly setting RIGHT to
-	defined to get the lib2_spacer function on Intel and Powerpc.
-
-	Without the patch, we have the Intel backtrace for the bad libraries:
-
-	backtrace
-	#0  break_here () at /home/ ... /gdb/testsuite/gdb.base/solib-search.c:30
-	#1  0x00007ffff7fae156 in ?? ()
-	#2  0x00007fffffffc150 in ?? ()
-	#3  0x00007ffff7fbb156 in ?? ()
-	#4  0x00007fffffffc160 in ?? ()
-	#5  0x00007ffff7fae146 in ?? ()
-	#6  0x00007fffffffc170 in ?? ()
-	#7  0x00007ffff7fbb146 in ?? ()
-	#8  0x00007fffffffc180 in ?? ()
-	#9  0x0000555555555156 in main () at /home/ ... /binutils-gdb/gdb/testsuite/gdb.base/solib-search.c:23
-	Backtrace stopped: previous frame inner to this frame (corrupt stack?)
-	(gdb) PASS: gdb.base/solib-search.exp: backtrace (with wrong libs) (data collection)
-
-	The backtrace on Intel with the good libraries is:
-
-	backtrace
-	#0  break_here () at /.../binutils-gdb/gdb/testsuite/gdb.base/solib-search.c:30
-	#1  0x00007ffff7fae156 in lib2_func4 () at /.../binutils-gdb/gdb/testsuite/gdb.base/solib-search-lib2.c:49
-	#2  0x00007ffff7fbb156 in lib1_func3 () at /.../gdb.base/solib-search-lib1.c:49
-	#3  0x00007ffff7fae146 in lib2_func2 () at /.../testsuite/gdb.base/solib-search-lib2.c:30
-	#4  0x00007ffff7fbb146 in lib1_func1 () at /.../gdb.base/solib-search-lib1.c:30
-	#5  0x0000555555555156 in main () at /...solib-search.c:23
-	(gdb) PASS: gdb.base/solib-search.exp: backtrace (with right libs) (data collection)
-	PASS: gdb.base/solib-search.exp: backtrace (with right libs)
-
-	In one case the backtrace is correct and the other it
-	is wrong on Intel.  This is due to the fact that the ARRAY_SIZE caused
-	the dynamic linker to move the library function addresses around.  I
-	believe it has to do with the default size of the data and code
-	sections used by the dynamic linker.
-
-	So without the patch the backtrace on PowerPC looks like:
-
-	 backtrace
-	#0  break_here () at /.../solib-search.c:30
-	#1  0x00007ffff7f007f4 in lib2_func4 () at /.../solib-search-lib2.c:49
-	#2  0x00007ffff7f307f4 in lib1_func3 () at /.../solib-search-lib1.c:49
-	#3  0x00007ffff7f007ac in lib2_func2 () at /.../solib-search-lib2.c:30
-	#4  0x00007ffff7f307ac in lib1_func1 () at /.../solib-search-lib1.c:30
-	#5  0x000000001000074c in main () at /.../solib-search.c:23
-
-	for both the good and bad libraries.
-
-	The patch fixes defining RIGHT in solib-search-lib1.c and solib-search-
-	lib2.c.  Note, without the patch the lib1_spacer and lib2_spacer
-	functions do not show up in the object dump of the Intel or Powerpc
-	libraries as it should.  The patch fixes that by making sure RIGHT gets
-	defined.
-
-	Now with the patch the backtrace for the bad library on PowerPC looks
-	like:
-
-	backtrace
-	#0  break_here () at /.../solib-search.c:30
-	#1  0x00007ffff7f0083c in __glink_PLTresolve () from /.../solib-search-lib2.so
-	Backtrace stopped: frame did not save the PC
-
-	And the backtrace for the good libraries on PowerPC looks like:
-
-	backtrace
-	#0  break_here () at /.../solib-search.c:30
-	#1  0x00007ffff7f0083c in lib2_func4 () at /.../solib-search-lib2.c:49
-	#2  0x00007ffff7f3083c in lib1_func3 () at /.../solib-search-lib1.c:49
-	#3  0x00007ffff7f007cc in lib2_func2 () at /.../solib-search-lib2.c:30
-	#4  0x00007ffff7f307cc in lib1_func1 () at /.../solib-search-lib1.c:30
-	#5  0x000000001000074c in main () at /.../solib-search.c:23
-	(gdb) PASS: gdb.base/solib-search.exp: backtrace (with right libs) (data collection)
-	PASS: gdb.base/solib-search.exp: backtrace (with right libs)
-
-	The issue then is on Power where the ARRAY_SIZE of 1 versus 8192 is not
-	sufficient to cause the dymanic linker to allocate the libraries at
-	different addresses.  I don't claim to understand the specifics of how
-	the dynamic linker works and what the default size is for the data and
-	code sections are.  My guess is by default PowerPC allocates a larger
-	data size by default, which is large enough to hold array[8192].  The
-	default size of the data section allocated by the dynamic linker on
-	Intel is not large enough to hold array[8192] thus causing the code
-	section on Intel to have to move when the large array is defined.
-
-	Note on PowerPC, if you make ARRAY_SIZE big enough, then you will cause
-	the library addresses to occur at different addresses as the larger
-	data section forces the code section to a different address.  That was
-	actually my original fix for the program until I spoke with Doug Evans
-	who originally wrote the test.  Doug noticed that RIGHT was not getting
-	defined as he originally intended in the test.
-
-	With the patch to fix the definition of RIGHT, PowerPC has a bad and a
-	good backtrace because the address of lib1_func3 and lib2_func4 both
-	move because lib1_spacer and lib2_spacer are now defined
-	before lib1_func3 and lib2_func4.
-
-	Without the patch, the lib1_spacer and lib2_spacer function doesn't show
-	up in the binary for the correct or incorrect library on Intel or PowerPC.
-	With the patch, RIGHT gets defined as originally intended for the test on
-	both architectures and lib1_spacer and lib2_spacer function show up in the
-	binaries on both architectures changing the other function addresses as
-	intended thus causing the test work as intended on PowerPC.
-
-2022-04-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/dwarf: remove line_header::header_length field
-	This can be a local in dwarf_decode_line_header.
-
-	Change-Id: I2ecf4616d1a3197bd1e81ded9f999a2da9a685af
-
-2022-04-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/dwarf: remove line_header::total_length field
-	This doesn' have to be a field, it can simply be a local variable in
-	dwarf_decode_line_header.  Name the local variable "unit_length", since
-	that's what the field in called in DWARF 4 and 5.  It's always easier to
-	follow the code with the standard on the side when we use the same
-	terminology.
-
-	Change-Id: I3ad1022afd9410b193ea11b9b5437686c1e4e633
-
-2022-04-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: fix "set temporary breakpoint" DUPLICATEs
-	Commit c67f4e538 ("gdb/testsuite: make gdb.ada/mi_prot.exp stop at
-	expected location") introduced some DUPLICATEs in MI tests using
-	mi_continue_to_line, for example:
-
-	    DUPLICATE: gdb.ada/mi_ref_changeable.exp: mi_continue_to_line: set temporary breakpoint
-
-	These test names were previously differentiated by the location passed
-	to mi_continue_to_line.  Since the location can contain a path, that
-	commit removed the location from the test name, in favor of a hardcoded
-	string "set temporary breakpoint", hence removing the differentiator.
-
-	mi_continue_to_line receives a "test" parameter, containing a test
-	name.  Add a "with_test_prefix" with that name, so that all tests
-	recorded during mi_continue_to_line have this in their name.
-
-	mi_continue_to_line passes that "test" string to mi_get_stop_line, that
-	is a bit superfluous.  mi_get_stop_line only uses that string in case of
-	failures (it doesn't record a pass if everything goes fine).  Since it's
-	not crucial, just remove it, and adjust all callers.
-
-	Adjust three gdb.mi/mi-var-*.exp tests to use prefixes to differentiate
-	the multiple calls to mi_run_inline_test (which calls
-	mi_continue_to_line).
-
-	Change-Id: I511c6caa70499f8657b1cde37d71068d74d56a74
-
-2022-04-21  Tom Tromey  <tromey@adacore.com>
-
-	Always use dwarf2_initialize_objfile
-	Internally we noticed that some tests would fail like so on Windows:
-
-	warning: Section .debug_aranges in [...] has duplicate debug_info_offset 0x0, ignoring .debug_aranges.
-
-	Debugging showed that, in fact, a second CU was being created at this
-	offset.  We tracked this down to the fact that, while the ELF reader
-	is careful to re-use the per-BFD data, other readers are not, and
-	could re-read the DWARF data multiple times.
-
-	However, since the change to allow an objfile to have multiple "quick
-	symbol" implementations, there's no reason for this approach -- it's
-	safe and easy for all symbol readers to reuse the per-BFD data when
-	reading DWARF.
-
-	This patch implements this idea, simplifying dwarf2_build_psymtabs and
-	making it private, and then switching to dwarf2_initialize_objfile as
-	the sole way to start the DWARF reader.
-
-	Note that, while I think the call to dwarf2_build_frame_info in
-	machoread.c is also obsolete, I haven't attempted to remove it here.
-
-2022-04-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix 'remote show FOO-packet' aliases
-	The following behaviour was observed in GDB:
-
-	  (gdb) show remote X-packet
-	  Support for the `p' packet is auto-detected, currently unknown.
-
-	Note the message mentions the 'p' packet.  This is a regression since
-	this commit:
-
-	  commit 8579fd136a614985bd27f20539c7bb7c5a51287d
-	  Date:   Mon Nov 8 14:58:46 2021 +0000
-
-	      gdb/gdbsupport: make xstrprintf and xstrvprintf return a unique_ptr
-
-	Before this commit the behaviour was:
-
-	  (gdb) show remote X-packet
-	  Support for the `X' packet is auto-detected, currently unknown.
-
-	The problem was caused by a failed attempt to ensure that some
-	allocated strings were deleted when GDB exits.  The code in the above
-	commit attempted to make use of 'static' to solve this problem,
-	however, the solution was just wrong.
-
-	In this new commit I instead allocate a static vector into which all
-	the allocated strings are stored, this ensures the strings are
-	released when GDB exits (which makes output from tools like valgrind
-	cleaner), but each string within the vector can be unique, which fixes
-	the regression.
-
-2022-04-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: add path_join function
-	In this review [1], Eli pointed out that we should be careful when
-	concatenating file names to avoid duplicated slashes.  On Windows, a
-	double slash at the beginning of a file path has a special meaning.  So
-	naively concatenating "/"  and "foo/bar" would give "//foo/bar", which
-	would not give the desired results.  We already have a few spots doing:
-
-	  if (first_path ends with a slash)
-	    path = first_path + second_path
-	  else
-	    path = first_path + slash + second_path
-
-	In general, I think it's nice to avoid superfluous slashes in file
-	paths, since they might end up visible to the user and look a bit
-	unprofessional.
-
-	Introduce the path_join function that can be used to join multiple path
-	components together (along with unit tests).
-
-	I initially wanted to make it possible to join two absolute paths, to
-	support the use case of prepending a sysroot path to a target file path,
-	or the prepending the debug-file-directory to a target file path.  But
-	the code in solib_find_1 shows that it is more complex than this anyway
-	(for example, when the right hand side is a Windows path with a drive
-	letter).  So I don't think we need to support that case in path_join.
-	That also keeps the implementation simpler.
-
-	Change a few spots to use path_join to show how it can be used.  I
-	believe that all the spots I changed are guarded by some checks that
-	ensure the right hand side operand is not an absolute path.
-
-	Regression-tested on Ubuntu 18.04.  Built-tested on Windows, and I also
-	ran the new unit-test there.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-April/187559.html
-
-	Change-Id: I0df889f7e3f644e045f42ff429277b732eb6c752
-
-2022-04-21  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb_spawn_attach_cmdline: use unsupported instead of untested
-	In a previous commit (b750766ac96: gdb/testsuite: Introduce and use
-	gdb_spawn_attach_cmdline), if gdb_spawn_attach_cmdline cannot have GDB
-	attach to the process because of ptrace restrictions (operation not
-	permitted), the proc issues UNTESTED.  This should really be
-	UNSUPPORTED, as it is done in gdb_attach.
-
-	This patch fixes this oversight.
-
-	Change-Id: Ib87e33b9230f3fa7a85e06220ef4c63814b71f7d
-
-2022-04-21  Enze Li  <lienze2010@hotmail.com>
-
-	gdb/testsuite: add binary testcases to py-format-string.exp
-	We currently only test decimal and hexadecimal for the
-	gdb.Value.format_string() interface, this patch adds testcases for
-	binary format.
-
-	Tested on x86_64 openSUSE Tumbleweed(VERSION_ID="20220413").
-
-2022-04-21  Pedro Alves  <pedro@palves.net>
-
-	gdb.debuginfod/fetch_src_and_symbols.exp: Fix "notice empty URL" test
-	The gdb_test_multiple pattern for the "notice empty URL" test in
-	gdb.debuginfod/fetch_src_and_symbols.exp misses expecting the prompt.
-	Fix it by using -re -wrap.
-
-	Also, by using "confirm off", the message GDB prints if Debuginfod
-	downloading is available doesn't contain "Enable debuginfod" any
-	longer.  E.g.:
-
-	~~~
-	  (gdb) file testsuite/outputs/gdb.debuginfod/fetch_src_and_symbols/fetch_src_and_symbols
-	  Reading symbols from testsuite/outputs/gdb.debuginfod/fetch_src_and_symbols/fetch_src_and_symbols...
-
-	  This GDB supports auto-downloading debuginfo from the following URLs:
-	    <http://localhost:123>
-	  Enable debuginfod for this session? (y or [n])
-	~~~
-
-	~~~
-	  (gdb) with confirm off -- file testsuite/outputs/gdb.debuginfod/fetch_src_and_symbols/fetch_src_and_symbols
-	  Reading symbols from testsuite/outputs/gdb.debuginfod/fetch_src_and_symbols/fetch_src_and_symbols...
-
-	  This GDB supports auto-downloading debuginfo from the following URLs:
-	    <http://127.0.0.1:8000>
-	    <127.0.0.1:8000>
-	  Debuginfod has been disabled.
-	  To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
-	  (No debugging symbols found in testsuite/outputs/gdb.debuginfod/fetch_src_and_symbols/fetch_src_and_symbols)
-	  (gdb)
-	~~~
-
-	I handled that correctly in the other tests that use test_urls, but
-	had forgotten to update the "notice empty URL" one.
-
-	Change-Id: I00040c83466e1494b3875574eb009c571a1504bf
-
-2022-04-21  Alan Modra  <amodra@gmail.com>
-
-	prune .note.GNU-stack warning from testsuite
-	binutils/
-		* testsuite/lib/binutils-common.exp (prune_warnings_extra): Remove
-		.note.GNU-stack warning.
-		(run_dump_test): Call prune_warnings for ld and objcopy output.
-	ld/
-		* testsuite/ld-elf/elf.exp: Disable prune_warnings_extra temporarily
-		around test for absent .note.GNU-stack
-		* testsuite/ld-cris/globsymw2.s,
-		* testsuite/ld-cris/warn3.d: Modify "is not implemented" message
-		to avoid dejagnu prune_warnings.
-
-	ld testsuite xcoff XPASS
-		* testsuite/ld-scripts/defined5.d: Don't xfail xcoff targets.
-
-	Delete unused COFF gas macro
-		* config/obj-coff.h (sy_obj): Don't define.
-		(OBJ_SYMFIELD_TYPE): Revise comments.
-
-2022-04-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-20  Aaron Merey  <amerey@redhat.com>
-
-	gdb/debuginfod: Prevent out_of_range exception
-	Trailing whitespace in the string of debuginfod URLs causes an
-	out_of_range exception during the printing of URLs for the first
-	use notice.
-
-	To fix this, stop printing URLs when the substring to be printed
-	consists only of whitespace.
-
-	Also add first use notice testcases.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-
-2022-04-20  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: Introduce and use gdb_spawn_attach_cmdline
-	Following a7e6a19e87f3d719ea23c65b580a6d9bca4ccab3 "gdb: testsuite: add
-	new gdb_attach to check "attach" command", this commit proposes to
-	introduce the gdb_spawn_attach_cmdline helper and use it in
-	gdb.base/attach.exp.
-
-	This helper starts GDB and adds the "--pid=$PID" argument.
-
-	Also note that both the original and new implementation use
-	gdb_spawn_with_cmdline_opts, which in the end uses default_gdb_spawn.
-	This makes sure that we use $INTERNAL_GDBFLAGS, which by default already
-	contain "-iex \"set height 0\" -iex \"set width 0\"".  To avoid
-	repetition of those arguments, gdb_spawn_attach_cmdline does not repeat
-	those arguments.
-
-	To maintain a behavior similat to what gdb.base/attach.exp used to do,
-	gdb_spawn_attach_cmdline keeps the -quiet flag.
-
-	Tested on x86_64-gnu-linux
-
-	Change-Id: I1fdcdb71c86d9c5d34bb28fc86fac68bcec37358
-
-2022-04-20  Tom Tromey  <tom@tromey.com>
-
-	Replace symbol_symtab with symbol::symtab
-	This turns symbol_symtab into a method on symbol.  It also replaces
-	symbol_set_symtab with a method.
-
-	Replace symbol_arch with symbol::arch
-	This turns symbol_arch into a method on symbol.
-
-	Replace symbol_objfile with symbol::objfile
-	This turns symbol_objfile into a method on symbol.
-
-	Remove symbol::aclass_index
-	Symbols have an aclass_index method, but this isn't needed, because
-	the aclass index isn't useful outside of the symbol implementation.
-
-	Use array_view for symbol_impls
-	It seemed to me that using array_view for symbol_impls would give a
-	bit more error checking, at least when gdb is built in libstdc++ debug
-	mode.
-
-	Add accessors for symbol's artificial field
-	For a series I'm experimenting with, it was handy to hide a symbol's
-	"artificial" field behind accessors.  This patch is the result.
-
-	Unify the DWARF index holders
-	The dwarf2_per_bfd object has a separate field for each possible kind
-	of index.  Until an earlier patch in this series, two of these were
-	even derived from a common base class, but still had separate slots.
-	This patch unifies all the index fields using the common base class
-	that was introduced earlier in this series.  This makes it more
-	obvious that only a single index can be active at a time, and also
-	removes some code from dwarf2_initialize_objfile.
-
-	Add an ad hoc version check to dwarf_scanner_base
-	Some generic code in the DWARF reader has a special case for older
-	versions of .gdb_index.  This patch adds an ad hoc version check
-	method so that these spots can work without specific knowledge of
-	which index is in use.
-
-	Simplify version check in dw2_symtab_iter_next
-	This simplifies the index versio check in dw2_symtab_iter_next, by
-	passing a reference to the index object to this function.  This avoids
-	an indirection via the per_bfd object.
-
-	Introduce and use dwarf_scanner_base
-	This introduces dwarf_scanner_base, a base class for all the index
-	readers in the DWARF code.  Then, it changes both mapped_index_base
-	and cooked_index_vector to derive from this new base class.
-
-	Introduce readnow_functions
-	This introduces readnow_functions, a new subclass of
-	dwarf2_base_index_functions, and changes the DWARF reader to use it.
-	This lets us drop the "index is NULL" hack from the gdb index code.
-
-	Remove some "OBJF_READNOW" code from dwarf2_debug_names_index
-	The dwarf2_debug_names_index code treats a NULL debug_names_table as
-	if it were from OBJF_READNOW.  However, this trick is only done for
-	gdb_index, never for debug_names -- see dwarf2_initialize_objfile.
-
-	Let mapped index classes create the quick_symbol_functions object
-	This changes the mapped index classes to create the
-	quick_symbol_functions objects.  This is a step toward having a more
-	abstract interface to mapped indices.
-
-	Give mapped_index_base a virtual destructor
-	This changes mapped_index_base to have a virtual destructor, so it can
-	be destroyed via its base class.
-
-	Move mapped_index_base to new header file
-	This moves mapped_index_base and the helper struct name_component to a
-	new header file in gdb/dwarf2/.
-
-2022-04-20  Jan Beulich  <jbeulich@suse.com>
-
-	x86: reject all invalid SAE variants
-	So far an SAE-only specifier was accepted for static-rounding insns,
-	while SAE-only insns didn't accept static rounding specifiers. If
-	anything it would make sense the other way around, allowing SAE-only
-	insns to have the (ignored) rounding mode specified individually rather
-	than globally via -mevexrcig=. But for now make things match the SDM.
-
-2022-04-20  Alan Modra  <amodra@gmail.com>
-
-	Re: xcoff: implement linker relaxation
-		* xcofflink.c (xcoff_stub_csect_name): Increase buffer size.
-		(xcoff_stub_get_csect_in_range, xcoff_build_one_stub): Whitespace.
-		(bfd_xcoff_size_stubs): Cast PRIx64 arg to required type.
-		Don't use freed stub_name.
-
-	Revert "as: Reject unknown -gXXX option" testsuite
-	This reverts the test committed as part of 6ea673e2d6.
-
-2022-04-20  Cl?ment Chigot  <clement.chigot@atos.net>
-
-	xcoff: implement linker relaxation
-	bfd/ChangeLog:
-
-		* coff-rs6000.c (xcoff_reloc_type_noop): Add info argument.
-		(xcoff_reloc_type_fail): Likewise.
-		(xcoff_reloc_type_pos): Likewise.
-		(xcoff_reloc_type_neg): Likewise.
-		(xcoff_reloc_type_rel): Likewise.
-		(xcoff_reloc_type_toc): Likewise.
-		(xcoff_reloc_type_ba): Likewise.
-		(xcoff_reloc_type_crel): Likewise.
-		(xcoff_reloc_type_tls): Likewise.
-		(xcoff_reloc_type_br): Add stub handler.
-		(xcoff_ppc_relocate_section): Add info to
-		xcoff_calculate_relocation.
-		(xcoff_stub_indirect_call_code): New constant.
-		(xcoff_stub_shared_call_code): Likewise.
-		(bfd_xcoff_backend_data): Add stub code fields.
-		(bfd_pmac_xcoff_backend_data): Likewise.
-		* coff64-rs6000.c (xcoff64_reloc_type_br): Add stub handler.
-		(xcoff64_ppc_relocate_section): Add info to
-		xcoff64_calculate_relocation.
-		(xcoff64_stub_indirect_call_code): New constant.
-		(xcoff64_stub_shared_call_code): Likewise.
-		(bfd_xcoff_backend_data): Add stub code fields.
-		(bfd_xcoff_aix5_backend_data): Likewise.
-		* libxcoff.h (struct xcoff_backend_data_rec): Add stub fields.
-		(bfd_xcoff_stub_indirect_call_code): New define.
-		(bfd_xcoff_stub_indirect_call_size): New define.
-		(bfd_xcoff_stub_shared_call_code): New define.
-		(bfd_xcoff_stub_shared_call_size): New define.
-		(xcoff_reloc_function): Add info argument.
-		(enum xcoff_stub_type): New enum.
-		(struct xcoff_stub_hash_entry): New structure.
-		* xcofflink.c (struct xcoff_link_hash_table): Add stub hash
-		table and params fields.
-		(xcoff_stub_hash_entry): New define.
-		(xcoff_stub_hash_lookup): New define.
-		(stub_hash_newfunc): New function.
-		(_bfd_xcoff_bfd_link_hash_table_free): Free the new stub hash
-		table.
-		(_bfd_xcoff_bfd_link_hash_table_create): Create the new stub
-		hash table.
-		(xcoff_link_add_symbols): Save rawsize for XTY_SD.
-		(bfd_xcoff_link_init): New function.
-		(xcoff_stub_csect_name): New function.
-		(xcoff_stub_get_csect_in_range): New function.
-		(xcoff_stub_name): New function.
-		(bfd_xcoff_get_stub_entry): New function.
-		(bfd_xcoff_type_of_stub): New function.
-		(xcoff_add_stub): New function.
-		(xcoff_build_one_stub): New function.
-		(bfd_xcoff_size_stubs): New function.
-		(bfd_xcoff_build_stubs): New function.
-		(xcoff_stub_create_relocations): New function.
-		(xcoff_link_input_bfd): Adapt relocations to stub.
-		(xcoff_write_global_symbol): Adapt to new TOC entries generated
-		for stubs.
-		(_bfd_xcoff_bfd_final_link): Handle stub file.
-		* xcofflink.h (struct bfd_xcoff_link_params): New structure.
-
-	ld/ChangeLog:
-
-		* emultempl/aix.em (params): New variable.
-		(stub_file): New variable.
-		(xcoff_add_stub_section): New function.
-		(xcoff_layout_sections_again): New function
-		(hook_in_stub): New function.
-		(_after_allocation): Add stub creation.
-		(_create_output_section_statements): Allocate stub file and
-		pass params to backend.
-
-2022-04-20  Cl?ment Chigot  <clement.chigot@atos.net>
-
-	Stubs (added in a later patch) will generate new .loader symbols, once the allocations have been done. Thus, the .loader section cannot be layout before that.
-	bfd/ChangeLog:
-
-		* coff-rs6000.c (_bfd_xcoff_put_ldsymbol_name): Write len in
-		  ldinfo->strings instead of directly in the output_bfd.
-		* coff64-rs6000.c (_bfd_xcoff64_put_ldsymbol_name): Likewise.
-		* xcofflink.c (struct xcoff_link_hash_table): Remove ldrel_count
-		  field. Add ldinfo field.
-		(xcoff_mark_symbol): Adjust to new ldinfo field.
-		(xcoff_mark): Likewise.
-		(bfd_xcoff_link_count_reloc): Likewise.
-		(xcoff_build_loader_section): Split into two functions: one that
-		build the loader section (this function) and one that only size
-		it...
-		(xcoff_size_loader_section): ... (this function).
-		(bfd_xcoff_size_dynamic_sections): Adapt to new ldinfo field.
-		Move the part where the dynamic sections are build to ...
-		(bfd_xcoff_build_dynamic_sections): ... this function.
-		* xcofflink.h: Add bfd_xcoff_build_dynamic_sections prototype.
-
-	include/ChangeLog:
-
-		* coff/xcoff.h (struct xcoff_loader_info): Add ldrel_count and
-		libpath fields.
-
-	ld/ChangeLog:
-
-		* emultempl/aix.em (_after_allocation): New function.
-
-2022-04-20  Tom Tromey  <tom@tromey.com>
-
-	Use symbol_symtab accessor in compile-object-load.c
-	I noticed that compile-object-load.c directly references owner.symtab
-	of a symbol.  However, I think it's better for all users to call
-	symbol_symtab.  This patch makes this change.
-
-2022-04-20  Nick Clifton  <nickc@redhat.com>
-
-	Add linker warning for when it creates an executable stack.
-	   PR 29072
-
-2022-04-20  Tom Tromey  <tom@tromey.com>
-
-	Micro-optimize cooked_index_entry::full_name
-	I noticed that cooked_index_entry::full_name can return the canonical
-	string when there is no parent entry.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-04-20  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Implement loongarch_scan_prologue()
-	If can't determine prologue from the symbol table, need to examine
-	instructions. Implement loongarch_scan_prologue() to analyze the
-	function prologue from START_PC to LIMIT_PC, return the address of
-	the first instruction past the prologue.
-
-2022-04-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	as: Reject unknown -gXXX option
-		* as.c (parse_args): Reject unknown -gXXX option.
-		* testsuite/gas/all/empty.s: New file.
-		* testsuite/gas/all/pr29067.d: Likewise.
-		* testsuite/gas/all/pr29067.err: Likewise.
-		* testsuite/gas/all/gas.exp: Run pr29067.
-
-2022-04-19  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/selftest-arch: Make register_test_foreach_arch generate arch tests lazily
-	The register_test_foreach_arch is used to instantiate a given selftest
-	for all architectures supported by GDB.  It is used in many _initialize_*
-	functions (under initialize_all_files, called by gdb_init).
-
-	Because the call is done during GDB's initialization, and because there
-	is no guaranty about the order in which all the _initialize_* functions
-	are executed, when register_test_foreach_arch is called, GDB is not
-	fully initialized.  Specifically, when a particular initialize function
-	is executed, only the architectures registered at that point are listed
-	by gdbarch_printable_names.
-
-	As a consequence, the list of selftest effectively executed depends on
-	the order the _initialize_* functions are called.  This can be observed
-	with the following:
-
-	    $ ./gdb/gdb \
-	        -data-directory ./gdb/data-directory \
-	        -quiet -batch -ex "maint selftest" 2>&1 \
-	        | grep -E "Ran [0-9]+ unit tests"
-	    Ran 145 unit tests, 0 failed
-	    $ GDB_REVERSE_INIT_FUNCTIONS=1 ./gdb/gdb \
-	        -data-directory ./gdb/data-directory \
-	        -quiet -batch -ex "maint selftest" 2>&1 \
-	        | grep -E "Ran [0-9]+ unit tests"
-	    Ran 82 unit tests, 0 failed
-
-	To fix this, make register_test_foreach_arch register a lazy selftest
-	generator.  This way when the test generator is eventually executed, all
-	architectures are registered and we do not have a dependency on the
-	order the initialize functions are executed in.
-
-	Tested on x86_64-linux
-
-	Change-Id: I88eefebf7d372ad672f42d3a103e89354bc8a925
-
-2022-04-19  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdbsupport/selftest: Allow lazy registration
-	This patch adds a way to delay the registration of tests until the
-	latest possible moment.  This is intended for situations where GDB needs
-	to be fully initialized in order to decide if a particular selftest can
-	be executed or not.
-
-	This mechanism will be used in the next patch.
-
-	Change-Id: I7f6b061f4c0a6832226c7080ab4e3a2523e1b0b0
-
-2022-04-19  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdbsupport/selftest: Replace for_each_selftest with an iterator_range
-	Remove the callback-based selftests::for_each_selftest function and use
-	an iterator_range instead.
-
-	Also use this iterator range in run_tests so all iterations over the
-	selftests are done in a consistent way.  This will become useful in a
-	later commit.
-
-	Change-Id: I0b3a5349a7987fbcb0071f11c394e353df986583
-
-2022-04-19  Jan Beulich  <jbeulich@suse.com>
-
-	x86: don't mistake ordinary immediates for SAE / rounding control
-	The way SAE templates are constructed was always puzzling me (including
-	the need for separate templates in the first place), and expressing the
-	extzra attribute via Imm8 actually has a bad effect: Ordinary immediates
-	would also be accepted, leading to an extra byte being added after the
-	instruction (i.e. generating bad code). Before re-working this (in
-	particular to accept proper Intel syntax there), fix the immediate issue
-	by adding the so far missing check.
-
-	x86: VCMPSH is Evex.LLIG
-	These were mistakenly flagged as Evex.128. Getting the LLIG status right
-	for insns allowing for SAE is a prereq for planned further work.
-
-	x86: drop stray CheckRegSize from VFPCLASSPH
-	Like VFPCLASSP{S,D} it has only a single operand allowing multiple
-	sizes, hence there are no pairs of operands to check for consistent
-	size.
-
-	x86/Intel: test non-legacy VCVT{,U}SI2SH insn forms
-	For an unclear reason corresponding AVX512F tests were apparently not
-	cloned or used as reference here, and instead the bogus legacy forms of
-	the insns (with the embedded rounding specifier not last) were used.
-
-2022-04-19  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct and simplify NOP disassembly
-	It's not just REX.W which is ignored with opcode 0x90. The same goes for
-	REX.R and REX.X as well as empty REX. None of these are forms of
-	"xchg %eax,%eax" (which would mean zero-extending %eax to %rax), so they
-	also shouldn't be disassembled this way.
-
-	While there simplify things: A single hook function suffices, thus
-	making it unnecessary to keep two expressions in sync. And checking
-	ins->address_mode for mode_64bit also is unnecessary, as "rex" can be
-	non-zero only in that case anyway.
-
-2022-04-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/dwarf: don't automatically add directory and file entry for DWARF 5
-	To support DWARF 5 in the DWARF assembler line tables, we currently copy
-	the first user-provided directory and the first user-provided files and
-	make them elements at indices 0 in the directory and file name tables.
-	That was a sufficient behavior at the time (see commit 44fda089397a
-	("[gdb/testsuite] Support .debug_line v5 in dwarf assembler")), but in
-	the following patches, I would need to have finer grained control on
-	what is generated exactly.  For example, I'd like to generate a DWARF 5 line
-	table with just a single file and a single directory.
-
-	Get rid of this behavior, and implement what is suggested in
-	44fda089397a: make include_dir return the directory index that can be
-	used to refer to that directory entry (based on the DWARF version), and
-	use it afterwards.
-
-	Adjust dw2-lines.exp and dw2-prologue-end.exp accordingly.  Their produced
-	DWARF5 binaries will change a bit, in that they will now have a single
-	directory and file, where they had two before.  But it doesn't change
-	the expected GDB behavior.
-
-	Change-Id: I5459b16ac9b7f28c34c9693c35c9afd2ebb3aa3b
-
-2022-04-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: use gdb_tilde_expand instead of gdb_tilde_expand_up in source_script_with_search
-	Since this is the latest use of gdb_tilde_expand_up, remove it.
-
-	Change-Id: I964c812ce55fe087876abf91e7a3577ad79c0425
-
-2022-04-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: make gdb_realpath_keepfile return an std::string
-	I'm trying to switch these functions to use std::string instead of char
-	arrays, as much as possible.  Some callers benefit from it (can avoid
-	doing a copy of the result), while others suffer (have to make one more
-	copy).
-
-	Change-Id: I793aab17baaef8345488f4c40b9094e2695425bc
-
-2022-04-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: make gdb_abspath return an std::string
-	I'm trying to switch these functions to use std::string instead of char
-	arrays, as much as possible.  Some callers benefit from it (can avoid
-	doing a copy of the result), while others suffer (have to make one more
-	copy).
-
-	Change-Id: Iced49b8ee2f189744c5072a3b217aab5af17a993
-
-2022-04-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: call gdb_tilde_expand instead of gdb_tilde_expand_up in source_script_with_search
-	This removes a use of gdb_tilde_expand_up, which is removed later in
-	this series.
-
-	Change-Id: I5887d526cea987103e4ca24514a982b0a28e992a
-
-2022-04-18  Tom Tromey  <tromey@adacore.com>
-
-	Update gnulib
-	This updates gnulib to a relatively recent commit.  Most of this was
-	done by the gnulib import script; the only change I made was to
-	update-gnulib.sh.
-
-	Tested on x86-64 Fedora 34.  I also did a mingw cross build.
-
-2022-04-18  Tom Tromey  <tom@tromey.com>
-
-	Fix C++ cast of derived class to base class
-	PR c++/28907 points out that casting from a derived class to a base
-	class fails in some situations.  The problem turned out to be a
-	missing use of value_embedded_offset.  One peculiarity here is that,
-	if you managed to construct a pointer-to-derived with an embedded
-	offset of 0, the cast would work -- for example, one of the two new
-	tests here passes without the patch.
-
-	This embedded offset stuff is an endless source of bugs.  I wonder if
-	it's possible to get rid of it somehow.
-
-	Regression tested on x86-64 Fedora 34.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28907
-
-2022-04-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: make gdb.ada/mi_prot.exp stop at expected location
-	This test attempts to run until the line marked "STOP", which is at
-	prot.adb:34.  It first runs until the "main" symbol, then tries to place
-	a breakpoint by line at line 34, without specifying the source file.  When looking at the logs:
-
-	    -break-insert -t 34^M
-	    ^done,bkpt={number="2",type="breakpoint",disp="del",enabled="y",addr="0x0000555555558a6c",func="adafinal",file="/home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.ada/mi_pro    t/b~prot.adb",fullname="/home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.ada/mi_prot/b~prot.adb",line="44",thread-groups=["i1"],times="0",original-location="/home/simark/b    uild/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.ada/mi_prot/b~prot.adb:34"}^M
-	    ... continues ...
-	     *stopped,reason="breakpoint-hit",disp="del",bkptno="2",frame={addr="0x0000555555558a6c",func="adafinal",args=[],file="/home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.ada/    mi_prot/b~prot.adb",fullname="/home/simark/build/binutils-gdb-one-target/gdb/testsuite/outputs/gdb.ada/mi_prot/b~prot.adb",line="44",arch="i386:x86-64"},thread-id="1",stopped-threads="all",co    re="8"^M
-
-	... we see that the breakpoint is placed in some generated file, not in
-	the test source file as we expect.  The problem is that "b main" in Ada
-	does not place a breakpoint on the "Ada main", but on some symbol in a
-	generated source file.  So when stopped at the "main" symbol, we are not
-	stopped in the file that contains the STOP marker at line 34.
-
-	The test passes anyway today, so it doesn't seem to matter that we are
-	stopped at an unexpected location.  But it starts failing with this
-	patch [1], because b~prot.adb:34 happens to be between two functions, so
-	the breakpoint doesn't resolve.
-
-	Fix this by placing the breakpoint at "$srcfile:$line", which works
-	regardless of what is the current source file.
-
-	However, this ends up introducing a path in the test name.  Modify
-	mi_tbreak and mi_continue_to_line to avoid that.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-April/187686.html
-
-	Change-Id: I742e2a9993046dcb5e30c64fe2ad920a363baf75
-
-2022-04-18  Vignesh Balasubramanian  <Vignesh.Balasubrmanian@amd.com>
-
-	gdb/testsuite: add text_segment option to gdb_compile
-	LLVM's lld linker doesn't have the "-Ttext-segment" option, but
-	"--image-base" can be used instead.
-
-	To centralize the logic of checking which option is supported, add the
-	text_segment option to gdb_compile.  Change tests that are currently
-	using -Ttext-segment to use that new option instead.
-
-	This patch fixes only compilation error, for example:
-
-	Before:
-
-	    $ make check TESTS="gdb.base/jit-elf.exp" RUNTESTFLAGS="CC_FOR_TARGET=clang LDFLAGS_FOR_TARGET=-fuse-ld=ld"
-	    Running /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/jit-elf.exp ...
-	    gdb compile failed, clang-13: warning: -Xlinker -Ttext-segment=0x7000000: 'linker' input unused [-Wunused-command-line-argument]
-
-	After:
-
-	    $ make check TESTS="gdb.base/jit-elf.exp" RUNTESTFLAGS="CC_FOR_TARGET=clang LDFLAGS_FOR_TARGET=-fuse-ld=ld"
-	    Running /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/jit-elf.exp ...
-	    FAIL: gdb.base/jit-elf.exp: one_jit_test-1: continue to breakpoint: break here 1
-	    FAIL: gdb.base/jit-elf.exp: one_jit_test-1: continue to breakpoint: break here 2
-	    FAIL: gdb.base/jit-elf.exp: one_jit_test-2: continue to breakpoint: break here 1
-	    FAIL: gdb.base/jit-elf.exp: one_jit_test-2: info function ^jit_function
-	    FAIL: gdb.base/jit-elf.exp: one_jit_test-2: continue to breakpoint: break here 2
-	    FAIL: gdb.base/jit-elf.exp: attach: one_jit_test-2: continue to breakpoint: break here 1
-	    FAIL: gdb.base/jit-elf.exp: attach: one_jit_test-2: break here 1: attach
-	    FAIL: gdb.base/jit-elf.exp: PIE: one_jit_test-1: continue to breakpoint: break here 1
-	    FAIL: gdb.base/jit-elf.exp: PIE: one_jit_test-1: continue to breakpoint: break here 2
-
-	                    === gdb Summary ===
-
-	    # of expected passes            26
-	    # of unexpected failures        9
-
-	Change-Id: I3678c5c9bbfc2f80671698e28a038e6b3d14e635
-
-2022-04-18  Enze Li  <lienze2010@hotmail.com>
-
-	gdb: fix using clear command to delete non-user breakpoints(PR cli/7161)
-	The clear command shouldn't delete momentary and internal breakpoints,
-	nor internal breakpoints created via Python's gdb.Breakpoint.
-
-	This patch fixes this issue and adds a testcase.
-
-	Regression tested on x86_64 openSUSE Tumbleweed(VERSION_ID="20220413").
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7161
-
-2022-04-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-16  Tom Tromey  <tom@tromey.com>
-
-	Add comments to dwarf2/abbrev-cache.h
-	This patch started when I noticed that the unordered_set include
-	wasn't needed in abbrev-cache.h.  (That was probably leftover from
-	some earlier implementation of the class.)  Then, I noticed that the
-	class itself was under-commented.  This patch fixes both issues.
-
-2022-04-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Return void from gdb_putc
-	I don't think it's very useful to return the character from gdb_putc,
-	so this patch changes it to return void.
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Handle "set height 1"
-	PR cli/17151 points out that "set height 1" has pathological behavior
-	in gdb.  What I see is that gdb will endlessly print the pagination
-	prompt.  This patch takes a simple and expedient approach to a fix:
-	pretend that the height is really 2.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17151
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Allow word wrapping even when paging is disabled
-	PR cli/20741 points out that when pagination is disabled, this also
-	disabled word wrapping.  However, the manual documents that these
-	settings are separate -- if you intend to disable the wrapping, you
-	must use "set width unlimited".
-
-	This patch fixes the bug by letting the pagination-disabled case fall
-	through to the code that also handles word-wrapping.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20741
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Implement value_print for Rust
-	This adds an implementation of the value_print method to Rust.  As
-	described in PR rust/22254, this removes a bit of weird-looking output
-	from some "print"s -- because c_value_print is bypassed.  I don't have
-	a test for the bug that inspired this patch, because I only know how
-	to reproduce it when using a relatively old Rust compiler.  However,
-	the new "cast-printing" code in value_print is required, because
-	omitting this causes some existing tests to fail.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22254
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Reimplement Rust slice printing
-	The current nightly Rust compiler (aka 1.61) added better DWARF
-	representation for unsized types.  Fixing this is PR rust/21466; but
-	the code is actually the same as what is required to make slice
-	printing more useful, which is PR rust/23871.  This patch implements
-	this.  I tested this against various Rust compilers: 1.48, current
-	stable, current beta, and current nightly.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=21466
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23871
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Remove some dead code from the Rust value printer
-	This removes a bit of dead code from the Rust value printer.  This
-	code wasn't always dead -- it fixed a real bug, and a test case was
-	added for it.  However, once val_print was removed, it became
-	unnecessary.
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Match rustc beta versions
-	The rust_compiler_version proc extracts the Rust compiler version from
-	the "rustc --version" output.  For a beta compiler, the output looks
-	like:
-
-	    rustc 1.60.0-beta.6 (7bccde197 2022-03-22)
-
-	This patch slightly relaxes the regexp -- removing a space -- so that
-	this can be understood by this proc.
-
-2022-04-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/float-bits.exp with -m32
-	With test-case gdb.ada/float-bits.exp and native we get:
-	...
-	(gdb) print 16llf#7FFFF7FF4054A56FA5B99019A5C8#^M
-	$9 = 5.0e+25^M
-	(gdb) PASS: gdb.ada/float-bits.exp: print 16llf#7FFFF7FF4054A56FA5B99019A5C8#
-	...
-	but with target board unix/-m32 we have instead:
-	...
-	(gdb) print 16llf#7FFFF7FF4054A56FA5B99019A5C8#^M
-	Cannot export value 2596145952482202326224873165792712 as 96-bits \
-	  unsigned integer (must be between 0 and 79228162514264337593543950335)^M
-	(gdb) FAIL: gdb.ada/float-bits.exp: print 16llf#7FFFF7FF4054A56FA5B99019A5C8#
-	...
-
-	Fix this by testing whether 16llf is supported by doing ptype long_long_float
-	which gets us either:
-	...
-	type = <16-byte float>^M
-	...
-	or:
-	...
-	type = <12-byte float>^M
-	...
-
-	Tested on x86_64-linux with native and unix/-m32.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29041
-
-2022-04-15  Tom Tromey  <tom@tromey.com>
-
-	Remove WITH_SIM define
-	Since score-tdep.c was removed, the WITH_SIM define is not used in
-	gdb.  This patch removes it.
-
-	Note that re-running autoheader shows a separate change that was
-	missed.  I've kept it in this patch to avoid extra work.
-
-2022-04-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.go/methods.exp with check-readmore
-	When running test-case gdb.go/methods.exp with make check we have:
-	...
-	(gdb) break main.T.Foo^M
-	Function "main.T.Foo" not defined.^M
-	Make breakpoint pending on future shared library load? (y or [n]) n^M
-	(gdb) XFAIL: gdb.go/methods.exp: gdb_breakpoint: set breakpoint at main.T.Foo
-	...
-	but with make check-readmore the XFAIL fails to trigger:
-	...
-	(gdb) break main.T.Foo^M
-	Function "main.T.Foo" not defined.^M
-	Make breakpoint pending on future shared library load? (y or [n]) n^M
-	(gdb) FAIL: gdb.go/methods.exp: gdb_breakpoint: set breakpoint at main.T.Foo
-	...
-
-	This happens because this gdb_test_multiple "maintenance print symbols"
-	regexp:
-	...
-	    -re "\r\n$gdb_prompt $" {
-	...
-	matches the entire command output.
-
-	Fix this by adding the missing ^ at the regexp start.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29064
-
-2022-04-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-14  Pedro Alves  <pedro@palves.net>
-
-	gdbserver: Eliminate prepare_to_access_memory
-	Given:
-
-	 - The prepare_to_access_memory machinery was added for non-stop mode.
-
-	 - Only Linux supports non-stop.
-
-	 - Linux no longer needs the prepare_to_access_memory machinery.  In
-	   fact, after the previous patch,
-	   linux_process_target::prepare_to_access_memory became a nop.
-
-	Thus, prepare_to_access_memory can go away, simplifying core GDBserver
-	code.
-
-	Change-Id: I93ac8bfe66bd61c3d1c4a0e7d419335163120ecf
-
-2022-04-14  Pedro Alves  <pedro@palves.net>
-
-	gdbserver/linux: Access memory even if threads are running
-	Similarly to how the native Linux target was changed
-	and subsequently reworked in these commits:
-
-	 05c06f318fd9 Linux: Access memory even if threads are running
-	 8a89ddbda2ec Avoid /proc/pid/mem races (PR 28065)
-
-	... teach GDBserver to access memory even when the current thread is
-	running, by always accessing memory via /proc/PID/mem.
-
-	The existing comment:
-
-	  /* Neither ptrace nor /proc/PID/mem allow accessing memory through a
-	     running LWP.  */
-
-	... is incorrect for /proc/PID/mem does allow that.
-
-	Actually, from GDB's perspective, GDBserver could already access
-	memory while threads were running, but at the expense of pausing all
-	threads for the duration of the memory access, via
-	prepare_to_access_memory.  This new implementation does not require
-	pausing any thread, thus
-	linux_process_target::prepare_to_access_memory /
-	linux_process_target::done_accessing_memory become nops.  A subsequent
-	patch will remove the whole prepare_to_access_memory infrastructure
-	completely.
-
-	The GDBserver linux-low.cc implementation is simpler than GDB's
-	linux-nat.c's, because GDBserver always adds the unfollowed vfork/fork
-	children to the process list immediately when the fork/vfork event is
-	seen out of ptrace.  I.e., there's no need to keep the file descriptor
-	stored on a side map, we can store it directly in the process
-	structure.
-
-	Change-Id: I0abfd782ceaa4ddce8d3e5f3e2dfc5928862ef61
-
-2022-04-14  Pedro Alves  <pedro@palves.net>
-
-	gdbserver: special case target_write_memory len==0
-	The next patch in this series adds a common helper routine for both
-	memory reads and writes, like this:
-
-	 static int
-	 proc_xfer_memory (CORE_ADDR memaddr, unsigned char *readbuf,
-			  const gdb_byte *writebuf, int len)
-	 {
-	   gdb_assert ((readbuf == nullptr) != (writebuf == nullptr));
-	   ...
-	 }
-
-	 int
-	 linux_process_target::read_memory (CORE_ADDR memaddr,
-	                                    unsigned char *myaddr, int len)
-	 {
-	   return proc_xfer_memory (memaddr, myaddr, nullptr, len);
-	 }
-
-	 linux_process_target::write_memory (CORE_ADDR memaddr,
-	                                    const unsigned char *myaddr, int len)
-	 {
-	   return proc_xfer_memory (memaddr, nullptr, myaddr, len);
-	 }
-
-	Surprisingly, the assertion fails.  That happens because it can happen
-	that target_write_memory is called with LEN==0, due to this in
-	gdb/remote.c:
-
-	 /* Determine whether the remote target supports binary downloading.
-	    This is accomplished by sending a no-op memory write of zero length
-	    to the target at the specified address. (...) */
-
-	 void
-	 remote_target::check_binary_download (CORE_ADDR addr)
-	 {
-	 ...
-	       p = rs->buf.data ();
-	       *p++ = 'X';
-	       p += hexnumstr (p, (ULONGEST) addr);
-	       *p++ = ',';
-	       p += hexnumstr (p, (ULONGEST) 0);
-	       *p++ = ':';
-	       *p = '\0';
-
-	In this scenario, in gdbserver's target_write_memory, the "myaddr"
-	argument of the_target->write_memory is passed the data() of a local
-	gdb::byte_vector (which is a specialized std::vector).  It's valid for
-	std::vector::data() to return NULL when the vector is empty.
-
-	This commit adds an early return to target_write_memory to avoid
-	target backends having to care about this.  For good measure, do the
-	same on the read side, in read_inferior_memory.
-
-	Change-Id: Iac8f04fcf99014c624ef4036bd318ca1771ad491
-
-2022-04-14  Pedro Alves  <pedro@palves.net>
-
-	gdbserver/qXfer::threads, prepare_to_access_memory=>target_pause_all
-	handle_qxfer_threads_proper needs to pause all threads even if the
-	target can read memory when threads are running, so use
-	target_pause_all instead, which is what the Linux implementation of
-	prepare_to_access_memory uses.  (Only Linux implements this hook.)
-
-	A following patch will make the Linux backend be able to access memory
-	when threads are running, and thus will also make
-	prepare_to_access_memory do nothing, which would cause testsuite
-	regressions without this change.
-
-	Change-Id: I127fec7246b7c45b60dfa7341e781606bf54b5da
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Ignore 0,0 entries in .debug_aranges
-	When running the internal AdaCore test suite against the new DWARF
-	indexer, I found one regression on RISC-V.  The test in question uses
-	--gc-sections, and winds up with an entry in the middle of a
-	.debug_aranges that has both address and length of 0.  In this
-	scenario, gdb assumes the entries are terminated and then proceeds to
-	reject the section because it reads a subsequent entry as if it were a
-	header.
-
-	It seems to me that, because each header describes the size of each
-	.debug_aranges CU, it's better to simply ignore 0,0 entries and simply
-	read to the end.  That is what this patch does.
-
-	I've patched an existing test to provide a regression test for this.
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Use GetThreadDescription on Windows
-	Windows 10 introduced SetThreadDescription and GetThreadDescription, a
-	simpler way to set a thread's name.  This changes gdb and gdbserver to
-	use this convention when it is available.
-
-	This is part of PR win32/29050.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29050
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Set the worker thread name on Windows
-	This patch is a bit different from the rest of the series, in that it
-	is a change to gdb's behavior on the host.  It changes gdb's thread
-	pool to try to set the thread name on Windows, if SetThreadDescription
-	is available.
-
-	This is part of PR win32/29050.
-
-	This patch isn't likely to be useful to many people in the short term,
-	because the Windows port of the libstdc++ thread code is not upstream.
-	(AdaCore uses it, and sent it upstream, but it did not land, I don't
-	know why.)  However, if that patch does ever go in, or presumably if
-	you build using some other C++ runtime library, then this will be
-	useful.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29050
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Implement thread_name for gdbserver
-	This changes gdbserver to implement thread_name method.
-
-	Share handle_ms_vc_exception with gdbserver
-	Currently, gdb's native Windows target implements the exception-based
-	approach for setting thread names, but gdbserver does not.  This patch
-	moves handle_ms_vc_exception to the shared nat/windows-nat.c code, as
-	preparation for adding this support to gdbserver.
-
-	Move target_read_string to target/target.c
-	This moves the two overloads of target_read_string to a new file,
-	target/target.c, and updates both gdb and gdbserver to build this.
-
-	Remove the byte order parameter to target_read_string
-	target_read_string takes a byte order parameter, but only uses this to
-	check whether a given character is zero.  This is readily done without
-	requiring the parameter, so remove it.
-
-	Rename read_string
-	This renames read_string to be an overload of target_read_string.
-	This makes it more consistent for the eventual merger with gdbserver.
-
-	Don't call QUIT in read_string
-	read_string does not need to call QUIT, because target_read_memory
-	already does.  This change is needed to make string-reading usable by
-	gdbserver.
-
-	Fix possible Cygwin build problem
-	I noticed that nat/windows-nat.c checks __USEWIDE, but nothing sets it
-	there -- I forgot to copy over the definition when making this file.
-	This patch tries to fix the problem.  I don't have a Cygwin setup, so
-	I don't know whether this is sufficient, but it's probably necessary.
-
-2022-04-14  Lancelot SIX  <lancelot.six@amd.com>
-	    Pedro Alves  <pedro@palves.net>
-
-	gdb/testsuite: Fix race in gdb.dwarf2/calling-convention.exp
-	Pedro Alves warned me that there is a race in
-	gdb.dwarf2/calling-convention.exp making the test sometimes fail on his
-	setup.  This can be reliably reproduced using :
-
-	    make check-read1 TESTS="gdb.dwarf2/calling-convention.exp"
-
-	The relevant part of the gdb.log file is:
-
-	    return 35
-	    Function 'foo' does not follow the target calling convention.
-	    If you continue, setting the return value will probably lead to unpredictable behaviors.
-	    Make foo return now? (y or n) PASS: gdb.dwarf2/calling-convention.exp: return 35
-	    n
-	    Not confirmed
-	    (gdb) FAIL: gdb.dwarf2/calling-convention.exp: finish
-
-	The issue is that when doing the test for "return 35", the DejaGnu test
-	sends "n" (to tell GDB not to perform the return action) but never
-	consumes the "Not confirmed" acknowledgment sent by GDB.  Later, when
-	trying to do the next test, DejaGnu tries to match the leftover output
-	from the "return" test. As this output is not expected, the test fails.
-
-	Fix by using gdb_test to send the "n" answer and match the confirmation
-	and consume all output to the prompt.
-
-	Also do minor adjustments to the main regex:
-	  - Remove the leading ".*" which is not required.
-	  - Ensure that the "?" from the question is properly escaped.
-
-	Tested on x86_64-gnu-linux, using
-
-	- make check TESTS="gdb.dwarf2/calling-convention.exp"
-	- make check-read1 TESTS="gdb.dwarf2/calling-convention.exp"
-	- make check-readmore TESTS="gdb.dwarf2/calling-convention.exp"
-
-	Change-Id: I42858b13db2cbd623c5c1739de65ad423e0c0938
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Silence -Wmaybe-uninitialized warning from target_waitstatus
-	Currently, one use of target_waitstatus yields a warning:
-
-	     target/waitstatus.h: In function 'void stop_all_threads()':
-	     target/waitstatus.h:175:13: warning: 'ws.target_waitstatus::m_value' may be used uninitialized in this function [-Wmaybe-uninitialized]
-	       175 |     m_value = other.m_value;
-		   |     ~~~~~~~~^~~~~~~~~~~~~~~
-
-	This patch silences the warning.  I tried the "volatile member"
-	approach that was used for gdb::optional, but that didn't work, so
-	this patch simply initializes the member.
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Fix regression on Windows with WOW64
-	Internally at AdaCore, we recently started testing a 64-bit gdb
-	debugging 32-bit processes.  This failed with gdb head, but not with
-	gdb 11.
-
-	The tests fail like this:
-
-	     Starting program: [...].exe
-	     warning: Could not load shared library symbols for WOW64_IMAGE_SECTION.
-	     Do you need "set solib-search-path" or "set sysroot"?
-	     warning: Could not load shared library symbols for WOW64_IMAGE_SECTION.
-	     Do you need "set solib-search-path" or "set sysroot"?
-	     warning: Could not load shared library symbols for NOT_AN_IMAGE.
-	     Do you need "set solib-search-path" or "set sysroot"?
-	     warning: Could not load shared library symbols for NOT_AN_IMAGE.
-	     Do you need "set solib-search-path" or "set sysroot"?
-
-	After some debugging and bisecting, to my surprise the bug was
-	introduced by commit 183be222 ("gdb, gdbserver: make target_waitstatus
-	safe").
-
-	The problem occurs in handle_exception.  Previously the code did:
-
-	    -  ourstatus->kind = TARGET_WAITKIND_STOPPED;
-	    [...]
-		 case EXCEPTION_BREAKPOINT:
-	    [...]
-	    -	  ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
-	    [...]
-		   /* FALLTHROUGH */
-		 case STATUS_WX86_BREAKPOINT:
-		   DEBUG_EXCEPTION_SIMPLE ("EXCEPTION_BREAKPOINT");
-	    -      ourstatus->value.sig = GDB_SIGNAL_TRAP;
-	    [...]
-	    -  last_sig = ourstatus->value.sig;
-
-	However, in the new code, the fallthrough case does:
-
-	    +      ourstatus->set_stopped (GDB_SIGNAL_TRAP);
-
-	... which changes the 'kind' in 'ourstatus' after falling through.
-
-	This patch rearranges the 'last_sig' setting to more closely match
-	what was done before (this is probably not strictly needed but also
-	seemed harmless), and removes the fall-through in the
-	'ignore_first_breakpoint' case when __x86_64__ is defined.
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Reorganize Python events documentation
-	This slightly reorganizes the Python events documentation.  It hoists
-	the "ThreadEvent" text out of the list of events, where it seemed to
-	be misplaced.  It tidies the formatting a little bit (adding some
-	vertical space for easier reading in info), fixes a typo, adds some
-	missing commas, and fixes an incorrect reference to NewInferiorEvent.
-
-2022-04-14  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove move constructor and move assignment operator from cooked_index
-	Building with clang++-14, I see:
-
-	      CXX    dwarf2/cooked-index.o
-	    In file included from /home/smarchi/src/binutils-gdb/gdb/dwarf2/cooked-index.c:21:
-	    /home/smarchi/src/binutils-gdb/gdb/dwarf2/cooked-index.h:172:12: error: explicitly defaulted move constructor is implicitly deleted [-Werror,-Wdefaulted-function-deleted]
-	      explicit cooked_index (cooked_index &&other) = default;
-	               ^
-	    /home/smarchi/src/binutils-gdb/gdb/dwarf2/cooked-index.h:225:16: note: move constructor of 'cooked_index' is implicitly deleted because field 'm_storage' has a deleted move constructor
-	      auto_obstack m_storage;
-	                   ^
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/gdb_obstack.h:128:28: note: 'auto_obstack' has been explicitly marked deleted here
-	      DISABLE_COPY_AND_ASSIGN (auto_obstack);
-	                               ^
-	    In file included from /home/smarchi/src/binutils-gdb/gdb/dwarf2/cooked-index.c:21:
-	    /home/smarchi/src/binutils-gdb/gdb/dwarf2/cooked-index.h:174:17: error: explicitly defaulted move assignment operator is implicitly deleted [-Werror,-Wdefaulted-function-deleted]
-	      cooked_index &operator= (cooked_index &&other) = default;
-	                    ^
-	    /home/smarchi/src/binutils-gdb/gdb/dwarf2/cooked-index.h:225:16: note: move assignment operator of 'cooked_index' is implicitly deleted because field 'm_storage' has a deleted move assignment operator
-	      auto_obstack m_storage;
-	                   ^
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/gdb_obstack.h:128:3: note: 'operator=' has been explicitly marked deleted here
-	      DISABLE_COPY_AND_ASSIGN (auto_obstack);
-	      ^
-	    /home/smarchi/src/binutils-gdb/gdb/../include/ansidecl.h:425:8: note: expanded from macro 'DISABLE_COPY_AND_ASSIGN'
-	      void operator= (const TYPE &) = delete
-	           ^
-
-	We explicitly make cooked_index have a default move constructor and
-	move assignment operator.  But it doesn't actually happen because
-	cooked_index has a field of type auto_obstack, which isn't movable.
-	We don't actually need cooked_index to be movable at the moment, so
-	remove those lines.
-
-	Change-Id: Ifc1fe3d7d67e3ae1a14363d6c1869936fe80b0a2
-
-2022-04-14  Tom Tromey  <tromey@adacore.com>
-
-	Let std::thread check pass even without pthreads
-	Currently, the configure check for std::thread relies on pthreads
-	existing.  However, this means that if std::thread is implemented for
-	a non-pthreads host, then the check will yield the wrong answer.  This
-	happened in AdaCore internal builds.  Here, we have this GCC patch:
-
-	    https://gcc.gnu.org/legacy-ml/gcc-patches/2019-06/msg01840.html
-
-	... which adds mingw support to GCC's gthreads implementation, and
-	also to std::thread.
-
-	This configure change fixes this problem and enables threading for
-	gdb.
-
-2022-04-14  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: fix build errors in gdbsupport/thread-pool.h used with old gcc
-	When I build gdb with gcc 8.3, there exist the following build errors,
-	rename the typedef to task_t to fix them.
-
-	  CXX      thread-pool.o
-	In file included from /home/loongson/gdb.git/gdbsupport/thread-pool.cc:21:
-	/home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h: In member function ‘std::future<void> gdb::thread_pool::post_task(std::function<void()>&&)’:
-	/home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:69:44: error: declaration of ‘task’ shadows a previous local [-Werror=shadow=local]
-	     std::packaged_task<void ()> task (std::move (func));
-	                                            ^~~~
-	/home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:102:39: note: shadowed declaration is here
-	   typedef std::packaged_task<void ()> task;
-	                                       ^~~~
-	/home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h: In member function ‘std::future<_Res> gdb::thread_pool::post_task(std::function<T()>&&)’:
-	/home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:80:41: error: declaration of ‘task’ shadows a previous local [-Werror=shadow=local]
-	     std::packaged_task<T ()> task (std::move (func));
-	                                         ^~~~
-	/home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:102:39: note: shadowed declaration is here
-	   typedef std::packaged_task<void ()> task;
-	                                       ^~~~
-
-2022-04-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Detect 'No MPX support'
-	On openSUSE Leap 15.3, mpx support has been disabled for m32, so I run into:
-	...
-	(gdb) run ^M
-	Starting program: outputs/gdb.arch/i386-mpx/i386-mpx ^M
-	[Thread debugging using libthread_db enabled]^M
-	Using host libthread_db library "/lib64/libthread_db.so.1".^M
-	No MPX support^M
-	...
-	and eventually into all sort of fails in this and other mpx test-cases.
-
-	Fix this by detecting the "No MPX support" message in have_mpx.
-
-	Tested on x86_64-linux with target boards unix and unix/-m32.
-
-2022-04-14  Sergei Trofimovich  <siarheit@google.com>
-
-	M68K: avoid quadratic slowdlow in label alignment check
-	Before the change tc-m68k maintained a list of seen labels.
-	Alignment check traversed label list to resolve symbol to label.
-	This caused quadratic slowdown as each symbol was checked against
-	each label. Worst affected files are the ones built with debugging
-	enabled as DWARF generates many labels.
-
-	The change embeds auxiliary label information right into symbol using
-	TC_SYMFIELD_TYPE.
-
-	Before the change test from PR 29058 did not finish in 10 minutes. After
-	the change it finishes in 2 seconds.
-
-	gas/ChangeLog:
-
-		PR 29058
-		* config/tc-m68k.h (TC_SYMFIELD_TYPE): define as m68k_tc_sy.
-		* config/tc-m68k.c (m68k_frob_label): Use TC_SYMFIELD_TYPE to
-		store label information.
-
-2022-04-14  caiyinyu  <caiyinyu@loongson.cn>
-
-	ld:LoongArch: Fix glibc fail: tst-audit25a/b.
-	  bfd/
-
-	  * elfnn-loongarch.c: Add new func elf_loongarch64_hash_symbol.
-
-2022-04-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-13  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add ATTRIBUTE_PRINTF to complaint_interceptor::issue_complaint
-	Fix this error when building with clang++-14:
-
-	      CXX    complaints.o
-	    /home/smarchi/src/binutils-gdb/gdb/complaints.c:130:65: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
-	      g_complaint_interceptor->m_complaints.insert (string_vprintf (fmt, args));
-	                                                                    ^~~
-
-	Change-Id: I0ef11f970510eb8638d1651fa0d5eeecd6a9d31a
-
-2022-04-13  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix clang build failure in msymbol_is_mips
-	Building with clang++-14, I see:
-
-	      CXX    mips-tdep.o
-	    /home/smarchi/src/binutils-gdb/gdb/mips-tdep.c:453:12: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
-	      return !(MSYMBOL_TARGET_FLAG_MIPS16 (msym)
-	              ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-	    /home/smarchi/src/binutils-gdb/gdb/mips-tdep.h:54:2: note: expanded from macro 'MSYMBOL_TARGET_FLAG_MIPS16'
-	            (sym)->target_flag_1 ()
-	            ^
-	    /home/smarchi/src/binutils-gdb/gdb/mips-tdep.c:453:12: note: cast one or both operands to int to silence this warning
-	    /home/smarchi/src/binutils-gdb/gdb/mips-tdep.h:54:2: note: expanded from macro 'MSYMBOL_TARGET_FLAG_MIPS16'
-	            (sym)->target_flag_1 ()
-	            ^
-
-	That's since commit e165fcef1e7 ("gdb: remove MSYMBOL_TARGET_FLAG_{1,2}
-	macros").  Fix this by using the boolean || rather than the bitwise |,
-	since the new methods return bool values.  No change in behavior
-	expected.
-
-	Change-Id: Ia82664135aa25db64c29c92f5c1141859d345bf7
-
-2022-04-13  Alexander von Gluck IV  <kallisti5@unixzen.com>
-
-	binutils: enable PE on 32bit haiku build
-		* config.bfd (x86-haiku): Add i386_pei_vec as a selectable format.
-
-2022-04-13  Pedro Alves  <pedro@palves.net>
-
-	Make intrusive_list_node's next/prev private
-	Tromey noticed that intrusive_list_node leaves its data members
-	public, which seems sub-optimal.
-
-	This commit makes intrusive_list_node's data fields private.
-	intrusive_list_iterator, intrusive_list_reverse_iterator, and
-	intrusive_list do need to access the fields, so they are made friends.
-
-	Change-Id: Ia8b306b40344cc218d423c8dfb8355207a612ac5
-
-2022-04-13  Pedro Alves  <pedro@palves.net>
-
-	Tidy gdb.base/parse_number.exp
-	Now that Ada is able to parse & print 0xffffffffffffffff (2^64-1) in
-	hex, move it to the else branch like most other languages.
-
-	Change-Id: Ib305f6bb2b6b230a1190ea783b245b865821094c
-
-2022-04-13  Alan Modra  <amodra@gmail.com>
-
-	ubsan: member access within null pointer of union
-	Add some nonsense to cover "undefined behaviour".
-
-		* ldlang.c (section_for_dot): Avoid UB.
-
-2022-04-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-12  Tom Tromey  <tromey@adacore.com>
-
-	Fix bug in Ada number lexing
-	On irc, Pedro pointed out that Ada couldn't properly handle
-	0xffffffffffffffff.  This used to work, but is a regression due to
-	some patches I wrote in the Ada lexer.  This patch fixes the bug.
-
-2022-04-12  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix "passing NULL to memcpy" UBsan error in dwarf2/cooked-index.c
-	Reading a simple file compiled with :
-
-	    $ gcc -DONE=1 -gdwarf-4 -g3  test.c
-	    $ gcc --version
-	    gcc (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0
-
-	I get:
-
-	    Reading symbols from /tmp/cwd/a.out...
-	    /home/smarchi/src/binutils-gdb/gdb/dwarf2/cooked-index.c:332:11: runtime error: null pointer passed as argument 2, which is declared to never be null
-
-	It looks like even if the size is 0 (the size of the `entries` vector is
-	0), we shouldn't be passing a NULL pointer to memcpy.  And
-	`entries.data ()` returns NULL.
-
-	Fix that by using std::vector::insert to insert the items of entries
-	into m_entries.  I haven't checked, but it should essentially compile
-	down to a memcpy, since the vector elements are trivially copyiable.
-
-	Change-Id: I75f1c901e9b522e42e89eb5936e2c70d68eb21e5
-
-2022-04-12  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: change subfile::line_vector to an std::vector
-	Change this field to an std::vector to facilitate memory management.
-	Since the linetable_entry array is copied into the symtab resulting from
-	the subfile, it is possible to change it without changing how symtab
-	stores the linetable entries (which would be a much larger change).
-
-	There is a small change in buildsym_compunit::record_line to avoid
-	accessing a now invalid linetable_entry.  Before this patch, we keep a
-	pointer to the last linetable entry, pop it from the vector, and then
-	read last->line.  It works with the manually-maintained array, but since
-	we now use std::vector::pop_back, I am afraid that it could be flagged
-	as an invalid access by the various static / dynamic analysis tools to
-	access the linetable_entry object after popping it from the vector.
-	Instead, record just the line number in an optional and use it.
-
-	There are substantial changes in xcoffread.c that simplify the code, but
-	I can't test them.  I was hesitant to do this change because of that,
-	but I decided to send it anyway.  I don't think that an almost dead
-	platform should hold back improving the code in the common parts of GDB.
-
-	The changes in xcoffread.c are:
-
-	 - Make arrange_linetable "arrange" the linetable passed as a parameter,
-	   instead of returning possibly a new one, possibly the same one.
-	 - In the "Process main file's line numbers.", I'm not too sure what
-	   happens.  We get the lintable from "main_subfile", "arrange" it, but
-	   then assign the result to the current subfile, obtained with
-	   get_current_subfile.  I assume that the current subfile is also the
-	   main one, so now I just call arrange_linetable on the main subfile's
-	   line table.
-	 - Remove that weird "Useless if!!!" FIXME comment.  It's been there
-	   forever, but the "if" is still there, so I guess the "if" can stay
-	   there.
-
-	Change-Id: I11799006fd85189e8cf5bd3a168f8f38c2c27a80
-
-2022-04-12  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: use std::vector for temporary linetable_entry array in arrange_linetable
-	Reduce manual memory management and make the code a bit easier to read.
-	This helps me a bit in the following patch.
-
-	I don't have a way to test this, it's best-effort.
-
-	Change-Id: I64af9cd756311deabc6cd95e701dfb21234a40a5
-
-2022-04-12  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: change subfile::name and buildsym_compunit::m_comp_dir to strings
-	Change subfile::name to be a string, for easier memory management.
-	Change buildsym_compunit::m_comp_dir as well, since we move one in to
-	the other at some point in patch_subfile_names, so it's easier to do
-	both at the same time.  There are various NULL checks for both fields
-	currently, replace them with empty checks, I think it ends up
-	equivalent.
-
-	I can't test the change in xcoffread.c, it's best-effort.
-
-	Change-Id: I62b5fb08b2089e096768a090627ac7617e90a016
-
-2022-04-12  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: allocate subfile with new
-	Allocate struct subfile with new, initialize its fields instead of
-	memset-ing it to 0.  Use a unique_ptr for the window after a subfile has
-	been allocated but before it is linked in the buildsym_compunit's list
-	of subfile (and therefore owned by the buildsym_compunit.
-
-	I can't test the change in xcoffread.c, it's best-effort.  I couldn't
-	find where subfiles are freed in that file, I assume they were
-	intentionally (or not) leaked.
-
-	Change-Id: Ib3b6877de31b7e65bc466682f08dbf5840225f24
-
-2022-04-12  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: use decltype instead of typeof in dwarf2/read.c
-	When building with -std=c++11, I get:
-
-	  CXX    dwarf2/read.o
-	/home/smarchi/src/binutils-gdb/gdb/dwarf2/read.c: In function ‘void dwarf2_build_psymtabs_hard(dwarf2_per_objfile*)’:
-	/home/smarchi/src/binutils-gdb/gdb/dwarf2/read.c:7130:23: error: expected type-specifier before ‘typeof’
-	 7130 |     using iter_type = typeof (per_bfd->all_comp_units.begin ());
-	      |                       ^~~~~~
-
-	This is because typeof is a GNU extension.  Use C++'s decltype keyword
-	instead.
-
-	Change-Id: Ieca2e8d25e50f71dc6c615a405a972a54de3ef14
-
-2022-04-12  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: use result_of_t instead of result_of in parallel-for.h
-	When building with -std=c++11, I get:
-
-	In file included from /home/smarchi/src/binutils-gdb/gdb/unittests/parallel-for-selftests.c:22:                                                                             /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/parallel-for.h:134:10: error: ‘result_of_t’ is not a member of ‘std’; did you mean ‘result_of’?
-	  134 |     std::result_of_t<RangeFunction (RandomIt, RandomIt)>
-	      |          ^~~~~~~~~~~
-	      |          result_of
-
-	This is because result_of_t has been introduced in C++14.  Use the
-	equivalent result_of<...>::type instead.
-
-	result_of and result_of_t have been removed in C++20 though, so I think
-	we'll need some patches eventually to make the code use invoke_result
-	instead, depending on the C++ version.
-
-	Change-Id: I4817f361c0ebcdd4b32976898fc368bb302b61b9
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Remove dwarf2_per_cu_data::v
-	Now that the psymtab reader has been removed, the
-	dwarf2_per_cu_data::v union is no longer needed.  Instead, we can
-	simply move the members from dwarf2_per_cu_quick_data into
-	dwarf2_per_cu_data and remove the "quick" object entirely.
-
-	Delete DWARF psymtab code
-	This removes the DWARF psymtab reader.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Enable the new DWARF indexer
-	This patch finally enables the new indexer.  It is left until this
-	point in the series to avoid any regressions; in particular, it has to
-	come after the changes to the DWARF index writer to avoid this
-	problem.
-
-	However, if you experiment with the series, this patch can be moved
-	anywhere from the patch to wire in the new reader to this point.
-	Moving this patch around is how I got separate numbers for the
-	parallelization and background finalization patches.
-
-	In the ongoing performance example, this reduces the time from the
-	baseline of 1.598869 to 0.903534.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Adapt .debug_names writer to new DWARF scanner
-	This updates the .debug_names writer to work with the new DWARF
-	scanner.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Adapt .gdb_index writer to new DWARF scanner
-	This updates the .gdb_index writer to work with the new DWARF scanner.
-	The .debug_names writer is deferred to another patch, to make review
-	simpler.
-
-	This introduces a small hack to psyms_seen_size, but is
-	inconsequential because this function will be deleted in a subsequent
-	patch.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Genericize addrmap handling in the DWARF index writer
-	This updates the DWARF index writing code to make the addrmap-writing
-	a bit more generic.  Now, it can handle multiple maps, and it can work
-	using the maps generated by the new indexer.
-
-	Note that the new addrmap_index_data::using_index field will be
-	deleted in a future patch, when the rest of the DWARF psymtab code is
-	removed.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Change parameters to write_address_map
-	To support the removal of partial symtabs from the DWARF index writer,
-	this makes a small change to have write_address_map accept the address
-	map as a parameter, rather than assuming it always comes from the
-	per-BFD object.
-
-	Change the key type in psym_index_map
-	In order to change the DWARF index writer to avoid partial symtabs,
-	this patch changes the key type in psym_index_map (and renames that
-	type as well).  Using the dwarf2_per_cu_data as the key makes it
-	simpler to reuse this code with the new indexer.
-
-	Rename write_psymtabs_to_index
-	We'll be removing all the psymtab code from the DWARF reader.  As a
-	preparatory step, this renames write_psymtabs_to_index to avoid the
-	"psymtab" name.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	"Finalize" the DWARF index in the background
-	After scanning the CUs, the DWARF indexer merges all the data into a
-	single vector, canonicalizing C++ names as it proceeds.  While not
-	necessarily single-threaded, this process is currently done in just
-	one thread, to keep memory costs lower.
-
-	However, this work is all done without reference to any data outside
-	of the indexes.  This patch improves the apparent performance of GDB
-	by moving it to the background.  All uses of the index are then made
-	to wait for this process to complete.
-
-	In our ongoing example, this reduces the scanning time on gdb itself
-	to 0.173937 (wall).  Recall that before this patch, the time was
-	0.668923; and psymbol reader does this in 1.598869.  That is, at the
-	end of this series, we see about a 10x speedup.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Parallelize DWARF indexing
-	This parallelizes the new DWARF indexer.  The indexer's storage was
-	designed so that each storage object and each indexer is fully
-	independent.  This setup makes it simple to scan different CUs
-	independently.
-
-	This patch creates a new cooked index storage object per thread, and
-	then scans a subset of all the CUs in each such thread, using gdb's
-	existing thread pool.
-
-	In the ongoing "gdb gdb" example, this patch reduces the wall time
-	down to 0.668923, from 0.903534.  (Note that the 0.903534 is the time
-	for the new index -- that is, when the "enable the new index" patch is
-	rebased to before this one.  However, in the final series, that patch
-	appears toward the end.  Hopefully this isn't too confusing.)
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Pre-read DWARF section data
-	Because BFD is not thread-safe, we need to be sure that any section
-	data that is needed is read before trying to do any DWARF indexing in
-	the background.
-
-	This patch takes a simple approach to this -- it pre-reads the
-	"info"-related sections.  This is done for the main file, but also any
-	auxiliary files as well, such as the DWO file.
-
-	This patch could be perhaps enhanced by removing some now-redundant
-	calls to dwarf2_section_info::read.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Introduce thread-safe handling for complaints
-	This introduces a new class that can be used to make the "complaint"
-	code thread-safe.  Instantiating the class installs a new handler that
-	collects complaints, and then prints them all when the object is
-	destroyed.
-
-	This approach requires some locks.  I couldn't think of a better way
-	to handle this, though, because the I/O system is not thread-safe.
-
-	It seemed to me that only GDB developers are likely to enable
-	complaints, and because the complaint macro handle this case already
-	(before any locks are required), I reasoned that any performance
-	degradation that would result here would be fine.
-
-	As an aside about complaints -- are they useful at all?  I just ignore
-	them, myself, since mostly they seem to indicate compiler problems
-	that can't be solved in the GDB world anyway.  I'd personally prefer
-	them to be in a separate tool, like a hypothetical 'dwarflint'.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Wire in the new DWARF indexer
-	This wires the new DWARF indexer into the existing reader code.  That
-	is, this patch makes the modification necessary to enable the new
-	indexer.  It is not actually enabled by this patch -- that will be
-	done later.
-
-	I did a bit of performance testing for this patch and a few others.  I
-	copied my built gdb to /tmp, so that each test would be done on the
-	same executable.  Then, each time, I did:
-
-	    $ ./gdb -nx
-	    (gdb) maint time 1
-	    (gdb) file /tmp/gdb
-
-	This patch is the baseline and on one machine came in at 1.598869 wall
-	time.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Implement quick_symbol_functions for cooked DWARF index
-	This implements quick_symbol_functions for the cooked DWARF index.
-	This is the code that interfaces between the new index and the rest of
-	gdb.  Cooked indexes still aren't created by anything.
-
-	For the most part this is straightforward.  It shares some concepts
-	with the existing DWARF indices.  However, because names are stored
-	pre-split in the cooked index, name lookup here is necessarily
-	different; see expand_symtabs_matching for the gory details.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	The new DWARF indexer
-	This patch adds the code to index DWARF.  This is just the scanner; it
-	reads the DWARF and constructs the index, but nothing calls it yet.
-
-	The indexer is split into two parts: a storage object and an indexer
-	object.  This is done to support the parallelization of this code -- a
-	future patch will create a single storage object per thread.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Introduce the new DWARF index class
-	This patch introduces the new DWARF index class.  It is called
-	"cooked" to contrast against a "raw" index, which is mapped from disk
-	without extra effort.
-
-	Nothing constructs a cooked index yet.  The essential idea here is
-	that index entries are created via the "add" method; then when all the
-	entries have been read, they are "finalize"d -- name canonicalization
-	is performed and the entries are added to a sorted vector.
-
-	Entries use the DWARF name (DW_AT_name) or linkage name, not the full
-	name as is done for partial symbols.
-
-	These two facets -- the short name and the deferred canonicalization
-	-- help improve the performance of this approach.  This will become
-	clear in later patches, when parallelization is added.
-
-	Some special code is needed for Ada, because GNAT only emits mangled
-	("encoded", in the Ada lingo) names, and so we reconstruct the
-	hierarchical structure after the fact.  This is also done in the
-	finalization phase.
-
-	One other aspect worth noting is that the way the "main" function is
-	found is different in the new code.  Currently gdb will notice
-	DW_AT_main_subprogram, but won't recognize "main" during reading --
-	this is done later, via explicit symbol lookup.  This is done
-	differently in the new code so that finalization can be done in the
-	background without then requiring a synchronization to look up the
-	symbol.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Update skip_one_die for new abbrev properties
-	This updates skip_one_die to speed it up in the cases where either
-	sibling_offset or size_if_constant are set.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Statically examine abbrev properties
-	The new DIE scanner works more or less along the lines indicated by
-	the text for the .debug_names section, disregarding the bugs in the
-	specification.
-
-	While working on this, I noticed that whether a DIE is interesting is
-	a static property of the DIE's abbrev.  It also turns out that many
-	abbrevs imply a static size for the DIE data, and additionally that
-	for many abbrevs, the sibling offset is stored at a constant offset
-	from the start of the DIE.
-
-	This patch changes the abbrev reader to analyze each abbrev and stash
-	the results on the abbrev.  These combine to speed up the new indexer.
-	If the "interesting" flag is false, GDB knows to skip the DIE
-	immediately.  If the sibling offset is statically known, skipping can
-	be done without reading any attributes; and in some other cases, the
-	DIE can be skipped using simple arithmetic.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Introduce DWARF abbrev cache
-	The replacement for the DWARF psymbol reader works in a somewhat
-	different way.  The current reader reads and stores all the DIEs that
-	might be interesting.  Then, if it is missing a DIE, it re-scans the
-	CU and reads them all.  This approach is used for both intra- and
-	inter-CU references.
-
-	I instrumented the partial DIE hash to see how frequently it was used:
-
-	    [  0] -> 1538165
-	    [  1] ->    4912
-	    [  2] ->   96102
-	    [  3] ->     175
-	    [  4] ->     244
-
-	That is, most DIEs are never used, and some are looked up twice -- but
-	this is just an artifact of the implementation of
-	partial_die_info::fixup, which may do two lookups.
-
-	Based on this, the new implementation doesn't try to store any DIEs,
-	but instead just re-scans them on demand.  In order to do this,
-	though, it is convenient to have a cache of DWARF abbrevs.  This way,
-	if a second CU is needed to resolve an inter-CU reference, the abbrevs
-	for that CU need only be computed a single time.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Add "fullname" handling to file_and_directory
-	This changes the file_and_directory object to be able to compute and
-	cache the "fullname" in the same way that is done by other code, like
-	the psymtab reader.
-
-	Specialize std::hash for gdb_exception
-	This adds a std::hash specialization for gdb_exception.  This lets us
-	store these objects in a hash table, which is used later in this
-	series to de-duplicate the exception output from multiple threads.
-
-	Return vector of results from parallel_for_each
-	This changes gdb::parallel_for_each to return a vector of the results.
-	However, if the passed-in function returns void, the return type
-	remains 'void'.  This functionality is used later, to parallelize the
-	new indexer.
-
-	Add batching parameter to parallel_for_each
-	parallel_for_each currently requires each thread to process at least
-	10 elements.  However, when indexing, it's fine for a thread to handle
-	just a single CU.  This patch parameterizes this, and updates the one
-	user.
-
-	Refactor build_type_psymtabs_reader
-	The new DWARF scanner needs to save the entire cutu_reader object, not
-	just parts of it.  In order to make this possible, this patch
-	refactors build_type_psymtabs_reader.  This change is done separately
-	because it is easy to review in isolation and it helps make the later
-	patches smaller.
-
-	Add new overload of dwarf5_djb_hash
-	This adds a new overload of dwarf5_djb_hash.  This is used in
-	subsequent patches.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Add name splitting
-	The new DWARF index code works by keeping names pre-split.  That is,
-	rather than storing a symbol name like "a::b::c", the names "a", "b",
-	and "c" will be stored separately.
-
-	This patch introduces some helper code to split a full name into its
-	components.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Let skip_one_die not skip children
-	This patch adds an option to skip_one_die that causes it not to skip
-	child DIEs.  This is needed in the new scanner.
-
-	Allow ada_decode not to decode operators
-	The new DWARF scanner records names as they appear in DWARF.  However,
-	because Ada is unusual, it also decodes the Ada names to synthesize
-	package components for them.  In order for this to work out properly,
-	gdb also needs a mode where ada_decode can be instructed not to decode
-	Ada operator names.  That is what this patch implements.
-
-	Refactor dwarf2_get_pc_bounds
-	This changes dwarf2_get_pc_bounds so that it does not directly access
-	a psymtab or psymtabs_addrmap.  Instead, both the addrmap and the
-	desired payload are passed as parameters.  This makes it suitable to
-	be used by the new indexer.
-
-	Add dwarf2_per_cu_data::addresses_seen
-	This adds a new member to dwarf2_per_cu_data that indicates whether
-	addresses have been seen for this CU.  This is then set by the
-	.debug_aranges reader.  The idea here is to detect when a CU does not
-	have address information, so that the new indexer will know to do
-	extra scanning in that case.
-
-	Fix latent bug in read_addrmap_from_aranges
-	Tom de Vries found a failure that we tracked down to a latent bug in
-	read_addrmap_from_aranges (previously create_addrmap_from_aranges).
-	The bug is that this code can erroneously reject .debug_aranges when
-	dwz is in use, due to CUs at duplicate offsets.  Because aranges can't
-	refer to a CU coming from the dwz file, the fix is to simply skip such
-	CUs in the loop.
-
-	Split create_addrmap_from_aranges
-	This patch splits create_addrmap_from_aranges into a wrapper function
-	and a worker function.  The worker function is then used in a later
-	patch.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Allow thread-pool.h to work without threads
-	thread-pool.h requires CXX_STD_THREAD in order to even be included.
-	However, there's no deep reason for this, and during review we found
-	that one patch in the new DWARF indexer series unconditionally
-	requires the thread pool.
-
-	Because the thread pool already allows a task to be run in the calling
-	thread (for example if it is configured to have no threads in the
-	pool), it seemed straightforward to make this code ok to use when host
-	threads aren't available at all.
-
-	This patch implements this idea.  I built it on a thread-less host
-	(mingw, before my recent configure patch) and verified that the result
-	builds.
-
-	After the thread-pool change, parallel-for.h no longer needs any
-	CXX_STD_THREAD checks at all, so this patch removes these as well.
-
-2022-04-12  Nick Clifton  <nickc@redhat.com>
-
-	Rebase the zlib sources to the 1.2.12 release
-
-2022-04-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/stap-probe.exp with read1
-	When running test-case gdb.base/stap-probe.exp with make target check-read1, I
-	run into this and similar:
-	...
-	FAIL: gdb.base/stap-probe.exp: without semaphore, not optimized: \
-	  info probes stap (timeout)
-	...
-
-	Fix this by using gdb_test_lines instead of gdb_test.
-
-	Tested on x86_64-linux.
-
-2022-04-12  Tom Tromey  <tom@tromey.com>
-
-	Add C++ "save gdb-index" test
-	I found a bug in the new DWARF reader series, related to the handling
-	of enumerator names.  This bug caused a crash, so this patch adds a
-	regression test for this particular case.  I'm checking this in.
-
-2022-04-12  Tom Tromey  <tromey@adacore.com>
-
-	Remove "Ada Settings" node from the manual
-	A while back, I sent a patch to unify the Ada varsize-limit setting
-	with the more generic max-value-size:
-
-	https://sourceware.org/pipermail/gdb-patches/2021-September/182004.html
-
-	However, it turns out I somehow neglected to send part of the patch.
-	Internally, I also removed the "Ada Settings" node from the manual, as
-	it only documents the obsolete setting.
-
-	This patch removes this text.
-
-2022-04-12  Tom Tromey  <tromey@adacore.com>
-
-	Require GNAT debug info for some Ada tests
-	A few Ada tests require some debug info in the GNAT runtime.  When run
-	without this info, these tests can't pass.  This patch changes these
-	tests to detect this situation and stop with "untested".
-
-2022-04-12  Nick Clifton  <nickc@redhat.com>
-
-	Stop strip from removing debuglink sections.
-		PR 28992
-		* objcopy.c (is_strip_section_1): Do not delete debuglink sections
-		when stripping debug information.
-
-2022-04-12  Jan Beulich  <jbeulich@suse.com>
-
-	gas: new_logical_line{,_flags}() can return "void"
-	With the sole user of the return value gone, convert the return type to
-	void. This in turn allows simplifying another construct, by moving it
-	slightly later in the function.
-
-	gas: drop .appfile and .appline
-	These were used originally to represent "# <line> <file>" constructs
-	inserted by (typically) compilers when pre-processing. Quite some time
-	ago they were replaced by .linefile though. Since the original
-	directives were never documented, we ought to be able to remove support
-	for them. As a result in a number of case function parameter aren't used
-	anymore and can hence be dropped.
-
-2022-04-12  Jan Beulich  <jbeulich@suse.com>
-
-	gas: further adjust file/line handling for .macro
-	Commit 7992631e8c0b ("gas/Dwarf: improve debug info generation from .irp
-	and alike blocks"), while dealing okay with actual assembly source files
-	not using .file/.line and alike outside but not inside of .macro, has
-	undue effects when the logical file/line pair was already overridden:
-	Line numbers would continuously increment while processing the expanded
-	macro, while the goal of the PR gas/16908 workaround is to keep the
-	expansion associated with the line invoking the macro. However, as soon
-	as enough state was overridden _inside_ the macro to cause as_where() to
-	no longer fall back top as_where_physical(), honor this by resuming the
-	bumping of the logical line number.
-
-	Note that from_sb_is_expansion's initializer was 1 for an unknown
-	reason. While renaming the variable and changing its type, also change
-	the initializer to "expanding_none", which would have been "0" in the
-	original code. Originally the initializer value itself wasn't ever used
-	anyway (requiring sb_index != -1), as it necessarily had changed in
-	input_scrub_include_sb() alongside setting sb_index to other than -1.
-
-	Strictly speaking input_scrub_insert_line() perhaps shouldn't use
-	expanding_none, yet none of the other enumerators fit there either. And
-	then strictly speaking that function probably shouldn't exist in the
-	first place. It's used only by tic54x.
-
-2022-04-12  Jan Beulich  <jbeulich@suse.com>
-
-	gas: further adjust file/line handling for .irp and alike
-	Commit 7992631e8c0b ("gas/Dwarf: improve debug info generation from .irp
-	and alike blocks"), while dealing okay with actual assembly source files
-	not using .file/.line and alike outside but not inside of .irp et al,
-	has undue effects when the logical file/line pair was already
-	overridden: Line numbers would continuously increment upon every
-	iteration, thus potentially getting far off. Furthermore it left it to
-	the user to actually insert .file/.line inside such constructs. Note
-	though that before aforementioned change things weren't pretty either:
-	Diagnostics (and debug info) would be associated with the directive
-	terminating the iteration construct, rather than with the actual lines.
-
-	Handle this automatically by simply latching the present line and then
-	re-instating coordinates first thing on every iteration; note that the
-	file can't change from what was previously pushed on the scrubber's
-	state stack, and hence can be taken from there by using a new flavor of
-	.linefile (which is far better memory-footprint-wise than recording the
-	full path in the inserted directive). (This then leaves undisturbed any
-	file/line control occurring in the body of the construct, as these will
-	only be seen and processed afterwards.)
-
-2022-04-12  Jan Beulich  <jbeulich@suse.com>
-
-	x86: make {disp16} work similarly to {disp32}
-	In a few places {disp32} was handled specially when really {disp16}
-	wants handling just the same.
-
-2022-04-12  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng doesn't build with gcc 5.5
-	gprofng/ChangeLog
-	2022-04-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		PR gprofng/29026
-		* configure.ac: Check version of bison.
-		* src/Makefile.am (QLParser.yy): Run bison
-		* src/QLParser.yy: Adapted for bison 3.04 or later.
-		* src/DbeSession.cc: make some params const.
-		* src/DbeSession.h: Likewise.
-		* configure: Regenerate.
-		* Makefile.in: Regenerate.
-		* src/Makefile.in: Regenerate.
-		* src/QLParser.tab.cc: Deleted.
-		* src/QLParser.tab.hh: Deleted.
-		* doc/Makefile.in: Regenerate.
-		* gp-display-html/Makefile.in: Regenerate.
-		* libcollector/configure: Regenerate.
-
-2022-04-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-11  John Baldwin  <jhb@FreeBSD.org>
-
-	i386-fbsd-nat: Remove two unused variables.
-	Earlier versions of the change in
-	1285ce8629b37f800bf21731ee7c7a8b1b8d0233 used this variable, but not
-	the final version that landed.
-
-2022-04-11  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove MSYMBOL_TARGET_FLAG_{1,2} macros
-	Replace with equivalent getter/setter macros.
-
-	Change-Id: I1042564dd47347337374762bd64ec31b5c573ee2
-
-2022-04-11  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove minimal symbol size macros
-	Remove MSYMBOL_HAS_SIZE, MSYMBOL_SIZE and SET_MSYMBOL_SIZE, replace them
-	with equivalent methods.
-
-	Change-Id: I6ee1cf82df37e58dff52ea6568ceb4649c7d7538
-
-2022-04-11  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove MSYMBOL_TYPE macro
-	Add a getter and a setter for a minimal symbol's type.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: I89900df5ffa5687133fe1a16b2e0d4684e67a77d
-
-2022-04-11  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove symbol value macros
-	Remove all macros related to getting and setting some symbol value:
-
-	    #define SYMBOL_VALUE(symbol)           (symbol)->value.ivalue
-	    #define SYMBOL_VALUE_ADDRESS(symbol)                         \
-	    #define SET_SYMBOL_VALUE_ADDRESS(symbol, new_value)    \
-	    #define SYMBOL_VALUE_BYTES(symbol)     (symbol)->value.bytes
-	    #define SYMBOL_VALUE_COMMON_BLOCK(symbol) (symbol)->value.common_block
-	    #define SYMBOL_BLOCK_VALUE(symbol)     (symbol)->value.block
-	    #define SYMBOL_VALUE_CHAIN(symbol)     (symbol)->value.chain
-	    #define MSYMBOL_VALUE(symbol)          (symbol)->value.ivalue
-	    #define MSYMBOL_VALUE_RAW_ADDRESS(symbol) ((symbol)->value.address + 0)
-	    #define MSYMBOL_VALUE_ADDRESS(objfile, symbol)                         \
-	    #define BMSYMBOL_VALUE_ADDRESS(symbol) \
-	    #define SET_MSYMBOL_VALUE_ADDRESS(symbol, new_value)   \
-	    #define MSYMBOL_VALUE_BYTES(symbol)    (symbol)->value.bytes
-	    #define MSYMBOL_BLOCK_VALUE(symbol)    (symbol)->value.block
-
-	Replace them with equivalent methods on the appropriate objects.
-
-	Change-Id: Iafdab3b8eefc6dc2fd895aa955bf64fafc59ed50
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/doc: add section about Fortran intrinsic functions and types
-	The earlier version of this document had no sections about the
-	available Fortran intrinsic functions or the Fortran builtin types.
-
-	I added two sections 'Fortran intrinsics' and 'Fortran types' to
-	document the available Fortran language features.  The subsection
-	'Fortran Defaults' has been integrated into the Fortran subsection.
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran/testsuite: add complex from integers test
-	When working on the files I noted that there was no actual test for a
-	COMPLEX built from two INTEGERS.  I added that now for completion.
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: rewrite intrinsic handling and add some missing overloads
-	The operators FLOOR, CEILING, CMPLX, LBOUND, UBOUND, and SIZE accept
-	(some only with Fortran 2003) the optional parameter KIND.  This
-	parameter determines the kind of the associated return value.  So far,
-	implementation of this kind parameter has been missing in GDB.
-	Additionally, the one argument overload for the CMPLX intrinsic function
-	was not yet available.
-
-	This patch adds overloads for all above mentioned functions to the
-	Fortran intrinsics handling in GDB.
-
-	It re-writes the intrinsic function handling section to use the helper
-	methods wrap_unop_intrinsic/wrap_binop_intrinsic/wrap_triop_intrinsic.
-	These methods define the action taken when a Fortran intrinsic function
-	is called with a certain amount of arguments (1/2/3). The helper methods
-	fortran_wrap2_kind and fortran_wrap3_kind have been added as equivalents
-	to the existing wrap and wrap2 methods.
-
-	After adding more overloads to the intrinsics handling, some of the
-	operation names were no longer accurate.  E.g. UNOP_FORTRAN_CEILING
-	has been renamed to FORTRAN_CEILING as it is no longer a purely unary
-	intrinsic function.  This patch also introduces intrinsic functions with
-	one, two, or three arguments to the Fortran parser and the
-	UNOP_OR_BINOP_OR_TERNOP_INTRINSIC token has been added.
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: rename f77_keywords to f_keywords
-	Rename f77_keywords to f_keywords since some of the introduced keywords
-	in the array are f90 only.
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: Change GDB print for fortran default types
-	Currently, when asking GDB to print the type of a Fortran default type
-	such as INTEGER or REAL, GDB will return the default name of that type,
-	e.g. "integer"/"real":
-
-	   (gdb) ptype integer
-	   type = integer
-	   (gdb) ptype real
-	   type = real
-
-	For LOGICAL and COMPLEX it would return the actual underlying types
-
-	   (gdb) ptype logical
-	   type = logical*4
-	   (gdb) ptype complex
-	   type = complex*4
-
-	Similarly, GDB would print the default integer type for the underlying
-	default type:
-
-	   (gdb) ptype integer*4
-	   type = integer
-	   (gdb) ptype real*4
-	   type = real
-	   (gdb) ptype logical
-	   type = logical*4
-	   (gdb) ptype complex*4
-	   type = complex*4
-
-	This is inconsistent and a bit confusing.  Both options somehow indicate
-	what the internal underlying type for the default type is - but I think
-	the logical/complex version is a bit clearer.
-
-	Consider again:
-
-	   (gdb) ptype integer
-	   type = integer
-
-	This indicates to a user that the type of "integer" is Fortran's default
-	integer type.  Without examining "ptype integer*4" I would expect, that
-	any variable declared integer in the actual code would also fit into a
-	GDB integer.  But, since we cannot adapt out internal types to the
-	compiler flags used at compile time of a debugged binary, this might be
-	wrong.  Consider debugging Fortran code compiled with GNU and e.g. the
-	"-fdefault-integer-8" flag.  In this case the gfortran default integer
-	would be integer*8 while GDB internally still would use a builtin_integer,
-	so an integer of the size of an integer*4 type.  On the other hand having
-	GDB print
-
-	   (gdb) ptype integer
-	   type = integer*4
-
-	makes this clearer.  I would still be tempted to fit a variable declared
-	integer in the code into a GDB integer - but at least ptype would
-	directly tell me what is going on.  Note, that when debugging a binary
-	compiled with "-fdefault-integer-8" a user will always see the actual
-	underlying type of any variable declared "integer" in the Fortran code.
-	So having the code
-
-	   program test
-	     integer :: a = 5
-	     print *, a ! breakpt
-	   end program test
-
-	will, when breaking at breakpt print
-
-	   (gdb) ptype var
-	   type = integer(kind=4)
-
-	or
-
-	   (gdb) ptype var
-	   type = integer(kind=8)
-
-	depending on the compiler flag.
-
-	This patch changes the outputs for the REAL and INTEGER default types to
-	actually print the internally used type over the default type name.
-
-	The new behavior for the above examples is:
-
-	   (gdb) ptype integer
-	   type = integer*4
-	   (gdb) ptype integer*4
-	   type = integer*4
-
-	Existing testcases have been adapted to reflect the new behavior.
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: clean-up Fortran intrinsic types
-	The currently implemented intrinsic type handling for Fortran missed some
-	tokens and their parsing.  While still not all Fortran type kinds are
-	implemented this patch at least makes the currently handled types
-	consistent.  As an example for what this patch does, consider the
-	intrinsic type INTEGER.  GDB implemented the handling of the
-	keywords "integer" and "integer_2" but missed "integer_4" and "integer_8"
-	even though their corresponding internal types were already available as
-	the Fortran builtin types builtin_integer and builtin_integer_s8.
-	Similar problems applied to LOGICAL, REAL, and COMPLEX.  This patch adds
-	all missing tokens and their parsing.  Whenever a section containing the
-	type handling was touched, it also was reordered to be in a more easy to
-	grasp order.  All INTEGER/REAL/LOGICAL/COMPLEX types were grouped
-	together and ordered ascending in their size making a missing one more
-	easy to spot.
-
-	Before this change GDB would print the following when tyring to use the
-	INTEGER keywords:
-
-	   (gdb) set language fortran
-	   (gdb) ptype integer*1
-	   unsupported kind 1 for type integer
-	   (gdb) ptype integer_1
-	   No symbol table is loaded.  Use the "file" command.
-	   (gdb) ptype integer*2
-	   type = integer*2
-	   (gdb) ptype integer_2
-	   type = integer*2
-	   (gdb) ptype integer*4
-	   type = integer
-	   (gdb) ptype integer_4
-	   No symbol table is loaded.  Use the "file" command.
-	   (gdb) ptype integer*8
-	   type = integer*8
-	   (gdb) ptype integer_8
-	   No symbol table is loaded.  Use the "file" command.
-	   (gdb) ptype integer
-	   type = integer
-
-	With this patch all keywords are available and the GDB prints:
-
-	   (gdb) set language fortran
-	   (gdb) ptype integer*1
-	   type = integer*1
-	   (gdb) ptype integer_1
-	   type = integer*1
-	   (gdb) ptype integer*2
-	   type = integer*2
-	   (gdb) ptype integer_2
-	   type = integer*2
-	   (gdb) ptype integer*4
-	   type = integer*4
-	   (gdb) ptype integer_4
-	   type = integer*4
-	   (gdb) ptype integer*8
-	   type = integer*8
-	   (gdb) ptype integer_8
-	   type = integer*8
-	   (gdb) ptype integer
-	   type = integer
-
-	The described changes have been applied to INTEGER, REAL, COMPLEX,
-	and LOGICAL. Existing testcases have been adapted to reflect the
-	new behavior.  Tests for formerly missing types have been added.
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: change default logical type to builtin_logical
-	According to the Fortran standard, logical is of the size of a
-	'single numeric storage unit' (just like real and integer). For
-	gfortran, flang and ifx/ifort this storage unit (or the default
-	logical type) is of size kind 4, actually occupying 4 bytes of
-	storage, and so the default type for logical expressions in
-	Fortran should probably also be Logical*4 and not Logical*2.  I
-	adapted GDB's behavior to be in line with
-	gfortran/ifort/ifx/flang.
-
-	gdb/fortran: reformat build_fortran_types in f-lang.c
-	Add a few newlines after the type definitions and remove some
-	unnecessary linebreaks.
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: fix complex type in Fortran builtin types
-	Before this patch things like
-
-	  (gdb) ptype complex*8
-	  complex*16
-	  (gdb) ptype complex*4
-	  complex*8
-
-	were possible in GDB, which seems confusing for a user.  The reason
-	is a mixup in the implementation of the Fortran COMPLEX type.  In
-	Fortran the "*X" after a type would normally (I don't think this
-	is language required) specify the type's size in memory.  For the
-	COMPLEX type the kind parameters usually (at least for GNU, Intel, Flang)
-	specify not the size of the whole type but the size of the individual
-	two REALs used to form the COMPLEX.  Thus, a COMPLEX*4 will usually
-	consist of two REAL*4s.  Internally this type was represented by a
-	builtin_complex_s8 - but here I think the s8 actually meant the raw
-	size of the type.  This is confusing and I renamed the types (e.g.
-	builting_complex_s8 became builtin_complex_s4 according to its most
-	common useage) and their printed names to their language equivalent.
-	Additionally, I added the default COMPLEX type "COMPLEX" being the same
-	as a COMPLEX*4 (as is normally the case) and removed the latter.  I added
-	a few tests for this new behavior as well.
-
-	The new behavior is
-
-	  (gdb) ptype complex*8
-	  complex*8
-	  (gdb) ptype complex*4
-	  complex*4
-
-2022-04-11  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/f-lang: remove hidden ^L characters
-
-	gdb/f-lang: add Integer*1 to Fortran builtin types
-	Add builtin_integer_s1 of size TARGET_CHAR_BIT to Fortran builtin types.
-
-2022-04-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/annota1.exp with pie
-	Since commit 359efc2d894 ("[gdb/testsuite] Make gdb.base/annota1.exp more
-	robust") we see this fail with target board unix/-fPIE/-pie:
-	...
-	FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
-	...
-
-	The problem is that the commit makes the number and order of matched
-	annotations fixed, while between target boards unix and unix/-fPIE/-pie there
-	is a difference:
-	...
-	 \032\032post-prompt
-	 Starting program: outputs/gdb.base/annota1/annota1
-
-	+\032\032breakpoints-invalid
-	+
-	 \032\032starting
-
-	 \032\032frames-invalid
-	...
-
-	Fix this by optionally matching the additional annotation.
-
-	Tested on x86_64-linux.
-
-2022-04-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-lines.exp for m32 pie
-	As reported in PR29043, when running test-case gdb.dwarf2/dw2-lines.exp with
-	target board unix/-m32/-fPIE/-pie, we run into:
-	...
-	Breakpoint 2, 0x56555540 in bar ()^M
-	(gdb) PASS: gdb.dwarf2/dw2-lines.exp: cv=2: cdw=32: lv=2: ldw=32: \
-	  continue to breakpoint: foo \(1\)
-	next^M
-	Single stepping until exit from function bar,^M
-	which has no line number information.^M
-	0x56555587 in main ()^M
-	(gdb) FAIL: gdb.dwarf2/dw2-lines.exp: cv=2: cdw=32: lv=2: ldw=32: \
-	  next to foo (2)
-	...
-
-	The problem is that the bar breakpoint ends up at an unexpected location
-	because:
-	- the synthetic debug info is incomplete and doesn't provide line info
-	  for the prologue part of the function, so consequently gdb uses the i386
-	  port prologue skipper to get past the prologue
-	- the i386 port prologue skipper doesn't get past a get_pc_thunk call.
-
-	Work around this in the test-case by breaking on bar_label instead.
-
-	Tested on x86_64-linux with target boards unix, unix/-m32, unix/-fPIE/-pie and
-	unix/-m32/-fPIE/-pie.
-
-2022-04-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-09  Tom Tromey  <tom@tromey.com>
-
-	Remove MSYMBOL_VALUE_CHAIN
-	I noticed that MSYMBOL_VALUE_CHAIN is unused, so this patch removes it.
-
-2022-04-09  Alan Modra  <amodra@gmail.com>
-
-	Rearrange struct bfd_section a little
-	For better packing on 64-bit hosts.
-
-		* section.c (struct bfd_section): Move next and prev field earlier.
-		Move alignment_power later.
-		(BFD_FAKE_SECTION): Adjust to suit.
-		* bfd-in2.h: Regenerate.
-
-2022-04-09  Alan Modra  <amodra@gmail.com>
-
-	Don't run pr27228 test for hppa
-	As the comment says, hppa doesn't support use of BFD_RELOC_* in
-	.reloc directives.  Using xfail can result in a spurious XPASS result
-	as BFD_RELOC values change.
-
-		* testsuite/gas/elf/pr27228.d: Change xfail to notarget for hppa.
-
-2022-04-09  Alan Modra  <amodra@gmail.com>
-
-	Correct nds32 readelf reloc numbers
-		* readelf.c (is_32bit_abs_reloc, is_16bit_abs_reloc): Comment fixes.
-		(is_none_reloc): Correct nds32 reloc numbers.
-
-2022-04-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-08  Fangrui Song  <i@maskray.me>
-
-	gas: Port "copy st_size only if unset" to aarch64 and riscv
-	And disable the new test gas/elf/size.s for alpha which uses its own
-	.set, for hppa*-*-hpux* which does not allow .size before declaration.
-
-2022-04-08  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: fprintf_styled_func not inizialized for disassembler
-	gprofng/ChangeLog
-	2022-04-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* libcollector/unwind.c: inizialize fprintf_styled_func.
-		* src/Disasm.cc: Likewise.
-
-2022-04-08  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: zlib handling
-	gprofng/ChangeLog
-	2022-04-06  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* configure.ac: Add AM_ZLIB.
-		* src/Makefile.am: Add $(ZLIBINC) and $(ZLIB).
-		* gprofng/src/DbeSession.h: Likewise.
-		* configure: Regenerate.
-		* Makefile.in: Regenerate.
-		* doc/Makefile.in: Regenerate.
-		* gp-display-html/Makefile.in: Regenerate.
-		* src/Makefile.in: Regenerate.
-
-2022-04-08  Pedro Alves  <pedro@palves.net>
-
-	gdb: Avoid undefined shifts, fix Go shifts
-	I noticed that a build of GDB with GCC + --enable-ubsan, testing
-	against GDBserver showed this GDB crash:
-
-	  (gdb) PASS: gdb.trace/trace-condition.exp: trace: 0x00abababcdcdcdcd << 46 == 0x7373400000000000: advance to trace begin
-	  tstart
-	  ../../src/gdb/valarith.c:1365:15: runtime error: left shift of 48320975398096333 by 46 places cannot be represented in type 'long int'
-	  ERROR: GDB process no longer exists
-	  GDB process exited with wait status 269549 exp9 0 1
-	  UNRESOLVED: gdb.trace/trace-condition.exp: trace: 0x00abababcdcdcdcd << 46 == 0x7373400000000000: start trace experiment
-
-	The problem is that, "0x00abababcdcdcdcd << 46" is an undefined signed
-	left shift, because the result is not representable in the type of the
-	lhs, which is signed.  This actually became defined in C++20, and if
-	you compile with "g++ -std=c++20 -Wall", you'll see that GCC no longer
-	warns about it, while it warns if you specify prior language versions.
-
-	While at it, there are a couple other situations that are undefined
-	(and are still undefined in C++20) and result in GDB dying: shifting
-	by a negative ammount, or by >= than the bit size of the promoted lhs.
-	For the latter, GDB shifts using (U)LONGEST internally, so you have to
-	shift by >= 64 bits to see it:
-
-	 $ gdb --batch -q -ex "p 1 << -1"
-	 ../../src/gdb/valarith.c:1365:15: runtime error: shift exponent -1 is negative
-	 $ # gdb exited
-
-	 $ gdb --batch -q -ex "p 1 << 64"
-	 ../../src/gdb/valarith.c:1365:15: runtime error: shift exponent 64 is too large for 64-bit type 'long int'
-	 $ # gdb exited
-
-	Also, right shifting a negative value is implementation-defined
-	(before C++20, after which it is defined).  For this, I chose to
-	change nothing in GDB other than adding tests, as I don't really know
-	whether we need to do anything.  AFAIK, most implementations do an
-	arithmetic right shift, and it may be we don't support any host or
-	target that behaves differently.  Plus, this becomes defined in C++20
-	exactly as arithmetic right shift.
-
-	Compilers don't error out on such shifts, at best they warn, so I
-	think GDB should just continue doing the shifts anyhow too.
-
-	Thus:
-
-	- Adjust scalar_binop to avoid the undefined paths, either by adding
-	  explicit result paths, or by casting the lhs of the left shift to
-	  unsigned, as appropriate.
-
-	  For the shifts by a too-large count, I made the result be what you'd
-	  get if you split the large count in a series of smaller shifts.
-	  Thus:
-
-	     Left shift, positive or negative lhs:
-
-	       V << 64
-		 =>  V << 16 << 16 << 16 << 16
-		   => 0
-
-	     Right shift, positive lhs:
-
-	       Vpos >> 64
-		 =>  Vpos >> 16 >> 16 >> 16 >> 16
-		   => 0
-
-	     Right shift, negative lhs:
-
-	       Vneg >> 64
-		 =>  Vneg >> 16 >> 16 >> 16 >> 16
-		   => -1
-
-	  This is actually Go's semantics (the compiler really emits
-	  instructions to make it so that you get 0 or -1 if you have a
-	  too-large shift).  So for that language GDB does the shift and
-	  nothing else.  For other C-like languages where such a shift is
-	  undefined, GDB warns in addition to performing the shift.
-
-	  For shift by a negative count, for Go, this is a hard error.  For
-	  other languages, since their compilers only warn, I made GDB warn
-	  too.  The semantics I chose (we're free to pick them since this is
-	  undefined behavior) is as-if you had shifted by the count cast to
-	  unsigned, thus as if you had shifted by a too-large count, thus the
-	  same as the previous scenario illustrated above.
-
-	  Examples:
-
-	    (gdb) set language go
-	    (gdb) p 1 << 100
-	    $1 = 0
-	    (gdb) p -1 << 100
-	    $2 = 0
-	    (gdb) p 1 >> 100
-	    $3 = 0
-	    (gdb) p -1 >> 100
-	    $4 = -1
-	    (gdb) p -2 >> 100
-	    $5 = -1
-	    (gdb) p 1 << -1
-	    left shift count is negative
-
-	    (gdb) set language c
-	    (gdb) p -2 >> 100
-	    warning: right shift count >= width of type
-	    $6 = -1
-	    (gdb) p -2 << 100
-	    warning: left shift count >= width of type
-	    $7 = 0
-	    (gdb) p 1 << -1
-	    warning: left shift count is negative
-	    $8 = 0
-	    (gdb) p -1 >> -1
-	    warning: right shift count is negative
-	    $9 = -1
-
-	- The warnings' texts are the same as what GCC prints.
-
-	- Add comprehensive tests in a new gdb.base/bitshift.exp testcase, so
-	  that we exercise all these scenarios.
-
-	Change-Id: I8bcd5fa02de3114b7ababc03e65702d86ec8d45d
-
-2022-04-08  Pedro Alves  <pedro@palves.net>
-
-	Fix undefined behavior in the Fortran, Go and Pascal number parsers
-	This commit ports these two fixes to the C parser:
-
-	  commit ebf13736b42af47c9907b5157c8e80c78dbe00e1
-	  CommitDate: Thu Sep 4 21:46:28 2014 +0100
-
-	      parse_number("0") reads uninitialized memory
-
-	  commit 20562150d8a894bc91657c843ee88c508188e32e
-	  CommitDate: Wed Oct 3 15:19:06 2018 -0600
-
-	      Avoid undefined behavior in parse_number
-
-	... to the Fortran, Go, and Fortran number parsers, fixing the same
-	problems there.
-
-	Also add a new testcase that exercises printing 0xffffffffffffffff
-	(max 64-bit) in all languages, which crashes a GDB built with UBsan
-	without the fix.
-
-	I moved get_set_option_choices out of all-architectures.exp.tcl to
-	common code to be able to extract all the supported languages.  I did
-	a tweak to it to generalize it a bit -- you now have to pass down the
-	"set" part of the command as well.  This is so that the proc can be
-	used with "maintenance set" commands as well in future.
-
-	Change-Id: I8e8f2fdc1e8407f63d923c26fd55d98148b9e16a
-
-2022-04-08  Nick Clifton  <nickc@redhat.com>
-
-	Debug info for function in Windows PE binary on wrong instruction
-		PR 29038
-		* coffgen.c (coff_find_nearest_line_with_names): Fix typo
-		retrieving saved bias.
-
-2022-04-08  Simon Marchi  <simon.marchi@efficios.com>
-
-	Pass PKG_CONFIG_PATH down from top-level Makefile
-	[Sending to binutils, gdb-patches and gcc-patches, since it touches the
-	top-level Makefile/configure]
-
-	I have my debuginfod library installed in a non-standard location
-	(/opt/debuginfod), which requires me to set
-	PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config.  If I just set it during
-	configure:
-
-	    $ PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config ./configure --with-debuginfod
-	    $ make
-
-	or
-
-	    $ ./configure --with-debuginfod PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config
-	    $ make
-
-	Then PKG_CONFIG_PATH is only present (and ignored) during the top-level
-	configure.  When running make (which runs gdb's and binutils'
-	configure), PKG_CONFIG_PATH is not set, which results in their configure
-	script not finding the library:
-
-	    checking for libdebuginfod >= 0.179... no
-	    configure: error: "--with-debuginfod was given, but libdebuginfod is missing or unusable."
-
-	Change the top-level configure/Makefile system to capture the value
-	passed when configuring the top-level and pass it down to
-	subdirectories (similar to CFLAGS, LDFLAGS, etc).
-
-	I don't know much about the top-level build system, so I really don't
-	know if I did this correctly.  The changes are:
-
-	 - Use AC_SUBST(PKG_CONFIG_PATH) in configure.ac, so that
-	   @PKG_CONFIG_PATH@ gets replaced with the actual PKG_CONFIG_PATH value
-	   in config files (i.e. Makefile)
-	 - Add a PKG_CONFIG_PATH Makefile variable in Makefile.tpl, initialized
-	   to @PKG_CONFIG_PATH@
-	 - Add PKG_CONFIG_PATH to HOST_EXPORTS in Makefile.tpl, which are the
-	   variables set when running the sub-configures
-
-	I initially added PKG_CONFIG_PATH to flags_to_pass, in Makefile.def, but
-	I don't think it's needed.  AFAIU, this defines the flags to pass down
-	when calling "make" in subdirectories.  We only need PKG_CONFIG_PATH to
-	be passed down during configure.  After that, it's captured in
-	gdb/config.status, so even if a "make" causes a re-configure later
-	(because gdb/configure has changed, for example), the PKG_CONFIG_PATH
-	value will be remembered.
-
-	ChangeLog:
-
-		* configure.ac: Add AC_SUBST(PKG_CONFIG_PATH).
-		* configure: Re-generate.
-		* Makefile.tpl (HOST_EXPORTS): Pass PKG_CONFIG_PATH.
-		(PKG_CONFIG_PATH): New.
-		* Makefile.in: Re-generate.
-
-	Change-Id: I91138dfca41c43b05e53e445f62e4b27882536bf
-
-2022-04-08  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: use nopie in gdb.dwarf2/dw2-inline-param.exp
-	I see this failure:
-
-	    (gdb) run ^M
-	    Starting program: /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.dwarf2/dw2-inline-param/dw2-inline-param ^M
-	    Warning:^M
-	    Cannot insert breakpoint 1.^M
-	    Cannot access memory at address 0x113b^M
-	    ^M
-	    (gdb) FAIL: gdb.dwarf2/dw2-inline-param.exp: runto: run to *0x113b
-
-	The test loads the binary in GDB, grabs the address of a symbol, strips
-	the binary, reloads it in GDB, runs the program, and then tries to place
-	a breakpoint at that address.  The problem is that the binary is built
-	as position independent, so the address GDB grabs in the first place
-	isn't where the code ends up after running.
-
-	Fix this by linking the binary as non-position-independent.  The
-	alternative would be to compute the relocated address where to place the
-	breakpoint, but that's not very straightforward, unfortunately.
-
-	I was confused for a while, I was trying to load the binary in GDB
-	manually to get the symbol address, but GDB was telling me the symbol
-	could not be found.  Meanwhile, it clearly worked in gdb.log.  The thing
-	is that GDB strips the binary in-place, so we don't have access to the
-	intermediary binary with symbols.  Change the test to output the
-	stripped binary to a separate file instead.
-
-	Change-Id: I66c56293df71b1ff49cf748d6784bd0e935211ba
-
-2022-04-08  Alan Modra  <amodra@gmail.com>
-
-	gdb maintainer commit rights
-	Formalise what ought to be obvious.  The top level of the binutils-gdb
-	repository isn't owned by binutils.
-
-		* MAINTAINERS: Spelling fix.  GDB global maintainer rights.
-
-2022-04-08  Bernhard Heckel  <bernhard.heckel@intel.com>
-	    Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: print fortran extended types with ptype
-	Add the print of the base-class of an extended type to the output of
-	ptype.  This requires the Fortran compiler to emit DW_AT_inheritance
-	for the extended type.
-
-2022-04-08  Bernhard Heckel  <bernhard.heckel@intel.com>
-	    Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/fortran: add support for accessing fields of extended types
-	Fortran 2003 supports type extension.  This patch allows access
-	to inherited members by using their fully qualified name as described
-	in the Fortran standard.
-
-	In doing so the patch also fixes a bug in GDB when trying to access the
-	members of a base class in a derived class via the derived class' base
-	class member.
-
-	This patch fixes PR22497 and PR26373 on GDB side.
-
-	Using the example Fortran program from PR22497
-
-	program mvce
-	  implicit none
-
-	  type :: my_type
-	     integer :: my_int
-	  end type my_type
-
-	  type, extends(my_type) :: extended_type
-	  end type extended_type
-
-	  type(my_type) :: foo
-	  type(extended_type) :: bar
-
-	  foo%my_int = 0
-	  bar%my_int = 1
-
-	  print*, foo, bar
-
-	end program mvce
-
-	and running this with GDB and setting a BP at 17:
-
-	Before:
-	(gdb) p bar%my_type
-	A syntax error in expression, near `my_type'.
-	(gdb) p bar%my_int
-	There is no member named my_int.
-	(gdb) p bar%my_type%my_int
-	A syntax error in expression, near `my_type%my_int'.
-	(gdb) p bar
-	$1 = ( my_type = ( my_int = 1 ) )
-
-	After:
-	(gdb) p bar%my_type
-	$1 = ( my_int = 1 )
-	(gdb) p bar%my_int
-	$2 = 1                 # this line requires DW_TAG_inheritance to work
-	(gdb) p bar%my_type%my_int
-	$3 = 1
-	(gdb) p bar
-	$4 = ( my_type = ( my_int = 1 ) )
-
-	In the above example "p bar%my_int" requires the compiler to emit
-	information about the inheritance relationship between extended_type
-	and my_type which gfortran and flang currently do not de.  The
-	respective issue gcc/49475 has been put as kfail.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26373
-	     https://sourceware.org/bugzilla/show_bug.cgi?id=22497
-
-2022-04-08  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb: add Nils-Christian Kempke to gdb/MAINTAINERS
-
-2022-04-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: change file_file_name to return an std::string
-	Straightforward change, return an std::string instead of a
-	gdb::unique_xmalloc_ptr<char>.  No behavior change expected.
-
-	Change-Id: Ia5e94c94221c35f978bb1b7bdffbff7209e0520e
-
-2022-04-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/fortran: fix fetching assumed rank array content
-	Commit:
-
-	  commit df7a7bdd9766adebc6b117c31bc617d81c1efd43
-	  Date:   Thu Mar 17 18:56:23 2022 +0000
-
-	      gdb: add support for Fortran's ASSUMED RANK arrays
-
-	Added support for Fortran assumed rank arrays.  Unfortunately, this
-	commit contained a bug that means though GDB can correctly calculate
-	the rank of an assumed rank array, GDB can't fetch the contents of an
-	assumed rank array.
-
-	The history of this patch can be seen on the mailing list here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-January/185306.html
-
-	The patches that were finally committed can be found here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186906.html
-
-	The original patches did support fetching the array contents, it was
-	only the later series that introduced the regression.
-
-	The problem is that when calculating the array rank the result is a
-	count of the number of ranks, i.e. this is a 1 based result, 1, 2, 3,
-	etc.
-
-	In contrast, when computing the details of any particular rank the
-	value passed to the DWARF expression evaluator should be a 0 based
-	rank offset, i.e. a 0 based number, 0, 1, 2, etc.
-
-	In the patches that were originally merged, this was not the case, and
-	we were passing the 1 based rank number to the expression evaluator,
-	e.g. passing 1 when we should pass 0, 2 when we should pass 1, etc.
-	As a result the DWARF expression evaluator was reading the
-	wrong (undefined) memory, and returning garbage results.
-
-	In this commit I have extended the test case to cover checking the
-	array contents, I've then ensured we make use of the correct rank
-	value, and extended some comments, and added or adjusted some asserts
-	as appropriate.
-
-2022-04-07  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: add "macros" option to gdb_compile
-	Make gdb_compile handle a new "macros" option, which makes it pass the
-	appropriate flag to make the compiler include macro information in the
-	debug info.  This will help simplify tests using macros, reduce
-	redundant code, and make it easier to add support for a new compiler.
-
-	Right now it only handles clang specially (using -fdebug-macro) and
-	falls back to -g3 otherwise (which works for gcc).  Other compilers can
-	be added as needed.
-
-	There are some tests that are currently skipped if the compiler is nor
-	gcc nor clang.  After this patch, the tests will attempt to run (the -g3
-	fall back will be used).  That gives a chance to people using other
-	compilers to notice something is wrong and maybe add support for their
-	compiler.  If it is needed to support a compiler that doesn't have a way
-	to include macro information, then we can always introduce a
-	"skip_macro_tests" that can be used to skip over them.
-
-	Change-Id: I50cd6ab1bfbb478c1005486408e214b551364c9b
-
-2022-04-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove subfile::buildsym_compunit field
-	It is only set, never used.
-
-	Change-Id: Ia46ed2f9da243b0ccfc4588c1b57be2a0f3939de
-
-2022-04-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Make gdb.base/annota1.exp more robust
-	On openSUSE Tumbleweed I run into:
-	...
-	FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
-	...
-
-	The problem is that the libthread_db message occurs at a location where it's
-	not expected:
-	...
-	Starting program: outputs/gdb.base/annota1/annota1 ^M
-	^M
-	^Z^Zstarting^M
-	^M
-	^Z^Zframes-invalid^M
-	[Thread debugging using libthread_db enabled]^M
-	Using host libthread_db library "/lib64/libthread_db.so.1".^M
-	^M
-	^Z^Zbreakpoints-invalid^M
-	^M
-	...
-
-	Fix this by making the matching more robust:
-	- rewrite the regexp such that each annotation is on a single line,
-	  starting with \r\n\032\032 and ending with \r\n
-	- add a regexp variable optional_re, that matches all possible optional
-	  output, and use it as a separator in the first part of the regexp
-
-	Tested on x86_64-linux.
-
-2022-04-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/dwarf: simplify line number program syntax
-	By calling `uplevel $body` in the program proc (a pattern we use at many
-	places), we can get rid of curly braces around each line number program
-	directive.  That seems like a nice small improvement to me.
-
-	Change-Id: Ib327edcbffbd4c23a08614adee56c12ea25ebc0b
-
-2022-04-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/dwarf: remove two unused variables
-	These variables seem to be unused, remove them.
-
-	Change-Id: I7d613d9d35735930ee78b2c348943c73a702afbb
-
-2022-04-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove symtab::pspace
-	Same idea as previous patch, but for symtab::pspace.
-
-	Change-Id: I1023abe622bea75ef648c6a97a01b53775d4104d
-
-2022-04-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove symtab::objfile
-	Same idea as previous patch, but for symtab::objfile.  I find
-	it clearer without this wrapper, as it shows that the objfile is
-	common to all symtabs of a given compunit.  Otherwise, you could think
-	that each symtab (of a given compunit) can have a specific objfile.
-
-	Change-Id: Ifc0dbc7ec31a06eefa2787c921196949d5a6fcc6
-
-2022-04-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove symtab::blockvector
-	symtab::blockvector is a wrapper around compunit_symtab::blockvector.
-	It is a bit misleadnig, as it gives the impression that a symtab has a
-	blockvector.  Remove it, change all users to fetch the blockvector
-	through the compunit instead.
-
-	Change-Id: Ibd062cd7926112a60d52899dff9224591cbdeebf
-
-2022-04-07  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove symtab::dirname
-	I think the symtab::dirname method is bogus, or at least very
-	misleading.  It makes you think that it returns the directory that was
-	used to find that symtab's file during compilation (i.e. the directory
-	the file refers to in the DWARF line header file table), or the
-	directory part of the symtab's filename maybe.  In fact, it returns the
-	compilation unit's directory, which is the CWD of the compiler, at
-	compilation time.  At least for DWARF, if the symtab's filename is
-	relative, it will be relative to that directory.  But if the symtab's
-	filename is absolute, then the directory returned by symtab::dirname has
-	nothing to do with the symtab's filename.
-
-	Remove symtab::dirname to avoid this confusion, change all users to
-	fetch the same information through the compunit.  At least, it will be
-	clear that this is a compunit property, not a symtab property.
-
-	Change-Id: I2894c3bf3789d7359a676db3c58be2c10763f5f0
-
-2022-04-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: make gdb_breakpoint and runto take a linespec
-	Change gdb_breakpoint to accept a linespec, not just a function.  In
-	fact, no behavior changes are necessary, this only changes the parameter
-	name and documentation.  Change runto as well, since the two are so
-	close (runto forwards all its arguments to gdb_breakpoint).
-
-	I wrote this for a downstrean GDB port,  but thought it could be
-	useful upstream, eventually, even though not callers take advantage of
-	it yet.
-
-	Change-Id: I08175fd444d5a60df90fd9985e1b5dfd87c027cc
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: update comments throughout reggroups.{c,h} files
-	This commit updates the comments in the gdb/reggroups.{c,h} files.
-	Fill in some missing comments, correct a few comments that were not
-	clear, and where we had comments duplicated between .c and .h files,
-	update the .c to reference the .h.
-
-	No user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: move struct reggroup into reggroups.h header
-	Move 'struct reggroup' into the reggroups.h header.  Remove the
-	reggroup_name and reggroup_type accessor functions, and just use the
-	name/type member functions within 'struct reggroup', update all uses
-	of these removed functions.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: convert reggroup to a C++ class with constructor, etc
-	Convert the 'struct reggroup' into a real class, with a constructor
-	and getter methods.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make the pre-defined register groups const
-	Convert the 7 global, pre-defined, register groups const, and fix the
-	fall out (a minor tweak required in riscv-tdep.c).
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: more 'const' in gdb/reggroups.{c,h}
-	Convert the reggroup_new and reggroup_gdbarch_new functions to return
-	a 'const regggroup *', and fix up all the fallout.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove reggroup_next and reggroup_prev
-	Add a new function gdbarch_reggroups that returns a reference to a
-	vector containing all the reggroups for an architecture.
-
-	Make use of this function throughout GDB instead of the existing
-	reggroup_next and reggroup_prev functions.
-
-	Finally, delete the reggroup_next and reggroup_prev functions.
-
-	Most of these changes are pretty straight forward, using range based
-	for loops instead of the old style look using reggroup_next.  There
-	are two places where the changes are less straight forward.
-
-	In gdb/python/py-registers.c, the register group iterator needed to
-	change slightly.  As the iterator is tightly coupled to the gdbarch, I
-	just fetch the register group vector from the gdbarch when needed, and
-	use an index counter to find the next item from the vector when
-	needed.
-
-	In gdb/tui/tui-regs.c the tui_reg_next and tui_reg_prev functions are
-	just wrappers around reggroup_next and reggroup_prev respectively.
-	I've just inlined the logic of the old functions into the tui
-	functions.  As the tui function had its own special twist (wrap around
-	behaviour) I think this is OK.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: convert reggroups to use a std::vector
-	Replace manual linked list with a std::vector.  This commit doesn't
-	change the reggroup_next and reggroup_prev API, but that will change
-	in a later commit.
-
-	This commit is focused on the minimal changes needed to manage the
-	reggroups using a std::vector, without changing the API exposed by the
-	reggroup.c file.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: always add the default register groups
-	There's a set of 7 default register groups.  If we don't add any
-	gdbarch specific register groups during gdbarch initialisation, then
-	when we iterate over the register groups using reggroup_next and
-	reggroup_prev we will make use of these 7 default groups.  See the use
-	of default_groups in gdb/reggroups.c for details on this.
-
-	However, if the gdbarch adds its own groups during gdbarch
-	initialisation, then these groups will be used in preference to the
-	default groups.
-
-	A problem arises though if the particular architecture makes use of
-	the target description mechanism.  If the default target
-	description(s) (i.e. those internal to GDB that are used when the user
-	doesn't provide their own) don't mention any additional register
-	groups then the default register groups will be used.
-
-	But if the target description does mention additional groups then the
-	default groups are not used, and instead, the groups from the target
-	description are used.
-
-	The problem with this is that what usually happens is that the target
-	description will mention additional groups, e.g. groups for special
-	registers.  Most architectures that use target descriptions work
-	around this by adding all (or most) of the default register groups in
-	all cases.  See i386_add_reggroups, aarch64_add_reggroups,
-	riscv_add_reggroups, xtensa_add_reggroups, and others.
-
-	In this patch, my suggestion is that we should just add the default
-	register groups for every architecture, always.  This change is in
-	gdb/reggroups.c.
-
-	All the remaining changes are me updating the various architectures to
-	not add the default groups themselves.
-
-	So, where will this change be visible to the user?  I think the
-	following commands will possibly change:
-
-	* info registers / info all-registers:
-
-	  The user can provide a register group to these commands.  For example,
-	  on csky, we previously never added the 'vector' group.  Now, as a
-	  default group, this will be available, but (presumably) will not
-	  contain any registers.  I don't think this is necessarily a bad
-	  thing, there's something to be said for having some consistent
-	  defaults available.  There are other architectures that didn't add
-	  all 7 of the defaults, which will now have gained additional groups.
-
-	* maint print reggroups
-
-	  This prints the set of all available groups.  As a maintenance
-	  command I'm less concerned with the output changing here.
-	  Obviously, for the architectures that didn't previously add all the
-	  defaults, this list just got bigger.
-
-	* maint print register-groups
-
-	  This prints all the registers, and the groups they are in.  If the
-	  defaults were not previously being added then a register (obviously)
-	  can't appear in one of the default groups.  Now the groups are
-	  available then registers might be in more groups than previously.
-	  However, this is again a maintenance command, so I'm less concerned
-	  about this changing.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: fix 'tui reg next/prev' command when data window is hidden
-	Start GDB like:
-
-	  $ gdb -q executable
-	  (gdb) start
-	  (gdb) layout src
-	  ... tui windows are now displayed ...
-	  (gdb) tui reg next
-
-	At this point the data (register) window should be displayed, but will
-	contain the message 'Register Values Unavailable', and at the console
-	you'll see the message "unknown register group 'next'".
-
-	The same happens with 'tui reg prev' (but the error message is
-	slightly different).
-
-	At this point you can continue to use 'tui reg next' and/or 'tui reg
-	prev' and you'll keep getting the error message.
-
-	The problem is that when the data (register) window is first
-	displayed, it's current register group is nullptr.  As a consequence
-	tui_reg_next and tui_reg_prev (tui/tui-regs.c) will always just return
-	nullptr, which triggers an error in tui_reg_command.
-
-	In this commit I change tui_reg_next and tui_reg_prev so that they
-	instead return the first and last register group respectively if the
-	current register group is nullptr.
-
-	So, after this, using 'tui reg next' will (in the above case) show the
-	first register group, while 'tui reg prev' will display the last
-	register group.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: avoid theoretical bug with 'tui reg' command
-	While looking at the 'tui reg' command as part of another patch, I
-	spotted a theoretical bug.
-
-	The 'tui reg' command takes the name of a register group, but also
-	handles partial register group matches, though the partial match has to
-	be unique.  The current command logic goes:
-
-	With the code as currently written, if a target description named a
-	register group either 'prev' or 'next' then GDB would see this as an
-	ambiguous register name, and refuse to switch groups.
-
-	Naming a register group 'prev' or 'next' seems pretty unlikely, but,
-	by adding a single else block we can prevent this problem.
-
-	Now, if there's a 'prev' or 'next' register group, the user will not
-	be able to select the group directly, the 'prev' and 'next' names will
-	always iterate through the available groups instead.  But at least the
-	user could select their groups by iteration, rather than direct
-	selection.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: have reggroup_find return a const
-	Update reggroup_find to return a const reggroup *.
-
-	There are other function in gdb/reggroup.{c,h} files that could
-	benefit from returning const, these will be updated in later commits.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: use 'const reggroup *' in python/py-registers.c file
-	Convert uses of 'struct reggroup *' in python/py-registers.c to be
-	'const'.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: switch to using 'const reggroup *' in tui-regs.{c,h}
-	Make uses of 'reggroup *' const throughout tui-regs.{c,h}.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make gdbarch_register_reggroup_p take a const reggroup *
-	Change gdbarch_register_reggroup_p to take a 'const struct reggroup *'
-	argument.  This requires a change to the gdb/gdbarch-components.py
-	script, regeneration of gdbarch.{c,h}, and then updates to all the
-	architectures that implement this method.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add some const in gdb/reggroups.c
-	This commit makes the 'struct reggroup *' argument const for the
-	following functions:
-
-	  reggroup_next
-	  reggroup_prev
-	  reggroup_name
-	  reggroup_type
-
-	There are other places that could benefit from const in the
-	reggroup.{c,h} files, but these will be changing in further commits.
-
-	There should be no user visible changes after this commit.
-
-2022-04-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't try to use readline before it's initialized
-	While working on a different patch, I triggered an assertion from the
-	initialize_current_architecture code, specifically from one of
-	the *_gdbarch_init functions in a *-tdep.c file.  This exposes a
-	couple of issues with GDB.
-
-	This is easy enough to reproduce by adding 'gdb_assert (false)' into a
-	suitable function.  For example, I added a line into i386_gdbarch_init
-	and can see the following issue.
-
-	I start GDB and immediately hit the assert, the output is as you'd
-	expect, except for the very last line:
-
-	  $ ./gdb/gdb --data-directory ./gdb/data-directory/
-	  ../../src.dev-1/gdb/i386-tdep.c:8455: internal-error: i386_gdbarch_init: Assertion `false' failed.
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-	  ----- Backtrace -----
-	  ... snip ...
-	  ---------------------
-	  ../../src.dev-1/gdb/i386-tdep.c:8455: internal-error: i386_gdbarch_init: Assertion `false' failed.
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-	  Quit this debugging session? (y or n) ../../src.dev-1/gdb/ser-event.c:212:16: runtime error: member access within null pointer of type 'struct serial'
-
-	Something goes wrong when we try to query the user.  Note, I
-	configured GDB with --enable-ubsan, I suspect that without this the
-	above "error" would actually just be a crash.
-
-	The backtrace from ser-event.c:212 looks like this:
-
-	  (gdb) bt 10
-	  #0  serial_event_clear (event=0x675c020) at ../../src/gdb/ser-event.c:212
-	  #1  0x0000000000769456 in invoke_async_signal_handlers () at ../../src/gdb/async-event.c:211
-	  #2  0x000000000295049b in gdb_do_one_event () at ../../src/gdbsupport/event-loop.cc:194
-	  #3  0x0000000001f015f8 in gdb_readline_wrapper (
-	      prompt=0x67135c0 "../../src/gdb/i386-tdep.c:8455: internal-error: i386_gdbarch_init: Assertion `false' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nQuit this debugg"...)
-	      at ../../src/gdb/top.c:1141
-	  #4  0x0000000002118b64 in defaulted_query(const char *, char, typedef __va_list_tag __va_list_tag *) (
-	      ctlstr=0x2e4eb68 "%s\nQuit this debugging session? ", defchar=0 '\000', args=0x7fffffffa6e0)
-	      at ../../src/gdb/utils.c:934
-	  #5  0x0000000002118f72 in query (ctlstr=0x2e4eb68 "%s\nQuit this debugging session? ")
-	      at ../../src/gdb/utils.c:1026
-	  #6  0x00000000021170f6 in internal_vproblem(internal_problem *, const char *, int, const char *, typedef __va_list_tag __va_list_tag *) (problem=0x6107bc0 <internal_error_problem>, file=0x2b976c8 "../../src/gdb/i386-tdep.c",
-	      line=8455, fmt=0x2b96d7f "%s: Assertion `%s' failed.", ap=0x7fffffffa8e8) at ../../src/gdb/utils.c:417
-	  #7  0x00000000021175a0 in internal_verror (file=0x2b976c8 "../../src/gdb/i386-tdep.c", line=8455,
-	      fmt=0x2b96d7f "%s: Assertion `%s' failed.", ap=0x7fffffffa8e8) at ../../src/gdb/utils.c:485
-	  #8  0x00000000029503b3 in internal_error (file=0x2b976c8 "../../src/gdb/i386-tdep.c", line=8455,
-	      fmt=0x2b96d7f "%s: Assertion `%s' failed.") at ../../src/gdbsupport/errors.cc:55
-	  #9  0x000000000122d5b6 in i386_gdbarch_init (info=..., arches=0x0) at ../../src/gdb/i386-tdep.c:8455
-	  (More stack frames follow...)
-
-	It turns out that the problem is that the async event handler
-	mechanism has been invoked, but this has not yet been initialized.
-
-	If we look at gdb_init (in gdb/top.c) we can indeed see the call to
-	gdb_init_signals is after the call to initialize_current_architecture.
-
-	If I reorder the calls, moving gdb_init_signals earlier, then the
-	initial error is resolved, however, things are still broken.  I now
-	see the same "Quit this debugging session? (y or n)" prompt, but when
-	I provide an answer and press return GDB immediately crashes.
-
-	So what's going on now?  The next problem is that the call_readline
-	field within the current_ui structure is not initialized, and this
-	callback is invoked to process the reply I entered.
-
-	The problem is that call_readline is setup as a result of calling
-	set_top_level_interpreter, which is called from captured_main_1.
-	Unfortunately, set_top_level_interpreter is called after gdb_init is
-	called.
-
-	I wondered how to solve this problem for a while, however, I don't
-	know if there's an easy "just reorder some lines" solution here.
-	Looking through captured_main_1 there seems to be a bunch of
-	dependencies between printing various things, parsing config files,
-	and setting up the interpreter.  I'm sure there is a solution hiding
-	in there somewhere.... I'm just not sure I want to spend any longer
-	looking for it.
-
-	So.
-
-	I propose a simpler solution, more of a hack/work-around.  In utils.c
-	we already have a function filtered_printing_initialized, this is
-	checked in a few places within internal_vproblem.  In some of these
-	cases the call gates whether or not GDB will query the user.
-
-	My proposal is to add a new readline_initialized function, which
-	checks if the current_ui has had readline initialized yet.  If this is
-	not the case then we should not attempt to query the user.
-
-	After this change GDB prints the error message, the backtrace, and
-	then aborts (including dumping core).  This actually seems pretty sane
-	as, if GDB has not yet made it through the initialization then it
-	doesn't make much sense to allow the user to say "no, I don't want to
-	quit the debug session" (I think).
-
-2022-04-07  Luis Machado  <luis.machado@arm.com>
-
-	Recognize the NT_ARM_SYSTEM_CALL register set
-	Update binutils to recognize the NT_ARM_SYSTEM_CALL set that is dumped by
-	Linux to core files.
-
-2022-04-07  Mark Harmstone  <mark@harmstone.com>
-
-	Add support for COFF secidx relocations
-	bfd	* coff-i386.c (in_reloc_p): Add R_SECTION.
-		(howto_table): Add R_SECTION.
-		(coff_pe_i386_relocation_section): Add support for R_SECTION.
-		(coff_i386_reloc_type_lookup): Add support for
-		BFD_RELOC_16_SECCIDX.
-		* coff-x86_64.c (in_reloc_p): Add R_SECTION.
-		(howto_table): Add R_SECTION.
-		(coff_pe_amd64_relocation_section): Add support for R_SECTION.
-		(coff_amd64_reloc_type_lookup): Add support for
-		BFD_RELOC_16_SECCIDX.
-		* reloc.c: Add BFD_RELOC_16_SECIDX.
-		* bfd-in2.h: Regenerate.
-		* libbfd.h: Regenerate.
-
-	gas	* config/tc-i386.c (pe_directive_secidx): New function.
-		(md_pseudo_table): Add support for secidx.
-		(x86_cons_fix_new): Likewise.
-		(tc_gen_reloc): Likewise.
-		* expr.c (op_rank): Add O_secidx.
-		* expr.h (operatorT): Likewise.
-		* symbols.c (resolve_symbol_value): Add support for O_secidx.
-		* testsuite/gas/i386/secidx.s: New test source file.
-		* testsuite/gas/i386/secidx.d: New test driver file.
-		* testsuite/gas/i386/i386.exp: Run new test.
-
-	include	* coff/i386.h: Define R_SECTION.
-		* coff/x86_64.h: Likewise.
-
-	ld	* testsuite/ld-pe/secidx1.s: New test source file.
-		* testsuite/ld-pe/secidx2.s: New test source file.
-		* testsuite/ld-pe/secidx.d: New test driver file.
-		* testsuite/ld-pe/secidx_64.d: New test driver file.
-		* testsuite/ld-pe/pe.exp: Add new tests.
-
-2022-04-07  Jan Beulich  <jbeulich@suse.com>
-
-	gas/Dwarf: record functions
-	To help tools like addr2line looking up function names, in particular
-	when dealing with e.g. PE/COFF binaries (linked from ELF objects), where
-	there's no ELF symbol table to fall back to, emit minimalistic
-	information for functions marked as such and having their size
-	specified.
-
-	Notes regarding the restriction to (pure) ELF:
-	- I realize this is a layering violation; I don't see how to deal with
-	  that in a better way.
-	- S_GET_SIZE(), when OBJ_MAYBE_ELF is defined, looks wrong: Unlike
-	  S_SET_SIZE() it does not check whether the hook is NULL.
-	- symbol_get_obj(), when OBJ_MAYBE_ELF is defined, looks unusable, as
-	  its return type can only ever be one object format's type (and this
-	  may then not be ELF's).
-
-	The new testcases are limited to x86 because I wanted to include the
-	case where function size can't be determined yet at the time Dwarf2 info
-	is generated. As .nops gains support by further targets, they could also
-	be added here then (with, as necessary, expecations suitably relaxed to
-	cover for insn size differences).
-
-2022-04-07  Jan Beulich  <jbeulich@suse.com>
-
-	Arm64: arrange for line number emission for .inst
-	Just like insns encoded the more conventional way these should have line
-	number info associated with them.
-
-	Arm32: arrange for line number emission for .inst
-	Just like insns encoded the more conventional way these should have line
-	number info associated with them.
-
-	RISC-V: add testcase to check line number emission for .insn
-	Since no such test looks to exist, derive one from insn.s.
-
-2022-04-07  Andreas Krebbel  <krebbel@linux.ibm.com>
-
-	IBM zSystems: Add support for z16 as CPU name.
-	So far z16 was identified as arch14. After the machine has been
-	announced we can now add the real name.
-
-	gas/ChangeLog:
-
-		* config/tc-s390.c (s390_parse_cpu): Add z16 as alternate CPU
-		name.
-		* doc/as.texi: Add z16 and arch14 to CPU string list.
-		* doc/c-s390.texi: Add z16 to CPU string list.
-
-	opcodes/ChangeLog:
-
-		* s390-mkopc.c (main): Enable z16 as CPU string in the opcode
-		table.
-
-2022-04-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-06  Youling Tang  <tangyouling@loongson.cn>
-
-	gdb: mips: Fix the handling of complex type of function return value
-	$ objdump -d outputs/gdb.base/varargs/varargs
-	00000001200012e8 <find_max_float_real>:
-	...
-	   1200013b8:   c7c10000        lwc1    $f1,0(s8)
-	   1200013bc:   c7c00004        lwc1    $f0,4(s8)
-	   1200013c0:   46000886        mov.s   $f2,$f1
-	   1200013c4:   46000046        mov.s   $f1,$f0
-	   1200013c8:   46001006        mov.s   $f0,$f2
-	   1200013cc:   46000886        mov.s   $f2,$f1
-	   1200013d0:   03c0e825        move    sp,s8
-	   1200013d4:   dfbe0038        ld      s8,56(sp)
-	   1200013d8:   67bd0080        daddiu  sp,sp,128
-	   1200013dc:   03e00008        jr      ra
-	   1200013e0:   00000000        nop
-
-	From the above disassembly, we can see that when the return value of the
-	function is a complex type and len <= 2 * MIPS64_REGSIZE, the return value
-	will be passed through $f0 and $f2, so fix the corresponding processing
-	in mips_n32n64_return_value().
-
-	$ make check RUNTESTFLAGS='GDB=../gdb gdb.base/varargs.exp --outdir=test'
-
-	Before applying the patch:
-	 FAIL: gdb.base/varargs.exp: print find_max_float_real(4, fc1, fc2, fc3, fc4)
-	 FAIL: gdb.base/varargs.exp: print find_max_double_real(4, dc1, dc2, dc3, dc4)
-
-	 # of expected passes            9
-	 # of unexpected failures        2
-
-	After applying the patch:
-	 # of expected passes            11
-
-	This also fixes:
-	 FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns float _Complex
-
-	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
-
-2022-04-06  Tom Tromey  <tom@tromey.com>
-
-	Use new and delete in jit.c
-	This changes jit.c to use new and delete, rather than XCNEW.  This
-	simplifies the code a little.  This was useful for another patch I'm
-	working on, and I thought it would make sense to send it separately.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-04-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: don't copy entirely optimized out values in value_copy
-	Bug 28980 shows that trying to value_copy an entirely optimized out
-	value causes an internal error.  The original bug report involves MI and
-	some Python pretty printer, and is quite difficult to reproduce, but
-	another easy way to reproduce (that is believed to be equivalent) was
-	proposed:
-
-	    $ ./gdb -q -nx --data-directory=data-directory -ex "py print(gdb.Value(gdb.Value(5).type.optimized_out()))"
-	    /home/smarchi/src/binutils-gdb/gdb/value.c:1731: internal-error: value_copy: Assertion `arg->contents != nullptr' failed.
-
-	This is caused by 5f8ab46bc691 ("gdb: constify parameter of
-	value_copy").  It added an assertion that the contents buffer is
-	allocated if the value is not lazy:
-
-	  if (!value_lazy (val))
-	    {
-	      gdb_assert (arg->contents != nullptr);
-
-	This was based on the comment on value::contents, which suggest that
-	this is the case:
-
-	  /* Actual contents of the value.  Target byte-order.  NULL or not
-	     valid if lazy is nonzero.  */
-	  gdb::unique_xmalloc_ptr<gdb_byte> contents;
-
-	However, it turns out that it can also be nullptr also if the value is
-	entirely optimized out, for example on exit of
-	allocate_optimized_out_value.  That function creates a lazy value, marks
-	the entire value as optimized out, and then clears the lazy flag.  But
-	contents remains nullptr.
-
-	This wasn't a problem for value_copy before, because it was calling
-	value_contents_all_raw on the input value, which caused contents to be
-	allocated before doing the copy.  This means that the input value to
-	value_copy did not have its contents allocated on entry, but had it
-	allocated on exit.  The result value had it allocated on exit.  And that
-	we copied bytes for an entirely optimized out value (i.e. meaningless
-	bytes).
-
-	From here I see two choices:
-
-	 1. respect the documented invariant that contents is nullptr only and
-	    only if the value is lazy, which means making
-	    allocate_optimized_out_value allocate contents
-	 2. extend the cases where contents can be nullptr to also include
-	    values that are entirely optimized out (note that you could still
-	    have some entirely optimized out values that do have contents
-	    allocated, it depends on how they were created) and adjust
-	    value_copy accordingly
-
-	Choice #1 is safe, but less efficient: it's not very useful to allocate
-	a buffer for an entirely optimized out value.  It's even a bit less
-	efficient than what we had initially, because values coming out of
-	allocate_optimized_out_value would now always get their contents
-	allocated.
-
-	Choice #2 would be more efficient than what we had before: giving an
-	optimized out value without allocated contents to value_copy would
-	result in an optimized out value without allocated contents (and the
-	input value would still be without allocated contents on exit).  But
-	it's more risky, since it's difficult to ensure that all users of the
-	contents (through the various_contents* accessors) are all fine with
-	that new invariant.
-
-	In this patch, I opt for choice #2, since I think it is a better
-	direction than choice #1.  #1 would be a pessimization, and if we go
-	this way, I doubt that it will ever be revisited, it will just stay that
-	way forever.
-
-	Add a selftest to test this.  I initially started to write it as a
-	Python test (since the reproducer is in Python), but a selftest is more
-	straightforward.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28980
-	Change-Id: I6e2f5c0ea804fafa041fcc4345d47064b5900ed7
-
-2022-04-06  Jeff Law  <jeffreyalaw@gmail.com>
-
-	Fix for v850e divq instruction
-	This is the last of the correctness fixes I've been carrying around for the
-	v850.
-
-	Like the other recent fixes, this is another case where we haven't been as
-	careful as we should WRT host vs target types.   For the divq instruction
-	both operands are 32 bit types.  Yet in the simulator code we convert them
-	from unsigned int to signed long by assignment.  So 0xfffffffb (aka -5)
-	turns into 4294967291 and naturally that changes the result of our division.
-
-	The fix is simple, insert a cast to int32_t to force interpretation as a
-	signed value.
-
-	Testcase for the simulator is included.  It has a trivial dependency on the
-	bins patch.
-
-2022-04-06  Jeff Law  <jeffreyalaw@gmail.com>
-
-	Fix "bins" simulation for v850e3v5
-	I've been carrying this for a few years.   One test in the GCC testsuite is
-	failing due to a bug in the handling of the v850e3v5 instruction "bins".
-
-	When the "bins" instruction specifies a 32bit bitfield size, the simulator
-	exhibits undefined behavior by trying to shift a 32 bit quantity by 32 bits.
-	In the case of a 32 bit shift, we know what the resultant mask should be.  So
-	we can just set it.
-
-	That seemed better than using 1UL for the constant (on a 32bit host unsigned
-	long might still just be 32 bits) or needlessly forcing everything to
-	long long types.
-
-	Thankfully the case where this shows up is only bins <src>, 0, 32, <dest>
-	which would normally be encoded as a simple move.
-
-		* testsuite/v850/allinsns.exp: Add v850e3v5.
-		* testsuite/v850/bins.cgs: New test.
-		* v850/simops.c (v850_bins): Avoid undefined behavior on left shift.
-
-2022-04-06  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: prepend tramp frame unwinder for signal
-	Implement the "init" method of struct tramp_frame to prepend tramp
-	frame unwinder for signal on LoongArch.
-
-	With this patch, the following failed testcases can be fixed:
-
-	  FAIL: gdb.base/annota1.exp: backtrace @ signal handler (timeout)
-	  FAIL: gdb.base/annota3.exp: backtrace @ signal handler (pattern 2)
-
-2022-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make interp_add static
-	Since this commit:
-
-	  commit 8322445e0584be846f5873b9aab257dc9fbda05d
-	  Date:   Tue Jun 21 01:11:45 2016 +0100
-
-	      Introduce interpreter factories
-
-	Interpreters should be registered with GDB, not by calling interp_add,
-	but with a call to interp_factory_register.  I've checked the insight
-	source, and it too has moved over to using interp_factory_register.
-
-	In this commit I make interp_add static within interps.c.
-
-	There should be no user visible change after this commit.
-
-2022-04-06  Nick Clifton  <nickc@redhat.com>
-
-	Add code to display the contents of .debug_loclists sections which contain offset entry tables.
-		PR 28981
-		* dwarf.c (fetch_indexed_value): Rename to fecth_indexed_addr and
-		return the address, rather than a string.
-		(fetch_indexed_value): New function - returns a value indexed by a
-		DW_FORM_loclistx or DW_FORM_rnglistx form.
-		(read_and_display_attr_value): Add support for DW_FORM_loclistx
-		and DW_FORM_rnglistx.
-		(process_debug_info): Load the loclists and rnglists sections.
-		(display_loclists_list): Add support for DW_LLE_base_addressx,
-		DW_LLE_startx_endx, DW_LLE_startx_length and
-		DW_LLE_default_location.
-		(display_offset_entry_loclists): New function.  Displays a
-		.debug_loclists section that contains offset entry tables.
-		(display_debug_loc): Call the new function.
-		(display_debug_rnglists_list): Add support for
-		DW_RLE_base_addressx, DW_RLE_startx_endx and DW_RLE_startx_length.
-		(display_debug_ranges): Display the contents of the section's
-		header.
-		* dwarf.h (struct debug_info): Add loclists_base field.
-		* testsuite/binutils-all/dw5.W: Update expected output.
-		* testsuite/binutils-all/x86-64/pr26808.dump: Likewise.
-
-2022-04-06  Luis Machado  <luis.machado@linaro.org>
-
-	Enable ARMv8.1-m PACBTI support
-	This set of changes enable support for the ARMv8.1-m PACBTI extensions [1].
-
-	The goal of the PACBTI extensions is similar in scope to that of a-profile
-	PAC/BTI (aarch64 only), but the underlying implementation is different.
-
-	One important difference is that the pointer authentication code is stored
-	in a separate register, thus we don't need to mask/unmask the return address
-	from a function in order to produce a correct backtrace.
-
-	The patch introduces the following modifications:
-
-	- Extend the prologue analyser for 32-bit ARM to handle some instructions
-	from ARMv8.1-m PACBTI: pac, aut, pacg, autg and bti. Also keep track of
-	return address signing/authentication instructions.
-
-	- Adds code to identify object file attributes that indicate the presence of
-	ARMv8.1-m PACBTI (Tag_PAC_extension, Tag_BTI_extension, Tag_PACRET_use and
-	Tag_BTI_use).
-
-	- Adds support for DWARF pseudo-register RA_AUTH_CODE, as described in the
-	aadwarf32 [2].
-
-	- Extends the dwarf unwinder to track the value of RA_AUTH_CODE.
-
-	- Decorates backtraces with the "[PAC]" identifier when a frame has signed
-	the return address.
-
-	- Makes GDB aware of a new XML feature "org.gnu.gdb.arm.m-profile-pacbti". This
-	feature is not included as an XML file on GDB's side because it is only
-	supported for bare metal targets.
-
-	- Additional documentation.
-
-	[1] https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/armv8-1-m-pointer-authentication-and-branch-target-identification-extension
-	[2] https://github.com/ARM-software/abi-aa/blob/main/aadwarf32/aadwarf32.rst
-
-2022-04-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: move gdb_disassembly_flag into a new disasm-flags.h file
-	While working on the disassembler I was getting frustrated.  Every
-	time I touched disasm.h it seemed like every file in GDB would need to
-	be rebuilt.  Surely the disassembler can't be required by that many
-	parts of GDB, right?
-
-	Turns out that disasm.h is included in target.h, so pretty much every
-	file was being rebuilt!
-
-	The only thing from disasm.h that target.h needed is the
-	gdb_disassembly_flag enum, as this is part of the target_ops api.
-
-	In this commit I move gdb_disassembly_flag into its own file.  This is
-	then included in target.h and disasm.h, after which, the number of
-	files that depend on disasm.h is much reduced.
-
-	I also audited all the other includes of disasm.h and found that the
-	includes in mep-tdep.c and python/py-registers.c are no longer needed,
-	so I've removed these.
-
-	Now, after changing disasm.h, GDB rebuilds much quicker.
-
-	There should be no user visible changes after this commit.
-
-2022-04-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-05  Tom Tromey  <tom@tromey.com>
-
-	Introduce wrapped_file
-	Simon pointed out that timestamped_file probably needed to implement a
-	few more methods.  This patch introduces a new file-wrapping file that
-	forwards most of its calls, making it simpler to implement new such
-	files.  It also converts timestamped_file and pager_file to use it.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-04-05  Tom Tromey  <tromey@adacore.com>
-
-	Don't call init_thread_list in windows-nat.c
-	I don't think there's any need to call init_thread_list in
-	windows-nat.c.  This patch removes it.  I tested this using the
-	internal AdaCore test suite on Windows, which FWIW does include some
-	multi-threaded inferiors.
-
-2022-04-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: fix intermittent failure in gdb.base/vfork-follow-parent.exp
-	Tom de Vries reported some failures in this test:
-
-	    continue
-	    Continuing.
-	    [New inferior 2 (process 14967)]
-
-	    Thread 1.1 "vfork-follow-pa" hit Breakpoint 2, break_parent () at /home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.base/vfork-follow-parent.c:23
-	    23	}
-	    (gdb) FAIL: gdb.base/vfork-follow-parent.exp: resolution_method=schedule-multiple: continue to end of inferior 2
-	    inferior 1
-	    [Switching to inferior 1 [process 14961] (/home/vries/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base/vfork-follow-parent/vfork-follow-parent)]
-	    [Switching to thread 1.1 (process 14961)]
-	    #0  break_parent () at /home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.base/vfork-follow-parent.c:23
-	    23	}
-	    (gdb) PASS: gdb.base/vfork-follow-parent.exp: resolution_method=schedule-multiple: inferior 1
-	    continue
-	    Continuing.
-	    [Inferior 2 (process 14967) exited normally]
-	    (gdb) FAIL: gdb.base/vfork-follow-parent.exp: resolution_method=schedule-multiple: continue to break_parent (the program exited)
-
-	Here, we continue both the vfork parent and child, since
-	schedule-multiple is on.  The child exits, which un-freezes the parent
-	and makes an exit event available to GDB.  We expect GDB to consume this
-	exit event and present it to the user.  Here, we see that GDB shows the
-	parent hitting a breakpoint before showing the child exit.
-
-	Because of the vfork, we know that chronologically, the child exiting
-	must have happend before the parent hitting a breakpoint.  However,
-	scheduling being what it is, it is possible for the parent to un-freeze
-	and exit quickly, such that when GDB pulls events out of the kernel,
-	exit events for both processes are available.  And then, GDB may chose
-	at random to return the one for the parent first.  This is what I
-	imagine what causes the failure shown above.
-
-	We could change the test to expect both possible outcomes, but I wanted
-	to avoid complicating the .exp file that way.  Instead, add a variable
-	that the parent loops on that we set only after we confirmed the exit of
-	the child.  That should ensure that the order is always the same.
-
-	Note that I wasn't able to reproduce the failure, so I can't tell if
-	this fix really fixes the problem.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29021
-	Change-Id: Ibc8e527e0e00dac54b22021fe4d9d8ab0f3b28ad
-
-2022-04-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: fix intermittent failures in gdb.mi/mi-cmd-user-context.exp
-	I got failures like this once on a CI:
-
-	    frame^M
-	    &"frame\n"^M
-	    ~"#0  child_sub_function () at /home/jenkins/workspace/binutils-gdb_master_build/arch/amd64/target_board/unix/src/binutils-gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:33\n"^M
-	    ~"33\t    dummy = !dummy; /* thread loop line */\n"^M
-	    ^done^M
-	    (gdb) ^M
-	    FAIL: gdb.mi/mi-cmd-user-context.exp: frame 1 (unexpected output)
-
-	The problem is that the test expects the following regexp:
-
-	  ".*#0  0x.*"
-
-	And that typically works, when the output of the frame command looks
-	like:
-
-	  #0  0x00005555555551bb in child_sub_function () at ...
-
-	Note the lack of hexadecimal address in the failing case.  Whether or
-	not the hexadecimal address is printed (roughly) depends on whether the
-	current PC is at the beginning of a line.  So depending on where thread
-	2 was when GDB stopped it (after thread 1 hit its breakpoint), we can
-	get either output.  Adjust the regexps to not expect an hexadecimal
-	prefix (0x) but a function name instead (either child_sub_function or
-	child_function).  That one is always printed, and is also a good check
-	that we are in the frame we expect.
-
-	Note that for test "frame 5", we are showing a pthread frame (on my
-	system), so the function name is internal to pthread, not something we
-	can rely on.  In that case, it's almost certain that we are not at the
-	beginning of a line, or that we don't have debug info, so I think it's
-	fine to expect the hex prefix.
-
-	And for test "frame 6", it's ok to _not_ expect a hex prefix (what the
-	test currently does), since we are showing thread 1, which has hit a
-	breakpoint placed at the beginning of a line.
-
-	When testing this, Tom de Vries pointed out that the current test code
-	doesn't ensure that the child threads are in child_sub_function when
-	they are stopped.  If the scheduler chooses so, it is possible for the
-	child threads to be still in the pthread_barrier_wait or child_function
-	functions when they get stopped.  So that would be another racy failure
-	waiting to happen.
-
-	The only way I can think of to ensure the child threads are in the
-	child_sub_function function when they get stopped is to synchronize the
-	threads using some variables instead of pthread_barrier_wait.  So,
-	replace the barrier with an array of flags (one per child thread).  Each
-	child thread flips its flag in child_sub_function to allow the main
-	thread to make progress and eventually hit the breakpoint.
-
-	I copied user-selected-context-sync.c to a new mi-cmd-user-context.c and
-	made modifications to that, to avoid interfering with
-	user-selected-context-sync.exp.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29025
-	Change-Id: I919673bbf9927158beb0e8b7e9e980b8d65eca90
-
-2022-04-05  Luis Machado  <luis.machado@arm.com>
-
-	Fix qRcmd error code parsing
-	Someone at IRC spotted a bug in qRcmd handling. This looks like an oversight
-	or it is that way for historical reasons.
-
-	The code in gdb/remote.c:remote_target::rcmd uses isdigit instead of
-	isxdigit. One could argue that we are expecting decimal numbers, but further
-	below we use fromhex ().
-
-	Update the function to use isxdigit instead and also update the documentation.
-
-	I see there are lots of other cases of undocumented number format for error
-	messages, mostly described as NN instead of nn. For now I'll just update
-	this particular function.
-
-2022-04-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: resume ongoing step after handling fork or vfork
-	The test introduced by this patch would fail in this configuration, with
-	the native-gdbserver or native-extended-gdbserver boards:
-
-	    FAIL: gdb.threads/next-fork-other-thread.exp: fork_func=fork: target-non-stop=auto: non-stop=off: displaced-stepping=auto: i=2: next to for loop
-
-	The problem is that the step operation is forgotten when handling the
-	fork/vfork.  With "debug infrun" and "debug remote", it looks like this
-	(some lines omitted for brevity).  We do the next:
-
-	    [infrun] proceed: enter
-	      [infrun] proceed: addr=0xffffffffffffffff, signal=GDB_SIGNAL_DEFAULT
-	      [infrun] resume_1: step=1, signal=GDB_SIGNAL_0, trap_expected=0, current thread [4154304.4154304.0] at 0x5555555553bf
-	      [infrun] do_target_resume: resume_ptid=4154304.0.0, step=1, sig=GDB_SIGNAL_0
-	      [remote] Sending packet: $vCont;r5555555553bf,5555555553c4:p3f63c0.3f63c0;c:p3f63c0.-1#cd
-	    [infrun] proceed: exit
-
-	We then handle a fork event:
-
-	    [infrun] fetch_inferior_event: enter
-	      [remote] wait: enter
-	        [remote] Packet received: T05fork:p3f63ee.3f63ee;06:0100000000000000;07:b08e59f6ff7f0000;10:bf60e8f7ff7f0000;thread:p3f63c0.3f63c6;core:17;
-	      [remote] wait: exit
-	      [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	      [infrun] print_target_wait_results:   4154304.4154310.0 [Thread 4154304.4154310],
-	      [infrun] print_target_wait_results:   status->kind = FORKED, child_ptid = 4154350.4154350.0
-	      [infrun] handle_inferior_event: status->kind = FORKED, child_ptid = 4154350.4154350.0
-	      [remote] Sending packet: $D;3f63ee#4b
-	      [infrun] resume_1: step=0, signal=GDB_SIGNAL_0, trap_expected=0, current thread [4154304.4154310.0] at 0x7ffff7e860bf
-	      [infrun] do_target_resume: resume_ptid=4154304.0.0, step=0, sig=GDB_SIGNAL_0
-	      [remote] Sending packet: $vCont;c:p3f63c0.-1#73
-	    [infrun] fetch_inferior_event: exit
-
-	In the first snippet, we resume the stepping thread with the range-stepping (r)
-	vCont command.  But after handling the fork (detaching the fork child), we
-	resumed the whole process freely.  The stepping thread, which was paused by
-	GDBserver while reporting the fork event, was therefore resumed freely, instead
-	of confined to the addresses of the stepped line.  Note that since this
-	is a "next", it could be that we have entered a function, installed a
-	step-resume breakpoint, and it's ok to continue freely the stepping
-	thread, but that's not the case here.  The two snippets shown above were
-	next to each other in the logs.
-
-	For the fork case, we can resume stepping right after handling the
-	event.
-
-	However, for the vfork case, where we are waiting for the
-	external child process to exec or exit, we only resume the thread that
-	called vfork, and keep the others stopped (see patch "gdb: fix handling of
-	vfork by multi-threaded program" prior in this series).  So we can't
-	resume the stepping thread right now.  Instead, do it after handling the
-	vfork-done event.
-
-	Change-Id: I92539c970397ce880110e039fe92b87480f816bd
-
-2022-04-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/remote: remove_new_fork_children don't access target_waitstatus::child_ptid if kind == TARGET_WAITKIND_THREAD_EXITED
-	Following the previous patch, running
-	gdb.threads/forking-threads-plus-breakpoints.exp continuously eventually
-	gives me an internal error.
-
-	    gdb/target/waitstatus.h:372: internal-error: child_ptid: Assertion `m_kind == TARGET_WAITKIND_FORKED || m_kind == TARGET_WAITKIND_VFORKED' failed.^M
-	    FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=0: detach_on_fork=on: displaced=off: inferior 1 exited (GDB internal error)
-
-	The backtrace is:
-
-	    0x55925b679c85 internal_error(char const*, int, char const*, ...)
-	    	/home/simark/src/binutils-gdb/gdbsupport/errors.cc:55
-	    0x559258deadd2 target_waitstatus::child_ptid() const
-	    	/home/simark/src/binutils-gdb/gdb/target/waitstatus.h:372
-	    0x55925a7cbac9 remote_target::remove_new_fork_children(threads_listing_context*)
-	    	/home/simark/src/binutils-gdb/gdb/remote.c:7311
-	    0x55925a79dfdb remote_target::update_thread_list()
-	    	/home/simark/src/binutils-gdb/gdb/remote.c:3981
-	    0x55925ad79b83 target_update_thread_list()
-	    	/home/simark/src/binutils-gdb/gdb/target.c:3793
-	    0x55925addbb15 update_thread_list()
-	    	/home/simark/src/binutils-gdb/gdb/thread.c:2031
-	    0x559259d64838 stop_all_threads(char const*, inferior*)
-	    	/home/simark/src/binutils-gdb/gdb/infrun.c:5104
-	    0x559259d88b45 keep_going_pass_signal
-	    	/home/simark/src/binutils-gdb/gdb/infrun.c:8215
-	    0x559259d8951b keep_going
-	    	/home/simark/src/binutils-gdb/gdb/infrun.c:8251
-	    0x559259d78835 process_event_stop_test
-	    	/home/simark/src/binutils-gdb/gdb/infrun.c:6858
-	    0x559259d750e9 handle_signal_stop
-	    	/home/simark/src/binutils-gdb/gdb/infrun.c:6580
-	    0x559259d6c07b handle_inferior_event
-	    	/home/simark/src/binutils-gdb/gdb/infrun.c:5832
-	    0x559259d57db8 fetch_inferior_event()
-	    	/home/simark/src/binutils-gdb/gdb/infrun.c:4222
-
-	Indeed, the code accesses target_waitstatus::child_ptid when the kind
-	is TARGET_WAITKIND_THREAD_EXITED, which is not right.  A
-	TARGET_WAITKIND_THREAD_EXITED event does not have a child_ptid value
-	associated, it has an exit status, which we are not interested in.  The
-	intent is to remove from the thread list the thread that has exited.
-	Its ptid is found in the stop reply event, get it from there.
-
-	Change-Id: Icb298cbb80b8779fdf0c660dde9a5314d5591535
-
-2022-04-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver: report correct status in thread stop race condition
-	The test introduced by the following patch would sometimes fail in this
-	configuration:
-
-	    FAIL: gdb.threads/next-fork-other-thread.exp: fork_func=vfork: target-non-stop=on: non-stop=off: displaced-stepping=auto: i=14: next to for loop
-
-	The test has multiple threads constantly forking or vforking while the
-	main thread keep doing "next"s.
-
-	(After writing the commit message, I realized this also fixes a similar
-	failure in gdb.threads/forking-threads-plus-breakpoint.exp with the
-	native-gdbserver and native-extended-gdbserver boards.)
-
-	As stop_all_threads is called, because the main thread finished its
-	"next", it inevitably happens at some point that we ask the remote
-	target to stop a thread and wait() reports that this thread stopped with
-	a fork or vfork event, instead of the SIGSTOP we sent to try to stop it.
-
-	While running this test, I attached to GDBserver and stopped at
-	linux-low.cc:3626.  We can see that the status pulled from the kernel
-	for 2742805 is indeed a vfork event:
-
-	    (gdb) p/x w
-	    $3 = 0x2057f
-	    (gdb) p WIFSTOPPED(w)
-	    $4 = true
-	    (gdb) p WSTOPSIG(w)
-	    $5 = 5
-	    (gdb) p/x (w >> 8) & (PTRACE_EVENT_VFORK << 8)
-	    $6 = 0x200
-
-	However, the statement at line 3626 overrides that:
-
-	    ourstatus->set_stopped (gdb_signal_from_host (WSTOPSIG (w)));
-
-	OURSTATUS becomes "stopped by a SIGTRAP".  The information about the
-	fork or vfork is lost.
-
-	It's then all downhill from there, stop_all_threads eventually asks for
-	a thread list update.  That thread list includes the child of that
-	forgotten fork or vfork, the remote target goes "oh cool, a new process,
-	let's attach to it!", when in fact that vfork child's destiny was to be
-	detached.
-
-	My reverse-engineered understanding of the code around there is that the
-	if/else between lines 3562 and 3583 (in the original code) makes sure
-	OURSTATUS is always initialized (not "ignore").  Either the details are
-	already in event_child->waitstatus (in the case of fork/vfork, for
-	example), in which case we just copy event_child->waitstatus to
-	ourstatus.  Or, if the event is a plain "stopped by a signal" or a
-	syscall event, OURSTATUS is set to "stopped", but without a signal
-	number.  Lines 3601 to 3629 (in the original code) serve to fill in that
-	last bit of information.
-
-	The problem is that when `w` holds the vfork status, the code wrongfully
-	takes this branch, because WSTOPSIG(w) returns SIGTRAP:
-
-	  else if (current_thread->last_resume_kind == resume_stop
-	       && WSTOPSIG (w) != SIGSTOP)
-
-	The intent of this branch is, for example, when we sent SIGSTOP to try
-	to stop a thread, but wait() reports that it stopped with another signal
-	(that it must have received from somewhere else simultaneously), say
-	SIGWINCH.  In that case, we want to report the SIGWINCH.  But in our
-	fork/vfork case, we don't want to take this branch, as the thread didn't
-	really stop because it received a signal.  For the non "stopped by a
-	signal" and non "syscall signal" cases, we would ideally skip over all
-	that snippet that fills in the signal or syscall number.
-
-	The fix I propose is to move this snipppet of the else branch of the
-	if/else above.  In addition to moving the code, the last two "else if"
-	branches:
-
-	  else if (current_thread->last_resume_kind == resume_stop
-		   && WSTOPSIG (w) != SIGSTOP)
-	    {
-	      /* A thread that has been requested to stop by GDB with vCont;t,
-		 but, it stopped for other reasons.  */
-	      ourstatus->set_stopped (gdb_signal_from_host (WSTOPSIG (w)));
-	    }
-	  else if (ourstatus->kind () == TARGET_WAITKIND_STOPPED)
-	    ourstatus->set_stopped (gdb_signal_from_host (WSTOPSIG (w)));
-
-	are changed into a single else:
-
-	  else
-	    ourstatus->set_stopped (gdb_signal_from_host (WSTOPSIG (w)));
-
-	This is the default path we take if:
-
-	 - W is not a syscall status
-	 - W does not represent a SIGSTOP that have sent to stop the thread and
-	   therefore want to suppress it
-
-	Change-Id: If2dc1f0537a549c293f7fa3c53efd00e3e194e79
-
-2022-04-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix handling of vfork by multi-threaded program (follow-fork-mode=parent, detach-on-fork=on)
-	There is a problem with how GDB handles a vfork happening in a
-	multi-threaded program.  This problem was reported to me by somebody not
-	using vfork directly, but using system(3) in a multi-threaded program,
-	which may be implemented using vfork.
-
-	This patch only deals about the follow-fork-mode=parent,
-	detach-on-fork=on case, because it would be too much to chew at once to
-	fix the bugs in the other cases as well (I tried).
-
-	The problem
-	-----------
-
-	When a program vforks, the parent thread is suspended by the kernel
-	until the child process exits or execs.  Specifically, in a
-	multi-threaded program, only the thread that called vfork is suspended,
-	other threads keep running freely. This is documented in the vfork(2)
-	man page ("Caveats" section).
-
-	Let's suppose GDB is handling a vfork and the user's desire is to detach
-	from the child. Before detaching the child, GDB must remove the software
-	breakpoints inserted in the shared parent/child address space, in case
-	there's a breakpoint in the path the child is going to take before
-	exec'ing or exit'ing (unlikely, but possible). Otherwise the child could
-	hit a breakpoint instruction while running outside the control of GDB,
-	which would make it crash.  GDB must also avoid re-inserting breakpoints
-	in the parent as long as it didn't receive the "vfork done" event (that
-	is, when the child has exited or execed): since the address space is
-	shared with the child, that would re-insert breakpoints in the child
-	process also. So what GDB does is:
-
-	  1. Receive "vfork" event for the parent
-	  2. Remove breakpoints from the (shared) address space and set
-	     program_space::breakpoints_not_allowed to avoid re-inserting them
-	  3. Detach from the child thread
-	  4. Resume the parent
-	  5. Wait for and receive "vfork done" event for the parent
-	  6. Clean program_space::breakpoints_not_allowed and re-insert
-	     breakpoints
-	  7. Resume the parent
-
-	Resuming the parent at step 4 is necessary in order for the kernel to
-	report the "vfork done" event.  The kernel won't report a ptrace event
-	for a thread that is ptrace-stopped.  But the theory behind this is that
-	between steps 4 and 5, the parent won't actually do any progress even
-	though it is ptrace-resumed, because the kernel keeps it suspended,
-	waiting for the child to exec or exit.  So it doesn't matter for that
-	thread if breakpoints are not inserted.
-
-	The problem is when the program is multi-threaded.  In step 4, GDB
-	resumes all threads of the parent. The thread that did the vfork stays
-	suspended by the kernel, so that's fine. But other threads are running
-	freely while breakpoints are removed, which is a problem because they
-	could miss a breakpoint that they should have hit.
-
-	The problem is present with all-stop and non-stop targets.  The only
-	difference is that with an all-stop targets, the other threads are
-	stopped by the target when it reports the vfork event and are resumed by
-	the target when GDB resumes the parent.  With a non-stop target, the
-	other threads are simply never stopped.
-
-	The fix
-	-------
-
-	There many combinations of settings to consider (all-stop/non-stop,
-	target-non-stop on/off, follow-fork-mode parent/child, detach-on-fork
-	on/off, schedule-multiple on/off), but for this patch I restrict the
-	scope to follow-fork-mode=parent, detach-on-fork=on.  That's the
-	"default" case, where we detach the child and keep debugging the
-	parent.  I tried to fix them all, but it's just too much to do at once.
-	The code paths and behaviors for when we don't detach the child are
-	completely different.
-
-	The guiding principle for this patch is that all threads of the vforking
-	inferior should be stopped as long as breakpoints are removed.  This is
-	similar to handling in-line step-overs, in a way.
-
-	For non-stop targets (the default on Linux native), this is what
-	happens:
-
-	 - In follow_fork, we call stop_all_threads to stop all threads of the
-	   inferior
-	 - In follow_fork_inferior, we record the vfork parent thread in
-	   inferior::thread_waiting_for_vfork_done
-	 - Back in handle_inferior_event, we call keep_going, which resumes only
-	   the event thread (this is already the case, with a non-stop target).
-	   This is the thread that will be waiting for vfork-done.
-	 - When we get the vfork-done event, we go in the (new) handle_vfork_done
-	   function to restart the previously stopped threads.
-
-	In the same scenario, but with an all-stop target:
-
-	 - In follow_fork, no need to stop all threads of the inferior, the
-	   target has stopped all threads of all its inferiors before returning
-	   the event.
-	 - In follow_fork_inferior, we record the vfork parent thread in
-	   inferior::thread_waiting_for_vfork_done.
-	 - Back in handle_inferior_event, we also call keep_going.  However, we
-	   only want to resume the event thread here, not all inferior threads.
-	   In internal_resume_ptid (called by resume_1), we therefore now check
-	   whether one of the inferiors we are about to resume has
-	   thread_waiting_for_vfork_done set.  If so, we only resume that
-	   thread.
-
-	   Note that when resuming multiple inferiors, one vforking and one not
-	   non-vforking, we could resume the vforking thread from the vforking
-	   inferior plus all threads from the non-vforking inferior.  However,
-	   this is not implemented, it would require more work.
-	 - When we get the vfork-done event, the existing call to keep_going
-	   naturally resumes all threads.
-
-	Testing-wise, add a test that tries to make the main thread hit a
-	breakpoint while a secondary thread calls vfork.  Without the fix, the
-	main thread keeps going while breakpoints are removed, resulting in a
-	missed breakpoint and the program exiting.
-
-	Change-Id: I20eb78e17ca91f93c19c2b89a7e12c382ee814a1
-
-2022-04-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/infrun: add logging statement to do_target_resume
-	This helped me, it shows which ptid we actually call target_resume with.
-
-	Change-Id: I2dfd771e83df8c25f39371a13e3e91dc7882b73d
-
-2022-04-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/infrun: add inferior parameters to stop_all_threads and restart_threads
-	A following patch will want to stop all threads of a given inferior (as
-	opposed to all threads of all inferiors) while handling a vfork, and
-	restart them after.  To help with this, add inferior parameters to
-	stop_all_threads and restart_threads.  This is done as a separate patch
-	to make sure this doesn't cause regressions on its own, and to keep the
-	following patches more concise.
-
-	No visible changes are expected here, since all calls sites pass
-	nullptr, which should keep the existing behavior.
-
-	Change-Id: I4d9ba886ce842042075b4e346cfa64bbe2580dbf
-
-2022-04-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: replace inferior::waiting_for_vfork_done with inferior::thread_waiting_for_vfork_done
-	The inferior::waiting_for_vfork_done flag indicates that some thread in
-	that inferior is waiting for a vfork-done event.  Subsequent patches
-	will need to know which thread precisely is waiting for that event.
-
-	Replace the boolean flag (waiting_for_vfork_done) with a thread_info
-	pointer (thread_waiting_for_vfork_done).
-
-	I think there is a latent buglet in that waiting_for_vfork_done is
-	currently not reset on inferior exec or exit.  I could imagine that if a
-	thread in the parent process calls exec or exit while another thread of
-	the parent process is waiting for its vfork child to exec or exit, we
-	could end up with inferior::waiting_for_vfork_done without a thread
-	actually waiting for a vfork-done event anymore.  And since that flag is
-	checked in resume_1, things could misbehave there.
-
-	Since the new field points to a thread_info object, and those are
-	destroyed on exec or exit, it could be worse now since we could try to
-	access freed memory, if thread_waiting_for_vfork_done were to point to a
-	stale thread_info.  To avoid this, clear the field in
-	infrun_inferior_exit and infrun_inferior_execd.
-
-	Change-Id: I31b847278613a49ba03fc4915f74d9ceb228fdce
-
-2022-04-05  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: make timestamped_file implement write_async_safe
-	Trying to use "set debug linux-nat 1", I get an internal error:
-
-	    /home/smarchi/src/binutils-gdb/gdb/ui-file.h:70: internal-error: write_async_safe: write_async_safe
-
-	The problem is that timestamped_file doesn't implement write_async_safe,
-	which linux-nat's sigchld_handler uses.  Implement it.
-
-	Change-Id: I830981010c6119f13ae673605ed015cced0f5ee8
-
-2022-04-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-04  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix timeout in server-pipe.exp test
-	I noticed that the gdb.server/server-pipe.exp test would sometimes
-	timeout when my machine was more heavily loaded.  Turns out the test
-	is reading all the shared libraries over GDB's remote protocol, which
-	can be slow.
-
-	We avoid this in other tests by setting the sysroot in GDBFLAGS,
-	something which is missing from the gdb.server/server-pipe.exp test.
-
-	Fix the timeouts by setting sysroot in GDBFLAGS, after this the shared
-	libraries are no longer copied over the remote protocol, and I no
-	longer see the test timeout.
-
-2022-04-04  John Baldwin  <jhb@FreeBSD.org>
-
-	Handle TLS variable lookups when using separate debug files.
-	Commit df22c1e5d53c38f38bce6072bb46de240f9e0e2b handled the case that
-	a separate debug file was passed as the objfile for a shared library
-	to svr4_fetch_objfile_link_map.  However, a separate debug file can
-	also be passed for TLS variables in the main executable.  In addition,
-	frv_fetch_objfile_link_map also expects to be passed the original
-	objfile rather than a separate debug file, so pull the code to resolve
-	a separate debug file to the main objfile up into
-	target_translate_tls_address.
-
-2022-04-04  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Add maint set ignore-prologue-end-flag
-	The previous patch added support for the DWARF prologue-end flag in line
-	table. This flag can be used by DWARF producers to indicate where to
-	place breakpoints past a function prologue.  However, this takes
-	precedence over prologue analyzers. So if we have to debug a program
-	with erroneous debug information, the overall debugging experience will
-	be degraded.
-
-	This commit proposes to add a maintenance command to instruct GDB to
-	ignore the prologue_end flag.
-
-	Tested on x86_64-gnu-linux.
-
-	Change-Id: Idda6d1b96ba887f4af555b43d9923261b9cc6f82
-
-2022-04-04  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Add support for DW_LNS_set_prologue_end in line-table
-	Add support for DW_LNS_set_prologue_end when building line-tables.  This
-	attribute can be set by the compiler to indicate that an instruction is
-	an adequate place to set a breakpoint just after the prologue of a
-	function.
-
-	The compiler might set multiple prologue_end, but considering how
-	current skip_prologue_using_sal works, this commit modifies it to accept
-	the first instruction with this marker (if any) to be the place where a
-	breakpoint should be placed to be at the end of the prologue.
-
-	The need for this support came from a problematic usecase generated by
-	hipcc (i.e. clang).  The problem is as follows:  There's a function
-	(lets call it foo) which covers PC from 0xa800 to 0xa950.  The body of
-	foo begins with a call to an inlined function, covering from 0xa800 to
-	0xa94c.   The issue is that when placing a breakpoint at 'foo', GDB
-	inserts the breakpoint at 0xa818.  The 0x18 offset is what GDB thinks is
-	foo's first address past the prologue.
-
-	Later, when hitting the breakpoint, GDB reports the stop within the
-	inlined function because the PC falls in its range while the user
-	expects to stop in FOO.
-
-	Looking at the line-table for this location, we have:
-
-	    INDEX  LINE   ADDRESS            IS-STMT
-	    [...]
-	    14     293    0x000000000000a66c Y
-	    15     END    0x000000000000a6e0 Y
-	    16     287    0x000000000000a800 Y
-	    17     END    0x000000000000a818 Y
-	    18     287    0x000000000000a824 Y
-	    [...]
-
-	For comparison, let's look at llvm-dwarfdump's output for this CU:
-
-	    Address            Line   Column File   ISA Discriminator Flags
-	    ------------------ ------ ------ ------ --- ------------- -------------
-	    [...]
-	    0x000000000000a66c    293     12      2   0             0  is_stmt
-	    0x000000000000a6e0     96     43     82   0             0  is_stmt
-	    0x000000000000a6f8    102     18     82   0             0  is_stmt
-	    0x000000000000a70c    102     24     82   0             0
-	    0x000000000000a710    102     18     82   0             0
-	    0x000000000000a72c    101     16     82   0             0  is_stmt
-	    0x000000000000a73c   2915     50     83   0             0  is_stmt
-	    0x000000000000a74c    110      1      1   0             0  is_stmt
-	    0x000000000000a750    110      1      1   0             0  is_stmt end_sequence
-	    0x000000000000a800    107      0      1   0             0  is_stmt
-	    0x000000000000a800    287     12      2   0             0  is_stmt prologue_end
-	    0x000000000000a818    114     59     81   0             0  is_stmt
-	    0x000000000000a824    287     12      2   0             0  is_stmt
-	    0x000000000000a828    100     58     82   0             0  is_stmt
-	    [...]
-
-	The main difference we are interested in here is that llvm-dwarfdump's
-	output tells us that 0xa800 is an adequate place to place a breakpoint
-	past a function prologue.  Since we know that foo covers from 0xa800 to
-	0xa94c, 0xa800 is the address at which the breakpoint should be placed
-	if the user wants to break in foo.
-
-	This commit proposes to add support for the prologue_end flag in the
-	line-program processing.
-
-	The processing of this prologue_end flag is made in skip_prologue_sal,
-	before it calls gdbarch_skip_prologue_noexcept.  The intent is that if
-	the compiler gave information on where the prologue ends, we should use
-	this information and not try to rely on architecture dependent logic to
-	guess it.
-
-	The testsuite have been executed using this patch on GNU/Linux x86_64.
-	Testcases have been compiled with both gcc/g++ (verison 9.4.0) and
-	clang/clang++ (version 10.0.0) since at the time of writing GCC does not
-	set the prologue_end marker.  Tests done with GCC 11.2.0 (not over the
-	entire testsuite) show that it does not emit this flag either.
-
-	No regression have been observed with GCC or Clang.  Note that when
-	using Clang, this patch fixes a failure in
-	gdb.opt/inline-small-func.exp.
-
-	Change-Id: I720449a8a9b2e1fb45b54c6095d3b1e9da9152f8
-
-2022-04-04  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/buildsym: Line record use a record flag
-	Currently when recording a line entry (with
-	buildsym_compunit::record_line), a boolean argument argument is used to
-	indicate that the is_stmt flag should be set for this particular record.
-	As a later commit will add support for new flags, instead of adding a
-	parameter to record_line for each possible flag, transform the current
-	is_stmt parameter into a enum flag.  This flags parameter will allow
-	greater flexibility in future commits.
-
-	This enum flags type is not propagated into the linetable_entry type as
-	this would require a lot of changes across the codebase for no practical
-	gain (it currently uses a bitfield where each interesting flag only
-	occupy 1 bit in the structure).
-
-	Tested on x86_64-linux, no regression observed.
-
-	Change-Id: I5d061fa67bdb34918742505ff983d37453839d6a
-
-2022-04-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make timestamped_file implement can_emit_style_escape
-	In our AMDGPU downstream port, we use styling in some logging output.
-	We noticed it stopped working after the gdb_printf changes.  Making
-	timestamped_file implement can_emit_style_escape (returning the value of
-	the stream it wraps) fixes it.  To show that it works, modify some
-	logging statements in auto-load.c to output style filenames.  You can
-	see it in action by setting "set debug auto-load 1" and running a
-	program.  We can incrementally add styling to other debug statements
-	throughout GDB, as needed.
-
-	Change-Id: I78a2fd1e078f80f2263251cf6bc53b3a9de9c17a
-
-2022-04-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove assertion in psymbol_functions::expand_symtabs_matching
-	psymtab_to_symtab is documented as possibly returning nullptr, if the
-	primary symtab of the partial symtab has no symbols.  However,
-	psymbol_functions::expand_symtabs_matching asserts that the result of
-	psymtab_to_symtab as non-nullptr.
-
-	I caught this assert by trying the CTF symbol reader on a library I
-	built with -gctf:
-
-	    $ ./gdb --data-directory=data-directory /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0
-	    ...
-	    Reading symbols from /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0...
-	    (gdb) maintenance expand-symtabs
-	    /home/simark/src/binutils-gdb/gdb/psymtab.c:1142: internal-error: expand_symtabs_matching: Assertion `symtab != nullptr' failed.
-
-	The "symtab" in question is:
-
-	    $  readelf --ctf=.ctf /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0
-	    ...
-	    CTF archive member: /home/simark/src/babeltrace/src/lib/graph/component-descriptor-set.c:
-
-	      Header:
-	        Magic number: 0xdff2
-	        Version: 4 (CTF_VERSION_3)
-	        Flags: 0xe (CTF_F_NEWFUNCINFO, CTF_F_IDXSORTED, CTF_F_DYNSTR)
-	        Parent name: .ctf
-	        Compilation unit name: /home/simark/src/babeltrace/src/lib/graph/component-descriptor-set.c
-	        Type section:       0x0 -- 0x13 (0x14 bytes)
-	        String section:     0x14 -- 0x5f (0x4c bytes)
-
-	      Labels:
-
-	      Data objects:
-
-	      Function objects:
-
-	      Variables:
-
-	      Types:
-	        0x80000001: (kind 5) bt_bool (*) (const bt_value *) (aligned at 0x8)
-
-	      Strings:
-	        0x0:
-	        0x1: .ctf
-	        0x6: /home/simark/src/babeltrace/src/lib/graph/component-descriptor-set.c
-
-	It contains a single type, and it is skipped by ctf_add_type_cb, because
-	an identical type was already seen earlier in this objfile.  As a
-	result, no compunit_symtab is created.
-
-	Change psymbol_functions::expand_symtabs_matching to expect that
-	psymtab_to_symtab can return nullptr.
-
-	Another possibility would be to make the CTF symbol reader always create
-	a compunit_symtab, even if there are no symbols in it (like the DWARF
-	parser does), but so far I don't see any advantage in doing so.
-
-	Change-Id: Ic43c38202c838a5eb87630ed1fd61d33528164f4
-
-2022-04-04  Andrew Burgess  <aburgess@redhat.com>
-
-	sim: fixes for libopcodes styled disassembler
-	In commit:
-
-	  commit 60a3da00bd5407f07d64dff82a4dae98230dfaac
-	  Date:   Sat Jan 22 11:38:18 2022 +0000
-
-	      objdump/opcodes: add syntax highlighting to disassembler output
-
-	I broke several sim/ targets by forgetting to update their uses of the
-	libopcodes disassembler to take account of the new styled printing.
-
-	These should all be fixed by this commit.
-
-	I've not tried to add actual styled output to the simulator traces,
-	instead, the styled print routines just ignore the style and print the
-	output unstyled.
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Remove some globals from nat/windows-nat.c
-	nat/windows-nat.c has a number of globals that it uses to communicate
-	with its clients (gdb and gdbserver).  However, if we ever want the
-	Windows ports to be multi-inferior, globals won't work.
-
-	This patch takes a step toward that by moving most nat/windows-nat.c
-	globals into a new struct windows_process_info.  Many functions are
-	converted to be methods on this object.
-
-	A couple of globals remain, as they are needed to truly be global due
-	to the way that the Windows debugging APIs work.
-
-	The clients still have a global for the current process.  That is,
-	this patch is a step toward the end goal, but doesn't implement the
-	goal itself.
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Remove windows_thread_info destructor
-	windows_thread_info declares and defines a destructor, but this
-	doesn't need to be explicit.
-
-	Use unique_ptr in the Windows thread list
-	windows-nat.c uses some manual memory management when manipulating the
-	thread_list global.  Changing this to use unique_ptr simplifies the
-	code, in particular windows_init_thread_list.  (Note that, while I
-	think the the call to init_thread_list in there is wrong, I haven't
-	removed it in this patch.)
-
-	Use auto_obstack in windows-nat.c
-	One spot in windows-nat.c can use auto_obstack, removing some manual
-	memory management.
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Simplify windows-nat.c solib handling
-	Currently windows-nat.c uses struct so_list to record its local idea
-	of which shared libraries have been loaded.  However, many fields in
-	this are not needed, and furthermore I found this quite confusing at
-	first -- Windows actually uses solib-target and so the use of so_list
-	here is weird.
-
-	This patch simplifies this code by changing it to use a std::vector
-	and a new type that holds exactly what's needed for the Windows code.
-
-2022-04-04  Pedro Alves  <pedro@palves.net>
-
-	Avoid undefined behavior in gdbscm_make_breakpoint
-	Running gdb.guile/scm-breakpoint.exp against an --enable-ubsan build,
-	we see:
-
-	 UNRESOLVED: gdb.guile/scm-breakpoint.exp: test_watchpoints: create a breakpoint with an invalid type number
-	 ...
-	 guile (define wp2 (make-breakpoint "result" #:wp-class WP_WRITE #:type 999))
-	 ../../src/gdb/guile/scm-breakpoint.c:377:11: runtime error: load of value 999, which is not a valid value for type 'bptype'
-	 ERROR: GDB process no longer exists
-
-	Fix this by parsing the user/guile input as plain int, and cast to
-	internal type only after we know we have a number that would be valid.
-
-	Change-Id: I03578d07db00be01b610a8f5ce72e5521aea6a4b
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Add context-sensitive field name completion to Ada parser
-	This updates the Ada expression parser to implement context-sensitive
-	field name completion.  This is PR ada/28727.
-
-	This is somewhat complicated due to some choices in the Ada lexer --
-	it chooses to represent a sequence of "."-separated identifiers as a
-	single token, so the parser must partially recreate the completer's
-	logic to find the completion word boundaries.
-
-	Despite the minor warts in this patch, though, it is a decent
-	improvement.  It's possible that the DWARF reader rewrite will help
-	fix the package completion problem pointed out in this patch as well.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28727
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Consolidate single-char tokens in ada-lex.l
-	There are two rules in ada-lex.l that match single-character tokens.
-	This merges them.
-
-	Also, this removes '.' from the list of such tokens.  '.' is not used
-	in any production in ada-exp.y, and removing it here helps the
-	subsequent completion patches.
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Remove the Ada DOT_ALL token
-	The Ada parser has a DOT_ALL token to represent ".all", and another
-	token to represent other ".<identifier>" forms.  However, for
-	completion it is a bit more convenient to unify these cases, so this
-	patch removes DOT_ALL.
-
-	Refactor ada-lex.l:processId
-	processId in ada-lex.l is a bit funny -- it uses an "if" and a
-	"switch", and a nested loop.  This patch cleans it up a bit, changing
-	it to use a boolean flag and a simpler "if".
-
-	Implement completion for Ada attributes
-	This adds a completer for Ada attributes.  Some work in the lexer is
-	required in order to match end-of-input correctly, as flex does not
-	have a general-purpose way of doing this.  (The approach taken here is
-	recommended in the flex manual.)
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Refactor expression completion
-	This refactors the gdb expression completion code to make it easier to
-	add more types of completers.
-
-	In the old approach, just two kinds of completers were supported:
-	field names for some sub-expression, or tag names (like "enum
-	something").  The data for each kind was combined in single structure,
-	"expr_completion_state", and handled explicitly by
-	complete_expression.
-
-	In the new approach, the parser state just holds an object that is
-	responsible for implementing completion.  This way, new completion
-	types can be added by subclassing this base object.
-
-	The structop completer is moved into structop_base_operation, and new
-	objects are defined for use by the completion code.  This moves much
-	of the logic of expression completion out of completer.c as well.
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Enable "set debug parser" for Ada
-	I noticed that "set debug parser 1" did not affect Ada parsing.  This
-	patch fixes the problem.
-
-	Because this is rarely useful, and pretty much only for maintainers, I
-	didn't write a test case.
-
-2022-04-04  Tom Tromey  <tromey@adacore.com>
-
-	Fix bug in Ada attributes lexing
-	The Ada lexer allows whitespace between the apostrophe and the
-	attribute text, but processAttribute does not handle this.  This patch
-	fixes the problem and introduces a regression test.
-
-	Remove null sentinel from 'attributes'
-	In a subsequent patch, it's handy if the 'attributes' array in
-	ada-lex.l does not have a NULL sentinel at the end.  In C++, this is
-	easy to avoid.
-
-	Handle ghost entities in symbol lookup
-	Normally, SPARK ghost entities are removed from the executable.
-	However, with -gnata, they will be preserved.  In this situation, it's
-	handy to be able to inspect them.  This patch allows this by removing
-	the "___ghost_" prefix in the appropriate places.
-
-2022-04-04  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: rename start_symtab/end_symtab to start_compunit_symtab/end_compunit_symtab
-	It's a bit confusing because we have both "compunit_symtab" and "symtab"
-	types, and many methods and functions containing "start_symtab" or
-	"end_symtab", which actually deal with compunit_symtabs.  I believe this
-	comes from the time before compunit_symtab was introduced, where
-	symtab did the job of both.
-
-	Rename everything I found containing start_symtab or end_symtab to use
-	start_compunit_symtab or end_compunit_symtab.
-
-	Change-Id: If3849b156f6433640173085ad479b6a0b085ade2
-
-2022-04-04  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove some unused buildsym-legacy functions
-	Pretty much self-explanatory.
-
-	Change-Id: I5b658d017cd891ecdd1df61075eacb0f44316935
-
-2022-04-04  Fangrui Song  <i@maskray.me>
-
-	gas: copy st_size only if unset
-	For
-	```
-	.size foo1, 1
-	foo1:
-
-	.set bar1, foo1
-	.size bar1, 2
-	.size bar2, 2
-	.set bar2, foo1
-
-	.set bar3, foo2
-	.size bar3, 2
-	.size bar4, 2
-	.set bar4, foo2
-
-	.size foo2, 1
-	foo2:
-	```
-
-	bar1's size is 2 while bar2, bar3, bar4's is 1. The behavior of bar1 makes sense
-	(generally directives on the new symbol should win) and is relied upon by glibc
-	stdio-common/errlist.c:
-
-	```
-	        .hidden _sys_errlist_internal
-	        .globl  _sys_errlist_internal
-	        .type   _sys_errlist_internal, @object
-	        .size   _sys_errlist_internal, 1072
-	_sys_errlist_internal:
-
-	        .globl __GLIBC_2_1_sys_errlist
-	        .set __GLIBC_2_1_sys_errlist, _sys_errlist_internal
-	        .type __GLIBC_2_1_sys_errlist, %object
-	        .size __GLIBC_2_1_sys_errlist, 125 * (64 / 8)
-
-	// glibc expects that .size __GLIBC_2_1_sys_errlist, 125 * (64 / 8) wins.
-	```
-
-	The behavior of bar2/bar3/bar4 seems brittle. To avoid the reordering of the two
-	code blocks which will result in the bar3 situation, glibc compiles errlist.c
-	with gcc -fno-toplevel-reorder (previously -fno-unit-at-a-time).
-
-	To fix the inconsistency and improve robustness, make bar2/bar3/bar4 match bar1,
-	removing the directive order sensitivity.
-
-	There is a pity that `.size dest, 0` is indistinguishable from the case where
-	dest is unset, but the compromise seems fine.
-
-	    PR gas/29012
-	    * config/obj-elf.c (elf_copy_symbol_attributes): don't copy if src's size
-	      has been set.
-	    * testsuite/gas/elf/elf.exp: New test.
-	    * testsuite/gas/elf/size.d: New file.
-	    * testsuite/gas/elf/size.s: Likewise.
-
-2022-04-04  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove use of vfprintf_filtered
-	Commit:
-
-	  commit 60a3da00bd5407f07d64dff82a4dae98230dfaac
-	  Date:   Sat Jan 22 11:38:18 2022 +0000
-
-	      objdump/opcodes: add syntax highlighting to disassembler output
-
-	Introduced a new use of vfprintf_filtered, which has been deprecated.
-	This commit replaces this with gdb_vprintf instead.
-
-2022-04-04  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/i386: partially implement disassembler style support
-	This commit adds partial support for disassembler styling in the i386
-	disassembler.
-
-	The i386 disassembler collects the instruction arguments into an array
-	of strings, and then loops over the array printing the arguments out
-	later on.  The problem is that by the time we print the arguments out
-	it's not obvious what the type of each argument is.
-
-	Obviously this can be fixed, but I'd like to not do that as part of
-	this commit, rather, I'd prefer to keep this commit as small as
-	possible to get the basic infrastructure in place, then we can improve
-	on this, to add additional styling, in later commits.
-
-	For now then, I think this commit should correctly style mnemonics,
-	some immediates, and comments.  Everything else will be printed as
-	plain text, which will include most instruction arguments, unless the
-	argument is printed as a symbol, by calling the print_address_func
-	callback.
-
-	Ignoring colours, there should be no other user visible changes in the
-	output of the disassembler in either objdump or gdb.
-
-	opcodes/ChangeLog:
-
-		* disassembler.c (disassemble_init_for_target): Set
-		created_styled_output for i386 based targets.
-		* i386-dis.c: Changed throughout to use fprintf_styled_func
-		instead of fprintf_func.
-
-2022-04-04  Andrew Burgess  <aburgess@redhat.com>
-
-	opcodes/riscv: implement style support in the disassembler
-	Update the RISC-V disassembler to supply style information.  This
-	allows objdump to apply syntax highlighting to the disassembler
-	output (when the appropriate command line flag is used).
-
-	Ignoring colours, there should be no other user visible changes in the
-	output of the disassembler in either objdump or gdb.
-
-	opcodes/ChangeLog:
-
-		* disassembler.c (disassemble_init_for_target): Set
-		created_styled_output for riscv.
-		* riscv-dis.c: Changed throughout to use fprintf_styled_func
-		instead of fprintf_func.
-
-2022-04-04  Andrew Burgess  <aburgess@redhat.com>
-
-	objdump/opcodes: add syntax highlighting to disassembler output
-	This commit adds the _option_ of having disassembler output syntax
-	highlighted in objdump.  This option is _off_ by default.  The new
-	command line options are:
-
-	  --disassembler-color=off		# The default.
-	  --disassembler-color=color
-	  --disassembler-color=extended-color
-
-	I have implemented two colour modes, using the same option names as we
-	use of --visualize-jumps, a basic 8-color mode ("color"), and an
-	extended 8bit color mode ("extended-color").
-
-	The syntax highlighting requires that each targets disassembler be
-	updated; each time the disassembler produces some output we now pass
-	through an additional parameter indicating what style should be
-	applied to the text.
-
-	As updating all target disassemblers is a large task, the old API is
-	maintained.  And so, a user of the disassembler (i.e. objdump, gdb)
-	must provide two functions, the current non-styled print function, and
-	a new, styled print function.
-
-	I don't currently have a plan for converting every single target
-	disassembler, my hope is that interested folk will update the
-	disassemblers they are interested in.  But it is possible some might
-	never get updated.
-
-	In this initial series I intend to convert the RISC-V disassembler
-	completely, and also do a partial conversion of the x86 disassembler.
-	Hopefully having the x86 disassembler at least partial converted will
-	allow more people to try this out easily and provide feedback.
-
-	In this commit I have focused on objdump.  The changes to GDB at this
-	point are the bare minimum required to get things compiling, GDB makes
-	no use of the styling information to provide any colors, that will
-	come later, if this commit is accepted.
-
-	This first commit in the series doesn't convert any target
-	disassemblers at all (the next two commits will update some targets),
-	so after this commit, the only color you will see in the disassembler
-	output, is that produced from objdump itself, e.g. from
-	objdump_print_addr_with_sym, where we print an address and a symbol
-	name, these are now printed with styling information, and so will have
-	colors applied (if the option is on).
-
-	Finally, my ability to pick "good" colors is ... well, terrible.  I'm
-	in no way committed to the colors I've picked here, so I encourage
-	people to suggest new colors, or wait for this commit to land, and
-	then patch the choice of colors.
-
-	I do have an idea about using possibly an environment variable to
-	allow the objdump colors to be customised, but I haven't done anything
-	like that in this commit, the color choices are just fixed in the code
-	for now.
-
-	binutils/ChangeLog:
-
-		* NEWS: Mention new feature.
-		* doc/binutils.texi (objdump): Describe --disassembler-color
-		option.
-		* objdump.c (disassembler_color): New global.
-		(disassembler_extended_color): Likewise.
-		(disassembler_in_comment): Likewise.
-		(usage): Mention --disassembler-color option.
-		(long_options): Add --disassembler-color option.
-		(objdump_print_value): Use fprintf_styled_func instead of
-		fprintf_func.
-		(objdump_print_symname): Likewise.
-		(objdump_print_addr_with_sym): Likewise.
-		(objdump_color_for_disassembler_style): New function.
-		(objdump_styled_sprintf): New function.
-		(fprintf_styled): New function.
-		(disassemble_jumps): Use disassemble_set_printf, and reset
-		disassembler_in_comment.
-		(null_styled_print): New function.
-		(disassemble_bytes): Use disassemble_set_printf, and reset
-		disassembler_in_comment.
-		(disassemble_data): Update init_disassemble_info call.
-		(main): Handle --disassembler-color option.
-
-	include/ChangeLog:
-
-		* dis-asm.h (enum disassembler_style): New enum.
-		(struct disassemble_info): Add fprintf_styled_func field, and
-		created_styled_output field.
-		(disassemble_set_printf): Declare.
-		(init_disassemble_info): Add additional parameter.
-		(INIT_DISASSEMBLE_INFO): Add additional parameter.
-
-	opcodes/ChangeLog:
-
-		* dis-init.c (init_disassemble_info): Take extra parameter,
-		initialize the new fprintf_styled_func and created_styled_output
-		fields.
-		* disassembler.c (disassemble_set_printf): New function definition.
-
-2022-04-04  Tom Tromey  <tom@tromey.com>
-
-	Remove more Python 2 code
-	I found another more place that still had a workaround for Python 2.
-	This patch removes it.
-
-2022-04-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix KPASS in gdb.ada/arrayptr.exp
-	On openSUSE Leap 15.3 I run into:
-	...
-	KPASS: gdb.ada/arrayptr.exp: scenario=minimal: print pa_ptr.all \
-	  (PRMS minimal encodings)
-	KPASS: gdb.ada/arrayptr.exp: scenario=minimal: print pa_ptr(3) \
-	  (PRMS minimal encodings)
-	KPASS: gdb.ada/arrayptr.exp: scenario=minimal: print pa_ptr.all(3) \
-	  (PRMS minimal encodings)
-	...
-
-	The test-case KFAILs some tests.  However, the analysis in the corresponding
-	PR talks of a compiler problem, so it should use XFAILs instead.
-
-	The KFAILs are setup for pre-gcc-12, but apparantly the fix has been
-	backported to system compiler 7.5.0, hence the KPASS.
-
-	Fix this by:
-	- using an XFAIL instead of a KFAIL
-	- matching the specific gdb output that corresponds to the XFAILs
-	  (reproduced on Fedora 34).
-
-	Tested on x86_64-linux, specifically openSUSE Leap 15.3 and Fedora 34.
-
-2022-04-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-03  rupothar  <rupesh.potharla@amd.com>
-
-	gdb: add support for Fortran's ASSUMED RANK arrays
-	This patch adds a new dynamic property DYN_PROP_RANK, this property is
-	read from the DW_AT_rank attribute and stored within the type just
-	like other dynamic properties.
-
-	As arrays with dynamic ranks make use of a single
-	DW_TAG_generic_subrange to represent all ranks of the array, support
-	for this tag has been added to dwarf2/read.c.
-
-	The final piece of this puzzle is to add support in gdbtypes.c so that
-	we can resolve an array type with dynamic rank.  To do this the
-	existing resolve_dynamic_array_or_string function is split into two,
-	there's a new resolve_dynamic_array_or_string_1 core that is
-	responsible for resolving each rank of the array, while the now outer
-	resolve_dynamic_array_or_string is responsible for figuring out the
-	array rank (which might require resolving a dynamic property) and then
-	calling the inner core.
-
-	The resolve_dynamic_range function now takes a rank, which is passed
-	on to the dwarf expression evaluator.  This rank will only be used in
-	the case where the array itself has dynamic rank, but we now pass the
-	rank in all cases, this should be harmless if the rank is not needed.
-
-	The only small nit is that resolve_dynamic_type_internal actually
-	handles resolving dynamic ranges itself, which now obviously requires
-	us to pass a rank value.  But what rank value to use?  In the end I
-	just passed '1' through here as a sane default, my thinking is that if
-	we are in resolve_dynamic_type_internal to resolve a range, then the
-	range isn't part of an array with dynamic rank, and so the range
-	should actually be using the rank value at all.
-
-	An alternative approach would be to make the rank value a
-	gdb::optional, however, this ends up adding a bunch of complexity to
-	the code (e.g. having to conditionally build the array to pass to
-	dwarf2_evaluate_property, and handling the 'rank - 1' in
-	resolve_dynamic_array_or_string_1) so I haven't done that, but could,
-	if people think that would be a better approach.
-
-	Finally, support for assumed rank arrays was only fixed very recently
-	in gcc, so you'll need the latest gcc in order to run the tests for
-	this.
-
-	Here's an example test program:
-
-	  PROGRAM arank
-	    REAL :: a1(10)
-	    CALL sub1(a1)
-
-	  CONTAINS
-
-	    SUBROUTINE sub1(a)
-	      REAL :: a(..)
-	      PRINT *, RANK(a)
-	    END SUBROUTINE sub1
-	  END PROGRAM arank
-
-	Compiler Version:
-	gcc (GCC) 12.0.0 20211122 (experimental)
-
-	Compilation command:
-	gfortran assumedrank.f90 -gdwarf-5 -o assumedrank
-
-	Without Patch:
-
-	  gdb -q assumedrank
-	  Reading symbols from assumedrank...
-	  (gdb) break sub1
-	  Breakpoint 1 at 0x4006ff: file assumedrank.f90, line 10.
-	  (gdb) run
-	  Starting program: /home/rupesh/STAGING-BUILD-2787/bin/assumedrank
-
-	  Breakpoint 1, arank::sub1 (a=<unknown type in /home/rupesh/STAGING-BUILD-2787
-	  /bin/assumedrank, CU 0x0, DIE 0xd5>) at assumedrank.f90:10
-	  10       PRINT *, RANK(a)
-	  (gdb) print RANK(a)
-	  'a' has unknown type; cast it to its declared type
-
-	With patch:
-
-	  gdb -q assumedrank
-	  Reading symbols from assumedrank...
-	  (gdb) break sub1
-	  Breakpoint 1 at 0x4006ff: file assumedrank.f90, line 10.
-	  (gdb) run
-	  Starting program: /home/rupesh/STAGING-BUILD-2787/bin/assumedrank
-
-	  Breakpoint 1, arank::sub1 (a=...) at assumedrank.f90:10
-	  10       PRINT *, RANK(a)
-	  (gdb) print RANK(a)
-	  $1 = 1
-	  (gdb) ptype a
-	  type = real(kind=4) (10)
-	  (gdb)
-
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/dwarf: pass an array of values to the dwarf evaluator
-	When we need to evaluate a DWARF expression in order to resolve some
-	dynamic property of a type we call the dwarf2_evaluate_property
-	function, which is declared in gdb/dwarf/loc.h and defined in
-	gdb/dwarf/loc.c.
-
-	Currently, this function takes (amongst other things) an argument of
-	type property_addr_info called addr_stack and a boolean called
-	push_initial_value.  When push_initial_value then the top value of
-	addr_stack is pushed onto the dwarf expression evaluation stack before
-	the expression is evaluated.
-
-	So far this has worked fine, as the only two cases we needed to handle
-	are the case the DWARF expression doesn't require the object
-	address (what the top of addr_stack represents), and the case where
-	the DWARF expression does require the address.
-
-	In the next commit this is going to change.  As we add support for
-	Fortran assumed rank arrays, we need to start resolving the dynamic
-	properties of arrays.  To do this, we need to push the array rank onto
-	the dwarf expression evaluation stack before the expression is
-	evaluated.
-
-	This commit is a refactoring commit aimed at making it easier to
-	support Fortran assumed rank arrays.  Instead of passing a boolean,
-	and using this to decide if we should push the object address or not,
-	we instead pass an array (view) of values that should be pushed to the
-	dwarf expression evaluation stack.
-
-	In the couple of places where we previously passed push_initial_value
-	as true (mostly this was defaulting to false), we now have to pass the
-	address from the addr_stack as an item in the array view.
-
-	In the next commit, when we want to handle passing the array rank,
-	this will easily be supported too.
-
-	There should be no user visible changes after this commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: small simplification in dwarf2_locexpr_baton_eval
-	While examining the dwarf expression evaluator, I noticed that in
-	dwarf2_locexpr_baton_eval, whenever push_initial_value is true, the
-	addr_stack will never be nullptr.
-
-	This allows for a small cleanup, replacing an if/then/else with an
-	assertion.
-
-	There should be no user visible changes after this commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: resolve some duplicate test names in gdb.base
-	This commit resolves all the duplicate test names that I see in the
-	script:
-
-	  gdb.base/attach-pie-misread.exp
-
-	The duplicate names all come from a second call to
-	build_executable_own_libs, so in this commit I've places the second
-	call inside a with_test_prefix block.
-
-	While I was making this change I've also modified the value being
-	passed as the testname for the second build_executable_own_libs call.
-	Previously we used ${test}, however, I think this was likely a
-	mistake, the 'test' variable is setup for the previous test.  I
-	suspect that ${testfile} is a better choice - especially now we have a
-	testname prefix.
-
-	As the testname is only used (after various calls) from within
-	build_executable_from_specs should the build fail, I don't think this
-	change really makes much difference though.
-
-	There should be no change in what is tested after this commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: resolve a duplicate test name in a gdb.mi test
-	Solve two duplicate test names in the test script:
-
-	  gdb.mi/mi-catch-cpp-exceptions.exp
-
-	by moving the call to restart_for_test inside the with_test_prefix
-	block.  There should be no difference in what is tested after this
-	commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/Makefile.in: move ALLDEPFILES earlier in Makefile.in
-	If I do 'make tags' in the gdb build directory, the tags target does
-	complete, but I see these warnings:
-
-	  ../../src/gdb/arm.c: No such file or directory
-	  ../../src/gdb/arm-get-next-pcs.c: No such file or directory
-	  ../../src/gdb/arm-linux.c: No such file or directory
-
-	The reason for this is the ordering of build rules and make variables
-	in gdb/Makefile.in, specifically, the placement of the tags related
-	rules, and the ALLDEPFILES variable.  The ordering is like this:
-
-	  TAGFILES_NO_SRCDIR = .... $(ALLDEPFILES) ....
-
-	  TAGS: $(TAGFILES_NO_SRCDIR) ....
-	          # Recipe uses $(TAGFILES_NO_SRCDIR)
-
-	  tags: TAGS
-
-	  ALLDEPFILES = .....
-
-	When the TAGS rule is parsed TAGFILES_NO_SRCDIR is expanded, which
-	then expands ALLDEPFILES, which, at that point in the Makefile is
-	undefined, and so expands to the empty string.  As a result TAGS does
-	not depend on any file listed in ALLDEPFILES.
-
-	However, when the TAGS recipe is invoked ALLDEPFILES is now defined.
-	As a result, all the files in ALLDEPFILES are passed to the etags
-	program.
-
-	The ALLDEPFILES references three files, arm.c, arm-get-next-pcs.c, and
-	arm-linux.c, which are actually in the gdb/arch/ directory, but, in
-	ALLDEPFILES these files don't include the arch/ prefix.  As a result,
-	the etags program ends up looking for these files in the wrong
-	location.
-
-	As ALLDEPFILES is only used by the TAGS rule, this mistake was not
-	previously noticed (the TAGS rule itself was broken until a recent
-	commit).
-
-	In this commit I make two changes, first, I move ALLDEPFILES to be
-	defined before TAGFILES_NO_SRCDIR, this means that the TAGS rule will
-	depend on all the files in ALLDEPFILES.  With this change the TAGS
-	rule now breaks complaining that there's no rule to build the 3 files
-	mentioned above.
-
-	Next, I have added all *.c files in gdb/arch/ to ALLDEPFILES,
-	including their arch/ prefix, and removed the incorrect (missing arch/
-	prefix) references.
-
-	With these two changes the TAGS (or tags if you prefer) target now
-	builds without any errors or warnings.
-
-2022-04-03  Reuben Thomas  <rrt@sc3d.org>
-
-	gdb/Makefile.in: fix 'make tags' build target
-	The gdb_select.h file was moved to the gdbsupport directory long ago,
-	but a reference was accident left in gdb/Makefile.in (in the
-	HFILES_NO_SRCDIR variable), this commit removes that reference.
-
-	Before this commit, if I use 'make tags' here's what I see:
-
-	  $ make tags
-	  make: *** No rule to make target 'gdb_select.h', needed by 'TAGS'.  Stop.
-
-	After this commit 'make tags' completes, but I still see these
-	warnings:
-
-	  ../../src/gdb/arm.c: No such file or directory
-	  ../../src/gdb/arm-get-next-pcs.c: No such file or directory
-	  ../../src/gdb/arm-linux.c: No such file or directory
-
-	These are caused by a separate issue, and will be addressed in the
-	next commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/Makefile.in: remove SOURCES variable
-	The SOURCES variable was added to gdb/Makefile.in as part of commit:
-
-	  commit fb40c20903110ed8af9701ce7c2635abd3770d52
-	  Date:   Wed Feb 23 00:25:43 2000 +0000
-
-	      Add mi/ and testsuite/gdb.mi/ subdirectories.
-
-	But as far as I can tell was not used at the time it was added, and is
-	not used today.
-
-	Lets remove it.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: fair split of delta after a resize
-	Currently, in master gdb, when a tui window is changed in size, the
-	screen delta is mostly just added to the next available window.  We
-	do take care to respect the min/max size, but in most cases, these
-	limits are just "the terminal size", and so, we end up placing the
-	whole delta on the next window.
-
-	Consider these steps in an 80 column, 24 line terminal:
-
-	  (gdb) tui enable
-	  (gdb) layout src
-	  (gdb) layout split
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  src            8      80 (has focus)
-	  asm            8      80
-	  status         1      80
-	  cmd            8      80
-	  (gdb) winheight cmd +2
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  src            6      80 (has focus)
-	  asm            8      80
-	  status         1      80
-	  cmd           10      80
-
-	Notice that initially, the windows were balanced, 8 lines each for the
-	major windows.  Then, when the cmd window was adjusted, the extra two
-	lines were given to the asm window.
-
-	I think it would be nicer if the delta was spread more evenly over the
-	available windows.  In the example above, after the adjustment the
-	layout now looks like:
-
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  src            7      80 (has focus)
-	  asm            7      80
-	  status         1      80
-	  cmd           10      80
-
-	This is achieved within tui_layout_split::set_size, by just handing
-	out the delta in increments of 1 to each window (except for the window
-	the user adjusted), until there's no more delta left.  Of course, we
-	continue to respect the min/max window sizes.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: relax restrictions on window max height and width
-	This commit removes some arbitrary adjustments made in
-	tui_cmd_window::max_height, tui_win_info::max_height, and
-	tui_win_info::max_width.
-
-	These member functions all subtract some constant from the theoretical
-	maximum height or width.  I've looked back through the history a
-	little and can see no real reason why these adjustments should be
-	needed, with these adjustments removed all the existing tui tests
-	still pass.
-
-	However, retaining these restrictions causes some bugs, consider:
-
-	  (gdb) tui new-layout hsrc {-horizontal src 1 cmd 1} 1
-
-	When this layout is selected with current master, gdb will leave a 4
-	line gap at the bottom of the terminal.
-
-	The problem is that the maximum height is restricted, for the cmd
-	window, to 4 less than the terminal height.
-
-	By removing this restriction gdb is able to size the windows to the
-	complete terminal height, and the layout is done correctly.
-
-	This 4 line restriction is also what prevents this layout from working
-	correctly:
-
-	  (gdb) tui new-layout conly cmd 1
-
-	Previously, this layout would present a cmd window only, but there
-	would be a 4 line gap at the bottom of the terminal.  This issue was
-	mentioned in an earlier commit in this series (when a different bug
-	was fixed), but with this commit, the above layout now correctly fills
-	the terminal.  The associated test is updated.
-
-	After removing the adjustment in tui_cmd_window::max_height, the
-	implementation is now the same as the implementation in the parent
-	class tui_win_info, so I've completely removed the max_height call
-	from tui_cmd_window.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: some additional tests in gdb.tui/scroll.exp
-	This commit just adds an extra check of the src window size prior to
-	sending all the commands to gdb.  We also set the cmd window height to
-	its existing height, this (obviously) shouldn't change the window
-	layout, which we check.
-
-	My main motivation was adding the initial window layout check, the
-	winheight and recheck are just extras.  All of these test pass both
-	before and after this commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: support placing the cmd window into a horizontal layout
-	This commit allows the user to place the cmd window within horizontal
-	tui layouts.  Consider this set of steps, carried out in an 80 columns
-	by 24 lines terminal, using current master gdb:
-
-	  (gdb) tui new-layout hsrc { -horizontal src 1 cmd 1 } 1 status 1
-	  (gdb) tui layout hsrc
-
-	What you end up with is a full width cmd window with the status bar
-	beneath.  Where's the src window gone?  We then try:
-
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  src           23       3 (has focus)
-	  cmd           23      80
-	  status         1      80
-	  (gdb)
-
-	Something weird has gone on, gdb has overlapped the cmd window with
-	the src window.  If we trigger the src window to redraw is content,
-	for example, 'list main', then we see corruption in the cmd window as
-	the src window overwrites it.
-
-	So, what's going on?
-
-	The problem is some code in tui_layout_split::apply, in tui-layout.c.
-	Within 'Step 1', there is a loop that calculates the min/max window
-	sizes for all windows within a tui_layout_split.  However, there's a
-	special case for the cmd window.
-
-	This special case is trying to have the cmd window retain its current
-	size when a layout is re-applied, or a new layout is applied.  This
-	makes sense, consider moving from the 'src' layout to the 'asm'
-	layout, this looks something like this (status window removed):
-
-	    .-------.         .-------.
-	    |  src  |         |  asm  |
-	    |-------|  ====>  |-------|
-	    |  cmd  |         |  cmd  |
-	    '-------'         '-------'
-
-	If the user has gone to the effort of adjusting the cmd window size,
-	then, the thinking goes, we shouldn't reset the cmd window size when
-	switching layouts like this.
-
-	The problem though, is that when we do a switch more like this:
-
-	    .-----------.         .-----------.
-	    |    src    |         |     |     |
-	    |-----------|  ====>  | asm | cmd |
-	    |    cmd    |         |     |     |
-	    '-----------'         '-----------'
-
-	Now retaining the cmd window width makes no sense; the new layout has
-	a completely different placement for the cmd window, instead of sizing
-	by height, we're now sizing by width.  The existing code doesn't
-	understand this though, and tried to retain the full width for the cmd
-	window.
-
-	To solve this problem, I propose we introduce the idea of a layout
-	"fingerprint".  The fingerprint tries to capture, in an abstract way,
-	where the cmd window lives within the layout.
-
-	Only when two layouts have the same fingerprint will we attempt to
-	retain the cmd window size.
-
-	The fingerprint for a layout is represented as a string, the string is
-	a series of 'V' or 'H' characters, ending with a single 'C'
-	character.  The series of 'V' and 'H' characters represent the
-	vertical or horizontal layouts that must be passed through to find the
-	cmd window.
-
-	Here are a few examples:
-
-	  # This layout is equivalent to the builtin 'src' layout.
-	  # Fingerprint: VC
-	  tui new-layout example1 src 2 status 0 cmd 1
-
-	  # This layout is equivalent to the builtin 'split' layout.
-	  # Fingerprint: VC
-	  tui new-layout example2 src 1 asm 1 status 0 cmd 1
-
-	  # This is the same layout that was given at the top.
-	  # Fingerprint: VHC
-	  tui new-layout hsrc { -horizontal src 1 cmd 1 } 1 status 1
-
-	And so, when switching between example1 and example2, gdb knows that
-	the cmd window is, basically, in the same sort of position within the
-	layout, and will retain the cmd window size.
-
-	In contrast, when switching to the hsrc layout, gdb understands that
-	the position of the cmd window is different, and does not try to
-	retain the cmd window size.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: allow cmd window to change size in tui_layout_split::apply
-	When we switch layouts we call the tui_layout_split::apply member
-	function to reapply the layout, and recalculate all the window sizes.
-
-	One special case is the cmd window, which we try to keep at its
-	existing size.
-
-	However, in some cases it is not appropriate to keep the cmd window at
-	its existing size.  I will describe two such cases here, in one, we
-	want the cmd window to reduce in size, and in the other, we want the
-	cmd window to grow in size.
-
-	Try these steps in a 80 columns, by 24 lines terminal:
-
-	  (gdb) tui enable
-	  (gdb) layout src
-	  (gdb) winheight cmd 20
-	  (gdb) layout split
-
-	You should see that the status window is missing from the new layout,
-	and that the cmd window has been placed over the border of the asm
-	window.  The 'info win' output is:
-
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  src            3      80 (has focus)
-	  asm            3      80
-	  status         1      80
-	  cmd           20      80
-
-	Notice that gdb has assigned 27 lines of screen space, even with the
-	border overlap between the src and asm windows, this is still 2 lines
-	too many.
-
-	The problem here is that after switching layouts, gdb has forced the
-	cmd window to retain its 20 line height.  Really, we want the cmd
-	window to reduce in height so that the src and asm windows can occupy
-	their minimum required space.
-
-	This commit allows this (details on how are below).  After this
-	commit, in the above situation, we now see the status window displayed
-	correctly, and the 'info win' output is:
-
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  src            3      80 (has focus)
-	  asm            3      80
-	  status         1      80
-	  cmd           18      80
-
-	The cmd window has been reduced in size by 2 lines so that everything
-	can fit on the screen.
-
-	The second example is one which was discussed in a recent commit,
-	consider this case (still in the 80 column, 24 line terminal):
-
-	  (gdb) tui enable
-	  (gdb) tui new-layout conly cmd 1
-	  (gdb) layout conly
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  cmd            8      80 (has focus)
-	  (gdb)
-
-	This layout only contains a cmd window, which we would expect to
-	occupy the entire terminal.  But instead, the cmd window only occupies
-	the first 8 lines, and the rest of the terminal is unused!
-
-	The reason is, again, that the cmd window is keeping its previous
-	size (8 lines).
-
-	After this commit things are slightly different, the 'info win' output
-	is now:
-
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  cmd           20      80 (has focus)
-
-	Which is a little better, but why only 20 lines?  Turns out there's
-	yet another bug hitting this case.  That bug will be addressed in a
-	later commit, so, for now, we're accepting the 20 lines.
-
-	What this commit does is modify the phase of tui_layout_split::apply
-	that handles any left over space.  Usually, in "Step 2", each
-	sub-layout has a size calculated.  As the size is an integer, then,
-	when all sizes are calculated we may have some space left over.
-
-	This extra space is then distributed between all the windows fairly
-	until all the space is used up.
-
-	When we consider windows minimum size, or fixed size windows, then it
-	is possible that we might try to use more space than is available,
-	this was our first example above.  The same code that added extra
-	space to the windows, can also be used to reclaim space (in the over
-	allocation case) to allow all windows to fit.
-
-	The problem then is the cmd window, which we often force to a fixed
-	size.  Inside the loop that handles the allocation of excess space, if
-	we find that we have tried every window, and still have space either
-	left to give, or we need to claim back more space, then, if the cmd
-	window was changed to a fixed size, we can change the cmd window back
-	to a non-fixed-size window, and proceed to either give, or take space
-	from the cmd window as needed.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: fairer distribution of excess space during apply
-	When applying layouts gdb computes the size of each window (or rather,
-	each sub-layout within a layout) using integer arithmetic.  As this
-	rounds down the results, then, when all sub-layouts are sized, there
-	is the possibility that we have some space left over.
-
-	Currently, this space is just assigned to an arbitrary sub-layout.
-
-	This can result in some unbalanced results.  Consider this set of
-	steps with current master:
-
-	  (gdb) tui enable
-	  (gdb) layout regs
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  regs           7      80
-	  src            9      80 (has focus)
-	  status         1      80
-	  cmd            8      80
-
-	Notice the weird split between the src and regs windows, the original
-	layout specification has these windows given equal weight.  The
-	problem is that, with rounding, both the regs and src windows are
-	initially sized to 7, the extra 2 lines are then arbitrarily added to
-	the src window.
-
-	In this commit, rather than add all the extra space to one single
-	window, I instead hand out the extra space 1 line at a time, looping
-	over all the sub-layouts.  We take care to respect the min/max sizes,
-	and so, we now get this result:
-
-	  (gdb) tui enable
-	  (gdb) layout regs
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  regs           8      80
-	  src            8      80 (has focus)
-	  status         1      80
-	  cmd            8      80
-
-	This looks more natural to me.
-
-	This is obviously a change in behaviour, and so, lots of the existing
-	tests need to be updated to take this into account.  None of the
-	changes are huge, it's just a line or two (or column for width) moved
-	between windows.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: avoid fp exception when applying layouts
-	Consider:
-
-	  (gdb) tui enable
-	  (gdb) layout src
-	  (gdb) tui new-layout conly cmd 1
-	  (gdb) layout conly
-
-	After this, with current master, gdb crashes with a floating-point
-	exception.
-
-	The problem is that in tui_layout_split::apply, when we switch from
-	'src' to 'conly', we will try to retain the cmd window height.  As
-	such, the cmd window will become a fixed size window, which decreases
-	the available_size, but doesn't count towards the total_weight.
-
-	As the cmd window is the only window, the total_weight stays at zero,
-	and, when we move into step 2, where we attempt to size the windows,
-	we perform a divide by zero, and crash.
-
-	After this commit we avoid the divide by zero, and just directly set
-	the window size based on the fixed size.
-
-	There is still a problem after this commit, when the conly layout is
-	selected the cmd window retains its original height, which will only
-	be part of the terminal.  The rest of the terminal is left unused.
-	This issue will be addressed in a later commit, this commit is just
-	about the floating-point exception.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui/testsuite: refactor new-layout.exp test
-	This commit changes the gdb.tui/new-layout.exp test to make use of a
-	list of test descriptions, and a loop to check each description in
-	turn.  There's no change to what is actually tested after this commit.
-
-	In future commits I plan to add additional tests to this file, and
-	this will be easier now that all I have to do is add a new test
-	description to the list.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: add left_boxed_p and right_boxed_p member functions
-	When I initially saw this code in tui_layout_split::apply, I assumed
-	that this must be a bug:
-
-	    /* Two adjacent boxed windows will share a border, making a bit
-	       more size available.  */
-	    if (i > 0
-	        && m_splits[i - 1].layout->bottom_boxed_p ()
-	        && m_splits[i].layout->top_boxed_p ())
-	      ...
-
-	After all, the apply might be laying out a horizontal layout, right?
-	So checking bottom_boxed_p and top_boxed_p is clearly wrong.
-
-	Well, it turns on, that due to the implementations of these things,
-	bottom_boxed_p is equivalent to an imagined right_boxed_p, and
-	top_boxed_p is equivalent to an imagined left_boxed_p.
-
-	In this commit I've renamed both top_boxed_p and bottom_boxed_p to
-	first_edge_has_border_p and last_edge_has_border_p respectively, and
-	extended the comments in tui_layout_base to mention that these methods
-	handle both horizontal and vertical layouts.
-
-	Now, hopefully, the code shouldn't look like it only applies for
-	vertical layouts.
-
-	There should be no user visible changes after this commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: add a tui debugging flag
-	This commit adds 'set debug tui on|off' and 'show debug tui'.  This
-	commit adds the control variable, and the printing macros in
-	tui/tui.h.  I've then added some uses of these in tui.c and
-	tui-layout.c.
-
-	To help produce more useful debug output in tui-layout.c, I've added
-	some helper member functions in the class tui_layout_split, and also
-	moved the size_info struct out of tui_layout_split::apply into the
-	tui_layout_split class.
-
-	If tui debug is not turned on, then there should be no user visible
-	changes after this commit.
-
-	One thing to note is that, due to the way that the tui terminal is
-	often cleared, the only way I've found this useful is when I do:
-
-	  (gdb) tui enable
-	  (gdb) set logging file /path/to/file
-	  (gdb) set logging debugredirect on
-	  (gdb) set logging enable on
-
-	Additionally, gdb has some quirks when it comes to setting up logging
-	redirect and switching interpreters.  Thus, the above only really
-	works if the logging is enabled after the tui is enabled, and disabled
-	again before the tui is disabled.
-
-	Enabling logging and switching interpreters can cause undefined
-	results, including crashes.  This is an existing bug in gdb[1], and
-	has nothing directly to do with tui debug, but it is worth mentioning
-	here I think.
-
-	[1] https://sourceware.org/bugzilla/show_bug.cgi?id=28948
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: add new 'tui window width' command and 'winwidth' alias
-	This commit adds a new command 'tui window width', and an alias
-	'winwidth'.  This command is equivalent to the old 'winheight'
-	command (which was recently renamed 'tui window height').
-
-	Even though I recently moved the old tui commands under the tui
-	namespace, and I would strongly encourage all new tui commands to be
-	added as 'tui ....' only (users can create their own top-level aliases
-	if they want), I'm breaking that suggestion here, and adding a
-	'winwidth' alias.
-
-	Given that we already have 'winheight' and have done for years, it
-	just didn't seem right to no have the matching 'winwidth'.
-
-	You might notice in the test that the window resizing doesn't quite
-	work right.  I setup a horizontal layout, then grow and shrink the
-	windows.  At the end of the test the windows should be back to their
-	original size...
-
-	... they are not.  This isn't my fault, honest!  GDB's window resizing
-	is a little ... temperamental, and is prone to getting things slightly
-	wrong during resizes, off by 1 type things.  This is true for height
-	resizing, as well as the new width resizing.
-
-	Later patches in this series will rework the resizing algorithm, which
-	should improve things in this area.  For now, I'm happy that the width
-	resizing is as good as the height resizing, given the existing quirks.
-
-	For the docs side I include a paragraph that explains how multiple
-	windows are required before the width can be adjusted.  For
-	completeness, I've added the same paragraph to the winheight
-	description.  With the predefined layouts this extra paragraph is not
-	really needed for winheight, as there are always multiple windows on
-	the screen.  However, with custom layouts, this might not be true, so
-	adding the paragraph seems like a good idea.
-
-	As for the changes in gdb itself, I've mostly just taken the existing
-	height adjustment code, changed the name to make it generic 'size'
-	adjustment, and added a boolean flag to indicate if we are adjusting
-	the width or the height.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: rename tui_layout_split:set_weights_from_heights
-	In a following commit I'm going to add the ability to change the width
-	of a tui window (when in a horizontal layout).  As a result, some of
-	the places where we currently hard-code references to height need to
-	be changed to handle either height, or width, based on whether we are
-	in a vertical, or horizontal layout.
-
-	This commit renames set_weights_from_heights to
-	set_weights_from_sizes, and makes the function use either the height,
-	or width as appropriate.
-
-	Currently, the only place that we call this function is from the
-	tui_layout_split::set_height function, in a part of the code we will
-	only reach for vertical layouts, so the new code is not actually being
-	used, but, this small change will help make later patches smaller, so
-	I'm proposing this as a stand alone change.
-
-	There should be no user visible changes after this commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: rename tui_layout_base::adjust_size to ::set_height
-	Rename tui_layout_base::adjust_size to tui_layout_base::set_height,
-	the new name more accurately reflects what this member function does,
-	and makes it easier for a later commit to add a new
-	tui_layout_base::set_width member function.
-
-	There should be no user visible changes after this commit.
-
-2022-04-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: move some commands into the tui namespace
-	There are a lot of tui related commands that live in the top-level
-	command name space, e.g. layout, focus, refresh, winheight.
-
-	Having them at the top level means less typing for the user, which is
-	good, but, I think, makes command discovery harder.
-
-	In this commit, I propose moving all of the above mentioned commands
-	into the tui namespace, so 'layout' becomes 'tui layout', etc.  But I
-	will then add aliases so that the old commands will still work,
-	e.g. I'll make 'layout' an alias for 'tui layout'.
-
-	The benefit I see in this work is that tui related commands can be
-	more easily discovered by typing 'tui ' and then tab-completing.  Also
-	the "official" command is now a tui-sub-command, this is visible in,
-	for example, the help output, e.g.:
-
-	  (gdb) help layout
-	  tui layout, layout
-	  Change the layout of windows.
-	  Usage: tui layout prev | next | LAYOUT-NAME
-
-	  List of tui layout subcommands:
-
-	  tui layout asm -- Apply the "asm" layout.
-	  tui layout next -- Apply the next TUI layout.
-	  tui layout prev -- Apply the previous TUI layout.
-	  tui layout regs -- Apply the TUI register layout.
-	  tui layout split -- Apply the "split" layout.
-	  tui layout src -- Apply the "src" layout.
-
-	Which I think is a good thing, it makes it clearer that this is a tui
-	command.
-
-	I've added a NEWS entry and updated the docs to mention the new and
-	old command names, with the new name being mentioned first.
-
-2022-04-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix gdb_print -> gdb_printf typo
-	This caused a build failure with !CXX_STD_THREAD.
-
-	Change-Id: I30f0c89c43a76f85c0db34809192644fa64a9d18
-
-2022-04-03  Alan Modra  <amodra@gmail.com>
-
-	Move microblaze relax info to target specific data
-	Target specific data shouldn't be put in struct bfd_section.
-
-		* section.c (struct bfd_section): Delete relax and relax_count.
-		(BFD_FAKE_SECTION): Adjust to suit.
-		(struct relax_table): Move to..
-		* elf32-microblaze.c (struct relax_table): ..here.
-		(struct _microblaze_elf_section_data): New.
-		(microblaze_elf_section_data): Define.
-		(microblaze_elf_new_section_hook): New function.
-		(bfd_elf32_new_section_hook): Define.
-		(calc_fixup): Return a size_t.  Adjust to suit new location of
-		relax and relax_count.
-		(microblaze_elf_relax_section): Adjust to suit new location of
-		relax and relax_count.  Make some variables size_t.
-		* bfd-in2.h: Regenerate.
-
-2022-04-03  Alan Modra  <amodra@gmail.com>
-
-	Revert commit 240d6706c6a2
-		PR 28592
-		PR 15994
-		PR 15935
-		* dwarf2.c (lookup_address_in_line_info_table): Return bool rather
-		than a range.
-		(comp_unit_find_nearest_line): Likewise.  Return true if function
-		info found without line info.
-		(_bfd_dwarf2_find_nearest_line): Revert range handling code.
-
-	Regen bfd po/SRC-POTFILES.in
-
-2022-04-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-02  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: rename floatformats_ia64_quad to floatformats_ieee_quad
-	It is better to rename floatformats_ia64_quad to floatformats_ieee_quad
-	to reflect the reality, and then we can clean up the related code.
-
-	As Tom Tromey said [1]:
-
-	  These files are maintained in gcc and then imported into the
-	  binutils-gdb repository, so any changes to them will have to
-	  be proposed there first.
-
-	the related changes have been merged into gcc master now [2], it is time
-	to do it for gdb.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-March/186569.html
-	[2] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b2dff6b2d9d6
-
-2022-04-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-04-01  John Baldwin  <jhb@FreeBSD.org>
-
-	Remove unused variable.
-
-2022-04-01  Aaron Merey  <amerey@redhat.com>
-
-	gdb/debuginfod-support.c: Always display debuginfod errors
-	Errors encountered when downloading files from debuginfod servers
-	are not displayed if debuginfod verbosity is set to 0 (via
-	'set debuginfod verbose 0').
-
-	Tom recommended that these errors always be displayed, regardless
-	of the verbosity setting [1]. Fix this.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-March/186350.html
-
-2022-04-01  John Baldwin  <jhb@FreeBSD.org>
-
-	Use I386_GSBASE_REGNUM in i386fbsd_get_thread_local_address.
-	32-bit x86 arches always the I386_*BASE_REGNUM values.  Only code that
-	needs to support both 64-bit and 32-bit arches needs to use
-	tdep->fsbase_regnum to compute a segment base register number.
-
-	FreeBSD/x86: Read segment base registers from NT_X86_SEGBASES.
-	FreeBSD kernels recently grew a new register core dump note containing
-	the base addresses of the %fs and %gs segments (corresponding to the
-	%fsbase and %gsbase registers).  Parse this note to permit inspecting
-	TLS variables in core dumps.  Native processes already supported TLS
-	via older ptrace() operations.
-
-2022-04-01  John Baldwin  <jhb@FreeBSD.org>
-
-	Use pseudosections for NT_FREEBSD_X86_SEGBASES core dump notes.
-	This includes adding pseudosections when reading a core dump as well
-	as support for writing out a core dump note from a pseudosection.
-
-	bfd/ChangeLog:
-
-		* elf-bfd.h (elfcore_write_x86_segbases): New.
-		* elf.c (elfcore_grok_freebsd_note): Add pseudosections for
-		NT_FREEBSD_X86_SEGBASES register notes.
-		(elfcore_write_x86_segbases): New.
-		(elfcore_write_register_note): Write NT_FREEBSD_X86_SEGBASES
-		register notes.
-
-2022-04-01  John Baldwin  <jhb@FreeBSD.org>
-
-	Recognize FreeBSD core dump note for x86 segment base registers.
-	This core dump note contains the value of the base address of the %fs
-	and %gs segments for both i386 and amd64 core dumps.  It is primarily
-	useful in resolving the address of TLS variables in core dumps.
-
-	binutils/ChangeLog:
-
-		* readelf.c (get_freebsd_elfcore_note_type): Handle
-		NT_FREEBSD_X86_SEGBASES.
-
-	include/ChangeLog:
-
-		* elf/common.h (NT_FREEBSD_X86_SEGBASES): Define.
-
-2022-04-01  John Baldwin  <jhb@FreeBSD.org>
-
-	elfcore_grok_freebsd_note: Remove checks of note->namesz.
-	This function is only called if the note name is "FreeBSD", so
-	checking the name size is unnecessary.
-
-	bfd/ChangeLog:
-
-		* elf.c (elfcore_grok_freebsd_note): Remove checks for namesz.
-
-2022-04-01  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testing/tui: add new _csi_{L,S,T}
-	This patch was original part of this series:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186429.html
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186433.html
-
-	I've pulled this out as it might be useful ahead of the bigger series
-	being merged.
-
-	This commit adds:
-
-	  _csi_L - insert line
-	  _csi_S - pan down
-	  _csi_T - pan up
-
-2022-04-01  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Remove bfd_arch_l1om and bfd_arch_k1om
-	Remove bfd_arch_l1om and bfd_arch_k1om since L1OM/K1OM support has been
-	removed from gas, ld and opcodes.
-
-	bfd/
-
-		* Makefile.am (ALL_MACHINES): Remove cpu-l1om.lo and cpu-k1om.lo.
-		(ALL_MACHINES_CFILES): Remove cpu-l1om.c and cpu-k1om.c.
-		* archures.c (bfd_mach_l1om): Removed.
-		(bfd_mach_l1om_intel_syntax): Likewise.
-		(bfd_mach_k1om): Likewise.
-		(bfd_mach_k1om_intel_syntax): Likewise.
-		(bfd_k1om_arch): Likewise.
-		(bfd_l1om_arch): Likewise.
-		(bfd_archures_list): Remove bfd_k1om_arch and bfd_l1om_arch
-		references.
-		* config.bfd (targ_selvecs): Remove l1om_elf64_vec.
-		l1om_elf64_fbsd_vec, k1om_elf64_vec and k1om_elf64_fbsd_vec.
-		(targ_archs): Remove bfd_l1om_arch and bfd_k1om_arch.
-		* configure.ac (k1om_elf64_vec): Removed.
-		(k1om_elf64_fbsd_vec): Likewise.
-		(l1om_elf64_vec): Likewise.
-		(l1om_elf64_fbsd_vec): Likewise.
-		* cpu-k1om.c: Removed.
-		* cpu-l1om.c: Likewise.
-		* elf64-x86-64.c (elf64_l1om_elf_object_p): Removed.
-		(elf64_k1om_elf_object_p): Likewise.
-		(l1om_elf64_vec): Removed.
-		(l1om_elf64_fbsd_vec): Likewise.
-		(k1om_elf64_vec): Likewise.
-		(k1om_elf64_fbsd_vec): Likewise.
-		(ELF_TARGET_OS): Undefine.
-		* targets.c (_bfd_target_vector): Remove k1om_elf64_vec,
-		k1om_elf64_fbsd_vec, l1om_elf64_vec and l1om_elf64_fbsd_vec.
-		* Makefile.in: Regenerate.
-		* bfd-in2.h: Likewise.
-		* configure: Likewise.
-
-	opcodes/
-
-		* configure.ac: Remove bfd_arch_l1om/bfd_arch_k1om references.
-		* disassemble.c (disassembler): Likewise.
-		* configure: Regenerate.
-
-2022-04-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/ctf: pass partial symtab's filename to buildsym_compunit
-	I noticed that the CTF symbol reader passes the objfile's name to all
-	buildsym_compunit instances it creates.  The result is that all
-	compunit_symtabs created have the same name, that of the objfile:
-
-	    { objfile /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0 ((struct objfile *) 0x613000005d00)
-	      { ((struct compunit_symtab *) 0x621000286760)
-	        debugformat ctf
-	        producer (null)
-	        name libbabeltrace2.so.0.0.0
-	        dirname (null)
-	        blockvector ((struct blockvector *) 0x6210003911d0)
-	        user ((struct compunit_symtab *) (null))
-	            { symtab /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0 ((struct symtab *) 0x6210003911f0)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	      }
-	      { ((struct compunit_symtab *) 0x621000275c10)
-	        debugformat ctf
-	        producer (null)
-	        name libbabeltrace2.so.0.0.0
-	        dirname (null)
-	        blockvector ((struct blockvector *) 0x621000286710)
-	        user ((struct compunit_symtab *) (null))
-	            { symtab /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0 ((struct symtab *) 0x621000286730)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	      }
-
-	Notice the two "name libbabeltrace2.so.0.0.0".
-
-	Change it to pass the partial_symtab's filename instead.  The output
-	becomes:
-
-	    { objfile /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0 ((struct objfile *) 0x613000005d00)
-	      { ((struct compunit_symtab *) 0x621000295610)
-	        debugformat ctf
-	        producer (null)
-	        name libbabeltrace2.so.0.0.0
-	        dirname (null)
-	        blockvector ((struct blockvector *) 0x6210003a15d0)
-	        user ((struct compunit_symtab *) (null))
-	            { symtab /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0 ((struct symtab *) 0x6210003a15f0)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	      }
-	      { ((struct compunit_symtab *) 0x621000288700)
-	        debugformat ctf
-	        producer (null)
-	        name current-thread.c
-	        dirname (null)
-	        blockvector ((struct blockvector *) 0x6210002955c0)
-	        user ((struct compunit_symtab *) (null))
-	            { symtab /home/simark/src/babeltrace/src/lib/current-thread.c ((struct symtab *) 0x6210002955e0)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	      }
-
-	Note that the first compunit_symtab still has libbabeltrace2.so.0.0.0 as
-	its name.  This is because the CTF symbol reader really creates a
-	partial symtab named like this.  It appears to be because the debug info
-	contains information that has been factored out of all CUs and is at the
-	"top-level" of the objfile, outside any real CU.  So it creates a
-	partial symtab and an artificial CU that's named after the objfile.
-
-	Change-Id: I576316bab2a3668adf87b4e6cebda900a8159b1b
-
-2022-04-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: print compunit_symtab name in "maint info symtabs"
-	I think it would make sense to print a compunit_symtab's name in "maint
-	info symtabs".  If you are looking for a given CU in the list, that's
-	probably the field you will be looking at.  As the doc of
-	compunit_symtab::name says, it is not meant to be a reliable file name,
-	it is for debugging purposes (and "maint info symtabs" exists for
-	debugging purposes).
-
-	Sample output with the new field:
-
-	    (gdb) maintenance info symtabs
-	    { objfile /home/simark/build/binutils-gdb-one-target/gdb/a.out ((struct objfile *) 0x613000005d00)
-	      { ((struct compunit_symtab *) 0x621000131630)
-	        debugformat DWARF 5
-	        producer GNU C17 11.2.0 -mtune=generic -march=x86-64 -g3 -O0
-	        name test.c
-	        dirname /home/simark/build/binutils-gdb-one-target/gdb
-	        blockvector ((struct blockvector *) 0x621000131d10)
-	        user ((struct compunit_symtab *) (null))
-	            { symtab test.c ((struct symtab *) 0x6210001316b0)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x621000131d40)
-	            }
-	            { symtab /home/simark/build/binutils-gdb-one-target/gdb/test.h ((struct symtab *) 0x6210001316e0)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	            { symtab /usr/include/stdc-predef.h ((struct symtab *) 0x621000131710)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	      }
-	      { ((struct compunit_symtab *) 0x6210001170a0)
-	        debugformat DWARF 5
-	        producer GNU C17 11.2.0 -mtune=generic -march=x86-64 -g3 -O0
-	        name foo.c
-	        dirname /home/simark/build/binutils-gdb-one-target/gdb
-	        blockvector ((struct blockvector *) 0x621000131580)
-	        user ((struct compunit_symtab *) (null))
-	            { symtab foo.c ((struct symtab *) 0x621000117120)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x6210001315b0)
-	            }
-	            { symtab /usr/include/stdc-predef.h ((struct symtab *) 0x621000117150)
-	              fullname (null)
-	              linetable ((struct linetable *) 0x0)
-	            }
-	      }
-	    }
-
-	Change-Id: I17b87adfac2f6551cb5bda30d59f6c6882789211
-
-2022-04-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/ctf: don't create a buildsym_compunit when building partial symbols
-	I am trying to do some changes to buildsym_compunit, so I am auditing
-	the current uses.  Something seems odd with this use of
-	buildsym_compunit (that this patch removes).
-
-	A buildsym_compunit is normally used when building a compunit_symtab.
-	That is, when expanding a partial symtab into a full compunit symtab.
-	In ctfread.c, a buildsym_compunit is created in ctf_start_archive, which
-	is only used when creating partial symtabs.  At this moment, I don't
-	see how that's useful.  ctf_start_archive creates a new
-	buildsym_compunit and starts a subfile.  But that buildsym_compunit is
-	never used again.  It's just overriden in ctf_start_symtab, which means
-	we leak the old buildsym_compunit, I suppose.
-
-	Remove ctf_start_archive completely.  Add an assert in
-	ctf_start_symtab to verify that we are not overwriting an existing
-	buildsym_compunit (meaning we'd leak the existing one).  This assert
-	triggers without the other part of the fix.  When doing:
-
-	  $ ./gdb --data-directory=data-directory /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0
-	  ...
-	  (gdb) maintenance expand-symtabs
-	  /home/simark/src/binutils-gdb/gdb/ctfread.c:1255: internal-error: ctf_start_symtab: Assertion `!ccp->builder' failed.
-
-	Change-Id: I666d146454a019f08e7305f3a1c4a974d27b4592
-
-2022-04-01  Tom Tromey  <tom@tromey.com>
-
-	Style URLs in GDB output
-	I noticed that GDB will display URLs in a few spots.  This changes
-	them to be styled.  Originally I thought I'd introduce a new "url"
-	style, but there aren't many places to use this, so I just reused
-	filename styling instead.  This patch also changes the debuginfod URL
-	list to be printed one URL per line.  I think this is probably a bit
-	easier to read.
-
-2022-04-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-31  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: initialize ctf_context::builder in create_partial_symtab
-	I built a random project with -gctf, in order to test the CTF support in
-	GDB.  With my ASan/UBSan/etc-enabled build of GDB, I get:
-
-	    $ ./gdb --data-directory=data-directory /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0
-	    ...
-	    Reading symbols from /tmp/babeltrace-ctf/src/lib/.libs/libbabeltrace2.so.0.0.0...
-	    /home/simark/src/binutils-gdb/gdb/ctfread.c:1545:31: runtime error: member call on misaligned address 0xbebebebebebebebe for type 'struct buildsym_compunit', which requires 8 byte alignment
-	    0xbebebebebebebebe: note: pointer points here
-
-	The 0xbebebebebebebebe value is a sign that the ctf_context::builder
-	field is uninitialized.  The problem probably goes under the radar if
-	the field happens to be zero-initialized, because ctf_start_archive
-	contains this code:
-
-	  if (ccx->builder == nullptr)
-	    {
-	      ccx->builder = new buildsym_compunit (of,
-			      of->original_name, nullptr, language_c, 0);
-
-	If the field was zero-initialized (by chance), this will create a new
-	buildsym_compunit.  But if the field was purposely filled with random
-	bytes by one of the sanitizers, we won't create a buildsym_compunit here
-	and we'll continue with ccx->builder equal to 0xbebebebebebebebe.
-
-	Fix this the easy way by initializing ccx->builder where the other
-	ctf_context fields are initialized (yeah, this code could be made nicer
-	C++, but I am going for the obvious fix here).
-
-	With this patch, this passes cleanly on my system:
-
-	  $ make check TESTS="gdb.ctf/*.exp" RUNTESTFLAGS="CC_FOR_TARGET=/opt/gcc/git/bin/gcc"
-	  # of expected passes            40
-
-	... where /opt/gcc/git/bin/gcc is a gcc with CTF support, given my
-	system gcc does not have it.
-
-	Change-Id: Idea1b0cf3e3708b72ecb16b1b60222439160f9b9
-
-2022-03-31  Tom Tromey  <tromey@adacore.com>
-
-	Remove dbx mode
-	This patch removes gdb's dbx mode.  Regression tested on x86-64 Fedora
-	34.
-
-2022-03-31  H.J. Lu  <hjl.tools@gmail.com>
-
-	gdb: Consolidate 32bit-pkeys.xml and 64bit-pkeys.xml
-	1. Since 32bit-pkeys.xml and 64bit-pkeys.xml are identical, consolidate
-	them into a single keys.xml.
-	2. Enable PKU for x32 to fix:
-
-	$ gdbserver :123456 x32-program
-	...
-	.../gdbserver/regcache.cc:255: A problem internal to GDBserver has been detected
-	.
-	Unknown register pkru requested
-
-	on Tiger Lake.
-
-2022-03-31  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-nat: remove check based on current_inferior in linux_handle_extended_wait
-	The check removed by this patch, using current_inferior, looks wrong.
-	When debugging multiple inferiors with the Linux native target and
-	linux_handle_extended_wait is called, there's no guarantee about which
-	is the current inferior.  The vfork-done event we receive could be for
-	any inferior.  If the vfork-done event is for a non-current inferior, we
-	end up wrongfully ignoring it.  As a result, the core never processes a
-	TARGET_WAITKIND_VFORK_DONE event, program_space::breakpoints_not_allowed
-	is never cleared, and breakpoints are never reinserted.  However,
-	because the Linux native target decided to ignore the event, it resumed
-	the thread - while breakpoints out.  And that's bad.
-
-	The proposed fix is to remove this check.  Always report vfork-done
-	events and let infrun's logic decide if it should be ignored.  We don't
-	save much cycles by filtering the event here.
-
-	Add a test that replicates the situation described above.  See comments
-	in the test for more details.
-
-	Change-Id: Ibe33c1716c3602e847be6c2093120696f2286fbf
-
-2022-03-31  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver/linux: set lwp !stopped when failing to resume
-	I see some failures, at least in gdb.multi/multi-re-run.exp and
-	gdb.threads/interrupted-hand-call.exp.  Running `stress -C $(nproc)` at
-	the same time as the test makes those tests relatively frequent.
-
-	Let's take gdb.multi/multi-re-run.exp as an example.  The failure looks
-	like this, an unexpected "no resumed":
-
-	    continue
-	    Continuing.
-	    No unwaited-for children left.
-	    (gdb) FAIL: gdb.multi/multi-re-run.exp: re_run_inf=2: iter=1: continue until exit
-
-	The situation is:
-
-	 - Inferior 1 is stopped somewhere, it won't really play a role here.
-	 - Inferior 2 has 2 threads, both stopped.
-	 - We resume inferior 2, the leader thread is expected to exit, making
-	   the process exit.
-
-	From GDB's perspective, a failing run looks like this:
-
-	    [infrun] fetch_inferior_event: enter
-	      [infrun] scoped_disable_commit_resumed: reason=handling event
-	      [infrun] do_target_wait: Found 2 inferiors, starting at #1
-	      [infrun] random_pending_event_thread: None found.
-	      [remote] wait: enter
-	        [remote] Packet received: T0506:20dcffffff7f0000;07:20dcffffff7f0000;10:9551555555550000;thread:pae4cd.ae4cd;core:e;
-	      [remote] wait: exit
-	      [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	      [infrun] print_target_wait_results:   713933.713933.0 [Thread 713933.713933],
-	      [infrun] print_target_wait_results:   status->kind = STOPPED, sig = GDB_SIGNAL_TRAP
-	      [infrun] handle_inferior_event: status->kind = STOPPED, sig = GDB_SIGNAL_TRAP
-	      [infrun] clear_step_over_info: clearing step over info
-	      [infrun] context_switch: Switching context from 0.0.0 to 713933.713933.0
-	      [infrun] handle_signal_stop: stop_pc=0x555555555195
-	      [infrun] start_step_over: enter
-	        [infrun] start_step_over: stealing global queue of threads to step, length = 0
-	        [infrun] operator(): step-over queue now empty
-	      [infrun] start_step_over: exit
-	      [infrun] process_event_stop_test: no stepping, continue
-	      [remote] Sending packet: $Z0,555555555194,1#8e
-	      [remote] Packet received: OK
-	      [infrun] resume_1: step=0, signal=GDB_SIGNAL_0, trap_expected=0, current thread [713933.713933.0] at 0x555555555195
-	      [remote] Sending packet: $QPassSignals:e;10;14;17;1a;1b;1c;21;24;25;2c;4c;97;#0a
-	      [remote] Packet received: OK
-	      [remote] Sending packet: $vCont;c:pae4cd.-1#9f
-	      [infrun] prepare_to_wait: prepare_to_wait
-	      [infrun] reset: reason=handling event
-	      [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target extended-remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target extended-remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target extended-remote
-	    [infrun] fetch_inferior_event: exit
-	    [infrun] fetch_inferior_event: enter
-	      [infrun] scoped_disable_commit_resumed: reason=handling event
-	      [infrun] do_target_wait: Found 2 inferiors, starting at #0
-	      [infrun] random_pending_event_thread: None found.
-	      [remote] wait: enter
-	        [remote] Packet received: N
-	      [remote] wait: exit
-	      [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	      [infrun] print_target_wait_results:   -1.0.0 [process -1],
-	      [infrun] print_target_wait_results:   status->kind = NO_RESUMED
-	      [infrun] handle_inferior_event: status->kind = NO_RESUMED
-	      [remote] Sending packet: $Hgp0.0#ad
-	      [remote] Packet received: OK
-	      [remote] Sending packet: $qXfer:threads:read::0,1000#92
-	      [remote] Packet received: l<threads>\n<thread id="pae4cb.ae4cb" core="3" name="multi-re-run-1" handle="40c7c6f7ff7f0000"/>\n<thread id="pae4cb.ae4cc" core="2" name="multi-re-run-1" handle="40b6c6f7ff7f0000"/>\n<thread id="pae4cd.ae4ce" core="1" name="multi-re-run-2" handle="40b6c6f7ff7f0000"/>\n</threads>\n
-	      [infrun] stop_waiting: stop_waiting
-	      [remote] Sending packet: $qXfer:threads:read::0,1000#92
-	      [remote] Packet received: l<threads>\n<thread id="pae4cb.ae4cb" core="3" name="multi-re-run-1" handle="40c7c6f7ff7f0000"/>\n<thread id="pae4cb.ae4cc" core="2" name="multi-re-run-1" handle="40b6c6f7ff7f0000"/>\n<thread id="pae4cd.ae4ce" core="1" name="multi-re-run-2" handle="40b6c6f7ff7f0000"/>\n</threads>\n
-	      [infrun] infrun_async: enable=0
-	      [infrun] reset: reason=handling event
-	      [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target extended-remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target extended-remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target extended-remote
-	    [infrun] fetch_inferior_event: exit
-
-	We can see that we resume the inferior with vCont;c, but got NO_RESUMED.
-	When the test passes, we get an EXITED status to indicate the process
-	has exited.
-
-	From GDBserver's point of view, it looks like this.  The logs contain
-	some logging I added and that are part of this patch.
-
-	    [remote] getpkt: getpkt ("vCont;c:pae4cf.-1");  [no ack sent]
-	    [threads] resume: enter
-	      [threads] thread_needs_step_over: Need step over [LWP 713931]? Ignoring, should remain stopped
-	      [threads] thread_needs_step_over: Need step over [LWP 713932]? Ignoring, should remain stopped
-	      [threads] get_pc: pc is 0x555555555195
-	      [threads] thread_needs_step_over: Need step over [LWP 713935]? No, no breakpoint found at 0x555555555195
-	      [threads] get_pc: pc is 0x7ffff7d35a95
-	      [threads] thread_needs_step_over: Need step over [LWP 713936]? No, no breakpoint found at 0x7ffff7d35a95
-	      [threads] resume: Resuming, no pending status or step over needed
-	      [threads] resume_one_thread: resuming LWP 713935
-	      [threads] proceed_one_lwp: lwp 713935
-	      [threads] resume_one_lwp_throw:   continue from pc 0x555555555195
-	      [threads] resume_one_lwp_throw: Resuming lwp 713935 (continue, signal 0, stop not expected)
-	      [threads] resume_one_lwp_throw: NOW ptid=713935.713935.0 stopped=0 resumed=0
-	      [threads] resume_one_thread: resuming LWP 713936
-	      [threads] proceed_one_lwp: lwp 713936
-	      [threads] resume_one_lwp_throw:   continue from pc 0x7ffff7d35a95
-	      [threads] resume_one_lwp_throw: Resuming lwp 713936 (continue, signal 0, stop not expected)
-	      [threads] resume_one_lwp_throw: ptrace errno = 3 (No such process)
-	    [threads] resume: exit
-	    [threads] wait_1: enter
-	      [threads] wait_1: [<all threads>]
-	      [threads] wait_for_event_filtered: waitpid(-1, ...) returned 0, ERRNO-OK
-	      [threads] resume_stopped_resumed_lwps: resuming stopped-resumed LWP LWP 713935.713936 at 7ffff7d35a95: step=0
-	      [threads] resume_one_lwp_throw:   continue from pc 0x7ffff7d35a95
-	      [threads] resume_one_lwp_throw: Resuming lwp 713936 (continue, signal 0, stop not expected)
-	      [threads] resume_one_lwp_throw: ptrace errno = 3 (No such process)
-	      [threads] operator(): check_zombie_leaders: leader_pid=713931, leader_lp!=NULL=1, num_lwps=2, zombie=0
-	      [threads] operator(): check_zombie_leaders: leader_pid=713935, leader_lp!=NULL=1, num_lwps=2, zombie=1
-	      [threads] operator(): Thread group leader 713935 zombie (it exited, or another thread execd).
-	      [threads] delete_lwp: deleting 713935
-	      [threads] wait_for_event_filtered: exit (no unwaited-for LWP)
-	    sigchld_handler
-	      [threads] wait_1: ret = null_ptid, TARGET_WAITKIND_NO_RESUMED
-	    [threads] wait_1: exit
-
-	What happens is:
-
-	 - We resume the leader (713935) successfully.
-	 - The leader exits.
-	 - We resume the secondary thread (713936), we get ESRCH.  This is
-	   expected this the leader has exited.
-	 - resume_one_lwp_throw throws, it's caught by resume_one_lwp.
-	 - resume_one_lwp checks with check_ptrace_stopped_lwp_gone that the
-	   failure can be explained by the LWP becoming zombie, and swallows the
-	   error.
-	 - Note that this means that the secondary lwp still has stopped==1.
-	 - wait_1 is called, probably because linux_process_target::resume marks
-	   the async pipe at the end.
-	 - The exit event isn't ready yet, probably because the machine is under
-	   load, so waitpid returns nothing.
-	 - check_zombie_leaders detects that the leader is zombie and deletes
-	 - We try to find a resumed (non-stopped) LWP to get an event from,
-	   there's none since the leader (that was resumed) is now deleted, and
-	   the secondary thread is still marked stopped.
-	   wait_for_event_filtered returns -1, causing wait_1 to return
-	   NO_RESUMED.
-
-	What I notice here is that there is some kind of race between the
-	availability of the process' exit notification and the call to wait_1
-	that results from marking the async pipe at the end of resume.
-
-	I think what we want from this wait_1 invocation is to keep waiting, as
-	we will eventually get thread exit notifications for both of our
-	threads.
-
-	The fix I came up with is to mark the secondary thread as !stopped (or
-	resumed) when we fail to resume it.  This makes wait_1 see that there is
-	at least one resume lwp, so it won't return NO_RESUMED.  I think this
-	makes sense to consider it resumed, because we are going to receive an
-	exit event for it.  Here's the GDBserver logs with the fix applied:
-
-	    [threads] resume: enter
-	      [threads] thread_needs_step_over: Need step over [LWP 724595]? Ignoring, should remain stopped
-	      [threads] thread_needs_step_over: Need step over [LWP 724596]? Ignoring, should remain stopped
-	      [threads] get_pc: pc is 0x555555555195
-	      [threads] thread_needs_step_over: Need step over [LWP 724597]? No, no breakpoint found at 0x555555555195
-	      [threads] get_pc: pc is 0x7ffff7d35a95
-	      [threads] thread_needs_step_over: Need step over [LWP 724598]? No, no breakpoint found at 0x7ffff7d35a95
-	      [threads] resume: Resuming, no pending status or step over needed
-	      [threads] resume_one_thread: resuming LWP 724597
-	      [threads] proceed_one_lwp: lwp 724597
-	      [threads] resume_one_lwp_throw:   continue from pc 0x555555555195
-	      [threads] resume_one_lwp_throw: Resuming lwp 724597 (continue, signal 0, stop not expected)
-	      [threads] resume_one_lwp_throw: NOW ptid=724597.724597.0 stopped=0 resumed=0
-	      [threads] resume_one_thread: resuming LWP 724598
-	      [threads] proceed_one_lwp: lwp 724598
-	      [threads] resume_one_lwp_throw:   continue from pc 0x7ffff7d35a95
-	      [threads] resume_one_lwp_throw: Resuming lwp 724598 (continue, signal 0, stop not expected)
-	      [threads] resume_one_lwp_throw: ptrace errno = 3 (No such process)
-	    [threads] resume: exit
-	    [threads] wait_1: enter
-	      [threads] wait_1: [<all threads>]
-	    sigchld_handler
-	      [threads] wait_for_event_filtered: waitpid(-1, ...) returned 0, ERRNO-OK
-	      [threads] operator(): check_zombie_leaders: leader_pid=724595, leader_lp!=NULL=1, num_lwps=2, zombie=0
-	      [threads] operator(): check_zombie_leaders: leader_pid=724597, leader_lp!=NULL=1, num_lwps=2, zombie=1
-	      [threads] operator(): Thread group leader 724597 zombie (it exited, or another thread execd).
-	      [threads] delete_lwp: deleting 724597
-	      [threads] wait_for_event_filtered: sigsuspend'ing
-	    sigchld_handler
-	      [threads] wait_for_event_filtered: waitpid(-1, ...) returned 724598, ERRNO-OK
-	      [threads] wait_for_event_filtered: waitpid 724598 received 0 (exited)
-	      [threads] filter_event: 724598 exited
-	      [threads] wait_for_event_filtered: waitpid(-1, ...) returned 724597, ERRNO-OK
-	      [threads] wait_for_event_filtered: waitpid 724597 received 0 (exited)
-	      [threads] wait_for_event_filtered: waitpid(-1, ...) returned 0, ERRNO-OK
-	    sigchld_handler
-	      [threads] wait_1: ret = LWP 724597.724598, exited with retcode 0
-	    [threads] wait_1: exit
-
-	Change-Id: Idf0bdb4cb0313f1b49e4864071650cc83fb3c100
-
-2022-03-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite/tui: implement _csi_P proc
-	Since commit 3cd522938792 ("Change the pager to a ui_file"), I see these
-	errors when running gdb.tui/scroll.exp:
-
-	    ERROR: invalid command name "_csi_P"
-	        while executing
-	    "::gdb_tcl_unknown _csi_P 2"
-	        ("uplevel" body line 1)
-	        invoked from within
-	    "uplevel 1 ::gdb_tcl_unknown $args"
-	        (procedure "::unknown" line 5)
-	        invoked from within
-	    "_csi_P 2"
-	        ("eval" body line 1)
-	        invoked from within
-	    "eval _csi_$cmd $params"
-
-	It looks like GDB is emitting a CSI that it did not emit before, the
-	"Delete character" one:
-
-	  https://vt100.net/docs/vt510-rm/DCH.html
-
-	Implement it.
-
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-	Change-Id: I5bf86b6104d51b0623a26a69df83d1ca9a4851b7
-
-2022-03-31  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix use of fprintf_filtered in top.c
-	A race condition in how patches were pushed causes this build failure:
-
-	      CXX    top.o
-	    /home/simark/src/binutils-gdb/gdb/top.c: In function ‘void print_gdb_configuration(ui_file*)’:
-	    /home/simark/src/binutils-gdb/gdb/top.c:1622:3: error: ‘fprintf_filtered’ was not declared in this scope; did you mean ‘printf_unfiltered’?
-	     1622 |   fprintf_filtered (stream, _("\
-	          |   ^~~~~~~~~~~~~~~~
-
-	fprintf_filtered has been removed, gdb_printf must be used now.  Fix
-	this.
-
-	Change-Id: I6a172ba0d53dab2e7cc43ed0ed2696c82925245b
-
-2022-03-31  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Relax check for RNG system registers
-	FEAT_RNG is an optional Armv8.5-A extension, but it can be backported
-	to earlier architectures as well.  GAS previously made the RNG registers
-	conditional on having both armv8.5-a and +rng, but only +rng should be
-	required.
-
-	This seems to be the only feature that was handled like this.
-
-	opcodes/
-		* aarch64-opc.c (SR_RNG): Don't require V8_5.
-
-	gas/
-		* testsuite/gas/aarch64/rng-1.s, testsuite/gas/aarch64/rng-1.d: New
-		test.
-
-2022-03-31  Eli Zaretskii  <eliz@gnu.org>
-
-	* gdb/top.c (print_gdb_configuration): Announce --enable-threading.
-	This includes the reporting of --enable/disable-threading as part of
-	the GDB configuration description.
-
-2022-03-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/infrun: add reason parameter to stop_all_threads
-	Add a "reason" parameter, only used to show in debug messages what is
-	the reason for stopping all threads.  This helped me understand the
-	debug logs while adding some new uses of stop_all_threads, so I am
-	proposing to merge it.
-
-	Change-Id: I66c8c335ebf41836a7bc3d5fe1db92c195f65e55
-
-2022-03-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: update copyright years in gdb.base/vfork-follow-parent.*
-	I forgot to do this before pushing the previous commit.
-
-	Change-Id: Ia343f702e8357d0fd109e9ddd778973e91862805
-
-2022-03-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: test vfork + follow-fork-mode=parent + detach-on-fork=off
-	The particular behavior we have when using that combination of settings
-	doesn't seem tested at all (at least, I don't find it if I grep for "Can
-	not resume the parent process").  Add a simple test for that.
-
-	Change-Id: Ib9454a615abba661b42f1b15056df73ed1bcd4c5
-
-2022-03-31  Nick Clifton  <nickc@redhat.com>
-
-	Accept the + character as part of filenames for MRI scripts.
-
-2022-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	Fix procfs.c compilation
-	procfs.c doesn't compile on Solaris:
-
-	/vol/src/gnu/gdb/hg/master/local/gdb/procfs.c: In member function ‘virtual bool procfs_target::info_proc(const char*, info_proc_what)’:
-	/vol/src/gnu/gdb/hg/master/local/gdb/procfs.c:3302:3: error: ‘gdb_argv’ was not declared in this scope
-	 3302 |   gdb_argv built_argv (args);
-	      |   ^~~~~~~~
-	/vol/src/gnu/gdb/hg/master/local/gdb/procfs.c:3303:20: error: ‘built_argv’ was not declared in this scope; did you mean ‘buildargv’?
-	 3303 |   for (char *arg : built_argv)
-	      |                    ^~~~~~~~~~
-	      |                    buildargv
-
-	Fixed by including  "gdbsupport/buildargv.h".
-
-	Tested on amd64-pc-solaris2.11, sparcv9-sun-solaris2.11.
-
-2022-03-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: add tests for Term
-	While trying to review Andrew's patch here [1], I thought I spotted a
-	bug in the handling of a CSI, but I had no way to know for sure.  So I
-	thought it would be useful to have unit tests for the handling of
-	control characters and control sequences of our toy terminal
-	implementation.  It might help avoid chasing bugs in the GDB TUI when in
-	reality it's a problem with the testsuite's terminal implementation.
-
-	Add the gdb.tui/tuiterm.exp file to do that.  All currently supported
-	control sequences and characters are tested, except _csi_m (the one that
-	handles colors and stuff).  _csi_m should probably be tested too, but it
-	will require more work.
-
-	Fix a few issues that the tests spotted:
-
-	 - backspace: according to [3] (table 4-1), a backspace when the cursor
-	   is at the beginning of a line should have no effect.  Our
-	   implementation did wrap to the end of the previous line.  Change our
-	   implementation to match the doc (and the test).
-	 - insert character: this control sequence is supposed to insert blank
-	   characters, shifting all the rest of the line right.  The current
-	   implementation moves N characters right, but it overwrites the
-	   characters on the right instead of shifting them.  It also doesn't
-	   insert blank characters at the cursor.
-	 - Cursor down, forward, next line: off-by-one error when reaching the
-	   end of the display.
-	 - erase in display, line: off-by-one errors.
-	 - vertical line position absolute: allowed setting the cursor outside
-	   the display, when it should clamp it to the display size.
-
-	I found that this web page [2] gave some good clues on the expected
-	behavior of some control characters or sequences that some other pages
-	didn't.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-March/186433.html
-	[2] https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
-	[3] https://vt100.net/docs/vt510-rm/chapter4.html#S4.3.3
-
-	Change-Id: Iab4141fdcfb7459d1b7c45cc63bd1fcb50a78d5d
-
-2022-03-30  Tom Tromey  <tom@tromey.com>
-
-	Only allow QUIT on the main thread
-	Pedro pointed out that gdb worker threads should not react to quits.
-	While I don't think that the new DWARF reader can call QUIT from a
-	worker thread (and I don't think the existing minsym threading code
-	can either), it seems safest to address this before checking in the
-	new code.  This patch arranges for the QUIT macro to only work on the
-	main thread.
-
-2022-03-30  Tom Tromey  <tromey@adacore.com>
-
-	Use gdb_printf and gdb_vprintf in more places
-	Luis pointed out that I missed a spot in the gdb_printf conversion --
-	namely aarch64-nat.c.  While looking at this, I found another spot in
-	darwin-nat.c that I also missed.  I can't build either of these, but I
-	think this patch should fix the problems.
-
-	Consolidate definition of current_directory
-	I noticed that both gdbserver and gdb define current_directory.
-	However, as it is referenced by gdbsupport, it seemed better to define
-	it there as well.  This patch also moves the declaration to
-	pathstuff.h.  Tested by rebuilding.
-
-2022-03-30  Tom Tromey  <tromey@adacore.com>
-
-	Decode "dynamic" interface types in Ada
-	In Ada, if a class implements an interface and has a dynamic
-	superclass, then the "offset to top" -- the offset that says how to
-	turn a pointer to the interface into a pointer to the whole object --
-	is stored in the object itself.  This patch changes GDB to understand
-	this.
-
-	Because this only touches Ada code, and because Joel already reviewed
-	it internally, I am checking it in.
-
-2022-03-30  Jeff Law  <jeffreyalaw@gmail.com>
-
-	Fix for MUL instruction on the v850
-		* sim/v850/simops.c (Multiply64): Properly test if we need to
-		negate either of the operands.
-
-		* sim/testsuite/v850/mul.cgs: New test.
-
-2022-03-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-29  Tom Tromey  <tom@tromey.com>
-
-	Remove two unused hooks
-	I noticed that a couple of deprecated hooks aren't ever called, so
-	they can't really be used by Insight.  This patch removes them
-	entirely.  I checked the Insight sources, and these aren't mentioned
-	there, either.
-
-2022-03-29  Tom Tromey  <tom@tromey.com>
-
-	Remove unnecessary calls to wrap_here and gdb_flush
-	Various spots in gdb currently know about the wrap buffer, and so are
-	careful to call wrap_here to be certain that all output has been
-	flushed.
-
-	Now that the pager is just an ordinary stream, this isn't needed, and
-	a simple call to gdb_flush is enough.
-
-	Similarly, there are places where gdb prints to gdb_stderr, but first
-	flushes gdb_stdout.  stderr_file already flushes gdb_stdout, so these
-	aren't needed.
-
-2022-03-29  Tom Tromey  <tom@tromey.com>
-
-	Minor comment updates in utils.h
-	This patch updates some comments in utils.h to more closely reflect
-	the new reality.
-
-	Remove vfprintf_styled
-	Nothing calls vfprintf_styled any more, so remove it.
-
-	Remove ui_out_flag::unfiltered_output
-	There is no longer any need for ui_out_flag::unfiltered_output --
-	nothing ever sets this flag.  This used to be needed to make the
-	_unfiltered output work, but now only printf_unfiltered can be used,
-	and it uses the puts_unfiltered method.  This patch removes the flag
-	and the dead code.
-
-	Rename fprintf_symbol_filtered
-	fprintf_symbol_filtered is misnamed, because whether filtering happens
-	is now up to the stream.  This renames it to fprintf_symbol, which
-	isn't a great name (the first "f" doesn't mean much and the second one
-	is truly meaningless here), but "print_symbol" was already taken.
-
-	Rename puts_filtered_tabular
-	puts_filtered_tabular is now misnamed, because whether filtering
-	happens is now up to the stream.  So, rename it.  (This function is
-	pretty weird, and should probably be rewritten to avoid using the
-	chars_printed global, and moved into objc-lang.c.  However, I haven't
-	done so.)
-
-	Rename print_spaces_filtered
-	print_spaces_filtered is now misnamed, because whether filtering
-	happens is up to the stream.  So, rename it.
-
-	Unify gdb printf functions
-	Now that filtered and unfiltered output can be treated identically, we
-	can unify the printf family of functions.  This is done under the name
-	"gdb_printf".  Most of this patch was written by script.
-
-	Unify gdb putc functions
-	Now that filtered and unfiltered output can be treated identically, we
-	can unify the putc family of functions.  This is done under the name
-	"gdb_putc".  Most of this patch was written by script.
-
-	Unify gdb puts functions
-	Now that filtered and unfiltered output can be treated identically, we
-	can unify the puts family of functions.  This is done under the name
-	"gdb_puts".  Most of this patch was written by script.
-
-	Unify vprintf functions
-	Now that filtered and unfiltered output can be treated identically, we
-	can unify the vprintf family of functions: vprintf_filtered,
-	vprintf_unfiltered, vfprintf_filtered and vfprintf_unfiltered.  (For
-	the gdb_stdout variants, recall that only printf_unfiltered gets truly
-	unfiltered output at this point.)  This removes one such function and
-	renames the remaining two to "gdb_vprintf".  All callers are updated.
-	Much of this patch was written by script.
-
-	Remove fputs_styled_unfiltered
-	fputs_styled_unfiltered is only called from cli_ui_out, so remove it.
-	This area will be further simplified in future patches.
-
-2022-03-29  Tom Tromey  <tom@tromey.com>
-
-	Change the pager to a ui_file
-	This rewrites the output pager as a ui_file implementation.
-
-	A new header is introduced to declare the pager class.  The
-	implementation remains in utils.c for the time being, because there
-	are some static globals there that must be used by this code.  (This
-	could be cleaned up at some future date.)
-
-	I went through all the text output in gdb to ensure that this change
-	should be ok.  There are a few cases:
-
-	* Any existing call to printf_unfiltered is required to be avoid the
-	  pager.  This is ensured directly in the implementation.
-
-	* All remaining calls to the f*_unfiltered functions -- the ones that
-	  take an explicit ui_file -- either send to an unfiltered stream
-	  (e.g., gdb_stderr), which is obviously ok; or conditionally send to
-	  gdb_stdout
-
-	  I investigated all such calls by searching for:
-
-	    grep -e '\bf[a-z0-9_]*_unfiltered' *.[chyl] */*.[ch] | grep -v gdb_stdlog | grep -v gdb_stderr
-
-	  This yields a number of candidates to check.
-
-	  * The breakpoint _print_recreate family, and
-	    save_trace_state_variables.  These are used for "save" commands
-	    and so are fine.
-
-	  * Things printing to a temporary stream.  Obviously ok.
-
-	  * Disassembly selftests.
-
-	  * print_gdb_help - this is non-obvious, but ok because paging isn't
-	    yet enabled at this point during startup.
-
-	  * serial.c - doens't use gdb_stdout
-
-	  * The code in compile/.  This is all printing to a file.
-
-	  * DWARF DIE dumping - doesn't reference gdb_stdout.
-
-	* Calls to the _filtered form -- these are all clearly ok, because if
-	  they are using gdb_stdout, then filtering will still apply; and if
-	  not, then filtering never applied and still will not.
-
-	Therefore, at this point, there is no longer any distinction between
-	all the other _filtered and _unfiltered calls, and they can be
-	unified.
-
-	In this patch, take special note of the vfprintf_maybe_filtered and
-	ui_file::vprintf change.  This is one instance of the above idea,
-	erasing the distinction between filtered and unfiltered -- in this
-	part of the change, the "unfiltered_output" flag is never passe to
-	cli_ui_out.  Subsequent patches will go much further in this
-	direction.
-
-	Also note the can_emit_style_escape changes in ui-file.c.  Checking
-	against gdb_stdout or gdb_stderr was always a bit of a hack; and now
-	it is no longer needed, because this is decision can be more fully
-	delegated to the particular ui_file implementation.
-
-	ui_file::can_page is removed, because this patch removed the only call
-	to it.
-
-	I think this is the main part of fixing PR cli/7234.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7234
-
-2022-03-29  Tom Tromey  <tom@tromey.com>
-
-	Remove vfprintf_styled_no_gdbfmt
-	This removes vfprintf_styled_no_gdbfmt, inlining it at the sole point
-	of call.
-
-	Add style-escape methods to ui_file
-	This adds emit_style_escape and reset_style methods to ui_file.  These
-	aren't used yet, but they will be once the pager is converted to be a
-	ui_file subclass.
-
-	Add puts_unfiltered method to ui_file
-	When the pager is rewritten as a ui_file, gdb will still need a way to
-	bypass the filtering.  After examining a few approaches, I chose this
-	patch, which adds a puts_unfiltered method to ui_file.  For most
-	implementations of ui_file, this will just delegate to puts.  This
-	patch also switches printf_unfiltered to use the new method.
-
-	Only have one API for unfiltered output
-	At the end of this series, the use of unfiltered output will be very
-	restricted -- only places that definitely need it will use it.  To
-	this end, I thought it would be good to reduce the number of
-	_unfiltered APIs that are exposed.  This patch changes gdb so that
-	only printf_unfiltered exists.  (After this patch, the f* variants
-	still exist as well, but those will be removed later.)
-
-2022-03-29  Tom Tromey  <tom@tromey.com>
-
-	Remove some uses of printf_unfiltered
-	A number of spots call printf_unfiltered only because they are in code
-	that should not be interrupted by the pager.  However, I believe these
-	cases are all handled by infrun's blanket ban on paging, and so can be
-	converted to the default (_filtered) API.
-
-	After this patch, I think all the remaining _unfiltered calls are ones
-	that really ought to be.  A few -- namely in complete_command -- could
-	be replaced by a scoped assignment to pagination_enabled, but for the
-	remainder, the code seems simple enough like this.
-
-2022-03-29  Tom Tromey  <tom@tromey.com>
-
-	Use unfiltered output in annotate.c
-	It seems to me that annotations should not be filtered.  While it
-	might be weird for an annotation-based UI to use the pager, it's not,
-	I think, out of the question.  This patch makes this change.
-
-2022-03-29  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-	    Aleksandar Paunovic  <aleksandar.paunovic@intel.com>
-
-	gdb/remote: use current_inferior in read_ptid if multi-process not supported
-	When parsing the ptid out of a reply package, if the multi-process
-	extensions are not supported, use current_inferior's pid as the pid of
-	the reported thread, instead of inferior_ptid.  This is needed because
-	the inferior_ptid may be null_ptid although a legit context exists,
-	due to a prior context switch via switch_to_inferior_no_thread.
-
-	Below is a scenario that illustrates what could go wrong.  First,
-	setup a multi-target scenario.  This is needed, because in a
-	multi-target setting, the inferior_ptid is cleared out before waiting
-	on targets.  The second inferior below sits on top of a remote target.
-	Multi-process packets are disabled.
-
-	  $ # First, spawn a process with PID 26253 to attach to later.
-	  $ gdb-up a.out
-	  Reading symbols from a.out...
-	  (gdb) maint set target-non-stop on
-	  (gdb) set remote multiprocess-feature-packet off
-	  (gdb) start
-	  ...
-	  (gdb) add-inferior -no-connection
-	  [New inferior 2]
-	  Added inferior 2
-	  (gdb) inferior 2
-	  [Switching to inferior 2 [<null>] (<noexec>)]
-	  (gdb) target extended-remote | gdbserver --multi -
-	  Remote debugging using | gdbserver --multi -
-	  Remote debugging using stdio
-	  (gdb) attach 26253
-	  Attaching to Remote target
-	  Attached; pid = 26253
-	  [New Thread 26253]
-	  [New inferior 3]
-	  Reading /tmp/a.out from remote target...
-	  ...
-	  [New Thread 26253]
-	  ...
-	  Reading /usr/local/lib/debug/....debug from remote target...
-	  >>> GDB seems to hang here.
-
-	After attaching to a process and reading some library files, GDB
-	seems to hang.  One interesting thing to note is that
-
-	  [New Thread 26253]
-
-	appears twice.  We also see
-
-	  [New inferior 3]
-
-	Running the same scenario with "debug infrun on" reveals more details.
-
-	  ...
-	  (gdb) attach 26253
-	  [infrun] scoped_disable_commit_resumed: reason=attaching
-	  Attaching to Remote target
-	  Attached; pid = 26253
-	  [New Thread 26253]
-	  [infrun] infrun_async: enable=1
-	  [infrun] attach_command: immediately after attach:
-	  [infrun] attach_command:   thread 26253.26253.0, executing = 1, resumed = 0, state = RUNNING
-	  [infrun] clear_proceed_status_thread: 26253.26253.0
-	  [infrun] reset: reason=attaching
-	  [infrun] maybe_set_commit_resumed_all_targets: not requesting commit-resumed for target native, no resumed threads
-	  [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target extended-remote
-	  [infrun] fetch_inferior_event: enter
-	    [infrun] scoped_disable_commit_resumed: reason=handling event
-	    [infrun] do_target_wait: Found 2 inferiors, starting at #1
-	    [infrun] random_pending_event_thread: None found.
-	    [infrun] print_target_wait_results: target_wait (-1.0.0 [Thread 0], status) =
-	    [infrun] print_target_wait_results:   26253.26253.0 [Thread 26253],
-	    [infrun] print_target_wait_results:   status->kind = STOPPED, sig = GDB_SIGNAL_0
-	    [infrun] handle_inferior_event: status->kind = STOPPED, sig = GDB_SIGNAL_0
-	    [infrun] start_step_over: enter
-	      [infrun] start_step_over: stealing global queue of threads to step, length = 0
-	      [infrun] operator(): step-over queue now empty
-	    [infrun] start_step_over: exit
-	    [infrun] context_switch: Switching context from 0.0.0 to 26253.26253.0
-	    [infrun] handle_signal_stop: stop_pc=0x7f849d8cf151
-	    [infrun] stop_waiting: stop_waiting
-	    [infrun] stop_all_threads: starting
-	    [infrun] stop_all_threads: pass=0, iterations=0
-	  [New inferior 3]
-	  Reading /tmp/a.out from remote target...
-	  warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
-	  Reading /tmp/a.out from remote target...
-	  Reading symbols from target:/tmp/a.out...
-	  [New Thread 26253]
-	    [infrun] stop_all_threads:   4723.4723.0 not executing
-	    [infrun] stop_all_threads:   26253.26253.0 not executing
-	    [infrun] stop_all_threads:   42000.26253.0 executing, need stop
-	    [infrun] print_target_wait_results: target_wait (-1.0.0 [Thread 0], status) =
-	    [infrun] print_target_wait_results:   -1.0.0 [Thread 0],
-	    [infrun] print_target_wait_results:   status->kind = IGNORE
-	    [infrun] print_target_wait_results: target_wait (-1.0.0 [Thread 0], status) =
-	    [infrun] print_target_wait_results:   -1.0.0 [Thread 0],
-	    [infrun] print_target_wait_results:   status->kind = IGNORE
-
-	GDB tried to stop Thread 42000.26253.0, which does not exist, and we
-	are waiting for a stop event that will never happen.  The PID in
-	'42000.26253.0', namely 42000, is the PID of magic_null_ptid.
-	It comes from gdb/remote.c:read_ptid:
-
-	  /* Since the stub is not sending a process id, then default to
-	     what's in inferior_ptid, unless it's null at this point.  If so,
-	     then since there's no way to know the pid of the reported
-	     threads, use the magic number.  */
-	  if (inferior_ptid == null_ptid)
-	    pid = magic_null_ptid.pid ();
-	  else
-	    pid = inferior_ptid.pid ();
-
-	  if (obuf)
-	    *obuf = pp;
-	  return ptid_t (pid, tid);
-
-	Because multi-process was turned off, GDB did not parse an explicitly
-	specified PID.  Furthermore, inferior_ptid == null_ptid, and
-	eventually GDB picked the PID from magic_null_ptid.
-
-	If target-non-stop is not turned on at the beginning, the same bug
-	reveals itself as a duplicated thread as shown below.
-
-	  # Same setup as above, without 'maint set target-non-stop on'.
-	  ...
-	  (gdb) attach 26253
-	  Attaching to Remote target
-	  Attached; pid = 26253
-	  [New inferior 3]
-	  ...
-	  [New Thread 26253]
-	  ...
-	  (gdb) info threads
-	    Id   Target Id             Frame
-	    1.1  process 13517 "a.out" main () at test.c:3
-	  * 2.1  Thread 26253 "a.out"  0x00007f12750c5151 in read () from target:/lib/x86_64-linux-gnu/libc.so.6
-	    3.1  Thread 26253 "a.out"  Remote 'g' packet reply is too long (expected 560 bytes, got 2496 bytes): 00feffffffffffff000a3a75127f000051510c75127f0000000400000000000060d24ef6af5500000000000000000000680d000000000000b85b31e3fc7f0000c0283a75127f000000e55b75127f000010d04ef6af550000460200000000000060c73975127f0000a0d23975127f0000000a3a75127f0000000000000000000051510c75127f000046020000330000002b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f03000000000000ffff0000000000000000000000000000000000000000000080143a75127f000080143a75127f000040143a75127f000040143a75127f00007d0000007e0000007f00000080000000300c3a75127f0000300c3a75127f00000e000000000000000e0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0400000004000000040000000400000020143a75127f000020143a75127f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801f0000000000000000000000e55b75127f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-	  (gdb)
-
-	Fix the problem by preferring current_inferior()'s pid instead of
-	magic_null_ptid.
-
-	Regression-tested on X86-64 Linux.
-
-2022-03-29  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix test failure when building against readline v7
-	The test added in the commit:
-
-	  commit a6b413d24ccc5d76179bab866834e11fd6fec294
-	  Date:   Fri Mar 11 14:44:03 2022 +0000
-
-	      gdb: work around prompt corruption caused by bracketed-paste-mode
-
-	Was not written with readline 7 in mind, only readline 8+.  Between
-	readline 7 and 8 the escape sequence used to disable bracketed paste
-	mode changed, an additional '\r' character was added to the end.  In
-	fact, it was the addition of this '\r' character that triggered the
-	issue for which the above commit is part of the solution.
-
-	Anyway, the test tries to spot the case where the output from GDB is
-	not perfect, but does have the above work around applied.  However,
-	the pattern in the test assumes that the problematic '\r' will be
-	present, and this is only true for readline 8+.  With readline 7 the
-	test was failing.
-
-	In this commit I generalise the pattern a little so that the test will
-	still KFAIL with readline 7.
-
-	It's a little unfortunate that the test is KFAILing with readline 7,
-	as without the problematic '\r' there's actually no reason that GDB
-	couldn't "do the right thing" in this case, in which case, the test
-	would PASS, but that would require changes within GDB itself.
-
-	My preference then is that initially we patch the test to get it
-	KFAILing, then in a separate commit I can modify GDB so that it can
-	PASS with readline 7.
-
-2022-03-29  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: fix copy & paste error in gdb.python/py-format-address.exp
-	The test gdb.python/py-format-address.exp, added in commit:
-
-	  commit 25209e2c6979c3838e14e099f0333609810db280
-	  Date:   Sat Oct 23 09:59:25 2021 +0100
-
-	      gdb/python: add gdb.format_address function
-
-	included 3 copy & paste errors where the wrong address was used in the
-	expected output patterns.
-
-	The test compiles two almost identical test binaries (one function
-	changes its name, that's the only difference), two inferiors are
-	created, each inferior using one of the test binaries.
-
-	We then take the address of the name changing function in both
-	inferiors ('foo' in inferior 1 and 'bar' in inferior 2) and the tests
-	are carried out using these addresses.
-
-	What we're checking for is that symbols 'foo' and 'bar' show up in the
-	correct inferior, and that (as this test is for a Python API feature),
-	the user can have one inferior selected, but ask about the other
-	inferior, and see the correct symbol in the result.
-
-	The hope is that the two binaries will be laid out identically by the
-	compiler, and that 'foo' and 'bar' will be at the same address.  This
-	is fine, unless the executable is compiled as PIE (position
-	independent executable), in which case there is a problem.
-
-	The problem is that though inferior 1 is set running, the inferior 2
-	never is.  If the executables are compiled as PIE, then the address in
-	the inferior 2 will not have been resolved, while the address in the
-	inferior 1 will have been, and so the two addresses we use in the
-	tests will be different.
-
-	This issue was reported here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186911.html
-
-	The first part of the fix is to use the correct address variable in
-	the expected output patterns, with this change the tests pass even
-	when the executables are compiled as PIE.
-
-	A second part of this fix is to pass the 'nopie' option when we
-	compile the tests, this should ensure that the address obtained in
-	inferior 2 is the same as the address from inferior 1, which makes the
-	test more useful.
-
-2022-03-29  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: fix use after free of frame_info causing spurious notifications
-	In commit:
-
-	  commit a2757c4ed693cef4ecc4dcdcb2518353eb6b3c3f
-	  Date:   Wed Mar 16 15:08:22 2022 +0000
-
-	      gdb/mi: consistently notify user when GDB/MI client uses -thread-select
-
-	Changes were made to GDB to address some inconsistencies in when
-	notifications are sent from a MI terminal to a CLI terminal (when
-	multiple terminals are in use, see new-ui command).
-
-	Unfortunately, in order to track when the currently selected frame has
-	changed, that commit grabs a frame_info pointer before and after an MI
-	command has executed, and compares the pointers to see if the frame
-	has changed.
-
-	This is not safe.
-
-	If the frame cache is deleted for any reason then the frame_info
-	pointer captured before the command started, is no longer valid, and
-	any comparisons based on that pointer are undefined.
-
-	This was leading to random test failures for some folk, see:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186867.html
-
-	This commit changes GDB so we no longer hold frame_info pointers, but
-	instead store the frame_id and frame_level, this is safe even when the
-	frame cache is flushed.
-
-2022-03-29  Jan Beulich  <jbeulich@suse.com>
-
-	bfd/Dwarf2: gas doesn't mangle names
-	Include the language identifier emitted by gas in the set of ones where
-	no mangled names are expected. Even if there could be "hand-mangled"
-	names, gas doesn't emit DW_AT_linkage_name in the first place.
-
-	bfd/Dwarf2: make find-nearest-line returned function name consistent
-	Prior to entering the enclosing "else if()" the earlier associated if()
-	checks function->is_linkage and, if set, uses function->name. The
-	comment in patch context precedes (and explains) the setting
-	function->is_linkage. Yet with the flag set, we should then also return
-	the function name, just like said earlier if() would do when we came
-	here a 2nd time for the same "addr". And indeed passing the same address
-	twice on addr2line's command line would resolve the function for the 2nd
-	instance, but not for the 1st (if this code path is taken). (This,
-	obviously, is particularly relevant when there's no ELF symbol table in
-	the first place, like would be the case - naturally - in PE/COFF
-	binaries, for example.)
-
-	gas/Dwarf: special-case .linefile only for macros
-	Restrict the PR gas/16908 workaround to just macros, matching the
-	original intention as well as the comment there. For constructs like
-	.irp or .rept the reasoning doesn't apply, as there's no separate
-	"invocation" point which may be of interest to record (for, as said
-	there, short macros).
-
-2022-03-29  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: correct FCVT.Q.L[U]
-	While the spec isn't explicit about this, it pointing out the similarity
-	with the D extension ought to extend to the ignoring of a meaningless
-	rounding mode: "Note FCVT.D.W[U] always produces an exact result and is
-	unaffected by rounding mode." Hence the chosen encodings also ought to
-	match.
-
-	Note that to avoid breaking existing code the forms with a 3rd operand
-	are not removed, which means there continues to be a difference to
-	FCVT.D.W[U].
-
-2022-03-29  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: add arch/.gdbinit stub scripts
-	Make it easy to load the common gdbinit script even when running in
-	the arch/ subdir instead of the top-level sim dir.
-
-2022-03-29  Alan Modra  <amodra@gmail.com>
-
-	asan: heap buffer overflow in pa_chk_field_selector
-	The buffer overflow showed up running the gas "all macro" test.
-
-		PR 29005
-		* config/tc-hppa.c (pa_chk_field_selector): Don't read past end
-		of line.
-
-2022-03-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-28  Tom Tromey  <tom@tromey.com>
-
-	Add Rust parser check for end of expression
-	I noticed that "print 5," passed in Rust -- the parser wasn't checking
-	that the entire input was used.  This patch fixes the problem.  This
-	in turn pointed out another bug in the parser, namely that it didn't
-	lex the next token after handling a string token.  This is also fixed
-	here.
-
-2022-03-28  Tom Tromey  <tom@tromey.com>
-
-	Switch gdb_stdlog to use timestamped_file
-	Currently, timestamps for logging are done by looking for the use of
-	gdb_stdlog in vfprintf_unfiltered.  This seems potentially buggy, in
-	that during logging or other redirects (like execute_fn_to_ui_file) we
-	might have gdb_stdout==gdb_stdlog and so, conceivably, wind up with
-	timestamps in a log when they were not desired.
-
-	It seems better, instead, for timestamps to be a property of the
-	ui_file itself.
-
-	This patch changes gdb to use the new timestamped_file for gdb_stdlog
-	where appropriate, and removes the special case from
-	vfprintf_unfiltered.
-
-	Note that this may somewhat change the output in some cases -- in
-	particular, when going through execute_fn_to_ui_file (or the _string
-	variant), timestamps won't be emitted.  This could be fixed in those
-	functions, but it wasn't clear to me whether this is really desirable.
-
-	Note also that this changes the TUI to send gdb_stdlog to gdb_stderr.
-	I imagine that the previous use of gdb_stdout here was inadvertent.
-	(And in any case it probably doesn't matter.)
-
-2022-03-28  Tom Tromey  <tom@tromey.com>
-
-	Add new timestamped_file class
-	This adds a "timestamped_file" subclass of ui_file.  This class adds a
-	timestamp to its output when appropriate.  That is, it follows the
-	rule already used in vfprintf_unfiltered of adding a timestamp at most
-	once per write.
-
-	The new class is not yet used.
-
-2022-03-28  Tom Tromey  <tom@tromey.com>
-
-	Use unique_ptr in CLI logging code
-	This changes the CLI logging code to avoid manual memory management
-	(to the extent possible) by using unique_ptr in a couple of spots.
-	This will come in handy in a later patch.
-
-2022-03-28  Tom Tromey  <tom@tromey.com>
-
-	Simplify the CLI set_logging logic
-	The CLI's set_logging logic seemed unnecessarily complicated to me.
-	This patch simplifies it, with an eye toward changing it to use RAII
-	objects in a subsequent patch.
-
-	I did not touch the corresponding MI code.  That code seems incorrect
-	(nothing ever uses raw_stdlog, and nothing ever sets
-	saved_raw_stdlog).  I didn't attempt to fix this, because I question
-	whether this is even useful for MI.
-
-2022-03-28  Tom Tromey  <tromey@adacore.com>
-
-	Handle multiple addresses in call_site_target
-	A large customer program has a function that is partitioned into hot
-	and cold parts.  A variable in a callee of this function is described
-	using DW_OP_GNU_entry_value, but gdb gets confused when trying to find
-	the caller.  I tracked this down to dwarf2_get_pc_bounds interpreting
-	the function's changes so that the returned low PC is the "wrong"
-	function.
-
-	Intead, when processing DW_TAG_call_site, the low PC of each range in
-	DW_AT_ranges should be preserved in the call_site_target.  This fixes
-	the variable lookup in the test case I have.
-
-	I didn't write a standalone test for this as it seemed excessively
-	complicated.
-
-2022-03-28  Tom Tromey  <tromey@adacore.com>
-
-	Change call_site_target to iterate over addresses
-	In order to handle the case where a call site target might refer to
-	multiple addresses, we change the code to use a callback style.  Any
-	spot using call_site_target::address now passes in a callback function
-	that may be called multiple times.
-
-2022-03-28  Tom Tromey  <tromey@adacore.com>
-
-	Change call_site_find_chain_1 to work recursively
-	call_site_find_chain_1 has a comment claiming that recursive calls
-	would be too expensive.  However, I doubt this is so expensive; and
-	furthermore the explicit state management approach here is difficult
-	both to understand and to modify.  This patch changes this code to use
-	explicit recursion, so that a subsequent patch can generalize this
-	code without undue trauma.
-
-	Additionally, I think this patch detects a latent bug in the recursion
-	code.  (It's hard for me to be completely certain.)  The bug is that
-	when a new target_call_site is entered, the code does:
-
-		  if (target_call_site)
-		    {
-		      if (addr_hash.insert (target_call_site->pc ()).second)
-			{
-			  /* Successfully entered TARGET_CALL_SITE.  */
-
-			  chain.push_back (target_call_site);
-			  break;
-			}
-		    }
-
-	Here, if entering the target_call_site fails, then any tail_call_next
-	elements in this call site are not visited.  However, if this code
-	does happen to enter a call site, then the tail_call_next elements
-	will be visited during backtracking.  This applies when doing the
-	backtracking as well -- it will only continue through a given chain as
-	long as each element in the chain can successfully be visited.
-
-	I'd appreciate some review of this.  If this behavior is intentional,
-	it can be added to the new implementation.
-
-2022-03-28  Tom Tromey  <tromey@adacore.com>
-
-	Constify chain_candidate
-	While investigating this bug, I wasn't sure if chain_candidate might
-	update 'chain'.  I changed it to accept a const reference, making it
-	clear that it cannot.  This simplifies the code a tiny bit as well.
-
-	Make call_site_target members private
-	This makes the data members of call_site_target 'private'.  This lets
-	us remove most of its public API.  call_site_to_target_addr is changed
-	to be a method of this type.  This is a preparatory refactoring for
-	the fix at the end of this series.
-
-	Change call_site_target to use custom type and enum
-	call_site_target reuses field_loc_kind and field_location.  However,
-	it has never used the full range of the field_loc_kind enum.  In a
-	subsequent patch, I plan to add a new 'kind' here, so it seemed best
-	to avoid this reuse and instead introduce new types here.
-
-2022-03-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-26  Tom Tromey  <tom@tromey.com>
-
-	Remove an unused declaration from value.h
-	value.h has a declaration of value_print_array_elements that is
-	incorrect.  In C, this would have been an error, but in C++ this is a
-	declaration of an overload that is neither defined nor used.  This
-	patch removes the declaration.
-
-2022-03-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-25  Nick Alcock  <nick.alcock@oracle.com>
-
-	libtool.m4: fix the NM="/nm/over/here -B/option/with/path" case
-	My previous nm patch handled all cases but one -- if the user set NM in
-	the environment to a path which contained an option, libtool's nm
-	detection tries to run nm against a copy of nm with the options in it:
-	e.g. if NM was set to "nm --blargle", and nm was found in /usr/bin, the
-	test would try to run "/usr/bin/nm --blargle /usr/bin/nm --blargle".
-	This is unlikely to be desirable: in this case we should run
-	"/usr/bin/nm --blargle /usr/bin/nm".
-
-	Furthermore, as part of this nm has to detect when the passed-in $NM
-	contains a path, and in that case avoid doing a path search itself.
-	This too was thrown off if an option contained something that looked
-	like a path, e.g. NM="nm -B../prev-gcc"; libtool then tries to run
-	"nm -B../prev-gcc nm" which rarely works well (and indeed it looks
-	to see whether that nm exists, finds it doesn't, and wrongly concludes
-	that nm -p or whatever does not work).
-
-	Fix all of these by clipping all options (defined as everything
-	including and after the first " -") before deciding whether nm
-	contains a path (but not using the clipped value for anything else),
-	and then removing all options from the path-modified nm before
-	looking to see whether that nm existed.
-
-	NM=my-nm now does a path search and runs e.g.
-	  /usr/bin/my-nm -B /usr/bin/my-nm
-
-	NM=/usr/bin/my-nm now avoids a path search and runs e.g.
-	  /usr/bin/my-nm -B /usr/bin/my-nm
-
-	NM="my-nm -p../wombat" now does a path search and runs e.g.
-	  /usr/bin/my-nm -p../wombat -B /usr/bin/my-nm
-
-	NM="../prev-binutils/new-nm -B../prev-gcc" now avoids a path search:
-	  ../prev-binutils/my-nm -B../prev-gcc -B ../prev-binutils/my-nm
-
-	This seems to be all combinations, including those used by GCC bootstrap
-	(which, before this commit, fails to bootstrap when configured
-	--with-build-config=bootstrap-lto, because the lto plugin is now using
-	--export-symbols-regex, which requires libtool to find a working nm,
-	while also using -B../prev-gcc to point at the lto plugin associated
-	with the GCC just built.)
-
-	Regenerate all affected configure scripts.
-
-		* libtool.m4 (LT_PATH_NM): Handle user-specified NM with
-		options, including options containing paths.
-
-2022-03-25  Alan Modra  <amodra@gmail.com>
-
-	Re: gas/Dwarf: improve debug info generation from .irp and alike blocks
-	am33_2.0-linux is a mn10300 target.
-
-		* testsuite/gas/elf/dwarf-5-irp.d: xfail am33.
-
-2022-03-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-24  Aaron Merey  <amerey@redhat.com>
-
-	Remove download size from debuginfod progress messages if unavailable
-	Currently debuginfod progress update messages include the size of
-	each download:
-
-	  Downloading 7.5 MB separate debug info for /lib/libxyz.so.0
-
-	This value originates from the Content-Length HTTP header of the
-	transfer.  However this header is not guaranteed to be present for
-	each download.  This can happen when debuginfod servers compress files
-	on-the-fly at the time of transfer.  In this case gdb wrongly prints
-	"-0.00 MB" as the size.
-
-	This patch removes download sizes from progress messages when they are
-	not available.  It also removes usage of the progress bar until
-	a more thorough reworking of progress updating is implemented. [1]
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-February/185798.html
-
-2022-03-24  Reuben Thomas  <rrt@sc3d.org>
-
-	sim: fix a comment typo in sim-load.c
-	Fix a typo where the documentation refers to a function parameter by the
-	wrong name.
-
-	Change-Id: I99494efe62cd4aa76fb78a0bd5da438d35740ebe
-
-2022-03-24  Reuben Thomas  <rrt@sc3d.org>
-
-	sim: fix “alligned” typos
-	Change-Id: Ifd574e38524dd4f1cf0fc003e0c5c7499abc84a0
-
-2022-03-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: mention dropped L1OM/K1OM support in ld/ as well
-	This amends e961c696dcb2 ("x86: drop L1OM/K1OM support from ld"). Also
-	remove the marker that I mistakenly added in c085ab00c7b2 ("x86: drop
-	L1OM/K1OM support from gas").
-
-2022-03-24  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: remove gdb.python/pretty-print-call-by-hand.exp
-	This test was added without a corresponding fix, with some setup_kfails.
-	However, it results in UNRESOLVED results when GDB is built with ASan.
-
-	  ERROR: GDB process no longer exists
-	  GDB process exited with wait status 1946871 exp7 0 1
-	  UNRESOLVED: gdb.python/pretty-print-call-by-hand.exp: frame print: backtrace test (PRMS gdb/28856)
-
-	Remove the test from the tree, I'll attach it to the Bugzilla bug
-	instead [1].
-
-	[1] https://sourceware.org/bugzilla/show_bug.cgi?id=28856
-
-	Change-Id: Id95d8949fb8742874bd12aeac758aa4d7564d678
-
-2022-03-24  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop L1OM/K1OM support from ld
-	This was only rudimentary support anyway; none of the sub-architecture
-	specific insns were ever supported.
-
-	x86: drop L1OM special case from disassembler
-	There wasn't any real support anyway: None of the sub-architecture
-	specific insns were ever supported.
-
-2022-03-24  Jan Beulich  <jbeulich@suse.com>
-
-	MAINTAINERS: add myself
-	I much appreciate Nick offering this role to me. Nevertheless there's
-	still a lot for me to learn here.
-
-	At this occasion also update my email address in the pre-existing, much
-	more narrow entry.
-
-2022-03-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-23  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: address test failures in gdb.mi/mi-multi-commands.exp
-	The gdb.mi/mi-multi-commands.exp test was added in commit:
-
-	  commit d08cbc5d3203118da5583296e49273cf82378042
-	  Date:   Wed Dec 22 12:57:44 2021 +0000
-
-	      gdb: unbuffer all input streams when not using readline
-
-	And then tweaked in commit:
-
-	  commit 144459531dd68a1287905079aaa131b777a8cc82
-	  Date:   Mon Feb 7 20:35:58 2022 +0000
-
-	      gdb/testsuite: relax pattern in new gdb.mi/mi-multi-commands.exp test
-
-	The second of these commits was intended to address periodic test
-	failures that I was seeing, and this change did fix some problems,
-	but, unfortunately, introduced other issues.
-
-	The problem is that the test relies on sending two commands to GDB in
-	a single write.  As the characters that make these two commands arrive
-	they are echoed to GDB's console.  However, there is a race between
-	how quickly the characters are echoed and how quickly GDB decides to
-	act on the incoming commands.
-
-	Usually, both commands are echoed in full before GDB acts on the first
-	command, but sometimes this is not the case, and GDB can execute the
-	first command before both commands are fully echoed to the console.
-	In this case, the output of the first command will be mixed in with
-	the echoing of the second command.
-
-	This mixing of the command echoing and the first command output is
-	what was causing failures in the original version of the test.
-
-	The second commit relaxed the expected output pattern a little, but
-	was still susceptible to failures, so this commit further relaxes the
-	pattern.
-
-	Now, we look for the first command output with no regard to what is
-	before, or after the command.  Then we look for the first mi prompt to
-	indicate that the first command has completed.
-
-	I believe that this change should make the test more stable than it
-	was before.
-
-2022-03-23  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: add LIBCTF_WRITE_FOREIGN_ENDIAN debugging option
-	libctf has always handled endianness differences by detecting
-	foreign-endian CTF dicts on the input and endian-flipping them: dicts
-	are always written in native endianness.  This makes endian-awareness
-	very low overhead, but it means that the foreign-endian code paths
-	almost never get routinely tested, since "make check" usually reads in
-	dicts ld has just written out: only a few corrupted-CTF tests are
-	actually in fixed endianness, and even they only test the foreign-
-	endian code paths when you run make check on a big-endian machine.
-	(And the fix is surely not to add more .s-based tests like that, because
-	they are a nightmare to maintain compared to the C-code-based ones.)
-
-	To improve on this, add a new environment variable,
-	LIBCTF_WRITE_FOREIGN_ENDIAN, which causes libctf to unconditionally
-	endian-flip at ctf_write time, so the output is always in the wrong
-	endianness.  This then tests the foreign-endian read paths properly
-	at open time.
-
-	Make this easier by restructuring the writeout code in ctf-serialize.c,
-	which duplicates the maybe-gzip-and-write-out code three times (once
-	for ctf_write_mem, with thresholding, and once each for
-	ctf_compress_write and ctf_write just so those can avoid thresholding
-	and/or compression).  Instead, have the latter two call the former
-	with thresholds of 0 or (size_t) -1, respectively.
-
-	The endian-flipping code itself gains a bit of complexity, because
-	one single endian-flipper (flip_types) was assuming the input to be
-	in foreign-endian form and assuming it could pull things out of the
-	input once they had been flipped and make sense of them. At the
-	cost of a few lines of duplicated initializations, teach it to
-	read before flipping if we're flipping to foreign-endianness instead
-	of away from it.
-
-	libctf/
-		* ctf-impl.h (ctf_flip_header): No longer static.
-		(ctf_flip): Likewise.
-		* ctf-open.c (flip_header): Rename to...
-		(ctf_flip_header): ... this, now it is not private to one file.
-		(flip_ctf): Rename...
-		(ctf_flip): ... this too.  Add FOREIGN_ENDIAN arg.
-		(flip_types): Likewise.  Use it.
-		(ctf_bufopen_internal): Adjust calls.
-		* ctf-serialize.c (ctf_write_mem): Add flip_endian path via
-		a newly-allocated bounce buffer.
-		(ctf_compress_write): Move below ctf_write_mem and reimplement
-		in terms of it.
-		(ctf_write): Likewise.
-		(ctf_gzwrite): Note that this obscure writeout function does not
-		support endian-flipping.
-
-2022-03-23  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf, ld: diagnose corrupted CTF header cth_strlen
-	The last section in a CTF dict is the string table, at an offset
-	represented by the cth_stroff header field.  Its length is recorded in
-	the next field, cth_strlen, and the two added together are taken as the
-	size of the CTF dict.  Upon opening a dict, we check that none of the
-	header offsets exceed this size, and we check when uncompressing a
-	compressed dict that the result of the uncompression is the same length:
-	but CTF dicts need not be compressed, and short ones are not.
-	Uncompressed dicts just use the ctf_size without checking it.  This
-	field is thankfully almost unused: it is mostly used when reserializing
-	a dict, which can't be done to dicts read off disk since they're
-	read-only.
-
-	However, when opening an uncompressed foreign-endian dict we have to
-	copy it out of the mmaped region it is stored in so we can endian-
-	swap it, and we use ctf_size when doing that.  When the cth_strlen is
-	corrupt, this can overrun.
-
-	Fix this by checking the ctf_size in all uncompressed cases, just as we
-	already do in the compressed case.  Add a new test.
-
-	This came to light because various corrupted-CTF raw-asm tests had an
-	incorrect cth_strlen: fix all of them so they produce the expected
-	error again.
-
-	libctf/
-		PR libctf/28933
-		* ctf-open.c (ctf_bufopen_internal): Always check uncompressed
-		CTF dict sizes against the section size in case the cth_strlen is
-		corrupt.
-
-	ld/
-		PR libctf/28933
-		* testsuite/ld-ctf/diag-strlen-invalid.*: New test,
-		derived from diag-cttname-invalid.s.
-		* testsuite/ld-ctf/diag-cttname-invalid.s: Fix incorrect cth_strlen.
-		* testsuite/ld-ctf/diag-cttname-null.s: Likewise.
-		* testsuite/ld-ctf/diag-cuname.s: Likewise.
-		* testsuite/ld-ctf/diag-parlabel.s: Likewise.
-		* testsuite/ld-ctf/diag-parname.s: Likewise.
-
-2022-03-23  Nick Alcock  <nick.alcock@oracle.com>
-
-	include, libctf, ld: extend variable section to contain functions too
-	The CTF variable section is an optional (usually-not-present) section in
-	the CTF dict which contains name -> type mappings corresponding to data
-	symbols that are present in the linker input but not in the output
-	symbol table: the idea is that programs that use their own symbol-
-	resolution mechanisms can use this section to look up the types of
-	symbols they have found using their own mechanism.
-
-	Because these removed symbols (mostly static variables, functions, etc)
-	all have names that are unlikely to appear in the ELF symtab and because
-	very few programs have their own symbol-resolution mechanisms, a special
-	linker flag (--ctf-variables) is needed to emit this section.
-
-	Historically, we emitted only removed data symbols into the variable
-	section.  This seemed to make sense at the time, but in hindsight it
-	really doesn't: functions are symbols too, and a C program can look them
-	up just like any other type.  So extend the variable section so that it
-	contains all static function symbols too (if it is emitted at all), with
-	types of kind CTF_K_FUNCTION.
-
-	This is a little fiddly.  We relied on compiler assistance for data
-	symbols: the compiler simply emits all data symbols twice, once into the
-	symtypetab as an indexed symbol and once into the variable section.
-
-	Rather than wait for a suitably adjusted compiler that does the same for
-	function symbols, we can pluck unreported function symbols out of the
-	symtab and add them to the variable section ourselves.  While we're at
-	it, we do the same with data symbols: this is redundant right now
-	because the compiler does it, but it costs very little time and lets the
-	compiler drop this kludge and save a little space in .o files.
-
-	include/
-		* ctf.h: Mention the new things we can see in the variable
-		section.
-
-	ld/
-		* testsuite/ld-ctf/data-func-conflicted-vars.d: New test.
-
-	libctf/
-		* ctf-link.c (ctf_link_deduplicating_variables): Duplicate
-		symbols into the variable section too.
-		* ctf-serialize.c (symtypetab_delete_nonstatic_vars): Rename
-		to...
-		(symtypetab_delete_nonstatics): ... this.  Check the funchash
-		when pruning redundant variables.
-		(ctf_symtypetab_sect_sizes): Adjust accordingly.
-		* NEWS: Describe this change.
-
-2022-03-23  Nick Alcock  <nick.alcock@oracle.com>
-
-	ld, testsuite: improve CTF-availability test
-	The test for -gctf support in the compiler is used to determine when to
-	run the ld-ctf tests and most of those in libctf.  Unfortunately,
-	because it uses check_compiler_available and compile_one_cc, it will
-	fail whenever the compiler emits anything on stderr, even if it
-	actually does support CTF perfectly well.
-
-	So, instead, ask the compiler to emit assembler output and grep it for
-	references to ".ctf": this is highly unlikely to be present if the
-	compiler does not support CTF.  (This will need adjusting when CTF grows
-	support for non-ELF platforms that don't dot-prepend their section
-	names, but right now the linker doesn't link CTF on any such platforms
-	in any case.)
-
-	With this in place we can do things like run all the libctf tests under
-	leak sanitizers etc even if those spray warnings on simple CTF
-	compilations, rather than being blocked from doing so just when we would
-	most like to.
-
-	ld/
-		* testsuite/lib/ld-lib.exp (check_ctf_available): detect CTF
-		even if a CTF-capable compiler emits warnings.
-
-2022-03-23  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/python: remove Python 2/3 compatibility macros
-	New in this version:
-
-	 - Rebase on master, fix a few more issues that appeared.
-
-	python-internal.h contains a number of macros that helped make the code
-	work with both Python 2 and 3.  Remove them and adjust the code to use
-	the Python 3 functions.
-
-	Change-Id: I99a3d80067fb2d65de4f69f6473ba6ffd16efb2d
-
-2022-03-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/python: remove Python 2 support
-	New in this version:
-
-	 - Add a PY_MAJOR_VERSION check in configure.ac / AC_TRY_LIBPYTHON.  If
-	   the user passes --with-python=python2, this will cause a configure
-	   failure saying that GDB only supports Python 3.
-
-	Support for Python 2 is a maintenance burden for any patches touching
-	Python support.  Among others, the differences between Python 2 and 3
-	string and integer types are subtle.  It requires a lot of effort and
-	thinking to get something that behaves correctly on both.  And that's if
-	the author and reviewer of the patch even remember to test with Python
-	2.
-
-	See this thread for an example:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-December/184260.html
-
-	So, remove Python 2 support.  Update the documentation to state that GDB
-	can be built against Python 3 (as opposed to Python 2 or 3).
-
-	Update all the spots that use:
-
-	 - sys.version_info
-	 - IS_PY3K
-	 - PY_MAJOR_VERSION
-	 - gdb_py_is_py3k
-
-	... to only keep the Python 3 portions and drop the use of some
-	now-removed compatibility macros.
-
-	I did not update the configure script more than just removing the
-	explicit references to Python 2.  We could maybe do more there, like
-	check the Python version and reject it if that version is not
-	supported.  Otherwise (with this patch), things will only fail at
-	compile time, so it won't really be clear to the user that they are
-	trying to use an unsupported Python version.  But I'm a bit lost in the
-	configure code that checks for Python, so I kept that for later.
-
-	Change-Id: I75b0f79c148afbe3c07ac664cfa9cade052c0c62
-
-2022-03-23  Jan Beulich  <jbeulich@suse.com>
-
-	x86: reject relocations involving registers
-	To prevent fatal or even internal errors, add a simple check to
-	i386_validate_fix(), rejecting relocations when their target symbol is
-	an equate of a register (or resolved to reg_section for any other
-	reason).
-
-	x86: improve resolution of register equates
-	Allow transitive (or recursive) equates to work in addition to direct
-	ones. The only requirements are that
-	- the equate being straight of a register, i.e. no expressions involved
-	  (albeit I'm afraid something like "%eax + 0" will be viewed as %eax),
-	- at the point of use there's no forward ref left which cannot be
-	  resolved, yet.
-
-	Revert "PR28977 tc-i386.c internal error in parse_register"
-	This reverts commit 5fac3f02edacfca458f7eeaaaa33a87e26e0e332,
-	which was superceeded / replaced by 4faaa10f3fab.
-
-2022-03-23  Jan Beulich  <jbeulich@suse.com>
-
-	x86: don't attempt to resolve equates and alike from i386_parse_name()
-	PR gas/28977
-
-	Perhaps right from its introduction in 4d1bb7955a8b it was wrong for
-	i386_parse_name() to call parse_register(). This being a hook from the
-	expression parser, it shouldn't be resolving e.g. equated symbols.
-	That's relevant only for all other callers of parse_register().
-
-	To compensate, in Intel syntax mode check_register() needs calling;
-	perhaps not doing so was an oversight right when the function was
-	introduced. This is necessary in particular to force EVEX encoding when
-	VRex registers are used (but of course also to reject bad uses of
-	registers, i.e. fully matching what parse_register() needs it for).
-
-2022-03-23  Luis Machado  <luis.machado@arm.com>
-
-	Update the list of recognized m-profile TAG_CPU_ARCH_*
-	Check 3 additional variants previously not recognized:
-
-	- TAG_CPU_ARCH_V7E_M
-	- TAG_CPU_ARCH_V8M_BASE
-	- TAG_CPU_ARCH_V8M_MAIN
-
-2022-03-23  Jan Beulich  <jbeulich@suse.com>
-
-	gas/Dwarf5: re-use file 0 line string table entry when faking file 0
-	No need to emit the same string a 2nd time for file 1 in this case.
-
-	gas/Dwarf5: adjust .debug_line file 0 checking
-	First of all when a table entry has a NULL filename, the two inner if()s
-	are better done the other way around: The 2nd doesn't depend on what the
-	first does. This then renders redundant half of the conditions of the
-	other if() and clarifies that subsequently only entry 0 is dealt with
-	(indicating that part of the comment was wrong). Finally for there to be
-	a usable name in slot 1, files_in_use needs to be larger than 1 and slot
-	1's (rather than slot 0's) name needs to be non-NULL.
-
-2022-03-23  Jan Beulich  <jbeulich@suse.com>
-
-	gas/Dwarf5: drop dead code
-	Commit 3417bfca676f ("GAS: DWARF-5: Ensure that the 0'th entry in the
-	directory table contains the current... ") added a "dwarf_level < 5"
-	check to out_dir_and_file_list(). This rendered dead that branch of the
-	construct, due to the enclosing if()'s "DWARF2_LINE_VERSION >= 5".
-	Delete that code as well as the corresponding part of the comment.
-
-	While there also drop a redundant "dirs != NULL": "dirs" will always be
-	non-NULL when dirs_in_use is not zero.
-
-2022-03-23  Jan Beulich  <jbeulich@suse.com>
-
-	gas/Dwarf: improve debug info generation from .irp and alike blocks
-	Tying the bumping of the logical line number to reading from the
-	original source file looks wrong: Upon finishing of the processing of an
-	sb the original values will be restored anyway. Yet without bumping the
-	line counter uses of .line inside e.g. an .irp construct won't have the
-	intended effect: Such uses may be necessary to ensure proper debug info
-	is emitted in particular when switching sections inside the .irp body,
-	as dwarf2_gen_line_info() would bail without doing anything when it
-	finds the line number unchanged from what it saw last.
-
-2022-03-23  Jan Beulich  <jbeulich@suse.com>
-
-	ELF32: don't silently truncate relocation addends
-	At least x86-64's x32 sub-mode and RISC-V's 32-bit mode calculate
-	addends as 64-bit values, but store them in signed 32-bit fields when
-	generating the file without encountering any earlier error. When the
-	relocated field is a 64-bit one, the value resulting after processing
-	the relocation record when linking (or the latest when loading) may
-	thus be wrong due to the truncation.
-
-	With the code change in place, one x32 testcase actually triggers the
-	new diagnostic. That one case of too large a (negative) addend is being
-	adjusted alongside the addition of a new testcase to actually trigger
-	the new error. (Note that due to internal BFD behavior the relocation in
-	.data doesn't get processed anymore after the errors in .text.)
-
-	Note that in principle it is possible to express 64-bit relocations in
-	ELF32, but this would require .rel relocations, i.e. with the addend
-	stored in the 64-bit field being relocated. But I guess it would be a
-	lot of effort for little gain to actually support this.
-
-2022-03-23  Jan Beulich  <jbeulich@suse.com>
-
-	gas: retain whitespace between strings
-	Macro arguments may be separated by commas or just whitespace. Macro
-	arguments may also be quoted (where one level of quotes is removed in
-	the course of determining the values for the respective formal
-	parameters). Furthermore this quote removal knows _two_ somewhat odd
-	escaping mechanisms: One, apparently in existence forever, is that a
-	pair of quotes counts as the escaping of a quote, with the pair being
-	transformed to a single quote in the course of quote removal. The other
-	(introduced by c06ae4f232e6) looks more usual on the surface in that it
-	deals with \" sequences, but it _retains_ the escaping \. Hence only the
-	former mechanism is suitable when the value to be used by the macro body
-	is to contain a quote. Yet this results in ambiguity of what "a""b" is
-	intended to mean; elsewhere (e.g. for .ascii) it represents two
-	successive string literals. However, in any event is the above different
-	from "a" "b": I don't think this can be viewed the same as "a""b" when
-	processing macro arguments.
-
-	Change the scrubber to retain such whitespace, by making the processing
-	of strings more similar to that of symbols. And indeed this appears to
-	make sense when taking into account that for quite a while gas has been
-	supporting quoted symbol names.
-
-	Taking a more general view, however, the change doesn't go quite far
-	enough. There are further cases where significant whitespace is removed
-	by the scrubber. The new testcase enumerates a few in its ".if 0"
-	section. I'm afraid the only way that I see to deal with this would be
-	to significantly simplify the scrubber, such that it wouldn't do much
-	more than collapse sequences of unquoted whitespace into a single blank.
-	To be honest problems in this area aren't really surprising when seeing
-	that there's hardly any checking of .macro use throughout the testsuite
-	(and in particular in the [relatively] generic tests under all/).
-
-2022-03-23  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	Only .so files are used in libcollector. Remove the other files.
-		* libcollector/Makefile.am (install-data-local): Remove the *.la
-		and *.a libraries.
-		* libcollector/Makefile.in: Regenerate.
-
-2022-03-23  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: use gdb_attach to fix jit-elf.exp
-	If /proc/sys/kernel/yama/ptrace_scope is 1, when execute the following
-	command without superuser:
-
-	  make check-gdb TESTS="gdb.base/jit-elf.exp"
-
-	we can see the following messages in gdb/testsuite/gdb.log:
-
-	  (gdb) attach 1650108
-	  Attaching to program: /home/yangtiezhu/build/gdb/testsuite/outputs/gdb.base/jit-elf/jit-elf-main, process 1650108
-	  ptrace: Operation not permitted.
-	  (gdb) FAIL: gdb.base/jit-elf.exp: attach: one_jit_test-2: break here 1: attach
-
-	use gdb_attach to fix the above issue, at the same time, the clean_reattach
-	proc should return a value to indicate whether it worked, and the callers
-	should return early as well on failure.
-
-2022-03-23  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: use gdb_attach to fix attach-pie-noexec.exp
-	If /proc/sys/kernel/yama/ptrace_scope is 1, when execute the following
-	command without superuser:
-
-	  make check-gdb TESTS="gdb.base/attach-pie-noexec.exp"
-
-	we can see the following messages in gdb/testsuite/gdb.log:
-
-	  (gdb) attach 6500
-	  Attaching to process 6500
-	  ptrace: Operation not permitted.
-	  (gdb) PASS: gdb.base/attach-pie-noexec.exp: attach
-
-	It is obviously wrong, the expected result should be UNSUPPORTED in such
-	a case.
-
-	With this patch, we can see "Operation not permitted" in the log info,
-	and then we can do the following processes to test:
-	(1) set ptrace_scope as 0
-	    $ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
-	    $ make check-gdb TESTS="gdb.base/attach-pie-noexec.exp"
-	(2) use sudo
-	    $ sudo make check-gdb TESTS="gdb.base/attach-pie-noexec.exp"
-
-2022-03-23  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: add new gdb_attach to check "attach" command
-	This commit adds new gdb_attach to centralize the failure checking of
-	"attach" command. Return 0 if attach failed, otherwise return 1.
-
-2022-03-23  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: remove attach test from can_spawn_for_attach
-	As Pedro Alves said, caching procs should not issue pass/fail [1],
-	this commit removes attach test from can_spawn_for_attach, at the
-	same time, use "verbose -log" instead of "unsupported" to get a
-	trace about why a test run doesn't support spawning for attach.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2022-March/186311.html
-
-2022-03-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	Add support for hardware breakpoints/watchpoints on FreeBSD/Aarch64.
-	This shares aarch64-nat.c and nat/aarch64-hw-point.c with the Linux
-	native target.  Since FreeBSD writes all of the debug registers in one
-	ptrace op, use an unordered_set<> to track the "dirty" state for
-	threads rather than bitmasks of modified registers.
-
-	fbsd-nat: Add a low_prepare_to_resume virtual method.
-	This method can be overridden by architecture-specific targets to
-	perform additional work before a thread is resumed.
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Add a low_delete_thread virtual method.
-	This method can be overridden by architecture-specific targets to
-	perform additional work when a thread is deleted.
-
-	Note that this method is only invoked on systems supporting LWP
-	events, but the pending use case (aarch64 debug registers) is not
-	supported on older kernels that do not support LWP events.
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Add helper routine to fetch siginfo_t for a ptid.
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	aarch64: Add an aarch64_nat_target mixin class.
-	This class includes platform-independent target methods for hardware
-	breakpoints and watchpoints using routines from
-	nat/aarch64-hw-point.c.
-
-	stopped_data_address is not platform-independent since the FAR
-	register holding the address for a breakpoint hit must be fetched in a
-	platform-specific manner.  However, aarch64_stopped_data_address is
-	provided as a helper routine which performs platform-independent
-	validation given the value of the FAR register.
-
-	For tracking the per-process debug register mirror state, use an
-	unordered_map indexed by pid as recently adopted in x86-nat.c rather
-	than a manual linked-list.
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	nat: Split out platform-independent aarch64 debug register support.
-	Move non-Linux-specific support for hardware break/watchpoints from
-	nat/aarch64-linux-hw-point.c to nat/aarch64-hw-point.c.  Changes
-	beyond a simple split of the code are:
-
-	- aarch64_linux_region_ok_for_watchpoint and
-	  aarch64_linux_any_set_debug_regs_state renamed to drop linux_ as
-	  they are not platform specific.
-
-	- Platforms must implement the aarch64_notify_debug_reg_change
-	  function which is invoked from the platform-independent code when a
-	  debug register changes for a given debug register state.  This does
-	  not use the indirection of a 'low' structure as is done for x86.
-
-	- The handling for kernel_supports_any_contiguous_range is not
-	  pristine.  For non-Linux it is simply defined to true.  Some uses of
-	  this could perhaps be implemented as new 'low' routines for the
-	  various places that check it instead?
-
-	- Pass down ptid into aarch64_handle_breakpoint and
-	  aarch64_handle_watchpoint rather than using current_lwp_ptid which
-	  is only defined on Linux.  In addition, pass the ptid on to
-	  aarch64_notify_debug_reg_change instead of the unused state
-	  argument.
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	x86-fbsd-nat: Copy debug register state on fork.
-	Use the FreeBSD native target low_new_fork hook to copy the
-	per-process debug state from the parent to the child on fork.
-
-	fbsd-nat: Add a low_new_fork virtual method.
-	This method can be overridden by architecture-specific targets to
-	perform additional work when a new child process is forked.
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	Add an x86_fbsd_nat_target mixin class for FreeBSD x86 native targets.
-	This class implements debug register support common between the i386
-	and amd64 native targets.
-
-	While here, remove #ifdef's for HAVE_PT_GETDBREGS in FreeBSD-specific
-	code.  The ptrace request has been present on FreeBSD x86
-	architectures since 4.0 (released in March 2000).  The last FreeBSD
-	release without this support is 3.5 released in June 2000.
-
-2022-03-22  John Baldwin  <jhb@FreeBSD.org>
-
-	x86-nat: Add x86_lookup_debug_reg_state.
-	This function returns nullptr if debug register state does not yet
-	exist for a given process rather than creating new state.
-
-	x86-nat: Use an unordered_map to store per-pid debug reg state.
-	This replaces a manual linked list which used O(n) lookup and removal.
-
-	Remove USE_SIGTRAP_SIGINFO condition for FreeBSD/x86 debug regs support.
-	For BSD x86 targets, stopped_by_hw_breakpoint doesn't check siginfo_t
-	but inspects the DR6 register directly via PT_GETDBREGS.
-
-2022-03-22  Tom Tromey  <tom@tromey.com>
-
-	Remove two unused variables
-	I found a couple of spots that declare a symtab_and_line but don't
-	actually use it.  I think this probably isn't detected as unused
-	because it has a constructor.
-
-2022-03-22  Steiner H Gunderson  <steinar+sourceware@gunderson.no>
-
-	Fix return code in _bfd_dwarf2_find_nearest_line().
-		* dwarf2.c (_bfd_dwarf2_find_nearest_line): if a function name is
-		found, but no line number info, then return a result of 2.
-
-2022-03-22  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: add gdb.format_address function
-	Add a new function, gdb.format_address, which is a wrapper around
-	GDB's print_address function.
-
-	This method takes an address, and returns a string with the format:
-
-	  ADDRESS <SYMBOL+OFFSET>
-
-	Where, ADDRESS is the original address, formatted as hexadecimal,
-	SYMBOL is a symbol with an address lower than ADDRESS, and OFFSET is
-	the offset from SYMBOL to ADDRESS in decimal.
-
-	If there's no SYMBOL suitably close to ADDRESS then the
-	<SYMBOL+OFFSET> part is not included.
-
-	This is useful if a user wants to write a Python script that
-	pretty-prints addresses, the user no longer needs to do manual symbol
-	lookup, or worry about correctly formatting addresses.
-
-	Additionally, there are some settings that effect how GDB picks
-	SYMBOL, and whether the file name and line number should be included
-	with the SYMBOL name, the gdb.format_address function ensures that the
-	users Python script also benefits from these settings.
-
-	The gdb.format_address by default selects SYMBOL from the current
-	inferiors program space, and address is formatted using the
-	architecture for the current inferior.  However, a user can also
-	explicitly pass a program space and architecture like this:
-
-	  gdb.format_address(ADDRESS, PROGRAM_SPACE, ARCHITECTURE)
-
-	In order to format an address for a different inferior.
-
-	Notes on the implementation:
-
-	In py-arch.c I extended arch_object_to_gdbarch to add an assertion for
-	the type of the PyObject being worked on.  Prior to this commit all
-	uses of arch_object_to_gdbarch were guaranteed to pass this function a
-	gdb.Architecture object, but, with this commit, this might not be the
-	case.
-
-	So, with this commit I've made it a requirement that the PyObject be a
-	gdb.Architecture, and this is checked with the assert.  And in order
-	that callers from other files can check if they have a
-	gdb.Architecture object, I've added the new function
-	gdbpy_is_architecture.
-
-	In py-progspace.c I've added two new function, the first
-	progspace_object_to_program_space, converts a PyObject of type
-	gdb.Progspace to the associated program_space pointer, and
-	gdbpy_is_progspace checks if a PyObject is a gdb.Progspace or not.
-
-2022-03-22  Luis Machado  <luis.machado@arm.com>
-
-	Fix some stale header names from dwarf files
-	Some of these references were not updated when they were moved to a separate
-	directory.
-
-2022-03-22  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	Install gprofng libraries under $(pkglibdir)
-	gprofng/ChangeLog
-	2022-03-21  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	        PR gprofng/28972
-		* gprofng/libcollector/Makefile.am: Rename lib_LTLIBRARIES to
-		pkglib_LTLIBRARIES. Add install-data-local.
-		* gprofng/src/Makefile.am: Likewise.
-		* gprofng/src/envsets.cc (putenv_libcollector_ld_misc): New location of
-		the gprofng libraries.
-		* gprofng/configure.ac: Removed an unused GPROFNG_LIBDIR.
-		* gprofng/Makefile.am: Removed an unused GPROFNG_LIBDIR.  Add
-		install-data-local.
-		* gprofng/configure: Regenerate.
-		* gprofng/Makefile.in: Likewise.
-		* gprofng/doc/Makefile.in: Likewise.
-		* gprofng/gp-display-htmllibcollector/Makefile.in: Likewise.
-		* gprofng/libcollector/Makefile.in: Likewise.
-		* gprofng/src/Makefile.in: Likewise.
-
-2022-03-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-21  Roland McGrath  <mcgrathr@google.com>
-
-	gdb: Add missing #include in solib.h
-	The gdb_bfd_ref_ptr type is used in solib.h declarations.
-
-2022-03-21  Aaron Merey  <amerey@redhat.com>
-
-	PR gdb/27570: missing support for debuginfod in core_target::build_file_mappings
-	Add debuginfod support to core_target::build_file_mappings and
-	locate_exec_from_corefile_build_id to enable the downloading of
-	missing executables and shared libraries referenced in core files.
-
-	Also add debuginfod support to solib_map_sections so that previously
-	downloaded shared libraries can be retrieved from the local debuginfod
-	cache.
-
-	When core file shared libraries are found locally, verify that their
-	build-ids match the corresponding build-ids found in the core file.
-	If there is a mismatch, attempt to query debuginfod for the correct
-	build and print a warning if unsuccessful:
-
-	  warning: Build-id of /lib64/libc.so.6 does not match core file.
-
-	Also disable debuginfod when gcore invokes gdb.  Debuginfo is not
-	needed for core file generation so debuginfod queries will slow down
-	gcore unnecessarily.
-
-2022-03-21  Aaron Merey  <amerey@redhat.com>
-
-	gdb: Add soname to build-id mapping for core files
-	Since commit aa2d5a422 gdb has been able to read executable and shared
-	library build-ids within core files.
-
-	Expand this functionality so that each core file bfd maintains a map of
-	soname to build-id for each shared library referenced in the core file.
-
-	This feature may be used to verify that gdb has found the correct shared
-	libraries for core files and to facilitate downloading shared libaries via
-	debuginfod.
-
-2022-03-21  Pedro Alves  <pedro@palves.net>
-
-	Watchpoint followed by catchpoint misreports watchpoint (PR gdb/28621)
-	If GDB reports a watchpoint hit, and then the next event is not
-	TARGET_WAITKIND_STOPPED, but instead some event for which there's a
-	catchpoint, such that GDB calls bpstat_stop_status, GDB mistakenly
-	thinks the watchpoint triggered.  Vis, using foll-fork.c:
-
-	  (gdb) awatch v
-	  Hardware access (read/write) watchpoint 2: v
-	  (gdb) catch fork
-	  Catchpoint 3 (fork)
-	  (gdb) c
-	  Continuing.
-
-	  Hardware access (read/write) watchpoint 2: v
-
-	  Old value = 0
-	  New value = 5
-	  main () at gdb.base/foll-fork.c:16
-	  16        pid = fork ();
-	  (gdb)
-	  Continuing.
-
-	  Hardware access (read/write) watchpoint 2: v      <<<<
-	                                                    <<<< these lines are spurious
-	  Value = 5                                         <<<<
-
-	  Catchpoint 3 (forked process 1712369), arch_fork (ctid=0x7ffff7fa4810) at arch-fork.h:49
-	  49      arch-fork.h: No such file or directory.
-	  (gdb)
-
-	The problem is that when we handle the fork event, nothing called
-	watchpoints_triggered before calling bpstat_stop_status.  Thus, each
-	watchpoint's watchpoint_triggered field was still set to
-	watch_triggered_yes from the previous (real) watchpoint stop.
-	watchpoint_triggered is only current called in the handle_signal_stop
-	path, when handling TARGET_WAITKIND_STOPPED.
-
-	This fixes it by adding watchpoint_triggered calls in the other events
-	paths that call bpstat_stop_status.  But instead of adding them
-	explicitly, it adds a new function bpstat_stop_status_nowatch that
-	wraps bpstat_stop_status and calls watchpoint_triggered, and then
-	replaces most calls to bpstat_stop_status with calls to
-	bpstat_stop_status_nowatch.
-
-	This required constifying watchpoints_triggered.
-
-	New test included, which fails without the fix.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28621
-
-	Change-Id: I282b38c2eee428d25319af3bc842f9feafed461c
-
-2022-03-21  Pedro Alves  <pedro@palves.net>
-
-	gdbserver: Fixup previous patch
-	The previous prepare_resume_reply change missed updating the 'buf'
-	reference that overwrites the 'T', so if 'buf' was advanced, we'd
-	still overwrite the wrong character.  This fixes it.
-
-	Change-Id: Ia8ce433366b85af4e268c1c49e7b447da3130a4d
-
-2022-03-21  Pedro Alves  <pedro@palves.net>
-
-	gdbserver: Fix incorrect assertion
-	While playing with adding a new event kind, I noticed that
-	prepare_resume_reply TARGET_WAITKIND_FORKED, etc. advance 'buf', so if
-	we force-disable the T packet, we'd fail the *buf == 'T' assertion.
-
-	Fix it by tweaking the assertion to always look at the beginning of
-	the buffer.
-
-	Change-Id: I8c38e32353db115edcde418b3b1e8ba12343c22b
-
-2022-03-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: re-generate config.in
-	I'm getting this diff when running `autoreconf -vf`.
-
-	Change-Id: Id5f009d0f0481935c1ee9df5332cb4bf45fbd32d
-
-2022-03-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/x86: handle stap probe arguments in xmm registers
-	On x86 machines with xmm register, and with recent versions of
-	systemtap (and gcc?), it can occur that stap probe arguments will be
-	placed into xmm registers.
-
-	I notice this happening on a current Fedora Rawhide install with the
-	following package versions installed:
-
-	  $ rpm -q glibc systemtap gcc
-	  glibc-2.35.9000-10.fc37.x86_64
-	  systemtap-4.7~pre16468670g9f253544-1.fc37.x86_64
-	  gcc-12.0.1-0.12.fc37.x86_64
-
-	If I check the probe data in libc, I see this:
-
-	  $ readelf -n /lib64/libc.so.6
-	  ...
-	  stapsdt              0x0000004d       NT_STAPSDT (SystemTap probe descriptors)
-	    Provider: libc
-	    Name: pthread_start
-	    Location: 0x0000000000090ac3, Base: 0x00000000001c65c4, Semaphore: 0x0000000000000000
-	    Arguments: 8@%xmm1 8@1600(%rbx) 8@1608(%rbx)
-	  stapsdt              0x00000050       NT_STAPSDT (SystemTap probe descriptors)
-	    Provider: libc
-	    Name: pthread_create
-	    Location: 0x00000000000912f1, Base: 0x00000000001c65c4, Semaphore: 0x0000000000000000
-	    Arguments: 8@%xmm1 8@%r13 8@8(%rsp) 8@16(%rsp)
-	  ...
-
-	Notice that for both of these probes, the first argument is a uint64_t
-	stored in the xmm1 register.
-
-	Unfortunately, if I try to use this probe within GDB, then I can't
-	view the first argument.  Here's an example session:
-
-	  $ gdb $(which gdb)
-	  (gdb) start
-	  ...
-	  (gdb) info probes stap  libc pthread_create
-	  ...
-	  (gdb) break *0x00007ffff729e2f1       # Use address of probe.
-	  (gdb) continue
-	  ...
-	  (gdb) p $_probe_arg0
-	  Invalid cast.
-
-	What's going wrong?  If I re-run my session, but this time use 'set
-	debug stap-expression 1', this is what I see:
-
-	  (gdb) set debug stap-expression 1
-	  (gdb) p $_probe_arg0
-	  Operation: UNOP_CAST
-	   Operation: OP_REGISTER
-	    String: xmm1
-	   Type: uint64_t
-	  Operation: UNOP_CAST
-	   Operation: OP_REGISTER
-	    String: r13
-	   Type: uint64_t
-	  Operation: UNOP_CAST
-	   Operation: UNOP_IND
-	    Operation: UNOP_CAST
-	     Operation: BINOP_ADD
-	      Operation: OP_LONG
-	       Type: long
-	       Constant: 0x0000000000000008
-	      Operation: OP_REGISTER
-	       String: rsp
-	     Type: uint64_t *
-	   Type: uint64_t
-	  Operation: UNOP_CAST
-	   Operation: UNOP_IND
-	    Operation: UNOP_CAST
-	     Operation: BINOP_ADD
-	      Operation: OP_LONG
-	       Type: long
-	       Constant: 0x0000000000000010
-	      Operation: OP_REGISTER
-	       String: rsp
-	     Type: uint64_t *
-	   Type: uint64_t
-	  Invalid cast.
-	  (gdb)
-
-	The important bit is this:
-
-	  Operation: UNOP_CAST
-	   Operation: OP_REGISTER
-	    String: xmm1
-	   Type: uint64_t
-
-	Which is where we cast the xmm1 register to uint64_t.  And the final
-	piece of the puzzle is:
-
-	  (gdb) ptype $xmm1
-	  type = union vec128 {
-	      v8bf16 v8_bfloat16;
-	      v4f v4_float;
-	      v2d v2_double;
-	      v16i8 v16_int8;
-	      v8i16 v8_int16;
-	      v4i32 v4_int32;
-	      v2i64 v2_int64;
-	      uint128_t uint128;
-	  }
-
-	So, we are attempting to cast a union type to a scalar type, which is
-	not supporting in C/C++, and as a consequence GDB's expression
-	evaluator throws an error when we attempt to do this.
-
-	The first approach I considered for solving this problem was to try
-	and make use of gdbarch_stap_adjust_register.  We already have a
-	gdbarch method (gdbarch_stap_adjust_register) that allows us to tweak
-	the name of the register that we access.  Currently only x86
-	architectures use this to transform things like ax to eax in some
-	cases.
-
-	I wondered, what if we change gdbarch_stap_adjust_register to do more
-	than just change the register names?  What if this method instead
-	became gdbarch_stap_read_register.  This new method would return a
-	operation_up, and would take the register name, and the type we are
-	trying to read from the register, and return the operation that
-	actually reads the register.
-
-	The default implementation of this method would just use
-	user_reg_map_name_to_regnum, and then create a register_operation,
-	like we already do in stap_parse_register_operand.  But, for x86
-	architectures this method would fist possibly adjust the register
-	name, then do the default action to read the register.  Finally, for
-	x86 this method would spot when we were accessing an xmm register,
-	and, based on the type being pulled from the register, would extract
-	the correct field from the union.
-
-	The benefit of this approach is that it would work with the expression
-	types that GDB currently supports.  The draw back would be that this
-	approach would not be very generic.  We'd need code to handle each
-	sub-field size with an xmm register.  If other architectures started
-	using vector registers for probe arguments, those architectures would
-	have to create their own gdbarch_stap_read_register method.  And
-	finally, the type of the xmm registers comes from the type defined in
-	the target description, there's a risk that GDB might end up
-	hard-coding the names of type sub-fields, then if a target uses a
-	different target description, with different field names for xmm
-	registers, the stap probes would stop working.
-
-	And so, based on all the above draw backs, I rejected this first
-	approach.
-
-	My second plan involves adding a new expression type to GDB called
-	unop_extract_operation.  This new expression takes a value and a type,
-	during evaluation the value contents are fetched, and then a new value
-	is extracted from the value contents (based on type).  This is similar
-	to the following C expression:
-
-	  result_value = *((output_type *) &input_value);
-
-	Obviously we can't actually build this expression in this case, as the
-	input_value is in a register, but hopefully the above makes it clearer
-	what I'm trying to do.
-
-	The benefit of the new expression approach is that this code can be
-	shared across all architectures, and it doesn't care about sub-field
-	names within the union type.
-
-	The draw-backs that I see are potential future problems if arguments
-	are not stored within the least significant bytes of the register.
-	However if/when that becomes an issue we can adapt the
-	gdbarch_stap_read_register approach to allow architectures to control
-	how a value is extracted.
-
-	For testing, I've extended the existing gdb.base/stap-probe.exp test
-	to include a function that tries to force an argument into an xmm
-	register.  Obviously, that will only work on a x86 target, so I've
-	guarded the new function with an appropriate GCC define.  In the exp
-	script we use readelf to check if the probe exists, and is using the
-	xmm register.
-
-	If the probe doesn't exist then the associated tests are skipped.
-
-	If the probe exists, put isn't using the xmm register (which will
-	depend on systemtap/gcc versions), then again, the tests are skipped.
-
-	Otherwise, we can run the test.  I think the cost of running readelf
-	is pretty low, so I don't feel too bad making all the non-xmm targets
-	running this step.
-
-	I found that on a Fedora 35 install, with these packages installed, I
-	was able to run this test and have the probe argument be placed in an
-	xmm register:
-
-	  $ rpm -q systemtap gcc glibc
-	  systemtap-4.6-4.fc35.x86_64
-	  gcc-11.2.1-9.fc35.x86_64
-	  glibc-2.34-7.fc35.x86_64
-
-	Finally, as this patch adds a new operation type, then I need to
-	consider how to generate an agent expression for the new operation
-	type.
-
-	I have kicked the can down the road a bit on this.  In the function
-	stap_parse_register_operand, I only create a unop_extract_operation in
-	the case where the register type is non-scalar, this means that in
-	most cases I don't need to worry about generating an agent expression
-	at all.
-
-	In the xmm register case, when an unop_extract_operation will be
-	created, I have sketched out how the agent expression could be
-	handled, however, this code is currently not reached.  When we try to
-	generate the agent expression to place the xmm register on the stack,
-	GDB hits this error:
-
-	  (gdb) trace -probe-stap test:xmmreg
-	  Tracepoint 1 at 0x401166
-	  (gdb) actions
-	  Enter actions for tracepoint 1, one per line.
-	  End with a line saying just "end".
-	  >collect $_probe_arg0
-	  Value not scalar: cannot be an rvalue.
-
-	This is because GDB doesn't currently support placing non-scalar types
-	on the agent expression evaluation stack.  Solving this is clearly
-	related to the original problem, but feels a bit like a second
-	problem.  I'd like to get feedback on whether my approach to solving
-	the original problem is acceptable or not before I start looking at
-	how to handle xmm registers within agent expressions.
-
-2022-03-21  Steiner H Gunderson  <steinar+sourceware@gunderson.no>
-
-	Reduce O(n2) performance overhead when parsing DWARF unit information.
-		PR 28978
-		* dwarf2.c (scan_unit_for_symbols): When performing second pass,
-		check to see if the function or variable being processed is the
-		same as the previous one.
-
-2022-03-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: don't suppress overflow diagnostics in x32 mode
-	Unlike in 64-bit mode, where values wrap at the 64-bit boundary anyway,
-	there's no wrapping at the 32-bit boundary here, and hence overflow
-	detection shouldn't be suppressed just because rela relocations are
-	going to be used.
-
-	The extra check against NO_RELOC is actually a result of an ilp32 test
-	otherwise failing. But thinking about it, reporting overflows for
-	not-really-relocations (typically because of earlier errors) makes
-	little sense in general. Perhaps this should even be extended to non-
-	64-bit modes.
-
-2022-03-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/testsuite: reformat gdb.python/pretty-print-call-by-hand.py
-	Run black on the file.
-
-	Change-Id: Ifb576137fb7158a0227173f61c1202f0695b3685
-
-2022-03-21  Bruno Larsen  <blarsen@redhat.com>
-
-	[gdb/testsuite] test a function call by hand from pretty printer
-	The test case added here is testing the bug gdb/28856, where calling a
-	function by hand from a pretty printer makes GDB crash. There are 6
-	mechanisms to trigger this crash in the current test, using the commands
-	backtrace, up, down, finish, step and continue. Since the failure happens
-	because of use-after-free (more details below) the tests will always
-	have a chance of passing through sheer luck, but anecdotally they seem
-	to fail all of the time.
-
-	The reason GDB is crashing is a use-after-free problem. The above
-	mentioned functions save a pointer to the current frame's information,
-	then calls the pretty printer, and uses the saved pointer for different
-	reasons, depending on the function. The issue happens because
-	call_function_by_hand needs to reset the obstack to get the current
-	frame, invalidating the saved pointer.
-
-2022-03-21  Pedro Alves  <pedro@palves.net>
-
-	gdb/testsuite: Installed-GDB testing & data-directory
-	In testsuite/README, we suggest that you can run the testsuite against
-	some other GDB binary by using:
-
-	    make check RUNTESTFLAGS=GDB=/usr/bin/gdb
-
-	However, that example isn't fully correct, because with that command
-	line, the testsuite will still pass
-
-	  -data-directory=[pwd]/../data-directory
-
-	to /usr/bin/gdb, like e.g.:
-
-	  ...
-	  builtin_spawn /usr/bin/gdb -nw -nx -data-directory /home/pedro/gdb/build/gdb/testsuite/../data-directory -iex set height 0 -iex set width 0
-	  ...
-
-	while if you're testing an installed GDB (the system GDB being the
-	most usual scenario), then you should normally let it use its own
-	configured directory, not the just-built GDB's data directory.
-
-	This commit improves the status quo with the following two changes:
-
-	 - if the user specifies GDB on the command line, then by default,
-	   don't start GDB with the -data-directory command line option.
-	   I.e., let the tested GDB use its own configured data directory.
-
-	 - let the user override the data directory, via a new
-	   GDB_DATA_DIRECTORY global.  This replaces the existing
-	   BUILD_DATA_DIRECTORY variable in testsuite/lib/gdb.exp, which
-	   wasn't overridable, and was a bit misnamed for the new purpose.
-
-	So after this, the following commands I believe behave intuitively:
-
-	 # Test the non-installed GDB in some build dir:
-
-	    make check \
-	      RUNTESTFLAGS="GDB=/path/to/other/build/gdb \
-	                    GDB_DATA_DIRECTORY=/path/to/other/build/gdb/data-directory"
-
-	 # Test the GDB installed in some prefix:
-
-	    make check \
-	      RUNTESTFLAGS="GDB=/opt/gdb/bin/gdb"
-
-	 # Test the built GDB with some alternative data directory, e.g., the
-	   system GDB's data directory:
-
-	    make check \
-	      RUNTESTFLAGS="GDB_DATA_DIRECTORY=/usr/share/gdb"
-
-	Change-Id: Icdc21c85219155d9564a9900961997e6624b78fb
-
-2022-03-21  Nick Clifton  <nickc@redhat.com>
-
-	z80 assembler: Fix new unexpected overflow warning in v2.37
-		PR 28791
-		* config/tc-z80.c (emit_data_val): Do not warn about overlarge
-		constants generated by bit manipulation operators.
-		* testsuite/gas/z80/pr28791.s: New test source file.
-		* testsuite/gas/z80/pr28791.d: New test driver file.
-
-2022-03-21  Andreas Schwab  <schwab@linux-m68k.org>
-
-	Add support for readline 8.2
-	In readline 8.2 the type of rl_completer_word_break_characters changed to
-	include const.
-
-2022-03-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-20  Andreas Schwab  <schwab@linux-m68k.org>
-
-	RISC-V: Fix misplaced @end table
-	Move the csr-check and arch items inside the table for the .option directive.
-
-2022-03-20  Alan Modra  <amodra@gmail.com>
-
-	PR28979, internal error in demand_empty_rest_of_line
-	The change in read_a_source_file prevents the particular testcase in
-	the PR from triggering the assertion in demand_empty_rest_of_line.
-	I've also removed the assertion.  Nothing much goes wrong with gas if
-	something else triggers it, so it's not worthy of an abort.
-
-	I've also changed my previous patch to ignore_rest_of_line to allow
-	that function to increment input_line_pointer past buffer_limit, like
-	demand_empty_rest_of_line:  The two functions ought to behave the
-	same in that respect.  Finally, demand_empty_rest_of_line gets a
-	little hardening to prevent accesses past buffer_limit plus one.
-
-		PR 28979
-		* read.c (read_a_source_file): Calculate known size for sbuf
-		rather than calling strlen.
-		(demand_empty_rest_of_line): Remove "know" check.  Expand comment.
-		Don't dereference input_line_pointer when past buffer_limit.
-		(ignore_rest_of_line): Allow input_line_pointer to increment to
-		buffer_limit plus one.  Expand comment.
-
-2022-03-20  Joel Brobecker  <brobecker@adacore.com>
-
-	Update gdb/NEWS after GDB 12 branch creation.
-	This commit a new section for the next release branch, and renames
-	the section of the current branch, now that it has been cut.
-
-2022-03-20  Joel Brobecker  <brobecker@adacore.com>
-
-	Bump version to 13.0.50.DATE-git.
-	Now that the GDB 12 branch has been created,
-	this commit bumps the version number in gdb/version.in to
-	13.0.50.DATE-git
-
-	For the record, the GDB 12 branch was created
-	from commit 2be64de603f8b3ae359d2d3fbf5db0e79869f32b.
-
-	Also, as a result of the version bump, the following changes
-	have been made in gdb/testsuite:
-
-		* gdb.base/default.exp: Change $_gdb_major to 13.
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	ld:LoongArch: Add test cases to adapt to LoongArch32 and LoongArch64
-	  ld/testsuite/ld-loongarch-elf
-
-	  *  ld-loongarch-elf.exp:  Test LoongArch32 and LoongArch64 testcases respectively.
-	  *  jmp_op.d: Fix bug in test LoongArch32.
-	  *  disas-jirl-32.d: New test case for LoongArch32.
-	  *  disas-jirl-32.s: New test case for LoongArch32.
-	  *  disas-jirl.d: Skip test case LoongArch32.
-	  *  macro_op_32.d: New test case for LoongArch32.
-	  *  macro_op_32.s: New test case for LoongArch32.
-	  *  macro_op.d: Skip test case LoongArch32.
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	gas:LoongArch: Fix "make check" pr21884 fail in LoongArch32.
-	  gas/config/
-	    * tc-loongarch.c: Add function to select target mach.
-	    * tc-loongarch.h: Define macro TARGET_MACH.
-
-	ld: loongarch: Skip unsupport test cases.
-	  ld/testsuite/ld-elf/
-	    * eh5.d		Skip loongarch64 target.
-	    * pr21884.d		Skip loongarch* targets.
-	    * pr26936.d		Skip loongarch* targets.
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Fix LD check fails.
-	  Some test cases about ifunc.
-
-	  bfd/
-	    * elfnn-loongarch.c
-	    * elfxx-loongarch.h
-
-	   === ld Summary ===
-	  of expected passes             1430
-	  of expected failures           11
-	  of untested testcases          1
-	  of unsupported tests           154
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Update ABI eflag in elf header.
-	  Update LoongArch ABI eflag in elf header.
-	    ilp32s  0x5
-	    ilp32f  0x6
-	    ilp32d  0x7
-	    lp64s   0x1
-	    lp64f   0x2
-	    lp64d   0x3
-
-	  bfd/
-	    * elfnn-loongarch.c Check object flags while ld.
-
-	  gas/
-	    * tc-loongarch.c Write eflag to elf header.
-
-	  include/elf
-	        * loongarch.h Define ABI number.
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	gas:LoongArch: Fix wrong line number in .debug_line
-	  The dwarf2_emit_insn() can create debuginfo of line. But it is called
-	  too late in append_fixp_and_insn. It causes extra offs when debuginfo
-	  of line sets address.
-
-	  gas/config/
-	    * tc-loongarch.c
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	gas:LoongArch: Fix segment error in compilation due to too long symbol name.
-	  Change "char buffer[8192];" into "char *buffer =
-	  (char *) malloc(1000 +  6 * len_str);" in function
-	  loongarch_expand_macro_with_format_map.
-
-	  gas/
-	    * config/tc-loongarch.c
-
-	  include/
-	    * opcode/loongarch.h
-
-	  opcodes/
-	    * loongarch-coder.c
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch: Use functions instead of magic numbers.
-	  Replace the magic numbers in gas(tc-loongarch.c) and
-	  bfd(elfnn-loongarch.c) with the functions defined in
-	  the howto table(elfxx-loongarch.c).
-
-	  gas/
-	    * config/tc-loongarch.c: use functions.
-
-	  bfd/
-	    * elfnn-loongarch.c: use functions.
-	    * elfxx-loongarch.c: define functions.
-	    * elfxx-loongarch.h
-
-2022-03-20  liuzhensong  <liuzhensong@loongson.cn>
-
-	ubsan: loongarch : signed integer shift overflow.
-	   opcodes/
-		* loongarch-coder.c :
-		  int32_t ret = 0;
-		  ret <<= sizeof (ret) * 8 - len;
-		  ret >>= sizeof (ret) * 8 - len;
-		  ...
-		  Avoid ubsan warning.
-
-2022-03-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-19  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/python: remove gdb._mi_commands dict
-	The motivation for this patch is the fact that py-micmd.c doesn't build
-	with Python 2, due to PyDict_GetItemWithError being a Python 3-only
-	function:
-
-	      CXX    python/py-micmd.o
-	    /home/smarchi/src/binutils-gdb/gdb/python/py-micmd.c: In function ‘int micmdpy_uninstall_command(micmdpy_object*)’:
-	    /home/smarchi/src/binutils-gdb/gdb/python/py-micmd.c:430:20: error: ‘PyDict_GetItemWithError’ was not declared in this scope; did you mean ‘PyDict_GetItemString’?
-	      430 |   PyObject *curr = PyDict_GetItemWithError (mi_cmd_dict.get (),
-	          |                    ^~~~~~~~~~~~~~~~~~~~~~~
-	          |                    PyDict_GetItemString
-
-	A first solution to fix this would be to try to replace
-	PyDict_GetItemWithError equivalent Python 2 code.  But I looked at why
-	we are doing this in the first place: it is to maintain the
-	`gdb._mi_commands` Python dictionary that we use as a `name ->
-	gdb.MICommand object` map.  Since the `gdb._mi_commands` dictionary is
-	never actually used in Python, it seems like a lot of trouble to use a
-	Python object for this.
-
-	My first idea was to replace it with a C++ map
-	(std::unordered_map<std::string, gdbpy_ref<micmdpy_object>>).  While
-	implementing this, I realized we don't really need this map at all.  The
-	mi_command_py objects registered in the main MI command table can own
-	their backing micmdpy_object (that's a gdb.MICommand, but seen from the
-	C++ code).  To know whether an mi_command is an mi_command_py, we can
-	use a dynamic cast.  Since there's one less data structure to maintain,
-	there are less chances of messing things up.
-
-	 - Change mi_command_py::m_pyobj to a gdbpy_ref, the mi_command_py is
-	   now what keeps the MICommand alive.
-	 - Set micmdpy_object::mi_command in the constructor of mi_command_py.
-	   If mi_command_py manages setting/clearing that field in
-	   swap_python_object, I think it makes sense that it also takes care of
-	   setting it initially.
-	 - Move a bunch of checks from micmdpy_install_command to
-	   swap_python_object, and make them gdb_asserts.
-	 - In micmdpy_install_command, start by doing an mi_cmd_lookup.  This is
-	   needed to know whether there's a Python MI command already registered
-	   with that name.  But we can already tell if there's a non-Python
-	   command registered with that name.  Return an error if that happens,
-	   rather than waiting for insert_mi_cmd_entry to fail.  Change the
-	   error message to "name is already in use" rather than "may already be
-	   in use", since it's more precise.
-
-	I asked Andrew about the original intent of using a Python dictionary
-	object to hold the command objects.  The reason was to make sure the
-	objects get destroyed when the Python runtime gets finalized, not later.
-	Holding the objects in global C++ data structures and not doing anything
-	more means that the held Python objects will be decref'd after the
-	Python interpreter has been finalized.  That's not desirable.  I tried
-	it and it indeed segfaults.
-
-	Handle this by adding a gdbpy_finalize_micommands function called in
-	finalize_python.  This is the mirror of gdbpy_initialize_micommands
-	called in do_start_initialization.  In there, delete all Python MI
-	commands.  I think it makes sense to do it this way: if it was somehow
-	possible to unload Python support from GDB in the middle of a session
-	we'd want to unregister any Python MI command.  Otherwise, these MI
-	commands would be backed with a stale PyObject or simply nothing.
-
-	Delete tests that were related to `gdb._mi_commands`.
-
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-	Change-Id: I060d5ebc7a096c67487998a8a4ca1e8e56f12cd3
-
-2022-03-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-18  Pedro Alves  <pedro@palves.net>
-
-	Fix crash with stepi, no debug info, and "set debug infrun 1"
-	A stepi in a function without debug info with "set debug infrun 1"
-	crashes GDB since commit c8353d682f69 (gdb/infrun: some extra infrun
-	debug print statements), due to a reference to
-	"tp->current_symtab->filename" when tp->current_symtab is null.
-
-	This commit adds the missing null check.  The output in this case
-	becomes:
-
-	  [infrun] set_step_info: symtab = <null>, line = 0, step_frame_id = {stack=0x7fffffffd980,code=0x0000000000456c30,!special}, step_stack_frame_id = {stack=0x7fffffffd980,code=0x0000000000456c30,!special}
-
-	Change-Id: I5171a9d222bc7e15b9dba2feaba7d55c7acd99f8
-
-2022-03-18  Tom Tromey  <tromey@adacore.com>
-
-	Implement gdbarch_stack_frame_destroyed_p for aarch64
-	The internal AdaCore testsuite has a test that checks that an
-	out-of-scope watchpoint is deleted.  This fails on some aarch64
-	configurations, reporting an extra stop:
-
-	    (gdb) continue
-	    Continuing.
-
-	    Thread 3 hit Watchpoint 2: result
-
-	    Old value = 64
-	    New value = 0
-	    0x0000000040021648 in pck.get_val (seed=0, off_by_one=false) at [...]/pck.adb:13
-	    13	   end Get_Val;
-
-	I believe what is happening here is that the variable is stored at:
-
-	    <efa>   DW_AT_location    : 2 byte block: 91 7c 	(DW_OP_fbreg: -4)
-
-	and the extra stop is reported just before a return, when the ldp
-	instruction is executed:
-
-	   0x0000000040021644 <+204>:	ldp	x29, x30, [sp], #48
-	   0x0000000040021648 <+208>:	ret
-
-	This instruction modifies the frame base calculation, and so the test
-	picks up whatever memory is pointed to in the callee frame.
-
-	Implementing the gdbarch hook gdbarch_stack_frame_destroyed_p fixes
-	this problem.
-
-	As usual with this sort of patch, it has passed internal testing, but
-	I don't have a good way to try it with dejagnu.  So, I don't know
-	whether some existing test covers this.  I suspect there must be one,
-	but it's also worth noting that this test passes for aarch64 in some
-	configurations -- I don't know what causes one to fail and another to
-	succeed.
-
-2022-03-18  Nick Clifton  <nickc@redhat.com>
-
-	Fix Build issues due to patch "gprofng: a new GNU profiler"
-	  Find and fix more places where clock_gettime() and CLOCK_MONOTONIC_RAW are used.
-
-2022-03-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: run black to format some Python files
-	Seems like some leftovers from previous commits.
-
-	Change-Id: I7155ccdf7a4fef83bcb3d60320252c3628efdb83
-
-2022-03-18  Viorel Preoteasa  <viorel.preoteasa@gmail.com>
-
-	Fix ld-arm bug in encoding of blx calls jumping from thumb to arm instructions
-		PR 28924
-		* elf32-arm.c (THM_MAX_FWD_BRANCH_OFFSET): Fix definition.
-		(THM2_MAX_FWD_BRANCH_OFFSET): Likewise.
-
-2022-03-18  Jan Beulich  <jbeulich@suse.com>
-
-	x86: also fold remaining multi-vector-size shift insns
-	By slightly relaxing the checking in operand_type_register_match() we
-	can fold the vector shift insns with an XMM source as well. While
-	strictly speaking an overlap in just one size (see the code comment) is
-	not enough (both operands could have multiple sizes with just a single
-	common one), this is good enough for all templates we have, or which
-	could sensibly / usefully appear (within the scope of the present
-	operand matching model).
-
-	Tightening this a little would be possible, but would require broadcast
-	related information to be passed into the function.
-
-2022-03-18  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop stray CheckRegSize from VEXTRACT{F,I}32X4
-	They have only a single operand allowing multiple sizes, hence there are
-	no pairs of operands to check for consistent size.
-
-	x86: fold certain AVX2 templates into their AVX counterparts
-	Like for AVX512VL we can make the handling of operand sizes a little
-	more flexible to allow reducing the number of templates we have.
-
-2022-03-18  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Cache management instructions
-	This commit adds 'Zicbom' / 'Zicboz' instructions.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add handling for
-		new instruction classes.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_CBO_CLEAN, MASK_CBO_CLEAN,
-		MATCH_CBO_FLUSH, MASK_CBO_FLUSH, MATCH_CBO_INVAL,
-		MASK_CBO_INVAL, MATCH_CBO_ZERO, MASK_CBO_ZERO): New macros.
-		* opcode/riscv.h (enum riscv_insn_class): Add new instruction
-		classes INSN_CLASS_ZICBOM and INSN_CLASS_ZICBOZ.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_opcodes): Add cache-block management
-		instructions.
-
-2022-03-18  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Prefetch hint instructions and operand set
-	This commit adds 'Zicbop' hint instructions.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_multi_subset_supports): Add handling for
-		new instruction class.
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c (riscv_ip): Add handling for new operand
-		type 'f' (32-byte aligned pseudo S-type immediate for prefetch
-		hints).
-		(validate_riscv_insn): Likewise.
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (MATCH_PREFETCH_I, MASK_PREFETCH_I,
-		MATCH_PREFETCH_R, MASK_PREFETCH_R, MATCH_PREFETCH_W,
-		MASK_PREFETCH_W): New macros.
-		* opcode/riscv.h (enum riscv_insn_class): Add new instruction
-		class INSN_CLASS_ZICBOP.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (print_insn_args): Add handling for new operand
-		type.
-		* riscv-opc.c (riscv_opcodes): Add prefetch hint instructions.
-
-2022-03-18  Alan Modra  <amodra@gmail.com>
-
-	PR28977 tc-i386.c internal error in parse_register
-		PR 28977
-		* config/tc-i386.c (parse_register): Handle X_op not O_register
-		as for a non-reg_section symbol.  Simplify array bounds check.
-
-2022-03-18  Alan Modra  <amodra@gmail.com>
-
-	Tidy gas current_frame before exit
-	Releases some obstack memory on an error path.
-
-		* cond.c (cond_finish_check): Call cond_exit_macro.
-
-2022-03-18  Alan Modra  <amodra@gmail.com>
-
-	ubsan: logical_input_line signed integer overflow
-	To avoid a completely useless fuzzing ubsan "bug" report, I decided to
-	make logical_input_line unsigned.
-
-		* input-scrub.c (logical_input_line): Make unsigned.
-		(struct input_save): Here too.
-		(input_scrub_reinit, input_scrub_close, bump_line_counters),
-		(as_where): Adjust to suit.
-
-2022-03-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	gprofng: Skip jsynprog with a broken javac
-	On CET enabled Linux/x86-64 machines, one can get
-
-	$ javac simple.java
-	Error: dl failure on line 894
-	Error: failed /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-6.fc35.x86_64/jre/lib/amd64/server/libjvm.so, because /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-6.fc35.x86_64/jre/lib/amd64/server/libjvm.so: rebuild shared object with SHSTK support enabled
-
-	Set GPROFNG_BROKEN_JAVAC to "yes" only with a broken javac and skip the
-	jsynprog test with a broken javac.
-
-		PR gprofng/28965
-		* Makefile.am (GPROFNG_BROKEN_JAVAC): New.
-		(check-DEJAGNU): Pass GPROFNG_BROKEN_JAVAC to runtest.
-		* configure.ac (GPROFNG_BROKEN_JAVAC): New AC_SUBST.  Set to yes
-		with a broken javac.
-		* Makefile.in: Regenerate.
-		* configure: Likewise.
-		* testsuite/gprofng.display/display.exp: Skip jsynprog with a
-		broken javac.
-
-2022-03-17  John Baldwin  <jhb@FreeBSD.org>
-
-	Remove fall throughs in core_target::xfer_partial.
-	The cases for TARGET_OBJECT_LIBRARIES and TARGET_OBJECT_LIBRARIES_AIX
-	can try to fetch different data objects (such as
-	TARGET_OBJECT_SIGNAL_INFO) if gdbarch methods for the requested data
-	aren't present.  Return with TARGET_XFER_E_IO if the gdbarch method
-	isn't present instead.
-
-2022-03-17  Pedro Alves  <pedro@palves.net>
-
-	gdb: Remove support for S+core
-	GCC removed support for score back in 2014 already.  Back then, we
-	basically agreed about removing it from GDB too, but it ended up being
-	forgotten.  See:
-
-	 https://sourceware.org/pipermail/gdb/2014-October/044643.html
-
-	Following through this time around.
-
-	Change-Id: I5b25a1ff7bce7b150d6f90f4c34047fae4b1f8b4
-
-2022-03-17  Tom Tromey  <tromey@adacore.com>
-
-	Add another test for Ada Wide_Wide_String
-	In an earlier patch, I had written that I wanted to add this test:
-
-	      ptype Wide_Wide_String'("literal")
-
-	... but that it failed with the distro GNAT.  Further investigation
-	showed that it could be made to work by adding a function using
-	Wide_Wide_String to the program -- this caused the type to end up in
-	the debug info.
-
-	This patch adds the test.  I'm checking this in.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	ubsan: Null dereference in parse_module
-		* vms-alpha.c (parse_module): Sanity check that DST__K_RTNBEG
-		has set module->func_table for DST__K_RTNEND.  Check return
-		of bfd_zalloc.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	asan: Buffer overflow in evax_bfd_print_dst
-	With "name" a char*, the length at name[0] might be negative, escaping
-	buffer limit checks.
-
-		* vms-alpha.c (evax_bfd_print_dst): Make name an unsigned char*.
-		(evax_bfd_print_emh): Likewise.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	asan: Buffer overflow in som_set_reloc_info
-		* som.c (som_set_reloc_info): Add symcount parameter.  Don't
-		access symbols past symcount.  Don't access fixup past end_fixups.
-		(som_slurp_reloc_table): Adjust som_set_reloc_info calls.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	asan: use of uninitialized value in buffer_and_nest
-	More occurences of the same as commit d12b8d620c6a.
-
-		* macro.c (buffer_and_nest): Sanity check length in buffer
-		before calling strncasecmp.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	gprofng configure target tests
-	${target} in configure.ac should be the canonical target, so that for
-	example, someone configuring with --target=x86_64-linux will match
-	x86_64-*-linux*.
-
-		* configure.ac: Invoke AC_CANONICAL_TARGET.
-		* libcollector/configure.ac: Likewise.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-		* doc/Makefile.in: Regenerate.
-		* gp-display-html/Makefile.in: Regenerate.
-		* libcollector/Makefile.in: Regenerate.
-		* libcollector/configure: Regenerate.
-		* src/Makefile.in: Regenerate.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	Re: asan: buffer overflow in peXXigen.c
-	In the process of fixing a buffer overflow in commit fe69d4fcf0194a,
-	I managed to introduce a fairly obvious NULL pointer dereference..
-
-		* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't
-		segfault on not finding section.  Wrap overlong lines.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	asan: buffer overflows after calling ignore_rest_of_line
-	operand() is not a place that should be calling ignore_rest_of_line.
-	ignore_rest_of_line shouldn't increment input_line_pointer if already
-	at buffer limit.
-
-		* expr.c (operand): Don't call ignore_rest_of_line.
-		* read.c (s_mri_common): Likewise.
-		(ignore_rest_of_line): Don't increment input_line_pointer if
-		already at buffer_limit.
-
-2022-03-17  Alan Modra  <amodra@gmail.com>
-
-	Re: bfd: add AMDGCN architecture
-		* po/SRC-POTFILES.in: Regenerate.
-
-2022-03-17  Jan Beulich  <jbeulich@suse.com>
-
-	x86: don't accept base architectures as extensions
-	The -march= intentions are quite clear: A base architecture may be
-	followed by any number of extensions. Accepting a base architecture in
-	place of an extension will at best result in confusion, as the first of
-	the two (or more) items specified simply would not take effect, due to
-	being overridden by the later one(s).
-
-2022-03-17  Jan Beulich  <jbeulich@suse.com>
-
-	x86: never set i386_cpu_flags' "unused" field
-	Setting this field risks cpu_flags_all_zero() mistakenly returning
-	"false" when the object passed in was e.g. the result of ANDing together
-	two objects which had the bit set, or ANDNing together an object with
-	the field set and one with the field clear.
-
-	While there also avoid setting CpuNo64: Like Cpu64 this is driven
-	differently anyway and hence shouldn't be set anywhere by default.
-
-	Note that the moving of the two items in i386-gen.c's cpu_flags[] is
-	only for documentation purposes (and slight reducing of overhead), as
-	the fields are sorted anyway upon program start.
-
-2022-03-17  Jan Beulich  <jbeulich@suse.com>
-
-	x86: unify CPU flag on/off processing
-	There's no need for the arbitrary special "unknown" token: Simply
-	recognize the leading ~ and process everything else the same, merely
-	recording whether to set individual fields to 1 or 0.
-
-	While there exclude CpuIAMCU from CPU_UNKNOWN_FLAGS - CPU_IAMCU_FLAGS
-	override cpu_arch_flags anyway when -march=iamcu is passed, and there's
-	no reason to have the stray flag set even if no insn actually is keyed
-	to it.
-
-2022-03-17  Jan Beulich  <jbeulich@suse.com>
-
-	x86: add another IAMCU testcase
-	Now that {L,K}1OM support is gone, and with it the brokenness in
-	check_cpu_arch_compatible(), put in place a test making sure that only
-	extensions can be enabled via .arch for IAMCU, and that the base
-	architecture cannot be changed.
-
-	x86: drop L1OM/K1OM support from gas
-	This was only rudimentary support anyway; none of the sub-architecture
-	specific insns were ever supported.
-
-	x86: assorted IAMCU CPU checking fixes
-	The checks done by check_cpu_arch_compatible() were halfway sensible
-	only at the time where only L1OM support was there. The purpose,
-	however, has always been to prevent bad uses of .arch (turning off the
-	base CPU "feature" flag) while at the same time permitting extensions to
-	be enabled / disabled. In order to achieve this (and to prevent
-	regressions when L1OM and K1OM support are removed)
-	- set CpuIAMCU in CPU_IAMCU_FLAGS,
-	- adjust the IAMCU check in the function itself (the other two similarly
-	  broken checks aren't adjusted as they're slated to be removed anyway),
-	- avoid calling the function for extentions (which would never have the
-	  base "feature" flag set),
-	- add a new testcase actually exercising ".arch iamcu" (which would also
-	  regress with the planned removal).
-
-2022-03-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: work around prompt corruption caused by bracketed-paste-mode
-	In this commit:
-
-	  commit b4f26d541aa7224b70d363932e816e6e1a857633
-	  Date:   Tue Mar 2 13:42:37 2021 -0700
-
-	      Import GNU Readline 8.1
-
-	We imported readline 8.1 into GDB.  As a consequence bug PR cli/28833
-	was reported.  This bug spotted that, when the user terminated GDB by
-	sending EOF (usually bound to Ctrl+d), the last prompt would become
-	corrupted.  Here's what happens, the user is sat at a prompt like
-	this:
-
-	  (gdb)
-
-	And then the user sends EOF (Ctrl+d), we now see this:
-
-	  quit)
-	  ... gdb terminates, and we return to the shell ...
-
-	Notice the 'quit' was printed over the prompt.
-
-	This problem is a result of readline 8.1 enabling bracketed paste mode
-	by default.  This problem is present in readline 8.0 too, but in that
-	version of readline bracketed paste mode is off by default, so a user
-	will not see the bug unless they specifically enable the feature.
-
-	Bracketed paste mode is available in readline 7.0 too, but the bug
-	is not present in this version of readline, see below for why.
-
-	What causes this problem is how readline disables bracketed paste
-	mode.  Bracketed paste mode is a terminal feature that is enabled and
-	disabled by readline emitting a specific escape sequence.  The problem
-	for GDB is that the escape sequence to disable bracketed paste mode
-	includes a '\r' character at the end, see this thread for more
-	details:
-
-	  https://lists.gnu.org/archive/html/bug-bash/2018-01/msg00097.html
-
-	The change to add the '\r' character to the escape sequence used to
-	disable bracketed paste mode was introduced between readline 7.0 and
-	readline 8.0, this is why the bug would not occur when using older
-	versions of readline (note: I don't know if its even possible to build
-	GDB using readline 7.0.  That really isn't important, I'm just
-	documenting the history of this issue).
-
-	So, the escape sequence to disable bracketed paste mode is emitted
-	from the readline function rl_deprep_terminal, this is called after
-	the user has entered a complete command and pressed return, or, if the
-	user sends EOF.
-
-	However, these two cases are slightly different.  In the first case,
-	when the user has entered a command and pressed return, the cursor
-	will have moved to the next, empty, line, before readline emits the
-	escape sequence to leave bracketed paste mode.  The final '\r'
-	character moves the cursor back to the beginning of this empty line,
-	which is harmless.
-
-	For the EOF case though, this is not what happens.  Instead, the
-	escape sequence to leave bracketed paste mode is emitted on the same
-	line as the prompt.  The final '\r' moves the cursor back to the start
-	of the prompt line.  This leaves us ready to override the prompt.
-
-	It is worth noting, that this is not the intended behaviour of
-	readline, in rl_deprep_terminal, readline should emit a '\n' character
-	when EOF is seen.  However, due to a bug in readline this does not
-	happen (the _rl_eof_found flag is never set).  This is the first
-	readline bug that effects GDB.
-
-	GDB prints the 'quit' message from command_line_handler (in
-	event-top.c), this function is called (indirectly) from readline to
-	process the complete command line, but also in the EOF case (in which
-	case the command line is set to nullptr).  As this is part of the
-	callback to process a complete command, this is called after readline
-	has disabled bracketed paste mode (by calling rl_deprep_terminal).
-
-	And so, when bracketed paste mode is in use, rl_deprep_terminal leaves
-	the cursor at the start of the prompt line (in the EOF case), and
-	command_line_handler then prints 'quit', which overwrites the prompt.
-
-	The solution to this problem is to print the 'quit' message earlier,
-	before rl_deprep_terminal is called.  This is easy to do by using the
-	rl_deprep_term_function hook.  It is this hook that usually calls
-	rl_deprep_terminal, however, if we replace this with a new function,
-	we can print the 'quit' string, and then call rl_deprep_terminal
-	ourselves.  This allows the 'quit' to be printed before
-	rl_deprep_terminal is called.
-
-	The problem here is that there is no way in rl_deprep_terminal to know
-	if readline is processing EOF or not, and as a result, we don't know
-	when we should print 'quit'.  This is the second readline bug that
-	effects GDB.
-
-	Both of these readline issues are discussed in this thread:
-
-	  https://lists.gnu.org/archive/html/bug-readline/2022-02/msg00021.html
-
-	The result of that thread was that readline was patched to address
-	both of these issues.
-
-	Now it should be easy to backport the readline fix to GDB's in tree
-	copy of readline, and then change GDB to make use of these fixes to
-	correctly print the 'quit' string.
-
-	However, we are just about to branch GDB 12, and there is concern from
-	some that changing readline this close to a new release is a risky
-	idea, see this thread:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-March/186391.html
-
-	So, this commit doesn't change readline at all.  Instead, this commit
-	is the smallest possible GDB change in order to avoid the prompt
-	corruption.
-
-	In this commit I change GDB to print the 'quit' string on the line
-	after the prompt, but only when bracketed paste mode is on.  This
-	avoids the overwriting issue, the user sees this:
-
-	  (gdb)
-	  quit
-	  ... gdb terminates, and returns to the shell ...
-
-	This isn't ideal, but is better than the existing behaviour.  After
-	GDB 12 has branched, we can backport the readline fix, and apply a
-	real fix to GDB.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28833
-
-2022-03-16  Fangrui Song  <i@maskray.me>
-
-	objcopy --weaken-symbol: apply to STB_GNU_UNIQUE symbols
-	    PR binutils/28926
-	    * objcopy.c (filter_symbols): Apply weaken to STB_GNU_UNIQUE symbols
-	    * NEWS: Mention feature.
-	    * testsuite/binutils-all/objcopy.exp (objcopy_test_symbol_manipulation): New test.
-	    * testsuite/binutils-all/weaken-gnu-unique.s: New.
-
-2022-03-16  Tom Tromey  <tromey@adacore.com>
-
-	Reimplement array concatenation for Ada and D
-	This started as a patch to implement string concatenation for Ada.
-	However, while working on this, I looked at how this code could
-	possibly be called.  It turns out there are only two users of
-	concat_operation: Ada and D.  So, in addition to implementing this for
-	Ada, this patch rewrites value_concat, removing the odd "concatenate
-	or repeat" semantics, which were completely unused.  As Ada and D both
-	seem to represent strings using TYPE_CODE_ARRAY, this removes the
-	TYPE_CODE_STRING code from there as well.
-
-	Remove eval_op_concat
-	eval_op_concat has code to search for an operator overload of
-	BINOP_CONCAT.  However, the operator overloading code is specific to
-	C++, which does not have this operator.  And,
-	binop_types_user_defined_p rejects this case right at the start, and
-	value_x_binop does not handle this case.  I think this code has been
-	dead for a very long time.  This patch removes it and hoists the
-	remaining call into concatenation::evaluate, removing eval_op_concat
-	entirely.
-
-2022-03-16  Tom Tromey  <tromey@adacore.com>
-
-	Ada support for wide strings
-	This adds some basic support for Wide_String and Wide_Wide_String to
-	the Ada expression evaluator.  In particular, a string literal may be
-	converted to a wide or wide-wide string depending on context.
-
-	The patch updates an existing test case.  Note that another test,
-	namely something like:
-
-	    ptype Wide_Wide_String'("literal")
-
-	... would be nice to add, but when tested against a distro GNAT, this
-	did not work (probably due to lack of debuginfo); so, I haven't
-	included it here.
-
-2022-03-16  Tom Tromey  <tromey@adacore.com>
-
-	Remove eval_op_string
-	eval_op_string is only used in a single place -- the implementation of
-	string_operation.  This patch turns it into the
-	string_operation::evaluate method, removing a bit of extraneous code.
-
-2022-03-16  Carl Love  <cel@us.ibm.com>
-
-	Powerpc fix for gdb.base/ending-run.exp
-	The last two tests in gdb.base/ending-run.exp case fail on Powerpc when the
-	system does not have the needed glibc debug-info files loaded.  In this
-	case, gdb is not able to determine where execution stopped.  This behavior
-	looks as follows for the test case:
-
-	The next to the last test does a next command when the program is stopped
-	at the closing bracket for main.  The message printed is:
-
-	0x00007ffff7d01524 in ?? () from /lib/powerpc64le-linux-gnu/libc.so.6
-
-	which fails to match any of the test_multiple options.
-
-	The test then does another next command.  On Powerpc, the
-	message printed it:
-
-	Cannot find bounds of current function
-
-	The test fails as the output does not match any of the options for the
-	gdb_test_multiple.
-
-	I checked the behavior on Powerpc to see if this is typical.
-	I ran gdb on the following simple program as shown below.
-
-	#include <stdio.h>
-	int
-	main(void)
-	{
-	  printf("Hello, world!\n");
-	  return 0;
-	}
-
-	gdb ./hello_world
-	<snip the gdb start info>
-
-	Type "apropos word" to search for commands related to "word"...
-	Reading symbols from ./hello_world...
-	(No debugging symbols found in ./hello_world)
-	(gdb) break main
-	Breakpoint 1 at 0x818
-	(gdb) r
-
-	Starting program: /home/carll/hello_world
-	[Thread debugging using libthread_db enabled]
-	Using host libthread_db library "/lib/powerpc64le-linux-gnu/libthread_db.so.1".
-
-	Breakpoint 1, 0x0000000100000818 in main ()
-	(gdb) n
-	Single stepping until exit from function main,
-	which has no line number information.
-	Hello, world!
-	0x00007ffff7d01524 in ?? () from /lib/powerpc64le-linux-gnu/libc.so.6
-	(gdb) n
-	Cannot find bounds of current function
-
-	So it would seem that the messages seen from the test case are
-	"normal" output for Powerpc when the debug-info is not available.
-
-	The following patch adds the output from Powerpc as an option
-	to the gdb_test_multiple statement, identifying the output as the expected
-	output on Powerpc without the needed debug-info files installed.
-
-	The patch has been tested on a Power 10 system and an Intel
-	64-bit system.  No additional regression failures were seen on
-	either platform.
-
-2022-03-16  Martin Storsj?  <martin@martin.st>
-
-	dlltool: Use the output name as basis for deterministic temp prefixes
-		PR 28885
-		* dlltool.c (main): use imp_name rather than dll_name when
-		generating a temporary file name.
-
-2022-03-16  Jan Vrany  <jan.vrany@labware.com>
-	    Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: consistently notify user when GDB/MI client uses -thread-select
-	GDB notifies users about user selected thread changes somewhat
-	inconsistently as mentioned on gdb-patches mailing list here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-February/185989.html
-
-	Consider GDB debugging a multi-threaded inferior with both CLI and GDB/MI
-	interfaces connected to separate terminals.
-
-	Assuming inferior is stopped and thread 1 is selected, when a thread
-	2 is selected using '-thread-select 2' command on GDB/MI terminal:
-
-	    -thread-select 2
-	    ^done,new-thread-id="2",frame={level="0",addr="0x00005555555551cd",func="child_sub_function",args=[],file="/home/jv/Projects/gdb/users_jv_patches/gdb/testsuite/gdb.mi/user-selected-context-sync.c",fullname="/home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c",line="30",arch="i386:x86-64"}
-	    (gdb)
-
-	and on CLI terminal we get the notification (as expected):
-
-	    [Switching to thread 2 (Thread 0x7ffff7daa640 (LWP 389659))]
-	    #0  child_sub_function () at /home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:30
-	    30        volatile int dummy = 0;
-
-	However, now that thread 2 is selected, if thread 1 is selected
-	using 'thread-select --thread 1 1' command on GDB/MI terminal
-	terminal:
-
-	   -thread-select --thread 1 1
-	   ^done,new-thread-id="1",frame={level="0",addr="0x0000555555555294",func="main",args=[],file="/home/jv/Projects/gdb/users_jv_patches/gdb/testsuite/gdb.mi/user-selected-context-sync.c",fullname="/home/jv/Projects/gdb/users_jv_patches/gdb/testsuite/gdb.mi/user-selected-context-sync.c",line="66",arch="i386:x86-64"}
-	   (gdb)
-
-	but no notification is printed on CLI terminal, despite the fact
-	that user selected thread has changed.
-
-	The problem is that when `-thread-select --thread 1 1` is executed
-	then thread is switched to thread 1 before mi_cmd_thread_select () is
-	called, therefore the condition "inferior_ptid != previous_ptid"
-	there does not hold.
-
-	To address this problem, we have to move notification logic up to
-	mi_cmd_execute () where --thread option is processed and notify
-	user selected contents observers there if context changes.
-
-	However, this in itself breaks GDB/MI because it would cause context
-	notification to be sent on MI channel. This is because by the time
-	we notify, MI notification suppression is already restored (done in
-	mi_command::invoke(). Therefore we had to lift notification suppression
-	logic also up to mi_cmd_execute (). This change in made distinction
-	between mi_command::invoke() and mi_command::do_invoke() unnecessary
-	as all mi_command::invoke() did (after the change) was to call
-	do_invoke(). So this patches removes do_invoke() and moves the command
-	execution logic directly to invoke().
-
-	With this change, all gdb.mi tests pass, tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20631
-
-2022-03-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	gprofng: Use symver attribute if available
-	Use symver attribute if available, instead of asm statement, to support
-	LTO build.
-
-		PR gprof/28962
-		* libcollector/dispatcher.c (timer_create@@GLIBC_2.3.3): Use
-		SYMVER_ATTRIBUTE.
-		(timer_create@GLIBC_2.2): Likewise.
-		(timer_create@GLIBC_2.2.5): Likewise.
-		(pthread_create@@GLIBC_2.1): Likewise.
-		(pthread_create@GLIBC_2.0): Likewise.
-		* libcollector/iotrace.c (open64@@GLIBC_2.2): Likewise.
-		(open64@GLIBC_2.1): Likewise.
-		(fopen@@GLIBC_2.1): Likewise.
-		(fopen@GLIBC_2.0): Likewise.
-		(fclose@@GLIBC_2.1): Likewise.
-		(fclose@GLIBC_2.0): Likewise.
-		(fdopen@@GLIBC_2.1): Likewise.
-		(fdopen@GLIBC_2.0): Likewise.
-		(pread@@GLIBC_2.2): Likewise.
-		(pread@GLIBC_2.1): Likewise.
-		(pwrite@@GLIBC_2.2): Likewise.
-		(pwrite@GLIBC_2.1): Likewise.
-		(pwrite64@@GLIBC_2.2): Likewise.
-		(pwrite64@GLIBC_2.1): Likewise.
-		(fgetpos@@GLIBC_2.2): Likewise.
-		(fgetpos@GLIBC_2.0): Likewise.
-		(fgetpos64@@GLIBC_2.2): Likewise.
-		(fgetpos64@GLIBC_2.1): Likewise.
-		(fsetpos@@GLIBC_2.2): Likewise.
-		(fsetpos@GLIBC_2.0): Likewise.
-		(fsetpos64@@GLIBC_2.2): Likewise.
-		(fsetpos64@GLIBC_2.1): Likewise.
-		* libcollector/linetrace.c (posix_spawn@@GLIBC_2.15): Likewise.
-		(posix_spawn@GLIBC_2.2): Likewise.
-		(posix_spawn@GLIBC_2.2.5): Likewise.
-		(posix_spawnp@@GLIBC_2.15): Likewise.
-		(posix_spawnp@GLIBC_2.2): Likewise.
-		(posix_spawnp@GLIBC_2.2.5): Likewise.
-		(popen@@GLIBC_2.1): Likewise.
-		(popen@GLIBC_2.0): Likewise.
-		(_popen@@GLIBC_2.1): Likewise.
-		(_popen@GLIBC_2.0): Likewise.
-		* libcollector/mmaptrace.c (dlopen@@GLIBC_2.1): Likewise.
-		(dlopen@GLIBC_2.0): Likewise.
-		* libcollector/synctrace.c (pthread_cond_wait@@GLIBC_2.3.2):
-		Likewise.
-		(pthread_cond_wait@GLIBC_2.0): Likewise.
-		(pthread_cond_wait@GLIBC_2.2.5): Likewise.
-		(pthread_cond_wait@GLIBC_2.2): Likewise.
-		(pthread_cond_timedwait@@GLIBC_2.3.2): Likewise.
-		(pthread_cond_timedwait@GLIBC_2.0): Likewise.
-		(pthread_cond_timedwait@GLIBC_2.2.5): Likewise.
-		(pthread_cond_timedwait@GLIBC_2.2): Likewise.
-		(sem_wait@@GLIBC_2.1): Likewise.
-		(sem_wait@GLIBC_2.0): Likewise.
-		* src/collector_module.h (SYMVER_ATTRIBUTE): New.
-
-2022-03-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	gprofng: Don't hardcode -Wno-format-truncation/-Wno-switch
-	Use -Wno-format-truncation and -Wno-switch only if they are supported.
-
-		PR gprof/28969
-		* configure.ac (GPROFNG_NO_FORMAT_TRUNCATION_CFLAGS): New
-		AC_SUBST for -Wno-format-truncation.
-		(GPROFNG_NO_SWITCH_CFLAGS): New AC_SUBST for -Wno-switch.
-		* Makefile.in: Regenerate.
-		* configure: Likewise.
-		* src/Makefile.am (AM_CFLAGS): Replace -Wno-format-truncation
-		and -Wno-switch with GPROFNG_NO_FORMAT_TRUNCATION_CFLAGS and
-		GPROFNG_NO_SWITCH_CFLAGS.
-		* src/Makefile.in: Regenerate.
-
-2022-03-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	gprofng: Don't hardcode -Wno-nonnull-compare
-	Use -Wno-nonnull-compare only if it is supported.
-
-		PR gprof/28969
-		* libcollector/Makefile.am (AM_CFLAGS): Replace
-		-Wno-nonnull-compare with GPROFNG_NO_NONNULL_COMPARE_CFLAGS.
-		* libcollector/configure.ac (GPROFNG_NO_NONNULL_COMPARE_CFLAGS):
-		New AC_SUBST for -Wno-nonnull-compare.
-		* libcollector/Makefile.in: Regenerate.
-		* libcollector/aclocal.m4: Likewise.
-		* libcollector/configure: Likewise.
-
-2022-03-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	gprofng: Define ATTRIBUTE_FALLTHROUGH
-	Define ATTRIBUTE_FALLTHROUGH to __attribute__ ((fallthrough)) only for
-	GCC 7 or above.
-
-		PR gprof/28969
-		* common/gp-defs.h (ATTRIBUTE_FALLTHROUGH): New.
-		* src/gp-collect-app.cc (collect::check_args): Replace
-		/* FALLTHROUGH */ with ATTRIBUTE_FALLTHROUGH.
-
-2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	binutils/readelf: handle AMDGPU relocation types
-	Make readelf recognize AMDGPU relocation types, as documented here:
-
-	  https://llvm.org/docs/AMDGPUUsage.html#amdgpu-relocation-records
-
-	The user-visible change looks like:
-
-	    -000000000004  000400000001 unrecognized: 1       0000000000000000 SCRATCH_RSRC_DWORD0
-	    -00000000000c  000500000001 unrecognized: 1       0000000000000000 SCRATCH_RSRC_DWORD1
-	    -000000000014  000600000007 unrecognized: 7       0000000000000000 global_var0
-	    -00000000001c  000700000008 unrecognized: 8       0000000000000000 global_var1
-	    -000000000024  000800000009 unrecognized: 9       0000000000000000 global_var2
-	    -00000000002c  00090000000a unrecognized: a       0000000000000000 global_var3
-	    -000000000034  000a0000000b unrecognized: b       0000000000000000 global_var4
-	    +000000000004  000400000001 R_AMDGPU_ABS32_LO 0000000000000000 SCRATCH_RSRC_DWORD0
-	    +00000000000c  000500000001 R_AMDGPU_ABS32_LO 0000000000000000 SCRATCH_RSRC_DWORD1
-	    +000000000014  000600000007 R_AMDGPU_GOTPCREL 0000000000000000 global_var0
-	    +00000000001c  000700000008 R_AMDGPU_GOTPCREL 0000000000000000 global_var1
-	    +000000000024  000800000009 R_AMDGPU_GOTPCREL 0000000000000000 global_var2
-	    +00000000002c  00090000000a R_AMDGPU_REL32_LO 0000000000000000 global_var3
-	    +000000000034  000a0000000b R_AMDGPU_REL32_HI 0000000000000000 global_var4
-
-	binutils/ChangeLog:
-
-		* readelf.c (dump_relocations): Handle EM_AMDGPU.
-
-	include/ChangeLog:
-
-		* elf/amdgpu.h: Add relocation values.
-
-	Change-Id: I2ed4589f4cd37ea11ad2e0cb38d4b682271e1334
-
-2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	binutils/readelf: build against msgpack, dump NT_AMDGPU_METADATA note contents
-	The AMDGPU HSA OS ABI (code object v3 and above) defines the
-	NT_AMDGPU_METADATA ELF note [1].  The content is a msgpack object
-	describing, among other things, the kernels present in the code object
-	and how to call them.
-
-	I think it would be useful for readelf to be able to display the content
-	of those notes.  msgpack is a structured format, a bit like JSON, except
-	not text-based.  It is therefore possible to dump the contents in
-	human-readable form without knowledge of the specific layout of the
-	note.
-
-	Add configury to binutils to optionally check for the msgpack C library
-	[2].  Add There is a new --with{,out}-msgpack configure flag, and the actual
-	library lookup is done using pkg-config.
-
-	If msgpack support is enabled, dumping a NT_AMDGPU_METADATA note looks
-	like:
-
-	    $ readelf --notes amdgpu-code-object
-	    Displaying notes found in: .note
-	      Owner                Data size        Description
-	      AMDGPU               0x0000040d       NT_AMDGPU_METADATA (code object metadata)
-	        {
-	          "amdhsa.kernels": [
-	            {
-	              ".args": [
-	                {
-	                  ".address_space": "global",
-	                  ".name": "out.coerce",
-	                  ".offset": 0,
-	                  ".size": 8,
-	                  ".value_kind": "global_buffer",
-	                },
-	      <snip>
-
-	If msgpack support is disabled, dump the contents as hex, as is done
-	with notes that are not handled in a special way.  This allows one to
-	decode the contents manually (maybe using a command-line msgpack
-	decoder) if really needed.
-
-	[1] https://llvm.org/docs/AMDGPUUsage.html#code-object-metadata
-	[2] https://github.com/msgpack/msgpack-c/tree/c_master
-
-	binutils/ChangeLog:
-
-		* Makefile.am (readelf_CFLAGS): New.
-		(readelf_LDADD): Add MSGPACK_LIBS.
-		* Makefile.in: Re-generate.
-		* config.in: Re-generate.
-		* configure: Re-generate.
-		* configure.ac: Add --with-msgpack flag and check for msgpack
-		using pkg-config.
-		* readelf.c: Include msgpack.h if HAVE_MSGPACK.
-		(print_note_contents_hex): New.
-		(print_indents): New.
-		(dump_msgpack_obj): New.
-		(dump_msgpack): New.
-		(print_amdgpu_note): New.
-		(process_note): Handle NT_AMDGPU_METADATA note contents.
-		Use print_note_contents_hex.
-
-	Change-Id: Ia60a654e620bc32dfdb1bccd845594e2af328b84
-
-2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	binutils/readelf: handle NT_AMDGPU_METADATA note name
-	Handle the NT_AMDGPU_METADATA note, which is described here:
-
-	  https://llvm.org/docs/AMDGPUUsage.html#code-object-v3-note-records
-
-	As of this patch, just print out the name, not the contents, which is in
-	the msgpack format.
-
-	binutils/ChangeLog:
-
-		* readelf.c (get_amdgpu_elf_note_type): New.
-		(process_note): Handle "AMDGPU" notes.
-
-	include/ChangeLog:
-
-		* elf/amdgcn.h (NT_AMDGPU_METADATA): New.
-
-	Change-Id: Id2dba2e2aeaa55ef7464fb35aee9c7d5f96ddb23
-
-2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	binutils/readelf: decode AMDGPU-specific e_flags
-	Decode and print the AMDGPU-specific fields of e_flags, as documented
-	here:
-
-	  https://llvm.org/docs/AMDGPUUsage.html#header
-
-	That is:
-
-	 - The specific GPU model
-	 - Whether the xnack and sramecc features are enabled
-
-	The result looks like:
-
-	-  Flags:                             0x52f
-	+  Flags:                             0x52f, gfx906, xnack any, sramecc any
-
-	The flags for the "HSA" OS ABI are properly versioned and documented on
-	that page.  But the NONE, PAL and MESA3D OS ABIs are not well documented
-	nor versioned.  Taking a peek at the LLVM source code, we see that they
-	encode their flags the same way as HSA v3.  For example, for PAL:
-
-	  https://github.com/llvm/llvm-project/blob/c8b614cd74a92d85936aed5ac7c642af75ffdc29/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp#L601
-
-	So for those other OS ABIs, we read them the same as HSA v3.
-
-	binutils/ChangeLog:
-
-		* readelf.c: Include elf/amdgcn.h.
-		(decode_AMDGPU_machine_flags): New.
-		(get_machine_flags): Handle flags for EM_AMDGPU machine type.
-
-	include/ChangeLog:
-
-		* elf/amdgcn.h: Add EF_AMDGPU_MACH_AMDGCN_* and
-		EF_AMDGPU_FEATURE_* defines.
-
-	Change-Id: Ib5b94df7cae0719a22cf4e4fd0629330e9485c12
-
-2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	binutils/readelf: handle AMDGPU OS ABIs
-	When the machine is EM_AMDGPU, handle the various OS ABIs described
-	here:
-
-	  https://llvm.org/docs/AMDGPUUsage.html#header
-
-	For a binary with the HSA OS ABI, the change looks like:
-
-	-  OS/ABI:                            <unknown: 40>
-	+  OS/ABI:                            AMD HSA
-
-	binutils/ChangeLog:
-
-		* readelf.c (get_osabi_name): Handle EM_AMDGPU OS ABIs.
-
-	include/ChangeLog:
-
-		* elf/common.h (ELFOSABI_AMDGPU_PAL, ELFOSABI_AMDGPU_MESA3D):
-		New.
-
-	Change-Id: I383590c390f7dc2fe0f902f50038735626d71863
-
-2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	opcodes: handle bfd_amdgcn_arch in configure script
-	There isn't an actual opcodes implementation for the AMDGCN arch (yet),
-	this is just the bare minimum to get
-
-	  $ ./configure --target=amdgcn-hsa-amdhsa --disable-gas
-	  $ make all-binutils
-
-	working later in this series.
-
-	opcodes/ChangeLog:
-
-		* configure.ac: Handle bfd_amdgcn_arch.
-		* configure: Re-generate.
-
-	Change-Id: Ib7d7c5533a803ed8b2a293e9275f667ed781ce79
-
-2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	bfd: add AMDGCN architecture
-	Add support for the AMDGCN architecture to BFD.
-
-	This is the bare minimum to get
-
-	  $ ./configure --target=amdgcn-hsa-amdhsa --disable-gas
-	  $ make all-binutils
-
-	working later in this series.
-
-	The specific AMDGCN models added here are a bit arbitrary, based on
-	what we intend to initially support in GDB.  This list will need to be
-	updated in the future anyway.  The complete up-to-date list of existing
-	AMDGPU models can be found here:
-
-	  https://llvm.org/docs/AMDGPUUsage.html#processors
-
-	The ELF format for this architecture is documented here:
-
-	  https://llvm.org/docs/AMDGPUUsage.html#elf-code-object
-
-	The flags for the "HSA" OS ABI are properly versioned and documented on
-	that page.  But the NONE, PAL and MESA3D OS ABIs are not well documented
-	nor versioned.  Taking a peek at the LLVM source code, we see that they
-	encode their flags the same way as HSA v3.  For example, for PAL:
-
-	  https://github.com/llvm/llvm-project/blob/c8b614cd74a92d85936aed5ac7c642af75ffdc29/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp#L601
-
-	So at least, we know that all AMDGPU objects (of which AMDGCN objects
-	are a subset of) at the time of writing encode the specific GPU model in
-	the EF_AMDGPU_MACH field of e_flags.
-
-	bfd/ChangeLog:
-
-		* Makefile.am (ALL_MACHINES, ALL_MACHINES_CFILES):
-		Add cpu-amdgcn.c.
-		(BFD64_BACKENDS): Add elf64-amdgcn.lo.
-		(BFD64_BACKENDS_CFILES): Add elf64-amdgcn.c.
-		* Makefile.in: Re-generate.
-		* cpu-amdgcn.c: New.
-		* elf64-amdgcn.c: New.
-		* archures.c (bfd_architecture): Add bfd_arch_amdgcn and related
-		mach defines.
-		(bfd_amdgcn_arch): New.
-		(bfd_archures_list): Add bfd_amdgcn_arch.
-		* bfd-in2.h: Re-generate.
-		* config.bfd: Handle amdgcn* target.
-		* configure.ac: Handle amdgcn_elf64_le_vec.
-		* configure: Re-generate.
-		* elf-bfd.h (elf_target_id): Add AMDGCN_ELF_DATA.
-		* targets.c (amdgcn_elf64_le_vec): New.
-		(_bfd_target_vector): Add amdgcn_elf64_le_vec.
-
-	include/ChangeLog:
-
-		* elf/amdgpu.h: New.
-		* elf/common.h (ELFOSABI_AMDGPU_HSA): Add.
-
-	Change-Id: I969f7b14960797e88891c308749a6e341eece5b2
-
-2022-03-16  Nick Clifton  <nickc@redhat.com>
-
-	Updated Serbian (for binutils/) and Russian (for gprof/) translations
-
-2022-03-16  Pedro Alves  <pedro@palves.net>
-
-	Make gdb.fortran/{array-slices,lbound-ubound} work against gdbserver
-	gdb.fortran/array-slices.exp and gdb.fortran/lbound-ubound.exp were
-	recently disabled unless testing with the native target, because they
-	rely on inferior I/O.  However, when testing against gdbserver using
-	the native-gdbserver/native-extended-gdbserver boards, we do have
-	access to inferior I/O.
-
-	The right way to check whether the board can do I/O, is via checking
-	the gdb,noinferiorio board variable.  Switch to using that.
-
-	And then, tweak the testcases to expect output to appear in
-	inferior_spawn_id, instead of gdb_spawn_id.  When testing against the
-	native target, inferior_spawn_id is the same as gdb_spawn_id.  When
-	testing against gdbserver, it maps to gdbserver_spawn_id.
-
-	This exposed a buglet in gdb.fortran/array-slices.f90's show_1d
-	subroutine -- it was missing printing newline at the end of the
-	"Expected GDB Output" text, leading to a test timeout.  All other
-	subroutines end with advance=yes, except this one.  Fix it by using
-	advance=yes here too.
-
-	Change-Id: I4640729f334431cfc24b0917e7d3977b677c6ca5
-
-2022-03-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-15  Alan Modra  <amodra@gmail.com>
-
-	Delete PowerPC macro insn support
-	Let's hope this stays dead, but it's here as a patch separate from
-	those that removed use of powerpc_macros just in case it needs to be
-	resurrected.
-
-	include/
-		* opcode/ppc.h (struct powerpc_macro): Delete declaration.
-		(powerpc_macros, powerpc_num_macros): Likewise..
-	opcodes/
-		* ppc-opc.c (powerpc_macros, powerpc_num_macros): Delete.
-	gas/
-		* config/tc-ppc.c (ppc_macro): Delete function.
-		(ppc_macro_hash): Delete.
-		(ppc_setup_opcodes, md_assemble): Delete macro support.
-
-2022-03-15  Alan Modra  <amodra@gmail.com>
-
-	PowerPC SPE/SPE2 aliases in powerpc_macros
-		* ppc-opc.c (powerpc_macros): Move "evsadd", "evssub", "evsabs",
-		"evsnabs", "evsneg", "evsmul", "evsdiv", "evscmpgt", "evsgmplt",
-		"evsgmpeq", "evscfui", "evscfsi", "evscfuf", "evscfsf", "evsctui",
-		"evsctsi", "evsctuf", "evsctsf", "evsctuiz", "evsctsiz",
-		"evststgt", "evststlt", "evststeq"..
-		(powerpc_opcodes): ..to here.
-		(powerpc_macros): Move "evdotphsssi", "evdotphsssia", "evdotpwsssi",
-		and "evdotpwsssia"..
-		(spe2_opcodes): ..to here.
-
-2022-03-15  Alan Modra  <amodra@gmail.com>
-
-	PowerPC VLE extended instructions in powerpc_macros
-	This moves VLE insn out of the macro table.  "e_slwi" and "e_srwi"
-	already exist in vle_opcodes as distinct instructions rather than
-	encodings of e_rlwinm.
-
-	opcodes/
-		* ppc-opc.c (vle_opcodes): Typo fix e_rlwinm operand.
-		Add "e_inslwi", "e_insrwi", "e_rotlwi", "e_rotrwi", "e_clrlwi",
-		"e_clrrwi", "e_extlwi", "e_extrwi", and "e_clrlslwi".
-		(powerpc_macros): Delete same.  Delete "e_slwi" and "e_srwi" too.
-	gas/
-		* testsuite/gas/ppc/vle-simple-5.d: Update.
-
-2022-03-15  Alan Modra  <amodra@gmail.com>
-
-	PowerPC32 extended instructions in powerpc_macros
-	As for PowerPC64, move instructions to the main opcode table.
-
-	opcodes/
-		* ppc-opc.c (insert_crwn, extract_crwn, insert_elwn, extract_elwn),
-		(insert_erwn, extract_erwn, insert_erwb, extract_erwb),
-		(insert_cslwn, extract_cslwb, insert_ilwb, extract_ilwn),
-		(insert_irwb, extract_irwn, insert_rrwn, extract_rrwn),
-		(insert_slwn, extract_slwn, insert_srwn, extract_srwn): New functions.
-		(CRWn, ELWn, ERWn, ERWb, CSLWb, CSLWn, ILWn, ILWb, IRWn, IRWb),
-		(RRWn, SLWn, SRWn): Define and add powerpc_operands entries.
-		(MMB_MASK, MME_MASK, MSHMB_MASK): Define.
-		(powerpc_opcodes): Add "inslwi", "insrwi", "rotrwi", "clrrwi",
-		"slwi", "srwi", "extlwi", "extrwi", "sli", "sri" and corresponding
-		record (ie. dot suffix) forms.
-		(powerpc_macros): Delete same.
-	gas/
-		* testsuite/gas/ppc/476.d: Update.
-		* testsuite/gas/ppc/simpshft.d: Update.
-
-2022-03-15  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 extended instructions in powerpc_macros
-	The extended instructions implemented in powerpc_macros aren't used by
-	the disassembler.  That means instructions like "sldi r3,r3,2" appear
-	in disassembly as "rldicr r3,r3,2,61", which is annoying since many
-	other extended instructions are shown.
-
-	Note that some of the instructions moved out of the macro table to the
-	opcode table won't appear in disassembly, because they are aliases
-	rather than a subset of the underlying raw instruction.  If enabled,
-	rotrdi, extrdi, extldi, clrlsldi, and insrdi would replace all
-	occurrences of rotldi, rldicl, rldicr, rldic and rldimi.  (Or many
-	occurrences in the case of clrlsldi if n <= b was added to the extract
-	functions.)
-
-	The patch also fixes a small bug in opcode sanity checking.
-
-	include/
-		* opcode/ppc.h (PPC_OPSHIFT_SH6): Define.
-	opcodes/
-		* ppc-opc.c (insert_erdn, extract_erdn, insert_eldn, extract_eldn),
-		(insert_crdn, extract_crdn, insert_rrdn, extract_rrdn),
-		(insert_sldn, extract_sldn, insert_srdn, extract_srdn),
-		(insert_erdb, extract_erdb, insert_csldn, extract_csldb),
-		(insert_irdb, extract_irdn): New functions.
-		(ELDn, ERDn, ERDn, RRDn, SRDn, ERDb, CSLDn, CSLDb, IRDn, IRDb):
-		Define and add associated powerpc_operands entries.
-		(powerpc_opcodes): Add "rotrdi", "srdi", "extrdi", "clrrdi",
-		"sldi", "extldi", "clrlsldi", "insrdi" and corresponding record
-		(ie. dot suffix) forms.
-		(powerpc_macros): Delete same from here.
-	gas/
-		* config/tc-ppc.c (insn_validate): Don't modify value passed
-		to operand->insert for PPC_OPERAND_PLUS1 when calculating mask.
-		Handle PPC_OPSHIFT_SH6.
-		* testsuite/gas/ppc/prefix-reloc.d: Update.
-		* testsuite/gas/ppc/simpshft.d: Update.
-	ld/
-		* testsuite/ld-powerpc/elfv2so.d: Update.
-		* testsuite/ld-powerpc/notoc.d: Update.
-		* testsuite/ld-powerpc/notoc3.d: Update.
-		* testsuite/ld-powerpc/tlsdesc2.d: Update.
-		* testsuite/ld-powerpc/tlsget.d: Update.
-		* testsuite/ld-powerpc/tlsget2.d: Update.
-		* testsuite/ld-powerpc/tlsopt5.d: Update.
-		* testsuite/ld-powerpc/tlsopt6.d: Update.
-
-2022-03-15  Tom Tromey  <tom@tromey.com>
-
-	Do not capture updated 'pc' in add_local_symbols
-	Simon pointed out that commit 13835d88 ("Use function view when
-	iterating over block symbols") caused a regression.  The bug is that
-	the new closure captures 'pc' by reference, but later code updates
-	this variable -- but the earlier code did not update the callback
-	structure with the new value.
-
-	This patch restores the old behavior by using a new varible name in an
-	inner scope.
-
-2022-03-15  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	gprofng: avoid using `fallthrough' attributes
-	gprofng didn't build with gcc 6.3 due to the usage of __attribute__
-	((fallthrough)).  This patch uses /* FALLTHROUGH */ instead.
-
-	2022-03-15  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-		* gprofng/src/gp-collect-app.cc (collect::check_args): Use
-		fallthrough comment instead of attribute.
-
-2022-03-15  Tom Tromey  <tromey@adacore.com>
-
-	Fix bug in dwarf-mode.el
-	I noticed that, occasionally, dwarf-mode would think that the objdump
-	subprocess was still running after it had clearly exited.  I managed
-	to reliably reproduce this today and learned that a process sentinel
-	is not guaranteed to be run with the current buffer set to the process
-	buffer.  This patch fixes the problem.
-
-	I've bumped the version number of dwarf-mode.el to make it easier to
-	install for users who already have an earlier one installed.
-
-	I'm checking this in.
-
-	2022-03-15  Tom Tromey  <tromey@adacore.com>
-
-		* dwarf-mode.el: Now 1.7.
-		(dwarf--sentinel): Switch to the process buffer.
-
-2022-03-15  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: rename a proc and fix a typo
-	Rename a proc in gdb.mi/user-selected-context-sync.exp, I think the
-	old name was most likely a typo.  The old name
-	match_re_or_ensure_not_output seems (to me) to imply we're in some way
-	checking that the regexp was not output.  But that's not what we are
-	doing, we're checking either for the regexp, or for no output, hence
-	the new name match_re_or_ensure_no_output.
-
-	Additionally, I found a definite typo in one of the comments that I've
-	also fixed.
-
-	I also updated some test names.  These tests (probably due to copy &
-	paste errors) has 'on MI' on their name, when they were actually
-	checking CLI output.  For these test I changed the name to use 'on
-	CLI'.
-
-	There should be no change in what is tested after this commit.
-
-2022-03-15  Nick Clifton  <nickc@redhat.com>
-
-	gprofng: Add a configure test for clock_gettime and a use of the test in getthrtime.c
-
-2022-03-15  H.J. Lu  <hjl.tools@gmail.com>
-
-	gprofng: Don't generate gprofng.info in source
-	Add info-in-builddir to AUTOMAKE_OPTIONS.
-
-		PR gprof/28967
-		* doc/Makefile.am (AUTOMAKE_OPTIONS): Add info-in-builddir.
-		* doc/Makefile.in: Regenerate.
-
-2022-03-15  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: fix failed testcases in gdb.base/align-c.exp
-	When execute the following command on LoongArch:
-
-	  make check-gdb TESTS="gdb.base/align-c.exp"
-
-	there exist some failed testcases:
-
-	  ...
-	  FAIL: gdb.base/align-c.exp: print _Alignof(struct align_pair_long_double_x_float)
-	  FAIL: gdb.base/align-c.exp: print _Alignof(struct align_pair_long_double_x_double)
-	  FAIL: gdb.base/align-c.exp: print _Alignof(struct align_pair_long_double_x_long_double)
-	  ...
-
-	According to LoongArch ELF ABI specification [1], set the target data types
-	of floating-point to fix the above failed testcases.
-
-	[1] https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html
-
-2022-03-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python/mi: create MI commands using python
-	This commit allows a user to create custom MI commands using Python
-	similarly to what is possible for Python CLI commands.
-
-	A new subclass of mi_command is defined for Python MI commands,
-	mi_command_py. A new file, gdb/python/py-micmd.c contains the logic
-	for Python MI commands.
-
-	This commit is based on work linked too from this mailing list thread:
-
-	  https://sourceware.org/pipermail/gdb/2021-November/049774.html
-
-	Which has also been previously posted to the mailing list here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2019-May/158010.html
-
-	And was recently reposted here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-January/185190.html
-
-	The version in this patch takes some core code from the previously
-	posted patches, but also has some significant differences, especially
-	after the feedback given here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-February/185767.html
-
-	A new MI command can be implemented in Python like this:
-
-	  class echo_args(gdb.MICommand):
-	      def invoke(self, args):
-	          return { 'args': args }
-
-	  echo_args("-echo-args")
-
-	The 'args' parameter (to the invoke method) is a list
-	containing (almost) all command line arguments passed to the MI
-	command (--thread and --frame are handled before the Python code is
-	called, and removed from the args list).  This list can be empty if
-	the MI command was passed no arguments.
-
-	When used within gdb the above command produced output like this:
-
-	  (gdb)
-	  -echo-args a b c
-	  ^done,args=["a","b","c"]
-	  (gdb)
-
-	The 'invoke' method of the new command must return a dictionary.  The
-	keys of this dictionary are then used as the field names in the mi
-	command output (e.g. 'args' in the above).
-
-	The values of the result returned by invoke can be dictionaries,
-	lists, iterators, or an object that can be converted to a string.
-	These are processed recursively to create the mi output.  And so, this
-	is valid:
-
-	  class new_command(gdb.MICommand):
-	      def invoke(self,args):
-	          return { 'result_one': { 'abc': 123, 'def': 'Hello' },
-	                   'result_two': [ { 'a': 1, 'b': 2 },
-	                                   { 'c': 3, 'd': 4 } ] }
-
-	Which produces output like:
-
-	  (gdb)
-	  -new-command
-	  ^done,result_one={abc="123",def="Hello"},result_two=[{a="1",b="2"},{c="3",d="4"}]
-	  (gdb)
-
-	I have required that the fields names used in mi result output must
-	match the regexp: "^[a-zA-Z][-_a-zA-Z0-9]*$" (without the quotes).
-	This restriction was never written down anywhere before, but seems
-	sensible to me, and we can always loosen this rule later if it proves
-	to be a problem.  Much harder to try and add a restriction later, once
-	people are already using the API.
-
-	What follows are some details about how this implementation differs
-	from the original patch that was posted to the mailing list.
-
-	In this patch, I have changed how the lifetime of the Python
-	gdb.MICommand objects is managed.  In the original patch, these object
-	were kept alive by an owned reference within the mi_command_py object.
-	As such, the Python object would not be deleted until the
-	mi_command_py object itself was deleted.
-
-	This caused a problem, the mi_command_py were held in the global mi
-	command table (in mi/mi-cmds.c), which, as a global, was not cleared
-	until program shutdown.  By this point the Python interpreter has
-	already been shutdown.  Attempting to delete the mi_command_py object
-	at this point was causing GDB to try and invoke Python code after
-	finalising the Python interpreter, and we would crash.
-
-	To work around this problem, the original patch added code in
-	python/python.c that would search the mi command table, and delete the
-	mi_command_py objects before the Python environment was finalised.
-
-	In contrast, in this patch, I have added a new global dictionary to
-	the gdb module, gdb._mi_commands.  We already have several such global
-	data stores related to pretty printers, and frame unwinders.
-
-	The MICommand objects are placed into the new gdb.mi_commands
-	dictionary, and it is this reference that keeps the objects alive.
-	When GDB's Python interpreter is shut down gdb._mi_commands is deleted,
-	and any MICommand objects within it are deleted at this point.
-
-	This change avoids having to make the mi_cmd_table global, and walk
-	over it from within GDB's python related code.
-
-	This patch handles command redefinition entirely within GDB's python
-	code, though this does impose one small restriction which is not
-	present in the original code (detailed below), I don't think this is a
-	big issue.  However, the original patch relied on being able to
-	finish executing the mi_command::do_invoke member function after the
-	mi_command object had been deleted.  Though continuing to execute a
-	member function after an object is deleted is well defined, it is
-	also (IMHO) risky, its too easy for someone to later add a use of the
-	object without realising that the object might sometimes, have been
-	deleted.  The new patch avoids this issue.
-
-	The one restriction that is added to avoid this, is that an MICommand
-	object can't be reinitialised with a different command name, so:
-
-	  (gdb) python cmd = MyMICommand("-abc")
-	  (gdb) python cmd.__init__("-def")
-	  can't reinitialize object with a different command name
-
-	This feels like a pretty weird edge case, and I'm happy to live with
-	this restriction.
-
-	I have also changed how the memory is managed for the command name.
-	In the most recently posted patch series, the command name is moved
-	into a subclass of mi_command, the python mi_command_py, which
-	inherits from mi_command is then free to use a smart pointer to manage
-	the memory for the name.
-
-	In this patch, I leave the mi_command class unchanged, and instead
-	hold the memory for the name within the Python object, as the lifetime
-	of the Python object always exceeds the c++ object stored in the
-	mi_cmd_table.  This adds a little more complexity in py-micmd.c, but
-	leaves the mi_command class nice and simple.
-
-	Next, this patch adds some extra functionality, there's a
-	MICommand.name read-only attribute containing the name of the command,
-	and a read-write MICommand.installed attribute that can be used to
-	install (make the command available for use) and uninstall (remove the
-	command from the mi_cmd_table so it can't be used) the command.  This
-	attribute will be automatically updated if a second command replaces
-	an earlier command.
-
-	This patch adds additional error handling, and makes more use the
-	gdbpy_handle_exception function.
-
-	Co-Authored-By: Jan Vrany <jan.vrany@labware.com>
-
-2022-03-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: compare some fields against 0 verify_gdbarch
-	After the previous commit, which removes the predicate function
-	gdbarch_register_type_p, I noticed that the gdbarch->register_type
-	field was not checked at in the verify_gdbarch function.
-
-	More than not being checked, the field wasn't mentioned at all.
-
-	I find this strange, I would expect that every field would at least be
-	mentioned - we already generate comments for some fields saying that
-	this field is _not_ being checked, so the fact that this field isn't
-	being checked looks (to me), like this field is somehow slipping
-	through the cracks.
-
-	The comment at the top of gdbarch-components.py tries to explain how
-	the validation is done.  I didn't understand this comment completely,
-	but, I think this final sentence:
-
-	  "Otherwise, the check is done against 0 (really NULL for function
-	  pointers, but same idea)."
-
-	Means that, if non of the other cases apply, then the field should be
-	checked against 0, with 0 indicating that the field is invalid (was
-	not set by the tdep code).  However, this is clearly not being done.
-
-	Looking in gdbarch.py at the code to generate verify_gdbarch we do
-	find that there is a case that is not handled, the case where the
-	'invalid' field is set true True, but non of the other cases apply.
-
-	In this commit I propose two changes:
-
-	 1. Handle the case where the 'invalid' field of a property is set to
-	 True, this should perform a check for the field of gdbarch still
-	 being set to 0, and
-
-	 2. If the if/else series that generates verify_gdbarch doesn't handle
-	 a property then we should raise an exception.  This means that if a
-	 property is added which isn't handled, we should no longer silently
-	 ignore it.
-
-	After doing this, I re-generated the gdbarch files and saw that the
-	following gdbarch fields now had new validation checks:
-
-	  register_type
-	  believe_pcc_promotion
-	  register_to_value
-	  value_to_register
-	  frame_red_zone_size
-	  displaced_step_restore_all_in_ptid
-	  solib_symbols_extension
-
-	Looking at how these are currently set in the various -tdep.c files, I
-	believe the only one of these that is required to be set for all
-	architectures is the register_type field.
-
-	And so, for all of the other fields, I've changed the property
-	definition on gdbarch-components.py, setting the 'invalid' field to
-	False.
-
-	Now, after re-generation, the register_type field is checked against
-	0, thus an architecture that doesn't set_gdbarch_register_type will
-	now fail during validation.  For all the other fields we skip the
-	validation, in which case, it is find for an architecture to not set
-	this field.
-
-	My expectation is that there should be no user visible changes after
-	this commit.  Certainly for all fields except register_type, all I've
-	really done is cause some extra comments to be generated, so I think
-	that's clearly fine.
-
-	For the register_type field, my claim is that any architecture that
-	didn't provide this would fail when creating its register cache, and I
-	couldn't spot an architecture that doesn't provide this hook.  As
-	such, I think this change should be fine too.
-
-2022-03-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: remove the predicate function for gdbarch_register_type
-	I don't believe that the gdbarch_register_type_p predicate is called
-	anywhere in GDB, and the gdbarch_register_type function is called
-	without checking the gdbarch_register_type_p predicate function
-	everywhere it is used, for example in
-	init_regcache_descr (regcache.c).
-
-	My claim is that the gdbarch_register_type function is required for
-	every architecture, and GDB will not work if this function is not
-	supplied.
-
-	And so, in this commit, I remove the 'predicate=True' from
-	gdbarch-components.py for the 'register_type' field, and regenerate
-	the gdbarch files.
-
-	There should be no user visible changes after this commit.
-
-2022-03-14  Patrick Monnerat  <patrick@monnerat.net>
-
-	Replace deprecated_target_wait_hook by observers
-	Commit b60cea7 (Make target_wait options use enum flags) broke
-	deprecated_target_wait_hook usage: there's a commit comment telling
-	this hook has not been converted.
-
-	Rather than trying to mend it, this patch replaces the hook by two
-	target_wait observers:
-
-	target_pre_wait (ptid_t ptid)
-	target_post_wait (ptid_t event_ptid)
-
-	Upon target_wait entry, target_pre_wait is notified with the ptid
-	passed to target_wait. Upon exit, target_post_wait is notified with
-	the event ptid returned by target_wait. Should an exception occur,
-	event_ptid is null_ptid.
-
-	This change benefits to Insight (out-of-tree): there's no real use of the
-	late hook in gdb itself.
-
-2022-03-14  Tom Tromey  <tromey@adacore.com>
-
-	Correctly print subrange types in generic_value_print
-	I noticed that generic_value_print assumes that a subrange type is
-	always a subrange of an integer type.  However, this isn't necessarily
-	the case.  In Ada, for example, one has subranges of character and
-	enumeration types.
-
-	This code isn't often exercised, I think, because languages with real
-	subrange types tend to implement their own printers.  However, it
-	still seemed worth fixing.
-
-2022-03-14  Luis Machado  <luis.machado@arm.com>
-
-	[aarch64/arm] Properly extract the return value returned in memory
-	When running gdb.cp/non-trivial-retval.exp, the following shows up for
-	both aarch64-linux and armhf-linux:
-
-	Breakpoint 3, f1 (i1=23, i2=100) at src/gdb/testsuite/gdb.cp/non-trivial-retval.cc:35
-	35        A a;
-	(gdb) finish
-	Run till exit from #0  f1 (i1=23, i2=100) at src/gdb/testsuite/gdb.cp/non-trivial-retval.cc:35
-	main () at /src/gdb/testsuite/gdb.cp/non-trivial-retval.cc:163
-	163       B b = f2 (i1, i2);
-	Value returned is $6 = {a = -11952}
-	(gdb)
-
-	The return value should be {a = 123} instead. This happens because the
-	backends don't extract the return value from the correct location. GDB should
-	fetch a pointer to the memory location from X8 for aarch64 and r0 for armhf.
-
-	With the patch, gdb.cp/non-trivial-retval.exp has full passes on
-	aarch64-linux and armhf-linux on Ubuntu 20.04/18.04.
-
-	The problem only shows up with the "finish" command. The "call" command
-	works correctly and displays the correct return value.
-
-	This is also related to PR gdb/28681
-	(https://sourceware.org/bugzilla/show_bug.cgi?id=28681) and fixes FAIL's in
-	gdb.ada/mi_var_array.exp.
-
-	A new testcase is provided, and it exercises GDB's ability to "finish" a
-	function that returns a large struct (> 16 bytes) and display the
-	contents of this struct correctly. This has always been incorrect for
-	these backends, but no testcase exercised this particular scenario.
-
-2022-03-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-13  Alan Modra  <amodra@gmail.com>
-
-	PR28959, obdump doesn't disassemble mftb instruction
-	Without a -M cpu option given, powerpc objdump defaults currently to
-	-Mpower10 but -Many is also given.  Commit 1ff6a3b8e562 regressed
-	-Many disassembly of instructions that are encoded differently
-	depending on cpu, such as mftb which has pre- and post-power4
-	encodings.
-
-		PR 28959
-		* ppc-dis.c (lookup_powerpc): Revert 2021-05-28 change.  Instead
-		only look at deprecated PPC_OPCODE_RAW bit when -Many.
-
-2022-03-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-12  Tom Tromey  <tom@tromey.com>
-
-	Relax regexp in gdb.rust/unsized.exp
-	With nightly rustc, gdb.rust/unsized.exp fails:
-
-	    (gdb) ptype *us
-	    Structure has no component named operator*.
-
-	rustc changed to emit a bit more debug info for unsized types.
-	Because the original test is just to make sure that ptype of an
-	unsized array looks right, this patch relaxes the regexp and changes
-	the expression.  I think this keeps the original test meaning, but
-	also works with nightly.  I also tested stable and 1.48.
-
-2022-03-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-11  Tom Tromey  <tromey@adacore.com>
-
-	Avoid crash with cross-linux core file
-	An internal test case creates a core file using gcore, then restarts
-	gdb with that core.  When run with a cross-linux gdb (in this case,
-	x86-64 host with ppc64-linux target), the test fails:
-
-	    | (gdb) core core
-	    | [New LWP 18437]
-	    | warning: `/lib64/libc.so.6': Shared library architecture unknown is not compatible with target architecture powerpc:common64.
-	    | warning: Could not load shared library symbols for /lib64/ld64.so.1.
-	    | Do you need "set solib-search-path" or "set sysroot"?
-	    | ../../src/gdb/gdbarch.c:3388: internal-error: int gdbarch_elf_make_msymbol_special_p(gdbarch*): Assertion `gdbarch != NULL' failed.
-	    | A problem internal to GDB has been detected,
-	    | further debugging may prove unreliable.
-	    | Quit this debugging session? (y or n) y
-
-	What's happening here is that the core file lists some shared
-	libraries.  These aren't available via the solib search path, and so
-	gdb finds the local (x86-64) libraries.  This is not ideal, but on the
-	other hand, it is what was asked for -- while the test does set
-	solib-search-path, it does not set the sysroot.
-
-	But, because gdb isn't configured to handle these libraries, it
-	crashes.
-
-	It seems to me that it's better to avoid the crash by having
-	solib_bfd_open fail in the case where a library is incompatible.  That
-	is what this patch does.  Now it looks like:
-
-	    | [New LWP 15488]
-	    | Error while mapping shared library sections:
-	    | `/lib64/libc.so.6': Shared library architecture unknown is not compatible with target architecture powerpc:common64.
-
-	... and does not crash gdb.
-
-	I don't have a good setup for testing this using dejagnu, so I don't
-	know whether an existing gdb test covers this scenario.
-
-2022-03-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: remove duplicates from gdb.base/stap-probe.exp
-	Remove the duplicate test names from gdb.base/stap-probe.exp, this is
-	done by actually passing a unique test name in a couple of
-	places (rather than using the command as the test name), and in
-	another couple of places, a test has a duplicate name due to a cut &
-	paste error, which I've fixed.
-
-	There's no change in what is actually being tested after this commit.
-
-2022-03-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	gprofng: a new GNU profiler
-	top-level
-		* Makefile.def: Add gprofng module.
-		* configure.ac: Add --enable-gprofng option.
-		* src-release.sh: Add gprofng.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-		* gprofng: New directory.
-
-	binutils
-		* MAINTAINERS: Add gprofng maintainer.
-		* README-how-to-make-a-release: Add gprofng.
-
-	include.
-		* collectorAPI.h: New file.
-		* libcollector.h: New file.
-		* libfcollector.h: New file.
-
-2022-03-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-10  Aaron Merey  <amerey@redhat.com>
-
-	gdb/auto-load: Remove repeating "auto-load" from debug message
-	Remove "auto-load:" from a format string passed to auto_load_debug_printf.
-	It is unnecessary since this function will prefix the string with "[auto-load]"
-	when printing it.
-
-2022-03-10  Tom Tromey  <tromey@adacore.com>
-
-	Change how "print/x" displays floating-point value
-	Currently, "print/x" will display a floating-point value by first
-	casting it to an integer type.  This yields weird results like:
-
-	    (gdb) print/x 1.5
-	    $1 = 0x1
-
-	This has confused users multiple times -- see PR gdb/16242, where
-	there are several dups.  I've also seen some confusion from this
-	internally at AdaCore.
-
-	The manual says:
-
-	    'x'
-		 Regard the bits of the value as an integer, and print the integer
-		 in hexadecimal.
-
-	... which seems more useful.  So, perhaps what happened is that this
-	was incorrectly implemented (or maybe correctly implemented and then
-	regressed, as there don't seem to be any tests).
-
-	This patch fixes the bug.
-
-	There was a previous discussion where we agreed to preserve the old
-	behavior:
-
-	    https://sourceware.org/legacy-ml/gdb-patches/2017-06/msg00314.html
-
-	However, I think it makes more sense to follow the manual.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16242
-
-2022-03-10  Tom Tromey  <tromey@adacore.com>
-
-	Simplify the ui-out progress API
-	I noticed that 'progress' is a method on ui-out, but it seems to me
-	that it would be better if the only API were via the progress_meter
-	class.  This patch makes this change, changing progress to be a method
-	on the meter itself.
-
-2022-03-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbarch: fix typo in gdbarch-components.py
-	Fixes a minor typo, in a comment, in the gdbarch-components.py script.
-
-	There should be no user visible changes after this commit.
-
-2022-03-10  Lancelot SIX  <lancelot.six@amd.com>
-
-	Process exit status is leader exit status testcase
-	This adds a multi-threaded testcase that has all threads in the
-	process exit with a different exit code, and ensures that GDB reports
-	the thread group leader's exit status as the whole-process exit
-	status.  Before this set of patches, this would randomly report the
-	exit code of some other thread, and thus fail.
-
-	Tested on Linux-x86_64, native and gdbserver.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-	Change-Id: I30cba2ff4576fb01b5169cc72667f3268d919557
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	Re-add zombie leader on exit, gdbserver/linux
-	Same as the previous patch, but for GDBserver.
-
-	In summary, the current zombie leader detection code in linux-low.cc
-	has a race -- if a multi-threaded inferior exits just before
-	check_zombie_leaders finds that the leader is now zombie via checking
-	/proc/PID/status, check_zombie_leaders deletes the leader, assuming we
-	won't get an event for that exit (which we won't in some scenarios,
-	but not in this one), which is a false-positive scenario, where the
-	whole process is simply exiting.  Later when we see the last LWP in
-	our list exit, we report that LWP's exit status as exit code, even
-	though for the (real) parent process, the exit code that counts is the
-	child's leader thread's exit code.
-
-	Like for GDB, the solution here is to:
-
-	   - only report whole-process exit events for the leader.
-	   - re-add the leader back to the LWP list when we finally see it
-	     exit.
-
-	Change-Id: Id2d7bbb51a415534e1294fff1d555b7ecaa87f1d
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	Re-add zombie leader on exit, gdb/linux
-	The current zombie leader detection code in linux-nat.c has a race --
-	if a multi-threaded inferior exits just before check_zombie_leaders
-	finds that the leader is now zombie via checking /proc/PID/status,
-	check_zombie_leaders deletes the leader, assuming we won't get an
-	event for that exit (which we won't in some scenarios, but not in this
-	one).  That might seem mostly harmless, but it has some downsides:
-
-	 - later when we continue pulling events out of the kernel, we will
-	   collect the exit event of the non-leader threads, and once we see
-	   the last lwp in our list exit, we return _that_ lwp's exit code as
-	   whole-process exit code to infrun, instead of the leader's exit
-	   code.
-
-	 - this can cause a hang in stop_all_threads in infrun.c.  Say there
-	   are 2 threads in the process.  stop_all_threads stops each of those
-	   threads, and then waits for two stop or exit events, one for each
-	   thread.  If the whole process exits, and check_zombie_leaders hits
-	   the false-positive case, linux-nat.c will only return one event to
-	   GDB (the whole-process exit returned when we see the last thread,
-	   the non-leader thread, exit), making stop_all_threads hang forever
-	   waiting for a second event that will never come.
-
-	However, in this false-positive scenario, where the whole process is
-	exiting, as opposed to just the leader (with pthread_exit(), for
-	example), we _will_ get an exit event shortly for the leader, after we
-	collect the exit event of all the other non-leader threads.  Or put
-	another way, we _always_ get an event for the leader after we see it
-	become zombie.
-
-	I tried a number of approaches to fix this:
-
-	#1 - My first thought to address the race was to make GDB always
-	report the whole-process exit status for the leader thread, not for
-	whatever is the last lwp in the list.  We _always_ get a final exit
-	(or exec) event for the leader, and when the race triggers, we're not
-	collecting it.
-
-	#2 - My second thought was to try to plug the race in the first place.
-
-	I thought of making GDB call waitpid/WNOHANG for all non-leader
-	threads immediately when the zombie leader is detected, assuming there
-	would be an exit event pending for each of them waiting to be
-	collected.  Turns out that that doesn't work -- you can see the leader
-	become zombie _before_ the kernel kills all other threads.  Waitpid in
-	that small time window returns 0, indicating no-event.  Thankfully we
-	hit that race window all the time, which avoided trading one race for
-	another.  Looking at the non-leader thread's status in /proc doesn't
-	help either, the threads are still in running state for a bit, for the
-	same reason.
-
-	#3 - My next attempt, which seemed promising, was to synchronously
-	stop and wait for the stop for each of the non-leader threads.  For
-	the scenario in question, this will collect all the exit statuses of
-	the non-leader threads.  Then, if we are left with only the zombie
-	leader in the lwp list, it means we either have a normal while-process
-	exit or an exec, in which case we should not delete the leader.  If
-	_only_ the leader exited, like in gdb.threads/leader-exit.exp, then
-	after pausing threads, we will still have at least one live non-leader
-	thread in the list, and so we delete the leader lwp.  I got this
-	working and polished, and it was only after staring at the kernel code
-	to convince myself that this would really work (and it would, for the
-	scenario I considered), that I realized I had failed to account for
-	one scenario -- if any non-leader thread is _already_ stopped when
-	some thread triggers a group exit, like e.g., if you have some threads
-	stopped and then resume just one thread with scheduler-locking or
-	non-stop, and that thread exits the process.  I also played with
-	PTRACE_EVENT_EXIT, see if it would help in any way to plug the race,
-	and I couldn't find a way that it would result in any practical
-	difference compared to looking at /proc/PID/status, with respect to
-	having a race.
-
-	So I concluded that there's no way to plug the race, we just have to
-	deal with it.  Which means, going back to approach #1.  That is the
-	approach taken by this patch.
-
-	Change-Id: I6309fd4727da8c67951f9cea557724b77e8ee979
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	gdbserver: Reindent check_zombie_leaders
-	This fixes the indentation of
-	linux_process_target::check_zombie_leaders, which will help with
-	keeping its comments in sync with the gdb/linux-nat.c counterpart.
-
-	Change-Id: I37332343bd80423d934249e3de2d04feefad1891
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	gdbserver: Reorganize linux_process_target::filter_event
-	Reorganize linux-low.cc:linux_process_target::filter_event such that
-	all the handling for events for LWPs not in the LWP list is together.
-	This helps make a following patch clearer.  The comments and debug
-	messages have also been tweaked to have them synchronized with the GDB
-	counterpart.
-
-	Change-Id: If9019635f63a846607cfda44b454b4254a404019
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	gdb: Reorganize linux_nat_filter_event
-	Reorganize linux-nat.c:linux_nat_filter_event such that all the
-	handling for events for LWPs not in the LWP list is together.  This
-	helps make a following patch clearer.  The comments and debug messages
-	have also been tweaked - the end goal is to have them synchronized
-	with the gdbserver counterpart.
-
-	Change-Id: I8586d8dcd76d8bd3795145e3056fc660e3b2cd22
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	Fix gdb.threads/current-lwp-dead.exp race
-	If we make GDB report the process EXIT event for the leader thread, as
-	will be done in a latter patch of this series, then
-	gdb.threads/current-lwp-dead.exp starts failing:
-
-	 (gdb) break fn_return
-	 Breakpoint 2 at 0x5555555551b5: file /home/pedro/rocm/gdb/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.threads/current-lwp-dead.c, line 45.
-	 (gdb) continue
-	 Continuing.
-	 [New LWP 2138466]
-	 [Inferior 1 (process 2138459) exited normally]
-	 (gdb) FAIL: gdb.threads/current-lwp-dead.exp: continue to breakpoint: fn_return (the program exited)
-
-	The inferior exit reported is actually correct.  The main thread has
-	indeed exited, and that's the thread that has the right exit code to
-	report to the user, as that's the exit code that is reported to the
-	program's parent.  In this case, GDB managed to collect the exit code
-	for the leader thread before reaping the other thread, because in
-	reality, the testcase isn't creating standard threads, it is using raw
-	clone, and the new clones are put in their own thread group.
-
-	Fix it by making the main "thread" not exit until the scenario we're
-	exercising plays out.  Also, run the program to completion for
-	completeness.
-
-	The original program really wanted the leader thread to exit before
-	the fn_return function was reached -- it was important that the
-	current thread as pointed by inferior_ptid was gone when infrun got
-	the breakpoint event.  I've tweaked the testcase to ensure that that
-	condition is still held, though it is no longer the main thread that
-	exits.  This required a bit of synchronization between the threads,
-	which required using CLONE_VM unconditionally.  The #ifdef guards were
-	added as a fix for
-	https://sourceware.org/bugzilla/show_bug.cgi?id=11214, though I don't
-	think they were necessary because the program is not using TLS.  If it
-	turns out they were necessary, we can link the testcase with "-z now"
-	instead, which was mentioned as an alternative workaround in that
-	Bugzilla.
-
-	Change-Id: I7be2f0da4c2fe8f80a60bdde5e6c623d8bd5a0aa
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	Fix gdb.threads/clone-new-thread-event.exp race
-	If we make GDB report the process EXIT event for the leader thread,
-	instead of whatever is the last thread in the LWP list, as will be
-	done in a latter patch of this series, then
-	gdb.threads/current-lwp-dead.exp starts failing:
-
-	 (gdb) FAIL: gdb.threads/clone-new-thread-event.exp: catch SIGUSR1 (the program exited)
-
-	This is a testcase race -- the main thread does not wait for the
-	spawned clone "thread" to finish before exiting, so the main program
-	may exit before the second thread is scheduled and reports its
-	SIGUSR1.  With the change to make GDB report the EXIT for the leader,
-	the race is 100% reproducible by adding a sleep(), like so:
-
-	 --- c/gdb/testsuite/gdb.threads/clone-new-thread-event.c
-	 +++ w/gdb/testsuite/gdb.threads/clone-new-thread-event.c
-	 @@ -51,6 +51,7 @@ local_gettid (void)
-	  static int
-	  fn (void *unused)
-	  {
-	 +  sleep (1);
-	    tkill (local_gettid (), SIGUSR1);
-	    return 0;
-	  }
-
-	Resulting in:
-
-	 Breakpoint 1, main (argc=1, argv=0x7fffffffd418) at gdb.threads/clone-new-thread-event.c:65
-	 65        stack = malloc (STACK_SIZE);
-	 (gdb) continue
-	 Continuing.
-	 [New LWP 3715562]
-	 [Inferior 1 (process 3715555) exited normally]
-	 (gdb) FAIL: gdb.threads/clone-new-thread-event.exp: catch SIGUSR1 (the program exited)
-
-	That inferior exit reported is actually correct.  The main thread has
-	indeed exited, and that's the thread that has the right exit code to
-	report to the user, as that's the exit code that is reported to the
-	program's parent.  In this case, GDB managed to collect the exit code
-	for the leader thread before reaping the other thread, because in
-	reality, the testcase isn't creating standard threads, it is using raw
-	clone, and the new clones are put in their own thread group.
-
-	Fix it by making the main thread wait for the child to exit.  Also,
-	run the program to completion for completeness.
-
-	Change-Id: I315cd3dc2b9e860395dcab9658341ea868d7a6bf
-
-2022-03-10  Pedro Alves  <pedro@palves.net>
-
-	Fix gdbserver/linux target_waitstatus logging assert
-	Turning on debug output in gdbserver leads to an assertion failure if
-	gdbserver reports a non-signal event:
-
-	    [threads] wait_1: LWP 3273770: extended event with waitstatus status->kind = EXECD, execd_pathname = gdb.threads/non-ldr-exc-1/non-ldr-exc-1
-	    [threads] wait_1: Hit a non-gdbserver trap event.
-	  ../../src/gdbserver/../gdb/target/waitstatus.h:365: A problem internal to GDBserver has been detected.
-	  sig: Assertion `m_kind == TARGET_WAITKIND_STOPPED || m_kind == TARGET_WAITKIND_SIGNALLED' failed.
-
-	Fix it in the obvious way, using target_waitstatus::to_string(),
-	resulting in, for example:
-
-	  [threads] wait_1: ret = LWP 1542412.1542412, status->kind = STOPPED, sig = GDB_SIGNAL_TRAP
-
-	Change-Id: Ia4832f9b4fa39f4af67fcaf21fd4d909a285a645
-
-2022-03-10  Nick Clifton  <nickc@redhat.com>
-
-	Add option to objdump/readelf to disable access to debuginfod servers.
-		* dwarf.c (use_debuginfod): New variable.  Set to 1.
-		(load_separate_debug_info): Only call
-		debuginfod_fetch_separate_debug_info is use_debuginfod is true.
-		(dwarf_select_sections_by_names): Add do-not-use-debuginfod and
-		use-debuginfod options.
-		(dwarf_select_sections_by_letters): Add D and E options.
-		* dwarf.h (use_debuginfod): New extern.
-		* objdump.c (usage): Mention the new options.
-		* readelf.c (usage): Likewise.
-		* doc/binutils.texi: Document the new options.
-		* doc/debug-options.texi: Describe the new options.
-		* NEWS: Mention the new feature.
-		* testsuite/binutils-all/debuginfod.exp: Add tests of the new
-		options.
-
-2022-03-10  Alan Modra  <amodra@gmail.com>
-
-	Re: ld: Add a before_plugin_all_symbols_read hook
-		* testsuite/ld-plugin/pr28849.d: Adjust for powerpc64 function
-		descriptors.
-
-2022-03-10  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Add a before_plugin_all_symbols_read hook
-	Add a before_plugin_all_symbols_read hook to load symbol references from
-	DT_NEEDED entries, included from --copy-dt-needed-entries, before reading
-	plugin symbols to properly resolve plugin symbol references.
-
-	bfd/
-
-		PR ld/28849
-		* elf-bfd.h (elf_link_hash_table): Add handling_dt_needed.
-		* elflink.c (_bfd_elf_merge_symbol): Don't set non_ir_ref_dynamic
-		before plugin 'all symbols read' hook is called.
-
-	ld/
-
-		PR ld/28849
-		* ldelf.c (ldelf_handle_dt_needed): New function.
-		(ldelf_before_plugin_all_symbols_read): Likewise.
-		(ldelf_after_open): Call ldelf_handle_dt_needed.
-		* ldelf.h (ldelf_before_plugin_all_symbols_read): New.
-		* ldemul.c (ldemul_before_plugin_all_symbols_read): Likewise.
-		* ldemul.h (ldemul_before_plugin_all_symbols_read): Likewise.
-		(ld_emulation_xfer_struct): Add before_plugin_all_symbols_read.
-		* ldlang.c (lang_process): Call
-		ldemul_before_plugin_all_symbols_read before calling
-		plugin_call_all_symbols_read.
-		* emultempl/elf.em
-		(gld${EMULATION_NAME}_before_plugin_all_symbols_read): New.
-		(LDEMUL_BEFORE_PLUGIN_ALL_SYMBOLS_READ): New.
-		* emultempl/emulation.em (ld_${EMULATION_NAME}_emulation):
-		Initialize the before_plugin_all_symbols_read field.
-		* testsuite/ld-plugin/lto.exp: Run PR ld/28849 tests.
-		* testsuite/ld-plugin/pr28849.d: New file.
-		* testsuite/ld-plugin/pr28849a.c: Likewise.
-		* testsuite/ld-plugin/pr28849b.c: Likewise.
-
-2022-03-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-09  Hans-Peter Nilsson  <hp@axis.com>
-
-	toplevel: Makefile.def: Make configure-sim depend on all-readline
-	Without this, a "make all-sim" without the equivalent of
-	libreadline-dev installed on the build system, won't
-	properly pick up the in-tree readline build, and you'll see:
-
-	mkdir -p -- ./sim
-	Configuring in ./sim
-	configure: creating cache ./config.cache
-	checking build system type... x86_64-pc-linux-gnu
-	checking host system type... x86_64-pc-linux-gnu
-	checking target system type... cris-axis-elf
-	checking for x86_64-pc-linux-gnu-gcc... gcc
-	checking whether the C compiler works... yes
-	...
-	checking for library containing tgetent... -ltermcap
-	checking for readline in -lreadline... no
-	configure: error: the required "readline" library is missing
-	make[1]: *** [Makefile:11188: configure-sim] Error 1
-	make[1]: Leaving directory '/home/hp/sim/b'
-
-	The sim dependency on readline is apparently (nominally)
-	valid as there's a readline call in sim/erc32/sis.c.
-
-	2022-02-21  Hans-Peter Nilsson  <hp@axis.com>
-
-		* Makefile.def (dependencies): Make configure-sim depend on
-		all-readline.
-
-2022-03-09  Maciej W. Rozycki  <macro@embecosm.com>
-
-	GDB/testsuite: Fix a "displayed" typo in gdb.base/default.exp
-	Fix a typo, s/dislayed/displayed/ in default.exp at the top level.
-
-	GDB/testsuite: Remove a stray backslash from gdb.base/settings.exp
-	Remove a stray trailing backslash from `test-integer' in settings.exp.
-	It is harmless as only white space follows in the next line before the
-	closing brace, so it merely swallows the newline character, but it may
-	look confusing to the reader.
-
-2022-03-09  Christina Schimpe  <christina.schimpe@intel.com>  (tiny change)
-
-	* gdb/doc/gdb.texinfo (Requirements): Fix a typo.
-
-2022-03-09  Alan Modra  <amodra@gmail.com>
-
-	Constant fold view increment expressions
-	The idea here is to replace expressions like v + 1 + 1 + 1 with v + 3.
-
-		* dwarf2dbg.c (set_or_check_view): Remove useless assertion.
-		Resolve multiple view increments.
-		* testsuite/gas/elf/dwarf2-18.d: Don't xfail mep.
-
-2022-03-09  Alan Modra  <amodra@gmail.com>
-
-	Reduce duplicated symbol_clone_if_forward_ref work
-		* symbol.c (struct symbol_flags): Add forward_resolved.
-		(symbol_entry_find): Update needle initialisation.
-		(symbol_clone_if_forward_ref): Do no work when forward_resolved
-		is already set.  Set forward_resolved.
-
-2022-03-09  Aaron Merey  <amerey@redhat.com>
-
-	gdb: Try searching for auto-load script using .gnu_debuglink
-	If an auto-load script cannot be found and objfile is a separate
-	debuginfo whose filename does not match the name found in the parent
-	file's .gnu_debuglink section, then repeat the search using the
-	parent's filename where the last component is replaced with the
-	.gnu_debuglink name.
-
-	For example if the parent's filename is "/usr/lib/libxyz.so" and the
-	name in its .gnu_debuglink section is "libxyz.so.debug", then
-	if no auto-load script is otherwise found the search will be
-	repeated with the filename "/usr/lib/libxyz.so.debug".
-
-	This helps gdb locate auto-load scripts when debuginfo files do not have
-	the expected filename, such as when they are aquired from debuginfod.
-
-2022-03-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-08  Aaron Merey  <amerey@redhat.com>
-
-	PR gdb/27876 - debuginfod-downloaded source files don't pass proper fullname across mi / (gdb)info source
-	Source files downloaded from debuginfod currently use their original DWARF
-	filename as their "fullname".  This causes a mismatch between the fullname
-	and the actual location of the source file in the debuginfod client cache.
-
-	MI consumers such as VSCode will fail to open debuginfod-downloaded
-	source files due to this.  Also 'info source' will fail to include the
-	true paths of these files.
-
-	To fix this, use the debuginfod cache path as the fullname for debuginfod-
-	downloaded source files.
-
-2022-03-08  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/mi: preserve user selected thread and frame when invoking MI commands
-	Fix for PR gdb/20684.  When invoking MI commands with --thread and/or
-	--frame, the user selected thread and frame was not preserved:
-
-	  (gdb)
-	  info thread
-	  &"info thread\n"
-	  ~"  Id   Target Id                                           Frame \n"
-	  ~"* 1    Thread 0x7ffff7c30740 (LWP 19302) \"user-selected-c\" main () at /home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:60\n"
-	  ~"  2    Thread 0x7ffff7c2f700 (LWP 19306) \"user-selected-c\" child_sub_function () at /home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:30\n"
-	  ~"  3    Thread 0x7ffff742e700 (LWP 19307) \"user-selected-c\" child_sub_function () at /home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:30\n"
-	  ^done
-	  (gdb)
-	  info frame
-	  &"info frame\n"
-	  ~"Stack level 0, frame at 0x7fffffffdf90:\n"
-	  ~" rip = 0x555555555207 in main (/home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:60); saved rip = 0x7ffff7c5709b\n"
-	  ~" source language c.\n"
-	  ~" Arglist at 0x7fffffffdf80, args: \n"
-	  ~" Locals at 0x7fffffffdf80, Previous frame's sp is 0x7fffffffdf90\n"
-	  ~" Saved registers:\n "
-	  ~" rbp at 0x7fffffffdf80, rip at 0x7fffffffdf88\n"
-	  ^done
-	  (gdb)
-	  -stack-info-depth --thread 3
-	  ^done,depth="4"
-	  (gdb)
-	  info thread
-	  &"info thread\n"
-	  ~"  Id   Target Id                                           Frame \n"
-	  ~"  1    Thread 0x7ffff7c30740 (LWP 19302) \"user-selected-c\" main () at /home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:60\n"
-	  ~"  2    Thread 0x7ffff7c2f700 (LWP 19306) \"user-selected-c\" child_sub_function () at /home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:30\n"
-	  ~"* 3    Thread 0x7ffff742e700 (LWP 19307) \"user-selected-c\" child_sub_function () at /home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:30\n"
-	  ^done
-	  (gdb)
-	  info frame
-	  &"info frame\n"
-	  ~"Stack level 0, frame at 0x7ffff742dee0:\n"
-	  ~" rip = 0x555555555169 in child_sub_function (/home/uuu/gdb/gdb/testsuite/gdb.mi/user-selected-context-sync.c:30); saved rip = 0x555555555188\n"
-	  ~" called by frame at 0x7ffff742df00\n"
-	  ~" source language c.\n"
-	  ~" Arglist at 0x7ffff742ded0, args: \n"
-	  ~" Locals at 0x7ffff742ded0, Previous frame's sp is 0x7ffff742dee0\n"
-	  ~" Saved registers:\n "
-	  ~" rbp at 0x7ffff742ded0, rip at 0x7ffff742ded8\n"
-	  ^done
-	  (gdb)
-
-	This caused problems for frontends that provide access to CLI because UI
-	may silently change the context for CLI commands (as demonstrated above).
-
-	This commit fixes the problem by restoring thread and frame in
-	mi_cmd_execute (). With this change, there are only two GDB/MI commands
-	that can change user selected context: -thread-select and -stack-select-frame.
-	This allows us to remove all and rather complicated logic of notifying
-	about user selected context change from mi_execute_command (), leaving it
-	to these two commands themselves to notify.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20684
-
-2022-03-08  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: announce upcoming removal of Python 2 support from gdb
-	As has been discussed here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-January/184910.html
-
-	Python 2 support will be removed from GDB after GDB 12 has branched.
-	This commit places an entry in the NEWS file to inform users of this
-	decision.
-
-2022-03-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: add new test for comparing char types in Python
-	There's an interesting property of the 'char' type in C and C++, the
-	three types 'char', 'unsigned char', and 'signed char', are all
-	considered distinct.
-
-	In contrast, and 'int' is signed by default, and so 'int' and 'signed
-	int' are considered the same type.
-
-	This commit adds a test to ensure that this edge case is visible to a
-	user from Python.
-
-	It is worth noting that for any particular compiler implementation (or
-	the flags a compiler was invoked with), a 'char' will be either signed
-	or unsigned; it has to be one or the other, and a user can access this
-	information by using the Type.is_signed property.  However, for
-	something like function overload resolution, the 'char' type is
-	considered distinct from the signed and unsigned variants.
-
-	There's no change to GDB with this commit, this is just adding a new
-	test to guard some existing functionality.
-
-2022-03-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add Type.is_signed property
-	Add a new read-only property, Type.is_signed, which is True for signed
-	types, and False otherwise.
-
-	This property should only be read on types for which Type.is_scalar is
-	true, attempting to read this property for non-scalar types will raise
-	a ValueError.
-
-	I chose 'is_signed' rather than 'is_unsigned' in order to match the
-	existing Architecture.integer_type method, which takes a 'signed'
-	parameter.  As far as I could find, that was the only existing
-	signed/unsigned selector in the Python API, so it seemed reasonable to
-	stay consistent.
-
-2022-03-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add Type.is_scalar property
-	Add a new read-only property which is True for scalar types,
-	otherwise, it's False.
-
-2022-03-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: add --no-connection to MI -add-inferior command
-	Following on from the previous commit, where the -add-inferior command
-	now uses the same connection as the current inferior, this commit adds
-	a --no-connection option to -add-inferior.
-
-	This new option matches the existing option of the same name for the
-	CLI version of add-inferior; the new inferior is created with no
-	connection.
-
-	I've added a new 'connection' field to the MI output of -add-inferior,
-	which includes the connection number and short name.  I haven't
-	included the longer description field, this is the MI after all.  My
-	expectation would be that if the frontend wanted to display all the
-	connection details then this would be looked up from 'info
-	connection' (or the MI equivalent if/when such a command is added).
-
-	The existing -add-inferior tests are updated, as are the docs.
-
-2022-03-07  Umair Sair  <umair_sair@hotmail.com>
-
-	gdb/mi: fix regression in mi -add-inferior command
-	Prior to the multi-target support commit:
-
-	  commit 5b6d1e4fa4fc6827c7b3f0e99ff120dfa14d65d2
-	  Date:   Fri Jan 10 20:06:08 2020 +0000
-
-	      Multi-target support
-
-	When a new inferior was added using the MI -add-inferior command, the
-	new inferior would be using the same target as all the other
-	inferiors.  This makes sense, GDB only supported a single target stack
-	at a time.
-
-	After the above commit, each inferior has its own target stack.
-
-	To maintain backward compatibility, for the CLI add-inferior command,
-	when a new inferior is added the above commit has the new inferior
-	inherit a copy of the target stack from the current inferior.
-
-	Unfortunately, this same backward compatibility is missing for the MI.
-
-	This commit fixes this oversight.
-
-	Now, when the -add-inferior MI command is used, the new inferior will
-	inherit a copy of the target stack from the current inferior.
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Deprecate dbx mode
-	GDB has a dbx emulation mode that adds a few aliases and helper
-	commands.  This mode is barely documented and is very superficial
-	besides.  I suspect it is rarely used, and I would like to propose
-	deprecating it for GDB 12, and then removing it in GDB 13.
-
-2022-03-07  Pedro Alves  <pedro@palves.net>
-
-	Remove unnecessary inferior lookup in infrun:handle_one
-	infrun.c:handle_one calls find_inferior_ptid unnecessarily, since we
-	already have a thread pointer handy, and the thread has a pointer to
-	the inferior.  This commit removes the unnecessary lookup.
-
-	Change-Id: I2ae18601dd75346c6c91068e9a4f9a6484fb3339
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Fix bug in ada_print_floating
-	ada_print_floating rewrites a floating-point string representation to
-	conform to Ada syntax.  However, if you managed to get a floating
-	point error, you might see:
-
-	    (gdb) print whatever
-	    $2 = <invalid float valu.0e>
-
-	What's happening here is that ada_print_floating doesn't recognize
-	this error case, and proceeds to modify the error text.
-
-	This patch fixes this problem.
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Implement real literal extension for Ada
-	Sometimes it is convenient to be able to specify the exact bits of a
-	floating-point literal.  For example, you may want to set a
-	floating-point register to a denormalized value, or to a particular
-	NaN.
-
-	In C, you can do this by combining the "{}" cast with an array
-	literal, like:
-
-	    (gdb) p {double}{0x576488BDD2AE9FFE}
-	    $1 = 9.8765449999999996e+112
-
-	This patch adds a somewhat similar idea to Ada.  It extends the lexer
-	to allow "l" and "f" suffixes in a based literal.  The "f" indicates a
-	floating-point literal, and the "l"s control the size of the
-	floating-point type.
-
-	Note that this differs from Ada's based real literals.  I believe
-	those can also be used to control the bits of a floating-point value,
-	but they are a bit more cumbersome to use (simplest is binary but
-	that's also very lengthy).  Also, these aren't implemented in GDB.
-
-	I chose not to allow this extension to work with based integer
-	literals with exponents.  That didn't seem very useful.
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Fix Ada integer literals with exponents
-	While working on another patch, I noticed that Ada integer literals
-	with exponents did not work.  For example, with one form you get an
-	error:
-
-	    (gdb) print 8e2
-	    Invalid digit `e' in based literal
-
-	And with another form you get an incorrect value:
-
-	    (gdb) print 16#8#e2
-	    $2 = 8
-
-	This patch fixes the bugs and adds tests.
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Fix gdb.ada/arrayptr.exp results
-	PR ada/28115 points out that gdb.ada/arrayptr.exp works with GNAT 12,
-	but fails with minimal encodings in earlier versions.
-
-	This patch updates the test to try to report the results correctly.  I
-	tried this with the Fedora 34 system gcc (GCC 11) and with a GCC 12
-	built from git trunk sometime relatively recently.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28115
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Handle non-ASCII identifiers in Ada
-	Ada allows non-ASCII identifiers, and GNAT supports several such
-	encodings.  This patch adds the corresponding support to gdb.
-
-	GNAT encodes non-ASCII characters using special symbol names.
-
-	For character sets like Latin-1, where all characters are a single
-	byte, it uses a "U" followed by the hex for the character.  So, for
-	example, thorn would be encoded as "Ufe" (0xFE being lower case
-	thorn).
-
-	For wider characters, despite what the manual says (it claims
-	Shift-JIS and EUC can be used), in practice recent versions only
-	support Unicode.  Here, characters in the base plane are represented
-	using "Wxxxx" and characters outside the base plane using
-	"WWxxxxxxxx".
-
-	GNAT has some further quirks here.  Ada is case-insensitive, and GNAT
-	emits symbols that have been case-folded.  For characters in ASCII,
-	and for all characters in non-Unicode character sets, lower case is
-	used.  For Unicode, however, characters that fit in a single byte are
-	converted to lower case, but all others are converted to upper case.
-
-	Furthermore, there is a bug in GNAT where two symbols that differ only
-	in the case of "Y WITH DIAERESIS" (and potentially others, I did not
-	check exhaustively) can be used in one program.  I chose to omit
-	handling this case from gdb, on the theory that it is hard to figure
-	out the logic, and anyway if the bug is ever fixed, we'll regret
-	having a heuristic.
-
-	This patch introduces a new "ada source-charset" setting.  It defaults
-	to Latin-1, as that is GNAT's default.  This setting controls how "U"
-	characters are decoded -- W/WW are always handled as UTF-32.
-
-	The ada_tag_name_from_tsd change is needed because this function will
-	read memory from the inferior and interpret it -- and this caused an
-	encoding failure on PPC when running a test that tries to read
-	uninitialized memory.
-
-	This patch implements its own UTF-32-based case folder.  This avoids
-	host platform quirks, and is relatively simple.  A short Python
-	program to generate the case-folding table is included.  It simply
-	relies on whatever version of Unicode is used by the host Python,
-	which seems basically acceptable.
-
-	Test cases for UTF-8, Latin-1, and Latin-3 are included.  This
-	exercises most of the new code paths, aside from Y WITH DIAERESIS as
-	noted above.
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Define HOST_UTF32 in charset.h
-	rust-parse.c has a #define for the host-specific UTF-32 charset name.
-	A later patch needs the same thing, so this patch moves the definition
-	to charset.h for easier reuse.
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Let phex and phex_nz handle sizeof_l==1
-	Currently, neither phex nor phex_nz handle sizeof_l==1 -- they let
-	this case fall through to the default case.  However, a subsequent
-	patch in this series needs this case to work correctly.
-
-	I looked at all calls to these functions that pass a 1 for the
-	sizeof_l parameter.  The only such case seems to be correct with this
-	change.
-
-2022-03-07  Tom Tromey  <tromey@adacore.com>
-
-	Don't pre-size result string in ada_decode
-	Currently, ada_decode pre-sizes the output string, filling it with 'X'
-	characters.  However, it's a bit simpler and more flexible to let
-	std::string do the work here, and simply append characters to the
-	string as we go.  This turns out to be useful for a subsequent patch.
-
-	Simplify a regular expression in ada-lex.l
-	ada-lex.l uses "%option case-insensitive", so there is no need for
-	regular expressions to match upper case.
-
-2022-03-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-06  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-	MIPS/opcodes: Fix alias annotation for branch instructions
-	Correct issues with INSN2_ALIAS annotation for branch instructions:
-
-	- regular MIPS BEQZ/L and BNEZ/L assembly instructions are idioms for
-	  BEQ/L and BNE/L respectively with the `rs' operand equal to $0,
-
-	- microMIPS 32-bit BEQZ and BNEZ assembly instructions are idioms for
-	  BEQ and BNE respectively with the `rt' operand equal to $0,
-
-	- regular MIPS BAL assembly instruction is an idiom for architecture
-	  levels of up to the MIPSr5 ISA and a machine instruction on its own
-	  from the MIPSr6 ISA up.
-
-	Add missing annotation to BEQZ/L and BNEZ/L accordingly then and add a
-	new entry for BAL for the MIPSr6 ISA, correcting a disassembly bug:
-
-	$ mips-linux-gnu-objdump -m mips:isa64r6 -M no-aliases -d bal.o
-
-	bal.o:     file format elf32-tradlittlemips
-
-	Disassembly of section .text:
-
-	00000000 <foo>:
-	   0:	04110000 	0x4110000
-		...
-	$
-
-	Add test cases accordingly.
-
-	Parts for regular MIPS BEQZ/L and BNEZ/L instructions from Sagar Patel.
-
-	2022-03-06  Maciej W. Rozycki  <macro@orcam.me.uk>
-
-		binutils/
-		* testsuite/binutils-all/mips/mips1-branch-alias.d: New test.
-		* testsuite/binutils-all/mips/mips1-branch-noalias.d: New test.
-		* testsuite/binutils-all/mips/mips2-branch-alias.d: New test.
-		* testsuite/binutils-all/mips/mips2-branch-noalias.d: New test.
-		* testsuite/binutils-all/mips/mips32r6-branch-alias.d: New test.
-		* testsuite/binutils-all/mips/mips32r6-branch-noalias.d: New
-		test.
-		* testsuite/binutils-all/mips/micromips-branch-alias.d: New
-		test.
-		* testsuite/binutils-all/mips/micromips-branch-noalias.d: New
-		test.
-		* testsuite/binutils-all/mips/mips-branch-alias.s: New test
-		source.
-		* testsuite/binutils-all/mips/micromips-branch-alias.s: New test
-		source.
-		* testsuite/binutils-all/mips/mips.exp: Run the new tests.
-
-	2022-03-06  Sagar Patel  <sagarmp@cs.unc.edu>
-		    Maciej W. Rozycki  <macro@orcam.me.uk>
-
-		opcodes/
-		* mips-opc.c (mips_builtin_opcodes): Fix INSN2_ALIAS annotation
-		for "bal", "beqz", "beqzl", "bnez" and "bnezl" instructions.
-		* micromips-opc.c (micromips_opcodes): Likewise for "beqz" and
-		"bnez" instructions.
-
-2022-03-06  Tom Tromey  <tom@tromey.com>
-
-	Use function view when iterating over block symbols
-	This changes iterate_over_block_local_vars and
-	iterate_over_block_arg_vars to take a gdb::function_view rather than a
-	function pointer and a user-data.  In one spot, this allows us to
-	remove a helper structure and helper function.  In another spot, this
-	looked more complicated, so I changed the helper function to be an
-	"operator()" -- also a simplification, just not as big.
-
-2022-03-06  Tom Tromey  <tom@tromey.com>
-
-	Simplify hppa-tdep.c use of objfile_key
-	I happened to notice a couple of unnecessary casts in hppa-tdep.c, and
-	then I saw that the use of objfile_key could be simplified -- removing
-	some code and using the default deleter rather than noop_deleter.
-
-	Tested by rebuilding.  Let me know what you think.
-
-2022-03-06  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: constify parameter of value_copy
-	In a following patch, I have a const value I want to copy using a
-	value_copy.  However, value_copy takes a non-const source value, at the
-	moment.  Change the paramter to be const,
-
-	If the source value is not lazy, we currently call
-	value_contents_all_raw, which calls allocate_value_contents, to get a
-	view on the contents.  They both take a non-const value, that's a
-	problem.  My first attempt at solving it was to add a const version of
-	value_contents_all_raw, make allocate_value_contents take a const value,
-	and either:
-
-	 - make value::contents mutable
-	 - make allocate_value_contents cast away the const
-
-	The idea being that allocating the value contents buffer does modify the
-	value at the bit level, but logically that doesn't change its state.
-
-	That was getting a bit complicated, so what I ended up doing is make
-	value_copy not call value_contents_all_raw.  We know at this point that
-	the value is not lazy, so value::contents must have been allocate
-	already.
-
-	Change-Id: I3741ab362bce14315f712ec24064ccc17e3578d4
-
-2022-03-06  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove internalvar_funcs::destroy
-	No kind of internal var uses it remove it.  This makes the transition to
-	using a variant easier, since we don't need to think about where this
-	should be called (in a destructor or not), if it can throw, etc.
-
-	Change-Id: Iebbc867d1ce6716480450d9790410d6684cbe4dd
-
-2022-03-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-04  Tom Tromey  <tromey@adacore.com>
-
-	Mark vDSO as not a file
-	The vDSO objfile is not a real file, so mark it as such.  I noticed
-	this because, when playing with debuginfod, I saw:
-
-	Downloading 0.01 MB separate debug info for /tmp/system-supplied DSO at 0x7ffff7fc9000
-
-	That "/tmp" is wrong -- it's just gdb's cwd.  This patch corrects the
-	problem, resulting in:
-
-	Downloading 0.01 MB separate debug info for system-supplied DSO at 0x7ffff7fc9000
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-03-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	binutils/readelf: fix indentation in process_dynamic_section
-	Clangd shows a warning about misleading indentation in this file, fix
-	it.
-
-	binutils/ChangeLog:
-
-		* readelf.c (process_dynamic_section): Fix indentation.
-
-	Change-Id: I43a7f4f4c75dd080af614222b980526f5debf297
-
-2022-03-04  Christina Schimpe  <christina.schimpe@intel.com>
-
-	gdb: Use a typedef's scoped type name to identify local typedefs
-	GDB prints the wrong type for typedefs in case there is another typedef
-	available for the same raw type (gdb/16040).  The reason is that the
-	current hashmap based substitution mechanism always compares the target
-	type of a typedef and not its scoped name.
-
-	The original output of GDB for a program like
-
-	~~~~
-	namespace ns
-	{
-	  typedef double scoped_double;
-	}
-
-	typedef double global_double;
-
-	class TypedefHolder
-	{
-	public:
-	  double a;
-	  ns::scoped_double b;
-	  global_double c;
-
-	private:
-	  typedef double class_double;
-	  class_double d;
-
-	  double method1(ns::scoped_double) { return 24.0; }
-	  double method2(global_double) { return 24.0; }
-	};
-
-	int main()
-	{
-	  TypedefHolder th;
-	  return 0;
-	}
-	~~~~
-
-	is
-	~~~~
-
-	(gdb) b 27
-	Breakpoint 1 at 0x1131: file TypedefHolder.cc, line 27.
-	(gdb) r
-	Starting program: /tmp/typedefholder
-
-	Breakpoint 1, main () at TypedefHolder.cc:27
-	27	  return 0;
-	(gdb) ptype th
-	type = class TypedefHolder {
-	  public:
-	    class_double a;
-	    class_double b;
-	    class_double c;
-	  private:
-	    class_double d;
-
-	    class_double method1(class_double);
-	    class_double method2(class_double);
-
-	    typedef double class_double;
-	}
-	~~~~
-
-	Basically all attributes of a class which have the raw type "double" are
-	substituted by "class_double".
-
-	With the patch the output is the following
-
-	~~~~
-	type = class TypedefHolder {
-	  public:
-	    double a;
-	    ns::scoped_double b;
-	    global_double c;
-	  private:
-	    class_double d;
-
-	    double method1(ns::scoped_double);
-	    double method2(global_double);
-
-	    typedef double class_double;
-	}
-	~~~~
-
-2022-03-04  Jan Beulich  <jbeulich@suse.com>
-
-	RISC-V: make .insn actually work for 64-bit insns
-	Presently in this case, due to an undefined behavior shift, at least
-	with x86 cross builds I'm observing:
-
-	Error: value conflicts with instruction length `8,0x0000003f'
-
-	Eliminate the UB and extend the respective testcase.
-
-2022-03-04  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop redundant x86-64-code16-2 test
-	The code16-2 test is already meaningless enough as a gas test, identical
-	to this one, and is run uniformly for all ELF targets anyway.
-
-2022-03-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-03  Roland McGrath  <mcgrathr@google.com>
-
-	Fix typo in last change.
-
-2022-03-03  Roland McGrath  <mcgrathr@google.com>
-
-	Avoid conflict with gnulib open/close macros.
-	On some systems, the gnulib configuration will decide to define open
-	and/or close as macros to replace the POSIX C functions.  This
-	interferes with using those names in C++ class or namespace scopes.
-
-	gdbsupport/
-		* event-pipe.cc (event_pipe::open): Renamed to ...
-		(event_pipe::open_pipe): ... this.
-		(event_pipe::close): Renamed to ...
-		(event_pipe::close_pipe): ... this.
-		* event-pipe.h (class event_pipe): Updated.
-	gdb/
-		* inf-ptrace.h (async_file_open, async_file_close): Updated.
-	gdbserver/
-		* gdbserver/linux-low.cc (linux_process_target::async): Likewise.
-
-2022-03-03  Alan Modra  <amodra@gmail.com>
-
-	Adjust ld ctf test for 32-bit targets
-	powerpc-linux, and I suspect other 32-bit targets, report "aligned at
-	0x4" for this test.
-
-		* testsuite/ld-ctf/nonrepresentable.d: Accept any alignment.
-
-2022-03-03  Luis Machado  <luis.machado@arm.com>
-
-	Update my e-mail address in the MAINTAINERS file
-	Update the information accordingly.
-
-2022-03-03  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: fix failed testcases in gdb.base/gdb-caching-proc.exp
-	When execute the following command:
-
-	  make check-gdb TESTS="gdb.base/gdb-caching-proc.exp"
-
-	we can see there exist some failed testcases:
-
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 0: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 1: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 2: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 3: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 4: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 5: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 6: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 7: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 8: can spawn for attach (got interactive prompt)
-	  FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 9: can spawn for attach (got interactive prompt)
-
-	here are the detailed messages in gdb/testsuite/gdb.log:
-
-	  attach 873776
-	  A program is being debugged already.  Kill it? (y or n) n
-	  Not killed.
-	  (gdb) FAIL: gdb.base/gdb-caching-proc.exp: can_spawn_for_attach: 0: can spawn for attach (got interactive prompt)
-
-	so handle the case "A program is being debugged already.  Kill it" in
-	can_spawn_for_attach to fix the failed testcases.
-
-2022-03-03  Alan Modra  <amodra@gmail.com>
-
-	comment typo fix
-
-2022-03-03  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 DT_RELR relative reloc addresses
-	Section addresses can change between ppc64_elf_size_stubs and
-	ppc64_elf_build_stubs due to .eh_frame editing.  The idea of stashing
-	r_offset final addresses calculated in ppc64_elf_size_stubs for use by
-	ppc64_elf_build_stubs was never a good idea.  Instead, we need to keep
-	section/offset pairs.
-
-		* elf64-ppc.c (struct ppc_link_hash_table): Delete relr_addr.
-		Add relr section/offset array.
-		(append_relr_off): Rewrite.  Update all callers.
-		(sort_relr): New function.
-		(ppc64_elf_size_stubs): Adjust to suit new relative reloc stash.
-		(ppc64_elf_build_stubs): Likewise.
-
-2022-03-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-02  John Baldwin  <jhb@FreeBSD.org>
-
-	configure: Stop checking for PT_GETXMMREGS.
-	This request is present on all modern *BSD/i386 systems (those
-	released since mid-2006), and the *BSD/i386 targets now assume it is
-	present unconditionally.
-
-	i386-bsd-nat: Assume PT_GETXMMREGS is present.
-	NetBSD has included PT_GETXMMREGS since 1.6 released in September
-	2002.  OpenBSD has included PT_GETXMMREGS since 3.8 released in
-	November 2005.
-
-	i386-fbsd-nat: Assume PT_GETXMMREGS is present.
-	PT_GETXMMREGS was first added in FreeBSD 6.0 released in November 2005.
-	The last FreeBSD release without support was 5.5 released in May 2006.
-
-2022-03-02  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-tdep: Implement the vsyscall_range gdbarch hook.
-	FreeBSD recently added a real vDSO in its shared page for the amd64
-	architecture.  The vDSO is mapped at the address given by the
-	AT_KPRELOAD ELF auxiliary vector entry.  To find the end of the
-	mapping range, parse the list of virtual map entries used by 'info
-	proc mappings' either from the NT_PROCSTAT_VMMAP core dump note, or
-	via the kinfo_getvmmap function for native targets (fetched from the
-	native target as the TARGET_OBJECT_FREEBSD_VMMAP object).
-
-	This silences warnings on recent FreeBSD/amd64 kernels due to not
-	finding symbols for the vdso:
-
-	warning: Could not load shared library symbols for [vdso].
-	Do you need "set solib-search-path" or "set sysroot"?
-
-2022-03-02  Tom Tromey  <tromey@adacore.com>
-
-	Rewrite make-target-delegates in Python
-	I think gdb is probably better off having fewer languages involved
-	when generating code.  'sh' is unavoidable for build-time generation,
-	but for other things, let's use Python.
-
-	This rewrites make-target-delegates in Python.  I've stuck pretty
-	closely to the original code in this rewrite, so it may look slightly
-	weird from a Python perspective.
-
-	The only output difference is that a copyright header is now
-	generated, using the code introduced in the previous patch.
-
-	make-target-delegates.py is simpler to invoke, as it knows the correct
-	input file to scan and it creates the output file itself.
-
-2022-03-02  Tom Tromey  <tromey@adacore.com>
-
-	Move copyright code from gdbarch.py to new file
-	This moves the copyright code from gdbarch.py to a new Python source
-	file, gdbcopyright.py.  The function in this file will find the
-	copyright dates by scanning the calling script.  This will be reused
-	in a future patch.
-
-	This involved minor changes to the output of gdbarch.py.  Also, I've
-	updated copyright.py to remove the reference to gdbarch.sh.  We don't
-	need to mention gdbarch.py there, either.
-
-2022-03-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-03-01  Tom Tromey  <tom@tromey.com>
-
-	Some "distclean" fixes in gdb
-	PR build/12440 points out that "make distclean" is broken in gdb.
-	Most of the breakage comes from other projects in the tree, but we can
-	fix some of the issues, which is what this patch does.
-
-	Note that the yacc output files, like c-exp.c, are left alone.  In a
-	source distribution, these are included in the tarball, and if the
-	user builds in-tree, we would not want to remove them.
-
-	While that seems a bit obscure, it seems to me that "distclean" is
-	only really useful for in-tree builds anyway -- out-of-tree I simply
-	delete the entire build directory and start over.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=12440
-
-2022-03-01  Tom Tromey  <tom@tromey.com>
-
-	Fix typo in the "alias" example
-	PR cli/17332, filed around 8 years ago, points out a typo in the docs
-	-- in one example, the command and its output are obviously out of
-	sync.  This patch fixes it.  I'm checking this in as obvious.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17332
-
-2022-03-01  Nick Clifton  <nickc@redhat.com>
-
-	Fix a typo in the previous delta to bfdio.c.
-		PR 25713
-		* bfdio.c (_bfd_real_fopen): Fix typo.
-
-2022-03-01  Alan Modra  <amodra@gmail.com>
-
-	Revert "Check thin archive element file size against archive header"
-	This reverts commit 48e3e6aec8a4f37d00ea6c0da3ab45e76490e3db.
-
-		PR 28929
-		* archive.c (_bfd_get_elt_at_filepos): Don't check thin archive
-		element file size.
-
-2022-03-01  Nick Clifton  <nickc@redhat.com>
-
-	Fix linker tests to compile with gcc-12.
-		PR 21964
-		* testsuite/ld-elf/pr21964-1a.c: Fix array comparisons.
-		* testsuite/ld-elf/pr21964-1b.c: Likewise.
-		* testsuite/ld-elf/pr21964-1c.c: Likewise.
-		* testsuite/ld-elf/pr21964-2a.c: Likewise.
-		* testsuite/ld-elf/pr21964-2b.c: Likewise.
-		* testsuite/ld-elf/pr21964-3a.c: Likewise.
-
-	Prevent an assertion from being triggered when linking an ARM object file with incorrectly set build attributes.
-		PR 28848
-		PR 28859
-		* elf32-arm.c (elf32_arm_merge_eabi_attributes): If the first
-		input bfd has a Tag_ABI_HardFP_use set to 3 but does not also have
-		TAG_FP_arch set then reset the TAG_ABI_HardFP_use.
-
-2022-03-01  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: fix wrong expected result in attach-pie-noexec.exp
-	If /proc/sys/kernel/yama/ptrace_scope is 1, when execute the test case
-	gdb.base/attach-pie-noexec.exp without superuser, the gdb.log shows the
-	following info:
-
-	  (gdb) attach 6500
-	  Attaching to process 6500
-	  ptrace: Operation not permitted.
-	  (gdb) PASS: gdb.base/attach-pie-noexec.exp: attach
-
-	It is obviously wrong, the expected result should be UNSUPPORTED in such
-	a case.
-
-	It is better to make can_spawn_for_attach to return false for this case.
-	It would have to setup a small test program, compile it to exec, spawn it
-	and try to attach to it.
-
-	With this patch, we can see "Operation not permitted" in the log info,
-	and then we can do the following processes to test:
-	(1) set ptrace_scope as 0
-	    $ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
-	    $ make check-gdb TESTS="gdb.base/attach-pie-noexec.exp"
-	(2) use sudo
-	    $ sudo make check-gdb TESTS="gdb.base/attach-pie-noexec.exp"
-
-	Additionally, handle the other cases when test with RUNTESTFLAGS=
-	"--target_board=native-extended-gdbserver".
-
-2022-03-01  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: print explicit test result in can_spawn_for_attach
-	In the current code, there is no test result when execute the following
-	commands:
-
-	  $ make check-gdb TESTS="gdb.base/attach-pie-noexec.exp" RUNTESTFLAGS="--target_board=remote-gdbserver-on-localhost"
-	  $ make check-gdb TESTS="gdb.base/attach-pie-noexec.exp" RUNTESTFLAGS="--target_board=native-gdbserver"
-
-	It is better to print explicit test result in can_spawn_for_attach.
-
-2022-03-01  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: add Tiezhu Yang as LoongArch maintainer
-	The patch series "gdb: Add basic support for LoongArch" has been
-	merged into master, list Tiezhu Yang as LoongArch maintainer.
-
-2022-03-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-28  Keith Seitz  <keiths@redhat.com>
-
-	Fix "spawn id XYZ not open" errors in gdb.mi/mi-exec-run.exp
-	Running mi-exec-run.exp on native-extended-gdbserver/-m{32,64}
-	causes several Tcl errors to appear. For example,
-
-	(gdb)
-	ERROR: : spawn id exp20 not open
-	    while executing
-	"expect {
-	-i exp11 -timeout 10
-	                -i "$inferior_spawn_id"
-	                -re ".*Cannot exec.*Permission denied" {
-	                    set saw_perm_error 1
-	                    verbose -log "saw..."
-	    ("uplevel" body line 1)
-	    invoked from within
-	"uplevel $body" NONE : spawn id exp20 not open
-	UNRESOLVED: gdb.mi/mi-exec-run.exp: inferior-tty=separate: mi=separate: force-fail=1: run failure detected (eof)
-
-	This is happening because of the way this test is implemented:
-
-	        while {1} {
-	            gdb_expect {
-	                -i "$inferior_spawn_id"
-	                -re ".*Cannot exec.*Permission denied" {
-	                    set saw_perm_error 1
-	                    verbose -log "saw mi error"
-	                }
-	                -i "$gdb_spawn_id"
-	                -re "\\^error,msg=\"During startup program exited with code 127" {
-	                    set saw_mi_error 1
-	                    verbose -log "saw mi error"
-	                }
-	               # and so on
-	            }
-	        }
-
-	The first time this loop is executed, `inferior_spawn_id' is valid. When the
-	first branch of the expect statement is reached, gdbserver has exited, closing
-	the spawn_id.  Since we haven't seen the gdb-side error yet, the loop is executed
-	again.  The first branch now refers to a non-existent spawn_id, leading to the error.
-
-	This can be fixed by using exp_continue to loop in expect instead of looping around
-	expect, which is the approach I have used[1].  Note I've had to update the expected
-	message for the "During startup..." error message when running with gdbserver.
-
-	One other small change I've made is to add a log entry which spills the values of
-	the two variables, saw_mi_error and saw_perm_error (and updated the log output
-	for the later).  This should make the log output clearer about why the test failed.
-
-	With this patch installed, all the ERRORs disappear, leaving previously masked
-	FAILs (which I have not attempted to fix).
-
-	[1] Anyone know why this test doesn't simply use gdb_test_multiple? I can only
-	assume that it was intentionally written this way, and I've modified the code with
-	that assumption. I have tested a version using gdb_test_multiple, and that appears
-	to work fine, too, if that is preferred. [It still employs exp_continue to fix the
-	spawn_id errors.]
-
-2022-02-28  Tom Tromey  <tromey@adacore.com>
-
-	Add more filename styling
-	I found a few spots where filename styling ought to be applied, but is
-	not.
-
-2022-02-28  Tom Tromey  <tromey@adacore.com>
-
-	Fix maybe-uninitialized warning in py-infthread.c
-	I got this warning from py-infthread.c using the Fedora 34 system GCC:
-
-	../../binutils-gdb/gdb/python/py-infthread.c:102:30: warning: ‘extra_info’ may be used uninitialized in this function [-Wmaybe-uninitialized]
-
-	I think this happens because GDB_PY_HANDLE_EXCEPTION expands to an
-	'if' whose condition is always true -- but GCC can't know this.  This
-	patch avoids the warning by adding a harmless initialization.
-
-2022-02-28  Tom Tromey  <tromey@adacore.com>
-
-	Handle multi-byte bracket sequences in Ada lexer
-	As noted in an earlier patch, the Ada lexer does not handle multi-byte
-	bracket sequences.  This patch adds support for these for character
-	literals.  gdb does not generally seem to handle the Ada wide string
-	types, so for the time being these continue to be excluded -- but an
-	explicit error is added to make this more clear.
-
-2022-02-28  Tom Tromey  <tromey@adacore.com>
-
-	Handle 'QWW' encoding case in Ada enums
-	In Ada, an enum can contain character literals.  GNAT encodes these
-	values in a special way.  For example, the Unicode character U+0178
-	would be represented as 'QW0178' in the DWARF:
-
-	 <3><112f>: Abbrev Number: 2 (DW_TAG_enumerator)
-	    <1130>   DW_AT_name        : (indirect string, offset: 0x19ff): QW0178
-	    <1134>   DW_AT_const_value : 2
-
-	gdb handles this reasonably well, but failed to handle the 'QWW'
-	encoding, which is used for characters outside the base plane.
-
-	Also, while working on this, I noticed that gdb will print the decimal
-	value for an enum character constant:
-
-	    (gdb) print Char_X
-	    $2 = 1 'x'
-
-	This is a nice feature, IMO, because in this situation the 'x' enum
-	constant does not have its usual decimal value -- it has the value
-	that's assigned based on the enumeration type.
-
-	However, gdb did not do this when it decided to print the constant
-	using the bracket notation:
-
-	    (gdb) print Char_Thorn
-	    $3 = ["de"]
-
-	This patch changes gdb to print the decimal value here as well, and to
-	put the bracket notation in single quotes -- otherwise gdb will be
-	printing something that it can't then read.  Now it looks like:
-
-	    (gdb) print Char_Thorn
-	    $3 = 4 '["de"]'
-
-	Note that gdb can't read longer bracket notations, like the other ones
-	printed in this test case:
-
-	    (gdb) print Char_King
-	    $4 = 3 '["01fa00"]'
-
-	While I think this is a bug, I plan to fix it separately.
-
-	Finally, in the new test case, the copyright dates are chosen this way
-	because this all started as a copy of an existing test.
-
-2022-02-28  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: Add gdb.InferiorThread.details attribute
-	This adds a new read-only attribute gdb.InferiorThread.details, this
-	attribute contains a string, the results of target_extra_thread_info
-	for the thread, or None, if target_extra_thread_info returns nullptr.
-
-	As the string returned by target_extra_thread_info is unstructured,
-	this attribute is only really useful for echoing straight through to
-	the user, but, if a user wants to write a command that displays the
-	same, or a similar 'Thread Id' to the one seen in 'info threads', then
-	they need access to this string.
-
-	Given that the string produced by target_extra_thread_info varies by
-	target, there's only minimal testing of this attribute, I check that
-	the attribute can be accessed, and that the return value is either
-	None, or a string.
-
-2022-02-28  Keith Seitz  <keiths@redhat.com>
-
-	Error when gdb_is_target_1 is called without running gdb instance
-	This is a snafu that I encountered while implementing the previous
-	patch, which attempted to use gdb_is_target_native.  This proc and
-	gdb_is_target_remote both rely on gdb_is_target_1, which actually
-	cannot be called without gdb already running.
-
-	This patch adds appropriate warning comments to these procs and
-	causes gdb_is_target_1 to issue a Tcl error if it is called without a
-	gdb instance already running.  This should prevent unwitting callers
-	from using this at the wrong time.
-
-2022-02-28  Keith Seitz  <keiths@redhat.com>
-
-	Fix gdb.fortran "failed to extract expected results" errors
-	When running the gdb.fortran tests array-slices.exp and lbound-ubound.exp,
-	the test suite throws several ERRORs on native-gdbserver/-m{32,64},
-	and native-extended-gdbsever/-m{32,64}:
-
-	[on native-extended-gdbserver/-m64]
-	Running /home/keiths/work/gdb/branches/testsuite-errors/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.fortran/array-slices.exp ...
-	ERROR: failed to extract expected results
-	ERROR: failed to extract expected results
-	Running /home/keiths/work/gdb/branches/testsuite-errors/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.fortran/lbound-ubound.exp ...
-	ERROR: failed to extract expected results for lbound
-
-	This occurs because the tests require inferior I/O which we do not have
-	access to while using these targets.
-
-	This patch skips these tests when running on non-native targets.
-
-2022-02-28  Torbj?rn Svensson  <torbjorn.svensson@st.com>
-
-	Further correct the handling of long pathnames on Windows hosts.
-		PR 25713
-		* bfdio.c (_bfd_real_fopen): Fix handling of parhs longer than 260
-		characters on Windows hosts.
-
-2022-02-28  Nick Clifton  <nickc@redhat.com>
-
-	Clarify the wording of the error message when an obsolete configuration is encountered.
-		PR 28886
-		* config.bfd: Update error message for obsolete configurations.
-
-2022-02-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-26  Kevin Buettner  <kevinb@redhat.com>
-
-	Handle recursive internal problem in gdb_internal_error_resync
-	I came across this problem when testing gdb.base/gdb-sigterm.exp
-	on a machine with a pre-release version of glib-2.34 installed:
-
-	A problem internal to GDB has been detected,
-	further debugging may prove unreliable.
-	Quit this debugging session? (y or n) Recursive internal problem.
-	FAIL: gdb.base/gdb-sigterm.exp: expect eof #0 (GDB internal error)
-	Resyncing due to internal error.
-	ERROR: : spawn id exp11 not open
-	    while executing
-	"expect {
-	-i exp11 -timeout 10
-		    -re "Quit this debugging session\\? \\(y or n\\) $" {
-			send_gdb "n\n" answer
-			incr count
-		    }
-		    -re "Create..."
-	    ("uplevel" body line 1)
-	    invoked from within
-	"uplevel $body" NONE : spawn id exp11 not open
-	ERROR: Could not resync from internal error (timeout)
-	gdb.base/gdb-sigterm.exp: expect eof #0: stepped 9 times
-	UNRESOLVED: gdb.base/gdb-sigterm.exp: 50 SIGTERM passes
-
-	I don't have a problem with the latter ERROR nor the UNRESOLVED
-	messages.  However the first ERROR regarding the exp11 spawn id
-	not being open is not especially useful.
-
-	This commit handles the "Recursive internal problem" case, avoiding
-	the problematic ERROR shown above.
-
-	With this commit in place, the log messages look like this instead:
-
-	A problem internal to GDB has been detected,
-	further debugging may prove unreliable.
-	Quit this debugging session? (y or n) Recursive internal problem.
-	FAIL: gdb.base/gdb-sigterm.exp: expect eof #15 (GDB internal error)
-	Resyncing due to internal error.
-	ERROR: Could not resync from internal error (recursive internal problem)
-	gdb.base/gdb-sigterm.exp: expect eof #15: stepped 12 times
-	UNRESOLVED: gdb.base/gdb-sigterm.exp: 50 SIGTERM passes
-
-	gdb/testsuite/ChangeLog:
-
-		* lib/gdb.exp (gdb_internal_error_resync): Handle "Recursive
-		internal problem".
-
-2022-02-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-25  Aaron Merey  <amerey@redhat.com>
-
-	gdb-add-index: disable debuginfod
-	gdb-add-index may trigger debuginfod's first-use notice.  The notice
-	is misleading in this case.  It instructs the user to modify .gdbinit
-	in order to permanently enable/disable debuginfod but gdb-add-index
-	invokes gdb with -nx which ignores .gdbinit.
-
-	Additionally debuginfod is not needed for gdb-add-index since the
-	symbol file is given as an argument and should already be present
-	locally.
-
-	Fix this by disabling debuginfod when gdb-add-index invokes gdb.
-
-2022-02-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add operator+= and operator+ overload for std::string
-	This commit adds operator+= and operator+ overloads for adding
-	gdb::unique_xmalloc_ptr<char> to a std::string.  I could only find 3
-	places in GDB where this was useful right now, and these all make use
-	of operator+=.
-
-	I've also added a self test for gdb::unique_xmalloc_ptr<char>, which
-	makes use of both operator+= and operator+, so they are both getting
-	used/tested.
-
-	There should be no user visible changes after this commit, except when
-	running 'maint selftest', where the new self test is visible.
-
-2022-02-25  Tom Tromey  <tromey@adacore.com>
-
-	Print MI prompt on interrupted command
-	Joel noticed that if the remote dies unexpectedly during a command --
-	you can simulate this by using "continue" and then killing gdbserver
-	-- then the CLI will print a new prompt, but MI will not.  Later, we
-	found out that this was also filed in bugzilla as PR mi/23820.
-
-	The output looks something like this:
-
-	    | (gdb)
-	    | cont
-	    | &"cont\n"
-	    | ~"Continuing.\n"
-	    | ^running
-	    | *running,thread-id="all"
-	    | (gdb)
-	    | [... some output from GDB during program startup...]
-	    | =thread-exited,id="1",group-id="i1"
-	    | =thread-group-exited,id="i1"
-	    | &"Remote connection closed\n"
-
-	Now, what about that "(gdb)" in the middle?
-
-	That prompt comes from this questionable code in
-	mi-interp.c:mi_on_resume_1:
-
-	      /* This is what gdb used to do historically -- printing prompt
-		 even if it cannot actually accept any input.  This will be
-		 surely removed for MI3, and may be removed even earlier.  */
-	      if (current_ui->prompt_state == PROMPT_BLOCKED)
-		fputs_unfiltered ("(gdb) \n", mi->raw_stdout);
-
-	... which seems like something to remove.  But maybe the intent here
-	is that this prompt is sufficient, and MI clients must be ready to
-	handle output coming after a prompt.  On the other hand, if this code
-	*is* removed, then nothing would print a prompt in this scenario.
-
-	Anyway, the CLI and the TUI handle emitting the prompt here by hooking
-	into gdb::observers::command_error, but MI doesn't install an observer
-	here.
-
-	This patch adds the missing observer and arranges to show the MI
-	prompt.  Regression tested on x86-64 Fedora 34.
-
-	It seems like this area could be improved a bit, by having
-	start_event_loop call the prompt-displaying code directly, rather than
-	indirecting through an observer.  However, I haven't done this.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23820
-
-2022-02-25  Andrew Burgess  <aburgess@redhat.com>
-	    Tom Tromey  <tromey@adacore.com>
-
-	gdb/testsuite: fix list.exp test cases
-	PR testsuite/7142 -- old enough to have been converted from Gnats --
-	points out that test_list_filename_and_function in gdb.base/list.exp
-	has "fails" that are unmatched with passes.  This patch cleans this up
-	a little.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7142
-
-2022-02-25  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Remove a loop in the ISA parser
-	Since commit e601909a3287bf541c6a7d82214bb387d2c76d82 ("RISC-V: Support
-	to parse the multi-letter prefix in the architecture string.") changed
-	so that all prefixed extensions are parsed in single
-	riscv_parse_prefixed_ext call, a "while" loop on riscv_parse_subset
-	is no longer required.
-
-	bfd/ChangeLog:
-
-		* elfxx-riscv.c (riscv_parse_subset): Remove unnecessary loop.
-
-2022-02-25  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Fix mask for some fcvt instructions
-	This commit fixes incorrect uses of mask values in 'fcvt' instruction
-	family.
-
-	opcodes/ChangeLog:
-
-		* riscv-opc.c (riscv_opcodes): Fix incorrect uses of mask values
-		in 'fcvt' instruction family.
-
-2022-02-25  Keith Seitz  <keiths@redhat.com>
-
-	Support template lookups in strncmp_iw_with_mode
-	This patch adds support for wild template parameter list matches, similar
-	to how ABI tags or function overloads are now handled.
-
-	With this patch, users will be able to "gloss over" the details of matching
-	template parameter lists.  This is accomplished by adding (yet more) logic
-	to strncmp_iw_with_mode to skip parameter lists if none is explicitly given
-	by the user.
-
-	Here's a simple example using gdb.linespec/cpls-ops.exp:
-
-	Before
-	------
-	(gdb) ptype test_op_call
-	type = struct test_op_call {
-	  public:
-	    void operator()(void);
-	    void operator()(int);
-	    void operator()(long);
-	    void operator()<int>(int *);
-	}
-	(gdb) b test_op_call::operator()
-	Breakpoint 1 at 0x400583: test_op_call::operator(). (3 locations)
-	(gdb) i b
-	Num     Type           Disp Enb Address            What
-	1       breakpoint     keep y   <MULTIPLE>
-	1.1                         y     0x400583 in test_op_call::operator()(int)
-	                                                   at cpls-ops.cc:43
-	1.2                         y     0x40058e in test_op_call::operator()()
-	                                                   at cpls-ops.cc:47
-	1.3                         y     0x40059e in test_op_call::operator()(long)
-	                                                   at cpls-ops.cc:51
-
-	The breakpoint at test_op_call::operator()<int> was never set.
-
-	After
-	-----
-	(gdb) b test_op_call::operator()
-	Breakpoint 1 at 0x400583: test_op_call::operator(). (4 locations)
-	(gdb) i b
-	Num     Type           Disp Enb Address            What
-	1       breakpoint     keep y   <MULTIPLE>
-	1.1                         y     0x400583 in test_op_call::operator()(int)
-	                                                   at cpls-ops.cc:43
-	1.2                         y     0x40058e in test_op_call::operator()()
-	                                                   at cpls-ops.cc:47
-	1.3                         y     0x40059e in test_op_call::operator()(long)
-	                                                   at cpls-ops.cc:51
-	1.4                         y     0x4008d0 in test_op_call::operator()<int>(int*)
-	                                                   at cpls-ops.cc:57
-
-	Similar to how scope lookups work, passing "-qualified" to the break command
-	will cause a literal lookup of the symbol.  In the example immediately above,
-	this will cause GDB to only find the three non-template functions.
-
-2022-02-25  Keith Seitz  <keiths@redhat.com>
-
-	Unit tests for strncmp_iw_with_mode
-	This patch attempts to make a start at adding unit tests for
-	strncmp_iw_with_mode.  While there is quite a bit of testing
-	of this function in other tests, these are currently end-to-end
-	tests.
-
-	This patch attempts to cover the basics of string matching, white
-	space, C++ ABI tags, and several other topics. However, one area
-	that is ostensibly missing is testing the `match_for_lcd' feature.
-	This is otherwise tested as part of our end-to-end DejaGNU-based
-	testing.
-
-2022-02-25  Keith Seitz  <keiths@redhat.com>
-
-	Move find_toplevel_char to cp-support.[ch]
-	find_toplevel_char is being used more and more outside of linespec.c, so
-	this patch moves it into cp-support.[ch].
-
-2022-02-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-24  Tom Tromey  <tom@tromey.com>
-	    Andrew Burgess  <aburgess@redhat.com>
-
-	Fix crash in Fortran code
-	PR fortran/28801 points out a gdb crash that can be provoked by
-	certain Fortran code.  The bug is that f77_get_upperbound assumes the
-	property is either a constant or undefined, but in this case it is
-	PROP_LOCEXPR.
-
-	This patch fixes the crash by making this function (and the
-	lower-bound one as well) do the correct check before calling
-	'const_val'.
-
-	Thanks to Andrew for writing the test case.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28801
-
-2022-02-24  John Baldwin  <jhb@FreeBSD.org>
-
-	Revert "do_target_wait_1: Clear TARGET_WNOHANG if the target isn't async."
-	Commit 14b3360508b1 ("do_target_wait_1: Clear
-	TARGET_WNOHANG if the target isn't async.") broke some multi-target
-	tests, such as gdb.multi/multi-target-info-inferiors.exp.  The symptom
-	is that execution just hangs at some point.  What happens is:
-
-	1. One remote inferior is started, and now sits stopped at a breakpoint.
-	   It is not "async" at this point (but it "can async").
-
-	2. We run a native inferior, the event loop gets woken up by the native
-	   target's fd.
-
-	3. In do_target_wait, we randomly choose an inferior to call target_wait
-	   on first, it happens to be the remote inferior.
-
-	4. Because the target is currently not "async", we clear
-	   TARGET_WNOHANG, resulting in synchronous wait.  We therefore block
-	   here:
-
-	  #0  0x00007fe9540dbb4d in select () from /usr/lib/libc.so.6
-	  #1  0x000055fc7e821da7 in gdb_select (n=15, readfds=0x7ffdb77c1fb0, writefds=0x0, exceptfds=0x7ffdb77c2050, timeout=0x7ffdb77c1f90) at /home/simark/src/binutils-gdb/gdb/posix-hdep.c:31
-	  #2  0x000055fc7ddef905 in interruptible_select (n=15, readfds=0x7ffdb77c1fb0, writefds=0x0, exceptfds=0x7ffdb77c2050, timeout=0x7ffdb77c1f90) at /home/simark/src/binutils-gdb/gdb/event-top.c:1134
-	  #3  0x000055fc7eda58e4 in ser_base_wait_for (scb=0x6250002e4100, timeout=1) at /home/simark/src/binutils-gdb/gdb/ser-base.c:240
-	  #4  0x000055fc7eda66ba in do_ser_base_readchar (scb=0x6250002e4100, timeout=-1) at /home/simark/src/binutils-gdb/gdb/ser-base.c:365
-	  #5  0x000055fc7eda6ff6 in generic_readchar (scb=0x6250002e4100, timeout=-1, do_readchar=0x55fc7eda663c <do_ser_base_readchar(serial*, int)>) at /home/simark/src/binutils-gdb/gdb/ser-base.c:444
-	  #6  0x000055fc7eda718a in ser_base_readchar (scb=0x6250002e4100, timeout=-1) at /home/simark/src/binutils-gdb/gdb/ser-base.c:471
-	  #7  0x000055fc7edb1ecd in serial_readchar (scb=0x6250002e4100, timeout=-1) at /home/simark/src/binutils-gdb/gdb/serial.c:393
-	  #8  0x000055fc7ec48b8f in remote_target::readchar (this=0x617000038780, timeout=-1) at /home/simark/src/binutils-gdb/gdb/remote.c:9446
-	  #9  0x000055fc7ec4da82 in remote_target::getpkt_or_notif_sane_1 (this=0x617000038780, buf=0x6170000387a8, forever=1, expecting_notif=1, is_notif=0x7ffdb77c24f0) at /home/simark/src/binutils-gdb/gdb/remote.c:9928
-	  #10 0x000055fc7ec4f045 in remote_target::getpkt_or_notif_sane (this=0x617000038780, buf=0x6170000387a8, forever=1, is_notif=0x7ffdb77c24f0) at /home/simark/src/binutils-gdb/gdb/remote.c:10037
-	  #11 0x000055fc7ec354d4 in remote_target::wait_ns (this=0x617000038780, ptid=..., status=0x7ffdb77c33c8, options=...) at /home/simark/src/binutils-gdb/gdb/remote.c:8147
-	  #12 0x000055fc7ec38aa1 in remote_target::wait (this=0x617000038780, ptid=..., status=0x7ffdb77c33c8, options=...) at /home/simark/src/binutils-gdb/gdb/remote.c:8337
-	  #13 0x000055fc7f1409ce in target_wait (ptid=..., status=0x7ffdb77c33c8, options=...) at /home/simark/src/binutils-gdb/gdb/target.c:2612
-	  #14 0x000055fc7e19da98 in do_target_wait_1 (inf=0x617000038080, ptid=..., status=0x7ffdb77c33c8, options=...) at /home/simark/src/binutils-gdb/gdb/infrun.c:3636
-	  #15 0x000055fc7e19e26b in operator() (__closure=0x7ffdb77c2f90, inf=0x617000038080) at /home/simark/src/binutils-gdb/gdb/infrun.c:3697
-	  #16 0x000055fc7e19f0c4 in do_target_wait (ecs=0x7ffdb77c33a0, options=...) at /home/simark/src/binutils-gdb/gdb/infrun.c:3716
-	  #17 0x000055fc7e1a31f7 in fetch_inferior_event () at /home/simark/src/binutils-gdb/gdb/infrun.c:4061
-
-	Before the aforementioned commit, we would not have cleared
-	TARGET_WNOHANG, the remote target's wait would have returned nothing,
-	and we would have consumed the native target's event.
-
-	After applying this revert, the testsuite state looks as good as before
-	for me on Ubuntu 20.04 amd64.
-
-	Change-Id: Ic17a1642935cabcc16c25cb6899d52e12c2f5c3f
-
-2022-02-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: use a range based for loop when iterating over an array
-	Make use of a range based for loop to iterate over a static global
-	array, removing the need to have a null entry at the end of the
-	array.
-
-	There should be no user visible changes after this commit.
-
-2022-02-24  Dominique Quatravaux  <dominique.quatravaux@epfl.ch>
-	    Louis-He  <1726110778@qq.com>
-	    Philippe Blain  <levraiphilippeblain@gmail.com>
-
-	gdb/darwin: skip over WIFSTOPPED wait4 status
-	On modern Darwin's, there appears to be a new circumstance in which a
-	MACH_NOTIFY_DEAD_NAME message can be received, and which was not
-	previously accounted for: to signal the WIFSTOPPED condition in the
-	debuggee. In that case the debuggee is not dead yet (and in fact,
-	counting it as dead would cause a zombie leak - A process in such a
-	state reparents to PID 1, but cannot be killed).
-
-	 - Read and ignore such messages (counting on the next exception message
-	   to let us know of the inferior's new state again)
-	 - Refactor logging so as to clearly distinguish between the
-	   MACH_NOTIFY_DEAD_NAME cases (WIFEXITED, WIFSTOPPED, signal, or
-	   something else), and warn in the last case
-
-	Change-Id: Ie86904a894e9bd154e6b674b1bfbfbaee7fde3e1
-
-2022-02-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-tdep: move "Perms" column right
-	Commit 29ef4c0699e1 ("gdb/linux-tdep.c: Add Perms to the 'info proc
-	mappings' output") has broken test gdb.base/info-proc.exp on Linux,
-	because it changes the output of "info proc mappings" in a way that the
-	test does not expect (my bad for not testing before pushing).
-
-	I looked at how FreeBSD handles this, since I remembered it did show
-	permission flags.  It looks like this:
-
-	          Start Addr           End Addr       Size     Offset   Flags   File
-	            0x200000           0x243000    0x43000        0x0  r-- CN-- /usr/local/bin/tmux
-
-	(I think that `Flags` and the flags not being aligned is not
-	intentional)
-
-	The test passes on FreeBSD, because the test looks for four hex numbers
-	in a row and ignores the rest:
-
-	    ".*Mapped address spaces:.*${hex}${ws}${hex}${ws}${hex}${ws}${hex}.*"
-
-	I suggest fixing it on Linux by moving the flags column to the same
-	place as in the FreeBSD output.  It makes things a bit more consistent
-	between OSes, and we don't have to touch the test.
-
-	At the same time, make use of the actual length of the permission's
-	string to specify the number of characters to print.
-
-	Before this patch, the output looks like:
-
-	          Start Addr           End Addr   Perms       Size     Offset objfile
-	      0x55dd4b544000     0x55dd4b546000   r--p      0x2000        0x0 /usr/bin/sleep
-
-	and after, it looks like:
-
-	          Start Addr           End Addr       Size     Offset  Perms  objfile
-	      0x5622ae662000     0x5622ae664000     0x2000        0x0  r--p   /usr/bin/sleep
-
-	Change-Id: If0fc167b010b25f97a3c54e2f491df4973ccde8f
-
-2022-02-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux-tdep: make read_mapping return a structure
-	Change read_mapping to return a structure instead of taking many output
-	parameters.  Change the string + length output parameters (permissions
-	and device) to be gdb::string_view, since that's what string_view is
-	for (a non-NULL terminated view on a string).  No changes in behavior
-	expected.
-
-	Change-Id: I86e627d84d3dda8c9b835592b0f4de8d90d12112
-
-2022-02-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-23  Tom Tromey  <tromey@adacore.com>
-
-	Fix bug in C++ overload resolution
-	PR c++/28901 points out a bug in C++ overload resolution.  When
-	comparing two overloads, one might be better than the other for
-	certain parameters -- but, if that one also has some invalid
-	conversion, then it should never be considered the better choice.
-	Instead, a valid-but-not-apparently-quite-as-good overload should be
-	preferred.
-
-	This patch fixes this problem by changing how overload comparisons are
-	done.  I don't believe it should affect any currently valid overload
-	resolution; nor should it affect resolutions where all the choices are
-	equally invalid.
-
-2022-02-23  Dominik 'Disconnect3d' Czarnota  <dominik.b.czarnota@gmail.com>
-
-	gdb/linux-tdep.c: Add Perms to the 'info proc mappings' output
-	Fixes #28914 and so it adds a 'Perms' (permissions) column to the
-	'info proc mappings' command output. This will allow users to know
-	the memory pages permissions right away from GDB instead of having
-	to fetch them from the /proc/$pid/maps file (which is also what GDB
-	does internally, but it just did not print that column).
-
-	Below I am also showing how an example output looks like before and
-	after this commit in case someone wonders.
-
-	On i386 targets - before this commit:
-	```
-	(gdb) info proc mappings
-	process 3461464
-	Mapped address spaces:
-
-	    Start Addr   End Addr        Size     Offset objfile
-	    0x56555000 0x56556000      0x1000        0x0 /home/dc/src/binutils-gdb/build/a.out
-	    0x56556000 0x56557000      0x1000     0x1000 /home/dc/src/binutils-gdb/build/a.out
-	    0x56557000 0x56558000      0x1000     0x2000 /home/dc/src/binutils-gdb/build/a.out
-	    0x56558000 0x5655a000      0x2000     0x2000 /home/dc/src/binutils-gdb/build/a.out
-	    0xf7fc4000 0xf7fc8000      0x4000        0x0 [vvar]
-	    0xf7fc8000 0xf7fca000      0x2000        0x0 [vdso]
-	    0xf7fca000 0xf7fcb000      0x1000        0x0 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xf7fcb000 0xf7fee000     0x23000     0x1000 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xf7fee000 0xf7ffb000      0xd000    0x24000 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xf7ffb000 0xf7ffe000      0x3000    0x30000 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xfffdc000 0xffffe000     0x22000        0x0 [stack]
-	(gdb)
-	```
-
-	On i386 targets - after this commit:
-	```
-	(gdb) info proc mappings
-	process 3461464
-	Mapped address spaces:
-
-	    Start Addr   End Addr   Perms       Size     Offset objfile
-	    0x56555000 0x56556000   r--p      0x1000        0x0 /home/dc/src/binutils-gdb/build/a.out
-	    0x56556000 0x56557000   r-xp      0x1000     0x1000 /home/dc/src/binutils-gdb/build/a.out
-	    0x56557000 0x56558000   r--p      0x1000     0x2000 /home/dc/src/binutils-gdb/build/a.out
-	    0x56558000 0x5655a000   rw-p      0x2000     0x2000 /home/dc/src/binutils-gdb/build/a.out
-	    0xf7fc4000 0xf7fc8000   r--p      0x4000        0x0 [vvar]
-	    0xf7fc8000 0xf7fca000   r-xp      0x2000        0x0 [vdso]
-	    0xf7fca000 0xf7fcb000   r--p      0x1000        0x0 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xf7fcb000 0xf7fee000   r-xp     0x23000     0x1000 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xf7fee000 0xf7ffb000   r--p      0xd000    0x24000 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xf7ffb000 0xf7ffe000   rw-p      0x3000    0x30000 /usr/lib/i386-linux-gnu/ld-2.33.so
-	    0xfffdc000 0xffffe000   rw-p     0x22000        0x0 [stack]
-	(gdb)
-	```
-
-	On amd64 targets - after this commit:
-	```
-	(gdb) info proc mappings
-	process 3461869
-	Mapped address spaces:
-
-	          Start Addr           End Addr   Perms       Size     Offset objfile
-	      0x555555554000     0x555555555000   r--p      0x1000        0x0 /home/dc/src/binutils-gdb/build/a.out
-	      0x555555555000     0x555555556000   r-xp      0x1000     0x1000 /home/dc/src/binutils-gdb/build/a.out
-	      0x555555556000     0x555555557000   r--p      0x1000     0x2000 /home/dc/src/binutils-gdb/build/a.out
-	      0x555555557000     0x555555559000   rw-p      0x2000     0x2000 /home/dc/src/binutils-gdb/build/a.out
-	      0x7ffff7fc3000     0x7ffff7fc7000   r--p      0x4000        0x0 [vvar]
-	      0x7ffff7fc7000     0x7ffff7fc9000   r-xp      0x2000        0x0 [vdso]
-	      0x7ffff7fc9000     0x7ffff7fca000   r--p      0x1000        0x0 /usr/lib/x86_64-linux-gnu/ld-2.33.so
-	      0x7ffff7fca000     0x7ffff7ff1000   r-xp     0x27000     0x1000 /usr/lib/x86_64-linux-gnu/ld-2.33.so
-	      0x7ffff7ff1000     0x7ffff7ffb000   r--p      0xa000    0x28000 /usr/lib/x86_64-linux-gnu/ld-2.33.so
-	      0x7ffff7ffb000     0x7ffff7fff000   rw-p      0x4000    0x31000 /usr/lib/x86_64-linux-gnu/ld-2.33.so
-	      0x7ffffffdd000     0x7ffffffff000   rw-p     0x22000        0x0 [stack]
-	  0xffffffffff600000 0xffffffffff601000   --xp      0x1000        0x0 [vsyscall]
-	(gdb)
-	```
-
-	Change-Id: I4991f6cc758cd532eae3ae98c29d22e7bd9d9c36
-
-2022-02-23  Patrick O'Neill  <patrick@rivosinc.com>
-
-	RISC-V: PR28733, add missing extension info to 'unrecognized opcode' error
-	Currently we report errors as "unrecognized opcode `fence.i'" when the
-	opcode isn't part of the selected extensions.
-	This patch expands that error message to include the missing extension
-	information. For example, now the error message would be "unrecognized
-	opcode `fence.i', extension `zifencei' required".
-	If the opcode is not a part of any extension, the error message reverts
-	to "unrecognized opcode `<op statement>'".
-
-
-	bfd/
-		pr 28733
-		* elfxx-riscv.c (riscv_multi_subset_supports_ext): New function,
-		used to return the extension string for each INSN_CLASS_*.
-		* elfxx-riscv.h: Added extern riscv_multi_subset_supports_ext.
-	gas/
-		pr 28733
-		* config/tc-riscv.c (struct riscv_ip_error): New structure,
-		contains information about errors that occur within the riscv_ip.
-		(riscv_ip): Use struct riscv_ip_error to report more detailed errors.
-		* testsuite/gas/riscv/c-fld-fsd-fail.l: Updated.
-		* testsuite/gas/riscv/march-imply-i2p1-01.: Likewise.
-
-2022-02-23  Patrick O'Neill  <patrick@rivosinc.com>
-
-	RISC-V: PR28733, add missing extension info to 'invalid CSR' error
-	Currently we report errors as "invalid CSR 'fscr' for the current ISA"
-	when the instruction isn't valid.
-
-	This patch expands that error message to include the missing extension
-	information. For example, now the error message would be "invalid CSR
-	'fscr' for the current ISA, CSR 'fscr' needs 'f' extension".
-
-
-	gas/
-		pr 28733
-		* config/tc-riscv.c (riscv_csr_address): Report more details
-		when the CSR is invalid.
-		* testsuite/gas/riscv/csr-version-1p10.l: Updated detailed errors.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-
-2022-02-23  Alan Modra  <amodra@gmail.com>
-
-	binutils 2.38 vs. ppc32 linux kernel
-	Commit b25f942e18d6 made .machine more strict.  Weaken it again.
-
-		* config/tc-ppc.c (ppc_machine): Treat an early .machine specially,
-		keeping sticky options to work around gcc bugs.
-
-2022-02-23  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Updated CSRs to privileged spec v1.12 and debug spec v1.0.
-	* Removed N extension CSRs,
-	ustatus, uie, utvec, uscratch, uepc, ucause, utval and uip.
-
-	* Removed two supervisor CSRs,
-	sedeleg and sideleg.
-
-	* Changed debug CSR address of scontext from 0x7aa to 0x5a8.  We cannot support
-	different versions of debug specs for now, so only supporting the latest one is
-	the only way to move forward.
-
-	* Added debug CSRs,
-	mscontext (0x7aa), mcontrol6 (0x7a1, tdata1) and tmexttrigger ((0x7a1, tdata1).
-
-	* Regarded hcontext as a debug CSR.
-
-	include/
-		* opcode/riscv-opc.h: Updated CSRs to privileged spec v1.12 and
-		debug spec v1.0.
-	gas/
-		* testsuite/gas/riscv/csr.s: Updated CSRs to privileged spec v1.12
-		and debug spec v1.0.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
-		* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
-
-2022-02-23  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Add Privileged Architecture 1.12 CSRs
-	This commit adds,
-
-	* Most of CSRs as listed in the Privileged Architecture,
-	version 1.12 (except scontext and mscontext).
-
-	* Testcases for most CSRs added on the Privileged
-	Architecture, version 1.12 (except moved "scontext" and
-	new "mscontext").
-
-	include/ChangeLog:
-
-		* opcode/riscv-opc.h (CSR_SENVCFG, CSR_MCONFIGPTR, CSR_MENVCFG,
-		CSR_MSTATUSH, CSR_MENVCFGH, CSR_MTINST, CSR_MTVAL2, CSR_MSECCFG,
-		CSR_MSECCFGH, CSR_PMPCFG4, CSR_PMPCFG5, CSR_PMPCFG6,
-		CSR_PMPCFG7, CSR_PMPCFG8, CSR_PMPCFG9, CSR_PMPCFG10,
-		CSR_PMPCFG11, CSR_PMPCFG12, CSR_PMPCFG13, CSR_PMPCFG14,
-		CSR_PMPCFG15, CSR_PMPADDR16, CSR_PMPADDR17, CSR_PMPADDR18,
-		CSR_PMPADDR19, CSR_PMPADDR20, CSR_PMPADDR21, CSR_PMPADDR22,
-		CSR_PMPADDR23, CSR_PMPADDR24, CSR_PMPADDR25, CSR_PMPADDR26,
-		CSR_PMPADDR27, CSR_PMPADDR28, CSR_PMPADDR29, CSR_PMPADDR30,
-		CSR_PMPADDR31, CSR_PMPADDR32, CSR_PMPADDR33, CSR_PMPADDR34,
-		CSR_PMPADDR35, CSR_PMPADDR36, CSR_PMPADDR37, CSR_PMPADDR38,
-		CSR_PMPADDR39, CSR_PMPADDR40, CSR_PMPADDR41, CSR_PMPADDR42,
-		CSR_PMPADDR43, CSR_PMPADDR44, CSR_PMPADDR45, CSR_PMPADDR46,
-		CSR_PMPADDR47, CSR_PMPADDR48, CSR_PMPADDR49, CSR_PMPADDR50,
-		CSR_PMPADDR51, CSR_PMPADDR52, CSR_PMPADDR53, CSR_PMPADDR54,
-		CSR_PMPADDR55, CSR_PMPADDR56, CSR_PMPADDR57, CSR_PMPADDR58,
-		CSR_PMPADDR59, CSR_PMPADDR60, CSR_PMPADDR61, CSR_PMPADDR62,
-		CSR_PMPADDR63): New CSR macros.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
-		* testsuite/gas/riscv/csr.s: Add new CSRs.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-
-2022-02-23  Tsukasa OI  <research_trasio@irq.a4lg.com>
-
-	RISC-V: Reorganize testcases for CFI directives
-	This commit reorganizes and adds some CSRs to csr-dw-regnums.[sd] to
-	make it test the same CSRs as csr.s.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/riscv/csr-dw-regnums.s: Reorganize and add
-		defined CSRs tested in csr.s.
-		* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
-
-2022-02-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	NEWS: Note that the FreeBSD async target supports async mode.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	inf-ptrace: Add an event_pipe to be used for async mode in subclasses.
-	Subclasses of inf_ptrace_target have to opt-in to using the event_pipe
-	by implementing the can_async_p and async methods.  For subclasses
-	which do this, inf_ptrace_target provides is_async_p, async_wait_fd
-	and closes the pipe in the close target method.
-
-	inf_ptrace_target also provides wrapper routines around the event pipe
-	(async_file_open, async_file_close, async_file_flush, and
-	async_file_mark) for use in target methods such as async.
-	inf_ptrace_target also exports a static async_file_mark_if_open
-	function which can be used in SIGCHLD signal handlers.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	Enable async mode in the target in attach_cmd.
-	If the attach target supports async mode, enable it after the
-	attach target's ::attach method returns.
-
-	fbsd-nat: Return nullptr rather than failing ::thread_name.
-	ptrace on FreeBSD cannot be used against running processes and instead
-	fails with EBUSY.  This meant that 'info threads' would fail if any of
-	the threads were running (for example when using schedule-multiple=on
-	in gdb.base/fork-running-state.exp).  Instead of throwing errors, just
-	return nullptr as no thread name is better than causing info threads to
-	fail completely.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Various cleanups to the ::resume entry debug message.
-	Move the message from 'show debug fbsd-lwp' to 'show debug fbsd-nat'
-	since it is helpful for debugging async target support and not just
-	LWP support.
-
-	Use target_pid_to_str to format the ptid and log the step and signo
-	arguments.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Include ptrace operation in error messages.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Implement async target support.
-	This is a fairly simple version of async target support.
-
-	Synchronous mode still uses blocking waitpid() calls in
-	inf_ptrace::wait() unlike the Linux native target which always uses
-	WNOHANG and uses sigsuspend() for synchronous operation.
-
-	Asynchronous mode registers an event pipe with the core as a file
-	handle and writes to the pipe when SIGCHLD is raised.  TARGET_WNOHANG
-	is handled by inf_ptrace::wait().
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	inf-ptrace: Support async targets in inf_ptrace_target::wait.
-	- Handle TARGET_WNOHANG by passing WNOHANG to waitpid and returning
-	  TARGET_WAITKIND_IGNORE if there are no events to report.
-
-	- Handle a race in async mode where SIGCHLD might signal the event
-	  pipe for an event that has already been reported.  If the event was
-	  the exit of the last child process, waitpid() will fail with ECHILD
-	  rather than returning a pid of 0.  For this case, return
-	  TARGET_WAITKIND_NO_RESUMED.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	inf-ptrace: Return an IGNORE event if waitpid() fails.
-	Previously this returned a TARGET_WAITKIND_SIGNALLED event for
-	inferior_ptid.  However, inferior_ptid is invalid during ::wait()
-	methods after the multi-target changes, so this was triggering an
-	assertion further up the stack.
-
-	do_target_wait_1: Clear TARGET_WNOHANG if the target isn't async.
-	Previously, TARGET_WNOHANG was cleared if a target supported async
-	mode even if async mode wasn't currently enabled.  This change only
-	permits TARGET_WNOHANG if async mode is enabled.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	Don't enable async mode at the end of target ::resume methods.
-	Now that target_resume always enables async mode after target::resume
-	returns, these calls are redundant.
-
-	The other place that target resume methods are invoked outside of
-	target_resume are as the beneath target in record_full_wait_1.  In
-	this case, async mode should already be enabled when supported by the
-	target before the resume method is invoked due to the following:
-
-	  In general, targets which support async mode run as async until
-	  ::wait returns TARGET_WAITKIND_NO_RESUMED to indicate that there are
-	  no unwaited for children (either they have exited or are stopped).
-	  When that occurs, the loop in wait_one disables async mode.  Later
-	  if a stopped child is resumed, async mode is re-enabled in
-	  do_target_resume before waiting for the next event.
-
-	  In the case of record_full_wait_1, this function is invoked from the
-	  ::wait target method when fetching an event.  If the underlying
-	  target supports async mode, then an earlier call to do_target_resume
-	  to resume the child reporting an event in the loop in
-	  record_full_wait_1 would have already enabled async mode before
-	  ::wait was invoked.  In addition, nothing in the code executed in
-	  the loop in record_full_wait_1 disables async mode.  Async mode is
-	  only disabled higher in the call stack in wait_one after ::wait
-	  returns.
-
-	  It is also true that async mode can be disabled by an
-	  INF_EXEC_COMPLETE event passed to inferior_event_handle, but all of
-	  the places that invoke that are in the gdb core which is "above" a
-	  target ::wait method.
-
-	Note that there is an earlier call to enable async mode in
-	linux_nat_target::resume.  That call also marks the async event pipe
-	to report an existing event after enabling async mode, so it needs to
-	stay.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	Enable async mode on supported targets in target_resume.
-	Enabling async mode above the target layer removes duplicate code in
-	::resume methods of async-capable targets.  Commit 5b6d1e4fa4f
-	("Multi-target support") enabled async mode in do_target_resume after
-	target_resume returns which is a step in this direction.  However,
-	other callers of target_resume such as target_continue do not enable
-	async mode.  Rather than enabling async mode in each of the callers
-	after target_resume returns, enable async mode at the end of
-	target_resume.
-
-	gdbserver linux-low: Convert linux_event_pipe to the event_pipe class.
-	Use event_pipe from gdbsupport in place of the existing file
-	descriptor array.
-
-	gdb linux-nat: Convert linux_nat_event_pipe to the event_pipe class.
-	Use event_pipe from gdbsupport in place of the existing file
-	descriptor array.
-
-2022-02-22  John Baldwin  <jhb@FreeBSD.org>
-
-	gdbsupport: Add an event-pipe class.
-	This pulls out the implementation of an event pipe used to implement
-	target async support in both linux-low.cc (gdbserver) and linux-nat.c
-	(gdb).
-
-	This will be used to replace the existing event pipe in linux-low.cc
-	and linux-nat.c in future commits.
-
-	Co-Authored-By: Lancelot SIX <lsix@lancelotsix.com>
-
-2022-02-22  Ruslan Kabatsayev  <b7.10110111@gmail.com>
-
-	gdb: fix detection of compilation and linking flags for source-highlight
-	Currently there are two problems with the detection of
-	source-highlight via pkg-config in GDB's configure script:
-
-	1. The LDFLAGS variable is used to pass the 'pkg-config --libs' output
-	to AC_LINK_IFELSE, which results in the "-L/some/path
-	-lsource-highlight" preceding the conftest.cpp, which can result in a
-	failure to find symbols referenced in conftest.cpp, if the linker is
-	using --as-needed by default.
-
-	2. The CFLAGS variable is used to pass the 'pkg-config --cflags'
-	output to AC_LINK_IFELSE.  However, as the current language is C++,
-	AC_LINK_IFELSE will actuall use CXXFLAGS, not CFLAGS, so any flags
-	returned from pkg-config will not be seen.
-
-	This patch fixes both of these mistakes, allowing GDB to correctly
-	configure and build using source-highlight installed into a custom
-	prefix, e.g. ~/opt/gdb-git (because the system version of
-	source-highlight is too old).
-
-2022-02-22  Philippe Blain  <levraiphilippeblain@gmail.com>
-
-	gdb/testsuite/README: point to default value of INTERNAL_GDBFLAGS
-	The INTERNAL_GDBFLAGS runtest variable was updated in 55c3ad88013
-	([gdb/testsuite] Prevent pagination in GDB_INTERNALFLAGS, 2020-10-26) to
-	disable pagination, and in aae1c79a03a (PR python/12227..., 2010-12-07)
-	to point to the data directory, but its default value mentioned in the
-	testsuite's README was not kept up to date.
-
-	To avoid it getting out of sync even more, point the reader to the
-	definition of the variable in lib/gdb.exp, and move the explanation of
-	the different flags there. Also adjust the example in the README
-	so it follows the flags added in 55c3ad88013.
-
-	Change-Id: I3533608a7d6ae5198af09c7dc7743bde24c19ed7
-
-2022-02-22  Kito Cheng  <kito.cheng@sifive.com>
-
-	RISC-V: Maintain a string to hold the canonical order
-	Using dummy entry in riscv_supported_std_ext cause confusing and wrongly
-	support `b` and `k` extensions.
-
-	bfd/
-		* elfxx-riscv.c (riscv_supported_std_ext): Drop unsupported
-		extensions.
-		(riscv_ext_canonical_order): New.
-		(riscv_init_ext_order): Use riscv_ext_canonical_order rather
-		than riscv_supported_std_ext to compute canonical order.
-
-	V2 Changes:
-
-	- Use `*ext` rather than `*ext != NULL` for checking is reach end of
-	  string.
-
-2022-02-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-21  Alan Modra  <amodra@gmail.com>
-
-	Re: ld: Support customized output section type
-	"DO NOT EDIT!" says the comment at the top of bfd-in2.h.  Move the new
-	type field where it belongs.
-
-		PR ld/28841
-		* section.c (struct bfd_section): Add type.  Formatting.
-		(BFD_FAKE_SECTION): Formatting.
-		* bfd-in2.h: Regenerate.
-
-2022-02-21  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: gdbinit: hoist setup to common code
-	This was left in subdirs because of the dynamic cgen usage.  However,
-	we can move this breakpoint call to runtime and let gdb detect whether
-	the symbol exists.
-
-2022-02-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: relax pattern in new gdb.mi/mi-multi-commands.exp test
-	I saw some failures in the test gdb.mi/mi-multi-commands.exp that I
-	added recently.  This test was added in commit:
-
-	  commit d08cbc5d3203118da5583296e49273cf82378042
-	  Date:   Wed Dec 22 12:57:44 2021 +0000
-
-	      gdb: unbuffer all input streams when not using readline
-
-	The failures I see only occurred when my machine was very heavily
-	loaded.
-
-	In this test I send multiple commands from dejagnu to gdb with a
-	single send_gdb call.  In a well behaving world what I want to happen
-	is that the gdb console sees both commands arrive and echos the text
-	of those commands.  Then gdb starts processing the first command,
-	prints the result, and then processes the second command, and prints
-	the result.
-
-	However, what I saw in my loaded environment was that only after
-	sending the two commands, only the first command was echoed to gdb's
-	terminal.  Then gdb started processing the first command, and started
-	to write the output.  Now, mixed in with the first command output, the
-	second command was echoed to gdb's terminal.  Finally, gdb would
-	finish printing the first command output, and would read and handle
-	the second command.
-
-	This mixing of command echoing with the first command output was
-	causing the test matching patterns to fail.
-
-	In this commit I change the command I use in the test from a CLI
-	command to an MI command, this reduces the number of lines of output
-	that come from the test, CLI commands sent through the MI interpreter
-	are echoed back like this:
-
-	  (gdb)
-	  set $a = "FIRST COMMAND"
-	  &"set $a = \"FIRST COMMAND\"\n"
-	  ^done
-	  (gdb)
-
-	While this is not the case for true MI command:
-
-	  (gdb)
-	  -data-evaluate-expression $a
-	  ^done,value="\"FIRST COMMAND\""
-	  (gdb)
-
-	Less output makes for simpler patterns to match against.
-
-	Next, when sending two command to gdb I was previously trying to spot
-	the output of the first command followed by the prompt with nothing
-	between.  This is not really needed, for the first command I can look
-	for just the ^done,value="\"FIRST COMMAND\"" string, then I can start
-	looking for the output of the second command.
-
-	So long as the second pattern matches up to the gdb prompt, then I can
-	be sure than nothing is left over in the expect buffer to muck up
-	later matches.
-
-	As to see the second command output gdb must have read in the second
-	command, the second command output never suffers from the corruption
-	that the first command output does.
-
-	Since making this change, I've not seen a failure in this test.
-
-2022-02-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: avoid nullptr access in dbxread.c from read_dbx_symtab
-	This fixes a GDB crash reported in bug pr/28900, related to reading in
-	some stabs debug information.
-
-	In this commit my goal is to stop GDB crashing.  I am not trying to
-	ensure that GDB makes the best possible use of the available stabs
-	debug information.  At this point I consider stabs a legacy debug
-	format, with only limited support in GDB.
-
-	So, the problem appears to be that, when reading in the stabs data, we
-	need to find a N_SO entry, this is the entry that defines the start of
-	a compilation unit (or at least the location of a corresponding source
-	file).
-
-	It is while handling an N_SO that GDB creates a psymtab to hold the
-	incoming debug information (symbols, etc).
-
-	The problem we hit in the bug is that we encounter some symbol
-	information (an N_PC entry) outside of an N_SO entry - that is we find
-	some symbol information that is not associated with any source file.
-
-	We already have some protection for this case, look (in
-	read_dbx_symtab) at the handling of N_PC entries of type 'F' and 'f',
-	if we have no psymtab (the pst variable is nullptr) then we issue a
-	complaint.  However, for whatever reason, in both 'f' and 'F'
-	handling, there is one place where we assume that the pst
-	variable (the psymtab) is not nullptr.  This is a mistake.
-
-	In this commit, I guard these two locations (in 'f' and 'F' handling)
-	so we no longer assume pst is not nullptr.
-
-	While I was at it, I audited all the other uses of pst in
-	read_dbx_symtab, and in every potentially dangerous case I added a
-	nullptr check, and issue a suitable complaint if pst is found to be
-	nullptr.
-
-	It might well be true that we could/should do something smarter if we
-	see a debug symbol outside of an N_SO entry, and if anyone wanted to
-	do that work, they're welcome too.  But this commit is just about
-	preventing the nullptr access, and the subsequent GDB crash.
-
-	I don't have any tests for this change, I have no idea how to generate
-	weird stabs data for testing.  The original binary from the bug report
-	now loads just fine without GDB crashing.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28900
-
-2022-02-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make use of std::string in dbxread.c and xcoffread.c
-	While taking a look through dbxread.c I spotted a couple of places
-	where making use of std::string would remove the need for manual
-	memory allocation and memcpy.
-
-	During review Simon pointed out that the same code exists in
-	xcoffread.c, so I've applied the same fix there too.
-
-	There should be no user visible changes after this commit.
-
-2022-02-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-20  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Only paginate for filtered output in fputs_maybe_filtered
-	A have had situation where a unfiltered output (done using
-	fputs_unfiltered) ended up triggering pagination.  The backtrace for this was:
-
-	    ...
-	    #24 0x000055839377ee4e in check_async_event_handlers () at ../../gdb/async-event.c:335
-	    #25 0x0000558394b67b57 in gdb_do_one_event () at ../../gdbsupport/event-loop.cc:216
-	    #26 0x0000558394587454 in gdb_readline_wrapper (prompt=0x7ffd907712d0 "--Type <RET> for more, q to quit, c to continue without paging--") at ../../gdb/top.c:1148
-	    #27 0x0000558394707270 in prompt_for_continue () at ../../gdb/utils.c:1438
-	    #28 0x00005583947088b3 in fputs_maybe_filtered (linebuffer=0x60c0000f4000 "   [...quite big message...]", stream=0x60300028e9d0, filter=0) at ../../gdb/utils.c:1752
-	    #29 0x0000558394708e57 in fputs_unfiltered (linebuffer=0x60c0000f4000 "   [...quite big message...]", stream=0x60300028e9d0) at ../../gdb/utils.c:1811
-	    ...
-
-	This comes from what appears to be a oversight in fputs_maybe_filtered.  This
-	function has a FILTER parameter which if true makes the function pause after
-	every screenful (i.e. triggers pagination).
-
-	The filter parameter is correctly used to guard the first place where
-	prompt_for_continue.  There is a second place in the function which can call
-	prompt_for_continue, but is currently unguarded.  I believe that this is an
-	oversight, this patch fixes that.
-
-	Tested on Linux-x86_64, no regression observed.
-
-	Change-Id: Iad8ffd50a87cf20077500878e2564b5a7dc81ece
-
-2022-02-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-19  Dominique Quatravaux  <dominique.quatravaux@epfl.ch>
-
-	gdb/darwin: remove not-so-harmless spurious call to `wait4`
-	As seen in https://sourceware.org/bugzilla/show_bug.cgi?id=24069 this
-	code will typically wait4() a second time on the same process that was
-	already wait4()'d a few lines above. While this used to be
-	harmless/idempotent (when we assumed that the process already exited),
-	this now causes a deadlock in the WIFSTOPPED case.
-
-	The early (~2019) history of bug #24069 cautiously suggests to use
-	WNOHANG instead of outright deleting the call. However, tests on the
-	current version of Darwin (Big Sur) demonstrate that gdb runs just fine
-	without a redundant call to wait4(), as would be expected.
-	Notwithstanding the debatable value of conserving bug compatibility with
-	an OS release that is more than a decade old, there is scant evidence of
-	what that double-wait4() was supposed to achieve in the first place - A
-	cursory investigation with `git blame` pinpoints commits bb00b29d7802
-	and a80b95ba67e2 from the 2008-2009 era, but fails to answer the
-	"why" question conclusively.
-
-	Co-Authored-By: Philippe Blain <levraiphilippeblain@gmail.com>
-	Change-Id: Id4e4415d66d6ff6b3552b60d761693f17015e4a0
-
-2022-02-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-18  Tom Tromey  <tromey@adacore.com>
-
-	Add constructor to bound_minimal_symbol
-	This adds a constructor to bound_minimal_symbol, to avoid a build
-	failure with clang that Simon pointed out.
-
-	I also took the opportunity to remove some redundant initializations,
-	and to change one use of push_back to emplace_back, as suggested by
-	Simon.
-
-2022-02-18  Roland McGrath  <mcgrathr@google.com>
-
-	Fix typo in ld.texi
-	ld/
-		* ld.texi (Output Section Type): Fix typo in @code syntax.
-
-2022-02-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove newlines from some linux_nat_debug_printf calls
-	Change-Id: I80328fab7096221356864b5a4fb30858b48d2c10
-
-2022-02-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-17  Nick Clifton  <nickc@redhat.com>
-
-	Updated Serbian translations for the bfd, gold, ld and opcodes directories
-
-2022-02-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-16  Fangrui Song  <maskray@google.com>
-
-	ld: Support customized output section type
-	bfd/
-	    PR ld/28841
-	    * bfd-in2.h (struct bfd_section): Add type.
-	    (discarded_section): Add field.
-	    * elf.c (elf_fake_sections): Handle bfd_section::type.
-	    * section.c (BFD_FAKE_SECTION): Add field.
-	    * mri.c (mri_draw_tree): Update function call.
-
-	ld/
-	    PR ld/28841
-	    * ld.texi: Document new output section type.
-	    * ldlex.l: Add new token TYPE.
-	    * ldgram.y: Handle TYPE=exp.
-	    * ldlang.h: Add type_section to list of section types.
-	    * ldlang.c (lang_add_section): Handle type_section.
-	    (map_input_to_output_sections): Handle type_section.
-	    * testsuite/ld-scripts/output-section-types.t: Add tests.
-	    * testsuite/ld-scripts/output-section-types.d: Update.
-
-2022-02-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: add a missing white space character
-	Just adds a missing space.  There should be no user visible changes
-	after this commit.
-
-	gdb: convert callback_handler_installed from int to bool
-	Simple int to bool conversion on callback_handler_installed in
-	event-top.c.  There should be no user visible changes after this
-	commit.
-
-2022-02-16  Alan Modra  <amodra@gmail.com>
-
-	gas local label and dollar label handling
-	Much of the gas source and older BFD source use "long" for function
-	parameters and variables, when other types would be more appropriate.
-	This patch fixes one of those cases.  Dollar labels and numeric local
-	labels do not need large numbers.  Small positive itegers are usually
-	all that is required.  Due to allowing longs, it was possible for
-	fb_label_name and dollar_label_name to overflow their buffers.
-
-		* symbols.c: Delete unnecessary forward declarations.
-		(dollar_labels, dollar_label_instances): Use unsigned int.
-		(dollar_label_defined, dollar_label_instance): Likewise.
-		(define_dollar_label): Likewise.
-		(fb_low_counter, fb_labels, fb_label_instances): Likewise.
-		(fb_label_instance_inc, fb_label_instance): Likewise.
-		(fb_label_count, fb_label_max): Make them size_t.
-		(dollar_label_name, fb_label_name): Rewrite using sprintf.
-		* symbols.h (dollar_label_defined): Update prototype.
-		(define_dollar_label, dollar_label_name): Likewise.
-		(fb_label_instance_inc, fb_label_name): Likewise.
-		* config/bfin-lex.l (yylex): Remove unnecessary casts.
-		* expr.c (integer_constant): Likewise.
-		* read.c (read_a_source_file): Limit numeric label range to int.
-
-2022-02-16  Alan Modra  <amodra@gmail.com>
-
-	ubsan: s_app_line integer overflow
-	There are quite a few ubsan warnings in gas.  This one disappears with
-	a code tidy.
-
-		* read.c (s_app_line): Rename 'l' to 'linenum'.  Avoid ubsan
-		warning.
-
-2022-02-16  Alan Modra  <amodra@gmail.com>
-
-	pe_ILF_make_a_symbol_reloc segfault
-	pei-aarch64-little apparently lacks support for BFD_RELOC_RVA.
-
-		* peicode.h (pe_ILF_make_a_symbol_reloc): Don't segfault on
-		NULL howto.
-
-2022-02-16  Alan Modra  <amodra@gmail.com>
-
-	What to do when sh_addralign isn't a power of two
-	BFD generally doesn't handle anything but a power of two section
-	alignment, and ELF sh_addralign is required to be an integral power of
-	two (or zero) by the ELF spec.  Of course this is ignored by fuzzers,
-	and because bfd_log2 rounds up, we can end up with alignment_power
-	being 32 on a 32-bit object or 64 on a 64-bit object.  That then
-	triggers ubsan warnings in places like bfd_update_compression_header
-	where we want to convert from alignment_power back to an alignment.
-	I suppose we could reject object files that have non-compliant
-	sh_addralign, but I think it's also reasonable to use the greatest
-	power of two divisor of sh_addralign, ie. the rightmost 1 bit.
-
-		* elf.c (_bfd_elf_make_section_from_shdr): Use greatest power
-		of two divisor of sh_addralign.
-		(_bfd_elf_assign_file_position_for_section): Likewise.
-		(assign_file_positions_for_non_load_sections): Likewise.
-
-2022-02-16  Alan Modra  <amodra@gmail.com>
-
-	asan: buffer overflow in vms-alpha.c
-		* vms-alpha.c (evax_bfd_print_dst): Sanity check another place
-		printing strings.
-
-	asan : use of uninitialized value in buffer_and_nest
-		* macro.c (buffer_and_nest): Don't read past end of string buffer.
-
-	asan: buffer overflow in peXXigen.c
-		* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Properly
-		sanity check DataDirectory[PE_DEBUG_DATA].Size.
-
-2022-02-16  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/common: Improve sim_dump_memory head comment
-	As requested by Mike.
-
-		* sim-memopt.c: Improve head comment.
-
-2022-02-16  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite/cris/c/stat3.c: Fix formatting nit
-	* c/stat3.c (main): Fix formatting nit.
-
-2022-02-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: cleanup the istarget * logic
-	Now that the multitarget testing has settled, clean up the cases where
-	istarget * is used.  This ends up being mostly style unindenting.
-
-2022-02-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-15  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Update I386_NEED_DYNAMIC_RELOC_TYPE_P for DT_TEXTREL
-	Update I386_NEED_DYNAMIC_RELOC_TYPE_P to allow R_386_TLS_IE for relocation
-	in read-only section.
-
-	bfd/
-
-		PR ld/28894
-		* elfxx-x86.h (I386_NEED_DYNAMIC_RELOC_TYPE_P): Allow
-		R_386_TLS_IE.
-
-	ld/
-		PR ld/28894
-		* testsuite/ld-i386/i386.exp: Run pr28894.
-		* testsuite/ld-i386/pr28894.d: New file.
-		* testsuite/ld-i386/pr28894.s: Likewise.
-
-2022-02-15  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite: Default global_cc_os and global_cc_works properly
-	There was an omission on 3e6dc39ed7a8 "sim/testsuite: Set
-	global_cc_os also when no compiler is found"; global_cc_os
-	wasn't set for other than the primary target, which means
-	that the "unguarded" use of global_cc_os in
-	testsuite/cris/c/c.exp caused the dreaded "ERROR: can't read
-	"global_cc_os": no such variable" when e.g. configuring for
-	pru-elf and doing "make check-sim".  Better initializing
-	both variables at the top to default values, rather than
-	adding another single 'set global_cc_os ""', to reduce the
-	risk of not setting them properly if or when that
-	if-statement-chain is made longer.
-
-	sim/testsuite:
-		* lib/sim-defs.exp (sim_init_toolchain): Default
-		global_cc_os and global_cc_works properly, before if-chain.
-
-2022-02-15  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Add has_sib to struct instr_info
-	Add has_sib to struct instr_info and use SIB info only if ins->has_sib
-	is true.
-
-		PR binutils/28892
-		* i386-dis.c (instr_info): Add has_sib.
-		(get_sib): Set has_sib.
-		(OP_E_memory): Replace havesib with ins->has_sib.
-		(OP_VEX): Use ins->sib.index only if ins->has_sib is true.
-
-2022-02-15  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Respect the DW_CC_nocall attribute
-	It is possible for a compiler to optimize a function in a such ways that
-	the function does not follow the calling convention of the target.  In
-	such situation, the compiler can use the DW_AT_calling_convention
-	attribute with the value DW_CC_nocall to tell the debugger that it is
-	unsafe to call the function.  The DWARF5 standard states, in 3.3.1.1:
-
-	  > If the value of the calling convention attribute is the constant
-	  > DW_CC_nocall, the subroutine does not obey standard calling
-	  > conventions, and it may not be safe for the debugger to call this
-	  > subroutine.
-
-	Non standard calling convention can affect GDB's assumptions in multiple
-	ways, including how arguments are passed to the function, how values are
-	returned, and so on.  For this reason, it is unsafe for GDB to try to do
-	the following operations on a function with marked with DW_CC_nocall:
-
-	- call / print an expression requiring the function to be evaluated,
-	- inspect the value a function returns using the 'finish' command,
-	- force the value returned by a function using the 'return' command.
-
-	This patch ensures that if a command which relies on GDB's knowledge of
-	the target's calling convention is used on a function marked nocall, GDB
-	prints an appropriate message to the user and does not proceed with the
-	operation which is unreliable.
-
-	Note that it is still possible for someone to use a vendor specific
-	value for the DW_AT_calling_convention attribute for example to indicate
-	the use of an alternative calling convention.  This commit does not
-	prevent this, and target dependent code can be adjusted if one wanted to
-	support multiple calling conventions.
-
-	Tested on x86_64-Linux, with no regression observed.
-
-	Change-Id: I72970dae68234cb83edbc0cf71aa3d6002a4a540
-
-2022-02-15  Lancelot SIX  <lancelot.six@amd.com>
-	    Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add a symbol* argument to get_return_value
-	Add an argument to the get_return_value function to indicate the symbol
-	of the function the debuggee is returning from.  This will be used by
-	the following patch.
-
-	Since the function return type can be deduced from the symbol remove the
-	value_type argument which becomes redundant.
-
-	No user visible change after this patch.
-
-	Tested on x86_64-linux.
-
-	Change-Id: Idf1279f1f7199f5022738a6679e0fa63fbd22edc
-
-2022-02-15  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86-64: Use MAXPAGESIZE for the relro segment alignment
-	Adjust x86-64 linker tests after reverting
-
-	commit 31b4d3a16f200bf04db8439a63b72bba7af4e1be
-	Author: Alan Modra <amodra@gmail.com>
-	Date:   Thu Feb 3 08:57:47 2022 +1030
-
-	    PR28824, relro security issues, x86 keep COMMONPAGESIZE relro
-
-	to use MAXPAGESIZE for the end of the relro segment alignment, like other
-	ELF targets.
-
-		* testsuite/ld-x86-64/plt-main-bnd.dd: Updated.
-		* testsuite/ld-x86-64/plt-main-ibt-x32.dd: Likewise.
-		* testsuite/ld-x86-64/plt-main-ibt.dd: Likewise.
-		* testsuite/ld-x86-64/pr14207.d: Likewise.
-		* testsuite/ld-x86-64/pr18176.d: Likewise.
-		* testsuite/ld-x86-64/pr20830a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830a.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a.d: Likewise.
-		* testsuite/ld-x86-64/pr21038b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038b.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c.d: Likewise.
-
-2022-02-15  H.J. Lu  <hjl.tools@gmail.com>
-
-	Revert "PR28824, relro security issues, x86 keep COMMONPAGESIZE relro"
-	This reverts commit 31b4d3a16f200bf04db8439a63b72bba7af4e1be.
-
-2022-02-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite/cris: If failing compilation, mark C tests as errors
-	...when we know we have a working compiler.  This will reduce
-	the risk of faulty edits by exposing them rather than hiding
-	them as "unresolved".  It also harmonizes behavior with that of
-	run_sim_test.
-
-		* c/c.exp: Mark C tests failing compilation test errors.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite/cris: Remove faulty use of basename in C tests
-	Calls to basename were added here as part of commit
-	e1e1ae6e9b5e "sim: testsuite: fix objdir handling", but that
-	commit missed adding "#include <libgen.h>" or the equivalent
-	GNU extension, see basename(3).  Fixing that shows a logical
-	error in the change to openpf1.c; the non-/-prefixed
-	code-path was changed instead of the "/"-prefixed code-path,
-	which is the one executed after that commit.
-
-	For "newlib" these tests failed linking after that commit.
-	Recent newlib has the (asm-renamed) GNU-extension-variant of
-	basename, but we're better off not using it at all.
-
-	Unfortunately, compilation failures for C tests run by the
-	machinery in c.exp are currently just marked "unresolved",
-	in contrast to C and assembler tests run by calling
-	run_sim_test.
-
-	The interaction of calling with the full program-path vs.
-	use of --sysroot exposes a consistency problem: when
-	--sysroot is used, argv[0] isn't the path by which the
-	program can find itself.  It's undecided whether argv[0] for
-	the program running in the simulator should be edited
-	(related to the naked argument to the simulator before
-	passing on to the simulated program) to remove a leading
-	--sysroot.  Either way, such a change would be out of scope
-	for this commit.
-
-		* c/stat3.c (mybasename): New macro.  Use it instead of basename.
-		* c/openpf1.c: Correct basename-related change and update related
-		comment.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim: Add sim_dump_memory for debugging
-	Intended to be called from the debugger tool.
-
-	sim/common:
-		* sim-memopt.c (sim_dump_memory): New function.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim: Fix use of out-of-tree assembler and linker when testing
-	With commit 7a259895bb2d "sim: testsuite: expand arch specific
-	toolchain settings", trying to use out-of-tree ld and as at test-time
-	broke for the "primary target", like when testing a release-tarball.
-
-	Subsequent to that commit, all assembler tests without in-tree-built
-	tools FAIL, getting errors when trying to call
-	$(abs_builddir)/../gas/as-new.  But, that isn't the actual culprint;
-	it's actually it's its immediate predecessor, commit 8996c21067373
-	"sim: testsuite: setup per-port toolchain settings for multitarget
-	build", which hardcodes in-tree-paths to those tools instead of
-	considering e.g. $(<X>_FOR_TARGET), the preferred overridable variable
-	for single-target builds, as set up by the toplevel Makefile.
-
-	This commit calls GCC_TARGET_TOOL (a deceptive name; gcc-specific
-	features aren't used) from toplev/config/acx.m4, somewhat like calls
-	in toplev/configure.ac but without the NCN_STRICT_CHECK_TARGET_TOOLS
-	step, for each X to find a value for $(<X>_FOR_TARGET).  N.B.: in-tree
-	tools still override any ${target}-${tool} found in $PATH, i.e. only
-	previously broken builds are affected.
-
-	The variables $(<X>_FOR_TARGET) are usually overridden by the toplevel
-	Makefile to the same value or better, but has to be set here too, as
-	automake "wants" Makefiles to be self-contained (you get an error
-	pointing out that the variable may be empty).  If it hadn't been for
-	that, SIM_AC_CHECK_TOOLCHAIN_FOR_PRIMARY_TARGET would not be needed.
-	This detail should only (positively) affect users invoking "make
-	check" in sim/ instead of "make check-sim" (or "make check") at the
-	toplevel.  Now the output from "configure" matches the target tools
-	actually used by sim at test-time, for the "primary target".
-
-	Using $(CC) for "example-" targets CC_FOR_TARGET is not changed, as
-	that appears to be a deliberate special-case.
-
-	Note that all tools still have to be installed and present in
-	$PATH at configure-time to be properly used at test-time.
-
-	sim:
-		* m4/sim_ac_toolchain.m4 (SIM_AC_CHECK_TOOLCHAIN_FOR_PRIMARY_TARGET):
-		New defun.
-		(SIM_TOOLCHAIN_VARS): Call it using AC_REQUIRE, and use variables
-		AS_FOR_TARGET, LD_FOR_TARGET and CC_FOR_TARGET instead of hard-coded
-		values.
-		* Makefile.in, configure: Regenerate.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim cris: Unbreak --disable-sim-hardware builds
-	With --disable-sim-hardware (--enable-sim-hardware=no),
-	whose default was changed to --enable-sim-hardware(=yes) in
-	commit 34cf51120683, building for cris-elf fails as
-	sim_hw_parse then doesn't exist.
-
-	A cris-elf simulator configured for --enable-sim-hardware
-	(or the default after to the mentioned commit) runs about
-	2.5x slower than one configured --disable-sim-hardware.
-	A further 2-5% performance regression was not investigated.
-
-	When sim_hw_parse doesn't exist, --cris-900000xx can't be
-	supported.  The best action here is to remove it completely,
-	so its absence can be identified through --help, but
-	avoiding littering the code with "#if WITH_HW".
-
-	sim/cris:
-		* sim-if.c (cris_options) [WITH_HW]: Conditionalize
-		support of option --cris-900000xx.
-		(sim_open) [WITH_HW]: Conditionalize sim_hw_parse
-		call.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite/cris: As applicable, require simoption --cris-900000xx
-	Apply the new run_sim_test option "require" as in "#require
-	simoption --cris-900000xx" for all tests using that option.
-	This allows a clean test-suite-run for a build with
-	--disable-sim-hardware, where that option is not supported,
-	by skipping those tests as "untested".
-
-	sim/testsuite/cris:
-		* asm/io1.ms, asm/io2.ms, asm/io3.ms, asm/io6.ms,
-		asm/io7.ms: Call "#require: simoption --cris-900000xx".
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite: Support "requires: simoption <--name-of-option>"
-	Simulator features can be present or not, typically
-	depending on different-valued configure options, like
-	--enable-sim-hardware[=off|=on].  To avoid failures in
-	test-suite-runs when testing such configurations, a new
-	predicate is needed, as neither "target", "progos" nor
-	"mach" fits cleanly.
-
-	The immediate need was to check for presence of a simulator
-	option, but rather than a specialized "requires-simoption:"
-	predicate I thought I'd handle the general (parametrized)
-	need, so here's a generic predicate machinery and a (first)
-	predicate to use together with it; checking whether a
-	particular option is supported, by looking at "run --help"
-	output.  This was inspired by the check_effective_target_
-	machinery in the gcc test-suite.
-
-	Multiple "requires: <requirement> <parameter>" form a list of
-	predicates (with parameters), to be used as a conjunction.
-
-	sim/testsuite:
-		* lib/sim-defs.exp (sim_check_requires_simoption): New function.
-		(run_sim_test): Support "requires: <requirement> <parameter>".
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite/cris/hw/rv-n-cris/irq1.ms: Disable due to randomness
-	For reasons that remain largely to be investigated (besides
-	the apparent lack of synchronization between two processes),
-	this test fails randomly, with two different sets of common
-	outputs.  Curiously, that doesn't happen for the other
-	similar tests.  There's a comment that mentions this, though
-	that doesn't make it a sustainable part of a test-suite.
-	(Known-blinking tests should be disabled until fixed.)
-
-	sim/testsuite/cris:
-		* hw/rv-n-cris/irq1.ms: Disable by use of a never-matched
-		"progos" value.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite/cris/c: Use -sim3 but only for newlib targets
-	Commit a39487c6685f "sim: cris: use -sim with C tests for cris-elf
-	targets" caused " -sim" to be appended to CFLAGS_FOR_TARGET for
-	cris*-*-elf, where testing had until then relied on
-	"RUNTESTFLAGS=--target_board=cris-sim" being passed when running "make
-	check-sim", adding the right options.  While "-sim" happens to work,
-	the baseboard-file cris-sim.exp uses "-sim3" so for consistency use
-	that instead.
-
-	Then commit b42f20d2ac72 "sim: testsuite: drop most specific istarget
-	checks" caused " -sim" to be appended for *all* targets, which just
-	doesn't work.  For example, for crisv32-linux-gnu, that's not a
-	recognized option and will cause a dejagnu error and further testing
-	in c.exp will be aborted.
-
-	While cris-sim.exp appends "-static" for *-linux-gnu, further changes
-	in the test-suite have caused "linux"-specific tests to break, so that
-	part will be tended to separately.
-
-	But, save and restore CFLAGS_FOR_TARGET around the modification and
-	use where needed, to not have the CRIS-specific modification affect a
-	continuing test-run (possibly for other targets).
-
-	sim/testsuite/cris:
-		* c/c.exp (CFLAGS_FOR_TARGET): Replace appended option " -sim"
-		with " -sim3", but do it conditionally for newlib targets.  Save
-		and restore CFLAGS_FOR_TARGET in saved_CFLAGS_FOR_TARGET such
-		that it doesn't affect the value of CFLAGS_FOR_TARGET outside
-		c.exp.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite: Set global_cc_os also when no compiler is found
-	If we don't set this variable, it doesn't exist, and using "#progos:"
-	in an assembler-file will cause an error rather than just skipping the
-	test, viz:
-
-	Running /src/sim/testsuite/cris/hw/rv-n-cris/rvc.exp ...
-	ERROR: tcl error sourcing /src/sim/testsuite/cris/hw/rv-n-cris/rvc.exp.
-	ERROR: can't read "global_cc_os": no such variable
-	    while executing
-	"if { $opts(progos) != "" && $opts(progos) != $global_cc_os } {
-		untested $subdir/$name
-		return
-	    }"
-	    (procedure "run_sim_test" line 102)
-
-	Neither the commit introducing progos, nor the top comment
-	in run_sim_test, mentions progos as intended only for C
-	tests, or that its use must be gated on $global_cc_works !=
-	0, so (not) setting it in the no-working-compiler path seems
-	just overlooked.
-
-	Allowing it to be used for assembler tests makes it usable
-	for e.g. an always-false predicate and in expressions in
-	.exp files without gating on $global_cc_works != 0.
-
-	With this patch, global_cc_os is set to "", just as for "unknown OS".
-
-	    sim/testsuite:
-		* lib/sim-defs.exp (sim_init_toolchain): Set global_cc_os also when
-		no working target C compiler is found.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim/testsuite/cris: Assembler testcase for PRIx32 usage bug
-	Several C test-cases exposed the bug, but let's have one for
-	people who test using just the assembler and linker.
-
-		* asm/endmem1.ms: New test.
-
-2022-02-14  Hans-Peter Nilsson  <hp@axis.com>
-
-	sim cris: Correct PRIu32 to PRIx32
-	In 5ee0bc23a68f "sim: clean up bfd_vma printing" there was
-	an additional introduction of PRIx32 and PRIu32 but just in
-	sim/cris/sim-if.c.  One type of bug was fixed in commit
-	d16ce6e4d581 "sim: cris: fix memory setup typos" but one
-	remained; the PRIu32 usage is wrong, as hex output is
-	desired; note the 0x prefix.
-
-	Without this fix, you'll see output like:
-	 memory map 0:0x4000..0x5fff (8192 bytes) overlaps 0:0x0..0x16383 (91012 bytes)
-	 program stopped with signal 6 (Aborted).
-	for some C programs, like some of the ones in the sim/cris/c
-	testsuite from where the example is taken (freopen2.c).
-
-	The bug behavior was with memory allocation.  With an
-	attempt to allocate memory using the brk syscall such that
-	the room up to the next 8192-byte "page boundary" wasn't
-	sufficient, the simulator memory allocation machinery horked
-	on a consistency error when trying to allocate a memory
-	block to raise the "end of the data segment": there was
-	already memory allocated at that address.
-
-	Unfortunately, none of the programs in sim/cris/asm exposed
-	this bug at the time, but an assembler test-case is
-	committed after this fix.
-
-	sim/cris:
-		* sim-if.c (sim_open): Correct PRIu32 to PRIx32.
-
-2022-02-14  Sergei Trofimovich  <siarheit@google.com>
-
-	microblaze: fix fsqrt collicion to build on glibc-2.35
-		* microblaze-opcm.h: Renamed 'fsqrt' to 'microblaze_fsqrt'.
-		* microblaze-opc.h: Follow 'fsqrt' rename.
-
-2022-02-14  Tom Tromey  <tom@tromey.com>
-
-	Remove LA_PRINT_STRING
-	This removes the LA_PRINT_STRING macro, in favor of using ordinary
-	method calls.
-
-	Remove LA_PRINT_CHAR
-	This removes the LA_PRINT_CHAR macro, in favor of using ordinary
-	method calls.
-
-	Remove LA_PRINT_TYPE
-	This removes the LA_PRINT_TYPE macro, in favor of using ordinary
-	method calls.
-
-2022-02-14  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: move styling support to gdb.styling
-	This commit moves the two Python functions that are used for styling
-	into a new module, gdb.styling, there's then a small update in
-	python.c so GDB can find the functions in their new location.
-
-	The motivation for this change is purely to try and reduce the clutter
-	in the top-level gdb module, and encapsulate related functions into
-	modules.  I did ponder documenting these functions as part of the
-	Python API, however, doing so would effectively "fix" the API, and I'm
-	still wondering if there's improvements that could be made, also, the
-	colorize function is only called in some cases now that GDB prefers
-	libsource-highlight, so it's not entirely sure how this would work as
-	part of a user facing API.
-
-	Still, despite these functions never having been part of a documented
-	API, it is possible that a user out there has overridden these to, in
-	some way, customize how GDB performs styling.  Moving the function as
-	I propose in this patch could break things for that user, however,
-	fixing this breakage is trivial, and, as these functions were never
-	documented, I don't think we should be obliged to not break user code
-	that relies on them.
-
-2022-02-14  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: use python to colorize disassembler output
-	This commit adds styling support to the disassembler output, as such
-	two new commands are added to GDB:
-
-	  set style disassembler enabled on|off
-	  show style disassembler enabled
-
-	In this commit I make use of the Python Pygments package to provide
-	the styling.  I did investigate making use of libsource-highlight,
-	however, I found the highlighting results to be inferior to those of
-	Pygments; only some mnemonics were highlighted, and highlighting of
-	register names such as r9d and r8d (on x86-64) was incorrect.
-
-	To enable disassembler highlighting via Pygments, I've added a new
-	extension language hook, which is then implemented for Python.  This
-	hook is very similar to the existing hook for source code
-	colorization.
-
-	One possibly odd choice I made with the new hook is to pass a
-	gdb.Architecture through, even though this is currently unused.  The
-	reason this argument is not used is that, currently, styling is
-	performed identically for all architectures.
-
-	However, even though the Python function used to perform styling of
-	disassembly output is not part of any documented API, I don't want
-	to close the door on a user overriding this function to provide
-	architecture specific styling.  To do this, the user would inevitably
-	require access to the gdb.Architecture, and so I decided to add this
-	field now.
-
-	The styling is applied within gdb_disassembler::print_insn, to achieve
-	this, gdb_disassembler now writes its output into a temporary buffer,
-	styling is then applied to the contents of this buffer.  Finally the
-	gdb_disassembler buffer is copied out to its final destination stream.
-
-	There's a new test to check that the disassembler output includes some
-	escape sequences, though I don't check for specific colours; the
-	precise colors will depend on which instructions are in the
-	disassembler output, and, I guess, how pygments is configured.
-
-	The only negative change with this commit is how we currently style
-	addresses in GDB.
-
-	Currently, when the disassembler wants to print an address, we call
-	back into GDB, and GDB prints the address value using the `address`
-	styling, and the symbol name using `function` styling.  After this
-	commit, if pygments is used, then all disassembler styling is done
-	through pygments, and this include the address and symbol name parts
-	of the disassembler output.
-
-	I don't know how much of an issue this will be for people.  There's
-	already some precedent for this in GDB when we look at source styling.
-	For example, function names in styled source listings are not styled
-	using the `function` style, but instead, either GNU Source Highlight,
-	or pygments gets to decide how the function name should be styled.
-
-	If the Python pygments library is not present then GDB will continue
-	to behave as it always has, the disassembler output is mostly
-	unstyled, but the address and symbols are styled using the `address`
-	and `function` styles, as they are today.
-
-	However, if the user does `set style disassembler enabled off`, then
-	all disassembler styling is switched off.  This obviously covers the
-	use of pygments, but also includes the minimal styling done by GDB
-	when pygments is not available.
-
-2022-02-14  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Keep indirect symbol from IR if referenced from shared object
-	Don't change indirect symbol defined in IR to undefined if it is
-	referenced from shared object.
-
-	bfd/
-
-		PR ld/28879
-		* elflink.c (_bfd_elf_merge_symbol): Don't change indirect
-		symbol defined in IR to undefined if it is referenced from
-		shared object.
-
-	ld/
-
-		PR ld/28879
-		* testsuite/ld-plugin/lto.exp: Run PR ld/28879 tests.
-		* testsuite/ld-plugin/pr28879a.cc: New file.
-		* testsuite/ld-plugin/pr28879b.cc: Likewise.
-
-2022-02-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-13  Alan Modra  <amodra@gmail.com>
-
-	PR28882, build failure with gcc-4.2 due to use of 0b literals
-		PR 28882
-		* elf/loongarch.h: Replace binary literals with hex.
-
-2022-02-13  Alan Modra  <amodra@gmail.com>
-
-	Don't pass around expld.dataseg pointer
-	The better to see any code that accesses expld.dataseg.
-
-		* ldexp.c (fold_segment_end): Remove seg parameter.  Adjust calls.
-		(fold_segment_align, fold_segment_relro_end): Likewise.
-		* ldlang.c (lang_size_segment): Likewise.
-		(lang_size_relro_segment_1, lang_find_relro_sections_1): Likewise.
-
-2022-02-13  Alan Modra  <amodra@gmail.com>
-
-	Remove bfd ELF_RELROPAGESIZE
-	Now that ld properly aligns the end of the relro segment, the hack to
-	make relro work on powerpc can disappear.
-
-	bfd/
-		* bfd.c (bfd_emul_get_commonpagesize): Remove relro param.
-		Don't return bed->relropagesize.
-		* elf-bfd.h (struct elf_backend_data): Remove relropagesize.
-		* elfxx-target.h (ELF_RELROPAGESIZE): Remove.
-		* elf32-ppc.c (ELF_RELROPAGESIZE): Don't define.
-		* elf64-ppc.c: Likewise.
-		* bfd-in2.h: Regenerate.
-	ld/
-		* ldemul.c (after_parse_default): Adjust
-		bfd_emul_get_commonpagesize call.
-
-2022-02-13  Alan Modra  <amodra@gmail.com>
-
-	PR28824, relro security issues, x86 keep COMMONPAGESIZE relro
-	x86 treats MAXPAGESIZE as a memory optimisation parameter, actual
-	hardware paging is always COMMPAGESIZE of 4k.  Use COMMONPAGESIZE for
-	the end of the relro segment alignment.
-
-	The previous patch regresses pr18176, increasing the testcase file
-	size from 322208 to 2099872 bytes.  Fixing this on x86 will require
-	introducing a gap after the end of the relro segment (of up to
-	relropagesize-1 bytes).
-
-		PR 28824
-		PR 18176
-		* ld.h (ld_config_type): Add relro_use_commonpagesize field.
-		* ldexp.c (fold_segment_align): Set relropagesize depending on
-		relro_use_commonpagesize.
-		* emultempl/elf-x86.em (elf_x86_create_output_section_statements):
-		Set relro_use_commonpagesize.
-		* testsuite/ld-x86-64/pr18176.d: xfail.
-
-2022-02-13  Alan Modra  <amodra@gmail.com>
-
-	PR28824, relro security issues
-	Background
-	==========
-	There are constraints on layout of binaries to meet demand paging and
-	memory protection requirements.  Demand paged binaries must have file
-	offset mod pagesize equal to vma mod pagesize.  Memory protection
-	(executable, read, write status) can only change at page boundaries.
-	The linker's MAXPAGESIZE variable gives the page size for these layout
-	constraints.
-
-	In a typical basic executable with two memory segments, text (RE) and
-	data (RW), the data segment must start on a different page to the
-	last text segment page.  For example, with 64k pages and a small
-	executable of 48k text and 1k data, the text segment might start at
-	address 0x10000 and data at 0x20000 for a total of two 64k memory
-	pages.  Demand paging would require the image on disk to be 64k+1k
-	in size.  We can do better than that.  If the data segment instead
-	starts at 0x2c000 (the end of the text segment plus one 64k page) then
-	there are still only two memory pages, but the disk image is now
-	smaller, 48k+1k in size.  This is why the linker normally starts the
-	data segment at the end of the text segment plus one page.  That
-	simple heuristic isn't ideal in all cases.  Changing our simple
-	example to one with 64k-1 text size, following that heuristic would
-	result in data starting at 0x2ffff.  Now we have two 64k memory data
-	pages for a data segment of 1k!  If the data segment instead started
-	at 0x30000 we'd get a single data segment page at the cost of 1 byte
-	extra in the disk image, which is likely a good trade-off.  So the
-	linker does adjust the simple heuristic.  Just how much disk image
-	size increase is allowed is controlled by the linker's COMMONPAGESIZE
-	variable.
-
-	A PT_GNU_RELRO segment overlays the initial part of the data segment,
-	saying that those pages should be made read-only after relocation by
-	the dynamic loader.  Page granularity for memory protection means that
-	the end of the relro segment must be at a page boundary.
-
-	The problem
-	===========
-	Unfortunately most targets currently only align the end of the relro
-	segment to COMMONPAGESIZE.  That results in only partial relro
-	protection if an executable is running with MAXPAGESIZE pages, since
-	any part of the relro segment past the last MAXPAGESIZE boundary can't
-	be made read-only without also affecting sections past the end of the
-	relro segment.  I believe this problem arose because x86 always runs
-	with 4k (COMMPAGESIZE) memory pages, and therefore using a larger
-	MAXPAGESIZE on x86 is for reasons other than the demand paging and
-	memory page protection boundary requirements.
-
-	The solution
-	============
-	Always end the relro segment on a MAXPAGESIZE boundary, except for
-	x86.  Note that the relro segment, comprising of sections at the start
-	of the data segment, is sized according to how those sections are laid
-	out.  That means the start of the relro segment is fixed relative to
-	its end.  Which also means the start of the data segment must be at a
-	fixed address mod MAXPAGESIZE.  So for relro the linker can't play
-	games with the start of the data segment to save disk space.  At
-	least, not without introducing gaps between the relro sections.  In
-	fact, because the linker was starting layout using its simple
-	heuristic of starting the data segment at the end of the text segment
-	plus one page, it was sometimes introducing page gaps for no reason.
-	See pr28743.
-
-		PR 28824
-		PR 28734
-		* ldexp.c (fold_segment_align): When relro, don't adjust up by
-		offset within page.  Set relropagesize.
-		(fold_segment_relro_end): Align to relropagesize.
-		* ldexp.h (seg_align_type): Rename pagesize to commonpagesize.
-		Add relropagesize.  Comment.
-		* ldlang.c (lang_size_segment): Adjust to suit field renaming.
-		(lang_size_relro_segment_1): Align relro_end using relropagesize.
-
-2022-02-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-11  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Disallow invalid relocation against protected symbol
-	I am checking this into master and will backport it to 2.38 branch.
-
-	H.J
-	----
-	On x86, GCC 12 supports -mno-direct-extern-access to enable canonical
-	reference to protected function and disable copy relocation.  With
-	-mno-direct-extern-access, the canonical protected function symbols must
-	be accessed via canonical reference and the protected data symbols in
-	shared libraries are non-copyable. Under glibc 2.35, non-canonical
-	reference to the canonical protected function will get the run-time error:
-
-	./y: internal_f: ./libfoo.so: non-canonical reference to canonical protected function
-
-	and copy relocations against the non-copyable protected symbols will get
-	the run-time error:
-
-	./x: internal_i: ./libfoo.so: copy relocation against non-copyable protected symbol
-
-	Update x86 linker to disallow non-canonical reference to the canonical
-	protected function:
-
-	ld: plt.o: non-canonical reference to canonical protected function `internal_f' in libfoo.so
-	ld: failed to set dynamic section sizes: bad value
-
-	and copy relocation against the non-copyable protected symbol:
-
-	ld: main.o: copy relocation against non-copyable protected symbol `internal_i' in libfoo.so
-
-	at link-time.
-
-	bfd/
-
-		PR ld/28875
-		* elf-properties.c (_bfd_elf_parse_gnu_properties): Don't skip
-		shared libraries for GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS.
-		* elf32-i386.c (elf_i386_scan_relocs): Disallow non-canonical
-		reference to canonical protected function.
-		* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.
-		* elfxx-x86.c (elf_x86_allocate_dynrelocs): Don't allow copy
-		relocation against non-copyable protected symbol.
-
-	ld/
-
-		PR ld/28875
-		* testsuite/ld-i386/i386.exp: Check non-canonical reference to
-		canonical protected function and check copy relocation against
-		non-copyable protected symbol.
-		* testsuite/ld-i386/pr21997-1.err: New file.
-		* testsuite/ld-i386/pr28875.err: Likewise.
-		* testsuite/ld-i386/pr28875a.c: Likewise.
-		* testsuite/ld-i386/pr28875b.c: Likewise.
-		* testsuite/ld-x86-64/pr21997-1a.err: Updated.
-		* testsuite/ld-x86-64/pr21997-1b.err: Likewise.
-		* testsuite/ld-x86-64/pr28875-data.err: New file.
-		* testsuite/ld-x86-64/pr28875-func.err: Likewise.
-		* testsuite/ld-x86-64/x86-64.exp: Check non-canonical reference
-		to canonical protected function and check copy relocation against
-		non-copyable protected symbol.
-
-2022-02-11  Tom Tromey  <tromey@adacore.com>
-
-	Add initializers to bound_minimal_symbol
-	This adds initializers to bound_minimal_symbol, allowing for the
-	removal of some calls to memset.
-
-2022-02-11  Bhuvanendra Kumar N  <Bhuvanendra.KumarN@amd.com>
-
-	gdb/fortran: support ptype and print commands for namelist variables
-	Gfortran supports namelists (a Fortran feature); it emits
-	DW_TAG_namelist and DW_TAG_namelist_item dies. But gdb does not
-	process these dies and does not support 'print' or 'ptype' commands on
-	namelist variables.
-
-	An attempt to print namelist variables results in gdb bailing out with
-	the error message as shown below.
-
-	  (gdb) print nml
-	  No symbol "nml" in current context.
-
-	This commit is to make the print and ptype commands work for namelist
-	variables and its items. Sample output of these commands is shared
-	below, with fixed gdb.
-
-	  (gdb) ptype nml
-	  type = Type nml
-	      integer(kind=4) :: a
-	      integer(kind=4) :: b
-	  End Type nml
-	  (gdb) print nml
-	  $1 = ( a = 10, b = 20 )
-
-2022-02-11  Bruno Larsen  <blarsen@redhat.com>
-
-	gdb: fix until behavior with trailing !is_stmt lines
-	When using the command "until", it is expected that GDB will exit a
-	loop if the current instruction is the last one related to that loop.
-	However, if there were trailing non-statement instructions, "until"
-	would just behave as "next".  This was noticeable in clang-compiled
-	code, but might happen with gcc-compiled as well.  PR gdb/17315 relates
-	to this problem, as running gdb.base/watchpoint.exp with clang
-	would fail for this reason.
-
-	To better understand this issue, consider the following source code,
-	with line numbers marked on the left:
-
-	  10:	for (i = 0; i < 10; ++i)
-	  11:     loop_body ();
-	  12:   other_stuff ();
-
-	If we transform this to pseudo-assembler, and generate a line table,
-	we could end up with something like this:
-
-	  Address | Pseudo-Assembler | Line | Is-Statement?
-
-	  0x100   | i = 0            | 10   | Yes
-	  0x104   | loop_body ()     | 11   | Yes
-	  0x108   | i = i + 1        | 10   | Yes
-	  0x10c   | if (i < 10):     | 10   | No
-	  0x110   |     goto 0x104   | 10   | No
-	  0x114   | other_stuff ()   | 12   | Yes
-
-	Notice the two non-statement instructions at the end of the loop.
-
-	The problem is that when we reach address 0x108 and use 'until',
-	hoping to leave the loop, GDB sets up a stepping range that runs from
-	the start of the function (0x100 in our example) to the end of the
-	current line table entry, that is 0x10c in our example.  GDB then
-	starts stepping forward.
-
-	When 0x10c is reached GDB spots that we have left the stepping range,
-	that the new location is not a statement, and that the new location is
-	associated with the same source line number as the previous stepping
-	range.  GDB then sets up a new stepping range that runs from 0x10c to
-	0x114, and continues stepping forward.
-
-	Within that stepping range the inferior hits the goto (at 0x110) and
-	loops back to address 0x104.
-
-	At 0x104 GDB spots that we have left the previous stepping range, that
-	the new address is marked as a statement, and that the new address is
-	for a different source line.  As a result, GDB stops and returns
-	control to the user.  This is not what the user was expecting, they
-	expected GDB to exit the loop.
-
-	The fix proposed in this patch, is that, when the user issues the
-	'until' command, and GDB sets up the initial stepping range, GDB will
-	check subsequent SALs (symtab_and_lines) to see if they are
-	non-statements associated with the same line number.  If they are then
-	the end of the initial stepping range is extended to the end of the
-	non-statement SALs.
-
-	In our example above, the user is at 0x108 and uses 'until', GDB now
-	sets up a stepping range from the start of the function 0x100 to
-	0x114, the first address associated with a different line.
-
-	Now as GDB steps around the loop it never leaves the initial stepping
-	range.  It is only when GDB exits the loop that we leave the stepping
-	range, and the stepping finishes at address 0x114.
-
-	This patch also adds a test case that can be run with gcc to test that
-	this functionality is not broken in the future.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17315
-
-2022-02-11  Richard Sandiford  <richard.sandiford@arm.com>
-
-	gas/doc: Fix "a true results" typo
-
-2022-02-11  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb: extend the information printed by 'maint info jit'
-	This commit updates the output of 'maint info jit' to print not just
-	the jit_code_entry address, but also the symfile address, and the
-	symfile size.
-
-	The new information could be obtained by looking into target memory at
-	the contents of the jit_code_entry, but, by storing this information
-	within gdb at the time the jit object is loaded, it is now possible to
-	check if the jit_code_entry has been modified in target memory behind
-	gdb's back.
-
-	Additionally, the symfile address is the same address that is now used
-	in the objfile names after commit 4a620b7e.
-
-	One test that relies on the output of 'maint info jit' was updated to
-	allow for the new output format.
-
-2022-02-11  Michael Forney  <mforney@mforney.org>
-
-	bfd: Remove return with expression in void function
-	      * bfd.c (bfd_set_gp_value): Remove return with expression
-	        in void function.
-
-2022-02-11  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: LoongArch: Add Makefile, configure and NEWS
-	This commit adds Makefile, configure and NEWS for LoongArch.
-
-	gdb: LoongArch: Add initial native Linux support
-	This commit adds initial native Linux support for LoongArch.
-
-	gdb: LoongArch: Add initial Linux target support
-	This commit adds initial Linux target support for LoongArch.
-
-	gdb: LoongArch: Add initial baremetal support
-	This commit adds initial baremetal support for LoongArch.
-
-	gdb: LoongArch: Add initial target description support
-	This commit adds initial target description support for LoongArch.
-
-2022-02-11  Mike Frysinger  <vapier@gentoo.org>
-
-	libctf: delete unused libctf_TEXINFOS
-	It's not clear what this was meant for, but it's not used by anything,
-	and the info pages still generate fine without it.
-
-2022-02-11  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linux: remove ptrace support check for exec, fork, vfork, vforkdone, clone, sysgood
-	I think it's safe to remove checking support for these ptrace features,
-	they have all been added in what is now ancient times (around the
-	beginning of Linux 2.6).  This allows removing a bit of complexity in
-	linux-nat.c and nat/linux-ptrace.c.
-
-	It also allows saving one extra fork every time we start debugging on
-	Linux: linux_check_ptrace_features forks a child process to test if some
-	ptrace features are supported.  That child process forks a grand-child,
-	to test whether ptrace reports an event for the fork by the child.  This
-	is no longer needed, if we assume the kernel supports reporting forks.
-
-	PTRACE_O_TRACEVFORKDONE was introduced in Linux in this change, in 2003:
-
-	  https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/commit/?id=45c1a159b85b3b30afd26a77b4be312226bba416
-
-	PTRACE_O_TRACESYSGOOD was supported at least as of this change, in 2002:
-
-	  https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/commit/?id=acc7088569c8eef04eeed0eff51d23bb5bcff964
-
-	PTRACE_O_TRACEFORK, PTRACE_O_TRACEVFORK, PTRACE_O_TRACEEXEC and
-	PTRACE_O_TRACECLONE were introduced in this change, in 2002:
-
-	  https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/commit/?id=a0691b116f6a4473f0fa264210ab9b95771a2b46
-
-	Change-Id: Iffb906549a89cc6b619427f976ec044706ab1e8d
-
-2022-02-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-10  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/infrun: some extra infrun debug print statements
-	While reviewing a different patch I wanted to know more about what was
-	going on during GDB's stepping.  I added some extra infrun debug print
-	calls, and I thought these might be useful to others.
-
-2022-02-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-09  Nick Clifton  <nickc@redhat.com>
-
-	Update the obsolete list and how-to-make-a-release documentation now that the 2.38 release is out.
-
-2022-02-09  Alan Modra  <amodra@gmail.com>
-
-	PR28763, SIGSEGV during processing of program headers via readelf
-		PR 28763
-		* readelf.c (process_file_header): Discard any cached program
-		headers if there is an extension field for e_phnum in first
-		section header.
-
-2022-02-09  Alan Modra  <amodra@gmail.com>
-
-	Work around gcc-4 warnings in elf64-ppc.c
-	elf64-ppc.c: In function 'ppc64_elf_size_dynamic_sections':
-	elf64-ppc.c:10309:45: error: value computed is not used [-Werror=unused-value]
-	     ++lgot_ents, ++lgot_masks, isym != NULL && isym++)
-
-	It is of course a silly warning, fixed in later versions of gcc.  I
-	wrote "isym != NULL && isym++" rather than the simpler "isym++" to
-	stop sanitisers complaining about incrementing a NULL pointer.  isym
-	is of course unused in any code path where it might start off as
-	NULL.  Sometimes you can't win.  So don't try to be clever in reading
-	local symbols only when needed.  99 times out of 100 they will be
-	cached anyway.
-
-		* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Avoid annoying
-		warnings by always reading local syms.
-		(ppc64_elf_layout_multitoc): Likewise.
-
-2022-02-09  Peilin Ye  <peilin.ye@bytedance.com>
-
-	Test --only-keep-debug on ELF relocatables
-	Add a test for commit 7c4643efe7be, which fixed --only-keep-debug for ELF
-	relocatables.
-
-		* testsuite/binutils-all/objcopy.exp
-		(keep_debug_symbols_for_elf_relocatable): New test.
-
-2022-02-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-08  Palmer Dabbelt  <palmer@rivosinc.com>
-
-	RISC-V: Stop reporting warnings for mismatched extension versions
-	The extension version checking logic is really just too complicated to
-	encode into the linker, trying to do so causes more harm than good.
-	This removes the checks and the associated tests, leaving the logic to
-	keep the largest version of each extension linked into the target.
-
-	bfd/
-
-		* elfnn-riscv.c (riscv_version_mismatch): Rename to
-		riscv_update_subset_version, and stop reporting warnings on
-		version mismatches.
-		(riscv_merge_std_ext): Adjust calls to riscv_version_mismatch.
-		(riscv_merge_multi_letter_ext): Likewise.
-
-	ld/
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d: Remove
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s: Likewise
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s: Likewise
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-02.d: Likewise
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-02a.s: Likewise
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-02b.s: Likewise
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-02c.s: Likewise
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-02d.s: Likewise
-		* testsuite/ld-riscv-elf/attr-merge-user-ext-01.d: New test.
-		* testsuite/ld-riscv-elf/attr-merge-user-ext-rv32i21_m2p0.s:
-		Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-user-ext-rv32i21_m2p1.s:
-		Likewise.
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Remove obselete
-		attr-merge-arch-failed-{01,02}, replace with
-		attr-merge-user-ext-01.
-
-2022-02-08  Alan Modra  <amodra@gmail.com>
-
-	PR28862, heap-buffer-overflow in parse_stab_string
-	I have no info on the format of a "SUNPRO C++ Namespace" stab, so am
-	relying on the previous code being correct in parsing these stabs.
-	Just don't allow NULs anywhere in the stab.
-
-		PR 28862
-		* stabs.c (parse_stab_string): Don't overrun buffer when parsing
-		'Y' stab.
-
-2022-02-08  Alan Modra  <amodra@gmail.com>
-
-	Re: elf: Check symbol version without any symbols
-		* testsuite/ld-elf/pr24718-1.d: Don't xfail for hppa64.
-
-2022-02-08  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: remove tailing newlines from index_cache_debug calls
-	I noticed that most of the calls to index_cache_debug include a
-	trailing newline.  As the new debug mechanism already adds a newline,
-	that means all of these debug calls result in a blank line being
-	printed, which I think is a mistake.
-
-	Remove all the trailing newlines.
-
-	I also reformatted one of the index_cache_debug where a string will
-	now fit onto a single line.
-
-	Unless 'set debug index-cache on' is used, there should be no visible
-	change in output after this commit.
-
-2022-02-08  H.J. Lu  <hjl.tools@gmail.com>
-
-	i386: Allow GOT32 relocations against ABS symbols
-	GOT32 relocations are allowed since absolute value + addend is stored in
-	the GOT slot.
-
-	Tested on glibc 2.35 build with GCC 11.2 and -Os.
-
-	bfd/
-
-		PR ld/28870
-		* elfxx-x86.c (_bfd_elf_x86_valid_reloc_p): Also allow GOT32
-		relocations.
-
-	ld/
-
-		PR ld/28870
-		* testsuite/ld-i386/i386.exp: Run pr28870.
-		* testsuite/ld-i386/pr28870.d: New file.
-		* testsuite/ld-i386/pr28870.s: Likewise.
-
-2022-02-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: allow Value.format_string to return styled output
-	Add a new argument to the gdb.Value.format_string method, 'styling'.
-	This argument is False by default.
-
-	When this argument is True, then the returned string can contain output
-	styling escape sequences.
-
-	When this argument is False, then the returned string will not contain
-	any styling escape sequences.
-
-	If the returned string is going to be printed to the user, then it is
-	often nice to retain the GDB styling.
-
-	For the testing, we need to adjust the TERM environment variable, as
-	we do for all the styling tests.  I'm now running all of the C tests
-	in gdb.python/py-format-string.exp in an environment where styling
-	could be generated, but only my new test should actually produce
-	styled output, hopefully this will catch the case where a bug might
-	cause format_string to always produce styled output.
-
-2022-02-07  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: make thread_info::m_thread_fsm a std::unique_ptr
-	While working on function calls, I realized that the thread_fsm member
-	of struct thread_info is a raw pointer to a resource it owns.  This
-	commit changes the type of the thread_fsm member to a std::unique_ptr in
-	order to signify this ownership relationship and slightly ease resource
-	management (no need to manually call delete).
-
-	To ensure consistent use, the field is made a private member
-	(m_thread_fsm).  The setter method (set_thread_fsm) can then check
-	that it is incorrect to associate a FSM to a thread_info object if
-	another one is already in place.  This is ensured by an assertion.
-
-	The function run_inferior_call takes an argument as a pointer to a
-	call_thread_fsm and installs it in it in a thread_info instance.  Also
-	change this function's signature to accept a unique_ptr in order to
-	signify that the ownership of the call_thread_fsm is transferred during
-	the call.
-
-	No user visible change expected after this commit.
-
-	Tested on x86_64-linux with no regression observed.
-
-	Change-Id: Ia1224f72a4afa247801ce6650ce82f90224a9ae8
-
-2022-02-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: unbuffer all input streams when not using readline
-	This commit should fix PR gdb/28711.  What's actually going on is
-	pretty involved, and there's still a bit of the story that I don't
-	understand completely, however, from my observed results, I think that
-	the change I propose making here (or something very similar) is going
-	to be needed.
-
-	The original bug report involves using eclipse to drive gdb using mi
-	commands.  A separate tty is spun off in which to send gdb the mi
-	commands, this tty is created using the new-ui command.
-
-	The behaviour observed is that, given a particular set of mi commands
-	being sent to gdb, we sometimes see an ESPIPE error from a lseek
-	call, which ultimately results in gdb terminating.
-
-	The problems all originate from gdb_readline_no_editing_callback in
-	gdb/event-top.c, where we can (sometimes) perform calls to fgetc, and
-	allow glibc to perform buffering on the FILE object being used.
-
-	I say sometime, because, gdb_readline_no_editing_callback already
-	includes a call to disable the glibc buffering, but this is only done
-	if the input stream is not a tty.  In our case the input stream is a
-	tty, so the buffering is left in place.
-
-	The first step to understanding why this problem occurs is to
-	understand that eclipse sends multiple commands to gdb very quickly
-	without waiting for and answer to each command, eclipse plans to
-	collect all of the command results after sending all the commands to
-	gdb.  In fact, eclipse sends the commands to gdb that they appear to
-	arrive in the gdb process as a single block of data.  When reproducing
-	this issue within the testsuite I find it necessary to send multiple
-	commands using a single write call.
-
-	The next bit of the story gets a little involved, and this is where my
-	understanding is not complete.  I can describe the behaviour that I
-	observe, and (for me at least) I'm happy that what I'm seeing, if a
-	little strange, is consistent.  In order to fully understand what's
-	going on I think I would likely need to dive into kernel code, which
-	currently seems unnecessary given that I'm happy with the solution I'm
-	proposing.
-
-	The following description all relates to input from a tty in which I'm
-	not using readline.  I see the same problems either when using a
-	new-ui tty, or with gdb's standard, non-readline, mi tty.
-
-	Here's what I observe happening when I send multiple commands to gdb
-	using a single write, if I send gdb this:
-
-	  command_1\ncommand_2\ncommand_3
-
-	then gdb's event loop will wake up (from its select) as it sees there
-	is input available.  We call into gdb_readline_no_editing_callback,
-	where we call fgetc, glibc will do a single big read, and get back
-	just:
-
-	  command_1\n
-
-	that is, despite there being multiple lines of input available, I
-	consistently get just a single line.  From glibc a single character is
-	returned from the fgetc call, and within gdb we accumulate characters,
-	one at a time, into our own buffer.  Eventually gdb sees the '\n'
-	character, and dispatches the whole 'command_1' into gdb's command
-	handler, which processes the command and prints the result.  We then
-	return to gdb_readline_no_editing_callback, which in turn returns to
-	gdb's event loop where we re-enter the select.
-
-	Inside the select we immediately see that there is more input waiting
-	on the input stream, drop out of the select, and call back into
-	gdb_readline_no_editing_callback.  In this function we again call
-	fgetc where glibc performs another big read.  This time glibc gets:
-
-	  command_2\n
-
-	that is, we once again get just a single line, despite there being a
-	third line available.  Just like the first command we copy the whole
-	string, character by character into gdb's buffer, then handle the
-	command.  After handling the command we go to the event loop, enter,
-	and then exit the select, and call back to the function
-	gdb_readline_no_editing_callback.
-
-	In gdb_readline_no_editing_callback we again call fgetc, this time
-	glibc gets the string:
-
-	  command_3\n
-
-	like before, we copy this to gdb's buffer and handle the command, then
-	we return to the event loop.  At this point the select blocks while we
-	wait for more input to arrive.
-
-	The important bit of this is that someone, somewhere is, it appears,
-	taking care to split the incoming write into lines.
-
-	My next experiment is to try something like:
-
-	  this_is_a_very_long_command\nshort_command\n
-
-	However, I actually make 'this_is_a_very_long_command' very long, as
-	in many hundreds of characters long.  One way to do this is:
-
-	  echo xxxxxx.....xxxxx
-
-	and just adding more and more 'x' characters as needed.  What I'm
-	aiming for is to have the first command be longer than glibc's
-	internal read buffer, which, on my machine, is 1024 characters.
-
-	However, for this discussion, lets imagine that glibc's buffer is just
-	8 characters (we can create just this situation by adding a suitable
-	setbuf call into gdb_readline_no_editing_callback).
-
-	Now, if I send gdb this data:
-
-	  abcdefghij\nkl\n
-
-	The first read from glibc will get 'abcdefgh', that is a full 8
-	character buffer.  Once gdb has copied these to its buffer we call
-	fgetc again, and now glibc will get 'ij\n', that is, just like before,
-	multiple lines are split at the '\n' character.  The full command,
-	which is now in gdb's buffer can be handled 'abcdefghij', after which
-	we go (via the event loop) back to gdb_readline_no_editing_callback.
-	Now we call fgetc, and glibc will get 'kl\n', which is then handled in
-	the normal way.
-
-	So far, so good.  However, there is, apparently, one edge case where
-	the above rules don't apply.
-
-	If the '\n' character is the first character read from the kernel,
-	then the incoming lines are not split up.  So, given glibc's 8
-	character buffer, if I send gdb this:
-
-	  abcdefgh\nkl\n
-
-	that is the first command is 8 characters plus a newline, then, on the
-	first read (from within glibc) we get 'abcdefgh' in a single buffer.
-	As there's no newline gdb calls fgetc again, and glibc does another
-	large read, now we get:
-
-	  \nkl\n
-
-	which doesn't follow the above pattern - the lines are not split into
-	separate buffers!
-
-	So, gdb reads the first character from glibc using fgetc, this is the
-	newline.  Now gdb has a complete command, and so the command is
-	handled.  We then return to the event loop and enter the select.
-
-	The problem is that, as far as the kernel is concerned, there is no
-	more input pending, it's all been read into glibc's buffer, and so the
-	select doesn't return.  The second command is basically stuck in
-	glibc's buffer.
-
-	If I send another command to gdb, or even just send an empty
-	command (a lone newline) then the select returns, we call into
-	gdb_readline_no_editing_callback, and now gdb sees the second
-	command.
-
-	OK, so the above is interesting, but it doesn't explain the ESPIPE
-	error.
-
-	Well, that's a slightly different, but related issue.  The ESPIPE
-	case will _only_ show up when using new-ui to create the separate tty
-	for mi commands, and is a consequence of this commit:
-
-	  commit afe09f0b6311a4dd1a7e2dc6491550bb228734f8
-	  Date:   Thu Jul 18 17:20:04 2019 +0100
-
-	      Fix for using named pipes on Windows
-
-	Prior to this commit, the new-ui command would open the tty three
-	times, once each for stdin, stderr, and stdout.  After this commit we
-	open the tty just once and reuse the FILE object for all three roles.
-
-	Consider the problem case, where glibc has (unexpectedly) read the
-	second command into its internal buffer.  When we handle the first
-	command we usually end up having to write something to the mi output
-	stream.
-
-	After the above commit the same FILE object represents both the input
-	and output streams, so, when gdb tries to write to the FILE object,
-	glibc spots that there is input pending within the input buffer, and
-	so assumes that we have read ahead of where we should be in the input
-	file.  To correct for this glibc tries to do an lseek call to
-	reposition the file offset of the output stream prior to writing to
-	it.  However, as the output stream is a tty, and seeking is not
-	supported on a tty, this lseek call fails, this results in the ESPIPE,
-	which ultimately causes gdb to terminate.
-
-	So, now we understand why the ESPIPE triggers (which was what caused
-	the gdb crash in the original bug report), and we also understand that
-	sometime gdb will not handle the second command in a timely
-	fashion (if the first command is just the wrong length). So, what to
-	do about all this?
-
-	We could revert the commit mentioned above (and implement its
-	functionality another way).  This would certainly resolve the ESPIPE
-	issue, the buffered input would now only be on the input stream, the
-	output stream would have no buffered input, and so glibc would never
-	try to lseek, and so we'd never get the ESPIPE error.
-
-	However, this only solves one of the two problems.  We would still
-	suffer from the problem where, if the first command is just the wrong
-	length, the second command will not (immediately) get handled.
-
-	The only solution I can see to this problem is to unbuffer the input
-	stream.  If glibc is not buffering the input, but instead, we read
-	incoming data character by character from the kernel, then everything
-	will be fine.  As soon as we see the newline at the end of the first
-	command we will handle the first command.  As glibc will have no
-	buffered input it will not be tempted to lseek, so no ESPIPE error.
-	When we go have to the event loop there will be more data pending in
-	the kernel, so the select will immediately return, and the second
-	command will be processed.
-
-	I'm tempted to suggest that we should move the unbuffering of the
-	input stream out of gdb_readline_no_editing_callback and do it
-	somewhere earlier, more like when we create the input streams.
-	However, I've not done that in this commit for a couple of reasons:
-
-	  1. By keeping the unbuffering in gdb_readline_no_editing_callback
-	  I'm making the smallest possible change that fixes the bug.  Moving
-	  the unbuffering somewhere better can be done as a refactor later, if
-	  that 's felt to be important,
-
-	  2. I don't think making repeated calls to unbuffer the input will
-	  have that much performance impact.  We only make the unbuffer call
-	  once per call to gdb_readline_no_editing_callback, and, if the input
-	  stream is already unbuffered we'll return pretty quickly, so I don't
-	  see this as being massively costly,
-
-	  3. Tom is currently doing lots of gdb stream management changes and
-	  I want to minimise the chances we'll conflict.
-
-	So, this commit just changes gdb_readline_no_editing_callback to
-	always unbuffer the input stream.
-
-	The test for this issue sends two commands in a loop, with the first
-	command growing bigger each time around the loop.  I actually make the
-	first command bigger by just adding whitespace to the front, as gdb
-	still has to read the complete command (including whitespace) via
-	glibc, so this is enough to trigger the bug.
-
-	The original bug was reported when using a virtual machine, and in
-	this situation we see this in the strace output:
-
-	  read(9, "70-var-info-path-expression var1.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 1024) = 64
-	  read(9, "\n71-var-info-path-expression var1.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n", 1024) = 67
-
-	I'm not completely sure what's going on here, but it appears that the
-	kernel on the virtual machine is delivering the input to glibc slower
-	than I see on my real hardware; glibc asks for 1024 bytes, but only
-	gets 64 bytes the first time.  In the second read we see the problem
-	case, the first character is the newline, but then the entire second
-	command is included.
-
-	If I run this exact example on my real hardware then the first command
-	would not be truncated at 64 bytes, instead, I'd expect to see the
-	newline included in the first read, with the second command split into
-	a second read.
-
-	So, for testing, I check cases where the first command is just a few
-	characters (starting at 8 character), all the way up to 2048
-	characters.  Hopefully, this should mean we hit the problem case for
-	most machine setups.
-
-	The only last question relates to commit afe09f0b6311a4d that I
-	mentioned earlier.  That commit was intended to provide support for
-	Microsoft named pipes:
-
-	  https://docs.microsoft.com/en-us/windows/win32/ipc/named-pipes
-
-	I know next to nothing about this topic beyond a brief scan of the
-	above link, but I think these windows named pipe are closer in
-	behaviour to unix sockets than to unix named fifos.
-
-	I am a little nervous that, after the above commit, we now use the
-	same FILE for in, err, and out streams.  In contrast, in a vanilla C
-	program, I would expect different FILE objects for each stream.
-
-	Still, I'm reluctant to revert the above commit (and provide the same
-	functionality a different way) without a specific bug to point at,
-	and, now that the streams are unbuffered, I expect a lot of the read
-	and write calls are going straight to the kernel with minimal glibc
-	involvement, so maybe it doesn't really matter.  Anyway, I haven't
-	touched the above patch, but it is something to keep in mind when
-	working in this area.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28711
-
-2022-02-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/disasm: combine the no printing disassembler setup code
-	We have three places in gdb where we initialise a disassembler that
-	will not print anything (used for figuring out the length of
-	instructions, or collecting other information from the disassembler).
-
-	Each of these places has its own stub function to act as a print like
-	callback, the stub function is identical in each case, and just does
-	nothing.
-
-	In this commit I create a new function to initialise a disassembler
-	that doesn't print anything, and have all three locations use this new
-	function.  There's now only one non-printing stub function.
-
-	There should be no user visible changes after this commit.
-
-2022-02-07  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb: add the 'set/show suppress-cli-notifications' command
-	GDB already has a flag to suppress printing notification events, such
-	as thread and inferior context switches, on the CLI.  This is used
-	internally when executing commands.  Make the flag available to the
-	user via a new command.  This is expected to be useful in scripts.
-
-	For instance, suppose that when Inferior 1 gets to a certain state,
-	you want to add and set up a new inferior using the commands below,
-	but you also want to have a reduced/clean output.
-
-	  define do-setup
-	    printf "Setting up Inferior 2...\n"
-	    add-inferior -exec a.out
-	    inferior 2
-	    break file.c:3
-	    run
-	    inferior 1
-	    printf "Done\n"
-	  end
-
-	Currently, GDB prints
-
-	  (gdb) do-setup
-	  Setting up Inferior 2...
-	  [New inferior 2]
-	  Added inferior 2 on connection 1 (native)
-	  [Switching to inferior 2 [<null>] (/tmp/a.out)]
-	  Breakpoint 2 at 0x1155: file file.c, line 3.
-
-	  Thread 2.1 "a.out" hit Breakpoint 2, main () at file.c:3
-	  3         return 0;
-	  [Switching to inferior 1 [process 7670] (/tmp/test)]
-	  [Switching to thread 1.1 (process 7670)]
-	  #0  main () at test.c:2
-	  2         int a = 1;
-	  Done
-
-	GDB's Python API make it possible to capture and return GDB's output,
-	but this does not work for all the streams.  In particular, CLI
-	notification events are not captured:
-
-	  (gdb) python gdb.execute("do-setup", False, True)
-	  [Switching to inferior 2 [<null>] (/tmp/a.out)]
-
-	  Thread 2.1 "a.out" hit Breakpoint 2, main () at file.c:3
-	  3         return 0;
-	  [Switching to inferior 1 [process 8263] (/tmp/test)]
-	  [Switching to thread 1.1 (process 8263)]
-	  #0  main () at test.c:2
-	  2         int a = 1;
-
-	You can use the new "set suppress-cli-notifications" command to
-	suppress the output:
-
-	  (gdb) set suppress-cli-notifications on
-	  (gdb) do-setup
-	  Setting up Inferior 2...
-	  [New inferior 2]
-	  Added inferior 2 on connection 1 (native)
-	  Breakpoint 2 at 0x1155: file file.c, line 3.
-	  Done
-
-2022-02-07  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb/cli: add a 'normal_stop' option to 'cli_suppress_notification'
-	Extend the 'cli_suppress_notification' struct with a new field,
-	'normal_stop', that can be used for checking if printing normal stop
-	events on the CLI should be suppressed.
-
-	This patch only introduces the flag.  The subsequent patch adds a user
-	command to turn the flag off/on.
-
-2022-02-07  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb/cli: convert cli_suppress_notification from int to bool
-	Convert the suppress_notification flag for the CLI from int to bool.
-
-2022-02-07  Alan Modra  <amodra@gmail.com>
-
-	Revert "elf: Remove the 1-page gap before the RELRO segment"
-	This reverts commit 2f83249c13d86065b4c7cdb198ea871017b4bba1.
-
-		PR ld/28743
-		* ldlang.c (lang_size_relro_segment_1): Revert 2022-01-10 changes.
-		* testsuite/ld-i386/pr20830.d: Likewise.
-		* testsuite/ld-s390/gotreloc_64-relro-1.dd: Likewise.
-		* testsuite/ld-x86-64/pr14207.d: Likewise.
-		* testsuite/ld-x86-64/pr18176.d: Likewise.
-		* testsuite/ld-x86-64/pr20830a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830a.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a.d: Likewise.
-		* testsuite/ld-x86-64/pr21038b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c.d: Likewise.
-
-2022-02-07  Alan Modra  <amodra@gmail.com>
-
-	Revert "ld: Rewrite lang_size_relro_segment_1"
-	This reverts commit c804c6f98d342c3d46f73d7a7ec6229d5ab1c9f3.
-
-		PR ld/28743
-		PR ld/28819
-		* ldlang.c (lang_size_relro_segment_1): Revert 2022-01-14 change.
-		* testsuite/ld-x86-64/pr28743-1.d: Likewise.
-		* testsuite/ld-x86-64/pr28743-1.s: Likewise.
-		* testsuite/ld-x86-64/x86-64.exp: Likewise.
-
-2022-02-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-06  Alan Modra  <amodra@gmail.com>
-
-	A more elegant pr28827-1 testcase
-	Use .irpc macros in pr28827-1.s
-
-		* testsuite/ld-powerpc/pr28827-1.s: Make the testcase more
-		elegant.  Comment.
-
-2022-02-06  Tom Tromey  <tom@tromey.com>
-
-	Merge do_val_print and common_val_print
-	The only caller of do_val_print just does a small bit of work before
-	the call.  This patch merges the two functions, and removes an
-	unnecessary local variable, making gdb a bit simpler.
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_LINE macro
-	Add a getter and a setter for a symbol's line.  Remove the corresponding macro
-	and adjust all callers.
-
-	Change-Id: I229f2b8fcf938c07975f641361313a8761fad9a5
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_TYPE macro
-	Add a getter and a setter for a symbol's type.  Remove the corresponding
-	macro and adjust all callers.
-
-	Change-Id: Ie1a137744c5bfe1df4d4f9ae5541c5299577c8de
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remote SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION macro
-	Add a getter for a whether a symbol is a C++ template function.  Remove
-	the corresponding macro and adjust all callers.
-
-	Change-Id: I89abc2802a952b77b0e0eb73a25c2306cb8e8bcc
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_INLINED macro
-	Add a getter and a setter for whether a symbol is inlined.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: I934468da3b5a32dd6b161a6f252a6b1b94737279
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_IS_ARGUMENT macro
-	Add a getter and a setter for whether a symbol is an argument.  Remove
-	the corresponding macro and adjust all callers.
-
-	Change-Id: I71b4f0465f3dfd2ed8b9e140bd3f7d5eb8d9ee81
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_OBJFILE_OWNED macro
-	Add a getter and a setter for whether a symbol is objfile owned.  Remove
-	the corresponding macro and adjust all callers.
-
-	Change-Id: Ib7ef3718d65553ae924ca04c3fd478b0f4f3147c
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_DOMAIN macro
-	Add a getter and a setter for a symbol's domain.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: I54465b50ac89739c663859a726aef8cdc6e4b8f3
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_CLASS macro, add getter
-	Change-Id: I83211d5a47efc0564386e5b5ea4a29c00b1fd46a
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_IMPL macro, add method
-	Add a getter for a symbol's "impl".  Remove the corresponding macro and
-	adjust all callers.
-
-	Change-Id: Ibe26ed442f0f99a0f5cddafca30bd96ec7fb9fa8
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_ACLASS_INDEX macro, add getter/setter
-	Add a getter and a setter for a symbol's aclass index.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: Ie8c8d732624cfadb714aba5ddafa3d29409b3d39
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMBOL_MATCHES_SEARCH_NAME
-	It seems like this macro is not needed at all anymore, it just wraps the
-	function of the same name with the same arguments.
-
-	Change-Id: I3c342ac8d89c27af5aee1a819dc32cc6396fd41b
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMTAB_DIRNAME macro
-	Remove the macro, replace with an equivalent method.
-
-	Change-Id: I46ec36b91bb734331138eb9cd086b2db01635aed
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMTAB_PSPACE macro
-	Remove the macro, replace with an equivalent method.
-
-	Change-Id: Icccc20e7e8ae03ac4dac1c7514c25a12a9a0ac69
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMTAB_OBJFILE macro
-	Remove the macro, replace with an equivalent method.
-
-	Change-Id: I8f9ecd290ad28502e53c1ceca5006ba78bf042eb
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMTAB_BLOCKVECTOR macro
-	Remove the macro, replace with an equivalent method.
-
-	Change-Id: Id6fe2a79c04bcd6c69ccaefb7a69bc06a476288c
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMTAB_LANGUAGE macro, add getter/setter
-	Add a getter and a setter for a symtab's language.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: I9f4d840b11c19f80f39bac1bce020fdd1739e11f
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMTAB_LINETABLE macro, add getter/setter
-	Add a getter and a setter for a symtab's linetable.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: I159183fc0ccd8e18ab937b3c2f09ef2244ec6e9c
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove SYMTAB_COMPUNIT macro, add getter/setter
-	Add a getter and a setter for a symtab's compunit_symtab.  Remove the
-	corresponding macro and adjust all callers.
-
-	For brevity, I chose the name "compunit" instead of "compunit_symtab"
-	the the field, getter and setter names.  Since we are already in symtab
-	context, the _symtab suffix seems redundant.
-
-	Change-Id: I4b9b731c96e3594f7733e75af1e3d01bc0e4fe92
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_MACRO_TABLE macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's macro table.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: I00615ea72d5ac43d9a865e941cb2de0a979c173a
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_EPILOGUE_UNWIND_VALID macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's epilogue unwind valid flag.
-	Remove the corresponding macro and adjust all callers.
-
-	Change-Id: If3b68629d987767da9be7041a95d96dc34367a9a
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_LOCATIONS_VALID macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's locations valid flag.
-	Remove the corresponding macro and adjust all callers.
-
-	Change-Id: I3e3cfba926ce62993d5b61814331bb3244afad01
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_BLOCK_LINE_SECTION macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's block line section.  Remove
-	the corresponding macro and adjust all callers.
-
-	Change-Id: I3eb1a323388ad55eae8bfa45f5bc4a08dc3df455
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_BLOCKVECTOR macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's blockvector.  Remove
-	the corresponding macro and adjust all callers.
-
-	Change-Id: I99484c6619dcbbea7c5d89c72aa660316ca62f64
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_DIRNAME macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's dirname.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: If2f39b295fd26822586485e04a8b8b5aa5cc9b2e
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_PRODUCER macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's producer.  Remove the
-	corresponding macro and adjust all callers.
-
-	Change-Id: Ia1d6d8a0e247a08a21af23819d71e49b37d8931b
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_DEBUGFORMAT macro, add getter/setter
-	Add a getter and a setter for a compunit_symtab's debugformat.  Remove
-	the corresponding macro and adjust all callers.
-
-	Change-Id: I1667b02d5322346f8e23abd9f8a584afbcd75975
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_FILETABS macro
-	I think that most remaining uses of COMPUNIT_FILETABS intend to get the
-	primary filetab of the compunit_symtab specifically (and not to iterate
-	over all filetabs, for example, those cases would use compunit_filetabs,
-	which has been converted to compunit_symtab::filetabs), so replace mosts
-	uses with compunit_symtab::primary_filetab.
-
-	In jit.c, function finalize_symtab, we can save the symtab object
-	returned by allocate_symtab and use it, it makes things simpler.
-
-	Change-Id: I4e51d6d4b40759de8768b61292e5e13c8eae2e38
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: move compunit_filetabs to compunit_symtab::filetabs
-	Make compunit_filetabs, used to iterate a compunit_symtab's filetabs, a
-	method of compunit_symtab.  The name filetabs conflicts with the current
-	name of the field.  Rename the field to m_filetabs, since at this point
-	nothing outside of compunit_symtab uses it, so we should treat it as
-	private (even though it's not actually private).  Rename the
-	last_filetab field to m_last_filetab as well (it's only used on
-	compunit_symtab::add_filetab).
-
-	Adjust the COMPUNIT_FILETABS macro to keep its current behavior of
-	returning the first filetab.
-
-	Change-Id: I537b553a44451c52d24b18ee1bfa47e23747cfc3
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add compunit_symtab::set_primary_filetab method
-	Add a method to set the primary filetab of the CU.  This is currently
-	done in buildsym_compunit::end_symtab_with_blockvector.
-
-	Change-Id: I16c51a6b90a4cb4c0c5f183b0f2e12bc64b6fd74
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add compunit_symtab::add_filetab method
-	Add a method to append a filetab/symtab to a compunit_symtab.  There is
-	a single place where this is done currently, in allocate_symtab.
-
-	Change-Id: Ie86c6e34d175728173d1cffdce44acd6cff6c31d
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: rename compunit_primary_filetab to compunit_symtab::primary_filetab
-	Make compunit_primary_filetab a method of compunit_symtab.
-
-	Change-Id: Iee3c4f7e36d579bf763c5bba146e5e10d6766768
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: remove COMPUNIT_OBJFILE macro
-	Remove the macro, update all users to use the getter directly.
-
-	Change-Id: I3f0fd6f4455d1c4ebd5da73b561eb18a979ef1f6
-
-2022-02-06  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: add getter/setter for compunit_symtab::objfile
-	Rename the field to m_objfile, and add a getter and a setter.  Update
-	all users.
-
-	Change-Id: If7e2f763ee3e70570140d9af9261b1b056253317
-
-2022-02-06  Tom Tromey  <tom@tromey.com>
-
-	Allow non-ASCII characters in Rust identifiers
-	Rust 1.53 (quite a while ago now) ungated the support for non-ASCII
-	identifiers.  This didn't work in gdb.  This is PR rust/20166.
-
-	This patch fixes the problem by allowing non-ASCII characters to be
-	considered as identifier components.  It seemed simplest to just pass
-	them through -- doing any extra checking didn't seem worthwhile.
-
-	The new test also verifies that such characters are allowed in strings
-	and character literals as well.  The latter also required a bit of
-	work in the lexer.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20166
-
-2022-02-06  Tom Tromey  <tom@tromey.com>
-
-	Fix Rust parser bug with function fields
-	In Rust, 'obj.f()' is a method call -- but '(obj.f)()' is a call of a
-	function-valued field 'f' in 'obj'.  The Rust parser in gdb currently
-	gets this wrong.  This is PR rust/24082.
-
-	The expression and Rust parser rewrites made this simple to fix --
-	simply wrapping a parenthesized expression in a new operation handles
-	it.  This patch has a slight hack because I didn't want to introduce a
-	new exp_opcode enumeration constant just for this.  IMO this doesn't
-	matter, since we should work toward removing dependencies on these
-	opcodes anyway; but let me know what you think of this.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24082
-
-2022-02-06  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Add emultempl/emulation.em
-	Add emultempl/emulation.em to define ld_${EMULATION_NAME}_emulation so
-	that new emulation hooks can be added easily.
-
-		* emultempl/aix.em (LDEMUL_AFTER_OPEN): New.
-		(LDEMUL_SET_OUTPUT_ARCH): Likewise.
-		(LDEMUL_CHOOSE_TARGET): Likewise.
-		(LDEMUL_BEFORE_ALLOCATION): Likewise.
-		(LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Likewise.
-		(LDEMUL_OPEN_DYNAMIC_ARCHIVE): Likewise.
-		(LDEMUL_PARSE_ARGS): Likewise.
-		(LDEMUL_ADD_OPTIONS): Likewise.
-		(LDEMUL_HANDLE_OPTION): Likewise.
-		(LDEMUL_UNRECOGNIZED_FILE): Likewise.
-		(LDEMUL_PRINT_SYMBOL): Likewise.
-		(ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/beos.em (gld_${EMULATION_NAME}_before_parse):
-		Renamed to ...
-		(gld${EMULATION_NAME}_before_parse): This.
-		(gld_${EMULATION_NAME}_set_symbols): Renamed to ...
-		(gld${EMULATION_NAME}_set_symbols): This.
-		(gld_${EMULATION_NAME}_after_open): Renamed to ...
-		(gld${EMULATION_NAME}_after_open): This.
-		(gld_${EMULATION_NAME}_before_allocation): Renamed to ...
-		(gld${EMULATION_NAME}_before_allocation): This.
-		(gld_${EMULATION_NAME}_get_script): Renamed to ...
-		(gld${EMULATION_NAME}_get_script): This.
-		(LDEMUL_AFTER_OPEN): New.
-		(LDEMUL_BEFORE_ALLOCATION): Likewise.
-		(LDEMUL_PLACE_ORPHAN): Likewise.
-		(LDEMUL_SET_SYMBOLS): Likewise.
-		(LDEMUL_ADD_OPTIONS): Likewise.
-		(LDEMUL_HANDLE_OPTION): Likewise.
-		(ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/elf.em (LDEMUL_AFTER_PARSE): New.
-		(LDEMUL_AFTER_OPEN): Likewise.
-		(LDEMUL_BEFORE_PLACE_ORPHANS): Likewise.
-		(LDEMUL_AFTER_ALLOCATION): Likewise.
-		(LDEMUL_SET_OUTPUT_ARCH): Likewise.
-		(LDEMUL_BEFORE_ALLOCATION): Likewise.
-		(LDEMUL_OPEN_DYNAMIC_ARCHIVE): Likewise.
-		(LDEMUL_PLACE_ORPHAN): Likewise.
-		(LDEMUL_ADD_OPTIONS): Likewise.
-		(LDEMUL_HANDLE_OPTION): Likewise.
-		(LDEMUL_LIST_OPTIONS): Likewise.
-		(LDEMUL_UNRECOGNIZED_FILE): Likewise.
-		(ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/emulation.em: New file.
-		* emultempl/generic.em (ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/msp430.em (LDEMUL_AFTER_OPEN): New.
-		(LDEMUL_AFTER_ALLOCATION): Likewise.
-		(LDEMUL_PLACE_ORPHAN): Likewise.
-		(LDEMUL_FINISH): Likewise.
-		(LDEMUL_ADD_OPTIONS): Likewise.
-		(LDEMUL_HANDLE_OPTION): Likewise.
-		(LDEMUL_LIST_OPTIONS): Likewise.
-		(ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Renamed
-		to ...
-		(gld${EMULATION_NAME}_before_parse): This.
-		(gld_${EMULATION_NAME}_list_options): Renamed to ...
-		(gld${EMULATION_NAME}_list_options): This.
-		(gld_${EMULATION_NAME}_set_symbols): Renamed to ...
-		(gld${EMULATION_NAME}_set_symbols): This.
-		(gld_${EMULATION_NAME}_after_parse): Renamed to ...
-		(gld${EMULATION_NAME}_after_parse): This.
-		(gld_${EMULATION_NAME}_after_open): Renamed to ...
-		(gld${EMULATION_NAME}_after_open): This.
-		(gld_${EMULATION_NAME}_before_allocation): Renamed to ...
-		(gld${EMULATION_NAME}_before_allocation): This.
-		(gld_${EMULATION_NAME}_unrecognized_file): Renamed to ...
-		(gld${EMULATION_NAME}_unrecognized_file): This.
-		(gld_${EMULATION_NAME}_recognized_file): Renamed to ...
-		(gld${EMULATION_NAME}_recognized_file): This.
-		(gld_${EMULATION_NAME}_finish): Renamed to ...
-		(gld${EMULATION_NAME}_finish): This.
-		(gld_${EMULATION_NAME}_place_orphan): Renamed to ...
-		(gld${EMULATION_NAME}_place_orphan): This.
-		(gld_${EMULATION_NAME}_open_dynamic_archive): Renamed to ...
-		(gld${EMULATION_NAME}_open_dynamic_archive): This.
-		(gld_${EMULATION_NAME}_find_potential_libraries): Renamed to ...
-		(gld${EMULATION_NAME}_find_potential_libraries): This.
-		(gld_${EMULATION_NAME}_get_script): Renamed to ...
-		(gld${EMULATION_NAME}_get_script): This.
-		(LDEMUL_AFTER_PARSE): New.
-		(LDEMUL_AFTER_OPEN): Likewise.
-		(LDEMUL_BEFORE_ALLOCATION): Likewise.
-		(LDEMUL_FINISH=): Likewise.
-		(LDEMUL_OPEN_DYNAMIC_ARCHIVE): Likewise.
-		(LDEMUL_PLACE_ORPHAN): Likewise.
-		(LDEMUL_SET_SYMBOLS): Likewise.
-		(LDEMUL_ADD_OPTIONS): Likewise.
-		(LDEMUL_HANDLE_OPTION): Likewise.
-		(LDEMUL_UNRECOGNIZED_FILE): Likewise.
-		(LDEMUL_LIST_OPTIONS): Likewise.
-		(LDEMUL_RECOGNIZED_FILE): Likewise.
-		(LDEMUL_FIND_POTENTIAL_LIBRARIES): Likewise.
-		(ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/pep.em (gld_${EMULATION_NAME}_before_parse): Renamed
-		to ...
-		(gld${EMULATION_NAME}_before_parse): This.
-		(gld_${EMULATION_NAME}_list_options): Renamed to ...
-		(gld${EMULATION_NAME}_list_options): This.
-		(gld_${EMULATION_NAME}_set_symbols): Renamed to ...
-		(gld${EMULATION_NAME}_set_symbols): This.
-		(gld_${EMULATION_NAME}_after_parse): Renamed to ...
-		(gld${EMULATION_NAME}_after_parse): This.
-		(gld_${EMULATION_NAME}_after_open): Renamed to ...
-		(gld${EMULATION_NAME}_after_open): This.
-		(gld_${EMULATION_NAME}_before_allocation): Renamed to ...
-		(gld${EMULATION_NAME}_before_allocation): This.
-		(gld_${EMULATION_NAME}_unrecognized_file): Renamed to ...
-		(gld${EMULATION_NAME}_unrecognized_file): This.
-		(gld_${EMULATION_NAME}_recognized_file): Renamed to ...
-		(gld${EMULATION_NAME}_recognized_file): This.
-		(gld_${EMULATION_NAME}_finish): Renamed to ...
-		(gld${EMULATION_NAME}_finish): This.
-		(gld_${EMULATION_NAME}_place_orphan): Renamed to ...
-		(gld${EMULATION_NAME}_place_orphan): This.
-		(gld_${EMULATION_NAME}_open_dynamic_archive): Renamed to ...
-		(gld${EMULATION_NAME}_open_dynamic_archive): This.
-		(gld_${EMULATION_NAME}_find_potential_libraries): Renamed to ...
-		(gld${EMULATION_NAME}_find_potential_libraries): This.
-		(gld_${EMULATION_NAME}_get_script): Renamed to ...
-		(gld${EMULATION_NAME}_get_script): This.
-		(LDEMUL_AFTER_PARSE): New.
-		(LDEMUL_AFTER_OPEN): Likewise.
-		(LDEMUL_BEFORE_ALLOCATION): Likewise.
-		(LDEMUL_FINISH=): Likewise.
-		(LDEMUL_OPEN_DYNAMIC_ARCHIVE): Likewise.
-		(LDEMUL_PLACE_ORPHAN): Likewise.
-		(LDEMUL_SET_SYMBOLS): Likewise.
-		(LDEMUL_ADD_OPTIONS): Likewise.
-		(LDEMUL_HANDLE_OPTION): Likewise.
-		(LDEMUL_UNRECOGNIZED_FILE): Likewise.
-		(LDEMUL_LIST_OPTIONS): Likewise.
-		(LDEMUL_RECOGNIZED_FILE): Likewise.
-		(LDEMUL_FIND_POTENTIAL_LIBRARIES): Likewise.
-		(ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/ticoff.em (gld_${EMULATION_NAME}_list_options):
-		Renamed to ...
-		(gld${EMULATION_NAME}_list_options): This.
-		(gld_${EMULATION_NAME}_before_parse): Renamed to ...
-		(gld_${EMULATION_NAME}_get_script): Renamed to ...
-		(gld${EMULATION_NAME}_get_script): This.
-		(LDEMUL_ADD_OPTIONS): New.
-		(LDEMUL_HANDLE_OPTION): Likewise.
-		(LDEMUL_LIST_OPTIONS): Likewise.
-		(ld_${EMULATION_NAME}_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-		* emultempl/vanilla.em (LDEMUL_BEFORE_PARSE): New.
-		(LDEMUL_SET_OUTPUT_ARCH): Likewise.
-		(LDEMUL_GET_SCRIPT): Likewise.
-		(EMULATION_NAME): Likewise.
-		(OUTPUT_FORMAT): Likewise.
-		(ld_vanilla_emulation): Removed.
-		Source ${srcdir}/emultempl/emulation.em.
-
-2022-02-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: update docs for 'info win' and 'winheight' commands
-	This started by noticing that the docs for 'winheight' are out of
-	date, the docs currently give a specific list of possible window
-	names.  However, now that windows can be implemented in Python, it is
-	not possible to list all possible names.
-
-	I now link the user to a mechanism by which they can discover the
-	valid names for themselves at run time (by using 'info win').  That,
-	and the fact that gdb provides tab-completion of the name at the
-	command line, feels good enough.
-
-	Finally, I noticed that the docs for 'win info' don't explicitly say
-	that the name of the window is given in the output.  This could
-	probably have been inferred, but given I'm now linking to this as a
-	mechanism to find the window name, I'd prefer to mention that the name
-	can be found in the output.
-
-2022-02-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/tui: add window width information to 'info win' output
-	Now that we support horizontal window placement in the tui, it makes
-	sense to have 'info win' include the width, as well as the height, of
-	the currently visible windows.
-
-	That's what this commit does.  Example output is now:
-
-	  (gdb) info win
-	  Name       Lines Columns Focus
-	  src           12      40 (has focus)
-	  asm           12      41
-	  status         1      80
-	  cmd           11      80
-
-	I've added a NEWS entry, but the documentation was already suitably
-	vague, it just says that 'info win' displays the size of the visible
-	windows, so I don't think anything needs to be added there.
-
-	I've also added some tests, as far as I could find, the 'info win'
-	command was previously untested.
-
-2022-02-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Skip undefined symbol when finishing DT_RELR
-	Don't abort for undefined symbol when finishing DT_RELR.  Instead, skip
-	undefined symbol.  Undefined symbol will be reported by relocate_section.
-
-		* elfxx-x86.c (elf_x86_size_or_finish_relative_reloc): Skip
-		undefined symbol in finishing phase.
-
-2022-02-05  Alan Modra  <amodra@gmail.com>
-
-	Tweak assembler invocation for pr28827-1 test
-		PR 28827
-		* testsuite/ld-powerpc/pr28827-1.d: Pass -a64 to gas.
-
-2022-02-05  Alan Modra  <amodra@gmail.com>
-
-	PR28827 testcase
-	This testcase triggers a stub sizing error with the patches applied
-	for PR28743 (commit 2f83249c13d8 and c804c6f98d34).
-
-		PR 28827
-		* testsuite/ld-powerpc/pr28827-1.s,
-		* testsuite/ld-powerpc/pr28827-1.d: New test.
-		* testsuite/ld-powerpc/powerpc.exp: Run it.
-
-2022-02-05  Alan Modra  <amodra@gmail.com>
-
-	Enable "size" as a dumpprog in ld
-	binutils/
-		* testsuite/lib/binutils-common.exp (run_dump_test): Reference
-		global SIZE and SIZEFLAGS.
-	ld/
-		* testsuite/config/default.exp: Define SIZE and SIZEFLAGS.
-
-2022-02-05  Alan Modra  <amodra@gmail.com>
-
-	Detect .eh_frame_hdr earlier for SIZEOF_HEADERS
-	Current code detects the need for PT_GNU_EH_FRAME using a field set by
-	_bfd_elf_discard_section_eh_frame_hdr, which is called fairly late in
-	the linking process.  Use the elf hash table eh_info instead, which is
-	set up earlier by size_dynamic_sections.
-
-		* elf-bfd.h (struct output_elf_obj_tdata): Delete eh_frame_hdr.
-		(elf_eh_frame_hdr): Don't define.
-		(_bfd_elf_discard_section_eh_frame_hdr): Update prototype.
-		* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame_hdr): Delete
-		abfd parameter.  Don't set elf_eh_frame_hdr.
-		* elf.c (elf_eh_frame_hdr): New function.
-		(get_program_header_size): Adjust elf_eh_frame_hdr call.
-		(_bfd_elf_map_sections_to_segments): Likewise.
-
-2022-02-05  Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim: mips: Add simulator support for mips32r6/mips64r6
-	2022-02-01  Ali Lown  <ali.lown@imgtec.com>
-		    Andrew Bennett  <andrew.bennett@imgtec.com>
-		    Dragan Mladjenovic  <dragan.mladjenovic@rt-rk.com>
-		    Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim/common/ChangeLog:
-		* sim-bits.h (EXTEND9, EXTEND18 ,EXTEND19, EXTEND21,
-		EXTEND26): New macros.
-
-	sim/mips/ChangeLog:
-		* Makefile.in (IGEN_INCLUDE): Add mips3264r6.igen.
-		* configure: Regenerate.
-		* configure.ac: Support mipsisa32r6 and mipsisa64r6.
-		(sim_engine_run): Pick simulator model from processor specified
-		in e_flags.
-		* cp1.c (value_fpr): Handle fmt_dc32.
-		(fp_unary, fp_binary): Zero initialize locals.
-		(update_fcsr, fp_classify, fp_rint, fp_r6_cmp, inner_fmac,
-		fp_fmac, fp_min, fp_max, fp_mina, fp_maxa, fp_fmadd, fp_fmsub):
-		New functions.
-		(sim_fpu_class_mips_mapping): New.
-		* cp1.h (fcsr_ABS2008_mask, fcsr_ABS2008_shift): New define.
-		* interp.c (MIPSR6_P): New.
-		(load_word): Allow unaligned memory access for MIPSR6.
-		* micromips.igen (sc, scd): Adapt to new do_sc* helper signature.
-		* mips.igen: Add *r6 models.
-		(signal_if_cti, forbiddenslot32): New helpers.
-		(delayslot32): Use signal_if_cti.
-		(do_sc, do_scd); Add store_ll_bit parameter.
-		(sc, scd): Adapt to previous change.
-		(nal, beq, bal): New definitions for *r6.
-		(sll): Split nop and ssnop cases into ...
-		(nop, ssnop): New definitions.
-		(loadstore_ea): Use the 32-bit compatibility adressing.
-		(cache): Split logic into ...
-		(do_cache): New helper.
-		(check_fpu): Select IEEE 754-2008 mode for R6.
-		(not_word_value, unpredictable, check_mt_hilo, check_mf_hilo,
-		check_multi_hilo, check_div_hilo, check_u64, do_dmfc1b, add,
-		li, addu, and, andi, bgez, bgtz, blez, bltz, bne, break, dadd,
-		daddiu, daddu, dror, dror32, drorv, dsll, dsll32, dsllv, dsra,
-		dsra32, dsrav, dsrl, dsrl32, dsub, dsubu, j, jal, jalr,
-		jalr.hb, lb, lbu, ld, lh, lhu, lui, lw, lwu, nor, or, ori, ror,
-		rorv, sb, sd, sh, sll, sllv, slt, slti, sltiu, sltu, sra, srav,
-		srl, srlv, sub, subu, sw, sync, syscall, teq, tge, tgeu, tlt,
-		tltu, tne, xor, xori, check_fmt_p, do_load_double,
-		do_store_double, abs.FMT, add.FMT, ceil.l.FMT, ceil.w.FMT,
-		cfc1, ctc1, cvt.d.FMT, cvt.l.FMT, cvt.w.FMT, div.FMT, dfmc1,
-		dmtc1, floor.l.FMT, floor.w.FMT, ldc1, lwc1, mfc1, mov.FMT,
-		mtc1, mul.FMT, recip.FMT, round.l.FMT, round.w.FMT, rsqrt.FMT,
-		sdc1, sqrt.FMT, sub.FMT, swc1, trunc.l.FMT, trunc.w.FMT, bc0f,
-		bc0fl, bc0t, bc0tl, dmfc0, dmtc0, eret, mfc0, mtc0, cop, tlbp,
-		tlbr, tlbwi, tlbwr): Enable on *r6 models.
-		* mips3264r2.igen (dext, dextm, dextu, di, dins, dinsm, dinsu,
-		dsbh, dshd, ei, ext, mfhc1, mthc1, ins, seb, seh, synci, rdhwr,
-		wsbh): Likewise.
-		* mips3264r6.igen: New file.
-		* sim-main.h (FP_formats): Add fmt_dc32.
-		(FORBIDDEN_SLOT): New macros.
-		(simFORBIDDENSLOT, FP_R6CMP_*, FP_R6CLASS_*): New defines.
-		(fp_r6_cmp, fp_classify, fp_rint, fp_min, fp_max, fp_mina,
-		fp_maxa, fp_fmadd, fp_fmsub): New declarations.
-		(R6Compare, Classify, RoundToIntegralExact, Min, Max, MinA,
-		MaxA, FusedMultiplyAdd, FusedMultiplySub): New macros. Wrapping
-		previous declarations.
-
-	sim/testsuite/mips/ChangeLog:
-		* basic.exp: Add r6-*.s tests.
-		(run_r6_removed_test): New function.
-		(run_endian_tests): New function.
-		* hilo-hazard-3.s: Skip for mips*r6.
-		* r2-fpu.s: New test.
-		* r6-64.s: New test.
-		* r6-branch.s: New test.
-		* r6-forbidden.s: New test.
-		* r6-fpu.s: New test.
-		* r6-llsc-dp.s: New test.
-		* r6-llsc-wp.s: New test.
-		* r6-removed.csv: New test.
-		* r6-removed.s: New test.
-		* r6.s: New test.
-		* utils-r6.inc: New inc.
-
-2022-02-05  Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim: Add partial support for IEEE 754-2008
-	2022-02-01  Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim/common/ChangeLog:
-		* sim-fpu.c (sim_fpu_minmax_nan): New.
-		(sim_fpu_max): Add variant behaviour for IEEE 754-2008.
-		(sim_fpu_min): Likewise.
-		(sim_fpu_is_un, sim_fpu_is_or): New.
-		(sim_fpu_un, sim_fpu_or): New.
-		(sim_fpu_is_ieee754_2008, sim_fpu_is_ieee754_1985): New.
-		(sim_fpu_set_mode): New.
-		(sim_fpu_classify): New.
-		* sim-fpu.h (sim_fpu_minmax_nan): New declaration.
-		(sim_fpu_un, sim_fpu_or): New declarations.
-		(sim_fpu_is_un, sim_fpu_is_or): New declarations.
-		(sim_fpu_mode): New enum.
-		[sim_fpu_state](current_mode): New field.
-		(sim_fpu_current_mode): New define.
-		(sim_fpu_is_ieee754_2008): New declaration.
-		(sim_fpu_is_ieee754_1985): New declaration.
-		(sim_fpu_set_mode): New declaration.
-		(sim_fpu_classify): New declaration.
-
-2022-02-05  Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim: Factor out NaN handling in floating point operations
-	2022-02-01  Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim/common/ChangeLog:
-		* sim-fpu.c (sim_fpu_op_nan): New.
-		(sim_fpu_add): Factor out NaN operand handling with
-		a call to sim_fpu_op_nan.
-		(sim_fpu_sub, sim_fpu_mul, sim_fpu_div): Likewise.
-		(sim_fpu_rem, sim_fpu_max, sim_fpu_min): Likewise.
-		* sim-fpu.h (sim_fpu_op_nan): New declaration.
-
-2022-02-05  Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim: Allow toggling of quiet NaN-bit semantics
-	IEEE754-1985 specifies the top bit of the mantissa as an indicator
-	of signalling vs. quiet NaN, but does not define the precise semantics.
-	Most architectures treat this bit as indicating quiet NaN, but legacy
-	(pre-R6) MIPS goes the other way and treats it as signalling NaN.
-
-	This used to be controlled by a macro that was only defined for MIPS.
-	This patch replaces the macro with a variable to track the current
-	semantics of the NaN bit and allows differentiation between older
-	(pre-R6) and and newer MIPS cores.
-
-	2022-02-01  Faraz Shahbazker  <fshahbazker@wavecomp.com>
-
-	sim/common/ChangeLog:
-		* sim-fpu.c (_sim_fpu): New.
-		(pack_fpu, unpack_fpu): Allow reversal of quiet NaN semantics.
-		* sim-fpu.h (sim_fpu_state): New struct.
-		(_sim_fpu): New extern.
-		(sim_fpu_quiet_nan_inverted): New define.
-
-	sim/mips/ChangeLog:
-		* cp1.h (fcsr_NAN2008_mask, fcsr_NAN2008_shift): New.
-		* mips.igen (check_fpu): Select default quiet NaN mode
-		for legacy MIPS.
-		* sim-main.h (SIM_QUIET_NAN_NEGATED): Remove.
-
-2022-02-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Remove emultempl/armcoff.em
-	Remove emultempl/armcoff.em which has been unused after
-
-	commit 2ac93be706418f3b2aebeb22159a328023faed52
-	Author: Alan Modra <amodra@gmail.com>
-	Date:   Mon Apr 16 20:33:36 2018 +0930
-
-	    Remove arm-aout and arm-coff support
-
-	    This also removes arm-netbsd (not arm-netbsdelf!), arm-openbsd, and
-	    arm-riscix.  Those targets weren't on the obsolete list but they are
-	    all aout, and it doesn't make all that much sense to remove arm-aout
-	    without removing them too.
-
-		* emultempl/armcoff.em: Removed.
-
-2022-02-04  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: include jit_code_entry::symfile_addr value in names of objfiles created by jit reader API
-	This commit includes the JIT object's symfile address in the names of
-	objfiles created by JIT reader API (e.g., << JIT compiled code at
-	0x7ffd8a0c77a0 >>).  This allows one to at least differentiate one from
-	another.
-
-	The address is the one that the debugged program has put in
-	jit_code_entry::symfile_addr, and that the JIT reader's read function
-	receives.  As we can see in gdb.base/jit-reader-host.c and
-	gdb.base/jit-reader.c, that may not be the actual value of where the
-	JIT-ed code is.  But it is a value chosen by the author of the JIT
-	engine and the JIT reader, so including this value in the objfile name
-	may help them correlate the JIT objfiles created by with their logs /
-	data structures.
-
-	To access this field, we need to pass down a reference to the
-	jit_code_entry.  So make jit_dbg_reader_data a structure (instead of an
-	alias for a CORE_ADDR) that includes the address of the code entry in
-	the inferior's address space (the previous meaning of
-	jit_dbg_reader_data) plus a reference to the jit_code_entry as read into
-	GDB's address space.  And while at it, pass down the gdbarch, so that we
-	don't have to call target_gdbarch.
-
-	Co-Authored-By: Jan Vrany <jan.vrany@labware.com>
-	Change-Id: Ib26c4d1bd8de503d651aff89ad2e500cb312afa5
-
-2022-02-04  Tom Tromey  <tromey@adacore.com>
-
-	Improve Ada unchecked union type printing
-	Currently, "ptype" of an Ada unchecked union may show a
-	compiler-generated wrapper structure in its output.  It's more
-	Ada-like to elide this structure, which is what this patch implements.
-	It turned out to be simplest to reuse a part of print_variant_clauses
-	for this.
-
-	As this is Ada-specific, and Joel already reviewed it internally, I am
-	going to check it in.
-
-2022-02-04  Tom Tromey  <tromey@adacore.com>
-
-	Remove host_hex_value
-	I noticed that host_hex_value is redundant, because gdbsupport already
-	has fromhex.  This patch removes the former in favor of the latter.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-02-04  Andi Kleen  <andi@firstfloor.org>
-
-	Support symbol+offset lookup in addr2line
-	The Linux kernel usually ouputs symbol+offset instead of plain code
-	addresses these days, to avoid leaking ASLR secrets and to handle
-	dynamically loaded modules.
-
-	Converting those with addr2line is somewhat involved: it requires
-	looking up the symbol first using nm and then manually compute the
-	offset, and then pass it to addr2line.
-
-	This patch implements the necessary steps directly in addr2line,
-	by looking up the symbol (with demangling if needed) and computing
-	the offset.
-
-	It's possible that a symbol is ambigious with a hex number. In this
-	case it uses the symbol lookup if the string contains a +. When it isn't
-	ambigious the + is optional.
-
-2022-02-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-03  Cary Coutant  <ccoutant@gmail.com>
-
-	Rename EM_56800V4 to EM_56800EF.
-	include/elf:
-		* common.h: Rename EM_56800V4 to EM_56800EF.
-
-2022-02-03  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Update X86_64_GOT_TYPE_P to cover more GOT relocations
-	Add R_X86_64_GOT32, R_X86_64_GOT64, R_X86_64_GOTPCREL64 and
-	R_X86_64_GOTPLT64 to X86_64_GOT_TYPE_P to cover more GOT relocations.
-
-		PR ld/28858
-		* elfxx-x86.h (X86_64_GOT_TYPE_P): Add R_X86_64_GOT32,
-		R_X86_64_GOT64, R_X86_64_GOTPCREL64 and R_X86_64_GOTPLT64.
-
-2022-02-03  Cary Coutant  <ccoutant@gmail.com>
-
-	Add new e_machine values.
-	include/elf:
-		* common.h: Add EM_U16_U8CORE, EM_TACHYUM, EM_56800V4.
-
-2022-02-03  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	testsuite: fix failure in gdb.threads/killed-outside.exp
-	Starting with commit
-
-	  commit 1da5d0e664e362857153af8682321a89ebafb7f6
-	  Date:   Tue Jan 4 08:02:24 2022 -0700
-
-	    Change how Python architecture and language are handled
-
-	we see a failure in gdb.threads/killed-outside.exp:
-
-	  ...
-	  Executing on target: kill -9 16622    (timeout = 300)
-	  builtin_spawn -ignore SIGHUP kill -9 16622
-	  continue
-	  Continuing.
-	  Couldn't get registers: No such process.
-	  (gdb) [Thread 0x7ffff77c2700 (LWP 16626) exited]
-
-	  Program terminated with signal SIGKILL, Killed.
-	  The program no longer exists.
-	  FAIL: gdb.threads/killed-outside.exp: prompt after first continue (timeout)
-
-	This is not a regression but a failure due to a change in GDB's
-	output.  Prior to the aforementioned commit, GDB has been printing the
-	"Couldn't get registers: No such process." message twice.  The second
-	one came from
-
-	  (top-gdb) bt
-	  #0  amd64_linux_nat_target::fetch_registers (this=0x555557f31440 <the_amd64_linux_nat_target>, regcache=0x555558805ce0, regnum=16) at /gdb-up/gdb/amd64-linux-nat.c:225
-	  #1  0x000055555640ac5f in target_ops::fetch_registers (this=0x555557d636d0 <the_thread_db_target>, arg0=0x555558805ce0, arg1=16) at /gdb-up/gdb/target-delegates.c:502
-	  #2  0x000055555641a647 in target_fetch_registers (regcache=0x555558805ce0, regno=16) at /gdb-up/gdb/target.c:3945
-	  #3  0x0000555556278e68 in regcache::raw_update (this=0x555558805ce0, regnum=16) at /gdb-up/gdb/regcache.c:587
-	  #4  0x0000555556278f14 in readable_regcache::raw_read (this=0x555558805ce0, regnum=16, buf=0x555558881950 "") at /gdb-up/gdb/regcache.c:601
-	  #5  0x00005555562792aa in readable_regcache::cooked_read (this=0x555558805ce0, regnum=16, buf=0x555558881950 "") at /gdb-up/gdb/regcache.c:690
-	  #6  0x000055555627965e in readable_regcache::cooked_read_value (this=0x555558805ce0, regnum=16) at /gdb-up/gdb/regcache.c:748
-	  #7  0x0000555556352a37 in sentinel_frame_prev_register (this_frame=0x555558181090, this_prologue_cache=0x5555581810a8, regnum=16) at /gdb-up/gdb/sentinel-frame.c:53
-	  #8  0x0000555555fa4773 in frame_unwind_register_value (next_frame=0x555558181090, regnum=16) at /gdb-up/gdb/frame.c:1235
-	  #9  0x0000555555fa420d in frame_register_unwind (next_frame=0x555558181090, regnum=16, optimizedp=0x7fffffffd570, unavailablep=0x7fffffffd574, lvalp=0x7fffffffd57c, addrp=0x7fffffffd580,
-	      realnump=0x7fffffffd578, bufferp=0x7fffffffd5b0 "") at /gdb-up/gdb/frame.c:1143
-	  #10 0x0000555555fa455f in frame_unwind_register (next_frame=0x555558181090, regnum=16, buf=0x7fffffffd5b0 "") at /gdb-up/gdb/frame.c:1199
-	  #11 0x00005555560178e2 in i386_unwind_pc (gdbarch=0x5555587c4a70, next_frame=0x555558181090) at /gdb-up/gdb/i386-tdep.c:1972
-	  #12 0x0000555555cd2b9d in gdbarch_unwind_pc (gdbarch=0x5555587c4a70, next_frame=0x555558181090) at /gdb-up/gdb/gdbarch.c:3007
-	  #13 0x0000555555fa3a5b in frame_unwind_pc (this_frame=0x555558181090) at /gdb-up/gdb/frame.c:948
-	  #14 0x0000555555fa7621 in get_frame_pc (frame=0x555558181160) at /gdb-up/gdb/frame.c:2572
-	  #15 0x0000555555fa7706 in get_frame_address_in_block (this_frame=0x555558181160) at /gdb-up/gdb/frame.c:2602
-	  #16 0x0000555555fa77d0 in get_frame_address_in_block_if_available (this_frame=0x555558181160, pc=0x7fffffffd708) at /gdb-up/gdb/frame.c:2665
-	  #17 0x0000555555fa5f8d in select_frame (fi=0x555558181160) at /gdb-up/gdb/frame.c:1890
-	  #18 0x0000555555fa5bab in lookup_selected_frame (a_frame_id=..., frame_level=-1) at /gdb-up/gdb/frame.c:1720
-	  #19 0x0000555555fa5e47 in get_selected_frame (message=0x0) at /gdb-up/gdb/frame.c:1810
-	  #20 0x0000555555cc9c6e in get_current_arch () at /gdb-up/gdb/arch-utils.c:848
-	  #21 0x000055555625b239 in gdbpy_before_prompt_hook (extlang=0x555557451f20 <extension_language_python>, current_gdb_prompt=0x555557f4d890 <top_prompt+16> "(gdb) ")
-	      at /gdb-up/gdb/python/python.c:1063
-	  #22 0x0000555555f7cfbb in ext_lang_before_prompt (current_gdb_prompt=0x555557f4d890 <top_prompt+16> "(gdb) ") at /gdb-up/gdb/extension.c:922
-	  #23 0x0000555555f7d442 in std::_Function_handler<void (char const*), void (*)(char const*)>::_M_invoke(std::_Any_data const&, char const*&&) (__functor=...,
-	      __args#0=@0x7fffffffd900: 0x555557f4d890 <top_prompt+16> "(gdb) ") at /usr/include/c++/7/bits/std_function.h:316
-	  #24 0x0000555555f752dd in std::function<void (char const*)>::operator()(char const*) const (this=0x55555817d838, __args#0=0x555557f4d890 <top_prompt+16> "(gdb) ")
-	      at /usr/include/c++/7/bits/std_function.h:706
-	  #25 0x0000555555f75100 in gdb::observers::observable<char const*>::notify (this=0x555557f49060 <gdb::observers::before_prompt>, args#0=0x555557f4d890 <top_prompt+16> "(gdb) ")
-	      at /gdb-up/gdb/../gdbsupport/observable.h:150
-	  #26 0x0000555555f736dc in top_level_prompt () at /gdb-up/gdb/event-top.c:444
-	  #27 0x0000555555f735ba in display_gdb_prompt (new_prompt=0x0) at /gdb-up/gdb/event-top.c:411
-	  #28 0x00005555564611a7 in tui_on_command_error () at /gdb-up/gdb/tui/tui-interp.c:205
-	  #29 0x0000555555c2173f in std::_Function_handler<void (), void (*)()>::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
-	  #30 0x0000555555e10c20 in std::function<void ()>::operator()() const (this=0x5555580f9028) at /usr/include/c++/7/bits/std_function.h:706
-	  #31 0x0000555555e10973 in gdb::observers::observable<>::notify() const (this=0x555557f48d20 <gdb::observers::command_error>) at /gdb-up/gdb/../gdbsupport/observable.h:150
-	  #32 0x00005555560e9b3f in start_event_loop () at /gdb-up/gdb/main.c:438
-	  #33 0x00005555560e9bcc in captured_command_loop () at /gdb-up/gdb/main.c:481
-	  #34 0x00005555560eb616 in captured_main (data=0x7fffffffddd0) at /gdb-up/gdb/main.c:1348
-	  #35 0x00005555560eb67c in gdb_main (args=0x7fffffffddd0) at /gdb-up/gdb/main.c:1363
-	  #36 0x0000555555c1b6b3 in main (argc=12, argv=0x7fffffffded8) at /gdb-up/gdb/gdb.c:32
-
-	Commit 1da5d0e664 eliminated the call to 'get_current_arch'
-	in 'gdbpy_before_prompt_hook'.  Hence, the second instance of
-	"Couldn't get registers: No such process." does not appear anymore.
-
-	Fix the failure by updating the regular expression in the test.
-
-2022-02-03  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 treatment of absolute symbols
-	Supporting -static-pie on PowerPC64 requires the linker to properly
-	treat SHN_ABS symbols for cases like glibc's _nl_current_LC_CTYPE_used
-	absolute symbol.  I've been slow to fix the linker on powerpc because
-	there is some chance that this will break some shared libraries or
-	PIEs.
-
-	bfd/
-		* elf64-ppc.c (ppc64_elf_check_relocs): Consolidate local sym
-		handling code.  Don't count dyn relocs against non-dynamic
-		absolute symbols.
-		(dec_dynrel_count): Adjust to suit.
-		(ppc64_elf_edit_toc): Don't remove entries for absolute symbols
-		when pic.
-		(allocate_got): Don't allocate space for got relocs against
-		non-dynamic absolute syms.
-		(ppc64_elf_layout_multitoc): Likewise.
-		(got_and_plt_relr): Likewise.
-		(ppc64_elf_size_dynamic_sections): Likewise for local got.
-		(got_and_plt_relr_for_local_syms): Likewise.
-		(ppc64_elf_size_stubs): Don't allocate space for relr either.
-		(ppc64_elf_relocate_section): Don't write relocs against non-dynamic
-		absolute symbols.  Don't optimise got and toc code sequences
-		loading absolute symbol entries.
-	ld/
-		* testsuite/ld-powerpc/abs-reloc.s,
-		* testsuite/ld-powerpc/abs-static.d,
-		* testsuite/ld-powerpc/abs-static.r,
-		* testsuite/ld-powerpc/abs-pie.d,
-		* testsuite/ld-powerpc/abs-pie.r,
-		* testsuite/ld-powerpc/abs-shared.d,
-		* testsuite/ld-powerpc/abs-shared.r,
-		* testsuite/ld-powerpc/abs-pie-relr.d,
-		* testsuite/ld-powerpc/abs-pie-relr.r,
-		* testsuite/ld-powerpc/abs-shared-relr.d,
-		* testsuite/ld-powerpc/abs-shared-relr.r: New tests.
-		* testsuite/ld-powerpc/powerpc.exp: Run them.
-
-2022-02-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-02  Nick Clifton  <nickc@redhat.com>
-
-	Stop the BFD library complaining about compressed dwarf debug string sections being too big.
-		PR 28834
-		* dwarf2.c (read_section): Change the heuristic that checks for
-		overlarge dwarf debug info sections.
-
-2022-02-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix formatting for help set/show extended-prompt
-	The formatting of the help text for 'help set extended-prompt' and
-	'help show extended-prompt' is a little off.
-
-	Here's the offending snippet:
-
-	    Substitutions are applied to VALUE to compute the real prompt.
-
-	    The currently defined substitutions are:
-	      \[	Begins a sequence of non-printing characters.
-	  \\	A backslash.
-	  \]	Ends a sequence of non-printing characters.
-	  \e	The ESC character.
-
-	Notice that the line for '\[' is indented more that the others.
-
-	Turns out this is due to how we build this help text, something which
-	is done in Python.  We extended a classes __doc__ string with some
-	dynamically generated text.
-
-	The classes doc string looks like this:
-
-	    """Set the extended prompt.
-
-	    Usage: set extended-prompt VALUE
-
-	    Substitutions are applied to VALUE to compute the real prompt.
-
-	    The currently defined substitutions are:
-	    """
-
-	Notice the closing """ are in a line of their own, and include some
-	white space just before.  It's this extra white space that's causing
-	the problem.
-
-	Fix the formatting issue by moving the """ to the end of the previous
-	line.  I then add the extra newline in at the point where the doc
-	string is merged with the dynamically generated text.
-
-	Now everything lines up correctly.
-
-2022-02-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: test to check one aspect of the linespec parsing code
-	While working on the fix for PR cli/28665 (see previous couple of
-	commits), I was playing with making a change in the linespec parsing
-	code.  Specifically, I was thinking about whether the spec_string for
-	LINESPEC_LOCATION locations should ever be nullptr.
-
-	I made a change to prevent the spec_string from ever being nullptr,
-	tested gdb, and saw no regressions.
-
-	However, as part of this work I was reviewing how the breakpoint code
-	handles this case (spec_string being nullptr), and spotted that in
-	parse_breakpoint_sals the nullptr case is specifically handled, so
-	changing this should have caused a regression.  But I didn't see one.
-
-	So, this commit adds a comment in location.c mentioning that the
-	nullptr case is (a) not an oversight, and (b) is required.  Then I add
-	a new test to gdb.base/break.exp that ensures a change in this area
-	will cause a regression.
-
-	This test passes on current gdb, but with my modified (and broken)
-	gdb, the test would fail.
-
-2022-02-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: handle calls to edit command passing only a linespec condition
-	While working on the previous commit to fix PR cli/28665, I noticed
-	that the 'edit' command would suffer from the same problem.  That is,
-	something like:
-
-	  (gdb) edit task 123
-
-	would cause GDB to break.  For a full explanation of what's going on
-	here, see the commit message for the previous commit.
-
-	As with the previous commit, this issue can be prevented by detecting,
-	and throwing, a junk at the end of the line error earlier, before
-	calling decode_line_1.
-
-	So, that's what this commit does.  I've also added some tests for this
-	issue.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28665
-
-2022-02-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: handle calls to list command passing only a linespec condition
-	In PR cli/28665, it was reported that GDB would crash when given a
-	command like:
-
-	  (gdb) list task 123
-
-	The problem here is that in cli/cli-cmd.c:list_command, the string
-	'task 123' is passed to string_to_event_location in find a location
-	specification.  However, this location parsing understands about
-	breakpoint conditions, and so, will stop parsing when it sees
-	something that looks like a condition, in this case, the 'task 123'
-	looks like a breakpoint condition.
-
-	As a result, the location we get back from string_to_event_location
-	has no actual location specification attached to it.  The actual call
-	path is:
-
-	  list_command
-	    string_to_event_location
-	      string_to_event_location_basic
-	        new_linespec_location
-
-	In new_linespec_location we call linespec_lex_to_end, which looks at
-	'task 123' and decides that there's nothing there that describes a
-	location.  As such, in new_linespec_location, the spec_string field of
-	the location is left as nullptr.
-
-	Back in list_command we then call decode_line_1, which calls
-	event_location_to_sals, which calls parse_linespec, which takes the
-	spec_string we found earlier, and tries to converts this into a list
-	of sals.
-
-	However, parse_linespec is not intended to be passed a nullptr, for
-	example, calling is_ada_operator will try to access through the
-	nullptr, causing undefined behaviour.  But there are other cases
-	within parse_linespec which don't expect to see a nullptr.
-
-	When looking at how to fix this issue, I first considered having
-	linespec_lex_to_end detect the problem.  That function understands
-	when the first thing in the linespec is a condition keyword, and so,
-	could throw an error saying something like: "no linespec before
-	condition keyword", however, this is not going to work, at least, not
-	without additional changes to GDB, it is valid to place a breakpoint
-	like:
-
-	  (gdb) break task 123
-
-	This will place a breakpoint at the current location with the
-	condition 'task 123', and changing linespec_lex_to_end breaks this
-	behaviour.
-
-	So, next, I considered what would happen if I added a condition to an
-	otherwise valid list command, this is what I see:
-
-	  (gdb) list file.c:1 task 123
-	  Junk at end of line specification.
-	  (gdb)
-
-	So, then I wondered, could we just pull the "Junk" detection forward,
-	so that we throw the error earlier, before we call decode_line_1?
-
-	It turns out that yes we can.  Well, sort of.
-
-	It is simpler, I think, to add a separate check into the list_command
-	function, after calling string_to_event_location, but before calling
-	decode_line_1.  We know when we call string_to_event_location that the
-	string in question is not empty, so, after calling
-	string_to_event_location, if non of the string has been consumed, then
-	the content of the string must be junk - it clearly doesn't look like
-	a location specification.
-
-	I've reused the same "Junk at end of line specification." error for
-	consistency, and added a few tests to cover this issue.
-
-	While the first version of this patch was on the mailing list, a
-	second bug PR gdb/28797 was raised.  This was for a very similar
-	issue, but this time the problem command was:
-
-	  (gdb) list ,,
-
-	Here the list command understands about the first comma, list can have
-	two arguments separated by a comma, and the first argument can be
-	missing.  So we end up trying to parse the second command "," as a
-	linespec.
-
-	However, in linespec_lex_to_end, we will stop parsing a linespec at a
-	comma, so, in the above case we end up with an empty linespec (between
-	the two commas), and, like above, this results in the spec_string
-	being nullptr.
-
-	As with the previous case, I've resolved this issue by adding an extra
-	check for junk at the end of the line - after parsing (or failing to
-	parse) the nothing between the two commas, we still have the "," left
-	at the end of the list command line - when we see this we can throw
-	the same "junk at the end of the line" error, and all is good.
-
-	I've added tests for this case too.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28665
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28797
-
-2022-02-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: move linespec test into gdb.linespec/ directory
-	The gdb.base/linespecs.exp test should really live in the gdb.linespec
-	directory, so lets move it there.
-
-	As we already have gdb.linespec/linespec.exp, I've renamed the test to
-	gdb.linespec/errors.exp, as this better reflects what the test is
-	actually checking.
-
-	Finally, the test script doesn't have its own source file, it was
-	reusing a random other source file, gdb.base/memattr.c.  Now the tests
-	script is in gdb.linespec/, I've updated the test to use a different
-	source file from that directory.
-
-2022-02-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add empty string check in parse_linespec
-	If parse_linespec (linespec.c) is passed ARG as an empty string then
-	we end up calling `strchr (linespec_quote_characters, '\0')`, which
-	will return a pointer to the '\0' at the end of
-	linespec_quote_characters.  This then results in GDB calling
-	skip_quote_char with `ARG + 1`, which is undefined behaviour (as ARG
-	only contained a single character, the '\0').
-
-	Fix this by checking for the first character of ARG being '\0' before
-	the call to strchr.
-
-	I have additionally added an assertion that ARG can't itself be
-	nullptr, as calling is_ada_operator with nullptr can end up calling
-	'startswith' on the nullptr, which is undefined behaviour.
-
-	Finally, I moved the declaration of TOKEN into the body of
-	parse_linespec, to where TOKEN is defined.
-
-	This patch came about while I was working on fixes for PR cli/28665
-	and PR gdb/28797.  The actual fixes for these two issues will be in a
-	later commit in this series, but, with this patch in place, both of
-	the above bugs would hit the new assertion rather than accessing
-	invalid memory and crashing.  The '\0' check is not currently ever
-	hit, but just makes the code a little safer.
-
-	Because this patch only changes the nature of the failure for the
-	above two bugs, there's no tests here.  A later commit will fix the
-	above two issues, at which point I'll add some tests.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28665
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28797
-
-2022-02-02  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: update the comment on string_to_event_location
-	The comment on string_to_event_location is (I believe) out of date.
-	This commit fixes the two issues I see:
-
-	  1. This function can't return NULL any more.  The implementation
-	  calls string_to_explicit_location which can return NULL, but if this
-	  is the case we then call string_to_event_location_basic, which I
-	  don't believe can ever return NULL.
-
-	  2. I've removed the mention that the returned string is malloc'd,
-	  though this is true, now that we return a managed pointer, I believe
-	  the source of the memory allocation is irrelevant, and so, shouldn't
-	  be discussed in the header comment.
-
-	There should be no user visible changes after this commit.
-
-2022-02-02  Nick Clifton  <nickc@redhat.com>
-
-	Updated French translation for the ld/ and gold/ sub-directories
-
-2022-02-02  Stafford Horne  <shorne@gmail.com>
-
-	or1k: Avoid R_OR1K_GOT16 signed overflow by using special howto
-	Previously when fixing PR 21464 we masked out upper bits of the
-	relocation value in order to avoid overflow complaints when acceptable.
-	It turns out this does not work when the relocation value ends up being
-	signed.
-
-	To fix this this patch introduces a special howto with
-	complain_on_overflow set to complain_overflow_dont.  This is used in
-	place of the normal R_OR1K_GOT16 howto when we detect R_OR1K_GOT_AHI16
-	relocations.
-
-	bfd/ChangeLog:
-
-		PR 28735
-		* elf32-or1k.c (or1k_elf_got16_no_overflow_howto): Define.
-		(or1k_elf_relocate_section): Use new howto instead of trying to
-		mask out relocation bits.
-
-2022-02-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-02-01  Tom Tromey  <tromey@adacore.com>
-
-	Fix flex rule in gdb
-	Currently, if flex fails, it will leave the resulting .c file in the
-	tree.  This will cause a cascade of errors, and requires the manual
-	deletion of the .c file in order to recreate the problem.
-
-	It's better for the rule to fail such that the .c file is not updated.
-	This way, 'make' will fail the same way every time -- which is much
-	handier for debugging syntax errors.
-
-	This fix just updates the Makefile rule to follow the way that the
-	"yacc" rule already works.
-
-2022-02-01  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, btrace: improve error messages
-	When trying to use 'record btrace' on a system that does not support it,
-	the error message isn't as clear as it could be.  See
-	https://sourceware.org/pipermail/gdb/2022-January/049870.html.
-
-	Improve the error message in a few cases.
-
-	Reported-by: Simon Sobisch  <simonsobisch@gnu.org>
-
-2022-02-01  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/python: fix gdb.Objfile.__repr__ () for dynamically compiled code
-	While experimenting with JIT reader API I realized that calling repr ()
-	on objfile created by JIT reader crashes GDB.
-
-	The problem was that objfpy_repr () called objfile_filename () which
-	returned NULL, causing PyString_FromFormat () to crash.
-
-	This commit fixes this problem by using objfile_name () instead of
-	objfile_filename (). This also makes consistent with the value of gdb.Objfile.filename variable.
-
-2022-02-01  Samuel Thibault  <samuel.thibault@gnu.org>
-
-	hurd: Fix RPC prototypes
-	The last updates of MIG introduced qualifying strings and arrays with
-	const as appropriate.  We thus have to update the protypes in gdb too.
-
-	Change-Id: I3f72aac1dfa6e58d1394d5776b822d7c8f2409df
-
-2022-02-01  Samuel Thibault  <samuel.thibault@gnu.org>
-
-	hurd: Fix RPC link names
-	The RPC stub code expects to be calling a C function, not a C++
-	function.
-
-	Change-Id: Idd7549fc118f2addc7fb4975667a011cacacc03f
-
-2022-02-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-31  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Check symbol version without any symbols
-	VER_FLG_WEAK doesn't indicate that all symbol references of the symbol
-	version have STB_WEAK.  VER_FLG_WEAK indicates a weak symbol version
-	definition with no symbols associated with it.  It is used to verify
-	the existence of a particular implementation without any symbol references
-	to the weak symbol version.
-
-		PR ld/24718
-		* testsuite/ld-elf/pr24718-1.d: New file.
-		* testsuite/ld-elf/pr24718-1.s: Likewise.
-		* testsuite/ld-elf/pr24718-1.t: Likewise.
-
-2022-01-31  H.J. Lu  <hjl.tools@gmail.com>
-
-	Load debug section only when dumping debug sections
-	Don't load debug sections if we aren't dumping any debug sections.
-
-		PR binutils/28843
-		* objdump.c (dump_any_debugging): New.
-		(load_debug_section): Return false if dump_any_debugging isn't
-		set.
-		(main): Set dump_any_debugging when dumping any debug sections.
-		* readelf (dump_any_debugging): New.
-		(parse_args): Set dump_any_debugging when dumping any debug
-		sections.
-		(load_debug_section): Return false if dump_any_debugging isn't
-		set.
-
-2022-01-31  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix some clang-tidy readability-misleading-indentation warnings
-	I have warnings like these showing in my editor all the time, so I
-	thought I'd run clang-tidy with this diagnostic on all the files (that I
-	can compile) and fix them.
-
-	There is still one warning, in utils.c, but that's because some code
-	is mixed up with preprocessor macros (#ifdef TUI), so I think there no
-	good solution there.
-
-	Change-Id: I345175fc7dd865318f0fbe61ac026c88c3b6a96b
-
-2022-01-31  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb, testsuite, fortran: adapt info symbol expected output for intel compilers
-	Info symbol is expected to print the symbol table name of a symbol, since
-	symbol lookup happens via the minimal symbol table.  This name
-	corresponds to the linkage name in the full symbol table.
-
-	For gfortran (and maybe others) these names currently have the form
-	XXXX.NUMBER where XXXX is the symbol name and NUMBER a compiler
-	generated appendix for mangling.
-	An example taken from the modified nested-funcs-2.exp would be
-
-	~~~~
-	$ objdump -t ./outputs/gdb.fortran/nested-funcs-2/nested-funcs-2 | grep \
-	increment
-	00000000000014ab l  F .text  0000000000000095  increment.3883
-	000000000000141c l  F .text  000000000000008f  increment_program_global.3881
-	~~~~
-
-	This mangled name gets recognized by the Ada demangler/decoder and decoded as
-	Ada to XXXX (setting the symbol language to Ada).  This leads to output
-	of XXXX over XXXX.NUMBER for info symbol on gfortran symbols.
-
-	For ifort and ifx the generated linkage names have the form
-	SCOPEA_SCOPEB_XXXX_ which are not recognized by the Ada decoder (or any
-	other demangler for that matter) and thus printed as is.
-	The respective objdump in the above case looks like
-
-	~~~~
-	$ objdump -t ./outputs/gdb.fortran/nested-funcs-2/nested-funcs-2 | grep \
-	increment
-	0000000000403a44 l  F .text  0000000000000074  contains_keyword_IP_increment_
-	0000000000403ab8 l  F .text  0000000000000070
-	contains_keyword_IP_increment_program_global_
-	~~~~
-
-	In the unmodified testcase this results in 'fails' when ran with the intel
-	compilers:
-
-	~~~~
-	>> make check RUNTESTFLAGS="gdb.fortran/nested-funcs-2.exp \
-	GDBFLAGS='$GDBFLAGS' CC_FOR_TARGET='icpc' F90_FOR_TARGET='ifort'"
-
-	...
-
-	                === gdb Summary ===
-
-	\# of expected passes            80
-	\# of unexpected failures        14
-	~~~~
-
-	Note that there is no Fortran mangling standard.  We keep the gfortran
-	behavior as is and modify the test to reflect ifx and ifort mangled
-	names which fixes above fails.
-
-2022-01-31  Nick Clifton  <nickc@redhat.com>
-
-	Import patch from mainline GCC to fix an infinite recusion in the Rust demangler.
-		PR 98886
-		PR 99935
-		* rust-demangle.c (struct rust_demangler): Add a recursion
-		counter.
-		(demangle_path): Increment/decrement the recursion counter upon
-		entry and exit.  Fail if the counter exceeds a fixed limit.
-		(demangle_type): Likewise.
-		(rust_demangle_callback): Initialise the recursion counter,
-		disabling if requested by the option flags.
-
-2022-01-31  Alan Modra  <amodra@gmail.com>
-
-	Re: PR28827, assertion building LLVM 9 on powerpc64le-linux-gnu
-	In trying to find a testcase for PR28827, I managed to hit a linker
-	error in bfd_set_section_contents with a .branch_lt input section
-	being too large for the output .branch_lt.
-
-	bfd/
-		PR 28827
-		* elf64-ppc.c (ppc64_elf_size_stubs): Set section size to
-		maxsize past STUB_SHRINK_ITER before laying out.  Remove now
-		unnecessary conditional setting of maxsize at start of loop.
-	ld/
-		* testsuite/ld-powerpc/pr28827-2.d,
-		* testsuite/ld-powerpc/pr28827-2.lnk,
-		* testsuite/ld-powerpc/pr28827-2.s: New test.
-		* testsuite/ld-powerpc/powerpc.exp: Run it.
-
-2022-01-31  Tom Tromey  <tom@tromey.com>
-
-	Remove unused variables in fbsd-tdep.c files
-	i386-fbsd-tdep.c and amd64-fbsd-tdep.c failed to build on my x86-64
-	Fedora 34 machine, using the system gcc, after a recent patch.  These
-	two files now have unused variables, which provokes a warning in this
-	configuration.
-
-	I'm checking in this patch to remove the unused variables.
-
-2022-01-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-29  Alan Modra  <amodra@gmail.com>
-
-	Re: PR28827, assertion building LLVM 9 on powerpc64le-linux-gnu
-	The previous patch wasn't quite correct.  The size and padding depends
-	on offset used in the current iteration, and if we're fudging the
-	offset past STUB_SHRINK_ITER then we'd better use that offset.  We
-	can't have plt_stub_pad using stub_sec->size as the offset.
-
-		PR 28827
-		* elf64-ppc.c (plt_stub_pad): Add stub_off param.
-		(ppc_size_one_stub): Set up stub_offset to value used in this
-		iteration before sizing the stub.  Adjust plt_stub_pad calls.
-
-2022-01-29  Alan Modra  <amodra@gmail.com>
-
-	objcopy --only-keep-debug
-	From: Peilin Ye <peilin.ye@bytedance.com>
-	objcopy's --only-keep-debug option has been broken for ELF files since
-	commit 8c803a2dd7d3.
-
-	  1. binutils/objcopy.c:setup_section() marks non-debug sections as
-	     SHT_NOBITS, then calls bfd_copy_private_section_data();
-	  2. If ISEC and OSEC share the same section flags,
-	     bfd/elf.c:_bfd_elf_init_private_section_data() restores OSEC's
-	     section type back to ISEC's section type, effectively undoing
-	     "make_nobits".
-
-		* objcopy.c (setup_section): Act on make_nobits after calling
-		bfd_copy_private_section_data.
-
-2022-01-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-28  John Baldwin  <jhb@FreeBSD.org>
-
-	gdb: fix ppc-sysv-tdep.c build on 32-bit platforms
-	The previous code triggered the following error on an i386 host:
-
-	/git/gdb/gdb/ppc-sysv-tdep.c:1764:34: error: non-constant-expression cannot be narrowed from type 'ULONGEST' (aka 'unsigned long long') to 'size_t' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
-	              unscaled.read ({writebuf, TYPE_LENGTH (valtype)},
-	                                        ^~~~~~~~~~~~~~~~~~~~~
-	/git/gdb/gdb/gdbtypes.h:2043:31: note: expanded from macro 'TYPE_LENGTH'
-	                              ^~~~~~~~~~~~~~~~~~
-	/git/gdb/gdb/ppc-sysv-tdep.c:1764:34: note: insert an explicit cast to silence this issue
-	              unscaled.read ({writebuf, TYPE_LENGTH (valtype)},
-	                                        ^~~~~~~~~~~~~~~~~~~~~
-	                                        static_cast<size_t>( )
-	/git/gdb/gdb/gdbtypes.h:2043:31: note: expanded from macro 'TYPE_LENGTH'
-	                              ^~~~~~~~~~~~~~~~~~
-	1 error generated.
-
-	Fix this by using gdb::make_array_view.
-
-2022-01-28  John Baldwin  <jhb@FreeBSD.org>
-
-	FreeBSD x86 nat: Use register maps for GP register sets.
-	Rather than using the x86-specific register offset tables, use
-	register maps to describe the layout of the general purpose registers
-	fetched via PT_GETREGS.  The sole user-visible difference is that
-	FreeBSD/amd64 will now report additional segment registers ($ds, $es,
-	$fs, and $gs) for both 32-bit and 64-bit processes.
-
-	As part of these changes, the FreeBSD x86 native targets no longer use
-	amd64-bsd-nat.c or i386-bsd-nat.c.  Remove FreeBSD-specific register
-	handling (for $fs_base, $gs_base, and XSAVE state) from these files.
-	Similarly, remove the global x86bsd_xsave_len from x86-bsd-nat.c.  The
-	FreeBSD x86 native targets use a static xsave_len instead.
-
-	While here, rework the probing of PT_GETXMMREGS on FreeBSD/i386.
-	Probe the ptrace op once in the target read_description method and
-	cache the result for the future similar to the way the status of XSAVE
-	support is probed in the read_description method.  In addition, return
-	the proper xcr0 mask (X87-only) for old kernels or systems without
-	either XSAVE or XMM support.
-
-2022-01-28  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Return a bool from fetch_register_set and store_register_set.
-	Change these helper functions to return true if they did any work.
-
-2022-01-28  John Baldwin  <jhb@FreeBSD.org>
-
-	FreeBSD x86: Use tramp-frame for signal frames.
-	Use a register map to describe the registers in mcontext_t as part of
-	the signal frame as is done on several other FreeBSD arches.  This
-	permits fetching the fsbase and gsbase register values from the signal
-	frame for both amd64 and i386 and permits fetching additional segment
-	registers stored as 16-bit values on amd64.
-
-	While signal frames on FreeBSD do contain floating point/XSAVE state,
-	these unwinders do not attempt to supply those registers.  The
-	existing x86 signal frame uwinders do not support these registers, and
-	the only existing functions which handle FSAVE/FXSAVE/XSAVE state all
-	work with regcaches.  In the future these unwinders could create a
-	tempory regcache, collect floating point registers, and then supply
-	values out of the regcache into the trad-frame.
-
-2022-01-28  John Baldwin  <jhb@FreeBSD.org>
-
-	Use register maps for gp regsets on FreeBSD/x86 core dumps.
-	In particular, this permits reporting the value of the $ds, $es, $fs,
-	and $gs segment registers from amd64 core dumps since they are stored
-	as 16-bit values rather than the 32-bit size assumed by i386_gregset.
-
-2022-01-28  John Baldwin  <jhb@FreeBSD.org>
-
-	regcache: Zero-extend small registers described by a register map.
-	When registers are supplied via regcache_supply_register from a
-	register block described by a register map, registers may be stored in
-	slots smaller than GDB's native register size (e.g. x86 segment
-	registers are 16 bits, but the GDB registers for those are 32-bits).
-	regcache_collect_regset is careful to zero-extend slots larger than a
-	register size, but regcache_supply_regset just used
-	regcache::raw_supply_part and did not initialize the upper bytes of a
-	register value.
-
-	trad_frame_set_reg_regmap assumes these semantics (zero-extending
-	short registers).  Upcoming patches also require these semantics for
-	handling x86 segment register values stored in 16-bit slots on
-	FreeBSD.  Note that architecturally x86 segment registers are 16 bits,
-	but the x86 gdb architectures treat these registers as 32 bits.
-
-2022-01-28  John Baldwin  <jhb@FreeBSD.org>
-
-	FreeBSD x86: Remove fallback for detecting signal trampolines by address.
-	A few FreeBSD releases did not include the page holding the signal
-	code in core dumps.  As a workaround, a sysctl was used to fetch the
-	default location of the signal code instead.  The youngest affected
-	FreeBSD release is 10.1 released in November 2014 and EOLed in
-	December 2016.  The fallback only works for native processes and would
-	require a separate unwinder once the FreeBSD arches are converted to
-	use tramp_frame for signal frames.
-
-	Remove support for pre-5.0 FreeBSD/i386 signal trampolines.
-	The last relevant release (FreeBSD 4.11) was released in January of
-	2005.
-
-	Remove vestigal FreeBSD/i386 3.x support.
-	This was orphaned when a.out support was removed as the FreeBSD/i386
-	ELF support always used the register layouts from 4.0+.
-
-2022-01-28  Bruno Larsen  <blarsen@redhat.com>
-
-	Add Bruno Larsen to gdb/MAINTAINERS
-
-2022-01-28  Enze Li  <lienze2010@hotmail.com>
-
-	gdb/build: Fix Wpessimizing-move in clang build
-	When building with clang, I run into an error:
-
-	...
-	tui/tui-disasm.c:138:25: error: moving a temporary object prevents copy
-	elision [-Werror,-Wpessimizing-move]
-	      tal.addr_string = std::move (gdb_dis_out.release ());
-	                        ^
-	tui/tui-disasm.c:138:25: note: remove std::move call here
-	      tal.addr_string = std::move (gdb_dis_out.release ());
-	                        ^~~~~~~~~~~                      ~
-	...
-
-	The error above is caused by the recent commit 5d10a2041eb8 ("gdb: add
-	string_file::release method").
-
-	Fix this by removing std::move.
-
-	Build on x86_64-linux with clang 13.0.0.
-
-2022-01-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	Add top-level .editorconfig file
-	Add a .editorconfig [1] file.  This helps configure editors
-	automatically with the right whitespace settings.  It will help me,
-	since I need to juggle with different whitespace settings for different
-	projects.   But I think it can also help newcomers get things right from
-	the start.
-
-	Some editors have native support for reading these files, while others
-	require a plug-in [2].  And if you don't want to use it, then this file
-	doesn't change anything to your life.
-
-	I added rules for the kinds of files I edit most often, but more can be
-	added later.  I assumed that the rules were the same for GDB and the
-	other projects, but if that's not the case, we can always put
-	.editorconfig files in project subdirectories to override settings.
-
-	[1] https://editorconfig.org/
-	[2] https://editorconfig.org/#download
-
-	Change-Id: Ifda136d13877fafcf0d137fec8501f6a34e1367b
-
-2022-01-28  Nick Clifton  <nickc@redhat.com>
-
-	Updated French translation for the gas sub-directory.
-
-2022-01-28  Alan Modra  <amodra@gmail.com>
-
-	Set __ehdr_start rel_from_abs earlier
-	This is just a tidy, making the __ehdr_start symbol flag tweaks all in
-	one place.
-
-		* ldelf.c (ldelf_before_allocation): Don't set rel_from_abs
-		for __ehdr_start.
-		* ldlang.c (lang_symbol_tweaks): Set it here instead.
-
-2022-01-28  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 handling of @tocbase
-		* elf64-ppc.c (ppc64_elf_relocate_section): Warn if the symbol
-		on R_PPC64_TOC isn't local.
-
-2022-01-28  Alan Modra  <amodra@gmail.com>
-
-	Update PowerPC64 symtocbase test
-	Using a symbol other than .TOC. with @tocbase is an extension to the
-	ABI.  It is never valid to use a symbol without a definition in the
-	binary, and symbols on these expressions cannot be overridden.  Make
-	this explicit by using ".hidden" in the testcase.
-
-		* testsuite/ld-powerpc/symtocbase-1.s: Align data.  Make function
-		entry symbol hidden.
-		* testsuite/ld-powerpc/symtocbase-2.s: Likewise.
-		* testsuite/ld-powerpc/symtocbase.d: Adjust expected output.
-
-2022-01-28  Alan Modra  <amodra@gmail.com>
-
-	PR28827, assertion building LLVM 9 on powerpc64le-linux-gnu
-	The assertion is this one in ppc_build_one_stub
-	  BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size);
-	It is checking that a stub doesn't overwrite the tail of a previous
-	stub, so not something trivial.
-
-	Normally, stub sizing iterates until no stubs are added, detected by
-	no change in stub section size.  Iteration also continues if no stubs
-	are added but one or more stubs increases in size, which also can be
-	detected by a change in stub section size.  But there is a
-	pathological case where stub section sizing decreases one iteration
-	then increases the next.  To handle that situation, stub sizing also
-	stops at more than STUB_SHRINK_ITER (20) iterations when calculated
-	stub section size is smaller.  The previous larger size is kept for
-	the actual layout (so that building the stubs, which behaves like
-	another iteration of stub sizing, will see the stub section sizes
-	shrink).  The problem with that stopping condition is that it assumes
-	that stub sizing is only affected by addresses external to the stub
-	sections, which isn't always true.
-
-	This patch fixes that by also keeping larger individual stub_offset
-	addresses past STUB_SHRINK_ITER.  It also catches a further
-	pathological case where one stub shrinks and another expands in such a
-	way that no stub section size change is seen.
-
-		PR 28827
-		* elf64-ppc.c (struct ppc_link_hash_table): Add stub_changed.
-		(STUB_SHRINK_ITER): Move earlier in file.
-		(ppc_size_one_stub): Detect any change in stub_offset.  Keep
-		larger one if past STUB_SHRINK_ITER.
-		(ppc64_elf_size_stubs): Iterate on stub_changed too.
-
-2022-01-28  Alan Modra  <amodra@gmail.com>
-
-	PR28826 x86_64 ld segfaults building xen
-	Fallout from commit e86fc4a5bc37
-
-		PR 28826
-		* coffgen.c (coff_write_alien_symbol): Init dummy to zeros.
-
-2022-01-28  Alan Modra  <amodra@gmail.com>
-
-	PR28753, buffer overflow in read_section_stabs_debugging_info
-		PR 28753
-		* rddbg.c (read_section_stabs_debugging_info): Don't read past
-		end of section when concatentating stab strings.
-
-2022-01-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: work around negative DW_AT_data_member_location GCC 11 bug
-	g++ 11.1.0 has a bug where it will emit a negative
-	DW_AT_data_member_location in some cases:
-
-	    $ cat test.cpp
-	    #include <memory>
-
-	    int
-	    main()
-	    {
-	      std::unique_ptr<int> ptr;
-	    }
-	    $ g++ -g test.cpp
-	    $ llvm-dwarfdump -F a.out
-	    ...
-	    0x00000964:       DW_TAG_member
-	                        DW_AT_name [DW_FORM_strp]   ("_M_head_impl")
-	                        DW_AT_decl_file [DW_FORM_data1]     ("/usr/include/c++/11.1.0/tuple")
-	                        DW_AT_decl_line [DW_FORM_data1]     (125)
-	                        DW_AT_decl_column [DW_FORM_data1]   (0x27)
-	                        DW_AT_type [DW_FORM_ref4]   (0x0000067a "default_delete<int>")
-	                        DW_AT_data_member_location [DW_FORM_sdata]  (-1)
-	    ...
-
-	This leads to a GDB crash (when built with ASan, otherwise probably
-	garbage results), since it tries to read just before (to the left, in
-	ASan speak) of the value's buffer:
-
-	    ==888645==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000c52af at pc 0x7f711b239f4b bp 0x7fff356bd470 sp 0x7fff356bcc18
-	    READ of size 1 at 0x6020000c52af thread T0
-	        #0 0x7f711b239f4a in __interceptor_memcpy /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827
-	        #1 0x555c4977efa1 in value_contents_copy_raw /home/simark/src/binutils-gdb/gdb/value.c:1347
-	        #2 0x555c497909cd in value_primitive_field(value*, long, int, type*) /home/simark/src/binutils-gdb/gdb/value.c:3126
-	        #3 0x555c478f2eaa in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:333
-	        #4 0x555c478f63b2 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:513
-	        #5 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #6 0x555c478f63b2 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:513
-	        #7 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #8 0x555c478f63b2 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:513
-	        #9 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #10 0x555c4760d45f in c_value_print_struct /home/simark/src/binutils-gdb/gdb/c-valprint.c:383
-	        #11 0x555c4760df4c in c_value_print_inner(value*, ui_file*, int, value_print_options const*) /home/simark/src/binutils-gdb/gdb/c-valprint.c:438
-	        #12 0x555c483ff9a7 in language_defn::value_print_inner(value*, ui_file*, int, value_print_options const*) const /home/simark/src/binutils-gdb/gdb/language.c:632
-	        #13 0x555c49758b68 in do_val_print /home/simark/src/binutils-gdb/gdb/valprint.c:1048
-	        #14 0x555c49759b17 in common_val_print(value*, ui_file*, int, value_print_options const*, language_defn const*) /home/simark/src/binutils-gdb/gdb/valprint.c:1151
-	        #15 0x555c478f2fcb in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:335
-	        #16 0x555c478f63b2 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:513
-	        #17 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #18 0x555c4760d45f in c_value_print_struct /home/simark/src/binutils-gdb/gdb/c-valprint.c:383
-	        #19 0x555c4760df4c in c_value_print_inner(value*, ui_file*, int, value_print_options const*) /home/simark/src/binutils-gdb/gdb/c-valprint.c:438
-	        #20 0x555c483ff9a7 in language_defn::value_print_inner(value*, ui_file*, int, value_print_options const*) const /home/simark/src/binutils-gdb/gdb/language.c:632
-	        #21 0x555c49758b68 in do_val_print /home/simark/src/binutils-gdb/gdb/valprint.c:1048
-	        #22 0x555c49759b17 in common_val_print(value*, ui_file*, int, value_print_options const*, language_defn const*) /home/simark/src/binutils-gdb/gdb/valprint.c:1151
-	        #23 0x555c478f2fcb in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:335
-	        #24 0x555c4760d45f in c_value_print_struct /home/simark/src/binutils-gdb/gdb/c-valprint.c:383
-	        #25 0x555c4760df4c in c_value_print_inner(value*, ui_file*, int, value_print_options const*) /home/simark/src/binutils-gdb/gdb/c-valprint.c:438
-	        #26 0x555c483ff9a7 in language_defn::value_print_inner(value*, ui_file*, int, value_print_options const*) const /home/simark/src/binutils-gdb/gdb/language.c:632
-	        #27 0x555c49758b68 in do_val_print /home/simark/src/binutils-gdb/gdb/valprint.c:1048
-	        #28 0x555c49759b17 in common_val_print(value*, ui_file*, int, value_print_options const*, language_defn const*) /home/simark/src/binutils-gdb/gdb/valprint.c:1151
-	        #29 0x555c4760f04c in c_value_print(value*, ui_file*, value_print_options const*) /home/simark/src/binutils-gdb/gdb/c-valprint.c:587
-	        #30 0x555c483ff954 in language_defn::value_print(value*, ui_file*, value_print_options const*) const /home/simark/src/binutils-gdb/gdb/language.c:614
-	        #31 0x555c49759f61 in value_print(value*, ui_file*, value_print_options const*) /home/simark/src/binutils-gdb/gdb/valprint.c:1189
-	        #32 0x555c48950f70 in print_formatted /home/simark/src/binutils-gdb/gdb/printcmd.c:337
-	        #33 0x555c48958eda in print_value(value*, value_print_options const&) /home/simark/src/binutils-gdb/gdb/printcmd.c:1258
-	        #34 0x555c48959891 in print_command_1 /home/simark/src/binutils-gdb/gdb/printcmd.c:1367
-	        #35 0x555c4895a3df in print_command /home/simark/src/binutils-gdb/gdb/printcmd.c:1458
-	        #36 0x555c4767f974 in do_simple_func /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:97
-	        #37 0x555c47692e25 in cmd_func(cmd_list_element*, char const*, int) /home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:2475
-	        #38 0x555c4936107e in execute_command(char const*, int) /home/simark/src/binutils-gdb/gdb/top.c:670
-	        #39 0x555c485f1bff in catch_command_errors /home/simark/src/binutils-gdb/gdb/main.c:523
-	        #40 0x555c485f249c in execute_cmdargs /home/simark/src/binutils-gdb/gdb/main.c:618
-	        #41 0x555c485f6677 in captured_main_1 /home/simark/src/binutils-gdb/gdb/main.c:1317
-	        #42 0x555c485f6c83 in captured_main /home/simark/src/binutils-gdb/gdb/main.c:1338
-	        #43 0x555c485f6d65 in gdb_main(captured_main_args*) /home/simark/src/binutils-gdb/gdb/main.c:1363
-	        #44 0x555c46e41ba8 in main /home/simark/src/binutils-gdb/gdb/gdb.c:32
-	        #45 0x7f71198bcb24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
-	        #46 0x555c46e4197d in _start (/home/simark/build/binutils-gdb-one-target/gdb/gdb+0x77f197d)
-
-	    0x6020000c52af is located 1 bytes to the left of 8-byte region [0x6020000c52b0,0x6020000c52b8)
-	    allocated by thread T0 here:
-	        #0 0x7f711b2b7459 in __interceptor_calloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:154
-	        #1 0x555c470acdc9 in xcalloc /home/simark/src/binutils-gdb/gdb/alloc.c:100
-	        #2 0x555c49b775cd in xzalloc(unsigned long) /home/simark/src/binutils-gdb/gdbsupport/common-utils.cc:29
-	        #3 0x555c4977bdeb in allocate_value_contents /home/simark/src/binutils-gdb/gdb/value.c:1029
-	        #4 0x555c4977be25 in allocate_value(type*) /home/simark/src/binutils-gdb/gdb/value.c:1040
-	        #5 0x555c4979030d in value_primitive_field(value*, long, int, type*) /home/simark/src/binutils-gdb/gdb/value.c:3092
-	        #6 0x555c478f6280 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:501
-	        #7 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #8 0x555c478f63b2 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:513
-	        #9 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #10 0x555c478f63b2 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:513
-	        #11 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #12 0x555c4760d45f in c_value_print_struct /home/simark/src/binutils-gdb/gdb/c-valprint.c:383
-	        #13 0x555c4760df4c in c_value_print_inner(value*, ui_file*, int, value_print_options const*) /home/simark/src/binutils-gdb/gdb/c-valprint.c:438
-	        #14 0x555c483ff9a7 in language_defn::value_print_inner(value*, ui_file*, int, value_print_options const*) const /home/simark/src/binutils-gdb/gdb/language.c:632
-	        #15 0x555c49758b68 in do_val_print /home/simark/src/binutils-gdb/gdb/valprint.c:1048
-	        #16 0x555c49759b17 in common_val_print(value*, ui_file*, int, value_print_options const*, language_defn const*) /home/simark/src/binutils-gdb/gdb/valprint.c:1151
-	        #17 0x555c478f2fcb in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:335
-	        #18 0x555c478f63b2 in cp_print_value /home/simark/src/binutils-gdb/gdb/cp-valprint.c:513
-	        #19 0x555c478f02ca in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:161
-	        #20 0x555c4760d45f in c_value_print_struct /home/simark/src/binutils-gdb/gdb/c-valprint.c:383
-	        #21 0x555c4760df4c in c_value_print_inner(value*, ui_file*, int, value_print_options const*) /home/simark/src/binutils-gdb/gdb/c-valprint.c:438
-	        #22 0x555c483ff9a7 in language_defn::value_print_inner(value*, ui_file*, int, value_print_options const*) const /home/simark/src/binutils-gdb/gdb/language.c:632
-	        #23 0x555c49758b68 in do_val_print /home/simark/src/binutils-gdb/gdb/valprint.c:1048
-	        #24 0x555c49759b17 in common_val_print(value*, ui_file*, int, value_print_options const*, language_defn const*) /home/simark/src/binutils-gdb/gdb/valprint.c:1151
-	        #25 0x555c478f2fcb in cp_print_value_fields(value*, ui_file*, int, value_print_options const*, type**, int) /home/simark/src/binutils-gdb/gdb/cp-valprint.c:335
-	        #26 0x555c4760d45f in c_value_print_struct /home/simark/src/binutils-gdb/gdb/c-valprint.c:383
-	        #27 0x555c4760df4c in c_value_print_inner(value*, ui_file*, int, value_print_options const*) /home/simark/src/binutils-gdb/gdb/c-valprint.c:438
-	        #28 0x555c483ff9a7 in language_defn::value_print_inner(value*, ui_file*, int, value_print_options const*) const /home/simark/src/binutils-gdb/gdb/language.c:632
-	        #29 0x555c49758b68 in do_val_print /home/simark/src/binutils-gdb/gdb/valprint.c:1048
-
-	Since there are some binaries with this in the wild, I think it would be
-	useful for GDB to work around this.  I did the obvious simple thing, if
-	the DW_AT_data_member_location's value is -1, replace it with 0.  I
-	added a producer check to only apply this fixup for GCC 11.  The idea is
-	that if some other compiler ever uses a DW_AT_data_member_location value
-	of -1 by mistake, we don't know (before analyzing the bug at least) if
-	they did mean 0 or some other value.  So I wouldn't want to apply the
-	fixup in that case.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28063
-	Change-Id: Ieef3459b0b9bbce8bdad838ba83b4b64e7269d42
-
-2022-01-27  Kevin Buettner  <kevinb@redhat.com>
-
-	Fix GDB internal error by using text (instead of data) section offset
-	Fedora Rawhide is now using gcc-12.0.  As part of updating to the
-	gcc-12.0 package set, Rawhide is also now using a version of libgcc_s
-	which lacks a .data section.  This causes gdb to fail in the following
-	fashion while debugging a program (such as gdb) which uses libgcc_s:
-
-	    (top-gdb) run
-	    Starting program: rawhide-master/bld/gdb/gdb
-	    ...
-	    objfiles.h:467: internal-error: sect_index_data not initialized
-	    A problem internal to GDB has been detected,
-	    further debugging may prove unreliable.
-	    ...
-
-	I snipped the backtrace from the above output.  Instead, here's a
-	portion of a backtrace obtained using GDB's backtrace command.
-	(Obviously, in order to obtain it, I used a GDB which has been patched
-	with this commit.)
-
-	    #0  internal_error (
-		file=0xc6a508 "gdb/objfiles.h", line=467,
-		fmt=0xc6a4e8 "sect_index_data not initialized")
-		at gdbsupport/errors.cc:51
-	    #1  0x00000000005f9651 in objfile::data_section_offset (this=0x4fa48f0)
-		at gdb/objfiles.h:467
-	    #2  0x000000000097c5f8 in relocate_address (address=0x17244, objfile=0x4fa48f0)
-		at gdb/stap-probe.c:1333
-	    #3  0x000000000097c630 in stap_probe::get_relocated_address (this=0xa1a17a0,
-		objfile=0x4fa48f0)
-		at gdb/stap-probe.c:1341
-	    #4  0x00000000004d7025 in create_exception_master_breakpoint_probe (
-		objfile=0x4fa48f0)
-		at gdb/breakpoint.c:3505
-	    #5  0x00000000004d7426 in create_exception_master_breakpoint ()
-		at gdb/breakpoint.c:3575
-	    #6  0x00000000004efcc1 in breakpoint_re_set ()
-		at gdb/breakpoint.c:13407
-	    #7  0x0000000000956998 in solib_add (pattern=0x0, from_tty=0, readsyms=1)
-		at gdb/solib.c:1001
-	    #8  0x00000000009576a8 in handle_solib_event ()
-		at gdb/solib.c:1269
-	    ...
-
-	The function 'relocate_address' in gdb/stap-probe.c attempts to do
-	its "relocation" by using objfile->data_section_offset().  That
-	method, data_section_offset() is defined as follows in objfiles.h:
-
-	  CORE_ADDR data_section_offset () const
-	  {
-	    return section_offsets[SECT_OFF_DATA (this)];
-	  }
-
-	The internal error occurs when the SECT_OFF_DATA macro finds that the
-	'sect_index_data' field is -1:
-
-	    #define SECT_OFF_DATA(objfile) \
-		 ((objfile->sect_index_data == -1) \
-		  ? (internal_error (__FILE__, __LINE__, \
-				     _("sect_index_data not initialized")), -1)	\
-		  : objfile->sect_index_data)
-
-	relocate_address() is obtaining the section offset in order to compute
-	a relocated address.  For some ABIs, such as the System V ABI, the
-	section offsets will all be the same.  So for those ABIs, it doesn't
-	matter which offset is used.  However, other ABIs, such as the FDPIC
-	ABI, will have different offsets for the various sections.  Thus, for
-	those ABIs, it is vital that this and other relocation code use the
-	correct offset.
-
-	In stap_probe::get_relocated_address, the address to which to add the
-	offset (thus forming the relocated address) is obtained via
-	this->get_address (); get_address is a getter for m_address in
-	probe.h.  It's documented/defined as follows (also in probe.h):
-
-	  /* The address where the probe is inserted, relative to
-	     SECT_OFF_TEXT.  */
-	  CORE_ADDR m_address;
-
-	(Thanks to Tom Tromey for this observation.)
-
-	So, based on this, the current use of data_section_offset /
-	SECT_OFF_DATA is wrong.  This relocation code should have been using
-	text_section_offset / SECT_OFF_TEXT all along.  That being the
-	case, I've adjusted the stap-probe.c relocation code accordingly.
-
-	Searching the sources turned up one other use of data_section_offset,
-	in gdb/dtrace-probe.c, so I've updated that code as well.  The same
-	reasoning presented above applies to this case too.
-
-	Summary:
-
-		* gdb/dtrace-probe.c (dtrace_probe::get_relocated_address):
-		Use method text_section_offset instead of data_section_offset.
-		* gdb/stap-probe.c (relocate_address): Likewise.
-
-2022-01-27  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, remote, btrace: move switch_to_thread call right before xfer call
-	In remote_target::remote_btrace_maybe_reopen, we switch to the currently
-	iterated thread in order to set inferior_ptid for a subsequent xfer.
-
-	Move the switch_to_thread call directly before the target_read_stralloc
-	call to clarify why we need to switch threads.
-
-2022-01-27  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, gdbserver: update thread identifier in enable_btrace target method
-	The enable_btrace target method takes a ptid_t to identify the thread on
-	which tracing shall be enabled.
-
-	Change this to thread_info * to avoid translating back and forth between
-	the two.  This will be used in a subsequent patch.
-
-2022-01-27  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, btrace: switch threads in remote_btrace_maybe_reopen()
-	In remote_btrace_maybe_reopen() we iterate over threads and use
-	set_general_thread() to set the thread from which to transfer the btrace
-	configuration.
-
-	This sets the remote general thread but does not affect inferior_ptid.  On
-	the xfer request later on, remote_target::xfer_partial() again sets the
-	remote general thread to inferior_ptid, overwriting what
-	remote_btrace_maybe_reopen() had done.
-
-	In one case, this led to inferior_ptid being null_ptid when we tried to
-	enable tracing on a newly created thread inside a newly created process
-	during attach.
-
-	This, in turn, led to find_inferior_pid() asserting when we iterated over
-	threads in record_btrace_is_replaying(), which was called from
-	record_btrace_target::xfer_partial() when reading the btrace configuration
-	of the new thread to check whether it was already being recorded.
-
-	The bug was exposed by
-
-	    0618ae41497 gdb: optimize all_matching_threads_iterator
-
-	and found by
-
-	    FAIL: gdb.btrace/enable-new-thread.exp: ... (GDB internal error)
-
-	Use switch_to_thread() in remote_btrace_maybe_reopen().
-
-2022-01-27  Markus Metzger  <markus.t.metzger@intel.com>
-
-	gdb, btrace: rename record_btrace_enable_warn()
-	We use record_btrace_enable_warn() as the new-thread observer callback.
-	It is not used in other contexts.
-
-	Rename it to record_btrace_on_new_thread() to make its role more clear.
-
-2022-01-27  Nick Clifton  <nickc@redhat.com>
-
-	Updated Swedish translation for the binutils subdirectory
-
-2022-01-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-26  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: handle non utf-8 characters when source highlighting
-	This commit adds support for source files that contain non utf-8
-	characters when performing source styling using the Python pygments
-	package.  This does not change the behaviour of GDB when the GNU
-	Source Highlight library is used.
-
-	For the following problem description, assume that either GDB is built
-	without GNU Source Highlight support, of that this has been disabled
-	using 'maintenance set gnu-source-highlight enabled off'.
-
-	The initial problem reported was that a source file containing non
-	utf-8 characters would cause GDB to print a Python exception, and then
-	display the source without styling, e.g.:
-
-	  Python Exception <class 'UnicodeDecodeError'>: 'utf-8' codec can't decode byte 0xc0 in position 142: invalid start byte
-	  /* Source code here, without styling...  */
-
-	Further, as the user steps through different source files, each time
-	the problematic source file was evicted from the source cache, and
-	then later reloaded, the exception would be printed again.
-
-	Finally, this problem is only present when using Python 3, this issue
-	is not present for Python 2.
-
-	What makes this especially frustrating is that GDB can clearly print
-	the source file contents, they're right there...  If we disable
-	styling completely, or make use of the GNU Source Highlight library,
-	then everything is fine.  So why is there an error when we try to
-	apply styling using Python?
-
-	The problem is the use of PyString_FromString (which is an alias for
-	PyUnicode_FromString in Python 3), this function converts a C string
-	into a either a Unicode object (Py3) or a str object (Py2).  For
-	Python 2 there is no unicode encoding performed during this function
-	call, but for Python 3 the input is assumed to be a uft-8 encoding
-	string for the purpose of the conversion.  And here of course, is the
-	problem, if the source file contains non utf-8 characters, then it
-	should not be treated as utf-8, but that's what we do, and that's why
-	we get an error.
-
-	My first thought when looking at this was to spot when the
-	PyString_FromString call failed with a UnicodeDecodeError and silently
-	ignore the error.  This would mean that GDB would print the source
-	without styling, but would also avoid the annoying exception message.
-
-	However, I also make use of `pygmentize`, a command line wrapper
-	around the Python pygments module, which I use to apply syntax
-	highlighting in the output of `less`.  And this command line wrapper
-	is quite happy to syntax highlight my source file that contains non
-	utf-8 characters, so it feels like the problem should be solvable.
-
-	It turns out that inside the pygments module there is already support
-	for guessing the encoding of the incoming file content, if the
-	incoming content is not already a Unicode string.  This is what
-	happens for Python 2 where the incoming content is of `str` type.
-
-	We could try and make GDB smarter when it comes to converting C
-	strings into Python Unicode objects; this would probably require us to
-	just try a couple of different encoding schemes rather than just
-	giving up after utf-8.
-
-	However, I figure, why bother?  The pygments module already does this
-	for us, and the colorize API is not part of the documented external
-	API of GDB.  So, why not just change the colorize API, instead of the
-	content being a Unicode string (for Python 3), lets just make the
-	content be a bytes object.  The pygments module can then take
-	responsibility for guessing the encoding.
-
-	So, currently, the colorize API receives a unicode object, and returns
-	a unicode object.  I propose that the colorize API receive a bytes
-	object, and return a bytes object.
-
-2022-01-26  Tom Tromey  <tom@tromey.com>
-
-	Remove global wrap_here function
-	This removes the global wrap_here function, so that future calls
-	cannot be introduced.  Instead, all callers must use the method on the
-	appropriate ui_file.
-
-	This temporarily moves the implementation of this method to utils.c.
-	This will change once the remaining patches to untangle the pager have
-	been written.
-
-2022-01-26  Tom Tromey  <tom@tromey.com>
-
-	Always call the wrap_here method
-	This changes all existing calls to wrap_here to call the method on the
-	appropriate ui_file instead.  The choice of ui_file is determined by
-	context.
-
-2022-01-26  Tom Tromey  <tom@tromey.com>
-
-	Add ui_file::wrap_here
-	Right now, wrap_here is a global function.  In the long run, we'd like
-	output streams to be relatively self-contained objects, and having a
-	global function like this is counter to that goal.  Also, existing
-	code freely mixes writes to some parameterized stream with calls to
-	wrap_here -- but wrap_here only really affects gdb_stdout, so this is
-	also incoherent.
-
-	This step is a patch toward making wrap_here more sane.  It adds a
-	wrap_here method to ui_file and changes ui_out implementations to use
-	it.
-
-2022-01-26  Tom Tromey  <tom@tromey.com>
-
-	Convert wrap_here to use integer parameter
-	I think it only really makes sense to call wrap_here with an argument
-	consisting solely of spaces.  Given this, it seemed better to me that
-	the argument be an int, rather than a string.  This patch is the
-	result.  Much of it was written by a script.
-
-2022-01-26  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: improve the auto help text for gdb.Parameter
-	This commit attempts to improve the help text that is generated for
-	gdb.Parameter objects when the user fails to provide their own
-	documentation.
-
-	Documentation for a gdb.Parameter is currently pulled from two
-	sources: the class documentation string, and the set_doc/show_doc
-	class attributes.  Thus, a fully documented parameter might look like
-	this:
-
-	  class Param_All (gdb.Parameter):
-	     """This is the class documentation string."""
-
-	     show_doc = "Show the state of this parameter"
-	     set_doc = "Set the state of this parameter"
-
-	     def get_set_string (self):
-	        val = "on"
-	        if (self.value == False):
-	           val = "off"
-	        return "Test Parameter has been set to " + val
-
-	     def __init__ (self, name):
-	        super (Param_All, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
-	        self._value = True
-
-	  Param_All ('param-all')
-
-	Then in GDB we see this:
-
-	  (gdb) help set param-all
-	  Set the state of this parameter
-	  This is the class documentation string.
-
-	Which is fine.  But, if the user skips both of the documentation parts
-	like this:
-
-	  class Param_None (gdb.Parameter):
-
-	     def get_set_string (self):
-	        val = "on"
-	        if (self.value == False):
-	           val = "off"
-	        return "Test Parameter has been set to " + val
-
-	     def __init__ (self, name):
-	        super (Param_None, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
-	        self._value = True
-
-	  Param_None ('param-none')
-
-	Now in GDB we see this:
-
-	  (gdb) help set param-none
-	  This command is not documented.
-	  This command is not documented.
-
-	That's not great, the duplicated text looks a bit weird.  If we drop
-	different parts we get different results.  Here's what we get if the
-	user drops the set_doc and show_doc attributes:
-
-	  (gdb) help set param-doc
-	  This command is not documented.
-	  This is the class documentation string.
-
-	That kind of sucks, we say it's undocumented, then proceed to print
-	the documentation.  Finally, if we drop the class documentation but
-	keep the set_doc and show_doc:
-
-	  (gdb) help set param-set-show
-	  Set the state of this parameter
-	  This command is not documented.
-
-	That seems OK.
-
-	So, I think there's room for improvement.
-
-	With this patch, for the four cases above we now see this:
-
-	  # All values provided by the user, no change in this case:
-	  (gdb) help set param-all
-	  Set the state of this parameter
-	  This is the class documentation string.
-
-	  # Nothing provided by the user, the first string is now different:
-	  (gdb) help set param-none
-	  Set the current value of 'param-none'.
-	  This command is not documented.
-
-	  # Only the class documentation is provided, the first string is
-	  # changed as in the previous case:
-	  (gdb) help set param-doc
-	  Set the current value of 'param-doc'.
-	  This is the class documentation string.
-
-	  # Only the set_doc and show_doc are provided, this case is unchanged
-	  # from before the patch:
-	  (gdb) help set param-set-show
-	  Set the state of this parameter
-	  This command is not documented.
-
-	The one place where this change might be considered a negative is when
-	dealing with prefix commands.  If we create a prefix command but don't
-	supply the set_doc / show_doc strings, then this is what we saw before
-	my patch:
-
-	  (gdb) python Param_None ('print param-none')
-	  (gdb) help set print
-	  set print, set pr, set p
-	  Generic command for setting how things print.
-
-	  List of set print subcommands:
-
-	  ... snip ...
-	  set print param-none -- This command is not documented.
-	  ... snip ...
-
-	And after my patch:
-
-	  (gdb) python Param_None ('print param-none')
-	  (gdb) help set print
-	  set print, set pr, set p
-	  Generic command for setting how things print.
-
-	  List of set print subcommands:
-
-	  ... snip ...
-	  set print param-none -- Set the current value of 'print param-none'.
-	  ... snip ...
-
-	This seems slightly less helpful than before, but I don't think its
-	terrible.
-
-	Additionally, I've changed what we print when the get_show_string
-	method is not provided in Python.
-
-	Back when gdb.Parameter was first added to GDB, we didn't provide a
-	show function when registering the internal command object within
-	GDB.  As a result, GDB would make use of its "magic" mangling of the
-	show_doc string to create a sentence that would display the current
-	value (see deprecated_show_value_hack in cli/cli-setshow.c).
-
-	However, when we added support for the get_show_string method to
-	gdb.Parameter, there was an attempt to maintain backward compatibility
-	by displaying the show_doc string with the current value appended, see
-	get_show_value in py-param.c.  Unfortunately, this isn't anywhere
-	close to what deprecated_show_value_hack does, and the results are
-	pretty poor, for example, this is GDB before my patch:
-
-	  (gdb) show param-none
-	  This command is not documented. off
-
-	I think we can all agree that this is pretty bad.
-
-	After my patch, we how show this:
-
-	  (gdb) show param-none
-	  The current value of 'param-none' is "off".
-
-	Which at least is a real sentence, even if it's not very informative.
-
-	This patch does change the way that the Python API behaves slightly,
-	but only in the cases when the user has missed providing GDB with some
-	information.  In most cases I think the new behaviour is a lot better,
-	there's the one case (noted above) which is a bit iffy, but I think is
-	still OK.
-
-	I've updated the existing gdb.python/py-parameter.exp test to cover
-	the modified behaviour.
-
-	Finally, I've updated the documentation to (I hope) make it clearer
-	how the various bits of help text come together.
-
-2022-01-26  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add gdb.history_count function
-	Add a new function gdb.history_count to the Python api, this function
-	returns an integer, the number of items in GDB's value history.
-
-	This is useful if you want to pull items from the history by their
-	absolute number, for example, if you wanted to show a complete history
-	list.  Previously we could figure out how many items are in the
-	history list by trying to fetch the items, and then catching the
-	exception when the item is not available, but having this function
-	seems nicer.
-
-2022-01-26  Tom Tromey  <tromey@adacore.com>
-
-	Remove unused declaration
-	This removes an unused declaration from top.h.  This type is not
-	defined anywhere.
-
-2022-01-26  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: convert maintenance target-async and target-non-stop settings to callbacks
-	This simplifies things a bit, as we don't need two variables and think
-	about reverting target_async_permitted_1 and target_non_stop_enabled_1
-	values if we can't change the setting.
-
-	Change-Id: I36acab045dacf02ae1988486cfdb27c1dff309f6
-
-2022-01-26  Keith Seitz  <keiths@redhat.com>
-
-	Reference array of structs instead of first member during memcpy
-	aarch64-tdep.c defines the following macro:
-
-	#define MEM_ALLOC(MEMS, LENGTH, RECORD_BUF) \
-	        do  \
-	          { \
-	            unsigned int mem_len = LENGTH; \
-	            if (mem_len) \
-	              { \
-	                MEMS =  XNEWVEC (struct aarch64_mem_r, mem_len);  \
-	                memcpy(&MEMS->len, &RECORD_BUF[0], \
-	                       sizeof(struct aarch64_mem_r) * LENGTH); \
-	              } \
-	          } \
-	          while (0)
-
-	This is simlpy allocating a new array and copying it. However, for
-	the destination address, it is actually copying into the first member
-	of the first element of the array (`&MEMS->len"). This elicits a
-	warning with GCC 12:
-
-	../../binutils-gdb/gdb/aarch64-tdep.c: In function ‘int aarch64_process_record(gdbarch*, regcache*, CORE_ADDR)’:
-	../../binutils-gdb/gdb/aarch64-tdep.c:3711:23: error: writing 16 bytes into a region of size 8 [-Werror=stringop-overflow=]
-	 3711 |                 memcpy(&MEMS->len, &RECORD_BUF[0], \
-	      |                       ^
-	../../binutils-gdb/gdb/aarch64-tdep.c:4394:3: note: in expansion of macro ‘MEM_ALLOC’
-	 4394 |   MEM_ALLOC (aarch64_insn_r->aarch64_mems, aarch64_insn_r->mem_rec_count,
-	      |   ^~~~~~~~~
-	../../binutils-gdb/gdb/aarch64-tdep.c:3721:12: note: destination object ‘aarch64_mem_r::len’ of size 8
-	 3721 |   uint64_t len;    /* Record length.  */
-	      |            ^~~
-
-	The simple fix is to reference the array, `MEMS' as the destination of the copy.
-
-	Tested by rebuilding.
-
-
-	# Please enter the commit message for your changes. Lines starting
-	# with '#' will be kept; you may remove them yourself if you want to.
-	# An empty message aborts the commit.
-	#
-	# Date:      Tue Jan 25 08:28:32 2022 -0800
-	#
-	# On branch master
-	# Your branch is ahead of 'origin/master' by 1 commit.
-	#   (use "git push" to publish your local commits)
-	#
-	# Changes to be committed:
-	#	modified:   aarch64-tdep.c
-	#
-
-2022-01-26  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add string_file::release method
-	A common pattern for string_file is to want to move out the internal
-	string buffer, because it is the result of the computation that we want
-	to return.  It is the reason why string_file::string returns a non-const
-	reference, as explained in the comment.  I think it would make sense to
-	have a dedicated method for that instead and make string_file::string
-	return a const reference.
-
-	This allows removing the explicit std::move in the typical case.  Note
-	that compile_program::compute was missing a move, meaning that the
-	resulting string was copied.  With the new version, it's not possible to
-	forget to move.
-
-	Change-Id: Ieaefa35b73daa7930b2f3a26988b6e3b4121bb79
-
-2022-01-26  Tom Tromey  <tromey@adacore.com>
-
-	Add a way to temporarily set a gdb parameter from Python
-	It's sometimes useful to temporarily set some gdb parameter from
-	Python.  Now that the 'endian' crash is fixed, and now that the
-	current language is no longer captured by the Python layer, it seems
-	reasonable to add a helper function for this situation.
-
-	This adds a new gdb.with_parameter function.  This creates a context
-	manager which temporarily sets some parameter to a specified value.
-	The old value is restored when the context is exited.  This is most
-	useful with the Python "with" statement:
-
-	   with gdb.with_parameter('language', 'ada'):
-	      ... do Ada stuff
-
-	This also adds a simple function to set a parameter,
-	gdb.set_parameter, as suggested by Andrew.
-
-	This is PR python/10790.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=10790
-
-2022-01-26  Tom Tromey  <tromey@adacore.com>
-
-	Fix another crash with gdb parameters in Python
-	While looking into the language-capturing issue, I found another way
-	to crash gdb using parameters from Python:
-
-	(gdb) python print(gdb.parameter('endian'))
-
-	(This is related to PR python/12188, though this patch isn't going to
-	fix what that bug is really about.)
-
-	The problem here is that the global variable that underlies the
-	"endian" parameter is initialized to NULL.  However, that's not a
-	valid value for an "enum" set/show parameter.
-
-	My understanding is that, in gdb, an "enum" parameter's underlying
-	variable must have a value that is "==" (not just strcmp-equal) to one
-	of the values coming from the enum array.  This invariant is relied on
-	in various places.
-
-	I started this patch by fixing the problem with "endian".  Then I
-	added some assertions to add_setshow_enum_cmd to try to catch other
-	problems of the same type.
-
-	This patch fixes all the problems that I found.  I also looked at all
-	the calls to add_setshow_enum_cmd to ensure that they were all
-	included in the gdb I tested.  I think they are: there are no calls in
-	nat-* files, or in remote-sim.c; and I was trying a build with all
-	targets, Python, and Guile enabled.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=12188
-
-2022-01-26  Tom Tromey  <tromey@adacore.com>
-
-	Change how Python architecture and language are handled
-	Currently, gdb's Python layer captures the current architecture and
-	language when "entering" Python code.  This has some undesirable
-	effects, and so this series changes how this is handled.
-
-	First, there is code like this:
-
-	  gdbpy_enter enter_py (python_gdbarch, python_language);
-
-	This is incorrect, because both of these are NULL when not otherwise
-	assigned.  This can cause crashes in some cases -- I've added one to
-	the test suite.  (Note that this crasher is just an example, other
-	ones along the same lines are possible.)
-
-	Second, when the language is captured in this way, it means that
-	Python code cannot affect the current language for its own purposes.
-	It's reasonable to want to write code like this:
-
-	    gdb.execute('set language mumble')
-	    ... stuff using the current language
-	    gdb.execute('set language previous-value')
-
-	However, this won't actually work, because the language is captured on
-	entry.  I've added a test to show this as well.
-
-	This patch changes gdb to try to avoid capturing the current values.
-	The Python concept of the current gdbarch is only set in those few
-	cases where a non-default value is computed or needed; and the
-	language is not captured at all -- instead, in the cases where it's
-	required, the current language is temporarily changed.
-
-2022-01-26  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Make bfd.stamp depend on source bfd.texi
-	Make bfd.stamp depend on source bfd.texi to avoid regenerating
-	doc/bfd.info for each make run.
-
-		PR binutils/28807
-		* Makefile.in: Regenerate.
-		* doc/local.mk (%D%/bfd.stamp): Depend on $(srcdir)/%D%/bfd.texi.
-
-2022-01-26  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Rewrite lang_size_relro_segment_1
-	1. Compute the desired PT_GNU_RELRO segment base and find the maximum
-	section alignment of sections starting from the PT_GNU_RELRO segment.
-	2. Find the first preceding load section.
-	3. Don't add the 1-page gap between the first preceding load section and
-	the relro segment if the maximum page size >= the maximum section
-	alignment.  Align the PT_GNU_RELRO segment first.  Subtract the maximum
-	page size if therer is still a 1-page gap.
-
-		PR ld/28743
-		PR ld/28819
-		* ldlang.c (lang_size_relro_segment_1): Rewrite.
-		* testsuite/ld-x86-64/pr28743-1.d: New file.
-		* testsuite/ld-x86-64/pr28743-1.s: Likewise.
-		* testsuite/ld-x86-64/x86-64.exp: Run pr28743-1.
-
-2022-01-26  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: Ensure constant test name in gdb.base/break-interp.exp
-	When running the testsuite, I have lines similar to the following in the
-	gdb.sum file:
-
-	~~~
-	PASS: gdb.base/break-interp.exp: ldprelink=NO: ldsepdebug=NO: first backtrace: p /x 0x7f283d2f0fd1
-	...
-	PASS: gdb.base/break-interp.exp: ldprelink=NO: ldsepdebug=NO: binprelink=NO: binsepdebug=NO: binpie=NO: INNER: first backtrace: p /x 0x7f00de0317a5
-	...
-	~~~
-
-	The address part of the command might change between execution of the
-	test, which adds noise to a diff between two .sum files.
-
-	This patch changes to test name to "p /x $pc" in order to have constant
-	test name.
-
-	Tested on x86_64-Linux.
-
-	Change-Id: I973c1237a084dd6d424276443cbf0920533c9a21
-
-2022-01-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-25  Tom Tromey  <tom@tromey.com>
-
-	Always print the "host libthread-db" message to stdout
-	linux-thread-db.c has a bit of unusual code that unconditionally
-	prints a message, but decides whether to print to gdb_stdout or
-	gdb_stdlog based on a debug flag.  It seems better to me to simply
-	always print this; and this is the only spot in gdb where we
-	conditionally pass gdb_stdout to one of the f*_unfiltered functions.
-
-2022-01-25  Tom Tromey  <tom@tromey.com>
-
-	Reduce explicit use of gdb_stdout
-	In an earlier version of the pager rewrite series, it was important to
-	audit unfiltered output calls to see which were truly necessary.
-
-	This is no longer necessary, but it still seems like a decent cleanup
-	to change calls to avoid explicitly passing gdb_stdout.  That is,
-	rather than using something like fprintf_unfiltered with gdb_stdout,
-	the code ought to use plain printf_unfiltered instead.
-
-	This patch makes this change.  I went ahead and converted all the
-	_filtered calls I could find, as well, for the same clarity.
-
-2022-01-25  Tom Tromey  <tom@tromey.com>
-
-	Sent timing stats to gdb_stdlog
-	This changes the time / space / symtab per-command statistics code to
-	send its output to gdb_stdlog rather than gdb_stdout.  This seems
-	slightly more correct to me.
-
-	Send some error output to gdb_stderr
-	This changes some code to send some error messages to gdb_stderr
-	rather than gdb_stdout.
-
-2022-01-25  Klaus Ziegler  <klausz@haus-gisela.de>
-
-	Fix a probem building the binutils on SPARC/amd64
-		PR 28816
-		* elf/common.h (AT_SUN_HWCAP): Make definition conditional.
-
-2022-01-25  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Regenerate Makefile.in
-		* Makefile.in: Regenerate.
-
-2022-01-25  Mike Frysinger  <vapier@gentoo.org>
-
-	gold: drop old cygnus install hack
-	The gold subdir doesn't actually have a manual, so this hack doesn't
-	do anything.  Plus the automake cygnus option was removed years ago
-	by Simon in d0ac1c44885daf68f631befa37e ("Bump to autoconf 2.69 and
-	automake 1.15.1").  So delete it here.
-
-	gas: drop old cygnus install hack
-	This was needed when gas was using the automake cygnus option, but
-	this was removed years ago by Simon in d0ac1c44885daf68f631befa37e
-	("Bump to autoconf 2.69 and automake 1.15.1").  So delete it here.
-	The info pages are already & still installed by default w/out it.
-
-2022-01-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-24  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Update doc/local.mk
-		PR binutils/28807
-		* Makefile.in: Regenerate.
-		* doc/local.mk (AM_MAKEINFOFLAGS): Add -I "$(srcdir)/%D%" -I %D%.
-		(TEXI2DVI): New.
-		(%D%/bfd.texi): Removed.
-		(doc/bfd/index.html): Remove -I$(srcdir).  Replace bfd.texi with
-		%D%/bfd.texi.
-
-2022-01-24  Roland McGrath  <mcgrathr@google.com>
-
-	bfd/doc: Fix racy build failure from missing mkdir
-	bfd/
-		* doc/local.mk (%D%/bfdver.texi): Add mkdir command.
-
-2022-01-24  Martin Sebor  <msebor@redhat.com>
-
-	Fix a proble building the libiberty library with gcc-12.
-		PR 28779
-		* regex.c: Suppress -Wuse-after-free.
-
-2022-01-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: improve description for Window.click on Python TUI windows
-	The description of the Window.click method doesn't mention where the
-	coordinates are anchored (it's the top left corner).
-
-	This minor tweak just mentions this point.
-
-2022-01-24  Nick Clifton  <nickc@redhat.com>
-
-	Update Bulgarian, French, Romaniam and Ukranian translation for some of the sub-directories
-
-2022-01-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-23  Tom Tromey  <tom@tromey.com>
-
-	Simplify some Rust expression-evaluation code
-	A few Rust operations do a bit of work in their 'evaluate' functions
-	and then call another function -- but are also the only caller.  This
-	patch simplifies this code by removing the extra layer.
-
-	Tested on x86-64 Fedora 34.  I'm checking this in.
-
-2022-01-23  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Partially revert commit 0e3839bde6f
-	Partially revert
-
-	commit 0e3839bde6f93e1e3eefce815be3636e3d81054d
-	Author: H.J. Lu <hjl.tools@gmail.com>
-	Date:   Sun Jan 23 07:29:27 2022 -0800
-
-	    bfd: Properly install library and header files
-
-		PR binutils/28807
-		* Makefile.am: Revert bfdlib_LTLIBRARIES and bfdinclude_HEADERS
-		changes.
-		* Makefile.in: Regenerate.
-
-2022-01-23  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Properly install library and header files
-	Rename bfdlib_LTLIBRARIES and bfdinclude_HEADERS to lib_LTLIBRARIES and
-	include_HEADERS to fix the missing installed library and header files in
-	bfd caused by
-
-	commit bd32be01c997f686ab0b53f0640eaa0aeb61fbd3
-	Author: Mike Frysinger <vapier@gentoo.org>
-	Date:   Fri Dec 3 00:23:20 2021 -0500
-
-	    bfd: merge doc subdir up a level
-
-		PR binutils/28807
-		* Makefile.am (bfdlib_LTLIBRARIES): Renamed to ...
-		(lib_LTLIBRARIES): This.
-		(bfdinclude_HEADERS): Renamed to ...
-		(include_HEADERS): This.
-		* Makefile.in: Regenerate.
-		* doc/local.mk (install): Removed.
-
-2022-01-23  H.J. Lu  <hjl.tools@gmail.com>
-
-	Regenerate Makefile.in files with automake 1.15.1
-	Regenerate Makefile.in files with the unmodified automake 1.15.1 to
-	remove
-
-	runstatedir = @runstatedir@
-
-	bfd/
-
-		* Makefile.in: Regenerate.
-
-	binutils/
-
-		* Makefile.in: Regenerate.
-
-	gas/
-
-		* Makefile.in: Regenerate.
-
-	gold/
-
-		* Makefile.in: Regenerate.
-		* testsuite/Makefile.in: Likewise.
-
-	gprof/
-
-		* Makefile.in: Regenerate.
-
-	ld/
-
-		* Makefile.in: Regenerate.
-
-	opcodes/
-
-		* Makefile.in: Regenerate.
-
-2022-01-23  H.J. Lu  <hjl.tools@gmail.com>
-
-	Regenerate configure files with autoconf 2.69
-	Regenerate configure files with the unmodified autoconf 2.69 to remove
-
-	  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
-
-	bfd/
-
-		* configure: Regenerate.
-
-	binutils/
-
-		* configure: Regenerate.
-
-	gas/
-
-		* configure: Regenerate.
-
-	gold/
-
-		* configure: Regenerate.
-
-	gprof/
-
-		* configure: Regenerate.
-
-	ld/
-
-		* configure: Regenerate.
-
-	opcodes/
-
-		* configure: Regenerate.
-
-2022-01-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-22  Mike Frysinger  <vapier@gentoo.org>
-
-	bfd: merge doc subdir up a level
-	This avoids a recursive make into the doc subdir and speeds up the
-	build slightly.  It also allows for more parallelism.
-
-	bfd: rename core.texi to corefile.texi
-	This is a generated file name from a correspondingly named C file.
-	Rename it to avoid unique build rules since there's no difference
-	to the generated manual.
-
-	bfd: replace doc header generation with pattern rules
-	This unifies boilerplate rules for most files with pattern rules.
-
-2022-01-22  Martin Storsj?  <martin@martin.st>
-
-	Allow inferring tmp_prefix from the dll name from a def file.
-
-2022-01-22  Alexander von Gluck IV  <kallisti5@unixzen.com>
-
-	Adjust default page sizes for haiku arm.
-		* configure.tgt (arm-haiku): Fix typo.
-		* emulparams/armelf_haiku.su (MAXPAGESIZE): Use the default value.
-		(COMMONPAGESIZE): Likewise.
-
-2022-01-22  Nick Clifton  <nickc@redhat.com>
-
-	Update release makeing script with new release numbers
-
-	Change version number to 2.38.50 and regenerate files
-
-	Add markers for 2.38 branch
-
-2022-01-22  Lifang Xia  <lifang_xia@linux.alibaba.com>
-
-	RISC-V: create new frag after alignment.
-	PR 28793:
-
-	The alignment may be removed in linker. We need to create new frag after
-	alignment to prevent the assembler from computing static offsets.
-
-	gas/
-		* config/tc-riscv.c (riscv_frag_align_code): Create new frag.
-
-2022-01-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: include gdbsupport/buildargv.h in ser-mingw.c
-	Fixes:
-
-	      CXX    ser-mingw.o
-	    /home/simark/src/binutils-gdb/gdb/ser-mingw.c: In function ‘int pipe_windows_open(serial*, const char*)’:
-	    /home/simark/src/binutils-gdb/gdb/ser-mingw.c:870:3: error: ‘gdb_argv’ was not declared in this scope
-	      870 |   gdb_argv argv (name);
-	          |   ^~~~~~~~
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28802
-	Change-Id: I7f3e8ec5f9ca8582d587545fdf6b69901259f199
-
-2022-01-21  Nick Clifton  <nickc@redhat.com>
-
-	Updated Serbian translation for the ld sub-directory
-
-2022-01-21  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: fill in two missing @r
-	I noticed two places in the docs where we appear to be missing @r.
-	makeinfo seems to do the correct things despite these being
-	missing (at least, I couldn't see any difference in the pdf or info
-	output), but it doesn't hurt to have the @r in place.
-
-2022-01-21  Mike Frysinger  <vapier@gentoo.org>
-
-	drop old unused stamp-h.in file
-	This was needed by ancient versions of automake, but that hasn't been
-	the case since at least automake-1.5, so punt this from the tree.
-
-2022-01-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport/gdb_regex.cc: replace defs.h include with common-defs.h
-	This was forgotten when gdb_regex was moved from gdb to gdbsupport.
-
-	Change-Id: I73b446f71861cabbf7afdb7408ef9d59fa64b804
-
-2022-01-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-20  Tom Tromey  <tromey@adacore.com>
-
-	Avoid bad breakpoints with --gc-sections
-	We found a case where --gc-sections can cause gdb to set an invalid
-	breakpoint.  In the included test case, gdb will set a breakpoint with
-	two locations, one of which is 0x0.
-
-	The code in lnp_state_machine::check_line_address is intended to
-	filter out this sort of problem, but in this case, the entire CU is
-	empty, causing unrelocated_lowpc==0x0 -- which circumvents the check.
-
-	It seems to me that if a CU is empty like this, then it is ok to
-	simply ignore the line table, as there won't be any locations anyway.
-
-2022-01-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-19  Maciej W. Rozycki  <macro@embecosm.com>
-
-	Add `set print array-indexes' tests for C/C++ arrays
-	Add `set print array-indexes' tests for C/C++ arrays, complementing one
-	for Fortran arrays.
-
-2022-01-19  Maciej W. Rozycki  <macro@embecosm.com>
-
-	Respect `set print array-indexes' with Fortran arrays
-	Add `set print array-indexes' handling for Fortran arrays.  Currently
-	the setting is ignored and indices are never shown.
-
-	Keep track of the most recent index handled so that any outstanding
-	repeated elements printed when the limit set by `set print elements' is
-	hit have the correct index shown.
-
-	Output now looks like:
-
-	(gdb) set print array-indexes on
-	(gdb) print array_1d
-	$1 = ((-2) = 1, (-1) = 1, (0) = 1, (1) = 1, (2) = 1)
-	(gdb) set print repeats 4
-	(gdb) set print elements 12
-	(gdb) print array_2d
-	$2 = ((-2) = ((-2) = 2, <repeats 5 times>) (-1) = ((-2) = 2, <repeats 5 times>) (0) = ((-2) = 2, (-1) = 2, ...) ...)
-	(gdb)
-
-	for a 5-element vector and a 5 by 5 array filled with the value of 2.
-
-2022-01-19  Maciej W. Rozycki  <macro@embecosm.com>
-
-	Add `set print repeats' tests for C/C++ arrays
-	Add `set print repeats' tests for C/C++ arrays, complementing one for
-	Fortran arrays and covering the different interpretation of the `set
-	print elements' setting in particular where the per-dimension count of
-	the elements handled is matched against the trigger rather than the
-	total element count as with Fortran arrays.
-
-2022-01-19  Maciej W. Rozycki  <macro@embecosm.com>
-
-	Respect `set print repeats' with Fortran arrays
-	Implement `set print repeats' handling for Fortran arrays.  Currently
-	the setting is ignored and always treated as if no limit was set.
-
-	Unlike the generic array walker implemented decades ago the Fortran one
-	is a proper C++ class.  Rather than trying to mimic the old walker then,
-	which turned out a bit of a challenge where interacting with the `set
-	print elements' setting, write it entirely from scratch, by adding an
-	extra specialization handler method for processing dimensions other than
-	the innermost one and letting the specialization class call the `walk_1'
-	method from the handler as it sees fit.  This way repeats can be tracked
-	and the next inner dimension recursed into as a need arises only, or
-	unconditionally in the base class.
-
-	Keep track of the dimension number being handled in the class rather as
-	a parameter to the walker so that it does not have to be passed across
-	by the specialization class.
-
-	Use per-dimension element count tracking, needed to terminate processing
-	early when the limit set by `set print elements' is hit.  This requires
-	extra care too where the limit triggers exactly where another element
-	that is a subarray begins.  In that case rather than recursing we need
-	to terminate processing or lone `(...)' would be printed.  Additionally
-	if the skipped element is the last one in the current dimension we need
-	to print `...' by hand, because `continue_walking' won't print it at the
-	upper level, because it can see the last element has already been taken
-	care of.
-
-	Preserve the existing semantics of `set print elements' where the total
-	count of the elements handled is matched against the trigger level which
-	is unlike with the C/C++ array printer where the per-dimension element
-	count is used instead.
-
-	Output now looks like:
-
-	(gdb) set print repeats 4
-	(gdb) print array_2d
-	$1 = ((2, <repeats 5 times>) <repeats 5 times>)
-	(gdb) set print elements 12
-	(gdb) print array_2d
-	$2 = ((2, <repeats 5 times>) (2, <repeats 5 times>) (2, 2, ...) ...)
-	(gdb)
-
-	for a 5 by 5 array filled with the value of 2.
-
-	Amend existing test cases accordingly that rely on the current incorrect
-	behavior and explicitly request that there be no limit for printing
-	repeated elements there.
-
-	Add suitable test cases as well covering sliced arrays in particular.
-
-	Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>
-
-2022-01-19  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Add include for gdb_argv.
-
-2022-01-19  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 DT_RELR ELFv1
-	More fun with R_PPC64_NONE found in .opd.  Fixed by the
-	allocate_dynrelocs and ppc64_elf_size_dynamic_sections changes, and
-	since we are doing ifunc, opd and SYMBOL_REFERENCES_LOCAL tests later,
-	don't duplicate that work in check_relocs.
-
-		* elf64-ppc.c (ppc64_elf_check_relocs): Remove opd and ifunc
-		conditions for rel_count.
-		(dec_dynrel_count): Likewise.
-		(allocate_dynrelocs): Test for opd and ifunc when allocating
-		relative relocs.
-		(ppc64_elf_size_dynamic_sections): Likewise.
-
-2022-01-19  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 DT_RELR local PLT
-	Similarly to the local GOT case.
-
-		* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Don't allocate
-		space for PLT relocs against local syms when enable_dt_relr.
-
-2022-01-19  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 DT_RELR local GOT
-	Fixes another case where we end up with superfluous R_PPC64_NONE.
-
-		* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Don't allocate
-		space for GOT relocs against non-TLS local syms when enable_dt_relr.
-		(ppc64_elf_layout_multitoc): Likewise.
-
-2022-01-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-18  Alan Modra  <amodra@gmail.com>
-
-	Re: PowerPC64 DT_RELR
-	HJ: "There are 238 R_PPC64_NONEs in libc.so.6 alone."
-	Indeed, let's make them go away.  I had the SYMBOL_REFERENCES_LOCAL
-	test in the wrong place.  check_relocs is too early to know whether a
-	symbol is dynamic in a shared library.  Lots of glibc symbols are made
-	local by version script, but that doesn't happen until
-	size_dynamic_sections.
-
-		* elf64-ppc.c (ppc64_elf_check_relocs): Don't count relative relocs
-		here depending on SYMBOL_REFERENCES_LOCAL.
-		(dec_dynrel_count): Likewise.
-		(allocate_dynrelocs): Do so here instead.
-
-2022-01-18  Tom Tromey  <tom@tromey.com>
-
-	Fix the remote-sim.c build
-	My earlier patch to move gdb_argv broke the remote-sim.c build.  This
-	patch fixes the bug.  I'm checking it in.
-
-2022-01-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver: introduce remote_debug_printf
-	Add remote_debug_printf, and use it for all debug messages controlled by
-	remote_debug.
-
-	Change remote_debug to be a bool, which is trivial in this case.
-
-	Change-Id: I90de13cb892faec3830047b571661822b126d6e8
-
-2022-01-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver: introduce threads_debug_printf, THREADS_SCOPED_DEBUG_ENTER_EXIT
-	Add the threads_debug_printf and THREADS_SCOPED_DEBUG_ENTER_EXIT, which
-	use the logging infrastructure from gdbsupport/common-debug.h.  Replace
-	all debug_print uses that are predicated by debug_threads with
-	threads_dethreads_debug_printf.  Replace uses of the debug_enter and
-	debug_exit macros with THREADS_SCOPED_DEBUG_ENTER_EXIT, which serves
-	essentially the same purpose, but allows showing what comes between the
-	enter and the exit in an indented form.
-
-	Note that "threads" debug is currently used for a bit of everything in
-	GDBserver, not only threads related stuff.  It should ideally be cleaned
-	up and separated logically as is done in GDB, but that's out of the
-	scope of this patch.
-
-	Change-Id: I2d4546464462cb4c16f7f1168c5cec5a89f2289a
-
-2022-01-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver: turn debug_threads into a boolean
-	debug_threads is always used as a boolean.  Except in ax.cc and
-	tracepoint.cc.  These files have their own macros that use
-	debug_threads, and have a concept of verbosity level.  But they both
-	have a single level, so it's just a boolean in the end.
-
-	Remove this concept of level.  If we ever want to re-introduce it, I
-	think it will be better implemented in a more common location.
-
-	Change debug_threads to bool and adjust some users that were treating it
-	as an int.
-
-	Change-Id: I137f596eaf763a08c977dd74417969cedfee9ecf
-
-2022-01-18  Tom Tromey  <tom@tromey.com>
-
-	Simplify Ada catchpoints
-	All the Ada catchpoints use the same breakpoint_ops contents, because
-	the catchpoint itself records its kind.  This patch simplifies the
-	code by removing the redundant ops structures.
-
-	Move "catch exec" to a new file
-	The "catch exec" code is reasonably self-contained, and so this patch
-	moves it out of breakpoint.c (the second largest source file in gdb)
-	and into a new file, break-catch-exec.c.
-
-	Move "catch fork" to a new file
-	The "catch fork" code is reasonably self-contained, and so this patch
-	moves it out of breakpoint.c (the second largest source file in gdb)
-	and into a new file, break-catch-fork.c.
-
-	Unify "catch fork" and "catch vfork"
-	I noticed that "catch fork" and "catch vfork" are nearly identical.
-	This patch simplifies the code by unifying these two cases.
-
-	Move gdb_regex to gdbsupport
-	This moves the gdb_regex convenience class to gdbsupport.
-
-	Introduce gdb-hashtab module in gdbsupport
-	gdb has some extensions and helpers for working with the libiberty
-	hash table.  This patch consolidates these and moves them to
-	gdbsupport.
-
-	Move gdb obstack code to gdbsupport
-	This moves the gdb-specific obstack code -- both extensions like
-	obconcat and obstack_strdup, and things like auto_obstack -- to
-	gdbsupport.
-
-	Move gdb_argv to gdbsupport
-	This moves the gdb_argv class to a new header in gdbsupport.
-
-	Simplify event_location_probe
-	event_location_probe currently stores two strings, but really only
-	needs one.  This patch simplifies it and removes some unnecessary
-	copies as well.
-
-	Use std::string in event_location
-	This changes event_location to use std::string, removing some manual
-	memory management, and an unnecessary string copy.
-
-	Split event_location into subclasses
-	event_location uses the old C-style discriminated union approach.
-	However, it's better to use subclassing, as this makes the code
-	clearer and removes some chances for error.  This also enables future
-	cleanups to avoid manual memory management and copies.
-
-	Remove EL_* macros from location.c
-	This patch removes the old-style EL_* macros from location.c.  This
-	cleans up the code by itself, IMO, but also enables further cleanups
-	in subsequent patches.
-
-	Boolify explicit_to_string_internal
-	This changes explicit_to_string_internal to use 'bool' rather than
-	'int'.
-
-	Remove a use of xfree in location.c
-	This small cleanup removes a use of xfree from location.c, by
-	switching to unique_xmalloc_ptr.  One function is only used in
-	location.c, so it is made static.  And, another function is changed to
-	avoid a copy.
-
-2022-01-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use ptid_t::to_string instead of target_pid_to_str in debug statements
-	Same idea as 0fab79556484 ("gdb: use ptid_t::to_string in infrun debug
-	messages"), but throughout GDB.
-
-	Change-Id: I62ba36eaef29935316d7187b9b13d7b88491acc1
-
-2022-01-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: preserve `|` in connection details string
-	Consider this GDB session:
-
-	  $ gdb -q
-	  (gdb) target remote  | gdbserver - ~/tmp/hello.x
-	  Remote debugging using | gdbserver - ~/tmp/hello.x
-	  ... snip ...
-	  (gdb) info connections
-	    Num  What                              Description
-	  * 1    remote gdbserver - ~/tmp/hello.x  Remote target using gdb-specific protocol
-	  (gdb) python conn = gdb.selected_inferior().connection
-	  (gdb) python print(conn.details)
-	  gdbserver - ~/tmp/hello.x
-	  (gdb)
-
-	I think there are two things wrong here, first in the "What" column of
-	the 'info connections' output, I think the text should be:
-
-	  remote | gdbserver - ~/tmp/hello.x
-
-	to correctly show the user how the connection was established.  And in
-	a similar fashion, I think that the `details` string of the
-	gdb.TargetConnection object should be:
-
-	  | gdbserver - ~/tmp/hello.x
-
-	This commit makes this change.  Currently the '|' is detected and
-	removed in gdb/serial.c.  The string passed to the pipe_ops
-	structure (from gdb/ser-pipe.c), doesn't then, contain the `|`, this
-	is instead implied by the fact that it is a pipes based implementation
-	of the serial_ops interface.
-
-	After this commit we still detect the `|` in gdb/serial.c, but we now
-	store the full string (including the `|`) in the serial::name member
-	variable.
-
-	For pipe based serial connections, this name is only used for
-	displaying the two fields I mention above, and in pipe_open (from
-	gdb/ser-pipe.c), and in pipe_open, we now know to skip over the `|`.
-
-	The benefit I see from this change is that GDB's output now more
-	accurately reflects the commands used to start a target, thus making
-	it easier for a user to understand what is going on.
-
-2022-01-18  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: print explicit test result for gdb.base/dfp-test.exp
-	In the current code, if decimal floating point is not supported for
-	this target, there is no binary file dfp-test, and also there is no
-	test result after execute the following commands:
-
-	  $ make check-gdb TESTS="gdb.base/dfp-test.exp"
-	  $ grep error gdb/testsuite/gdb.log
-	  /home/loongson/gdb.git/gdb/testsuite/gdb.base/dfp-test.c:39:1: error: decimal floating point not supported for this target
-	  [...]
-	  $ cat gdb/testsuite/gdb.sum
-	  [...]
-	  Running target unix
-	  Running /home/loongson/gdb.git/gdb/testsuite/gdb.base/dfp-test.exp ...
-
-			  === gdb Summary ===
-	  [...]
-
-	With this patch:
-
-	  $ make check-gdb TESTS="gdb.base/dfp-test.exp"
-	  $ cat gdb/testsuite/gdb.sum
-	  [...]
-	  Running target unix
-	  Running /home/loongson/gdb.git/gdb/testsuite/gdb.base/dfp-test.exp ...
-	  UNSUPPORTED: gdb.base/dfp-test.exp: decimal floating point not supported for this target.
-
-			  === gdb Summary ===
-
-	  # of unsupported tests		1
-	  [...]
-
-2022-01-18  Simon Marchi  <simon.marchi@efficios.com>
-
-	bfd/elf64-ppc.c: fix clang -Wbitwise-instead-of-logical warning in ppc64_elf_check_init_fini
-	I see this error with clang-14:
-
-	      CC       elf64-ppc.lo
-	    /home/smarchi/src/binutils-gdb/bfd/elf64-ppc.c:13131:11: error: use of bitwise '&' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
-	      return (check_pasted_section (info, ".init")
-	             ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-	Fix by replacing & with &&.  But given that the check_pasted_section
-	function has side-effects and we want to make sure both calls are made,
-	assign to temporary variables before evaluating the `&&`.
-
-	Change-Id: I849e1b2401bea5f4d8ef3ab9af99ba9e3ef42490
-
-2022-01-18  Alan Modra  <amodra@gmail.com>
-
-	PR28029, debuginfod tests
-	binutils/NEWS says of the change in --process-links semantics:
-	  If other debug section display options are also enabled (eg
-	  --debug-dump=info) then the contents of matching sections in both the main
-	  file and the separate debuginfo file *will* be displayed.  This is because in
-	  most cases the debug section will only be present in one of the files.
-
-	Implying that debug info is dumped without --process-links.  Indeed
-	that appears to be the case for readelf.  This does the same for
-	objdump.
-
-		PR 28029
-		* objdump.c (dump_bfd): Do not exit early when !is_mainfile
-		&& !processlinks, instead just exclude non-debug output.
-		(dump_dwarf): Add is_mainfile parameter and pass to
-		dump_dwarf_section.
-		(dump_dwarf_section): Only display debug sections when
-		!is_mainfile and !process_links.
-
-2022-01-18  Alan Modra  <amodra@gmail.com>
-
-	Check thin archive element file size against archive header
-	Makes it a little less likely for someone to break their thin archives.
-
-		* archive.c (_bfd_get_elt_at_filepos): Check thin archive
-		element file size.
-
-2022-01-18  Alan Modra  <amodra@gmail.com>
-
-	lang_size_relro_segment tidy
-	This function has seen too many minimal change style edits.
-	No functional changes in this patch.
-
-		* ldlang.c (lang_size_relro_segment): Tidy.
-
-2022-01-18  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 DT_RELR
-	PowerPC64 takes a more traditional approach to DT_RELR than x86.  Count
-	relative relocs in check_relocs, allocate space for them and output in
-	the usual places but not doing so when enable_dt_relr.  DT_RELR is
-	sized in the existing ppc stub relaxation machinery, run via the
-	linker's ldemul_after_allocation hook.  DT_RELR is output in the same
-	function that writes ppc stubs, run via ldemul_finish.
-
-	This support should be considered experimental.
-
-	bfd/
-		* elf64-ppc.c (struct ppc_local_dyn_relocs): Renamed from
-		ppc_dyn_relocs.  Add rel_count field.  Update uses.
-		(struct ppc_dyn_relocs): New.  Replace all uses of elf_dyn_relocs.
-		(struct ppc_link_hash_table): Add relr_alloc, relr_count and
-		relr_addr.
-		(ppc64_elf_copy_indirect_symbol): Merge rel_count.
-		(ppc64_elf_check_relocs): Init rel_count for global and local syms.
-		(dec_dynrel_count): Change r_info param to reloc pointer.  Update
-		all callers.  Handle decrementing rel_count.
-		(allocate_got): Don't allocate space for relative relocs when
-		enable_dt_relr.
-		(allocate_dynrelocs): Likewise.
-		(ppc64_elf_size_dynamic_sections): Likewise.  Handle srelrdyn.
-		(ppc_build_one_stub): Don't emit relative relocs on .branch_lt.
-		(compare_relr_address, append_relr_off): New functions.
-		(got_and_plt_relr_for_local_syms, got_and_plt_relr): Likewise.
-		(ppc64_elf_size_stubs): Size .relr.syn.
-		(ppc64_elf_build_stubs): Emit .relr.dyn.
-		(build_global_entry_stubs_and_plt): Don't output relative relocs
-		when enable_dt_relr.
-		(write_plt_relocs_for_local_syms): Likewise.
-		(ppc64_elf_relocate_section): Likewise.
-	binutils/
-		* testsuite/lib/binutils-common.exp (supports_dt_relr): Add
-		powerpc64.
-	ld/
-		* emulparams/elf64ppc.sh: Source dt-relr.sh.
-		* testsuite/ld-elf/dt-relr-2b.d: Adjust for powerpc.
-		* testsuite/ld-elf/dt-relr-2c.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2d.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2e.d: Likewise.
-
-2022-01-18  Alan Modra  <amodra@gmail.com>
-
-	tweak __ehdr_start visibility and flags for check_relocs
-	bfd/
-		* elf-bfd.h (UNDEFWEAK_NO_DYNAMIC_RELOC): Test linker_def.
-	ld/
-		* ldelf.c (ldelf_before_allocation): Don't force __ehdr_start
-		local and hidden here..
-		* ldlang.c (lang_symbol_tweaks): ..do so here instead and set
-		def_regular and linker_def for check_relocs.  New function
-		extracted from lang_process.
-
-2022-01-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-17  Nick Clifton  <nickc@redhat.com>
-
-	Update the config.guess and config.sub files from the master repository and regenerate files.
-
-2022-01-17  Sergey Belyashov  <sergey.belyashov@gmail.com>
-
-	Fix Z80 assembly failure.
-		PR 28762
-		* app.c (do_scrub_chars): Correct handling when the symbol is not 'af'.
-
-2022-01-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/infrun: rename variable and move to more specific scope
-	Move the "started" variable to the scope it's needed, and rename it to
-	"step_over_started".
-
-	Change-Id: I56f3384dbd328f55198063bb855edda10f1492a3
-
-2022-01-17  Jan Beulich  <jbeulich@suse.com>
-
-	x86: adjust struct instr_info field types
-	Now that this lives on the stack, let's have it be a little less
-	wasteful in terms of space. Switch boolean fields to "bool" (also when
-	this doesn't change their size) and also limit the widths of "rex",
-	"rex_used", "op_ad", and "op_index". Do a little bit of re-ordering as
-	well to limit the number of padding holes.
-
-	x86: drop index16 field
-	There's a single use on a generally infrequently taken code path. Put
-	the necessary conditional there instead.
-
-	x86: drop most Intel syntax register name arrays
-	By making use of, in particular, oappend_maybe_intel() there's no need
-	for this redundant set of static data.
-
-	x86: fold variables in memory operand index handling
-	There's no real need for the pseudo-boolean "haveindex" or for separate
-	32-bit / 64-bit index pointers. Fold them into a single "indexes" and
-	set that uniformly to AT&T names, compensating by emitting the register
-	name via oappend_maybe_intel().
-
-	x86: constify disassembler static data
-	Now that the code is intended to be largely thread-safe, we'd better not
-	have any writable static objects.
-
-2022-01-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-16  Joel Brobecker  <brobecker@adacore.com>
-
-	gdb/copyright.py: Do not update gdbsupport/Makefile.in
-	This file is generated, so we should not modify it (any modification
-	we make is going to be undone at the next re-generation anyway).
-
-2022-01-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-14  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.dlang/demangle.exp: update expected output for _D8demangle4testFnZv
-	Since commit ce2d3708bc8b ("Synchronize binutils libiberty sources with
-	gcc version."), I see this failure:
-
-	    demangle _D8demangle4testFnZv^M
-	    demangle.test(typeof(null))^M
-	    (gdb) FAIL: gdb.dlang/demangle.exp: _D8demangle4testFnZv
-
-	The commit imported the commit 0e32a5aa8bc9 ("libiberty: Add support for
-	D `typeof(*null)' types") from the gcc repository.  That commit includes
-	an update to libiberty/testsuite/d-demangle-expected, which updates a
-	test for the exact same mangled name:
-
-	     _D8demangle4testFnZv
-	    -demangle.test(none)
-	    +demangle.test(typeof(null))
-
-	I don't know anything about D, but give that the change was made by Iain
-	Buclaw, the D language maintainer, I trust him on that.
-
-	Fix our test by updating the expected output in the same way.
-
-	Note: it's not really useful to have all these D demangling tests in the
-	GDB testsuite, since there are demangling tests in libiberty.  We should
-	consider removing them, but we first need to make sure that everything
-	that is covered in gdb/testsuite/gdb.dlang/demangle.exp is also covered
-	in libiberty/testsuite/d-demangle-expected.
-
-	Change-Id: If2b290ea8367b8e1e0b90b20d4a6e0bee517952d
-
-2022-01-14  Nils-Christian Kempke  <nils-christian.kempke@intel.com>
-
-	gdb/testsuite: enable __INTEL_LLVM_COMPILER preprocessor in get_compiler_info
-	Intel Next Gen compiler defines preprocessor __INTEL_LLVM_COMPILER and provides
-	version info in __clang_version__ e.g. value: 12.0.0 (icx 2020.10.0.1113).
-
-	gdb/testsuite/ChangeLog:
-	2020-12-07  Abdul Basit Ijaz  <abdul.b.ijaz@intel.com>
-
-		* lib/compiler.c: Add Intel next gen compiler pre-processor check.
-		* lib/compiler.cc: Ditto.
-		* lib/fortran.exp (fortran_main): Check Intel next gen compiler in
-		test_compiler_info.
-
-2022-01-14  Alan Modra  <amodra@gmail.com>
-
-	PR28751 mbind2a / mbind2b regressions on powerpc*-linux
-	include/
-		* bfdlink.h (struct bfd_link_info): Add commonpagesize_is_set.
-	ld/
-		PR 28751
-		* emultempl/elf.em (handle_option): Set commonpagesize_is_set.
-		* ldelf.c (ldelf_after_parse): Don't error when only one of
-		-z max-page-size or -z common-page-size is given, correct the
-		other value to make it sane.
-		* testsuite/ld-elf/elf.exp (mbind2a, mbind2b): Do not pass
-		-z max-page-size.
-
-2022-01-14  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop ymmxmm_mode
-	This enumerator is not used by any table entry.
-
-	x86: share yet more VEX table entries with EVEX decoding
-	On top of prior similar work more opportunities have appeared in the
-	meantime. Note that this also happens to address the prior lack of
-	decoding of EVEX.L'L for VMOV{L,H}P{S,D} and VMOV{LH,HL}PS.
-
-	x86: consistently use scalar_mode for AVX512-FP16 scalar insns
-	For some reason the original AVFX512F insns were not taken as a basis
-	here, causing unnecessary divergence. While not an active issue, it is
-	still relevant to note that OP_XMM() has special treatment of e.g.
-	scalar_mode (marking broadcast as invalid). Such would better be
-	consistent for all sufficiently similar insns.
-
-	x86: record further wrong uses of EVEX.b
-	For one EVEX.W set does not imply EVEX.b is uniformly valid. Reject it
-	for modes which occur for insns allowing for EVEX.W to be set (noticed
-	with VMOV{H,L}PD and VMOVDDUP, and only in AT&T mode, but not checked
-	whether further insns would also have been impacted; I expect e.g.
-	VCMPSD would have had the same issue). And then the present concept of
-	broadcast makes no sense at all when the memory operand of an insn is
-	the destination.
-
-2022-01-14  Jan Beulich  <jbeulich@suse.com>
-
-	x86: reduce AVX512 FP set of insns decoded through vex_w_table[]
-	Like for AVX512-FP16, there's not that many FP insns where going through
-	this table is easier / cheaper than using suitable macros. Utilize %XS
-	and %XD more to eliminate a fair number of table entries.
-
-	While doing this I noticed a few anomalies. Where lines get touched /
-	moved anyway, these are being addressed right here:
-	- vmovshdup used EXx for its 2nd operand, thus displaying seemingly
-	  valid broadcast when EVEX.b is set with a memory operand; use
-	  EXEvexXNoBcst instead just like vmovsldup already does
-	- vmovlhps used EXx for its 3rd operand, when all sibling entries use
-	  EXq; switch to EXq there for consistency (the two differ only for
-	  memory operands)
-
-2022-01-14  Jan Beulich  <jbeulich@suse.com>
-
-	x86: reduce AVX512-FP16 set of insns decoded through vex_w_table[]
-	Like already indicated during review of the original submission, there's
-	really only very few insns where going through this table is easier /
-	cheaper than using suitable macros. Utilize %XH more and introduce
-	similar %XS and %XD (which subsequently can be used for further table
-	size reduction).
-
-	While there also switch to using oappend() in 'XH' macro processing.
-
-2022-01-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-13  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Disable DT_RELR in some -z relro tests
-	Disable DT_RELR in the following -z relro tests which don't expect
-	DT_RELR in linker outputs.
-
-		* testsuite/ld-i386/pr20830.d: Pass $NO_DT_RELR_LDFLAGS to ld.
-		* testsuite/ld-x86-64/pr20830a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830a.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a.d: Likewise.
-		* testsuite/ld-x86-64/pr21038b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c.d: Likewise.
-
-2022-01-13  H.J. Lu  <hjl.tools@gmail.com>
-
-	Reapply libiberty: Pass --plugin to AR and RANLIB
-	Reapply the patch to detect GCC LTO plugin used for libiberty build to
-	support LTO build in libiberty.
-
-		* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
-		(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
-		(configure_deps): Depend on ../config/gcc-plugin.m4.
-		* aclocal.m4: Include ../config/gcc-plugin.m4.
-		* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
-		RANLIB_PLUGIN_OPTION.
-		* configure: Regenerate.
-
-2022-01-13  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Remove the 1-page gap before the RELRO segment
-	The existing RELRO scheme may leave a 1-page gap before the RELRO segment
-	and align the end of the RELRO segment to the page size:
-
-	  [18] .eh_frame    PROGBITS    408fa0 008fa0 005e80 00   A  0   0  8
-	  [19] .init_array  INIT_ARRAY  410de0 00fde0 000008 08  WA  0   0  8
-	  [20] .fini_array  FINI_ARRAY  410de8 00fde8 000008 08  WA  0   0  8
-	  [21] .dynamic     DYNAMIC     410df0 00fdf0 000200 10  WA  7   0  8
-	  [22] .got         PROGBITS    410ff0 00fff0 000010 08  WA  0   0  8
-	  [23] .got.plt     PROGBITS    411000 010000 000048 08  WA  0   0  8
-
-	Instead, we can remove the 1-page gap if the maximum page size >= the
-	maximum section alignment:
-
-	  [18] .eh_frame    PROGBITS    408fa0 008fa0 005e80 00   A  0   0  8
-	  [19] .init_array  INIT_ARRAY  40fde0 00fde0 000008 08  WA  0   0  8
-	  [20] .fini_array  FINI_ARRAY  40fde8 00fde8 000008 08  WA  0   0  8
-	  [21] .dynamic     DYNAMIC     40fdf0 00fdf0 000200 10  WA  7   0  8
-	  [22] .got         PROGBITS    40fff0 00fff0 000010 08  WA  0   0  8
-	  [23] .got.plt     PROGBITS    410000 010000 000048 08  WA  0   0  8
-
-	Because the end of the RELRO segment is always aligned to the page size
-	and may not be moved, the RELRO segment size may be increased:
-
-	  [ 3] .dynstr      STRTAB      000148 000148 000001 00   A  0   0  1
-	  [ 4] .eh_frame    PROGBITS    000150 000150 000000 00   A  0   0  8
-	  [ 5] .init_array  INIT_ARRAY  200150 000150 000010 08  WA  0   0  1
-	  [ 6] .fini_array  FINI_ARRAY  200160 000160 000010 08  WA  0   0  1
-	  [ 7] .jcr         PROGBITS    200170 000170 000008 00  WA  0   0  1
-	  [ 8] .data.rel.ro PROGBITS    200180 000180 000020 00  WA  0   0 16
-	  [ 9] .dynamic     DYNAMIC     2001a0 0001a0 0001c0 10  WA  3   0  8
-	  [10] .got         PROGBITS    200360 000360 0002a8 00  WA  0   0  8
-	  [11] .bss         NOBITS      201000 000608 000840 00  WA  0   0  1
-
-	vs the old section layout:
-
-	  [ 3] .dynstr      STRTAB      000148 000148 000001 00   A  0   0  1
-	  [ 4] .eh_frame    PROGBITS    000150 000150 000000 00   A  0   0  8
-	  [ 5] .init_array  INIT_ARRAY  200b48 000b48 000010 08  WA  0   0  1
-	  [ 6] .fini_array  FINI_ARRAY  200b58 000b58 000010 08  WA  0   0  1
-	  [ 7] .jcr         PROGBITS    200b68 000b68 000008 00  WA  0   0  1
-	  [ 8] .data.rel.ro PROGBITS    200b70 000b70 000020 00  WA  0   0 16
-	  [ 9] .dynamic     DYNAMIC     200b90 000b90 0001c0 10  WA  3   0  8
-	  [10] .got         PROGBITS    200d50 000d50 0002a8 00  WA  0   0  8
-	  [11] .bss         NOBITS      201000 000ff8 000840 00  WA  0   0  1
-
-	But there is no 1-page gap.
-
-		PR ld/28743
-		* ldlang.c (lang_size_relro_segment_1): Remove the 1-page gap
-		before the RELRO segment if the maximum page size >= the maximum
-		section alignment.
-		* testsuite/ld-i386/pr20830.d: Adjusted.
-		* testsuite/ld-s390/gotreloc_64-relro-1.dd: Likewise.
-		* testsuite/ld-x86-64/pr14207.d: Likewise.
-		* testsuite/ld-x86-64/pr18176.d: Likewise.
-		* testsuite/ld-x86-64/pr20830a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830a.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr20830b.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038a.d: Likewise.
-		* testsuite/ld-x86-64/pr21038b-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c-now.d: Likewise.
-		* testsuite/ld-x86-64/pr21038c.d: Likewise.
-
-2022-01-13  Nick Clifton  <nickc@redhat.com>
-
-	Synchronize binutils libiberty sources with gcc version.
-	+2021-12-30  Lancelot SIX  <lsix@lancelotsix.com>
-	+
-	+	* cp-demangle.c (d_clone_suffix): Support digits in clone tag
-	+	names.
-	+	* testsuite/demangle-expected: Check demangling of clone symbols
-	+	with digits in name.
-	+
-	+2021-12-16  H.J. Lu  <hjl.tools@gmail.com>
-	+
-	+	Revert:
-	+	2021-12-16  H.J. Lu  <hjl.tools@gmail.com>
-	+
-	+	* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
-	+	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
-	+	(configure_deps): Depend on ../config/gcc-plugin.m4.
-	+	* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
-	+	RANLIB_PLUGIN_OPTION.
-	+	* aclocal.m4: Regenerated.
-	+	* configure: Likewise.
-	+
-	+2021-12-15  H.J. Lu  <hjl.tools@gmail.com>
-	+
-	+	* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
-	+	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
-	+	(configure_deps): Depend on ../config/gcc-plugin.m4.
-	+	* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
-	+	RANLIB_PLUGIN_OPTION.
-	+	* aclocal.m4: Regenerated.
-	+	* configure: Likewise.
-	+
-	+2021-11-29  Eric Gallager  <egallager@gcc.gnu.org>
-	+
-	+	PR other/103021
-	+	* Makefile.in: Use ETAGS variable in TAGS target.
-	+	* configure: Regenerate.
-	+	* configure.ac: Allow ETAGS variable to be overridden.
-	+
-	+2021-11-29  Andrew Pinski  <apinski@marvell.com>
-	+
-	+	* make-temp-file.c (try_dir): Check to see if the dir
-	+	is actually a directory.
-	+
-	+2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>
-	+
-	+	PR other/102663
-	+	* Makefile.in: Allow dvi-formatted documentation
-	+	to be installed.
-	+
-	+2021-10-17  Lu?s Ferreira  <contact@lsferreira.net>
-	+
-	+	PR d/102618
-	+	* d-demangle.c (dlang_parse_qualified): Handle anonymous
-	+	symbols correctly.
-	+	* testsuite/d-demangle-expected: New tests to cover anonymous
-	+	symbols.
-	+
-	+2021-10-14  Lu?s Ferreira  <contact@lsferreira.net>
-	+
-	+	* testsuite/d-demangle-expected: Add test case for function literals.
-	+
-	+2021-10-14  Lu?s Ferreira  <contact@lsferreira.net>
-	+
-	+	* testsuite/d-demangle-expected: Add test cases for simple special
-	+	mangles.
-	+
-	+2021-10-12  Lu?s Ferreira  <contact@lsferreira.net>
-	+
-	+	* d-demangle.c (dlang_parse_qualified): Remove redudant parenthesis
-	+	around lhs and rhs of assignments.
-	+
-	+2021-10-01  Lu?s Ferreira  <contact@lsferreira.net>
-	+
-	+	* testsuite/d-demangle-expected: Add missing format for new test
-	+
-	+2021-09-23  Lu?s Ferreira  <contact@lsferreira.net>
-	+
-	+	* d-demangle.c (dlang_Type): Validate MANGLED is nonnull.
-	+	* testsuite/d-demangle-expected: New test.
-	+
-	+2021-09-23  Lu?s Ferreira  <contact@lsferreira.net>
-	+
-	+	* d-demangle.c (dlang_symbol_backref): Ensure strlen of
-	+	string is less than length computed by dlang_number.
-	+
-	+2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>
-
-	 	* configure: Regenerate.
-	+	* configure.ac: Do not search for sbrk on Darwin.
-	+	* xmalloc.c: Do not declare sbrk unless it has been found
-	+	by configure.
-	+
-	+2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
-	+
-	+	* d-demangle.c (dlang_identifier): Skip over fake parent manglings.
-	+	* testsuite/d-demangle-expected: Add tests.
-	+
-	+2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
-	+
-	+	* d-demangle.c (dlang_parse_arrayliteral): Add 'info' parameter.
-	+	(dlang_parse_assocarray): Likewise.
-	+	(dlang_parse_structlit): Likewise.
-	+	(dlang_value): Likewise.  Handle function literal symbols.
-	+	(dlang_template_args): Pass 'info' to dlang_value.
-	+	* testsuite/d-demangle-expected: Add new test.
-	+
-	+2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
-	+
-	+	* d-demangle.c (dlang_attributes): Handle typeof(*null).
-	+	(dlang_type): Likewise.  Demangle 'n' as typeof(null).
-	+	* testsuite/d-demangle-expected: Update tests.
-	+
-	+2021-08-23  Iain Sandoe  <iain@sandoe.co.uk>
-	+
-	+	* simple-object-mach-o.c (simple_object_mach_o_write_segment):
-	+	Cast the first argument to set_32 as needed.
-
-	-2021-07-03  Nick Clifton  <nickc@redhat.com>
-	+2021-08-18  Iain Sandoe  <iain@sandoe.co.uk>
-
-	+	* simple-object-mach-o.c (simple_object_mach_o_write_segment):
-	+	Arrange to swap the LTO index tables where needed.
-	 # Please enter the commit message for your changes. Lines starting
-
-2022-01-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't use -Wmissing-prototypes with g++
-	This commit aims to not make use of -Wmissing-prototypes when
-	compiling with g++.
-
-	Use of -Wmissing-prototypes was added with this commit:
-
-	  commit a0761e34f054767de6d6389929d27e9015fb299b
-	  Date:   Wed Mar 11 15:15:12 2020 -0400
-
-	      gdb: enable -Wmissing-prototypes warning
-
-	Because clang can provide helpful warnings with this flag.
-	Unfortunately, g++ doesn't accept this flag, and will give this
-	warning:
-
-	  cc1plus: warning: command line option ‘-Wmissing-prototypes’ is valid for C/ObjC but not for C++
-
-	In theory the fact that this flag is not supported should be detected
-	by the configure check in gdbsupport/warning.m4, but for users of
-	ccache, this check doesn't work due to a long standing ccache issue:
-
-	  https://github.com/ccache/ccache/issues/738
-
-	The ccache problem is that -W... options are reordered on the command
-	line, and so -Wmissing-prototypes is seen before -Werror.  Usually
-	this doesn't matter, but the above warning (about the flag not being
-	valid) is issued before the -Werror flag is processed, and so is not
-	fatal.
-
-	There have been two previous attempts to fix this that I'm aware of.
-	The first is:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-September/182148.html
-
-	In this attempt, instead of just relying on a compile to check if a
-	flag is valid, the proposal was to both compile and link.  As linking
-	doesn't go through ccache, we don't suffer from the argument
-	reordering problem, and the link phase will correctly fail when using
-	-Wmissing-prototypes with g++.  The configure script will then disable
-	the use of this flag.
-
-	This approach was rejected, and the suggestion was to only add the
-	-Wmissing-prototypes flag if we are compiling with gcc.
-
-	The second attempt, attempts this approach, and can be found here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-November/183076.html
-
-	This attempt only adds the -Wmissing-prototypes flag is the value of
-	GCC is not 'yes'.  This feels like it is doing the right thing,
-	unfortunately, the GCC flag is really a 'is gcc like' flag, not a
-	strict, is gcc check.  As such, GCC is set to 'yes' for clang, which
-	would mean the flag was not included for clang or gcc.  The entire
-	point of the original commit was to add this flag for clang, so
-	clearly the second attempt is not sufficient either.
-
-	In this new attempt I have added gdbsupport/compiler-type.m4, this
-	file defines AM_GDB_COMPILER_TYPE.  This macro sets the variable
-	GDB_COMPILER_TYPE to either 'gcc', 'clang', or 'unknown'.  In future
-	the list of values might be extended to cover other compilers, if this
-	is ever useful.
-
-	I've then modified gdbsupport/warning.m4 to only add the problematic
-	-Wmissing-prototypes flag if GDB_COMPILER_TYPE is not 'gcc'.
-
-	I've tested this with both gcc and clang and see the expected results,
-	gcc no longer attempts to use the -Wmissing-prototypes flag, while
-	clang continues to use it.
-
-	When compiling using ccache, I am no longer seeing the warning.
-
-2022-01-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add some extra debug information to attach_command
-	While working on another patch I wanted to add some extra debug
-	information to the attach_command function.  This required me to add a
-	new function to convert the thread_info::state variable to a string.
-
-	The new debug might be useful to others, and the state to string
-	function might be useful in other locations, so I thought I'd merge
-	it.
-
-2022-01-13  Alan Modra  <amodra@gmail.com>
-
-	Re: gas: add visibility support using GNU syntax on XCOFF
-	tc-ppc.c: In function 'ppc_comm':
-	tc-ppc.c:4560:40: error: 'visibility' may be used uninitialized in this function [-Werror=maybe-uninitialized]
-
-	With that fixed we hit lots of segfaults in the ld testsuite.
-
-		PR 22085
-	bfd/
-		* xcofflink.c (xcoff_link_input_bfd): Don't segfault on NULL
-		sym_hash.
-	gas/
-		* config/tc-ppc.c (ppc_comm): Init visibility.
-
-2022-01-13  Alan Modra  <amodra@gmail.com>
-
-	dt-relr.exp --no-as-needed
-	Otherwise the very simple test may not be linked with libc.so at all,
-	and thus correctly have no version reference added.  Causing failure
-	of the dt-relr-glibc-1b.so test.
-
-		* testsuite/ld-elf/dt-relr.exp: Link with --no-as-needed.
-
-2022-01-13  Alan Modra  <amodra@gmail.com>
-
-	Correct .relr.dyn nocombreloc script
-		* scripttempl/elf.sc (.relr.dyn): Don't depend on $COMBRELOC.
-
-2022-01-13  Alan Modra  <amodra@gmail.com>
-
-	testsuite supports_dt_relr
-	Tidy, and fix "FAIL: Build dt-relr-glibc-1b.so" on all non-x86
-	linux targets.
-
-	binutils/
-		* binutils-common.exp (supports_dt_relr): New proc.
-	ld/
-		* testsuite/config/default.exp (DT_RELR_LDFLAGS, NO_DT_RELR_LDFLAGS),
-		(DT_RELR_CC_LDFLAGS, NO_DT_RELR_CC_LDFLAGS): Use supports_dt_relr.
-		* testsuite/ld-elf/dt-relr.exp: Don't run unless supports_dt_relr.
-		* testsuite/ld-elf/dt-relr-1a.d: Likewise.
-		* testsuite/ld-elf/dt-relr-1b.d: Likewise.
-		* testsuite/ld-elf/dt-relr-1c.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2a.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2b.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2c.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2d.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2e.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2f.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2g.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2h.d: Likewise.
-		* testsuite/ld-elf/dt-relr-3a.d: Likewise.
-		* testsuite/ld-elf/dt-relr-3b.d: Likewise.
-
-2022-01-13  Alan Modra  <amodra@gmail.com>
-
-	Don't use C++ comments in assembly
-	It might seem to work, but only if '/' is a start of comment char.
-
-		* testsuite/ld-elf/dt-relr-1.s: Use # for comment.
-		* testsuite/ld-elf/dt-relr-2.s: Likewise.
-		* testsuite/ld-elf/dt-relr-3.s: Likewise.
-
-2022-01-13  Alan Modra  <amodra@gmail.com>
-
-	Move DT_RELR tag setting to elflink.c
-	This makes the code setting DT_RELR tags generally available.  Many
-	targets will be able to use the defaults.  Those that can't should set
-	up sh_entsize for .relr.dyn output section before reaching the dynamic
-	tag code in bfd_elf_final_link.
-
-		* elflink.c (bfd_elf_final_link): Set up DT_RELR tags and sh_entsize.
-		* elfxx-x86.c (_bfd_x86_elf_finish_dynamic_sections): Don't do any
-		of that here.
-
-2022-01-13  Alan Modra  <amodra@gmail.com>
-
-	Re: Set SEC_ELF_REVERSE_COPY earlier
-	Let's not rely on .init/.fini having relocs for the size sanity check.
-	This is mainly to squash reports of "my fuzzed object made ld hang".
-
-2022-01-13  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: make string[] type as char in gdb.base/charset.c
-	This reverts the commit ff656e2e1cb1 ("gdb: testsuite: fix failed
-	testcases in gdb.base/charset.exp").
-
-	The original test code has no problem. On an architecture where
-	char is signed, then both 'A' and ebcdic_us_string[7] will yield
-	-63, which makes the equality true. On an architecture where char
-	is unsigned, then both 'A' and ebcdic_us_string[7] will yield 193,
-	which also makes the equality true.
-
-	The test cases only failed on LoongArch. The default type of char
-	is signed char on LoongArch, like x86-64. But when use gdb print
-	command on LoongArch, the default type of char is unsigned char,
-	this is wrong, I will look into it later, sorry for that.
-
-	On LoongArch:
-
-	  $ cat test_char.c
-	  #include <stdio.h>
-
-	  int main()
-	  {
-	          char c1 = 193;
-	          unsigned char c2 = 193;
-
-	          printf("%d\n", c1);
-	          printf("%d\n", c1 == c2);
-
-	          return 0;
-	  }
-	  $ gcc test_char.c -o test_char
-	  $ ./test_char
-	  -63
-	  0
-
-	  (gdb) set target-charset EBCDIC-US
-	  (gdb) print 'A'
-	  $1 = 193 'A'
-	  (gdb) print /c 'A'
-	  $2 = 193 'A'
-	  (gdb) print /u 'A'
-	  $3 = 193
-	  (gdb) print /d 'A'
-	  $4 = -63
-	  (gdb) print /x 'A'
-	  $5 = 0xc1
-
-2022-01-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-12  Carl Love  <cel@us.ibm.com>
-
-	gdb Power 9 add test for HW watchpoint support.
-	The Power 9 processor revision 2.2 has HW watchpoint support disabled due
-	to a HW bug.  The support is fixed in Power 9 processor revision 2.3.  This
-	patch add a test to lib/gdb.exp for Power to determine if the processor
-	supports HW watchpoints or not.  If the Power processor doesn't support HW
-	watchpoints the proceedure skip_hw_watchpoint_tests will return 1 to
-	disable the various HW watchpoint tests.
-
-	The patch has been tested on Power 9, processor revesions 2.2 and 2.3.  The
-	patch has also been tested on Power 10.  No regression test failures were
-	found.
-
-2022-01-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add gdb.host_charset function
-	We already have gdb.target_charset and gdb.target_wide_charset.  This
-	commit adds gdb.host_charset along the same lines.
-
-2022-01-12  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb/testsuite: fix gdb.python/py-events.exp for finding process id
-	When executed with --target_board=native-extended-gdbserver, the
-	gdb.python/py-events.exp test errors out with
-
-	  ERROR: tcl error sourcing /path/to/gdb/testsuite/gdb.python/py-events.exp.
-	  ERROR: can't read "process_id": no such variable
-	      while executing
-	  "lappend expected "ptid: \\($process_id, $process_id, 0\\)" "address: $addr""
-	      (file "/path/to/gdb/testsuite/gdb.python/py-events.exp" line 103)
-	      invoked from within
-	  "source /path/to/gdb/testsuite/gdb.python/py-events.exp"
-	      ("uplevel" body line 1)
-	      invoked from within
-	  "uplevel #0 source /path/to/gdb/testsuite/gdb.python/py-events.exp"
-	      invoked from within
-	  "catch "uplevel #0 source $test_file_name""
-
-	There are multiple problems around this:
-
-	1. The process_id variable is not initialized to a default value.
-
-	2. The test attempts to find the PID of the current thread, but the
-	   regexp that it uses is not tailored for the output printed by the
-	   remote target.
-
-	3. The test uses "info threads" to find the current thread PID.
-	   Using the "thread" command instead is simpler.
-
-	Fix these problems.
-
-2022-01-12  Tom Tromey  <tromey@adacore.com>
-
-	Don't mention "serial" in target remote description
-	PR remote/9177 points out that "info files" mentions "serial" a couple
-	of times:
-
-	    Remote serial target in gdb-specific protocol:
-	    Debugging a target over a serial line.
-
-	However, often the remote target isn't really a serial connection.
-
-	It seems to me that this text could be a bit clearer; and furthermore
-	since "info files" prints the target's long description,
-	remote_target::files_info doesn't really add much and can simply be
-	removed.
-
-	Regression tested on x86-64 Fedora 34.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=9177
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Add glibc dependency for DT_RELR
-	When DT_RELR is enabled, to avoid random run-time crash with older glibc
-	binaries without DT_RELR support, add a GLIBC_ABI_DT_RELR symbol version,
-	which is provided by glibc with DT_RELR support, dependency on the shared
-	C library if it provides a GLIBC_2.XX symbol version.
-
-	bfd/
-
-		* elflink.c (elf_link_add_dt_relr_dependency): New function.
-		(bfd_elf_size_dynamic_sections): Call
-		elf_link_add_dt_relr_dependency if DT_RELR is enabled.
-
-	ld/
-
-		* ld.texi: Mention GLIBC_ABI_DT_RELR in -z pack-relative-relocs
-		entry.
-		* testsuite/ld-elf/dt-relr-glibc-1.c: New file.
-		* testsuite/ld-elf/dt-relr-glibc-1a.rd: Likewise.
-		* testsuite/ld-elf/dt-relr-glibc-1b.rd: Likewise.
-		* testsuite/ld-elf/dt-relr.exp: Likewise.
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Add simple DT_RELR tests
-		* testsuite/ld-elf/dt-relr-1.s: New file.
-		* testsuite/ld-elf/dt-relr-1a.d: Likewise.
-		* testsuite/ld-elf/dt-relr-1b.d: Likewise.
-		* testsuite/ld-elf/dt-relr-1c.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2.s: Likewise.
-		* testsuite/ld-elf/dt-relr-2a.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2b.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2c.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2d.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2e.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2f.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2g.d: Likewise.
-		* testsuite/ld-elf/dt-relr-2h.d: Likewise.
-		* testsuite/ld-elf/dt-relr-3.s: Likewise.
-		* testsuite/ld-elf/dt-relr-3a.d: Likewise.
-		* testsuite/ld-elf/dt-relr-3b.d: Likewise.
-		* testsuite/ld-i386/dt-relr-1.s: Likewise.
-		* testsuite/ld-i386/dt-relr-1a.d: Likewise.
-		* testsuite/ld-i386/dt-relr-1b.d: Likewise.
-		* testsuite/ld-x86-64/dt-relr-1a-x32.d: Likewise.
-		* testsuite/ld-x86-64/dt-relr-1a.d: Likewise.
-		* testsuite/ld-x86-64/dt-relr-1b-x32.d: Likewise.
-		* testsuite/ld-x86-64/dt-relr-1b.d: Likewise.
-		* testsuite/ld-x86-64/dt-relr-1.s: Likewise.
-		* testsuite/ld-i386/i386.exp: Run dt-relr-1a and dt-relr-1b.
-		* testsuite/ld-x86-64/x86-64.exp: Run dt-relr-1a, dt-relr-1a-x32
-		dt-relr-1b and dt-relr-1b-x32.
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Add DT_RELR support
-	DT_RELR is implemented with linker relaxation:
-
-	1. During linker relaxation, we scan input relocations with the same
-	logic in relocate_section to determine if a relative relocation should
-	be generated and save the relative relocation candidate information for
-	sizing the DT_RELR section later after all symbols addresses can be
-	determined.  For these relative relocations which can't be placed in
-	the DT_RELR section, they will be placed in the rela.dyn/rel.dyn
-	section.
-	2. When DT_RELR is enabled, _bfd_elf_map_sections_to_segments calls a
-	backend function to size the DT_RELR section which will compute the
-	DT_RELR section size and tell ldelf_map_segments to layout sections
-	again when the DT_RELR section size has been increased.
-	3. After regular symbol processing is finished, bfd_elf_final_link calls
-	a backend function to finish the DT_RELR section.
-
-		* elf32-i386.c (elf_i386_relocate_section): Don't generate
-		relative relocation when DT_RELR is enabled.
-		(elf_i386_finish_dynamic_symbol): Likewise.
-		* elf64-x86-64.c (elf_x86_64_relocate_section): Don't generate
-		relative relocation when DT_RELR is enabled.
-		(elf_x86_64_finish_dynamic_symbol): Likewise.
-		* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize
-		relative_r_type, relative_r_name, elf_append_reloc,
-		elf_write_addend and elf_write_addend_in_got.
-		(elf_x86_relative_reloc_record_add): New function.
-		(_bfd_x86_elf_link_relax_section): Likewise.
-		(elf64_dt_relr_bitmap_add): Likewise.
-		(elf32_dt_relr_bitmap_add): Likewise.
-		(_bfd_elf32_write_addend): Likewise.
-		(_bfd_elf64_write_addend): Likewise.
-		(elf_x86_size_or_finish_relative_reloc): Likewise.
-		(elf_x86_compute_dl_relr_bitmap): Likewise.
-		(elf_x86_write_dl_relr_bitmap): Likewise.
-		(elf_x86_relative_reloc_compare ): Likewise.
-		(_bfd_elf_x86_size_relative_relocs): Likewise.
-		(_bfd_elf_x86_finish_relative_relocs): Likewise.
-		(_bfd_x86_elf_size_dynamic_sections): Skip the .relr.dyn section.
-		(_bfd_x86_elf_finish_dynamic_sections): Convert 3 spare dynamic
-		tags to DT_RELR, DT_RELRSZ and for compact relative relocation.
-		* elfxx-x86.h (X86_64_GOT_TYPE_P): New.
-		(I386_GOT_TYPE_P): Likewise.
-		(X86_GOT_TYPE_P): Likewise.
-		(X86_64_RELATIVE_RELOC_TYPE_P): Likewise.
-		(I386_RELATIVE_RELOC_TYPE_P): Likewise.
-		(X86_RELATIVE_RELOC_TYPE_P): Likewise.
-		(X86_LOCAL_GOT_RELATIVE_RELOC_P): Likewise.
-		(I386_PCREL_TYPE_P): Likewise.
-		(X86_64_PCREL_TYPE_P): Likewise.
-		(X86_64_NEED_DYNAMIC_RELOC_TYPE_P): Rewrite.
-		(I386_NEED_DYNAMIC_RELOC_TYPE_P): Likewise.
-		(GENERATE_DYNAMIC_RELOCATION_P): Also check rel_from_abs.
-		(elf_x86_link_hash_entry): Add got_relative_reloc_done.
-		(elf_x86_relative_reloc_record): New.
-		(elf_x86_relative_reloc_data): Likewise.
-		(elf_dt_relr_bitmap): Likewise.
-		(elf_x86_link_hash_table): Add dt_relr_bitmap, relative_reloc,
-		unaligned_relative_reloc, relative_r_type, relative_r_name,
-		elf_append_reloc, elf_write_addend, elf_write_addend_in_got and
-		relative_reloc_done.
-		(elf_x86_relative_reloc_done): New.
-		(relative_reloc_packed): Likewise.
-		(_bfd_x86_elf_link_relax_section): Likewise.
-		(_bfd_elf_x86_size_relative_relocs): Likewise.
-		(_bfd_elf_x86_finish_relative_relocs): Likewise.
-		(_bfd_elf32_write_addend): Likewise.
-		(_bfd_elf64_write_addend): Likewise.
-		(bfd_elf32_bfd_relax_section): Likewise.
-		(bfd_elf64_bfd_relax_section): Likewise.
-		(elf_backend_size_relative_relocs): Likewise.
-		(elf_backend_finish_relative_relocs): Likewise.
-		(elf_x86_allocate_local_got_info): Also allocate
-		relative_reloc_done.
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Support DT_RELR in linker tests
-	Allow eabling and disabling DT_RELR in linker tests.  Disable DT_RELR in
-	linker tests which don't expect DT_RELR in linker outputs.
-
-	binutils/
-
-		* testsuite/lib/binutils-common.exp (run_dump_test): Make
-		DT_RELR_LDFLAGS and NO_DT_RELR_LDFLAGS global.
-
-	ld/
-
-		* testsuite/config/default.exp (DT_RELR_LDFLAGS): New.
-		(DT_RELR_CC_LDFLAGS): Likewise.
-		(NO_DT_RELR_LDFLAGS): Likewise.
-		(NO_DT_RELR_CC_LDFLAGS): Likewise.
-		* testsuite/ld-elf/shared.exp: Pass $NO_DT_RELR_LDFLAGS to
-		linker for some tests.
-		* testsuite/ld-i386/export-class.exp: Likewise.
-		* testsuite/ld-i386/i386.exp: Likewise.
-		* testsuite/ld-i386/ibt-plt-2a.d: Pass $NO_DT_RELR_LDFLAGS to
-		linker.
-		* testsuite/ld-i386/ibt-plt-3a.d: Likewise.
-		* testsuite/ld-i386/ibt-plt-3c.d: Likewise.
-		* testsuite/ld-i386/pr26869.d: Likewise.
-		* testsuite/ld-i386/report-reloc-1.d: Likewise.
-		* testsuite/ld-ifunc/ifunc-2-i386-now.d: Likewise.
-		* testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise.
-		* testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d: Likewise.
-		* testsuite/ld-ifunc/ifunc-2-x86-64-now.d: Likewise.
-		* testsuite/ld-ifunc/pr17154-x86-64.d: Likewise.
-		* testsuite/ld-x86-64/bnd-branch-1-now.d: Likewise.
-		* testsuite/ld-x86-64/bnd-ifunc-1-now.d: Likewise.
-		* testsuite/ld-x86-64/bnd-ifunc-2-now.d: Likewise.
-		* testsuite/ld-x86-64/bnd-ifunc-2.d: Likewise.
-		* testsuite/ld-x86-64/bnd-plt-1-now.d: Likewise.
-		* testsuite/ld-x86-64/bnd-plt-1.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-2a-x32.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-2a.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-3a-x32.d: Likewise.
-		* testsuite/ld-x86-64/ibt-plt-3a.d: Likewise.
-		* testsuite/ld-x86-64/ilp32-4.d: Likewise.
-		* testsuite/ld-x86-64/load1c.d: Likewise.
-		* testsuite/ld-x86-64/load1d.d: Likewise.
-		* testsuite/ld-x86-64/pr13082-2b.d: Likewise.
-		* testsuite/ld-x86-64/pr14207.d: Likewise.
-		* testsuite/ld-x86-64/pr18176.d: Likewise.
-		* testsuite/ld-x86-64/pr19162.d: Likewise.
-		* testsuite/ld-x86-64/pr19636-2d.d: Likewise.
-		* testsuite/ld-x86-64/pr19636-2l.d: Likewise.
-		* testsuite/ld-x86-64/pr20253-1d.d: Likewise.
-		* testsuite/ld-x86-64/pr20253-1f.d: Likewise.
-		* testsuite/ld-x86-64/pr20253-1j.d: Likewise.
-		* testsuite/ld-x86-64/pr20253-1l.d: Likewise.
-		* testsuite/ld-x86-64/report-reloc-1-x32.d: Likewise.
-		* testsuite/ld-x86-64/report-reloc-1.d: Likewise.
-		* testsuite/ld-x86-64/export-class.exp (x86_64_export_class_test):
-		Pass $NO_DT_RELR_LDFLAGS to linker.
-		* testsuite/ld-x86-64/x86-64.exp: Pass $NO_DT_RELR_LDFLAGS to
-		linker for some tests.
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Add size_relative_relocs and finish_relative_relocs
-	On some targets, the DT_RELR section size can be computed only after all
-	symbols addresses can be determined.  Set the preliminary DT_RELR section
-	size before mapping sections to segments and set the final DT_RELR section
-	size after regular symbol processing is done.
-
-		* elf-bfd.h (elf_backend_data): Add size_relative_relocs and
-		finish_relative_relocs.
-		* elf.c (_bfd_elf_map_sections_to_segments): Call
-		size_relative_relocs if DT_RELR is enabled.
-		* elflink.c (bfd_elf_final_link): Call finish_relative_relocs
-		after regular symbol processing is finished if DT_RELR is enabled.
-		* elfxx-target.h (elf_backend_size_relative_relocs): New.
-		(elf_backend_finish_relative_relocs): Likewise.
-		(elfNN_bed): Add elf_backend_size_relative_relocs and
-		elf_backend_finish_relative_relocs.
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Initial DT_RELR support
-	Add a -z pack-relative-relocs option to enable DT_RELR and create a
-	relr.dyn section for DT_RELR.  DT_RELR is implemented with the linker
-	relaxation infrastructure, but it doesn't require the --relax option
-	enabled.  -z pack-relative-relocs implies -z combreloc.  -z nocombreloc
-	implies -z nopack-relative-relocs.
-
-	-z pack-relative-relocs is chosen over the similar option in lld,
-	--pack-dyn-relocs=relr, to implement a glibc binary lockout mechanism
-	with a special glibc version symbol, to avoid random crashes of DT_RELR
-	binaries with the existing glibc binaries.
-
-	bfd/
-
-		* elf-bfd.h (elf_link_hash_table): Add srelrdyn.
-		* elflink.c (_bfd_elf_link_create_dynamic_sections): Create a
-		.relr.dyn section for DT_RELR.
-
-	include/
-
-		* bfdlink.h (bfd_link_info): Add enable_dt_relr.
-
-	ld/
-
-		* News: Mention -z pack-relative-relocs and
-		-z nopack-relative-relocs.
-		* ld.texi: Document -z pack-relative-relocs and
-		-z nopack-relative-relocs.
-		* ldelf.c (ldelf_after_parse): Disable DT_RELR if not building
-		PIE nor shared library.  Add 3 spare dynamic tags for DT_RELR,
-		DT_RELRSZ and DT_RELRENT.
-		* ldlang.c (lang_relax_sections): Also enable relaxation if
-		DT_RELR is enabled.
-		* emulparams/elf32_x86_64.sh: Source dt-relr.sh.
-		* emulparams/elf_i386.sh: Likewise.
-		* emulparams/elf_x86_64.sh: Likewise.
-		* emulparams/dt-relr.sh: New file.
-		* scripttempl/elf.sc: Support .relr.dyn.
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Pass need_layout to _bfd_elf_map_sections_to_segments
-	On some targets, the DT_RELR section size can be computed only after all
-	symbols addresses can be determined.  Update ldelf_map_segments to pass
-	need_layout to _bfd_elf_map_sections_to_segments which will size DT_RELR
-	section and set need_layout to true if the DT_RELR section size is changed.
-
-	bfd/
-
-		* elf-bfd.h (_bfd_elf_map_sections_to_segments): Add a bool
-		pointer argument.
-		* elf.c (_bfd_elf_map_sections_to_segments): Add a bool pointer
-		argument to indicate if section layout needs update.
-		(assign_file_positions_for_load_sections): Pass NULL to
-		_bfd_elf_map_sections_to_segments.
-		* elflink.c (_bfd_elf_strip_zero_sized_dynamic_sections): Pass
-		NULL to _bfd_elf_map_sections_to_segments.
-
-	ld/
-
-		* ldelfgen.c (ldelf_map_segments): Pass &need_layout to
-		_bfd_elf_map_sections_to_segments.
-
-2022-01-12  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Add .relr.dyn to special_sections_r
-		* elf.c (special_sections_r): Add .relr.dyn.
-
-2022-01-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add 'maint set/show gnu-source-highlight enabled' command
-	In a later commit I want to address an issue with the Python pygments
-	based code styling solution.  As this approach is only used when the
-	GNU Source Highlight library is not available, testing bugs in this
-	area can be annoying, as it requires GDB to be rebuilt with use of GNU
-	Source Highlight disabled.
-
-	This commit adds a pair of new maintenance commands:
-
-	  maintenance set gnu-source-highlight enabled on|off
-	  maintenance show gnu-source-highlight enabled
-
-	these commands can be used to disable use of the GNU Source Highlight
-	library, allowing me, in a later commit, to easily test bugs that
-	would otherwise be masked by GNU Source Highlight being used.
-
-	I made this a maintenance command, rather than a general purpose
-	command, as it didn't seem like this was something a general user
-	would need to adjust.  We can always convert the maintenance command
-	to a general command later if needed.
-
-	There's no test for this here, but this feature will be used in a
-	later commit.
-
-2022-01-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: erase items from the source_cache::m_offset_cache
-	The source_cache class has two member variables m_source_map, which
-	stores the file contents, and m_offset_cache, which stores offsets
-	into the file contents.
-
-	As source files are read the contents of the file, as well as the
-	offset data, are stored in the cache using these two member variables.
-
-	Whenever GDB needs either the files contents, or the offset data,
-	source_cache::ensure is called.  This function looks for the file in
-	m_source_map, and if it's found then this implies the file is also in
-	m_offset_cache, and we're done.
-
-	If the file is not in m_source_map then GDB calls
-	source_cache::get_plain_source_lines to open the file and read its
-	contents.  ::get_plain_source_lines also calculates the offset data,
-	which is then inserted into m_offset_cache.
-
-	Back in ::ensure, the file contents are added into m_source_map.  And
-	finally, if m_source_map contains more than MAX_ENTRIES, an entry is
-	removed from m_source_map.
-
-	The problem is entries are not removed from m_offset_cache at the same
-	time.
-
-	This means that if a program contains enough source files, GDB will
-	hold at most MAX_ENTRIES cached source file contents, but can contain
-	offsets data for every source file.
-
-	Now, the offsets data is going to be smaller than the cached file
-	contents, so maybe there's no harm here.  But, when we reload the file
-	contents we always recalculate the offsets data.  And, when we
-	::get_line_charpos asking for offset data we still call ::ensure which
-	will ends up loading and caching the file contents.
-
-	So, given the current code does the work of reloading the offset data
-	anyway, we may as well save memory by capping m_offset_cache to
-	MAX_ENTRIES just like we do m_source_map.
-
-	That's what this commit does.
-
-	There should be no user visible changes after this commit, except for
-	ever so slightly lower memory usage in some cases.
-
-2022-01-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: new 'maint flush source-cache' command
-	This commit adds a new 'maint flush source-cache' command, this
-	flushes the cache of source file contents.
-
-	After flushing GDB is forced to reread source files the next time any
-	source lines are to be displayed.
-
-	I've added a test for this new feature.  The test is a little weird,
-	in that it modifies a source file after compilation, and makes use of
-	the cache flush so that the changes show up when listing the source
-	file.  I'm not sure when such a situation would ever crop up in real
-	life, but maybe we can imagine such cases.
-
-	In reality, this command is useful for testing the syntax highlighting
-	within GDB, we can adjust the syntax highlighting settings, flush the
-	cache, and then get the file contents re-highlighted using the new
-	settings.
-
-2022-01-12  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: rename lin-lwp to linux-nat in set/show debug
-	Rename 'set debug lin-lwp' to 'set debug linux-nat' and 'show debug
-	lin-lwp' to 'show debug linux-nat'.
-
-	I've updated the documentation and help text to match, as well as
-	making it clear that the debug that is coming out relates to all
-	aspects of Linux native inferior support, not just the LWP aspect of
-	it.
-
-	The boundary between general "native" target debug, and the lwp
-	specific part of that debug was always a little blurry, but the actual
-	debug variable inside GDB is debug_linux_nat, and the print routine
-	linux_nat_debug_printf, is used throughout the linux-nat.c file, not
-	just for lwp related debug, so the new name seems to make more sense.
-
-2022-01-12  Clément Chigot  <clement.chigot@atos.net>
-
-	ld: add hidden and internal visibility support for XCOFF
-	This patch adds a primary support for hidden and internal visibility in
-	GNU linker for XCOFF format.
-	The protected visibility isn't yet supported.
-
-	PR 22085
-
-	bfd/ChangeLog:
-
-		* xcofflink.c (xcoff_dynamic_definition_p): Add hidden
-		  and internal visibility support.
-		(xcoff_link_add_symbols): Likewise.
-		(xcoff_auto_export_p): Likewise.
-		(bfd_xcoff_export_symbol): Likewise.
-		(xcoff_link_input_bfd): Likewise.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-vsb/main.c: Adapt for XCOFF.
-		* testsuite/ld-vsb/sh1.c: Likewse.
-		* testsuite/ld-vsb/vsb.exp: Likewise.
-		* testsuite/ld-vsb/visibility-1-xcoff-32.d: New test.
-		* testsuite/ld-vsb/visibility-1-xcoff-64.d: New test.
-		* testsuite/ld-vsb/visibility-2-xcoff-32.d: New test.
-		* testsuite/ld-vsb/visibility-2-xcoff-64.d: New test.
-		* testsuite/ld-vsb/xcoffvsb.dat: New test.
-
-2022-01-12  Clément Chigot  <clement.chigot@atos.net>
-
-	ld/testsuite: prepare ld-elfvsb to support XCOFF
-	A following patch will add visibility support in ld for XCOFF. Thus,
-	ld-elfvsb is renamed ld-vsb and a suffix is added to files targeting only
-	ELF format.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-elfvsb: rename as ld-vsb.
-		* testsuite/ld-elfvsb/hidden0.d: move to ld-vsb and rename with
-		  suffix -elf.d.
-		* testsuite/ld-elfvsb/hidden1.d: Likewise.
-		* testsuite/ld-elfvsb/hidden2.d: Likewise.
-		* testsuite/ld-elfvsb/internal0.d: Likewise.
-		* testsuite/ld-elfvsb/internal1.d: Likewise.
-		* testsuite/ld-elfvsb/protected0.d: Likewise.
-		* testsuite/ld-elfvsb/protected1.d: Likewise.
-
-2022-01-12  Clément Chigot  <clement.chigot@atos.net>
-
-	gas: add visibility support using GNU syntax on XCOFF
-	In order to ease port of GNU assembly code and especially ld testsuite,
-	this patch allows XCOFF to accept the usual GNU syntax for visibility.
-
-	PR 22085
-
-	gas/ChangeLog:
-
-		* config/tc-ppc.c (ppc_GNU_visibility): New function.
-		* testsuite/gas/ppc/aix.exp: Add new tests.
-		* testsuite/gas/ppc/xcoff-visibility-2-32.d: New test.
-		* testsuite/gas/ppc/xcoff-visibility-2-64.d: New test.
-		* testsuite/gas/ppc/xcoff-visibility-2.s: New test.
-
-2022-01-12  Clément Chigot  <clement.chigot@atos.net>
-
-	gas: add visibility support for XCOFF
-	XCOFF assembly defines the visibility using an additional argument
-	on several pseudo-ops: .globl, .weak, .extern and .comm.
-	This implies that .globl and .weak syntax is different than the
-	usual GNU syntax. But we want to provide compatibility with AIX
-	assembler, especially because GCC is generating the visibility
-	using this XCOFF syntax.
-
-	PR 22085
-
-	bfd/ChangeLog:
-
-	        * coffcode.h (coff_write_object_contents): Change XCOFF header
-	        vstamp field to 2.
-	        * coffgen.c (coff_print_symbol): Increase the size for n_type.
-
-	gas/ChangeLog:
-
-	        * config/tc-ppc.c (ppc_xcoff_get_visibility): New function.
-	        (ppc_globl): New function.
-	        (ppc_weak): New function.
-	        (ppc_comm): Add visibility field support.
-	        (ppc_extern): Likewise.
-	        * testsuite/gas/all/cofftag.d: Adjust to new n_type size
-	        providing by objdump.
-	        * testsuite/gas/ppc/test1xcoff32.d: Likewise.
-	        * testsuite/gas/ppc/aix.exp: Add new tests.
-	        * testsuite/gas/ppc/xcoff-visibility-1-32.d: New test.
-	        * testsuite/gas/ppc/xcoff-visibility-1-64.d: New test.
-	        * testsuite/gas/ppc/xcoff-visibility-1.s: New test.
-
-	include/ChangeLog:
-
-	        * coff/internal.h (SYM_V_INTERNAL, SYM_V_HIDDEN,
-	        SYM_V_PROTECTED, SYM_V_EXPORTED, SYM_V_MASK): New defines.
-	        * coff/xcoff.h (struct xcoff_link_hash_entry): Add visibility
-	        field.
-
-	ld/ChangeLog:
-
-	        * testsuite/ld-pe/pr19803.d: Adjust to new n_type size
-	        providing by objdump.
-
-2022-01-12  Hans-Peter Nilsson  <hp@axis.com>
-
-	objdump, readelf: Emit "CU:" format only when wide output is requested
-	As pre-approved by Alan in
-	https://sourceware.org/pipermail/binutils/2021-September/118019.html
-	and I believe people have run into getting testsuite failures for
-	test-environments with "long" directory names, at least once more
-	since that time.  Enough.  I grepped the gas, binutils and ld
-	testsuites for "CU:" to catch target-specific occurrences, but I
-	noticed none.  I chose to remove "CU:" on the objdump tests instead of
-	changing options to get the wide format, so as to keep the name of the
-	test consistent with actual options; but added it to the readelf
-	options for the gas test as I believe the "CU:" format is preferable.
-
-	Tested for cris-elf and native x86_64-pc-linux-gnu.
-
-	binutils:
-		* dwarf.c (display_debug_lines_decoded): Don't check the
-		string length of the directory, instead emit the "CU: dir/name"
-		format only if wide output is requested.
-		* testsuite/binutils-all/dw5.W, testsuite/binutils-all/objdump.WL:
-		Adjust accordingly.
-
-	gas:
-		* testsuite/gas/elf/dwarf-5-loc0.d: Add -W to readelf options.
-
-2022-01-12  Alan Modra  <amodra@gmail.com>
-
-	Set SEC_ELF_REVERSE_COPY earlier
-	For the sake of DT_RELR.
-
-	bfd/
-		* elflink.c (elf_link_input_bfd): Don't set SEC_ELF_REVERSE_COPY
-		here.  Move sanity checks to reverse copying code.
-	ld/
-		* ldlang.c (lang_add_section): Set SEC_ELF_REVERSE_COPY for
-		.ctors/.dtors in .init_array/.fini_array.
-
-2022-01-12  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: fix wrong comment in gdb.base/charset.c
-	In gdb/testsuite/gdb.base/charset.c, use "IBM1047" instead of "EBCDIC"
-	to fix the wrong comment.
-
-2022-01-12  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: fix failed testcases in gdb.base/charset.exp
-	In gdb/testsuite/gdb.base/charset.c, the last argument is greater than 127
-	when call fill_run() in EBCDIC-US and IBM1047, but the type of string[] is
-	char, this will change the value due to sign extension.
-
-	For example, ebcdic_us_string[7] will be -63 instead of the original 193 in
-	EBCDIC-US.
-
-	Make the type of string[] as unsigned char to fix the following six failed
-	testcases:
-
-	  $ grep FAIL gdb/testsuite/gdb.sum
-	  FAIL: gdb.base/charset.exp: check value of parsed character literal in EBCDIC-US
-	  FAIL: gdb.base/charset.exp: check value of parsed string literal in EBCDIC-US
-	  FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in EBCDIC-US
-	  FAIL: gdb.base/charset.exp: check value of parsed character literal in IBM1047
-	  FAIL: gdb.base/charset.exp: check value of parsed string literal in IBM1047
-	  FAIL: gdb.base/charset.exp: check value of escape that doesn't exist in IBM1047
-
-2022-01-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-11  Fangrui Song  <maskray@google.com>
-
-	ar: Add --thin for creating thin archives
-	In many ar implementations (FreeBSD, elfutils, etc), -T has the X/Open
-	System Interface specified semantics. Therefore -T for thin archives is
-	not recommended for portability. -T is deprecated without diagnostics.
-
-	    PR binutils/28759
-	    * ar.c (long_options): Add --thin.
-	    (usage) Add --thin. Deprecate -T without diagnostics.
-	    * doc/binutils.texi: Add doc.
-	    * NEWS: Mention --thin.
-	    * binutils/testsuite/binutils-all/ar.exp: Add tests.
-
-2022-01-11  Martin Storsj  <martin@martin.st>
-
-	Fix multiple problems with DLL generation.
-	ld	* pe-dll.c (make_head): Prefix the symbol name with the dll name.
-		(make_tail, make_one, make_singleton_name_thunk): Likewise.
-		(make_import_fixup_entry, make_runtime_pseudo_reloc): Likewise.
-		(pe_create_runtime_relocator_reference): Likewise.
-		(pe_dll_generate_implib): Set dll_symname_len.
-		(pe_process_import_defs): Likewise.
-
-	binutils
-		* dlltool.c (main): If a prefix has not been provided, attempt to
-		use a deterministic one based upon the dll name.
-
-2022-01-11  Jan Beulich  <jbeulich@suse.com>
-
-	gas/doc: mention quoted symbol names
-
-2022-01-11  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbsupport: regenerate Makefile.in
-	I had cause to regenerate gdbsupport/Makefile.in, and noticed some
-	unexpected changes in the copyright header dates.
-
-	I suspect that this was caused by the end of year date range update
-	process.
-
-	The Makefile.in contains two date ranges.  The first range appears to
-	be the date range for the version of automake being used, that is the
-	range runs up to 2017 only, when automake 1.15.1 was released.
-
-	The second date range in Makefile.in represents the date range for the
-	generated file, and so, now runs up to 2022.
-
-	Anyway, this is the result of running autoreconf (using automake
-	1.15.1) in the gdbsupport directory.
-
-2022-01-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-10  Clément Chigot  <clement.chigot@atos.net>
-
-	XCOFF: add support for TLS relocations on hidden symbols
-	This patch adds support for TLS relocation targeting C_HIDEXT symbols.
-	In gas, TLS relocations, except R_TLSM and R_TLMSL, must keep the value
-	of their target symbol.
-	In ld, it simply ensures that internal TLS symbols are added to the
-	linker hash table for xcoff_reloc_type_tls.
-
-	It also improves the tests made by both.
-
-	bfd/ChangeLog:
-
-		* coff-rs6000.c (xcoff_howto_table): Fix name of R_TLSML.
-		(xcoff_reloc_type_tls): Replace the error when h is NULL by
-		an assert.
-		(xcoff_complain_overflow_unsigned_func): Adjust comments.
-		* coff64-rs6000.c (xcoff64_howto_table): Fix name of R_TLSML.
-		* xcofflink.c (xcoff_link_add_symbols_to_hash_table): New
-		function.
-		(xcoff_link_add_symbols): Add C_HIDEXT TLS symbols to the linker
-		hash table.
-
-	gas/ChangeLog:
-
-		* config/tc-ppc.c (md_apply_fix): Enable support for TLS
-		relocation over internal symbols.
-		* testsuite/gas/ppc/aix.exp: Replace xcoff-tlms by xcoff-tls.
-		* testsuite/gas/ppc/xcoff-tlsm-32.d: Removed.
-		* testsuite/gas/ppc/xcoff-tlsm-64.d: Removed.
-		* testsuite/gas/ppc/xcoff-tlsm.s: Removed.
-		* testsuite/gas/ppc/xcoff-tls-32.d: New test.
-		* testsuite/gas/ppc/xcoff-tls-64.d: New test.
-		* testsuite/gas/ppc/xcoff-tls.s: New test.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-powerpc/aix52.exp: Improve aix-tls-reloc test.
-		* testsuite/ld-powerpc/aix-tls-reloc.s: Likewise.
-		* testsuite/ld-powerpc/aix-tls-reloc-32.d: Removed.
-		* testsuite/ld-powerpc/aix-tls-reloc-64.d: Removed.
-		* testsuite/ld-powerpc/aix-tls-reloc-32.dd: New test.
-		* testsuite/ld-powerpc/aix-tls-reloc-32.dt: New test.
-		* testsuite/ld-powerpc/aix-tls-reloc-64.dd: New test.
-		* testsuite/ld-powerpc/aix-tls-reloc-64.dt: New test.
-
-2022-01-10  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: add Tiezhu Yang to MAINTAINERS
-
-2022-01-10  Tom Tromey  <tom@tromey.com>
-
-	Reduce use of unfiltered output in Darwin code
-	The Darwin code uses unfiltered output liberally.  This patch changes
-	this code to send some output to gdb_stdlog (in some cases via the use
-	of debug_prefixed_printf_cond_nofunc), or to gdb_stderr, or to simply
-	switch to filtered output.
-
-	Note that I didn't switch inferior_debug to use
-	debug_prefixed_printf_cond_nofunc, because that would affect the
-	output by removing the information about the inferior.  I wasn't sure
-	if this was important or not, so I left it in.
-
-	v2 of this patch uses warning rather than prints to gdb_stderr, and
-	removes some trailing whitespace.
-
-	I can't compile this patch, so it's "best effort".
-
-2022-01-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-08  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/hurd: handle inferiors exiting
-	While testing on GNU/Hurd (i386) I noticed that GDB crashes when an
-	inferior exits, with this error:
-
-	  inferior.c:293: internal-error: inferior* find_inferior_pid(process_stratum_target*, int): Assertion `pid != 0' failed.
-
-	The problem appears to be in gnu_nat_target::wait.
-
-	We always set inferior_ptid to null_ptid before calling target_wait,
-	this has been the case since the multi-target changes were made to GDB
-	in commit:
-
-	  commit 5b6d1e4fa4fc6827c7b3f0e99ff120dfa14d65d2
-	  Date:   Fri Jan 10 20:06:08 2020 +0000
-
-	      Multi-target support
-
-	With follow up changes in commit:
-
-	  commit 24ed6739b699f329c2c45aedee5f8c7d2f54e493
-	  Date:   Thu Jan 30 14:35:40 2020 +0000
-
-	      gdb/remote: Restore support for 'S' stop reply packet
-
-	Unfortunately, the GNU/Hurd target is still relying on the value of
-	inferior_ptid in the case where an inferior exits - we return the
-	value of inferior_ptid as the pid of the process that exited.  This
-	was fine in the single target world, where inferior_ptid identified
-	the one running inferior, but this is no longer good enough.
-
-	Instead, we should return a ptid containing the pid of the process
-	that exited, as obtained from the wait event, and this is what this
-	commit does.
-
-	I've not run the full testsuite on GNU/Hurd as there appear to be lots
-	of other issues with this target that makes running the full testsuite
-	very painful, but I think this looks like a small easy improvement.
-
-2022-01-08  Tom Tromey  <tom@tromey.com>
-
-	Add explicit check for nullptr to target_announce_attach
-	Lancelot pointed out that target_announce_attach was missing an
-	explicit check against nullptr.  This patch adds it.
-
-2022-01-08  Hannes Domani  <ssbssa@yahoo.de>
-
-	Add _sigsys info to siginfo struct
-	This patch adds information about _sigsys structure from newer
-	kernels, so that $_siginfo decoding can show information about
-	_sigsys, making it easier for developers to debug seccomp failures.
-	Requested in PR gdb/24283.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24283
-
-2022-01-08  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	gdb: testsuite: show print array-indexes after set in arrayidx.exp
-	Add "show print array-indexes" testcases after set print array-indexes
-	to off or on.
-
-	Without this patch:
-
-	    PASS: gdb.base/arrayidx.exp: set print array-indexes to off
-	    PASS: gdb.base/arrayidx.exp: print array with array-indexes off
-	    PASS: gdb.base/arrayidx.exp: set print array-indexes to on
-	    PASS: gdb.base/arrayidx.exp: print array with array-indexes on
-
-	With this patch:
-
-	    PASS: gdb.base/arrayidx.exp: set print array-indexes to off
-	    PASS: gdb.base/arrayidx.exp: show print array-indexes is off
-	    PASS: gdb.base/arrayidx.exp: print array with array-indexes off
-	    PASS: gdb.base/arrayidx.exp: set print array-indexes to on
-	    PASS: gdb.base/arrayidx.exp: show print array-indexes is on
-	    PASS: gdb.base/arrayidx.exp: print array with array-indexes on
-
-2022-01-08  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Extract _bfd_elf_link_iterate_on_relocs
-	DT_RELR encodes consecutive R_*_RELATIVE relocations in GOT (the global
-	offset table) and data sections in a compact format:
-
-	https://groups.google.com/g/generic-abi/c/bX460iggiKg
-
-	On some targets, R_*_RELATIVE relocations are counted and the GOT offsets
-	are allocated when setting the dynamic section sizes after seeing all
-	relocations.  R_*_RELATIVE relocations are generated while relocating
-	sections after section layout has been finalized.
-
-	To prepare for DT_RELR implementation on these targets, extract
-	_bfd_elf_link_iterate_on_relocs from _bfd_elf_link_check_relocs so
-	that a backend can scan relocations in elf_backend_always_size_sections
-
-	For x86 targets, the old check_relocs is renamed to scan_relocs and a
-	new check_relocs is added to chek input sections and create dynamic
-	relocation sections so that they will be mapped to output sections.
-	scan_relocs is now called from elf_backend_always_size_sections.
-
-	Since relocations are scanned after __start, __stop, .startof. and
-	.sizeof. symbols have been finalized on x86, __[start|stop]_SECNAME for
-	--gc-sections -z start-stop-gc are now zero when all SECNAME sections
-	been garbage collected.  This is no need for elf_x86_start_stop_gc_p.
-
-	bfd/
-
-		* elf-bfd.h (_bfd_elf_link_iterate_on_relocs): New.
-		* elf32-i386.c (elf_i386_convert_load_reloc): Don't call
-		elf_x86_start_stop_gc_p.
-		(elf_i386_check_relocs): Renamed to ...
-		(elf_i386_scan_relocs): This.  Don't call
-		_bfd_elf_make_dynamic_reloc_section.
-		(elf_i386_always_size_sections): New.
-		(elf_backend_check_relocs): Removed.
-		(elf_backend_always_size_sections): New.
-		* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't call
-		elf_x86_start_stop_gc_p.
-		(elf_x86_64_check_relocs): Renamed to ...
-		(elf_x86_64_scan_relocs): This.  Don't call
-		_bfd_elf_make_dynamic_reloc_section.
-		(elf_x86_64_always_size_sections): New.
-		(elf_backend_check_relocs): Removed.
-		(elf_backend_always_size_sections): New.
-		* elflink.c (elf_link_check_or_scan_relocs):
-		New.  Extracted from _bfd_elf_link_check_relocs.
-		(_bfd_elf_link_check_relocs): Call elf_link_check_or_scan_relocs.
-		* elfxx-x86.c (_bfd_x86_elf_check_relocs): New.
-		* elfxx-x86.h (X86_64_NEED_DYNAMIC_RELOC_TYPE_P): New.
-		(I386_NEED_DYNAMIC_RELOC_TYPE_P): Likewise.
-		(X86_NEED_DYNAMIC_RELOC_TYPE_P): Likewise.
-		(_bfd_x86_elf_check_relocs): Likewise.
-		(elf_backend_check_relocs): Likewise.
-		(elf_backend_always_size_sections): Removed.
-		(elf_x86_start_stop_gc_p): Likewise.
-
-	ld/
-
-		* testsuite/ld-i386/pr27491-1a.d: Updated.
-		* testsuite/ld-x86-64/pr27491-1a.d: Likewise.
-
-2022-01-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.mi/mi-catch-load.exp
-	When I run the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.mi/mi-catch-load.exp ...
-	    DUPLICATE: gdb.mi/mi-catch-load.exp: breakpoint at main
-	    DUPLICATE: gdb.mi/mi-catch-load.exp: mi runto main
-
-	Fix by grouping the various phases in with_test_prefix blocks.  Since
-	the tests now have a prefix, remove the manually written prefixes in
-	testnames.
-
-	Also change some messages with the pattern "(timeout) $testname" into
-	"$estname (timeout)" since tools will handle this as $testname[1] (which
-	is what we want in this particular scenario).
-
-	Tested on x86_64-linux.
-
-	[1] https://sourceware.org/gdb/wiki/GDBTestcaseCookbook#Do_not_use_.22tail_parentheses.22_on_test_messages
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.threads/staticthreads.ex
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.threads/staticthreads.exp ...
-	    DUPLICATE: gdb.threads/staticthreads.exp: couldn't compile staticthreads.c: unrecognized error
-
-	Fix by using foreach_with_prefix instead of foreach when preparing the
-	test case.
-
-	Testeed on x86_64-linux both in a setup where the test fails to prepare
-	and in a setup where the test fails to setup.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.mi/mi-language.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.mi/mi-language.exp ...
-	    DUPLICATE: gdb.mi/mi-language.exp: set lang ada
-
-	This is due to an erroneous explicit test name.  This explicit test name
-	also happens to be useless (at least it would have been if it was
-	correct) since it only repeats the command, so just remove the explicit
-	test name and let the command be used as default test name.  Also remove
-	explicit test name at another location in the file since it also just
-	repeat the command.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.mi/mi-nonstop-exit.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.mi/mi-nonstop-exit.exp ...
-	    DUPLICATE: gdb.mi/mi-nonstop-exit.exp: breakpoint at main
-	    DUPLICATE: gdb.mi/mi-nonstop-exit.exp: mi runto main
-
-	This test runs the same sequence of operations twice.  Refactor the code
-	by running both of those sequences within a foreach_with_prefix block to
-	ensure that the commands have unique test names.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.mi/mi-nonstop.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.mi/mi-nonstop.exp ...
-	    DUPLICATE: gdb.mi/mi-nonstop.exp: check varobj, w1, 1
-	    DUPLICATE: gdb.mi/mi-nonstop.exp: stacktrace of stopped thread
-
-	Fix by adjusting the problematic test names.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.mi/mi-nsthrexec.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.mi/mi-nsthrexec.exp ...
-	    DUPLICATE: gdb.mi/mi-nsthrexec.exp: breakpoint at main
-
-	Fix by adjusting the duplicated test name.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/watchpoints.exp
-	When running the testsuite, I have:
-
-	    Running ../gdb/testsuite/gdb.base/watchpoints.exp ...
-	    DUPLICATE: gdb.base/watchpoints.exp: watchpoint hit, first time
-
-	Fix by adjusting the test names where appropriate.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/nested-subp2.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/nested-subp2.exp ...
-	    DUPLICATE: gdb.base/nested-subp2.exp: continue to the STOP marker
-	    DUPLICATE: gdb.base/nested-subp2.exp: print c
-	    DUPLICATE: gdb.base/nested-subp2.exp: print count
-
-	Fix by using with_test_prefix to differentiate the test that are
-	performed at different points during the execution of the debuggee.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/call-signal-resume.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/call-signal-resume.exp ...
-	    DUPLICATE: gdb.base/call-signal-resume.exp: dummy stack frame number
-	    DUPLICATE: gdb.base/call-signal-resume.exp: set confirm off
-	    DUPLICATE: gdb.base/call-signal-resume.exp: return
-
-	This is due to the fact that a pattern was probably copy/pasted to
-	re-use the logic while not adjusting the test names to avoid the
-	duplication.
-
-	Fix by removing the redundant tests ('set confirm off' only needs to be
-	used once) and adjusting the test names where appropriate.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/pointers.exp
-	When I run the testsuite, I have :
-
-	    Running .../gdb/testsuite/gdb.base/pointers.exp ...
-	    DUPLICATE: gdb.base/pointers.exp: pointer assignment
-
-	Fix by placing the sections with duplication in with_test_prefix blocks.
-	This removes the duplication and gives a better organization the file.
-
-	Tested on x86_64-linux.
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/unload.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/unload.exp ...
-	    DUPLICATE: gdb.base/unload.exp: continuing to unloaded libfile
-
-	Fix by adjusting the test name.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/define-prefix.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/define-prefix.exp ...
-	    DUPLICATE: gdb.base/define-prefix.exp: define user command: ghi-prefix-cmd
-
-	Fix by adjusting test names.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/funcargs.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/funcargs.exp ...
-	    DUPLICATE: gdb.base/funcargs.exp: run to call2a
-
-	Fix by using proc_with_prefix instead on plain proc to create logical
-	function blocks.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/shlib-call.exp
-	When I run the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/shlib-call.exp ...
-	    DUPLICATE: gdb.base/shlib-call.exp: print g
-	    DUPLICATE: gdb.base/shlib-call.exp: set print sevenbit-strings
-	    DUPLICATE: gdb.base/shlib-call.exp: set print address off
-	    DUPLICATE: gdb.base/shlib-call.exp: set width 0
-	    DUPLICATE: gdb.base/shlib-call.exp: continue until exit
-
-	Fix by adjusting the test names when required, and by removing
-	un-necessary commands.
-
-	While at it, do some cleanup:
-	- Replace an explicit GDB restart sequence with a call to clean_restart.
-	- Remove trailing whitespaces.
-	- Use $gdb_test_name in gdb_test_multiple.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/set-cfd.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/set-cwd.exp ...
-	    DUPLICATE: gdb.base/set-cwd.exp: test_cwd_reset: continue to breakpoint: break-here
-
-	Fix by moving the tests after the 'runto_main' within the same
-	with_test_prefix scope.
-
-	While at it, I fix some indentation issues.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/exprs.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/exprs.exp ...
-	    DUPLICATE: gdb.base/exprs.exp: \$[0-9]* = red (setup)
-
-	Fix by using with_test_prefix where appropriate.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/readline.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/readline.exp ...
-	    DUPLICATE: gdb.base/readline.exp: Simple operate-and-get-next - final prompt
-
-	Fix by adjusting the prefix given to the second 'simple' call to
-	operate_and_get_next.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/pretty-array.exp
-	When I run the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/pretty-array.exp ...
-	    DUPLICATE: gdb.base/pretty-array.exp: print nums
-	    DUPLICATE: gdb.base/pretty-array.exp: print nums
-
-	Fix by giving a name to the test cases.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/ui-redirect.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/ui-redirect.exp ...
-	    DUPLICATE: gdb.base/ui-redirect.exp: redirect while already logging: set logging redirect off
-
-	Fix by moving the first 'set logging redirect off' to the end of the
-	previous [with_test_prefix] test block. The statement's purpose is to
-	clean the on flag set in this previous block, so moving it there makes
-	sense and does not change the sequence of commands in the test file.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: completion-support.exp: improve leading whitespace support
-	There is a expect support library in the source tree designed to help
-	developers test the auto-completion capabilities of GDB.
-
-	One of the functions is test_gdb_complete_unique_re.  It is used
-	(usually indirectly via test_gdb_complete_unique) to test that a given
-	input line is completed as a given output line.  The test checks for two
-	ways to do the completion: using tab-completion, or using the
-	'complete' command.  To do this, calls to two dedicated functions are
-	performed.  If we omit few details, we can consider that a call to
-
-	    test_gdb_complete_unique $input $expected
-
-	is equivalent to the two following calls:
-
-	    test_gdb_complete_tab_unique $input $expected
-	    test_gdb_complete_cmd_unique $input $expected
-
-	When using the tab-completion, everything works as expected, but some
-	care must be taken when using the 'complete' command if the given input
-	has leading whitespaces.  In such situation, the output of the
-	'complete' command will drop the leading whitespaces.
-
-	The current approach is that in such situation, the input and expected
-	outputs are right trimmed (i.e. all leading whitespaces are removed)
-	when performing the command completion check.
-
-	This means that the following call:
-
-	    test_gdb_complete_unique "   $input" "   $expected"
-
-	is almost equivalent to (again, omitting few details and arguments):
-
-	    test_gdb_complete_tab_unique "   $input" "   $expected"
-	    test_gdb_complete_cmd_unique "$input" "$expected"
-
-	This approach comes with a problem that we encounter when running the
-	tests in complete-empty.exp.  When doing so, we have:
-
-	    Running .../gdb/testsuite/gdb.base/complete-empty.exp ...
-	    DUPLICATE: gdb.base/complete-empty.exp: empty-input-line: cmd complete ""
-
-	This is because the test file does something like:
-
-	    test_gdb_complete_unique "" "!" " " 1
-	    test_gdb_complete_unique "   " "   !" " " 1¬
-
-	which, if we do the substitution introduced above is equivalent to:
-
-	    test_gdb_complete_tab_unique "" "!"
-	    test_gdb_complete_cmd_unique "" "!"
-	    test_gdb_complete_tab_unique "   " "   !"
-	    test_gdb_complete_cmd_unique "" "!"
-
-	We see that the lines 2 and 4 are now the same, and for this reason the
-	testing framework complains about DUPLICATE test names.
-
-	To fix that, this commit proposes that instead of left trimming both
-	input and expected outputs, only the expected output is trimmed.
-
-	Care must be taken in the case the completion gives more possibilities
-	than allowed by the max-completions setting.  In this case, the input
-	will be repeated in the output in its left trimmed version.  This commit
-	also ensures that this is taken care of.
-
-	With this commit, the gdb.base/complete-empty.exp still passes all its
-	tests but does not report the DUPLICATE anymore.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/subst.exp
-	When I run the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/subst.ex ...
-	    DUPLICATE: gdb.base/subst.exp: unset substitute-path from, no rule entered yet
-
-	Fix by adjusting the problematic test name.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Pedro Alves  <pedro@palves.net>
-
-	gdb/testsuite: Remove duplicates from gdb.base/dfp-exprs.exp
-	When I run the testsuite, I have:
-
-	    Running ../gdb/testsuite/gdb.base/dfp-exprs.exp ...
-	    DUPLICATE: gdb.base/dfp-exprs.exp: p 1.2dl < 1.3df
-
-	Replace hand-written tests checking various comparison operators between
-	various decimal floating point types with a loop to programmatically
-	generate all the combinations.  This removes the need to eyeball for all
-	suffixes, which lead to the original duplication.
-
-	Also add a lot more combinations, testing all comparison operators
-	comprehensively.  The result is 262 unique tests vs 104 before this
-	patch.
-
-	Tested on x86_86-linux.
-
-	Change-Id: Id215a3d610aa8e032bf06ee160b5e3aed4a92d1e
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/ptype.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/ptype.exp ...
-	    DUPLICATE: gdb.base/ptype.exp: ptype the_highest
-	    DUPLICATE: gdb.base/ptype.exp: list intfoo
-	    DUPLICATE: gdb.base/ptype.exp: list charfoo
-
-	Fix by adjusting the offending test names.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/dfp-test.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/dfp-test.exp ...
-	    DUPLICATE: gdb.base/dfp-test.exp: 1.23E is an invalid number
-	    DUPLICATE: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
-	    DUPLICATE: gdb.base/dfp-test.exp: 1.23E is an invalid number
-	    DUPLICATE: gdb.base/dfp-test.exp: 1.23E45A is an invalid number
-
-	Fix by using proc_with_prefix where appropriate.
-
-	Tested on x86_64-linux.
-	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/del.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/del.exp ...
-	    DUPLICATE: gdb.base/del.exp: info break after removing break on main
-
-	Refactor slightly this test to run the various configurations under
-	foreach_with_prefix so each variant is automatically prefixed, ensuring
-	that the forgotten custom test name cannot happen.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/solib-display.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/solib-display.exp ...
-	    DUPLICATE: gdb.base/solib-display.exp: NO: break 25
-	    DUPLICATE: gdb.base/solib-display.exp: NO: continue
-	    DUPLICATE: gdb.base/solib-display.exp: IN: break 25
-	    DUPLICATE: gdb.base/solib-display.exp: IN: continue
-	    DUPLICATE: gdb.base/solib-display.exp: SEP: break 25
-	    DUPLICATE: gdb.base/solib-display.exp: SEP: continue
-
-	The 'break 25' appears because the test inserts two breakpoints at the
-	same location.  Fix this by only inserting the breakpoint once.
-
-	Fix the 'continue' DUPLICATE by giving a phony name to the second
-	continue: 'continue two'.
-
-	While at it, this commit also removes a trailing space.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/decl-before-def.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/decl-before-def.exp ...
-	    DUPLICATE: gdb.base/decl-before-def.exp: p a
-
-	Fix by giving explicit names to the two tests that use the same command.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/pending.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/pending.exp ...
-	    DUPLICATE: gdb.base/pending.exp: disable other breakpoints
-
-	Fix by adjusting the test names.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/checkpoint.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/checkpoint.exp ...
-	    DUPLICATE: gdb.base/checkpoint.exp: verify lines 5 two
-	    DUPLICATE: gdb.base/checkpoint.exp: restart 0 one
-
-	This patch fixes the various erroneous incorrect test names.
-
-	While at it, this patch also remove some trailing white spaces across
-	the file.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/pie-fork.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/pie-fork.exp ...
-	    DUPLICATE: gdb.base/pie-fork.exp: test_no_detach_on_fork: continue
-
-	Fix by giving explicit names to the 'continue' commands that cause the
-	duplicate message.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/realname-expand.exp
-	When running the testsuite, I have:
-
-	    Running .../gdb/testsuite/gdb.base/realname-expand.exp ...
-	    DUPLICATE: gdb.base/realname-expand.exp: set basenames-may-differ on
-
-	This is due to the fact that the test restarts GDB twice and each time
-	sets the basenames-may-differ setting.  This patch proposes to fix this
-	by not restarting GDB so the setting is maintained.  It just clears the
-	breakpoints between the two tests and updates the breakpoints number as
-	required.
-
-	This patch also perform some minor refactorings to improve visibility.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/interp.exp
-	When running the testsuite I have:
-
-	    Running .../gdb/testsuite/gdb.base/interp.exp ...
-	    DUPLICATE: gdb.base/interp.exp: interpreter-exec mi "-var-update *"
-
-	This is due to the fact that multiple successive instances of
-	gdb_test_multiple use 'pass $cmd', but one of them forgets to reset $cmd
-	to a new test name.
-
-	Fix by using 'pass $gdb_test_name', given that the gdb_test_name is set
-	by gdb_test_multiple.
-
-	While fixing this, this patch refactors all occurrences of the following
-	pattern:
-
-	    set cmd foo
-	    gdb_test_multiple $cmd $cmd {
-	        -re ... {
-	            pass $cmd
-	        }
-	    }
-
-	into
-
-	    gdb_test_multiple foo "" {
-	        -re ... {
-	            pass $gdb_test_name
-	         }
-	    }
-
-	This makes this test file coherent in its use of $gdb_test_name.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/miscexprs.exp
-	When running the testsuite I see:
-
-	    Running .../gdb/testsuite/gdb.base/miscexprs.exp ...
-	    DUPLICATE: gdb.base/miscexprs.exp: print value of !ibig.i[100]
-	    DUPLICATE: gdb.base/miscexprs.exp: print value of !ibig.i[100]
-
-	This is due to an explicit test name repeated across multiple tests.
-	The actual test explicit names do not add much over the command from
-	wich default test names are derived.
-
-	Fix by removing the explicit test names across the file where they do
-	not add value.  While at doing some cleaning, also use $gdb_test_name in
-	the various uses of gdb_test_multiple.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates from gdb.base/stack-checking.exp
-	When running the testsuite I have:
-
-	    Running .../gdb/testsuite/gdb.base/stack-checking.exp ...
-	    DUPLICATE: gdb.base/stack-checking.exp: bt
-	    DUPLICATE: gdb.base/stack-checking.exp: bt
-
-	Fix by using with_test_prefix.
-
-	Tested on x86_64-linux.
-
-2022-01-07  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	RISC-V: update docs to reflect privileged spec v1.9 has been dropped
-	After commit d8af286fffa ("RISC-V: Drop the privileged spec v1.9
-	support.") has removed support for privileged spec v1.9, this removes
-	it from the documentation.
-
-	References: d8af286fffa ("RISC-V: Drop the privileged spec v1.9 support.")
-
-	gas/ChangeLog:
-
-		* configure: Regenerate.
-		* configure.ac: Remove reference to priv spec 1.9.
-		* po/fr.po: Same.
-		* po/ru.po: Same.
-		* po/uk.po: Same.
-
-2022-01-07  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	RISC-V: update docs for -mpriv-spec/--with-priv-spec for 1.12
-	While support for the privileged spec was added in a63375ac337
-	("RISC-V: Hypervisor ext: support Privileged Spec 1.12"), the
-	documentation has not been updated.  Add 1.12 to the relevant
-	documentation.
-
-	References: a63375ac337 ("RISC-V: Hypervisor ext: support Privileged Spec 1.12")
-
-	gas/ChangeLog:
-
-		* config/tc-riscv.c: Add 1.12 to the usage message.
-		* configure: Regenerate.
-		* configure.ac: Add 1.12 to the help/usage message.
-		* po/fr.po: Same.
-		* po/ru.po: Same.
-		* po/uk.po: Same.
-
-2022-01-07  Tom Tromey  <tromey@adacore.com>
-
-	Do not use CC_HAS_LONG_LONG
-	ax.cc checks CC_HAS_LONG_LONG, but nothing defines this.  However,
-	PRINTF_HAS_LONG_LONG is checked in configure.  This patch removes the
-	former and keeps the latter.  This is PR remote/14976 (filed by me in
-	2012, lol).
-
-	I'm checking this in.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=14976
-
-2022-01-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: shorten some source lines, and prevent some line breaks
-	Building on the previous commit, this makes use of a trailing @ to
-	split long @deffn lines in the guile.texi source file.  This splitting
-	doesn't change how the document is laid out by texinfo.
-
-	I have also wrapped keyword and argument name pairs in @w{...} to
-	prevent line breaks appearing between the two.  I've currently only
-	done this for the longer @deffn lines, where a line break is
-	possible.  This makes the @deffn lines much nicer to read in the
-	generated pdf.
-
-2022-01-07  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: Remove (...) around guile procedure names in @deffn lines
-	Most guile procedures in the guile.texi file are defined like:
-
-	  @deffn {Scheme Procedure} name arg1 arg2 arg3
-
-	But there are two places where we do this:
-
-	  @deffn {Scheme Procedure} (name arg1 arg2 arg3)
-
-	Notice the added (...).  Though this does represent how a procedure
-	call is written in scheme, it's not the normal style throughout the
-	manual.  I also checked the 'info guile' info page to see how they
-	wrote there declarations, and they use the first style too.
-
-	The second style also has the drawback that index entries are added as
-	'(name', and so they are grouped in the '(' section of the index,
-	which is not very user friendly.
-
-	In this commit I've changed the definitions of make-command and
-	make-parameter to use the first style.
-
-	The procedure declaration lines can get pretty long with all of the
-	arguments, and this was true for both of the procedures I am changing
-	in this commit.  I have made use of a trailing '@' to split the deffn
-	lines, and keep them under 80 characters in the texi source.  This
-	makes no difference to how the final document looks.
-
-	Finally, our current style for keyword arguments, appears to be:
-
-	  [#:keyword-name argument-name]
-
-	I don't really understand the reason for this, 'info guile' just seems
-	to use:
-
-	  [#:keyword-name]
-
-	which seems just as good to me.  But I don't propose to change
-	that just now.  What I do notice though, is that sometimes, texinfo
-	will place a line break between the keyword-name and the
-	argument-name, for example, the pdf of make-command is:
-
-	  make-command name [#:invoke invoke] [#:command-class
-	    command-class] [#:completer-class completer] [#:prefix? prefix] [#:doc
-	    doc-string]
-
-	Notice the line break after '#:command-class' and after '#:doc',
-	neither of which are ideal.  And so, for the two commands I am
-	changing in this commit, I have made use of @w{...} to prevent line
-	breaks between the keyword-name and the argument-name.  Now the pdf
-	looks like this:
-
-	  make-command name [#:invoke invoke]
-	    [#:command-class command-class] [#:completer-class completer]
-	    [#:prefix? prefix] [#:doc doc-string]
-
-	Which seems much better.  I'll probably update the other deffn lines
-	at some point.
-
-2022-01-07  Pavel Mayorov  <pmayorov@cloudlinux.com>
-
-	Revert previous delta to debug.c.  Replace with patch to reject indirect types that point to indirect types.
-		PR 28718
-		* dwarf.c: Revert previous delta.
-		(debug_get_real_type): Reject indirect types that point to
-		indirect types.
-		(debug_get_type_name, debug_get_type_size, debug_write_type):
-		Likewise.
-
-2022-01-07  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Updated the default ISA spec to 20191213.
-	Update the default ISA spec from 2.2 to 20191213 will change the default
-	version of i from 2.0 to 2.1.  Since zicsr and zifencei are separated
-	from i 2.1, users need to add them in the architecture string if they need
-	fence.i and csr instructions.  Besides, we also allow old ISA spec can
-	recognize zicsr and zifencei, but we won't output them since they are
-	already included in the i extension when i's version is less than 2.1.
-
-	bfd/
-		* elfxx-riscv.c (riscv_parse_add_subset): Allow old ISA spec can
-		recognize zicsr and zifencei.
-	gas/
-		* config/tc-riscv.c (DEFAULT_RISCV_ISA_SPEC): Updated to 20191213.
-		* testsuite/gas/riscv/csr-version-1p10.d: Added zicsr to -march since
-		the default version of i is 2.1.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/option-arch-03.d: Updated i's version to 2.1.
-		* testsuite/gas/riscv/option-arch-03.s: Likewise.
-	ld/
-		* testsuite/ld-riscv-elf/call-relax.d: Added zicsr to -march since
-		the default version of i is 2.1.
-		* testsuite/ld-riscv-elf/attr-merge-arch-01.d: Updated i's version to 2.1.
-		* testsuite/ld-riscv-elf/attr-merge-arch-01a.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-01b.: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-02a.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-02b.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-03a.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-03b.s: Likewise.
-		* testsuite/ld-riscv-elf/attr-merge-arch-failed-02.d: Added zifencei
-		into Tag_RISCV_arch since it is added implied when i's version is
-		larger than 2.1.
-
-2022-01-07  Alan Modra  <amodra@gmail.com>
-
-	Move elf_backend_always_size_sections earlier
-		* elflink.c (bfd_elf_size_dynamic_sections): Move plt/got init
-		earlier and call elf_backend_always_size_sections at the start
-		of this function.
-
-2022-01-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-06  H.J. Lu  <hjl.tools@gmail.com>
-
-	ldelfgen.c: Add missing newlines when calling einfo
-		* ldelfgen.c (ldelf_map_segments): Add the missing newline to
-		einfo.
-
-2022-01-06  Nick Clifton  <nickc@redhat.com>
-
-	Fix a stack exhaustion bug parsing malicious STABS format debug information.
-		PR 28718
-		* debug.c (debug_write_type): Allow for malicious recursion via
-		indirect debug types.
-
-2022-01-06  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add support for new SME instructions
-	This patch adds support for three new SME instructions: ADDSPL,
-	ADDSVL and RDSVL.  They behave like ADDPL, ADDVL and RDVL, but read
-	the streaming vector length instead of the current vector length.
-
-	opcodes/
-		* aarch64-tbl.h (aarch64_opcode_table): Add ADDSPL, ADDSVL and RDSVL.
-		* aarch64-dis-2.c: Regenerate.
-
-	gas/
-		* testsuite/gas/aarch64/sme.s, testsuite/gas/aarch64/sme.d: Add tests
-		for ADDSPL, ADDSVL and RDSVL.
-
-2022-01-06  Tom Tromey  <tom@tromey.com>
-
-	Use target_announce_detach in more targets
-	target_announce_detach was added in commit 0f48b757 ("Factor out
-	"Detaching from program" message printing").  There, Pedro wrote:
-
-	    (For now, I left the couple targets that print this a bit differently
-	    alone.  Maybe this could be further pulled out into infcmd.c.  If we
-	    did that, and those targets want to continue printing differently,
-	    this new function could be converted to a target method.)
-
-	It seems to me that the differences aren't very big, and in some cases
-	other targets handled the output a bit more nicely.  In particular,
-	some targets will print a different message when exec_file==NULL,
-	rather than printing the same output with an empty string as
-	exec_file.
-
-	This patch incorporates the nicer output into target_announce_detach,
-	then changes the remaining ports to use this function.
-
-2022-01-06  Tom Tromey  <tom@tromey.com>
-
-	Introduce target_announce_attach
-	This introduces target_announce_attach, by analog with
-	target_announce_detach.  Then it converts existing targets to use
-	this, rather than emitting their own output by hand.
-
-2022-01-06  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make use add_setshow_prefix_cmd in gnu-nat.c
-	In gnu-nat.c we currently implement some set/show prefix commands
-	"manually", that is, we call add_prefix_cmd, and assign a set and show
-	function to each prefix command.
-
-	These set/show functions print an error indicating that the user
-	didn't type a complete command.
-
-	If we instead switch to using add_setshow_prefix_cmd then we can
-	delete the set/show functions, GDB provides some default functions,
-	which give a nice help style summary that lists all of the available
-	sub-commands, along with a one line summary of what each does.
-
-	Though this clearly changes the existing behaviour, I think this
-	change is acceptable as the new behaviour is more inline with other
-	set/show prefix commands, and the new behaviour is more informative.
-
-	This change will conflict with Tom's change here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2022-January/184724.html
-
-	Where Tom changes the set/show functions that I delete.  My suggestion
-	is that the set/show functions still be deleted even after Tom's
-	patch (or instead of Tom's patch).
-
-	For testing I've build GDB on GNU/Hurd, and manually tested these
-	functions.  I did a grep over the testsuite, and don't believe the
-	existing error messages are being checked for in any tests.
-
-2022-01-06  Tom Tromey  <tom@tromey.com>
-
-	Use warning in windows-nat error messages
-	A warning in windows-nat.c can be converted to use the warning
-	function.  As a side effect, this arranges for the output to be sent
-	to gdb_stderr.
-
-2022-01-06  Tom Tromey  <tom@tromey.com>
-
-	Clean up some dead code in windows-tdep.c
-	windows-tdep.c checks the result of xmalloc, which isn't necessary.  I
-	initially removed this dead check, but then went a bit further and
-	modified the code so that some "goto"s and explicit memory management
-	could be removed.  Then, I added a couple of missing bounds checks.
-
-	I believe this also fixes a possible bug with a missing 0-termination
-	of a string.  I am not certain, but that is why I think the existing
-	code allocates a buffer that is 1 byte too long -- but then it fails
-	to set this byte to 0.
-
-2022-01-06  Tom Tromey  <tromey@adacore.com>
-
-	Avoid crash in language_info
-	language_info calls:
-
-	  show_language_command (NULL, 1, NULL, NULL);
-
-	... "knowing" that show_language_command does not use its ui_file
-	parameter.  However, this was changed in commit 7514a661
-	("Consistently Use ui_file parameter to show callbacks").
-
-	This patch changes language_info to pass a ui_file.
-
-	It took a while to write the test -- this function is only called when
-	'verbose' is on and when switching the "expected" language in auto
-	mode.
-
-2022-01-06  Tom Tromey  <tromey@adacore.com>
-
-	Fix some failures in langs.exp
-	langs.exp currently has some fails for me because the stack trace
-	includes full paths to the source files.
-
-	    FAIL: gdb.base/langs.exp: up to foo in langs.exp
-	    FAIL: gdb.base/langs.exp: up to cppsub_ in langs.exp
-	    FAIL: gdb.base/langs.exp: up to fsub in langs.exp
-
-	This fixes the failures by making the filename regexps a bit more lax.
-
-2022-01-06  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop NoAVX insn attribute
-	To avoid issues like that addressed by 6e3e5c9e4181 ("x86: extend SSE
-	check to PCLMULQDQ, AES, and GFNI insns"), base the check on opcode
-	attributes and operand types.
-
-	x86: drop NoAVX from POPCNT
-	With the introduction of CpuPOPCNT the NoAVX attribute has become
-	meaningless for POPCNT.
-
-	x86: drop some "comm" template parameters
-	As already indicated in a remark when introducing these templates, the
-	"commutative" attribute is ignored for legacy encoding templates. Hence
-	it is possible to shorten a number of templates by specifying C directly
-	rather than through a template parameter. I think this helps readability
-	a bit.
-
-	x86: templatize FMA insn templates
-	The operand ordering portion of the mnemonics repeats, causing a flurry
-	of almost identical templates. Abstract this out.
-
-	x86-64: restrict PC32 -> PLT32 conversion
-	Neither non-64-bit code nor uses with a non-zero offset from a symbol
-	should be converted to PLT32, as an eventual PLT entry would not express
-	what was requested.
-
-2022-01-06  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Fix copyright year in gdb/testsuite/gdb.base/inferior-clone.exp
-	I just realized that I forgot to update the year before pushing the
-	patch that created this file.  Since it landed after the global
-	copyright year update have been done, this file’s copyright year is
-	updated.
-
-	This patch fixes that.
-
-	Change-Id: I280f7d86e02d38425f7afdcf19a1c3500d51c23f
-
-2022-01-06  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: migrate to standard uintXX_t types
-	Drop the sim-specific unsignedXX types and move to the standard uintXX_t
-	types that C11 provides.
-
-	sim: common: migrate to standard uintXX_t types
-	Drop the sim-specific unsignedXX types and move to the standard uintXX_t
-	types that C11 provides.
-
-	sim: igen: migrate to standard uintXX_t types
-	Move off the custom local 64-bit types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: mips: migrate to standard uintXX_t types
-	Move off the sim-specific unsignedXX types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: cris: migrate to standard uintXX_t types
-	Move off the sim-specific unsignedXX types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: iq2000: migrate to standard uintXX_t types
-	Move off the sim-specific unsignedXX types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: synacor: migrate to standard uintXX_t types
-	Move off the sim-specific unsignedXX types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: msp430: migrate to standard uintXX_t types
-	Move off the sim-specific unsignedXX types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: riscv: migrate to standard uintXX_t types
-	Move off the sim-specific unsignedXX types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: bfin: migrate to standard uintXX_t types
-	Move off the sim-specific unsignedXX types and to the standard uintXX_t
-	types that C11 provides.
-
-	sim: testsuite: migrate to standard uintXX_t types
-	This old code setup its own uintXX types, but since we require C11
-	now, we can assume the standard uintXX_t types exist and use them.
-
-	sim: erc32: migrate to standard uintXX_t types
-	This old port setup its own uintXX types, but since we require C11
-	now, we can assume the standard uintXX_t types exist and use them.
-
-	sim: mn10300: migrate to standard uintXX_t types
-	This old port setup its own uintXX types, but since we require C11
-	now, we can assume the standard uintXX_t types exist and use them.
-
-	sim: v850: migrate to standard uintXX_t types
-	This old port setup its own uintXX types, but since we require C11
-	now, we can assume the standard uintXX_t types exist and use them.
-
-2022-01-06  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: m68hc11: migrate to standard uintXX_t types
-	This old port setup its own uintXX types, but since we require C11
-	now, we can assume the standard uintXX_t types exist and use them.
-
-	Also migrate off the sim-specific unsignedXX types.
-
-2022-01-06  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: d10v: migrate to standard uintXX_t types
-	This old port setup its own uintXX types, but since we require C11
-	now, we can assume the standard uintXX_t types exist and use them.
-
-	Also migrate off the sim-specific unsignedXX types.
-
-2022-01-06  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cr16: migrate to standard uintXX_t types
-	This old port setup its own uintXX types, but since we require C11
-	now, we can assume the standard uintXX_t types exist and use them.
-
-	Also migrate off the sim-specific unsignedXX types.
-
-2022-01-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Add elf_x86_allocate_local_got_info
-	Add elf_x86_allocate_local_got_info to allocate x86 GOT info for local
-	symbols.
-
-		* elf32-i386.c (elf_i386_check_relocs): Call
-		elf_x86_allocate_local_got_info.
-		* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
-		* elfxx-x86.h (elf_x86_allocate_local_got_info): New.
-
-2022-01-05  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	opcodes: Make i386-dis.c thread-safe
-	Improve thread safety in print_insn_i386_att, print_insn_i386_intel and
-	print_insn_i386 by removing the use of static variables.
-
-	Tested on x86_64-pc-linux-gnu.
-
-	2022-01-04 Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-		* i386-dis.c: Make print_insn_i386_att, print_insn_i386_intel
-		and print_insn_i386 thread-safe
-
-2022-01-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	doc: Replace =frame-interp with =frames-interp
-	The actual objdump and readelf option name is =frames-interp, not
-	=frames-interp.
-
-		PR binutils/28747
-		* doc/debug.options.texi: Replace =frame-interp with
-		=frames-interp.
-
-2022-01-05  Tom Tromey  <tromey@adacore.com>
-
-	Change riscv_return_value to use RETURN_VALUE_ABI_PRESERVES_ADDRESS
-	Internally, AdaCore has a test that is equivalent to (really a direct
-	translation of) gdb.base/gnu_vector.exp.  On 32-bit RISC-V, the
-	"return" part of this test fails.
-
-	Joel tracked this down to riscv_return_value returning
-	RETURN_VALUE_ABI_RETURNS_ADDRESS.  Using
-	RETURN_VALUE_ABI_PRESERVES_ADDRESS is more correct here, and fixes the
-	bug.
-
-	I tested this for both 32- and 64-bit RISC-V using the AdaCore
-	internal test suite, and Andrew Burgess tested it using
-	gnu_vector.exp.
-
-2022-01-05  Tom Tromey  <tom@tromey.com>
-
-	Filtered output cleanup in expression dumping
-	Most of the expression-dumping code uses filtered output, but a few
-	functions did not.  This patch cleans up these instance.
-
-	Note that this won't cause any behavior change, because the only calls
-	to dump_prefix_expression pass in gdb_stdlog.  However, in the long
-	run it's easier to audit the code if the number of uses of _unfiltered
-	is reduced.
-
-2022-01-05  Tom Tromey  <tom@tromey.com>
-
-	Use filtered output in terminal_info implementations
-	This changes one terminal_info implementation, and
-	default_terminal_info, to use filtered output.  Other implementations
-	of this method already use filtered output.
-
-	I can't compile go32-nat.c, so this is a 'best effort' patch.
-
-2022-01-05  Tom Tromey  <tom@tromey.com>
-
-	Use filtered output in gnu-nat.c commands
-	gnu-nat.c has a number of ordinary commands that should use filtered
-	output.  In a few cases, I changed the output to use gdb_stderr as
-	well.  I can't compile this file, so this patch is split out as a
-	"best effort".
-
-	Use filtered output in *-tdep commands
-	Various targets introduce their own commands, which then use
-	unfiltered output.  It's better to use filtered output by default, so
-	this patch fixes the instances I found.
-
-	Use filtered output in btrace-related commands
-	This changes btrace.c and record-btrace.c to use filtered output in
-	the commands implemented there.
-
-	Use filtered output in some dumping commands
-	There are several commands that may optionally send their output to a
-	file -- they take an optional filename argument and open a file.  This
-	patch changes these commands to use filtered output.  The rationale
-	here is that, when printing to gdb_stdout, filtering is appropriate --
-	it is, and should be, the default for all commands.  And, when writing
-	to a file, paging will not happen anyway (it only happens when the
-	stream==gdb_stdout), so using the _filtered form will not change
-	anything.
-
-	Use filtered output in kill command
-	This changes the kill command to use filtered output.  I split this
-	one into its own patch because, out of an abundance of caution, I
-	changed the function to call bfd_cache_close_all a bit earlier, in
-	case pagination caused an exception.
-
-2022-01-05  Tom Tromey  <tom@tromey.com>
-
-	Use filtered output in ordinary commands
-	Many otherwise ordinary commands choose to use unfiltered output
-	rather than filtered.  I don't think there's any reason for this, so
-	this changes many such commands to use filtered output instead.
-
-	Note that complete_command is not touched due to a comment there
-	explaining why unfiltered output is believed to be used.
-
-2022-01-05  Tom Tromey  <tom@tromey.com>
-
-	Use filtered output in language_info
-	Change language_info to use filtered output.  This is ok because the
-	sole caller uses filtered output elsewhere, and because this function
-	calls show_language_command, which also uses filtered output.
-
-	Use filtered output in files_info implementations
-	This changes the implementations of the target files_info method to
-	use filtered output.  This makes sense because the sole caller of this
-	method is an ordinary command (info_program_command).  This patch
-	changes this command to use filtered output as well.
-
-	Use filtered output in target-descriptions.c
-	target-descriptions.c uses unfiltered output.  However, if you happen
-	to invoke this command interactively, it's probably better for it to
-	use filtering.  For non-interactive use, this doesn't matter.
-
-	Use filtered output for gdbarch dump
-	This changes gdbarch dumping to use filtered output.  This seems a bit
-	better to me, both on the principle that this is an ordinary command,
-	and because the output can be voluminous, so it may be nice to stop in
-	the middle.
-
-2022-01-05  Tom Tromey  <tom@tromey.com>
-
-	Implement putstr and putstrn in ui_file
-	In my tour of the ui_file subsystem, I found that fputstr and fputstrn
-	can be simplified.  The _filtered forms are never used (and IMO
-	unlikely to ever be used) and so can be removed.  And, the interface
-	can be simplified by removing a callback function and moving the
-	implementation directly to ui_file.
-
-	A new self-test is included.  Previously, I think nothing was testing
-	this code.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-01-05  Tom Tromey  <tromey@adacore.com>
-
-	Change how versioned symbols are recorded
-	A change to BFD caused a gdb regression when using the Ada "catch
-	exception" feature.  The bug is visible when a shared library throws
-	an exception that is caught in the main executable.
-
-	This was discussed here:
-
-	https://sourceware.org/pipermail/binutils/2021-July/117538.html
-
-	This patch implements Alan's proposed fix, namely to use VERSYM_HIDDEN
-	rather than the name when deciding to install a version-less symbol.
-
-	The internal test case is identical to the catch_ex_std.exp that is
-	in-tree, so I haven't added a new test.  I could not make that one
-	fail on x86-64 Linux, though.  It's possible that maybe I'd have to
-	update the system linker first, but I didn't want to try that.
-
-	Regression tested on x86-64 Fedora 32.
-
-2022-01-05  Hannes Domani  <ssbssa@yahoo.de>
-
-	Fix inferior_thread attribute in new_thread event
-	Commit 72ee03ff58 fixed a use-after-move bug in add_thread_object, but
-	it changed the inferior_thread attribute to contain the inferior instead
-	of the actual thread.
-	This now uses the thread_obj in its new location instead.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28429
-
-2022-01-05  Tom Tromey  <tom@tromey.com>
-
-	Simplify execute_control_commands_to_string
-	execute_control_commands_to_string can be rewritten in terms of
-	execute_fn_to_string, which consolidates some knowledge about which
-	streams to redirect.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-01-05  Tom Tromey  <tromey@adacore.com>
-
-	Do not print anything when self-backtrace unavailable
-	Right now, gdb's self-backtrace feature will still print something
-	when a backtrace is unavailable:
-
-	   sig_write (_("----- Backtrace -----\n"));
-	[...]
-	     sig_write (_("Backtrace unavailable\n"));
-	    sig_write ("---------------------\n");
-
-	However, if GDB_PRINT_INTERNAL_BACKTRACE is undefined, it seems better
-	to me to print nothing at all.
-
-	This patch implements this change.  It also makes a couple of other
-	small changes in this same module: it adds a header guard to
-	bt-utils.h, and it protects the definitions of
-	gdb_internal_backtrace_1 with a check of GDB_PRINT_INTERNAL_BACKTRACE.
-
-2022-01-05  Tom Tromey  <tromey@adacore.com>
-
-	Fix pager regression
-	The patch to fix paging with redirection caused a regression in the
-	internal AdaCore test suite.  The problem occurs when running an MI
-	command from the CLI using interpreter-exec, when paging is enabled.
-	This scenario isn't covered by the current test suite, so this patch
-	includes a new test.
-
-	The problem is that, in this situation, MI does:
-
-	  fputs_unfiltered (strcmp (context->command, "target-select") == 0
-			     ? "^connected" : "^done", mi->raw_stdout);
-
-	Here raw_stdout is a stdio_file wrapping stdout, so the pager thinks
-	that it is ok to buffer the output.  However, in this setup, it isn't
-	ok, and flushing the wrap buffer doesn't really work properly.  Also,
-	MI next does:
-
-	  mi_out_put (uiout, mi->raw_stdout);
-
-	... but this uses ui_file::write, which also doesn't flush the wrap
-	buffer.
-
-	I think all this will be fixed by the pager rewrite series I'm working
-	on.  However, in the meantime, adding the old gdb_stdout check back to
-	the pager fixes this problem.
-
-	Regression tested on x86-64 Fedora 34.
-
-2022-01-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Set p_align to the minimum page size if possible
-	Currently, on 32-bit and 64-bit ARM, it seems that ld generates p_align
-	values of 0x10000 even if no section alignment is greater than 0x1000.
-	The issue is more general and probably affects other targets with multiple
-	page sizes.
-
-	While file layout absolutely must take 64K page size into account, that
-	does not have to be reflected in the p_align value.  If running on a 64K
-	kernel, the file will be loaded at a 64K page boundary by necessity. On
-	a 4K kernel, 64K alignment is not needed.
-
-	The glibc loader has been fixed to honor p_align:
-
-	https://sourceware.org/bugzilla/show_bug.cgi?id=28676
-
-	similar to kernel:
-
-	commit ce81bb256a224259ab686742a6284930cbe4f1fa
-	Author: Chris Kennelly <ckennelly@google.com>
-	Date:   Thu Oct 15 20:12:32 2020 -0700
-
-	    fs/binfmt_elf: use PT_LOAD p_align values for suitable start address
-
-	This means that on 4K kernels, we will start to do extra work for 64K
-	p_align, but this pointless for pretty much all binaries (whose section
-	alignment rarely exceeds 16).
-
-	The minimum page size is used, instead of the maximum section alignment
-	due to this glibc bug:
-
-	https://sourceware.org/bugzilla/show_bug.cgi?id=28688
-
-	It has been fixed in glibc 2.35.  But linker output must work on existing
-	glibc binaries.
-
-	1. Set p_align to the minimum page size while laying out segments aligning
-	to the maximum page size or section alignment.  The run-time loader can
-	align segments to the minimum page size or above, depending on system page
-	size.
-	2. If -z max-page-size=NNN is used, p_align will be set to the maximum
-	page size or the largest section alignment.
-	3. If a section requires alignment higher than the minimum page size,
-	don't set p_align to the minimum page size.
-	4. If a section requires alignment higher than the maximum page size,
-	set p_align to the section alignment.
-	5. For objcopy, when the minimum page size != the maximum page size,
-	p_align may be set to the minimum page size while segments are aligned
-	to the maximum page size.  In this case, the input p_align will be
-	ignored and the maximum page size will be used to align the ouput
-	segments.
-	6. Update linker to disallow the common page size > the maximum page size.
-	7. Update linker to avoid the common page size > the maximum page size.
-	8. Adjust pru_irq_map-1.d to expect p_align == sh_addralign:
-
-	Section Headers:
-	  [Nr] Name   Type            Addr     Off    Size   ES Flg Lk Inf Al
-	  [ 0]        NULL            00000000 000000 000000 00      0   0  0
-	  [ 1] .text  PROGBITS        20000000 00007c 000004 00  AX  0   0  4
-	...
-	Program Headers:
-	  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
-	  LOAD           0x000074 0x00000000 0x00000000 0x00008 0x00008 RW  0x1
-	  LOAD           0x00007c 0x20000000 0x20000000 0x00004 0x00004 R E 0x4
-
-	vs.
-
-	Section Headers:
-	  [Nr] Name   Type            Addr     Off    Size   ES Flg Lk Inf Al
-	  [ 0]        NULL            00000000 000000 000000 00      0   0  0
-	  [ 1] .text  PROGBITS        20000000 00007c 000004 00  AX  0   0  4
-	...
-	Program Headers:
-	  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
-	  LOAD           0x000074 0x00000000 0x00000000 0x00008 0x00008 RW  0x1
-	  LOAD           0x00007c 0x20000000 0x20000000 0x00004 0x00004 R E 0x1
-
-	To enable this linker optimization, the backend should define ELF_P_ALIGN
-	to ELF_MINPAGESIZE.
-
-	bfd/
-
-		PR ld/28689
-		PR ld/28695
-		* elf-bfd.h (elf_backend_data): Add p_align.
-		* elf.c (assign_file_positions_for_load_sections): Set p_align
-		to the default p_align value while laying out segments aligning
-		to maximum page size or section alignment.
-		(elf_is_p_align_valid): New function.
-		(copy_elf_program_header): Call elf_is_p_align_valid to determine
-		if p_align is valid.
-		* elfxx-target.h (ELF_P_ALIGN): New.  Default to 0.
-		(elfNN_bed): Add ELF_P_ALIGN.
-		* elfxx-x86.h (ELF_P_ALIGN): New.  Set to ELF_MINPAGESIZE.
-
-	include/
-
-		PR ld/28689
-		PR ld/28695
-		* bfdlink.h (bfd_link_info): Add maxpagesize_is_set.
-
-	ld/
-
-		PR ld/28689
-		PR ld/28695
-		* emultempl/elf.em (gld${EMULATION_NAME}_handle_option): Set
-		link_info.maxpagesize_is_set for -z max-page-size=NNN.
-		* ldelf.c (ldelf_after_parse): Disallow link_info.commonpagesize
-		> link_info.maxpagesize.
-		* testsuite/ld-elf/elf.exp: Pass -z max-page-size=0x4000 to
-		linker to build mbind2a and mbind2b.
-		* testsuite/ld-elf/header.d: Add -z common-page-size=0x100.
-		* testsuite/ld-elf/linux-x86.exp: Add PR ld/28689 tests.
-		* testsuite/ld-elf/p_align-1.c: New file.
-		* testsuite/ld-elf/page-size-1.d: New test.
-		* testsuite/ld-elf/pr26936.d: Add -z common-page-size=0x1000.
-		* testsuite/ld-elf/seg.d: Likewise.
-		* testsuite/ld-scripts/rgn-at5.d: Likewise.
-		* testsuite/ld-pru/pru_irq_map-1.d: Append 1 to name.  Adjust
-		expected PT_LOAD segment alignment.
-		* testsuite/ld-pru/pru_irq_map-2.d: Append 2 to name.
-		* testsuite/ld-scripts/pr23571.d: Add -z max-page-size=0x1000.
-
-2022-01-05  Alan Modra  <amodra@gmail.com>
-
-	Adjust quoted-sym-names test
-	Some targets restrict symbol addresses in .text to instruction
-	boundaries.
-
-		* testsuite/gas/all/quoted-sym-names.s: Define syms in .data.
-		* testsuite/gas/all/quoted-sym-names.d: Adjust to suit.
-
-2022-01-05  Alan Modra  <amodra@gmail.com>
-
-	infinite recursion detected in gold testcase
-	gold/testsuite/icf_test.cc:32:5: error: infinite recursion detected [-Werror=infinite-recursion]
-	   32 | int kept_func()
-	      |     ^~~~~~~~~
-
-		* testsuite/icf_test.cc: Avoid infinite recursion error.
-
-2022-01-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld/x86: Update -z report-relative-reloc
-	Use 0x%v, instead of bfd_sprintf_vma, to report relative relocations.
-	Change linker relative relocations report from
-
-	tmpdir/dump: R_X86_64_IRELATIVE (offset: 0x0000000000002000, info: 0x0000000000000025, addend: 0x0000000000001007) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
-
-	to
-
-	tmpdir/dump: R_X86_64_IRELATIVE (offset: 0x2000, info: 0x25, addend: 0x1007) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
-
-	bfd/
-
-		* elfxx-x86.c (_bfd_x86_elf_link_report_relative_reloc): Use
-		0x%v instead of bfd_sprintf_vma.
-
-	ld/
-
-		* testsuite/ld-i386/report-reloc-1.l: Updated.
-		* testsuite/ld-x86-64/report-reloc-1.l: Likewise.
-
-2022-01-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Improve thin archive member error message
-	Improve thin archive member error message with:
-
-	ld: libbar.a(bar.o): error opening thin archive member: No such file or directory
-
-	instead of
-
-	ld: libbar.a: error adding symbols: No such file or directory
-
-		PR ld/28722
-		* archive.c (_bfd_get_elt_at_filepos): Add a pointer argument
-		for struct bfd_link_info.  Call linker callback when failing to
-		open thin archive member.
-		(_bfd_generic_get_elt_at_index): Pass NULL to
-		_bfd_get_elt_at_filepos.
-		(bfd_generic_openr_next_archived_file): Likewise.
-		* coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Add a pointer
-		argument for struct bfd_link_info and pass it to
-		_bfd_get_elt_at_filepos.
-		(alpha_ecoff_openr_next_archived_file): Pass NULL to
-		_bfd_get_elt_at_filepos.
-		(alpha_ecoff_get_elt_at_index): Likewise.
-		* coff-rs6000.c (_bfd_xcoff_openr_next_archived_file): Likewise.
-		* ecoff.c (ecoff_link_add_archive_symbols): Pass info to
-		backend->get_elt_at_filepos.
-		* elflink.c (elf_link_is_defined_archive_symbol): info to
-		_bfd_get_elt_at_filepos.
-		* libbfd-in.h (_bfd_get_elt_at_filepos): Add a pointer argument
-		for struct bfd_link_info.
-		* libbfd.h: Regenerate.
-		* libecoff.h (ecoff_backend_data): Add a pointer argument for
-		struct bfd_link_info to get_elt_at_filepos.
-		* linker.c (_bfd_generic_link_add_archive_symbols): Pass info to
-		_bfd_get_elt_at_filepos.
-
-2022-01-04  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb/testsuite: fix inferior-clone.exp for native-extended-gdbserver
-	003aae076207dbf32f98ba846158fc32669ef85f (gdb: Copy inferior properties
-	in clone-inferior) introduced a testcase that fails when testing with
-	the native-extended-gdbserver board:
-
-	    Running ../gdb/testsuite/gdb.base/inferior-clone.exp ...
-	    FAIL: gdb.base/inferior-clone.exp: inferior 2: clone-inferior
-	    FAIL: gdb.base/inferior-clone.exp: inferior 3: clone-inferior
-
-	The error is as follows:
-
-	    clone-inferior
-	    [New inferior 2]
-	    Added inferior 2 on connection 1 (extended-remote localhost:2346)
-	    (gdb) FAIL: gdb.base/inferior-clone.exp: inferior 2: clone-inferior
-
-	This fails because the testcase only expect the 'Added inferior 2' part
-	of the message.  The 'on connection 1 [...]' part is unexpected.
-
-	Fix by adjusting the testcase to a account for the possible trailing
-	part of the message.
-
-	Tested on x86_64-linux with native-extende-gdbserver and unix boards.
-
-	Change-Id: Ie3d6f04c9ffe9cab1fbda8ddf4935ee09b858c7a
-
-2022-01-04  Nick Clifton  <nickc@redhat.com>
-
-	Add ATTRIBUTE_UNUSED to load_build_id_debug_file()'s main_filename parameter.
-
-2022-01-04  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: don't pass nullptr to sigwait
-	I tried building GDB on GNU/Hurd, and ran into this warning:
-
-	  gdbsupport/scoped_ignore_signal.h:78:16: error: null argument where non-null required (argument 2) [-Werror=nonnull]
-
-	This is because in this commit:
-
-	  commit 99624310dd82542c389c89c2e55d8cae36bb74e1
-	  Date:   Sun Jun 27 15:13:14 2021 -0400
-
-	      gdb: fall back on sigpending + sigwait if sigtimedwait is not available
-
-	A call to sigwait was introduced that passes nullptr as the second
-	argument, this call is only reached if sigtimedwait is not supported.
-
-	The original patch was written for macOS, I assume on that target
-	passing nullptr as the second argument is fine.
-
-	On my GNU/Linux box, the man-page for sigwait doesn't mention that
-	nullptr is allowed for the second argument, so my assumption would be
-	that nullptr is not OK, and, if I change the '#ifdef
-	HAVE_SIGTIMEDWAIT' introduced by the above patch to '#if 0', and
-	rebuild on GNU/Linux, I see the same warning that I see on GNU/Hurd.
-
-	I propose that we stop passing nullptr as the second argument to
-	sigwait, and instead pass a valid int pointer.  The value returned in
-	the int can then be used in an assert.
-
-	For testing, I (locally) made the change to the #ifdef I mentioned
-	above, compiled GDB, and ran the usual tests, this meant I was using
-	sigwait instead on sigtimedwait on GNU/Linux, I saw no regressions.
-
-2022-01-04  Nick Clifton  <nickc@redhat.com>
-
-	Remove a spurious debugging message.
-		PR 28716
-		* dwarf.c (load_build_id_debug_file): Remove spurious printf.
-
-2022-01-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build breaker in gdb/cli/cli-logging.c
-	Fix build breaker in gdb/cli/cli-logging.c:
-	...
-	gdb/cli/cli-logging.c: In function \
-	  ‘void show_logging_enabled(ui_file*, int, cmd_list_element*, const char*)’:
-	gdb/gdbsupport/gdb_locale.h:28:28: error: cannot convert ‘char*’ to ‘ui_file*’
-	   28 | # define _(String) gettext (String)
-	      |                    ~~~~~~~~^~~~~~~~
-	      |                            |
-	      |                            char*
-	gdb/cli/cli-logging.c:202:25: note: in expansion of macro ‘_’
-	  202 |     fprintf_unfiltered (_("on: Logging is enabled.\n"));
-	      |                         ^
-	...
-
-	Build and tested on x86_64-linux.
-
-	Fixes: 45aec4e5ed8 ("[gdb/cli] Improve show logging output")
-
-2022-01-04  Jan Beulich  <jbeulich@suse.com>
-
-	x86/Intel: correct VFPCLASSP{S,D} handling when displacement is present
-	fits_in_disp8() can be called before ambiguous operands get resolved
-	or rejected (in process_suffix()), which requires that i.memshift be
-	non-negative to avoid an internal error. This case wasn't covered by
-	6c0946d0d28d ("x86: correct VFPCLASSP{S,D} operand size handling").
-
-2022-01-04  Jan Beulich  <jbeulich@suse.com>
-
-	gas: rework handling of backslashes in quoted symbol names
-	Strange effects can result from the present handling, e.g.:
-
-	.if 1
-	"backslash\\":
-	.endif
-
-	yields first (correctly) "missing closing `"'" but then also "invalid
-	character '\' in mnemonic" and further "end of file inside conditional".
-	Symbols names ending in \ are in principle not expressable with that
-	scheme.
-
-	Instead of recording whether a backslash was seen, inspect the
-	subsequent character right away. Only accept \\ (meaning a single
-	backslash in the resulting symbol name) and \" (meaning an embedded
-	double quote in the resulting symbol name) for now, warning about any
-	other combination.
-
-	While perhaps not necessary immediately, also permit concatenated
-	strings to form a symbol name. This may become useful if going forward
-	we would want to support \<octal> or \x<hex> sequences, where closing
-	and re-opening quotes can be useful to delimit such sequences.
-
-	The ELF "Multibyte symbol names" test gets switched away from using
-	.set, as that would now also mean excluding nios2 and pru. By using
-	.equiv instead, even the existing #notarget can be dropped. (For h8300
-	the .section directive additionally needs attributes specified, to avoid
-	a target specific warning.)
-
-2022-01-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Improve show logging output
-	Before commit 3b6acaee895 "Update more calls to add_prefix_cmd" we had the
-	following output for "show logging":
-	...
-	$ gdb -q -batch -ex "set trace-commands on" \
-	    -ex "set logging off" \
-	    -ex "show logging" \
-	    -ex "set logging on" \
-	    -ex "show logging"
-	+set logging off
-	+show logging
-	Future logs will be written to gdb.txt.
-	Logs will be appended to the log file.
-	Output will be logged and displayed.
-	Debug output will be logged and displayed.
-	+set logging on
-	+show logging
-	Currently logging to "gdb.txt".
-	Logs will be appended to the log file.
-	Output will be logged and displayed.
-	Debug output will be logged and displayed.
-	...
-
-	After that commit we have instead:
-	...
-	+set logging off
-	+show logging
-	debugredirect:  The logging output mode is off.
-	file:  The current logfile is "gdb.txt".
-	overwrite:  Whether logging overwrites or appends to the log file is off.
-	redirect:  The logging output mode is off.
-	+set logging on
-	+show logging
-	debugredirect:  The logging output mode is off.
-	file:  The current logfile is "gdb.txt".
-	overwrite:  Whether logging overwrites or appends to the log file is off.
-	redirect:  The logging output mode is off.
-	...
-	which gives less clear output for some subcommands.
-
-	OTOH, it's explicit about whether boolean values are on or off.
-
-	The new text seems to have been chosen to match the set/show help texts:
-	...
-	(gdb) help show logging
-	Show logging options.
-
-	List of show logging subcommands:
-
-	show logging debugredirect -- Show the logging debug output mode.
-	show logging file -- Show the current logfile.
-	show logging overwrite -- \
-	  Show whether logging overwrites or appends to the log file.
-	show logging redirect -- Show the logging output mode.
-	...
-
-	Make the show logging messages more clear, while still keep the boolean
-	values explicit, such that we have:
-	...
-	$ ./gdb.sh -q -batch -ex "show logging"
-	logging debugredirect:  off: \
-	  Debug output will go to both the screen and the log file.
-	logging enabled:  off: Logging is disabled.
-	logging file:  The current logfile is "gdb.txt".
-	logging overwrite:  off: Logging appends to the log file.
-	logging redirect:  off: Output will go to both the screen and the log file.
-	...
-
-	Tested on x86_64-linux.
-
-2022-01-03  Tom Tromey  <tromey@adacore.com>
-
-	Fix use of 'printf' in gdbtypes.c
-	An earlier patch of mine, commit 64b7cc50 ("Remove
-	gdb_print_host_address") inadvertently changed a function in
-	gdbtypes.c to use printf rather than printf_filtered.  This patch
-	fixes the problem.
-
-	Fix regression in page-logging.exp
-	Simon and Tom pointed out that page-logging.exp failed on their
-	machines.  Tom tracked this down to the "width" setting.  Since
-	there's no need in the test to change the width, it seems simplest to
-	remove the setting.  I confirmed that the test still fails if the fix
-	is backed out, ensuring that the test is still testing what it
-	purports to.
-
-	Small indentation fix in eval.c
-	I noticed that the AdaCore tree had a small divergence in eval.c -- it
-	had a fix for an indentation problem in binop_promote.  I'm checking
-	in this small fix as obvious.
-
-2022-01-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle for loop initial decl with gcc 4.8.5
-	When running test-case gdb.threads/schedlock-thread-exit.exp on a system with
-	system compiler gcc 4.8.5, I run into:
-	...
-	src/gdb/testsuite/gdb.threads/schedlock-thread-exit.c:33:3: error: \
-	  'for' loop initial declarations are only allowed in C99 mode
-	...
-
-	Fix this by:
-	- using -std=c99, or
-	- using -std=gnu99, in case that's required, or
-	- in the case of the jit test-cases, rewriting the for loops.
-
-	Tested on x86_64-linux, both with gcc 4.8.5 and gcc 7.5.0.
-
-2022-01-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-02  Tom Tromey  <tom@tromey.com>
-
-	Update copying.awk for _initialize declaration patch
-	Commit 6c265988 ("gdb: add back declarations for _initialize
-	functions") modified copying.c, but not copying.awk.  This patch
-	updates copying.awk to backport the appropriate fix.  This way, if
-	copying.awk is run again, it will create the correct output.
-
-	I'm checking this in as obvious.
-
-2022-01-02  Tom Tromey  <tom@tromey.com>
-
-	Use filtered output in print_i387_ext
-	print_i387_ext mostly uses filtered output, but one call in the middle
-	of the function uses the _unfiltered form.  This patch fixes this
-	call.  I'm checking this in as obvious.
-
-2022-01-02  Alan Modra  <amodra@gmail.com>
-
-	Update year range in copyright notice of binutils files
-	The result of running etc/update-copyright.py --this-year, fixing all
-	the files whose mode is changed by the script, plus a build with
-	--enable-maintainer-mode --enable-cgen-maint=yes, then checking
-	out */po/*.pot which we don't update frequently.
-
-	The copy of cgen was with commit d1dd5fcc38ead reverted as that commit
-	breaks building of bfp opcodes files.
-
-2022-01-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2022-01-01  Mike Frysinger  <vapier@gentoo.org>
-
-	gdb: copyright: fix a few comment typos
-
-	sim: ppc: drop natural types
-	These are almost entirely unused.  For the very few places using them,
-	replace with explicit signed types.  This matches what was done in the
-	common sim code.
-
-	sim: mips: clean up bad style/whitespace
-	This doesn't fix all the problems, but grabs a bunch of the more
-	obvious ones.
-
-	sim: tweak copyright lines for gnulib update-copyright
-	The regex it uses does not like so many leading spaces which causes
-	it to think the files lack copyright.  Trim them down so the script
-	can find & update them accordingly.
-
-	gdb: update sim mips testsuite copyright exemption
-	The sim testsuite was reorganized last year, so update the path.
-
-2022-01-01  Mike Frysinger  <vapier@gentoo.org>
-
-	unify 64-bit bfd checks
-	Move the 64-bit bfd logic out of bfd/configure.ac and into bfd64.m4
-	under config so it can be shared between all the other subdirs.
-
-	This replaces want64 with enable_64_bit_bfd which was already being
-	declared, but not used directly.
-
-2022-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	Update Copyright year in gdb/testsuite/gdb.arch/powerpc-power10.exp
-	This commit updates the copyright year range in the script
-	gdb/testsuite/gdb.arch/powerpc-power10.exp. The update was
-	performed by running gdb/copyright.py again, to make sure
-	that the copyright year range will be automatically updated
-	in years forward.
-
-2022-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	Fix copyright header in gdb/testsuite/gdb.arch/powerpc-power10.exp
-	The copyright year and holder line is slight malformed, missing
-	a space after a comma, and this is sufficient for gdb's
-	copyright.py script to miss this file during its automated
-	copyright year update.
-
-	This commit fixes this.
-
-2022-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	gdb/copyright.py: Add update-netbsd.sh to MULTIPLE_COPYRIGHT_HEADERS
-	Add gdb/syscalls/update-netbsd.sh to the reminder printed
-	at the end of the execution listing all the files where
-	a manual update of the copyright header is needed. This
-	scripts contains some inline code which includes a copyright
-	header.
-
-	Manual copyright year update of various GDB files
-	This commit updates the copyright year in some files where
-	we have a copyright year outside of the copyright year,
-	and thus are not included in gdb's copyright.py script.
-
-2022-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	Automatic Copyright Year update after running gdb/copyright.py
-	This commit brings all the changes made by running gdb/copyright.py
-	as per GDB's Start of New Year Procedure.
-
-	For the avoidance of doubt, all changes in this commits were
-	performed by the script.
-
-2022-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	Update Copyright Year in gdb, gdbserver and gdbreplay version output
-	This commit changes the copyright year printed by gdb, gdbserver
-	and gdbreplay when printing the tool's version.
-
-2022-01-01  Alan Modra  <amodra@gmail.com>
-
-	ubsan: next_char_of_string signed integer overflow
-	Squash another totally useless fuzz report that I should have ignored.
-
-		* read.c (next_char_of_string): Avoid integer overflow.
-
-2022-01-01  Alan Modra  <amodra@gmail.com>
-
-	ubsan: bfd_mach_o_build_commands shift exponent 64 is too large
-		* mach-o.c (bfd_mach_o_read_section_32): Limit alignment further.
-		(bfd_mach_o_read_section_64): Likewise.
-
-2022-01-01  Alan Modra  <amodra@gmail.com>
-
-	ubsan: signed integer multiply overflow
-	9223371018427387904 * 2 cannot be represented in type 'long', yes, but
-	we don't care.
-
-		* expr.c (expr): Avoid signed overflow.
-
-2022-01-01  Alan Modra  <amodra@gmail.com>
-
-	asan: Null-dereference in _bfd_xcoff_copy_private_bfd_data
-	sec->output_section will be NULL when objcopy removes sections.
-
-		* coff-rs6000.c (_bfd_xcoff_copy_private_bfd_data): Protect against
-		objcopy removing sections.
-
-2022-01-01  Alan Modra  <amodra@gmail.com>
-
-	ubsan: integer overflow in section filepos subtraction
-		* elf.c (assign_file_positions_for_non_load_sections): Avoid
-		signed integer overflow.
-
-2022-01-01  Alan Modra  <amodra@gmail.com>
-
-	Remove unnecessary ELF_MINPAGESIZE defines
-	The idea of this patch is to make it easy to see which targets (just
-	sparc) have ELF_MINPAGESIZE != ELF_COMMONPAGESIZE.
-
-		* elf32-arm.c (ELF_MINPAGESIZE): Don't define.
-		* elf32-metag.c: Likewise.
-		* elfnn-aarch64.c: Likewise.
-		* elf64-x86-64.c: Likewise.  Also don't redefine a bunch of other
-		macros for l1om elf64-target.h use that are unchanged from default.
-
-2022-01-01  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld-x86-64: Pass options to linker with "-Wl,"
-		* testsuite/ld-x86-64/x86-64.exp: Pass options to linker with
-		"-Wl,".
-
-2022-01-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-31  Tom Tromey  <tom@tromey.com>
-
-	Do not call reinitialize_more_filter from avr_io_reg_read_command
-	avr_io_reg_read_command is an ordinary gdb command, and so should not
-	be calling reinitialize_more_filter.  This patch removes it.  I'm
-	checking this in as obvious.  Tested by rebuilding.
-
-2021-12-31  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Define check_relocs_failed in elfxx-x86.h
-		* elf32-i386.c (check_relocs_failed): Moved to ...
-		* elfxx-x86.h (check_relocs_failed): Here.  New.
-		* elf64-x86-64.c (check_relocs_failed): Removed.
-
-	Define X86_PCREL_TYPE_P/X86_SIZE_TYPE_P in elfxx-x86.h
-		* elf32-i386.c: Don't include "elf/i386.h".
-		(X86_PCREL_TYPE_P): Removed.
-		(X86_SIZE_TYPE_P): Likewise.
-		(elf_i386_check_relocs): Pass false to NEED_DYNAMIC_RELOCATION_P.
-		(elf_i386_relocate_section): Pass false to
-		GENERATE_DYNAMIC_RELOCATION_P and COPY_INPUT_RELOC_P.
-		* elf64-x86-64.c: Don't include "elf/x86-64.h".
-		(X86_PCREL_TYPE_P): Removed.
-		(X86_SIZE_TYPE_P): Likewise.
-		(elf_x86_64_check_relocs): Pass true to NEED_DYNAMIC_RELOCATION_P
-		and X86_PCREL_TYPE_P.
-		(elf_x86_64_relocate_section): Pass true to X86_PCREL_TYPE_P,
-		X86_SIZE_TYPE_P, GENERATE_DYNAMIC_RELOCATION_P and
-		COPY_INPUT_RELOC_P.
-		* elfxx-x86.c: Don't include "elf/i386.h" nor "elf/x86-64.h".
-		* elfxx-x86.h (X86_64_PCREL_TYPE_P): New.
-		(I386_PCREL_TYPE_P): Likewise.
-		(X86_PCREL_TYPE_P): Likewise.
-		(X86_64_SIZE_TYPE_P): Likewise.
-		(I386_SIZE_TYPE_P): Likewise.
-		(X86_SIZE_TYPE_P): Likewise.
-		(NEED_DYNAMIC_RELOCATION_P): Add IS_X86_64 and pass it to
-		X86_PCREL_TYPE_P.
-		(COPY_INPUT_RELOC_P): Likewise.
-		(GENERATE_DYNAMIC_RELOCATION_P): Add IS_X86_64, pass it to
-		X86_PCREL_TYPE_P and X86_SIZE_TYPE_P.
-
-2021-12-31  Tamar Christina  <tamar.christina@arm.com>
-
-	ld: fix coff PE SEH
-	COFF_WITH_pex64 and COFF_WITH_peAArch64 can't be true at the same time.
-	That means that two conditionals that control the sorting of the .pdata section
-	became a falsum.
-
-	The testsuite doesn't catch this because the linker does the sorting and to link
-	you require library support from the unwinder so we can't test from binutils in
-	isolation.
-
-	bfd/ChangeLog:
-
-	2021-12-31  Tamar Christina  <tamar.christina@arm.com>
-
-		PR ld/28682
-		* peXXigen.c: Fix conditional.
-
-2021-12-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Use filtered output in show callbacks
-	"show" command callbacks, like most ordinary gdb commands, should use
-	filtered output.  I found a few that did not, so this patch changes
-	them to use the filtered form.
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Consistently Use ui_file parameter to show callbacks
-	I happened to notice that one "show" callback was printing to
-	gdb_stdout rather than to the passed-in ui_file parameter.  I went
-	through all such callbacks and fixed them to consistently use the
-	ui_file.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Use gdb_stdlog for MI debugging
-	When MI debugging is enabled, the logging output should be sent to
-	gdb_stdlog.  This is part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Use debug_prefixed_printf_cond_nofunc in index-cache
-	This changes index-cache.c to use debug_prefixed_printf_cond_nofunc.
-	As a side effect, logs are now written to gdb_stdlog.  This is part of
-	PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Send minsym logging to gdb_stdlog
-	This changes minsyms.c to send logging output to gdb_stdlog.  This is
-	part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Use gdb_stdlog for separate debug file logging
-	This changes the separate debug file logging code (spread across two
-	files) to use gdb_stdlog for its output.  This is part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Use debug_prefixed_printf_cond_nofunc in machoread
-	This changes machoread.c to use debug_prefixed_printf_cond_nofunc.  As
-	a side effect, the logs are now written to gdb_stdlog.  This is part
-	of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Use debug_prefixed_printf_cond_nofunc in microblaze.c
-	This changes microblaze.c to use the standard logging macro.  As a
-	side effect, logs will now go to gdb_stdlog.  This is part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Send debugging data to gdb_stdlog in mips-linux-nat.c
-	This changes mips-linux-nat.c to send some logging output to
-	gdb_stdlog, rather than stdout.  This is part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Send arch-utils error messages to gdb_stderr
-	This changes arch-utils.c to send some error messages to gdb_stderr.
-	This is part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Use correct stream for process record output
-	The process record code often emits unfiltered output.  In some cases,
-	this output ought to go to gdb_stderr (but see below).  In other
-	cases, the output is guarded by a logging variable and so ought to go
-	to gdb_stdlog.  This patch makes these changes.
-
-	Note that in many cases, the output to stderr is followed by a
-	"return -1", which is how process record indicates an error.  It seems
-	to me that calling error here would be preferable, because, in many
-	cases, that's all the caller does when it sees a -1.  However, I
-	haven't made this change.
-
-	This is part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Send jit.c errors to gdb_stderr
-	jit.c writes some error messages to gdb_stdout, but using gdb_stderr
-	is better.  This is part of PR gdb/7233.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7233
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Fix logging redirection bug with pager
-	I noticed yesterday that if gdb output is redirected to a file, the
-	pager will still be active.  This is irritating, because the output
-	isn't actually visible -- just the pager prompt.  Looking in bugzilla,
-	I found that this had been filed 17 years ago, as PR cli/8798.
-
-	This patch fixes the bug.  It changes the pagination code to query the
-	particular ui-file to see if paging is allowable.  The ui-file
-	implementations are changed so that only the stdout implementation and
-	a tee (where one sub-file is stdout) can page.
-
-	Regression tested on x86-64 Fedora 34.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=8798
-
-2021-12-29  Tom Tromey  <tom@tromey.com>
-
-	Remove unusual use of core_addr_eq and core_addr_hash
-	gdbtypes.h uses core_addr_eq and core_addr_hash in a weird way: taking
-	the address of a member and then passing this (as a void*) to these
-	functions.
-
-	It seems better to simply inline the ordinary code here.  CORE_ADDR is
-	a scalar so it can be directly compared, and the identity hash
-	function seems safe to assume as well.
-
-	After this, core_addr_eq and core_addr_hash are unused, so this patch
-	removes them.
-
-2021-12-29  Lancelot SIX  <lancelot.six@amd.com>
-
-	gdb: Copy inferior properties in clone-inferior
-	This commit ensures that the following settings are cloned from one
-	inferior to the new one when processing the clone-inferior command:
-	  - inferior-tty
-	  - environment variables
-	  - cwd
-	  - args
-
-	Some of those parameters can be passed as command line arguments to GDB
-	(-args and -tty), so one could expect the clone-inferior to respect
-	those flags.  The following debugging session illustrates that:
-
-	    gdb -nx -quiet -batch \
-	         -ex "show args" \
-	         -ex "show inferior-tty" \
-	         -ex "clone-inferior" \
-	         -ex "inferior 2" \
-	         -ex "show args" \
-	         -ex "show inferior-tty" \
-	         -tty=/some/tty \
-	         -args echo foo bar
-	    Argument list to give program being debugged when it is started is "foo bar".
-	    Terminal for future runs of program being debugged is "/some/tty".
-	    [New inferior 2]
-	    Added inferior 2.
-	    [Switching to inferior 2 [<null>] (/bin/echo)]
-	    Argument list to give program being debugged when it is started is "".
-	    Terminal for future runs of program being debugged is "".
-
-	The other properties this commit copies on clone (i.e. CWD and the
-	environment variables) are included since they are related (in the sense
-	that they influence the runtime behavior of the program) even if they
-	cannot be directly set using command line switches.
-
-	There is a chance that this patch changes existing user workflow.  I
-	think that this change is mostly harmless.  If users want to start a new
-	inferior based on an existing one, they probably already propagate those
-	settings to the new inferior in some way.
-
-	Tested on x86_64-linux.
-
-	Change-Id: I3b1f28b662f246228b37bb24c2ea1481567b363d
-
-2021-12-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf32-i386: Fix a typo in GOT comments
-	Entry offsets in the global offset table are multiples of 4, not 8.
-
-		* elf32-i386.c (elf_i386_relocate_section): Fix a typo in GOT
-		comments.
-
-2021-12-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Don't check non-thin archive member file size
-	There is no need to check member file size for thin archive member.
-
-		* bfdio.c (bfd_bread): Don't check non-thin archive member file
-		size.
-
-2021-12-28  Alan Modra  <amodra@gmail.com>
-
-	gas reloc sorting
-	In some cases, eg. riscv_pre_output_hook, gas generates out-of-order
-	relocations.  Various places in the linker assume relocs are sorted
-	by increasing r_offset, which is normally the case.  Provide
-	GAS_SORT_RELOCS to handle unsorted relocs.
-
-	bfd/
-		PR 28709
-		* elf32-nds32.c (nds32_insertion_sort): Make static.
-		* elf32-nds32.h (nds32_insertion_sort): Delete declaration.
-	gas/
-		PR 28709
-		* write.c (write_relocs): Implement reloc sorting by r_offset
-		when GAS_SORT_RELOCS.
-		* config/tc-nds32.c (compar_relent, nds32_set_section_relocs): Delete.
-		* config/tc-nds32.h (nds32_set_section_relocs): Don't declare.
-		(SET_SECTION_RELOCS): Don't define.
-		(GAS_SORT_RELOCS): Define.
-		* config/tc-riscv.h (GAS_SORT_RELOCS): Define.
-
-2021-12-28  jiawei  <jiawei@iscas.ac.cn>
-
-	ld: Fix testcase errors due to -shared not support.
-	Reviewed-by: Jim Wilson <jim.wilson.gcc@gmail.com>
-
-	ld/ChangeLog:
-
-	        * testsuite/ld-ctf/ctf.exp: Add shared lib check.
-	        * testsuite/ld-plugin/lto.exp: Add lto shared check.
-
-2021-12-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-27  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Update comments for check_relocs in elf_backend_data
-	Since
-
-	commit 5c3261b0e834647cf9eb555320e20871b7854f98
-	Author: H.J. Lu <hjl.tools@gmail.com>
-	Date:   Mon Oct 16 03:49:54 2017 -0700
-
-	    ELF: Call check_relocs after opening all inputs
-
-	check_relocs is called after opening all inputs.
-
-		* elf-bfd.h (elf_backend_data::check_relocs): Update comments.
-
-2021-12-27  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Remove emultempl/linux.em
-	Remove emultempl/linux.em whose last usage was removed by
-
-	commit c65c21e1ffd1e02d9970a4bca0b7e384788a50f0
-	Author: Alan Modra <amodra@gmail.com>
-	Date:   Mon Apr 16 22:14:01 2018 +0930
-
-	    various i386-aout and i386-coff target removal
-
-	    Also tidies some other aout leftovers in binutils-common.exp.
-
-2021-12-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-24  Tom Tromey  <tom@tromey.com>
-
-	Remove gdb_print_host_address
-	gdb_print_host_address is just a simple wrapper around
-	fprintf_filtered.  However, it is readily replaced in all callers by a
-	combination of %s and call to host_address_to_string.  This also
-	simplifies the code, so I think it's worthwhile to remove this
-	function.
-
-	Regression tested on x86-64 Fedora 64.
-
-2021-12-24  Tom Tromey  <tom@tromey.com>
-
-	Move gdb_bfd_errmsg to gdb_bfd.c
-	gdb_bfd.c contains most of gdb's BFD-related utility functions.
-	However, gdb_bfd_errmsg is in utils.c.  It seemed better to me to move
-	this out of util.[ch] and into the BFD-related file instead.
-
-	Tested by rebuilding.
-
-2021-12-24  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Rewrite the csr testcases.
-	Maskray (Fangrui Song) had suggested me before that we should combine
-	multiple testcases into one file as possible as we can.  So that we can
-	more easily understand what these test cases are testing, and easier to
-	maintain.  Therefore, this patch rewrites all csr testcases, to make them
-	more clean.
-
-	gas/
-		* testsuite/gas/riscv/csr-fail-nonexistent.d: Renamed from
-		priv-reg-fail-nonexistent testcase.
-		* testsuite/gas/riscv/csr-fail-nonexistent.: Likewise.
-		* testsuite/gas/riscv/csr-fail-nonexistent.s: Likewise.
-		* testsuite/gas/riscv/csr-insns-pseudo-noalias.d: Renamed from
-		priv-reg-pseudo testcase.
-		* testsuite/gas/riscv/csr-insns-pseudo.d: Likewise.
-		* testsuite/gas/riscv/csr-insns-pseudo.s: Likewise.
-		* testsuite/gas/riscv/csr-insns-read-only.d: Renamed from
-		priv-reg-fail-read-only-02 testcase.
-		* testsuite/gas/riscv/csr-insns-read-only.l: Likewise.
-		* testsuite/gas/riscv/csr-insns-read-only.s: Likewise.
-		* testsuite/gas/riscv/h-ext-32.d: Moved hypervisor csrs to csr.s.
-		* testsuite/gas/riscv/h-ext-32.s: Likewise.
-		* testsuite/gas/riscv/h-ext-64.d: Likewise.
-		* testsuite/gas/riscv/h-ext-64.s: Likewise.
-		* testsuite/gas/riscv/csr.s: Renamed from priv-reg.s, and then
-		added the hypervisor csrs.
-		* testsuite/gas/riscv/csr-version-1p9p1.d: The csr testcase when
-		the privileged spec is 1.9.1.  Also tested all invalid csr warnings
-		when -mcsr-check is enabled.
-		* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p10.d: Likewise, but the
-		privileged spec is 1.10..
-		* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p11.d: Likewise, but the
-		privileged spec is 1.11.
-		* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/csr-version-1p12.d: Likewise, but the
-		privileged spec is 1.12.
-		* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
-		* testsuite/gas/riscv/priv-reg*: Removed or Renamed.
-
-2021-12-24  Vineet Gupta  <vineetg@rivosinc.com>
-
-	RISC-V: Hypervisor ext: support Privileged Spec 1.12
-	This is the Hypervisor Extension 1.0
-
-	 - Hypervisor Memory-Management Instructions
-	   HFENCE.VVMA, HFENCE.GVMA,
-
-	 - Hypervisor Virtual Machine Load and Store Instructions
-	   HLV.B, HLV.BU,          HSV.B,
-	   HLV.H, HLV.HU, HLVX.HU, HSB.H,
-	   HLV.W, HLV.WU, HLVX.WU, HSV.W,
-	   HLV.D,                  HSV.D
-
-	 - Hypervisor CSRs (some new, some address changed)
-	   hstatus, hedeleg, hideleg, hie, hcounteren, hgeie, htval, hip, hvip,
-	   htinst, hgeip, henvcfg, henvcfgh, hgatp, hcontext, htimedelta, htimedeltah,
-	   vsstatus, vsie, vstvec, vsscratch, vsepc, vscause, vstval, vsip, vsatp,
-
-	Note that following were added already as part of svinval extension
-	support:
-	   HINVAL.GVMA, HINVAL.VVMA
-
-	Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
-	Reviewed-by: Nelson Chu <nelson.chu@sifive.com>
-
-	bfd/
-		* cpu-riscv.c (riscv_priv_specs): Added entry for 1.12.
-		* cpu-riscv.h (enum riscv_spec_class): Added PRIV_SPEC_CLASS_1P12.
-	gas/
-		* config/tc-riscv.c (abort_version): Updated comment.
-		(validate_riscv_insn): Annotate switch-break.
-		* testsuite/gas/riscv/h-ext-32.d: New testcase for hypervisor.
-		* testsuite/gas/riscv/h-ext-32.s: Likewise.
-		* testsuite/gas/riscv/h-ext-64.d: Likewise.
-		* testsuite/gas/riscv/h-ext-64.s: Likewise.
-	include/
-		* opcode/riscv-opc.h: Added encodings for hypervisor csrs and
-		instrcutions.
-	opcodes/
-		* riscv-opc.c (riscv_opcodes): Added hypervisor instrcutions.
-
-2021-12-24  Vineet Gupta  <vineetg@rivosinc.com>
-
-	RISC-V: Hypervisor ext: drop Privileged Spec 1.9.1 implementation/tests
-	This makes way for a clean 1.12 based Hypervisor Ext support.
-
-	There are no known implementors of 1.9.1 H-ext. (Per Jim, kendryte k210
-	is based on priv spec 1.9.1, but it seems unlikely that they implemented
-	H-ext).
-
-	Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
-	Reviewed-by: Nelson Chu <nelson.chu@sifive.com>
-
-	gas/
-		* testsuite/gas/riscv/csr-dw-regnums.d: Drop the hypervisor csrs
-		defined in the privileged spec 1.9.1.
-		* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
-		* testsuite/gas/riscv/priv-reg-fail-read-only-01.s: Likewise.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p10.l: Likewise.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p11.l: Likewise.
-		* testsuite/gas/riscv/priv-reg-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/priv-reg.s: Likewise.
-	include/
-		* opcode/riscv-opc.h: Drop the hypervisor csrs defined in the
-		privileged spec 1.9.1.
-
-2021-12-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-23  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: resolve some duplicate testnames in gdb.mi
-	Set of fixes to resolve some duplicate test names in the gdb.mi/
-	directory.  There should be no real test changes after this set of
-	fixes, they are all either:
-
-	  - Adding with_test_prefix type constructs to make test names unique,
-	    or
-
-	  - Changing the test name to be more descriptive, or better reflect
-	    the test being run.
-
-2021-12-23  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/remote: handle attach when stop packet lacks thread-id
-	Bug PR gdb/28405 reports a regression when using attach with an
-	extended-remote target.  In this case the target is not including a
-	thread-id in the stop packet it sends back after the attach.
-
-	The regression was introduced with this commit:
-
-	  commit 8f66807b98f7634c43149ea62e454ea8f877691d
-	  Date:   Wed Jan 13 20:26:58 2021 -0500
-
-	      gdb: better handling of 'S' packets
-
-	The problem is that when GDB processes the stop packet, it sees that
-	there is no thread-id and so has to "guess" which thread the stop
-	should apply to.
-
-	In this case the target only has one thread, so really, there's no
-	guessing needed, but GDB still runs through the same process, this
-	shouldn't cause us any problems.
-
-	However, after the above commit, GDB now expects itself to be more
-	internally consistent, specifically, only a thread that GDB thinks is
-	resumed, can be a candidate for having stopped.
-
-	It turns out that, when GDB attaches to a process through an
-	extended-remote target, the threads of the process being attached too,
-	are not, initially, marked as resumed.
-
-	And so, when GDB tries to figure out which thread the stop might apply
-	too, it finds no threads in the processes marked resumed, and so an
-	assert triggers.
-
-	In extended_remote_target::attach we create a new thread with a call
-	to add_thread_silent, rather than remote_target::remote_add_thread,
-	the reason is that calling the latter will result in a call to
-	'add_thread' rather than 'add_thread_silent'.  However,
-	remote_target::remote_add_thread includes additional
-	actions (i.e. calling remote_thread_info::set_resumed and set_running)
-	which are missing from extended_remote_target::attach.  These missing
-	calls are what would serve to mark the new thread as resumed.
-
-	In this commit I propose that we add an extra parameter to
-	remote_target::remote_add_thread.  This new parameter will force the
-	new thread to be added with a call to add_thread_silent.  We can now
-	call remote_add_thread from the ::attach method, the extra
-	actions (listed above) will now be performed, and the thread will be
-	left in the correct state.
-
-	Additionally, in PR gdb/28405, a segfault is reported.  This segfault
-	triggers when 'set debug remote 1' is used before trying to reproduce
-	the original assertion failure.  The cause of this is in
-	remote_target::select_thread_for_ambiguous_stop_reply, where we do
-	this:
-
-	  remote_debug_printf ("first resumed thread is %s",
-			       pid_to_str (first_resumed_thread->ptid).c_str ());
-	  remote_debug_printf ("is this guess ambiguous? = %d", ambiguous);
-
-	  gdb_assert (first_resumed_thread != nullptr);
-
-	Notice that when debug printing is on we dereference
-	first_resumed_thread before we assert that the pointer is not
-	nullptr.  This is the cause of the segfault, and is resolved by moving
-	the assert before the debug printing code.
-
-	I've extended an existing test, ext-attach.exp, so that the original
-	test is run multiple times; we run in the original mode, as normal,
-	but also, we now run with different packets disabled in gdbserver.  In
-	particular, disabling Tthread would trigger the assertion as it was
-	reported in the original bug.  I also run the test in all-stop and
-	non-stop modes now for extra coverage, we also run the tests with
-	target-async enabled, and disabled.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28405
-
-2021-12-23  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: on x86-64 non-trivial C++ objects are returned in memory
-	Fixes PR gdb/28681.  It was observed that after using the `finish`
-	command an incorrect value was displayed in some cases.  Specifically,
-	this behaviour was observed on an x86-64 target.
-
-	Consider this test program:
-
-	  struct A
-	  {
-	    int i;
-
-	    A ()
-	    { this->i = 0; }
-	    A (const A& a)
-	    { this->i = a.i; }
-	  };
-
-	  A
-	  func (int i)
-	  {
-	    A a;
-	    a.i = i;
-	    return a;
-	  }
-
-	  int
-	  main ()
-	  {
-	    A a = func (3);
-	    return a.i;
-	  }
-
-	And this GDB session:
-
-	  $ gdb -q ex.x
-	  Reading symbols from ex.x...
-	  (gdb) b func
-	  Breakpoint 1 at 0x401115: file ex.cc, line 14.
-	  (gdb) r
-	  Starting program: /home/andrew/tmp/ex.x
-
-	  Breakpoint 1, func (i=3) at ex.cc:14
-	  14	  A a;
-	  (gdb) finish
-	  Run till exit from #0  func (i=3) at ex.cc:14
-	  main () at ex.cc:23
-	  23	  return a.i;
-	  Value returned is $1 = {
-	    i = -19044
-	  }
-	  (gdb) p a
-	  $2 = {
-	    i = 3
-	  }
-	  (gdb)
-
-	Notice how after the `finish` the contents of $1 are junk, but, when I
-	immediately ask for the value of `a`, I get back the correct value.
-
-	The problem here is that after the finish command GDB calls the
-	function amd64_return_value to figure out where the return value can
-	be found (on x86-64 targets anyway).
-
-	This function makes the wrong choice for the struct A in our case, as
-	sizeof(A) <= 8, then amd64_return_value decides that A will be
-	returned in a register.  GDB then reads the return value register an
-	interprets the contents as an instance of A.
-
-	Unfortunately, A is not trivially copyable (due to its copy
-	constructor), and the sys-v specification for argument and return
-	value passing, says that any non-trivial C++ object should have space
-	allocated for it by the caller, and the address of this space is
-	passed to the callee as a hidden first argument.  The callee should
-	then return the address of this space as the return value.
-
-	And so, the register that GDB is treating as containing an instance of
-	A, actually contains the address of an instance of A (in this case on
-	the stack), this is why GDB shows the incorrect result.
-
-	The call stack within GDB for where we actually go wrong is this:
-
-	  amd64_return_value
-	    amd64_classify
-	      amd64_classify_aggregate
-
-	And it is in amd64_classify_aggregate that we should be classifying
-	the type as AMD64_MEMORY, instead of as AMD64_INTEGER as we currently
-	do (via a call to amd64_classify_aggregate_field).
-
-	At the top of amd64_classify_aggregate we already have this logic:
-
-	  if (TYPE_LENGTH (type) > 16 || amd64_has_unaligned_fields (type))
-	    {
-	      theclass[0] = theclass[1] = AMD64_MEMORY;
-	      return;
-	    }
-
-	Which handles some easy cases where we know a struct will be placed
-	into memory, that is (a) the struct is more than 16-bytes in size,
-	or (b) the struct has any unaligned fields.
-
-	All we need then, is to add a check here to see if the struct is
-	trivially copyable.  If it is not then we know the struct will be
-	passed in memory.
-
-	I originally structured the code like this:
-
-	  if (TYPE_LENGTH (type) > 16
-	      || amd64_has_unaligned_fields (type)
-	      || !language_pass_by_reference (type).trivially_copyable)
-	    {
-	      theclass[0] = theclass[1] = AMD64_MEMORY;
-	      return;
-	    }
-
-	This solved the example from the bug, and my small example above.  So
-	then I started adding some more extensive tests to the GDB testsuite,
-	and I ran into a problem.  I hit this error:
-
-	  gdbtypes.h:676: internal-error: loc_bitpos: Assertion `m_loc_kind == FIELD_LOC_KIND_BITPOS' failed.
-
-	This problem is triggered from:
-
-	  amd64_classify_aggregate
-	    amd64_has_unaligned_fields
-	      field::loc_bitpos
-
-	Inside the unaligned field check we try to get the bit position of
-	each field.  Unfortunately, in some cases the field location is not
-	FIELD_LOC_KIND_BITPOS, but is FIELD_LOC_KIND_DWARF_BLOCK.
-
-	An example that shows this bug is:
-
-	  struct B
-	  {
-	    short j;
-	  };
-
-	  struct A : virtual public B
-	  {
-	    short i;
-
-	    A ()
-	    { this->i = 0; }
-	    A (const A& a)
-	    { this->i = a.i; }
-	  };
-
-	  A
-	  func (int i)
-	  {
-	    A a;
-	    a.i = i;
-	    return a;
-	  }
-
-	  int
-	  main ()
-	  {
-	    A a = func (3);
-	    return a.i;
-	  }
-
-	It is the virtual base class, B, that causes the problem.  The base
-	class is represented, within GDB, as a field within A.  However, the
-	location type for this field is a DWARF_BLOCK.
-
-	I spent a little time trying to figure out how to convert the
-	DWARF_BLOCK to a BITPOS, however, I realised that, in this case at
-	least, conversion is not needed.
-
-	The C++ standard says that a class is not trivially copyable if it has
-	any virtual base classes.  And so, in this case, even if I could
-	figure out the BITPOS for the virtual base class fields, I know for
-	sure that I would immediately fail the trivially_copyable check.  So,
-	lets just reorder the checks in amd64_classify_aggregate to:
-
-	  if (TYPE_LENGTH (type) > 16
-	      || !language_pass_by_reference (type).trivially_copyable
-	      || amd64_has_unaligned_fields (type))
-	    {
-	      theclass[0] = theclass[1] = AMD64_MEMORY;
-	      return;
-	    }
-
-	Now, if we have a class with virtual bases we will fail quicker, and
-	avoid the unaligned fields check completely.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28681
-
-2021-12-23  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make use of SCOPE_EXIT to manage thread executing state
-	While working on another patch relating to how GDB manages threads
-	executing and resumed state, I spotted the following code in
-	record-btrace.c:
-
-	  executing = tp->executing ();
-	  set_executing (proc_target, inferior_ptid, false);
-
-	  id = null_frame_id;
-	  try
-	    {
-	      id = get_frame_id (get_current_frame ());
-	    }
-	  catch (const gdb_exception &except)
-	    {
-	      /* Restore the previous execution state.  */
-	      set_executing (proc_target, inferior_ptid, executing);
-
-	      throw;
-	    }
-
-	  /* Restore the previous execution state.  */
-	  set_executing (proc_target, inferior_ptid, executing);
-
-	  return id;
-
-	I notice that we only catch the exception so we can call
-	set_executing, and this is the same call to set_executing that we need
-	to perform in the non-exception return path.
-
-	This would be much cleaner if we could use SCOPE_EXIT to avoid the
-	try/catch, so lets do that.
-
-	While cleaning this up, I also applied a similar patch to
-	record-full.c, though there's no try/catch in that case, but using
-	SCOPE_EXIT makes the code safe if, in the future, we do start throwing
-	exceptions.
-
-	There should be no user visible changes after this commit.
-
-2021-12-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-22  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/doc: add some index entries relating to mi-async setting
-	I noticed that the mi-async setting was not referenced from the index
-	in any way, this commit tries to rectify that a bit.
-
-	The @cindex lines I think are not controversial, these same index
-	entries are used elsewhere in the manual for async related topics (see
-	@node Background Execution).
-
-	The only bit that might be controversial is that I've added a @kindex
-	entry for 'set mi-async' when the command is documented as '-gdb-set
-	mi-async' (with a similar difference for the show/-gdb-show).
-
-	My reasoning here is that nothing else is indexed under -gdb-set or
-	-gdb-show, and as -gdb-set/-gdb-show are just the MI equivalent for
-	set/show anything that is documented under set/show can be adjusted
-	using -gdb-set/-gdbshow, and so, I've tried to keep the index
-	consistent for mi-async.
-
-2021-12-22  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: convert 'set debug lin-lwp' to a boolean command
-	Convert the 'set debug lin-lwp' command to a boolean.  Adds a new
-	LINUX_NAT_SCOPED_DEBUG_ENTER_EXIT macro, and makes use of it in one
-	place (linux_nat_target::stop).
-
-	The manual entry for 'set debug lin-lwp' is already vague about
-	exactly what arguments this command takes, and the description talks
-	about turning debug on and off, so I don't think there's any updates
-	required there.
-
-	I have updated the doc strings shown when the users enters 'help show
-	debug lin-lwp' or 'help show debug lin-lwp'.  The old title lines used
-	to talk about the 'GNU/Linux lwp module', but this debug flag is now
-	used for any native linux target debug, so we now talk about
-	'GNU/Linux native target'.  The body string for this setting has been
-	changed from 'Enables printf debugging output.' to 'When on, print
-	debug messages relating to the GNU/Linux native target.', the old
-	value looks like a cut&paste error to me.
-
-2021-12-22  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add threads debugging switch
-	Add new commands:
-
-	  set debug threads on|off
-	  show debug threads
-
-	Prints additional debug information relating to thread creation and
-	deletion.
-
-	GDB already announces when threads are created of course.... most of
-	the time, but sometimes threads are added silently, in which case this
-	debug message is the only mechanism to see the thread being added.
-	Also, though GDB does announce when a thread exits, it doesn't
-	announce when the thread object is deleted, I've added a debug message
-	for that.
-
-	Additionally, having message printed through the debug system will
-	cause the messages to be nested to an appropriate depth when other
-	debug sub-systems are turned on (especially things like `infrun` and
-	`lin-lwp`).
-
-2021-12-22  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Update Scalar Crypto testcases.
-	Add opcodes in testcases to make sure every instruction generate
-	right opcode after disassemble.
-
-	gas/ChangeLog:
-
-	        * testsuite/gas/riscv/k-ext-64.d: Add opcode detect.
-	        * testsuite/gas/riscv/k-ext.d: Ditto.
-	        * testsuite/gas/riscv/zbkb-32.d: Ditto.
-	        * testsuite/gas/riscv/zbkb-64.d: Ditto.
-	        * testsuite/gas/riscv/zbkc-32.d: Ditto.
-	        * testsuite/gas/riscv/zbkc-64.d: Ditto.
-	        * testsuite/gas/riscv/zbkx-32.d: Ditto.
-	        * testsuite/gas/riscv/zbkx-64.d: Ditto.
-	        * testsuite/gas/riscv/zknd-32.d: Ditto.
-	        * testsuite/gas/riscv/zknd-64.d: Ditto.
-	        * testsuite/gas/riscv/zkne-32.d: Ditto.
-	        * testsuite/gas/riscv/zkne-64.d: Ditto.
-	        * testsuite/gas/riscv/zknh-32.d: Ditto.
-	        * testsuite/gas/riscv/zknh-64.d: Ditto.
-	        * testsuite/gas/riscv/zksed-32.d: Ditto.
-	        * testsuite/gas/riscv/zksed-64.d: Ditto.
-	        * testsuite/gas/riscv/zksh-32.d: Ditto.
-	        * testsuite/gas/riscv/zksh-64.d: Ditto.
-
-2021-12-22  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbarch-components.py: change empty "params" tuples to empty lists
-	During review, it was suggested to change the "params" parameter from a
-	tuple to a list, for esthetic reasons.  The empty ones are still tuples
-	though, they should probably be changed to be empty lists, for
-	consistency.  It does not change anything in the script result.
-
-	Change-Id: If13c6c527aa167a5ee5b45740e5f1bda1e9517e4
-
-2021-12-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-21  Luis Machado  <luis.machado@linaro.org>
-
-	[AArch64] Fix typo in error messages
-	Fix mispelling of PROT_ME to PROT_MTE in the error messages.
-
-2021-12-21  Joel Sherrill  <joel@rtems.org>
-
-	Obsolete m32c-rtems and m32r-rtems
-	2020-12-20  Joel Sherrill <joel@rtems.org>
-
-	bfd/
-		* config.bfd (m32c-*-rtems*): Remove target.
-
-	ld/
-		* configure.tgt (m32c-*-rtems*): Remove target.
-		* configure.tgt (m32r-*-rtems*): Remove target.
-
-2021-12-21  Jan Beulich  <jbeulich@suse.com>
-
-	x86: -mfence-as-lock-add=yes doesn't work for 16-bit mode
-	Rather than trying to fix this (which would require making an assumption
-	on the upper half of %esp being zero), simply issue an error. While at
-	it, since the generated code is in conflict with -momit-lock-prefix=yes,
-	issue an error in that case as well.
-
-	gas/ELF: avoid below-base ref in obj_elf_parse_section_letters()
-	We would better be prepared for 'm' being the first character of the
-	incoming string.
-
-2021-12-21  Alan Modra  <amodra@gmail.com>
-
-	Typo fixes in binutils doc
-		* doc/binutils.texi: Fix typos.
-
-2021-12-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-20  Tom Tromey  <tom@tromey.com>
-
-	Remove print_spaces
-	This removes the print_spaces helper function, in favor of using the
-	"*%s" idiom that's already used in many places in gdb.  One spot (in
-	symmisc.c) is changed to use print_spaces_filtered, because the rest
-	of that function is using filtered output.  (This highlights one way
-	that the printf idiom is better -- this error is harder to make when
-	using that.)
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-12-20  Tom Tromey  <tom@tromey.com>
-
-	Remove puts_debug
-	I noticed that puts_debug isn't used in the tree.  git log tells me
-	that the last use was removed in 2015:
-
-	    commit 40e0b27177e747600d3ec186458fe0e482a1cf77
-	    Author: Pedro Alves <palves@redhat.com>
-	    Date:   Mon Aug 24 15:40:26 2015 +0100
-
-		Delete the remaining ROM monitor targets
-
-	... and this commit mentions that the code being removed here probably
-	hadn't worked for 6 years prior to that.
-
-	Based on this, I'm removing puts_debug.  I don't think it's useful.
-	Tested by rebuilding.
-
-2021-12-20  Tom Tromey  <tom@tromey.com>
-
-	Make n_spaces return a const char *
-	n_spaces keeps the spaces in a static buffer.  If a caller overwrites
-	these, it may give an incorrect result to a subsequent caller.  So,
-	make the return type const to help avoid this outcome.
-
-2021-12-20  Enze Li  <lienze2010@hotmail.com>
-
-	Add Enze Li to gdb/MAINTAINERS
-
-2021-12-20  Joel Brobecker  <brobecker@adacore.com>
-
-	gdb/ada-exp.y: Reformat comment to follow GDB's coding standards
-	This commit reformats a comment in gdb/ada-exp.y to avoid
-	the leading '*' at the beginning of each line of the comment.
-
-	gdb/ada-lang.h: Reformat comment to follow coding standards
-	This commit reformats a comment in gdb/ada-lang.h to avoid
-	the leading '*' at the beginning of each line of the comment.
-
-2021-12-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-19  Alan Modra  <amodra@gmail.com>
-
-	Obsolete m32c-rtems
-
-	readelf: avoid a possible divide by zero
-		* readelf.c (process_section_headers): Check SHT_RELR entsize.
-
-2021-12-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-18  Enze Li  <lienze2010@hotmail.com>
-
-	gdb: add "exit" command as an alias for "quit"
-	This command adds the "exit" command as an alias for the "quit"
-	command, as requested in PR gdb/28406.
-
-	The documentation is also updated to mention this new command.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28406
-
-2021-12-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add assert in remote_target::wait relating to async being off
-	While working on another patch I ended up in a situation where I had
-	async mode disabled (with 'maint set target-async off'), but the async
-	event token got marked anyway.
-
-	In this situation GDB was continually calling into
-	remote_target::wait, however, the async token would never become
-	unmarked as the unmarking is guarded by target_is_async_p.
-
-	We could just unconditionally unmark the token, but that would feel
-	like just ignoring a bug, so, instead, lets assert that if
-	!target_is_async_p, then the async token should not be marked.
-
-	This assertion would have caught my earlier mistake.
-
-	There should be no user visible changes with this commit.
-
-2021-12-18  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/remote: some fixes for 'maint set target-async off'
-	While working on another patch relating to remote targets, I wanted to
-	test with 'maint set target-async off' in place.  Unfortunately I ran
-	into some problems.  This commit is an attempt to fix one of the
-	issues I hit.
-
-	In my particular case I was actually running with:
-
-	  maint set target-async off
-	  maint set target-non-stop off
-
-	that is, we're telling GDB to force the targets to operate in
-	non-async mode, and in all-stop mode.  Here's my GDB session showing
-	the problem:
-
-	  (gdb) maintenance set target-async off
-	  (gdb) maintenance set target-non-stop off
-	  (gdb) target extended-remote :54321
-	  Remote debugging using :54321
-	  (gdb) attach 2365960
-	  Attaching to process 2365960
-	  No unwaited-for children left.
-	  (gdb)
-
-	Notice the 'No unwaited-for children left.' error, this is the
-	problem.  There's no reason why GDB should not be able to attach to
-	the process.
-
-	The problem is this:
-
-	  1. The user runs 'attach PID' and this sends GDB into attach_command
-	  in infcmd.c.  From here we call the ::attach method on the attach
-	  target, which will be the extended_remote_target.
-
-	  2. In extended_remote_target::attach, we attach to the remote target
-	  and get the first reply (which is a stop packet).  We put off
-	  processing the stop packet until the end of ::attach.  We setup the
-	  inferior and thread to represent the process we attached to, and
-	  download the target description.  Finally, we process the initial
-	  stop packet.
-
-	  If '!target_is_non_stop_p ()' and '!target_can_async_p ()', which is
-	  the case for us given the maintenance commands we used, we cache the
-	  stop packet within the remote_state::buf for later processing.
-
-	  3. Back in attach_command, if 'target_is_non_stop_p ()' then we
-	  request that the target stops.  This will either process any cached
-	  stop replies, or request that the target stops, and process the stop
-	  replies.  However, this code is not what we use due to non-stop mode
-	  being disabled.  So, we skip to the next step which is to call
-	  validate_exec_file.
-
-	  4. Calling validate_exec_file can cause packets to be sent to the
-	  remote target, and replies received, the first path I hit is the
-	  call to target_pid_to_exec_file, which calls
-	  remote_target::pid_to_exec_file, which can then try to read the
-	  executable from the remote.  Sending an receiving packets will make
-	  use of the remote_state::buf object.
-
-	  5. The attempt to attach continues, but the damage is already done...
-
-	So, the problem is that, in step #2 we cache a stop reply in the
-	remote_state::buf, and then in step #4 we reuse the remote_state::buf
-	object, discarding any cached stop reply.  As a result, the initial
-	stop, which is sent when GDB first attaches to the target, is lost.
-
-	This problem can clearly be seen, I feel, by looking at the
-	remote_state::cached_wait_status flag.  This flag tells GDB if there
-	is a wait status cached in remote_state::buf.  However, in
-	remote_target::putpkt_binary and remote_target::getpkt_or_notif_sane_1
-	this flag is just set back to 0, doing this immediately discards any
-	cached data.
-
-	I don't know if this scheme ever made sense,  looking at commit
-	2d717e4f8a54, where the cached_wait_status flag was added, it appears
-	that there was nothing between where the stop was cached, and where
-	the stop was consumed, so, I suspect, there never was a situation
-	where we ended up in putpkt_binary or getpkt_or_notif_sane_1 and
-	needed to clear to the flag, maybe the clearing was added "just in
-	case".  Whatever the history, I claim that this clearing this flag is
-	no longer a good idea.
-
-	So, my first step toward fixing this issue was to replace the two
-	instances of 'rs->cached_wait_status = 0;' in ::putpkt_binary and
-	::getpkt_or_notif_sane_1 with 'gdb_assert (rs->cached_wait_status ==
-	0);', this, at least would show me when GDB was doing something
-	dangerous, and indeed, this assert is now hit in my test case above.
-
-	I did play with using some kind of scoped restore to backup, and
-	restore the remote_state::buf object in all the places within remote.c
-	that I was hitting where the ::buf was being corrupted.  The first
-	problem with this is that, where the ::cached_wait_status flag is
-	reset is _not_ where ::buf is corrupted.  For the ::putpkt_binary
-	case, by the time we get to the method the buffer has already been
-	corrupted in many cases, so we end up needing to add the scoped
-	save/restore within the callers, which means we need the save/restore
-	in _lots_ of places.
-
-	Plus, using this save/restore model feels like the wrong solution.  I
-	don't think that it's obvious that the buffer might be holding cached
-	data, and I think it would be too easy for new corruptions of the
-	buffer to be introduced, which could easily go unnoticed for a long
-	time.
-
-	So, I really wanted a solution that didn't require us to cache data in
-	the ::buf object.
-
-	Luckily, I think we already have such a solution in place, the
-	remote_state::stop_reply_queue, it seems like this does exactly the
-	same task, just in a slightly different way.  With the
-	::stop_reply_queue, the stop packets are processed upon receipt and
-	the stop_reply object is added to the queue.  With the ::buf cache
-	solution, the unprocessed stop reply is cached in the ::buf, and
-	processed later.
-
-	So, finally, in this commit, I propose to remove the
-	remote_state::cached_wait_status flag and to stop using the ::buf to
-	cache stop replies.  Instead, stop replies will now always be stored
-	in the ::stop_reply_queue.
-
-	There are two places where we use the ::buf to hold a cached stop
-	reply, the first is in the ::attach method, and the second is in
-	remote_target::start_remote, however, the second of these cases is far
-	less problematic, as after caching the stop reply in ::buf we call the
-	global start_remote function, which does very little work before
-	calling normal_stop, which processes the cached stop reply.  However,
-	my plan is to switch both users over to using ::stop_reply_queue so
-	that the old (unsafe) ::cached_wait_status mechanism can be completely
-	removed.
-
-	The next problem is that the ::stop_reply_queue is currently only used
-	for async-mode, and so, in remote_target::push_stop_reply, where we
-	push stop_reply objects into the ::stop_reply_queue, we currently also
-	mark the async event token.  I've modified this so we only mark the
-	async event token if 'target_is_async_p ()' - note, _is_, not _can_
-	here. The ::push_stop_reply method is called in places where async
-	mode has been temporarily disabled, but, when async mode is switched
-	back on (see remote_target::async) we will mark the event token if
-	there are events in the queue.
-
-	Another change of interest is in remote_target::remote_interrupt_as.
-	Previously this code checked ::cached_wait_status, but didn't check
-	for events in the ::stop_reply_queue.  Now that ::cached_wait_status
-	has been removed we now check the queue length instead, which should
-	have the same result.
-
-	Finally, in remote_target::wait_as, I've tried to merge the processing
-	of the ::stop_reply_queue with how we used to handle the
-	::cached_wait_status flag.
-
-	Currently, when processing the ::stop_reply_queue we call
-	process_stop_reply and immediately return.  However, when handling
-	::cached_wait_status we run through the whole of ::wait_as, and return
-	at the end of the function.
-
-	If we consider a standard stop packet, the two differences I see are:
-
-	  1. Resetting of the remote_state::waiting_for_stop_reply, flag; this
-	  is not currently done when processing a stop from the
-	  ::stop_reply_queue.
-
-	  2. The final return value has the possibility of being adjusted at
-	  the end of ::wait_as, as well as there being calls to
-	  record_currthread, non of which are done if we process a stop from
-	  the ::stop_reply_queue.
-
-	After discussion on the mailing list:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-December/184535.html
-
-	it was suggested that, when an event is pushed into the
-	::stop_reply_queue, the ::waiting_for_stop_reply flag is never going
-	to be set.  As a result, we don't need to worry about the first
-	difference.  I have however, added a gdb_assert to validate the
-	assumption that the flag is never going to be set.  If in future the
-	situation ever changes, then we should find out pretty quickly.
-
-	As for the second difference, I have resolved this by having all stop
-	packets taken from the ::stop_reply_queue, pass through the return
-	value adjustment code at the end of ::wait_as.
-
-	An example of a test that reveals the benefits of this commit is:
-
-	  make check-gdb \
-	    RUNTESTFLAGS="--target_board=native-extended-gdbserver \
-	                  GDBFLAGS='-ex maint\ set\ target-async\ off \
-	                            -ex maint\ set\ target-non-stop\ off' \
-	                  gdb.base/attach.exp"
-
-	For testing I've been running test on x86-64/GNU Linux, and run with
-	target boards unix, native-gdbserver, and native-extended-gdbserver.
-	For each board I've run with the default GDBFLAGS, as well as with:
-
-	  GDBFLAGS='-ex maint\ set\ target-async\ off \
-	            -ex maint\ set\ target-non-stop\ off' \
-
-	Though running with the above GDBFLAGS is clearly a lot more unstable
-	both before and after my patch, I'm not seeing any consistent new
-	failures with my patch, except, with the native-extended-gdbserver
-	board, where I am seeing new failures, but only because more tests are
-	now running.  For that configuration alone I see the number of
-	unresolved go down by 49, the number of passes goes up by 446, and the
-	number of failures also increases by 144.  All of the failures are new
-	tests as far as I can tell.
-
-2021-12-18  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	x86: Terminate mnemonicendp in swap_operand()
-	Tested on x86_64-pc-linux-gnu.
-
-	opcodes/ChangeLog:
-	2021-12-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
-
-		* i386-dis.c (swap_operand): Terminate mnemonicendp.
-
-	gas/ChangeLog:
-	2021-12-17 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
-
-		* testsuite/gas/i386/opts-intel.d: Updated expected disassembly.
-		* testsuite/gas/i386/opts.d: Likewise.
-		* testsuite/gas/i386/sse2avx-opts-intel.d: Likewise.
-		* testsuite/gas/i386/sse2avx-opts.d: Likewise.
-		* testsuite/gas/i386/x86-64-opts-intel.d: Likewise.
-		* testsuite/gas/i386/x86-64-opts.d: Likewise.
-		* testsuite/gas/i386/x86-64-sse2avx-opts-intel.d: Likewise.
-		* testsuite/gas/i386/x86-64-sse2avx-opts.d: Likewise.
-
-2021-12-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-17  Tom Tromey  <tom@tromey.com>
-
-	Document gdbarch-components.py
-	This adds a comment to document how to update gdbarch.
-
-	Remove gdbarch.sh
-	This patch runs gdbarch.py and removes gdbarch.sh.
-
-2021-12-17  Simon Marchi  <simon.marchi@efficios.com>
-
-	Add new gdbarch generator
-	The new gdbarch generator is a Python program.  It reads the
-	"components.py" that was created in the previous patch, and generates
-	gdbarch.c and gdbarch-gen.h.
-
-	This is a relatively straightforward translation of the existing .sh
-	code.  It doesn't try very hard to be idiomatic Python or to be
-	especially smart.
-
-	It is, however, incredibly faster:
-
-	    $ time ./gdbarch.sh
-
-	    real	0m8.197s
-	    user	0m5.779s
-	    sys	0m3.384s
-
-	    $ time ./gdbarch.py
-
-	    real	0m0.065s
-	    user	0m0.053s
-	    sys	0m0.011s
-
-	Co-Authored-By: Tom Tromey <tom@tromey.com>
-
-2021-12-17  Tom Tromey  <tom@tromey.com>
-
-	Generate new gdbarch-components.py from gdbarch.sh
-	The new gdbarch.sh approach will be to edit a Python file, rather than
-	adding a line to a certain part of gdbarch.sh.  We use the existing sh
-	code, though, to generate the first draft of this .py file.
-
-	Documentation on the format will come in a subsequent patch.
-
-	Note that some info (like "staticdefault") in the current code is
-	actually unused, and so is ignored by this new generator.
-
-2021-12-17  Tom Tromey  <tom@tromey.com>
-
-	Do not sort the fields in gdbarch_dump
-	This changes gdbarch.sh so that it no longer sorts the fields in
-	gdbarch_dump.  This sorting isn't done anywhere else by gdbarch.sh,
-	and this simplifies the new generator a little bit.
-
-	Do not generate gdbarch.h
-	Now that gdbarch.h has been split, we no longer need the generator
-	code in gdbarch.sh, so remove it.
-
-2021-12-17  Tom Tromey  <tom@tromey.com>
-
-	Split gdbarch.h into two files
-	This patch splits gdbarch.h into two files -- gdbarch.h now is
-	editable and hand-maintained, and the new gdbarch-gen.h file is the
-	only thing generated by gdbarch.sh.  This lets us avoid maintaining
-	boilerplate in the gdbarch.sh file.
-
-	Note that gdbarch.sh still generates gdbarch.h after this patch.  This
-	makes it easier to re-run when rebasing.  This code is removed in a
-	subsequent patch.
-
-2021-12-17  Tom Tromey  <tom@tromey.com>
-
-	Move ordinary gdbarch code to arch-utils
-	While I think it makes sense to generate gdbarch.c, at the same time I
-	think it is better for ordinary code to be editable in a C file -- not
-	as a hunk of C code embedded in the generator.
-
-	This patch moves this sort of code out of gdbarch.sh and gdbarch.c and
-	into arch-utils.c, then has arch-utils.c include gdbarch.c.
-
-2021-12-17  Maciej W. Rozycki  <macro@embecosm.com>
-
-	Avoid redundant operations in `fortran_array_walker'
-	Move inner dimension's element type determination outside the respective
-	loops in `fortran_array_walker'.  The operation is exactly the same with
-	each iteration, so there is no point in redoing it for each element and
-	while a smart compiler might be able to move it outside the loop it is
-	regardless a bad coding style.  No functional change.
-
-	Initialize `m_ndimensions' in the member initializer list
-	Following our coding convention initialize the `m_ndimensions' member in
-	the member initializer list rather than in the body of the constructor
-	of the `fortran_array_walker' class.  No functional change.
-
-2021-12-17  Lancelot SIX  <lancelot.six@amd.com>
-	    Pedro Alves  <pedro@palves.net>
-
-	gdb/tui: install SIGWINCH only when connected to a TTY
-	PR26056 reports that when GDB is connected to non-TTY stdin/stdout, it
-	crashes when it receives a SIGWINCH signal.
-
-	This can be reproduced as follows:
-
-	    $ gdb/gdb -nx -batch -ex 'run' --args sleep 60 </dev/null 2>&1 | cat
-
-	    # from another terminal:
-	    $ kill -WINCH %(pidof gdb)
-
-	When doing so, the process crashes in a call to rl_resize_terminal:
-
-	    void
-	    rl_resize_terminal (void)
-	    {
-	      _rl_get_screen_size (fileno (rl_instream), 1);
-	      ...
-	    }
-
-	The problem is that at this point rl_instream has the value NULL.
-
-	The rl_instream variable is supposed to be initialized during a call to
-	readline_initialize_everything, which in a normal startup sequence is
-	called under this call chain:
-
-	    tui_interp::init
-	      tui_ensure_readline_initialized
-	        rl_initialize
-	          readline_initialize_everything
-
-	In tui_interp::init, we have the following sequence:
-
-	    tui_initialize_io ();
-	    tui_initialize_win ();                // <- Installs SIGWINCH
-	    if (gdb_stdout->isatty ())
-	      tui_ensure_readline_initialized (); // <- Initializes rl_instream
-
-	This function unconditionally installs the SIGWINCH signal handler (this
-	is done by tui_initialize_win), and then if gdb_stdout is a TTY it
-	initializes readline.  Therefore, if stdout is not a TTY, SIGWINCH is
-	installed but readline is not initialized.  In such situation
-	rl_instream stays NULL, and when GDB receives a SIGWINCH it calls its
-	handler and in fine tries to access rl_instream leading to the crash.
-
-	This patch proposes to fix this issue by installing the SIGWINCH signal
-	handler only if GDB is connected to a TTY.  Given that this
-	initialization it the only task of tui_initialize_win, this patch moves
-	tui_initialize_win just after the call to
-	tui_ensure_readline_initialized.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26056
-	Change-Id: I6458acef7b0d9beda2a10715d0345f02361076d9
-
-2021-12-17  Alan Modra  <amodra@gmail.com>
-
-	asan: NULL dereference in bfd_elf_set_group_contents
-		* elf-bfd.h (struct output_elf_obj_tdata): Make num_section_syms
-		unsigned.
-		* elf.c (bfd_elf_set_group_contents): Bounds check sec->index
-		and check that entry in elf_section_syms for sec is non-NULL.
-		(_bfd_elf_symbol_from_bfd_symbol): Adjust.
-
-2021-12-17  Alan Modra  <amodra@gmail.com>
-
-	asan: use after free in _bfd_elf_mips_get_relocated_section_contents
-	Leaving entries on mips_hi16_list from a previous pass over relocs
-	leads to confusing bugs.
-
-		* elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents):
-		Free mips_hi16_list entries on error exit.
-
-2021-12-17  Alan Modra  <amodra@gmail.com>
-
-	asan: abort in wasm_scan_name_function_section
-	Macros like READ_LEB128 in wasm-module.c that alter control flow are
-	evil.  Maintainers will break your code if you have hidden ways to
-	reach labels.
-
-		* wasm-module.c (wasm_scan_name_function_section): Don't
-		attempt to bfd_release NULL.
-
-2021-12-17  Alan Modra  <amodra@gmail.com>
-
-	asan: heap-buffer-overflow in bpf_elf_generic_reloc
-	The bpf reloc howtos are a bit weird, using bitpos to specify an
-	offset from r_offset that is outside the size of the reloc as given by
-	howto.size.  That means bfd_get_reloc_size gives the wrong answer for
-	range checking, and thus bfd_reloc_offset_in_range can't be used.
-
-		* elf64-bpf.c (bpf_elf_generic_reloc): Handle bitpos offset reloc
-		range checking.
-
-2021-12-17  Alan Modra  <amodra@gmail.com>
-
-	ubsan: bfd.c:2519:8: shift exponent 34 is too large
-		* bfd.c (bfd_update_compression_header): Avoid integer overflow.
-
-	asan: buffer overflow in mmo_get_symbols
-		* mmo.c (mmo_get_symbols): Error on symbol name exceeding max length.
-
-2021-12-17  Alan Modra  <amodra@gmail.com>
-
-	asan: buffer overflow in elfnn-aarch64.c get_plt_type
-	We can't assume .dynamic is a multiple of ElfNN_External_Dyn, at least
-	not when presented with fuzzed object files.
-
-		* elfnn-aarch64.c (get_plt_type): Don't access past end of
-		improperly sized .dynamic.
-
-2021-12-17  Alan Modra  <amodra@gmail.com>
-
-	try_build_id_prefix gcc-10 -Wformat-security errors
-	dwarf.c:11300:3: error: format not a string literal and no format arguments [-Werror=format-security]
-	11300 |   f += sprintf (f, prefix);
-
-		PR 28697
-		* dwarf.c (try_build_id_prefix): Avoid -Wformat-security error.
-
-2021-12-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-16  Nick Clifton  <nickc@redhat.com>
-
-	Fix AVR assembler so that it creates relocs that will work with linker relaxation.
-		PR 28686
-	gas	* config/tc-avr.h (tc_fix_adjustable): Define.
-		* config/tc-avr.c (avr_fix_adjustable): New function.
-		* testsuite/gas/all/gas.exp: Skip tests that need adjustable fixups.
-		* testsuite/gas/elf/elf.exp: Likewise.
-		* testsuite/gas/avr/diffreloc_withrelax.d: Adjust expected output.
-		* testsuite/gas/avr/pc-relative-reloc.d: Adjust expected output.
-
-	ld	* testsuite/ld-avr/avr-prop-7.d: Adjust expected output.
-		* testsuite/ld-avr/avr-prop-8.d: Likewise.
-		* testsuite/ld-avr/pr13402.d: Likewise.
-
-2021-12-16  Nick Clifton  <nickc@redhat.com>
-
-	When loading separate debug info files, also attempt to locate a file based upon the build-id.
-		PR 28697
-		* dwarf.c (load_build_id_debug_file): New function.
-		(try_build_id_prefix): New function.
-		(check_for_and_load_links): Call load_build_id_debug_file.
-		(debug_displays): Add entry for .note.gnu.build-id.
-		* dwarf.h (enum dwarf_section_display_enum): Add
-		note_gnu_build_id.
-		* testsuite/binutils-all/debuginfod.exp (test_fetch_debuglink):
-		Fix regexp for loads via debuglink section.
-
-2021-12-16  Richard Sandiford  <richard.sandiford@arm.com>
-
-	arm: Add support for Armv9.1-A to Armv9.3-A
-	This patch adds AArch32 support for -march=armv9.[123]-a.
-	The behaviour of the new options can be expressed using a
-	combination of existing feature flags and tables.
-
-	The cpu_arch_ver entries for ARM_ARCH_V9_2A and ARM_ARCH_V9_3A
-	are technically redundant but it seemed less surprising to include
-	them anyway.
-
-	include/
-		* opcode/arm.h (ARM_ARCH_V9_1A, ARM_ARCH_V9_2A): New macros.
-		(ARM_ARCH_V9_3A): Likewise.
-
-	gas/
-		* doc/c-arm.texi: Add armv9.1-a, armv9.2-a and armv9.3-a.
-		* config/tc-arm.c (armv91a_ext_table, armv92a_ext_table): New macros.
-		(armv93a_ext_table): Likewise.
-		(arm_archs): Add armv9.1-a, armv9.2-a and armv9.3-a.
-		(cpu_arch_ver): Add ARM_ARCH_V9_1A, ARM_ARCH_V9_2A and ARM_ARCH_V9_3A.
-		* NEWS: Mention the above.
-		* testsuite/gas/arm/attr-march-armv9_1-a.d: New test.
-		* testsuite/gas/arm/attr-march-armv9_2-a.d: Likewise.
-		* testsuite/gas/arm/attr-march-armv9_3-a.d: Likewise.
-		* testsuite/gas/arm/bfloat16-armv9.1-a.d: Likewise.
-		* testsuite/gas/arm/bfloat16-armv9.2-a.d: Likewise.
-		* testsuite/gas/arm/bfloat16-armv9.3-a.d: Likewise.
-		* testsuite/gas/arm/i8mm-armv9.1-a.d: Likewise.
-		* testsuite/gas/arm/i8mm-armv9.2-a.d: Likewise.
-		* testsuite/gas/arm/i8mm-armv9.3-a.d: Likewise.
-
-2021-12-16  Richard Sandiford  <richard.sandiford@arm.com>
-
-	arm: Add support for Armv8.7-A and Armv8.8-A
-	This patch adds AArch32 support for -march=armv8.[78]-a.
-	The behaviour of the new options can be expressed using a
-	combination of existing feature flags and tables.
-
-	The cpu_arch_ver entries are technically redundant but
-	it seemed less surprising to include them anyway.
-
-	include/
-		* opcode/arm.h (ARM_ARCH_V8_7A, ARM_ARCH_V8_8A): New macros.
-
-	gas/
-		* doc/c-arm.texi: Add armv8.7-a and armv8.8-a.
-		* config/tc-arm.c (armv87a_ext_table, armv88a_ext_table): New macros.
-		(arm_archs): Add armv8.7-a and armv8.8-a.
-		(cpu_arch_ver): Add ARM_ARCH_V8_7A and ARM_ARCH_V8_8A.
-		* NEWS: Mention the above.
-		* testsuite/gas/arm/attr-march-armv8_7-a.d: New test.
-		* testsuite/gas/arm/attr-march-armv8_8-a.d: Likewise.
-		* testsuite/gas/arm/bfloat16-armv8.7-a.d: Likewise.
-		* testsuite/gas/arm/bfloat16-armv8.8-a.d: Likewise.
-		* testsuite/gas/arm/i8mm-armv8.7-a.d: Likewise.
-		* testsuite/gas/arm/i8mm-armv8.8-a.d: Likewise.
-
-2021-12-16  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add support for Armv9.1-A to Armv9.3-A
-	This patch adds AArch64 support for -march=armv9.[123]-a.
-	The behaviour of the new options can be expressed using a
-	combination of existing feature flags, so we don't need to
-	eat into the vanishing number of spare AARCH64_FEATURE_* bits.
-	Hoewver, it was more convenient to separate out the |s of
-	feature flags so that Armv9.1-A could reuse the set for
-	Armv8.6-A, and so on.
-
-	include/
-		* opcode/aarch64.h (AARCH64_ARCH_V8_FEATURES): New macro,
-		split out from...
-		(AARCH64_ARCH_V8): ...here.
-		(AARCH64_ARCH_V8_1_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_1): ...here.
-		(AARCH64_ARCH_V8_2_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_2): ...here.
-		(AARCH64_ARCH_V8_3_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_3): ...here.
-		(AARCH64_ARCH_V8_4_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_4): ...here.
-		(AARCH64_ARCH_V8_5_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_5): ...here.
-		(AARCH64_ARCH_V8_6_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_6): ...here.
-		(AARCH64_ARCH_V8_7_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_7): ...here.
-		(AARCH64_ARCH_V8_8_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V8_8): ...here.
-		(AARCH64_ARCH_V9_FEATURES): New macro, split out from...
-		(AARCH64_ARCH_V9): ...here.
-		(AARCH64_ARCH_V9_1_FEATURES, AARCH64_ARCH_V9_1): New macros.
-		(AARCH64_ARCH_V9_2_FEATURES, AARCH64_ARCH_V9_2): New macros.
-		(AARCH64_ARCH_V9_3_FEATURES, AARCH64_ARCH_V9_3): New macros.
-
-	gas/
-		* doc/c-aarch64.texi: Add armv9.1-a, armv9-2-a and armv9.3-a.
-		* config/tc-aarch64.c (aarch64_archs): Likewise.
-		* NEWS: Mention the above.
-		* testsuite/gas/aarch64/armv9_invalid.d,
-		testsuite/gas/aarch64/armv9_invalid.s,
-		testsuite/gas/aarch64/armv9_invalid.l: New test.
-		* testsuite/gas/aarch64/armv9_1.d,
-		testsuite/gas/aarch64/armv9_1.s: Likewise.
-		* testsuite/gas/aarch64/armv9_1_invalid.d,
-		testsuite/gas/aarch64/armv9_1_invalid.s,
-		testsuite/gas/aarch64/armv9_1_invalid.l: Likewise.
-		* testsuite/gas/aarch64/armv9_2.d,
-		testsuite/gas/aarch64/armv9_2.s: Likewise.
-		* testsuite/gas/aarch64/armv9_2_invalid.d,
-		testsuite/gas/aarch64/armv9_2_invalid.s,
-		testsuite/gas/aarch64/armv9_2_invalid.l: Likewise.
-		* testsuite/gas/aarch64/armv9_3.d,
-		testsuite/gas/aarch64/armv9_3.s: Likewise.
-
-2021-12-16  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Support svinval extension with frozen version 1.0.
-	According to the privileged spec, there are five new instructions for
-	svinval extension.  Two of them (HINVAL.VVMA and HINVAL.GVMA) need to
-	enable the hypervisor extension.  But there is no implementation of
-	hypervisor extension in mainline for now, so let's consider the related
-	issues later.
-
-	                31..25  24..20 19..15 14..12 11...7 6..2  1..0
-	sinval.vma      0001011 rs2    rs1    000    00000  11100 11
-	sfence.w.inval  0001100 00000  00000  000    00000  11100 11
-	sfence.inval.ir 0001100 00001  00000  000    00000  11100 11
-	hinval.vvma     0010011 rs2    rs1    000    00000  11100 11
-	hinval.gvma     0110011 rs2    rs1    000    00000  11100 11
-
-	This patch is cherry-picked from the riscv integration branch since the
-	svinval extension is frozen for now.  Besides, we fix the funct7 encodings
-	of hinval.vvma and hinval.gvma, from 0x0011011 and 0x0111011 to 0x0010011
-	and 0x0110011.
-
-	bfd/
-		* elfxx-riscv.c (riscv_supported_std_s_ext): Added svinval.
-		(riscv_multi_subset_supports): Handle INSN_CLASS_SVINVAL.
-	gas/
-		* testsuite/gas/riscv/svinval.d: New testcase.
-		* testsuite/gas/riscv/svinval.s: Likewise.
-	include/
-		* opcode/riscv-opc.h: Added encodings for svinval.
-		* opcode/riscv.h (enum riscv_insn_class): Added INSN_CLASS_SVINVAL.
-	opcodes/
-		* riscv-opc.c (riscv_opcodes): Added svinval instructions.
-
-2021-12-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips/or1k: drop redundant arg to bitsize macro
-	These are just using the default behavior for the 3rd arg, so drop
-	it to make it more clear.  This also makes them match all other
-	ports that only use the first 2 arguments.
-
-2021-12-16  Mike Frysinger  <vapier@gentoo.org>
-
-	bfd: unify texi generation rules
-	The logic between these rules are extremely similar, so unify them
-	into a single variable by leveraging make $@ and $< variables.
-
-	Also add automake silent rule support while we're here.
-
-2021-12-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: fix mingw builds with replacement gnulib open
-	The header shuffling in here broke the workaround for gnulib defining
-	"open".  Move it back before the sim-specific includes to fix.  This
-	is because the callback struct in the headers has an "open" member and
-	this file tries to call that.
-
-2021-12-16  Sandra Loosemore  <sandra@codesourcery.com>
-
-	Adjust compare_link_order for unstable qsort
-	In a cross toolchain for nios2-elf target and x86_64-w64-mingw32 host
-	using binutils 2.37, we observed a failure that didn't show up on
-	x86_64-linux-gnu host:  testcase pr25490-5.s was failing with
-
-	C:\path\to\nios2-elf-ld.exe: looping in map_segments
-	FAIL: __patchable_function_entries section 5
-
-	    	* ldelfgen.c (compare_link_order): Don't use section id in
-		sorting.  Keep original ordering instead.  Update comments.
-
-2021-12-16  Alan Modra  <amodra@gmail.com>
-
-	Re: Fix an undefined behaviour in the BFD library's DWARF parser
-	Using an unsigned int cast (to 32 bits) on a pointer difference (of
-	possibly 64 bits) is wrong.  Even though it will work on all real
-	object files, the fuzzers will eventually find this hole.
-
-		PR 28687
-		* dwarf1.c (parse_die): Cast pointer difference to size_t.
-		Catch another possible pointer overflow.
-
-2021-12-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: re-format with black 21.12b0
-	Run black 21.12b0 on gdb/, there is a single whitespace change.  I will
-	update the wiki [1] in parallel to bump the version of black to 21.12b0.
-
-	[1] https://sourceware.org/gdb/wiki/Internals%20GDB-Python-Coding-Standards
-
-	Change-Id: Ib3b859e3506c74a4f15d16f1e44ef402de3b98e2
-
-2021-12-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: re-format with black 21.9b0
-	Run black 21.9b0 on gdb/ (this is the version currently mentioned on the
-	wiki [1], the subsequent commit will bump that version).
-
-	[1] https://sourceware.org/gdb/wiki/Internals%20GDB-Python-Coding-Standards
-
-	Change-Id: I5ceaab42c42428e053e2572df172aa42a88f0f86
-
-2021-12-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-15  Alan Modra  <amodra@gmail.com>
-
-	PR28691, validate dwarf attribute form
-	PR28691 is a fuzzing PR that triggers a non-problem of "output changes
-	per run" with PIEs and/or different compilers.  I've closed similar
-	PRs before as wontfix, but I guess there will be no end of this type
-	of PR.  The trigger is an attribute that usually takes one of the
-	offset/constant reference DW_FORMs being given an indexed string
-	DW_FORM.  The bfd reader doesn't support indexed strings and returns
-	an error string instead.  The address of the string varies with PIE
-	runs and/or compiler, and we allow that address to appear in output.
-	Fix this by validating integer attribute forms, as we do for string
-	form attributes.
-
-		PR 28691
-		* dwarf2.c (is_str_attr): Rename to..
-		(is_str_form): ..this.  Change param type.  Update calls.
-		(is_int_form): New function.
-		(read_attribute_value): Handle DW_FORM_addrx2.
-		(find_abstract_instance): Validate form when using attr.u.val.
-		(scan_unit_for_symbols, parse_comp_unit): Likewise.
-
-2021-12-15  Luis Machado  <luis.machado@linaro.org>
-
-	New --enable-threading configure option to control use of threads in GDB/GDBserver
-	Add the --enable-threading configure option so multithreading can be disabled
-	at configure time. This is useful for statically-linked builds of
-	GDB/GDBserver, since the thread library doesn't play well with that setup.
-
-	If you try to run a statically-linked GDB built with threading, it will crash
-	when setting up the number of worker threads.
-
-	This new option is also convenient when debugging GDB in a system with lots of
-	threads, where the thread discovery code in GDB will emit too many messages,
-	like so:
-
-	[New Thread 0xfffff74d3a50 (LWP 2625599)]
-
-	If you have X threads, that message will be repeated X times.
-
-	The default for --enable-threading is "yes".
-
-2021-12-15  Nikita Popov  <npv1310@gmail.com>
-
-	Fix an undefined behaviour in the BFD library's DWARF parser.
-		PR 28687
-		* dwarf1.c (parse_die): Fix undefined behaviour in range tests.
-
-2021-12-15  Alan Modra  <amodra@gmail.com>
-
-	PR28694, Out-of-bounds write in stab_xcoff_builtin_type
-		PR 28694
-		* stabs.c (stab_xcoff_builtin_type): Make typenum unsigned.
-		Negate typenum earlier, simplifying bounds checking.  Correct
-		off-by-one indexing.  Adjust switch cases.
-
-2021-12-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-14  Alan Modra  <amodra@gmail.com>
-
-	loongarch32 build failure on 32-bit host
-	gas/config/tc-loongarch.c: In function ‘assember_macro_helper’:
-	gas/config/tc-loongarch.c:915:28: error: right shift count >= width of type [-Werror=shift-count-overflow]
-	  915 |       hi32 = insn->args[1] >> 32;
-	      |                            ^~
-
-	One possible fix is to make offsetT a 64-bit type for loongarch32.
-	This also makes bfd/targmatch.h (generated from bfd/config.bfd)
-	consistent since the loongarch32 match is inside #ifdef BFD64.
-
-		* config.bfd (loongarch32-*): Set want64.
-
-2021-12-14  Alan Modra  <amodra@gmail.com>
-
-	loongarch64 build failure on 32-bit host
-	gas/config/tc-loongarch.c: In function ‘loongarch_args_parser_can_match_arg_helper’:
-	gas/config/tc-loongarch.c:661:13: error: cast from pointer to integer of different size [-Werror=pointer
-	-to-int-cast]
-	  661 |       imm = (offsetT) str_hash_find (r_htab, arg);
-	      |             ^
-
-	Cast it to the correct size int, relying on normal integer promotions
-	if offsetT is larger than a pointer.
-
-		* config/tc-loongarch.c (loongarch_args_parser_can_match_arg_helper):
-		Cast return from str_hash_find to intptr_t, not offsetT.
-
-2021-12-14  Alan Modra  <amodra@gmail.com>
-
-	XCOFF C_STSYM test failure on 32-bit host
-	This test was failing here and on another similar symbol:
-	[  4](sec  1)(fl 0x00)(ty   0)(scl 143) (nx 0) 0x05d1745d11745d21 .bs
-	where correct output is
-	[  4](sec  1)(fl 0x00)(ty   0)(scl 143) (nx 0) 0x000000000000000a .bs
-
-	The problem is caused by a 32-bit host pointer being sign-extended
-	when stored into a 64-bit bfd_vma, and then that value not being
-	trimmed back to 32 bits when used.  The following belt-and-braces
-	patch fixes both the store and subsequent reads.
-
-		* coffcode.h (coff_slurp_symbol_table): Do not sign extend
-		when storing a host pointer to syment.n_value.
-		* coffgen.c (coff_get_symbol_info): Cast syment.n_value to a
-		bfd_hostptr_t before using in arithmetic.
-		(coff_print_symbol): Likewise.
-
-2021-12-14  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver/tracepoint.cc: use snprintf in gdb_agent_socket_init
-	If we modify tracepoint.cc to try to use a too long unix socket name,
-	for example by modifying SOCK_DIR to be:
-
-	    #define SOCK_DIR "/tmp/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut/salut"
-
-	... trying to start an application with libinproctrace.so loaded
-	crashes:
-
-	    $ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.6:./libinproctrace.so /bin/ls
-	    /home/smarchi/src/binutils-gdb/gdbserver/../gdbsupport/common-utils.cc:69: A problem internal to GDBserver in-process agent has been detected.
-	    xsnprintf: Assertion `ret < size' failed.
-
-	Looking at the rest of the socket initialization code, the intent seems
-	to be that if something goes wrong, we warn but let the program
-	execute.  So crashing on this failed assertions seems against the intent.
-
-	Commit 6cebaf6e1ae4 ("use xsnprintf instead of snprintf.") changed this
-	code to use xsnprintf instead of snprintf, introducing this assertion.
-	Before that, snprintf would return a value bigger that UNIX_PATH_MAX and
-	the "if" after would catch it and emit a warning, which is exactly what
-	we want.  That change was done because LynxOS didn't have snprintf.
-	Since LynxOS isn't supported anymore, we can simply revert to use
-	snprintf there.
-
-	With this patch, we get a warning (printed by the caller of
-	gdb_agent_socket_init), but the program keeps executing:
-
-	    $ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.6:./libinproctrace.so /bin/ls
-	    ipa: could not create sync socket
-	    ...
-
-	Change-Id: I78bca52d5dc3145335abeae45a42052701e3f5dd
-
-2021-12-14  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver/tracepoint.cc: work around -Wstringop-truncation error
-	When building gdb with  on AArch64 with g++ 11.1.0 (and some preceding
-	versions too), -O2 and -fsanitize=address, I get this error.
-
-	      CXX    tracepoint-ipa.o
-	    cc1plus: warning: command-line option ‘-Wmissing-prototypes’ is valid for C/ObjC but not for C++
-	    In file included from /usr/include/string.h:519,
-	                     from ../gnulib/import/string.h:41,
-	                     from /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/common-defs.h:95,
-	                     from /home/simark/src/binutils-gdb/gdbserver/server.h:22,
-	                     from /home/simark/src/binutils-gdb/gdbserver/tracepoint.cc:19:
-	    In function ‘char* strncpy(char*, const char*, size_t)’,
-	        inlined from ‘int init_named_socket(const char*)’ at /home/simark/src/binutils-gdb/gdbserver/tracepoint.cc:6902:11,
-	        inlined from ‘int gdb_agent_socket_init()’ at /home/simark/src/binutils-gdb/gdbserver/tracepoint.cc:6953:26,
-	        inlined from ‘void* gdb_agent_helper_thread(void*)’ at /home/simark/src/binutils-gdb/gdbserver/tracepoint.cc:7204:41:
-	    /usr/include/bits/string_fortified.h:95:34: error: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ output may be truncated copying 107 bytes from a string of length 107 [-Werror=stringop-truncation]
-	       95 |   return __builtin___strncpy_chk (__dest, __src, __len,
-	          |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
-	       96 |                                   __glibc_objsize (__dest));
-	          |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~
-
-	Note that _FORTIFY_SOURCE changes the message a bit, but I get a similar
-	error if I use -D_FORTIFY_SOURCE=0.
-
-	I am pretty sure it's spurious and might be related to this GCC bug:
-
-	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88780
-
-	From what I can see, we are copying from a static 108 bytes long buffer
-	(the global array agent_socket_name) to a 108 bytes long array,
-	sockaddr_un::sun_path.  I don't see anything wrong.
-
-	Still, it would make things easier if we didn't see this error.  Change
-	the code to check that the source string length is smaller than the
-	destination buffer (including space for the NULL byte) and use strcpy.
-
-	For anybody who would like to try to reproduce, the full command line
-	is:
-
-	    g++     -I. -I/home/simark/src/binutils-gdb/gdbserver -I/home/simark/src/binutils-gdb/gdbserver/../gdb/regformats -I/home/simark/src/binutils-gdb/gdbserver/.. -I/home/simark/src/binutils-gdb/gdbserver/../include -I/home/simark/src/binutils-gdb/gdbserver/../gdb -I/home/simark/src/binutils-gdb/gdbserver/../gnulib/import -I../gnulib/import -I/home/simark/src/binutils-gdb/gdbserver/.. -I..   -pthread -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-variable -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-error=maybe-uninitialized -Wno-mismatched-tags -Wsuggest-override -Wimplicit-fallthrough=3 -Wduplicated-cond -Wshadow=local -Wdeprecated-copy -Wdeprecated-copy-dtor -Wredundant-move -Wmissing-declarations -Wmissing-prototypes -Wstrict-null-sentinel -Wformat -Wformat-nonliteral -Werror -DGDBSERVER  -DCONFIG_UST_GDB_INTEGRATION -Drpl_strerror_r=strerror_r -Drpl_free=free -fPIC -DIN_PROCESS_AGENT -fvisibility=hidden -g3 -O2 -fsanitize=address   -c -o tracepoint-ipa.o -MT tracepoint-ipa.o -MMD -MP -MF ./.deps/tracepoint-ipa.Tpo /home/simark/src/binutils-gdb/gdbserver/tracepoint.cc
-
-	Change-Id: I18e86c0487feead7e7677e69398405e7057cf464
-
-2021-12-14  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	bfd: fix -Wunused errors with clang 13+
-	Clang 13 and 14 produce some -Wunused-but-set-{variable,parameter} for
-	situations where gcc doesn't.  In particular, when a variable is set and
-	then used in a way to update its own value.  For example, if `i` is only
-	used in this way:
-
-	  int i = 2;
-	  i++;
-	  i = i + 1;
-
-	gcc won't warn, but clang will.
-
-	Fix all such errors found in an --enable-targets=all build.  It would be
-	important for somebody who knows what they're doing to just make sure
-	that these variables can indeed be deleted, and that there a no cases
-	where it's a bug, and the variable should actually be used.
-
-	The first instance of this error fix by this patch is:
-
-	      CC       elf32-score.lo
-	    /home/simark/src/binutils-gdb/bfd/elf32-score.c:450:11: error: variable 'relocation' set but not used [-Werror,-Wunused-but-set-variable]
-	      bfd_vma relocation;
-	              ^
-
-	Change-Id: I2f233ce20352645cf388aff3dfa08a651d21a6b6
-
-2021-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: rename build_table to add_builtin_mi_commands
-	Just give the function build_table a more descriptive name.  There
-	should be no user visible changes after this commit.
-
-2021-12-14  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/mi: rename mi_cmd to mi_command
-	Just give this class a new name, more inline with the name of the
-	sub-classes.  I've also updated mi_cmd_up to mi_command_up in
-	mi-cmds.c inline with this new naming scheme.
-
-	There should be no user visible changes after this commit.
-
-2021-12-14  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/mi: use separate classes for different types of MI command
-	This commit changes the infrastructure in mi-cmds.{c,h} to add new
-	sub-classes for the different types of MI command.  Instances of these
-	sub-classes are then created and added into mi_cmd_table.
-
-	The existing mi_cmd class becomes the abstract base class, this has an
-	invoke method and takes care of the suppress notifications handling,
-	before calling a do_invoke virtual method which is implemented by all
-	of the sub-classes.
-
-	There's currently two different sub-classes, one of pure MI commands,
-	and a second for MI commands that delegate to CLI commands.
-
-	There should be no user visible changes after this commit.
-
-2021-12-14  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/mi: int to bool conversion in mi_execute_cli_command
-	Change an argument of mi_execute_cli_command from int to bool.  Update
-	the callers to take this into account.  Within mi_execute_cli_command,
-	update a comparison of a pointer to 0 with a comparison to nullptr,
-	and add an assert, if we are not using the argument string then the
-	string should be nullptr.  Also removed a cryptic 'gdb_????' comment,
-	which isn't really helpful.
-
-	There should be no user visible changes after this commit.
-
-2021-12-14  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/mi: use std::map for MI commands in mi-cmds.c
-	This changes the hashmap used in mi-cmds.c from a custom structure to
-	std::map.  Not only is replacing a custom container with a standard
-	one an improvement, but using std::map will make it easier to
-	dynamically add commands; which is something that is planned for a
-	later series, where we will allow MI commands to be implemented in
-	Python.
-
-	There should be no user visible changes after this commit.
-
-2021-12-14  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/mi: rename mi_lookup to mi_cmd_lookup
-	Lets give this function a more descriptive name.  I've also improved
-	the comments in the header and source files.
-
-	There should be no user visible changes after this commit.
-
-2021-12-14  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Added ld testcases for the medlow and medany code models.
-	There are two linker scripts, code-model-01.ld and code-model-02.ld,
-	which are corresponding to the two different memory layouts,
-
-	* code-model-01.ld: the text section is in the 32-bit address range, but
-	  the data section is far away from the text section, which means the data
-	  section is over the 32-bit address range.
-
-	* code-model-02.ld: the text section is over the 32-bit address range, but
-	  the data section is placed nearly zero address.
-
-	We use the two linker scripts, to test the current medlow and medany behaviors
-	of GNU ld, including the weak symbol references and the relaxations behaviors.
-	Besides, these testcases also show the limits of the current medlow and medany
-	code models, that is - we may get the truncated to fit errors when linking
-	with the above two linker scripts.
-
-	ld/
-		* testsuite/ld-riscv-elf/code-model-01.ld: New testcases to test the
-		behaviors of the current medlow and medany code models.
-		* testsuite/ld-riscv-elf/code-model-02.ld: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medany-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medany-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medany-weakref-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medany-weakref-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medlow-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medlow-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medlow-weakref-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-medlow-weakref-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medany-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medany-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medany-weakref-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medany-weakref-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medlow-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medlow-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medlow-weakref-01.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model-relax-medlow-weakref-02.d: Likewise.
-		* testsuite/ld-riscv-elf/code-model.s: Likewise.
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
-
-2021-12-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-13  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Adjust linker tests for --disable-separate-code
-	Adjust linker tests for linker configured with --disable-separate-code:
-
-	1. Update expected outputs.
-	2. Pass -z max-page-size=0x1000 -z separate-code" to linker.
-
-		* testsuite/ld-i386/report-reloc-1.l: Updated.
-		* testsuite/ld-x86-64/report-reloc-1.l: Likewise.
-		* testsuite/ld-x86-64/pe-x86-64.exp: Pass
-		"-z max-page-size=0x1000 -z separate-code" to linker.
-		* testsuite/ld-x86-64/pr19609-4e.d: Likewise.
-		* testsuite/ld-x86-64/pr19609-6a.d: Likewise.
-		* testsuite/ld-x86-64/pr19609-6b.d: Likewise.
-		* testsuite/ld-x86-64/pr19609-7b.d: Likewise.
-		* testsuite/ld-x86-64/pr19609-7d.d: Likewise.
-
-2021-12-13  Carl Love  <cel@us.ibm.com>
-
-	gdb: Powerpc mark xfail in gdb.base/catch-syscall.exp
-	Powerpc is not reporting the
-
-	  Catchpoint 1 (returned from syscall execve),  ....
-
-	as expected.  The issue appears to be with the kernel not returning the
-	expected result.  This patch marks the test failure as an xfail.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28623
-
-2021-12-13  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: improve reuse of value contents when fetching array elements
-	While working on a Python script, which was interacting with a remote
-	target, I noticed some weird slowness in GDB.  In my program I had a
-	structure something like this:
-
-	  struct foo_t
-	  {
-	    int array[5];
-	  };
-
-	  struct foo_t global_foo;
-
-	Then in the Python script I was fetching a complete copy of global
-	foo, like:
-
-	  val = gdb.parse_and_eval('global_foo')
-	  val.fetch_lazy()
-
-	Then I would work with items in foo_t.array, like:
-
-	  print(val['array'][1])
-
-	I called the fetch_lazy method specifically because I knew I was going
-	to end up accessing almost all of the contents of val, and so I wanted
-	GDB to do a single remote protocol call to fetch all the contents in
-	one go, rather than trying to do lazy fetches for a couple of bytes at
-	a time.
-
-	What I observed was that, after the fetch_lazy call, GDB does,
-	correctly, fetch the entire contents of global_foo, including all of
-	the contents of array, however, when I access val.array[1], GDB still
-	goes and fetches the value of this element from the remote target.
-
-	What's going on is that in valarith.c, in value_subscript, for C like
-	languages, we always end up treating the array value as a pointer, and
-	then doing value_ptradd, and value_ind, the second of these calls
-	always returns a lazy value.
-
-	My guess is that this approach allows us to handle indexing off the
-	end of an array, when working with zero element arrays, or when
-	indexing a raw pointer as an array.  And, I agree, that in these
-	cases, where, even when the original value is non-lazy, we still will
-	not have the content of the array loaded, we should be using the
-	value_ind approach.
-
-	However, for cases where we do have the array contents loaded, and we
-	do know the bounds of the array, I think we should be using
-	value_subscripted_rvalue, which is what we use for non C like
-	languages.
-
-	One problem I did run into, exposed by gdb.base/charset.exp, was that
-	value_subscripted_rvalue stripped typedefs from the element type of
-	the array, which means the value returned will not have the same type
-	as an element of the array, but would be the raw, non-typedefed,
-	type.  In charset.exp we got back an 'int' instead of a
-	'wchar_t' (which is a typedef of 'int'), and this impacts how we print
-	the value.  Removing typedefs from the resulting value just seems
-	wrong, so I got rid of that, and I don't see any test regressions.
-
-	With this change in place, my original Python script is now doing no
-	additional memory accesses, and its performance increases about 10x!
-
-2021-12-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: update gdb-gdb.py.in for latest changes to struct field
-	This commit updates uses of 'loc' and 'loc_kind' to 'm_loc' and
-	'm_loc_kind' respectively, in gdb-gdb.py.in, which is required after
-	this commit:
-
-	  commit cd3f655cc7a55437a05aa8e7b1fcc9051b5fe404
-	  Date:   Thu Sep 30 22:38:29 2021 -0400
-
-	      gdb: add accessors for field (and call site) location
-
-	I have also incorporated this change:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-September/182171.html
-
-	Which means we print 'm_name' instead of 'name' when displaying the
-	'm_name' member variable.
-
-	Finally, I have also added support for the new TYPE_SPECIFIC_INT
-	fields, which were added with this commit:
-
-	  commit 20a5fcbd5b28cca88511ac5a9ad5e54251e8fa6d
-	  Date:   Wed Sep 23 09:39:24 2020 -0600
-
-	      Handle bit offset and bit size in base types
-
-	I updated the gdb.gdb/python-helper.exp test to cover all of these
-	changes.
-
-2021-12-13  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdbserver/linux-low: replace direct assignment to current_thread
-	Use scoped_restore_current_thread and switch_to_thread in
-	linux_process_target::wait_for_sigstop.
-
-2021-12-13  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdbserver: replace direct assignments to current_thread
-	Replace the direct assignments to current_thread with
-	switch_to_thread.  Use scoped_restore_current_thread when appropriate.
-	There is one instance remaining in linux-low.cc's wait_for_sigstop.
-	This will be handled in a separate patch.
-
-	Regression-tested on X86-64 Linux using the native-gdbserver and
-	native-extended-gdbserver board files.
-
-2021-12-13  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdbserver: introduce scoped_restore_current_thread and switch_to_thread
-	Introduce a class for restoring the current thread and a function to
-	switch to the given thread.  This is a preparation for a refactoring
-	that aims to remove direct assignments to 'current_thread'.
-
-2021-12-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make post_startup_inferior a virtual method on inf_ptrace_target
-	While working on a later patch that required me to understand how GDB
-	starts up inferiors, I was confused by the
-	target_ops::post_startup_inferior method.
-
-	The post_startup_inferior target function is only called from
-	inf_ptrace_target::create_inferior.
-
-	Part of the target class hierarchy looks like this:
-
-	  inf_child_target
-	     |
-	     '-- inf_ptrace_target
-	            |
-	            |-- linux_nat_target
-	            |
-	            |-- fbsd_nat_target
-	            |
-	            |-- nbsd_nat_target
-	            |
-	            |-- obsd_nat_target
-	            |
-	            '-- rs6000_nat_target
-
-	Every sub-class of inf_ptrace_target, except rs6000_nat_target,
-	implements ::post_startup_inferior.  The rs6000_nat_target picks up
-	the implementation of ::post_startup_inferior not from
-	inf_ptrace_target, but from inf_child_target.
-
-	No descendent of inf_child_target, outside the inf_ptrace_target
-	sub-tree, implements ::post_startup_inferior, which isn't really
-	surprising, as they would never see the method called (remember, the
-	method is only called from inf_ptrace_target::create_inferior).
-
-	What I find confusing is the role inf_child_target plays in
-	implementing, what is really a helper function for just one of its
-	descendents.
-
-	In this commit I propose that we formally make ::post_startup_inferior
-	a helper function of inf_ptrace_target.  To do this I will remove the
-	::post_startup_inferior from the target_ops API, and instead make this
-	a protected, pure virtual function on inf_ptrace_target.
-
-	I'll remove the empty implementation of ::post_startup_inferior from
-	the inf_child_target class, and add a new empty implementation to the
-	rs6000_nat_target class.
-
-	All the other descendents of inf_ptrace_target already provide an
-	implementation of this method and so don't need to change beyond
-	making the method protected within their class declarations.
-
-	To me, this makes much more sense now.  The helper function, which is
-	only called from within the inf_ptrace_target class, is now a part of
-	the inf_ptrace_target class.
-
-	The only way in which this change is visible to a user is if the user
-	turns on 'set debug target 1'.  With this debug flag on, prior to this
-	patch the user would see something like:
-
-	  -> native->post_startup_inferior (...)
-	  <- native->post_startup_inferior (2588939)
-
-	After this patch these lines are no longer present, as the
-	post_startup_inferior is no longer a top level target method.  For me,
-	this is an acceptable change.
-
-2021-12-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: have mips_nbsd_nat_target inherit from nbsd_nat_target
-	While working on another patch I had reason to look at
-	mips-netbsd-nat.c, and noticed that the class mips_nbsd_nat_target
-	inherits directly from inf_ptrace_target.
-
-	This is a little strange as alpha_bsd_nat_target,
-	arm_netbsd_nat_target, hppa_nbsd_nat_target, m68k_bsd_nat_target,
-	ppc_nbsd_nat_target, sh_nbsd_nat_target, and vax_bsd_nat_target all
-	inherit from nbsd_nat_target.
-
-	Originally, in this commit:
-
-	  commit f6ac5f3d63e03a81c4ff3749aba234961cc9090e
-	  Date:   Thu May 3 00:37:22 2018 +0100
-
-	      Convert struct target_ops to C++
-
-	When the target tree was converted to C++, all of the above classes
-	inherited from inf_ptrace_target except for hppa_nbsd_nat_target,
-	which was the only class that originally inherited from
-	nbsd_nat_target.
-
-	Later on all the remaining targets (except mips) were converted to
-	inherit from nbsd_nat_target, these are the commits:
-
-	  commit 4fed520be264b60893aa674071947890f8172915
-	  Date:   Sat Mar 14 16:05:24 2020 +0100
-
-	      Inherit alpha_netbsd_nat_target from nbsd_nat_target
-
-	  commit 6018d381a00515933016c539d2fdc18ad0d304b8
-	  Date:   Sat Mar 14 14:50:51 2020 +0100
-
-	      Inherit arm_netbsd_nat_target from nbsd_nat_target
-
-	  commit 01a801176ea15ddfc988cade2e3d84c3b0abfec3
-	  Date:   Sat Mar 14 16:54:42 2020 +0100
-
-	      Inherit m68k_bsd_nat_target from nbsd_nat_target
-
-	  commit 9faa006d11a5e08264a007463435f84b77864c9c
-	  Date:   Thu Mar 19 14:52:57 2020 +0100
-
-	      Inherit ppc_nbsd_nat_target from nbsd_nat_target
-
-	  commit 9809762324491b851332ce600ae9bde8dd34f601
-	  Date:   Tue Mar 17 15:07:39 2020 +0100
-
-	      Inherit sh_nbsd_nat_target from nbsd_nat_target
-
-	  commit d5be5fa4207da00d039a1d5a040ba316e7092cbd
-	  Date:   Sat Mar 14 13:21:58 2020 +0100
-
-	      Inherit vax_bsd_nat_target from nbsd_nat_target
-
-	I could only find mailing list threads for ppc and sh in the archive ,
-	and unfortunately, none of the commits has any real detail that might
-	explain why mips was missed out, the only extra context I could find
-	was this message:
-
-	  https://sourceware.org/pipermail/gdb-patches/2020-March/166853.html
-
-	Which says that "proper" OS support is going to be added to
-	nbsd_nat_target, hence the need to inherit from that class.
-
-	My guess is that leaving mips_nbsd_nat_target unchanged was an
-	oversight, so, in this commit, I propose changing mips_nbsd_nat_target
-	to inherit from nbsd_nat_target just like all the other nbsd targets.
-
-	My motivation for this patch relates to the post_startup_inferior
-	target method.  In a future commit I want to change how this method is
-	handled.  Currently the mips_nbsd_nat_target will pick up the empty
-	implementation of inf_child_target::post_startup_inferior rather than
-	the version in netbsd-nat.c.  This feels like a bug to me, as surely,
-	enabling of proc events is something that would need to be done for
-	all netbsd targets, regardless of architecture.
-
-	In my future patch I have a choice then, either (a) add a new, empty
-	implementation of post_startup_inferior to mips_nbsd_nat_target,
-	or (b) this commit, have mips_nbsd_nat_target inherit from
-	nbsd_nat_target.  Option (b) seems like the right way to go, hence,
-	this commit.
-
-	I've done absolutely no testing for this change, not even building it,
-	as that would require at least an environment in which I can x-build
-	mips-netbsd applications, which I have no idea how to set up.
-
-2021-12-13  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: only include mips and riscv targets if building with 64-bit bfd
-	While testing another patch I was trying to build different
-	configurations of GDB, and, during one test build I ran into a
-	problem, I configured with `--enable-targets=all
-	--host=i686-w64-mingw32` and saw this error while linking GDB:
-
-	  .../i686-w64-mingw32/bin/ld: mips-tdep.o: in function `mips_gdbarch_init':
-	  .../src/gdb/mips-tdep.c:8730: undefined reference to `disassembler_options_mips'
-	  .../i686-w64-mingw32/bin/ld: riscv-tdep.o: in function `riscv_gdbarch_init':
-	  .../src/gdb/riscv-tdep.c:3851: undefined reference to `disassembler_options_riscv'
-
-	So the `disassembler_options_mips` and `disassembler_options_riscv`
-	symbols are missing.
-
-	This turns out to be because mips-dis.c and riscv-dis.c, in which
-	these symbols are defined, are in the TARGET64_LIBOPCODES_CFILES list
-	in opcodes/Makefile.am, these files are only built when we are
-	building with a 64-bit bfd.
-
-	If we look further, into bfd/Makefile.am, we can see that all the
-	files matching elf*-riscv.lo are in the BFD64_BACKENDS list, as are
-	the elf*-mips.lo files, and (I know because I tried), the two
-	disassemblers do, not surprisingly, depend on features supplied from
-	libbfd.
-
-	So, though we can build most of GDB just fine for riscv and mips with
-	a 32-bit bfd, if I understand correctly, the final GDB
-	executable (assuming we could get it to link) would not understand
-	these architectures at the bfd level, nor would there be any
-	disassembler available.  This sounds like a pretty useless GDB to me.
-
-	So, in this commit, I move the riscv and mips targets into GDB's list
-	of targets that require a 64-bit bfd.  After this I can build GDB just
-	fine with the configure options given above.
-
-	This was discussed on the mailing list in a couple of threads:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-December/184365.html
-	  https://sourceware.org/pipermail/binutils/2021-November/118498.html
-
-	and it is agreed, that it is unfortunate that the 32-bit riscv and
-	32-bit mips targets require a 64-bit bfd.  If in the future this
-	situation ever changes then it would be expected that some (or all) of
-	this patch would be reverted.  Until then though, this patch allows
-	GDB to build when configured with --enable-targets=all, and when using
-	a 32-bit libbfd.
-
-2021-12-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-12  Tom Tromey  <tom@tromey.com>
-
-	C++-ify path substitution code
-	I found some uses of xfree in the path substitution code in source.c.
-	C++-ifying struct substitute_path_rule both simplifies the code and
-	removes manual memory management.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-12-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-11  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] PowerPC64 @notoc in non-power10 code
-	Gold version of commit 7aba54da42.
-
-	elfcpp/
-		* powerpc.h (R_PPC64_REL24_P9NOTOC): Define.
-	gold/
-		* powerpc.cc (Target_powerpc::maybe_skip_tls_get_addr_call,
-		is_branch_reloc, max_branch_delta): Handle R_PPC64_REL24_P9NOTOC.
-		(Target_powerpc::Branch_info::make_stub): Likewise.
-		(struct Plt_stub_ent): Add p9notoc_, p9off_, tsize_.
-		(struct Branch_stub_ent): Add p9notoc_, p9off_.
-		(Stub_table::add_plt_call_entry): Handle R_PPC64_REL24_P9NOTOC.
-		(Stub_table::add_long_branch_entry): Likewise.
-		(Stub_table::add_eh_frame): Likewise.
-		(Stub_table::plt_call_size): Return aligned size.  Adjust callers.
-		Handle p9notoc_ sizing.
-		(Stub_table::do_write): Write out p9notoc_ stubs.
-		(Target_powerpc::Scan::get_reference_flags, local, global):
-		Handle R_PPC64_REL24_P9NOTOC.
-		(Target_powerpc::Relocate::relocate): Likewise.
-
-2021-12-11  H.J. Lu  <hjl.tools@gmail.com>
-
-	Don't return the main file as the separate debug info
-	On Fedora 35,
-
-	$ readelf -d /usr/bin/npc
-
-	caused readelf to run out of stack since load_separate_debug_info
-	returned the input main file as the separate debug info:
-
-	(gdb) bt
-	 #0  load_separate_debug_info (
-	    main_filename=main_filename@entry=0x510f50 "/export/home/hjl/.cache/debuginfod_client/dcc33c51c49e7dafc178fdb5cf8bd8946f965295/debuginfo",
-	    xlink=xlink@entry=0x4e5180 <debug_displays+4480>,
-	    parse_func=parse_func@entry=0x431550 <parse_gnu_debuglink>,
-	    check_func=check_func@entry=0x432ae0 <check_gnu_debuglink>,
-	    func_data=func_data@entry=0x7fffffffdb60, file=file@entry=0x51d430)
-	    at /export/gnu/import/git/sources/binutils-gdb/binutils/dwarf.c:11057
-	 #1  0x000000000043328d in check_for_and_load_links (file=0x51d430,
-	    filename=0x510f50 "/export/home/hjl/.cache/debuginfod_client/dcc33c51c49e7dafc178fdb5cf8bd8946f965295/debuginfo")
-	    at /export/gnu/import/git/sources/binutils-gdb/binutils/dwarf.c:11381
-	 #2  0x00000000004332ae in check_for_and_load_links (file=0x51b070,
-	    filename=0x518dd0 "/export/home/hjl/.cache/debuginfod_client/dcc33c51c49e7dafc178fdb5cf8bd8946f965295/debuginfo")
-
-	Return NULL if the separate debug info is the same as the input main
-	file to avoid infinite recursion.
-
-		PR binutils/28679
-		* dwarf.c (load_separate_debug_info): Don't return the input
-		main file.
-
-2021-12-11  Alan Modra  <amodra@gmail.com>
-
-	Don't edit bogus sh_link on reading relocatable objects (Oracle fix)
-	This reverts a 1995 fix to handle bogus object files.  Presumably such
-	object files have long gone.
-
-		* elf.c (bfd_section_from_shdr): Remove old hack for Oracle
-		libraries.
-
-2021-12-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-10  Jan Vrany  <jan.vrany@labware.com>
-
-	gdb/testsuite: respect GDBSERVER variable in remote-stdio-gdbserver "board"
-	The comment on top of gdb/testsuite/boards/remote-stdio-gdbserver.exp says
-	that user can specify path to gdbserver on remote system by setting
-	GDBSERVER variable. However, this variable was ignored and /usr/bin/gdbserver
-	was used unconditionally.
-
-	This commit updates the code to respect GDBSERVER if set and fall back to
-	/usr/bin/gdbserver if not.
-
-2021-12-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	Revert "gdbsupport: remove unnecessary `#ifndef IN_PROCESS_AGENT`"
-	This reverts commit fe72c32765e1190c8a17d309fc3a7e1882d6a430.
-
-	It turns out it was wrong, libinproctrace.so does build its own
-	gdbsupport/tdesc.cc.  This broke the build:
-
-	    make[1]: Entering directory '/home/simark/build/binutils-gdb-one-target/gdbserver'
-	      CXXLD  libinproctrace.so
-	    /usr/bin/ld: gdbsupport/tdesc-ipa.o: in function `print_xml_feature::visit_pre(target_desc const*)':
-	    /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:407: undefined reference to `tdesc_architecture_name(target_desc const*)'
-	    /usr/bin/ld: /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:408: undefined reference to `tdesc_architecture_name(target_desc const*)'
-	    /usr/bin/ld: /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:411: undefined reference to `tdesc_osabi_name(target_desc const*)'
-	    /usr/bin/ld: /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:416: undefined reference to `tdesc_compatible_info_list(target_desc const*)'
-	    /usr/bin/ld: /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:418: undefined reference to `tdesc_compatible_info_arch_name(std::unique_ptr<tdesc_compatible_info, std::default_delete<tdesc_compatible_info> > const&)'
-
-2021-12-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-09  Alan Modra  <amodra@gmail.com>
-
-	PR28674, objdump crash
-	Not returning an error indication here leaves the attribute
-	uninitialised, which then leads to intemperate behaviour.
-
-		PR 28674
-		* dwarf2.c (read_attribute_value): Return NULL on trying to read
-		past end of attributes.
-
-2021-12-09  Alan Modra  <amodra@gmail.com>
-
-	Set sh_link for reloc sections created as normal sections
-	binutils-all/strip-13 and binutils-all/strip-14 tests create
-	SHT_REL/SHT_RELA sections by hand.  These don't have sh_link set to
-	the .symtab section as they should, leading to readelf warnings if you
-	happen to be looking at the object files.
-
-		* elf.c (assign_section_numbers): Formatting.  Set sh_link for
-		reloc sections created as normal sections in relocatable
-		objects.
-
-2021-12-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: remove unnecessary `#ifndef IN_PROCESS_AGENT`
-	I suppose this code was copied from GDBserver and this ifndef was left
-	there.  As far as I know, IN_PROCESS_AGENT will never be defined when
-	building this file, so we can remove this.
-
-	Change-Id: I84fc408e330b3a29106df830a09342861cadbaf6
-
-2021-12-09  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/microblaze-tdep.c: fix -Wunused-but-set-variable
-	Fix this, seen when building with clang 14:
-
-	      CXX    microblaze-tdep.o
-	    /home/simark/src/binutils-gdb/gdb/microblaze-tdep.c:207:7: error: variable 'flags' set but not used [-Werror,-Wunused-but-set-variable]
-	      int flags = 0;
-	          ^
-
-	Change-Id: I59f726ed33e924912748bc475b6fd9a9394fc0d0
-
-2021-12-09  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/csky-tdep.c: fix -Wunused-but-set-variable error
-	Fix these, seen when building with clang 14:
-
-	      CXX    csky-tdep.o
-	    /home/simark/src/binutils-gdb/gdb/csky-tdep.c:332:7: error: variable 'need_dummy_stack' set but not used [-Werror,-Wunused-but-set-variable]
-	      int need_dummy_stack = 0;
-	          ^
-	    /home/simark/src/binutils-gdb/gdb/csky-tdep.c:805:12: error: variable 'offset' set but not used [-Werror,-Wunused-but-set-variable]
-	                  int offset = 0;
-	                      ^
-
-	Change-Id: I6703bcb50e83c50083f716f4084ef6aa30d659c4
-
-2021-12-09  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: fix default behavior of runto
-	The documented behavior of proc runto is to not emit a PASS when
-	succeeding to to run to the specified location, but emit a FAIL when
-	failing to do so.  I suppose the intent is that it won't pollute the
-	results normally passing tests (although I don't see why we would care),
-	but make visible any problems.
-
-	However, it seems like the implementation makes it default to never
-	print anything.  "no-message" is prependend to "args", so if "message"
-	is not passed, we will always take the   path that sets print_fail to 0,
-	which will silence any failure.
-
-	This unfortunately means that tests relying on runto_main won't emit a
-	FAIL if failing to run to main.  And since commit 4dfef5be6812
-	("gdb/testsuite: make runto_main not pass no-message to runto"), tests
-	don't emit a FAIL themselves when failing to run to main.  This means
-	that tests failing to run to main just fail silently, and that's bad.
-
-	This can be reproduced by hacking gdb.base/template.exp like so:
-
-	    diff --git a/gdb/testsuite/gdb.base/template.c b/gdb/testsuite/gdb.base/template.c
-	    index bcf39c377d92..052be5b79d73 100644
-	    --- a/gdb/testsuite/gdb.base/template.c
-	    +++ b/gdb/testsuite/gdb.base/template.c
-	    @@ -15,6 +15,14 @@
-	        You should have received a copy of the GNU General Public License
-	        along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-	    +#include <stdlib.h>
-	    +
-	    +__attribute__((constructor))
-	    +static void c (void)
-	    +{
-	    +  exit (1);
-	    +}
-	    +
-	     int
-	     main (void)
-	     {
-
-	Running the modified gdb.base/template.exp shows that it exits without
-	printing any result.
-
-	Remove the line that prepends no-message to args, that should make
-	runto's behavior match its documentation.
-
-	This patch will appear to add many failures, but in reality they already
-	existed, they were just silenced.
-
-	Change-Id: I2a730d5bc72b6ef0698cd6aad962d9902aa7c3d6
-
-2021-12-09  Carl Love  <cel@us.ibm.com>
-
-	gdb fix elfv1 Powerpc gdb.dwarf2/frame-inlined-in-outer-frame.exp
-	On ELFv1, the _start symbol must point to the *function descriptor* (in
-	the .opd section), not to the function code (in the .text section) like
-	with ELFv2 and other architectures.
-
-2021-12-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/maint.exp with -readnow
-	With test-case gdb.base/maint.exp and target board -readnow, I run into:
-	...
-	FAIL: gdb.base/maint.exp: maint info line-table w/o a file name
-	...
-
-	The problem is that this and other regexps anchored using '^':
-	...
-	    -re "^$gdb_prompt $" {
-	...
-	don't trigger because other regexps don't consume the entire preceding line.
-
-	This is partly due to the addition of the IS-STMT column.
-
-	Fix this by making the regexps consume entire lines.
-
-	Tested on x86_64-linux with native and target board readnow, as well as
-	check-read1 and check-readmore.
-
-2021-12-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/include-main.exp with -readnow
-	With test-case gdb.base/include-main.exp and target board readnow, I run into:
-	...
-	FAIL: gdb.base/include-main.exp: maint info symtab
-	...
-
-	The corresponding check in gdb.base/include-main.exp:
-	...
-	gdb_test_no_output "maint info symtab"
-	...
-	checks that no CU was expanded, while -readnow ensures that all CUs are
-	expanded.
-
-	Fix this by skipping the check with -readnow.
-
-	Tested on x86_64-linux, with native and target board readnow.
-
-2021-12-09  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Clarify the behavior of .option arch directive.
-	* To be consistent with -march option, removed the "=" operator when
-	user want to reset the whole architecture string.  So the formats are,
-
-	.option arch, +<extension><version>, ...
-	.option arch, -<extension>
-	.option arch, <ISA string>
-
-	* Don't allow to add or remove the base extensions in the .option arch
-	directive.  Instead, users should reset the whole architecture string
-	while they want to change the base extension.
-
-	* The operator "+" won't update the version of extension, if the
-	extension is already in the subset list.
-
-	bfd/
-		* elfxx-riscv.c (riscv_add_subset): Don't update the version
-		if the extension is already in the subset list.
-		(riscv_update_subset): To be consistent with -march option,
-		removed the "=" operator when user want to reset the whole
-		architecture string.  Besides, Don't allow to add or remove
-		the base extensions in the .option arch directive.
-	gas/
-		* testsuite/gas/riscv/option-arch-01.s: Updated since we cannot
-		add or remove the base extensions in the .option arch directive.
-		* testsuite/gas/riscv/option-arch-02.s: Likewise.
-		* testsuite/gas/riscv/option-arch-fail.l: Likewise.
-		* testsuite/gas/riscv/option-arch-fail.s: Likewise.
-		* testsuite/gas/riscv/option-arch-01a.d: Set -misa-spec=2.2.
-		* testsuite/gas/riscv/option-arch-01b.d: Likewise.
-		* testsuite/gas/riscv/option-arch-02.d: Updated since the .option
-		arch, + won't change the version of extension, if the extension is
-		already in the subset list.
-		* testsuite/gas/riscv/option-arch-03.s: Removed the "=" operator
-		when resetting the whole architecture string.
-
-2021-12-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: use ## for automake comments
-	The ## marker tells automake to not include the comment in its
-	generated output, so use that in most places where the comment
-	only makes sense in the inputs.
-
-2021-12-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb, gdbserver: detach fork child when detaching from fork parent
-	While working with pending fork events, I wondered what would happen if
-	the user detached an inferior while a thread of that inferior had a
-	pending fork event.  What happens with the fork child, which is
-	ptrace-attached by the GDB process (or by GDBserver), but not known to
-	the core?  Sure enough, neither the core of GDB or the target detach the
-	child process, so GDB (or GDBserver) just stays ptrace-attached to the
-	process.  The result is that the fork child process is stuck, while you
-	would expect it to be detached and run.
-
-	Make GDBserver detach of fork children it knows about.  That is done in
-	the generic handle_detach function.  Since a process_info already exists
-	for the child, we can simply call detach_inferior on it.
-
-	GDB-side, make the linux-nat and remote targets detach of fork children
-	known because of pending fork events.  These pending fork events can be
-	stored in:
-
-	 - thread_info::pending_waitstatus, if the core has consumed the event
-	   but then saved it for later (for example, because it got the event
-	   while stopping all threads, to present an all-stop stop on top of a
-	   non-stop target)
-	 - thread_info::pending_follow: if we ran to a "catch fork" and we
-	   detach at that moment
-
-	Additionally, pending fork events can be in target-specific fields:
-
-	 - For linux-nat, they can be in lwp_info::status and
-	   lwp_info::waitstatus.
-	 - For the remote target, they could be stored as pending stop replies,
-	   saved in `remote_state::notif_state::pending_event`, if not
-	   acknowledged yet, or in `remote_state::stop_reply_queue`, if
-	   acknowledged.  I followed the model of remove_new_fork_children for
-	   this: call remote_notif_get_pending_events to process /
-	   acknowledge any unacknowledged notification, then look through
-	   stop_reply_queue.
-
-	Update the gdb.threads/pending-fork-event.exp test (and rename it to
-	gdb.threads/pending-fork-event-detach.exp) to try to detach the process
-	while it is stopped with a pending fork event.  In order to verify that
-	the fork child process is correctly detached and resumes execution
-	outside of GDB's control, make that process create a file in the test
-	output directory, and make the test wait $timeout seconds for that file
-	to appear (it happens instantly if everything goes well).
-
-	This test catches a bug in linux-nat.c, also reported as PR 28512
-	("waitstatus.h:300: internal-error: gdb_signal target_waitstatus::sig()
-	const: Assertion `m_kind == TARGET_WAITKIND_STOPPED || m_kind ==
-	TARGET_WAITKIND_SIGNALLED' failed.).  When detaching a thread with a
-	pending event, get_detach_signal unconditionally fetches the signal
-	stored in the waitstatus (`tp->pending_waitstatus ().sig ()`).  However,
-	that is only valid if the pending event is of type
-	TARGET_WAITKIND_STOPPED, and this is now enforced using assertions (iit
-	would also be valid for TARGET_WAITKIND_SIGNALLED, but that would mean
-	the thread does not exist anymore, so we wouldn't be detaching it).  Add
-	a condition in get_detach_signal to access the signal number only if the
-	wait status is of kind TARGET_WAITKIND_STOPPED, and use GDB_SIGNAL_0
-	instead (since the thread was not stopped with a signal to begin with).
-
-	Add another test, gdb.threads/pending-fork-event-ns.exp, specifically to
-	verify that we consider events in pending stop replies in the remote
-	target.  This test has many threads constantly forking, and we detach
-	from the program while the program is executing.  That gives us some
-	chance that we detach while a fork stop reply is stored in the remote
-	target.  To verify that we correctly detach all fork children, we ask
-	the parent to exit by sending it a SIGUSR1 signal and have it write a
-	file to the filesystem before exiting.  Because the parent's main thread
-	joins the forking threads, and the forking threads wait for their fork
-	children to exit, if some fork child is not detach by GDB, the parent
-	will not write the file, and the test will time out.  If I remove the
-	new remote_detach_pid calls in remote.c, the test fails eventually if I
-	run it in a loop.
-
-	There is a known limitation: we don't remove breakpoints from the
-	children before detaching it.  So the children, could hit a trap
-	instruction after being detached and crash.  I know this is wrong, and
-	it should be fixed, but I would like to handle that later.  The current
-	patch doesn't fix everything, but it's a step in the right direction.
-
-	Change-Id: I6d811a56f520e3cb92d5ea563ad38976f92e93dd
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28512
-
-2021-12-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: move clearing of tp->pending_follow to follow_fork_inferior
-	A following patch will change targets so that when they detach an
-	inferior, they also detach any pending fork children this inferior may
-	have.  While doing this, I hit a case where we couldn't differentiate
-	two cases, where in one we should detach the fork detach but not in the
-	other.
-
-	Suppose we continue past a fork with "follow-fork-mode == child" &&
-	"detach-on-fork on".  follow_fork_inferior calls target_detach to detach
-	the parent.  In that case the target should not detach the fork
-	child, as we'll continue debugging the child.  As of now, the
-	tp->pending_follow field of the thread who called fork still contains
-	the details about the fork.
-
-	Then, suppose we run to a fork catchpoint and the user types "detach".
-	In that case, the target should detach the fork child in addition to the
-	parent.  In that case as well, the tp->pending_follow field contains
-	the details about the fork.
-
-	To allow targets to differentiate the two cases, clear
-	tp->pending_follow a bit earlier, when following a fork.  Targets will
-	then see that tp->pending_follow contains TARGET_WAITKIND_SPURIOUS, and
-	won't detach the fork child.
-
-	As of this patch, no behavior changes are expected.
-
-	Change-Id: I537741859ed712cb531baaefc78bb934e2a28153
-
-2021-12-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/remote.c: refactor pending fork status functions
-	In preparation for a following patch, refactor a few things that I did
-	find a bit awkward, and to make them a bit more reusable.
-
-	 - Pass an inferior to kill_new_fork_children instead of a pid.  That
-	   allows iterating on only this inferior's threads and avoid further
-	   filtering on the thread's pid.
-	 - Change thread_pending_fork_status to return a non-nullptr value only
-	   if the thread does have a pending fork status.
-	 - Remove is_pending_fork_parent_thread, as one can just use
-	   thread_pending_fork_status and check for nullptr.
-	 - Replace is_pending_fork_parent with is_fork_status, which just
-	   returns if the given target_waitkind if a fork or a vfork.  Push
-	   filtering on the pid to the callers, when it is necessary.
-
-	Change-Id: I0764ccc684d40f054e39df6fa5458cc4c5d1cd7b
-
-2021-12-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/remote.c: move some things up
-	Move the stop_reply and a few functions up.  Some code above them in the
-	file will need to use them in a following patch.  No behavior changes
-	expected here.
-
-	Change-Id: I3ca57d0e3ec253f56e1ba401289d9d167de14ad2
-
-2021-12-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb/linux-nat: factor ptrace-detach code to new detach_one_pid function
-	The following patch will add some code paths that need to ptrace-detach
-	a given PID.  Factor out the code that does this and put it in its own
-	function, so that it can be re-used.
-
-	Change-Id: Ie65ca0d89893b41aea0a23d9fc6ffbed042a9705
-
-2021-12-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbserver: hide fork child threads from GDB
-	This patch aims at fixing a bug where an inferior is unexpectedly
-	created when a fork happens at the same time as another event, and that
-	other event is reported to GDB first (and the fork event stays pending
-	in GDBserver).  This happens for example when we step a thread and
-	another thread forks at the same time.  The bug looks like (if I
-	reproduce the included test by hand):
-
-	    (gdb) show detach-on-fork
-	    Whether gdb will detach the child of a fork is on.
-	    (gdb) show follow-fork-mode
-	    Debugger response to a program call of fork or vfork is "parent".
-	    (gdb) si
-	    [New inferior 2]
-	    Reading /home/simark/build/binutils-gdb/gdb/testsuite/outputs/gdb.threads/step-while-fork-in-other-thread/step-while-fork-in-other-thread from remote target...
-	    Reading /home/simark/build/binutils-gdb/gdb/testsuite/outputs/gdb.threads/step-while-fork-in-other-thread/step-while-fork-in-other-thread from remote target...
-	    Reading symbols from target:/home/simark/build/binutils-gdb/gdb/testsuite/outputs/gdb.threads/step-while-fork-in-other-thread/step-while-fork-in-other-thread...
-	    [New Thread 965190.965190]
-	    [Switching to Thread 965190.965190]
-	    Remote 'g' packet reply is too long (expected 560 bytes, got 816 bytes): ... <long series of bytes>
-
-	The sequence of events leading to the problem is:
-
-	 - We are using the all-stop user-visible mode as well as the
-	   synchronous / all-stop variant of the remote protocol
-	 - We have two threads, thread A that we single-step and thread B that
-	   calls fork at the same time
-	 - GDBserver's linux_process_target::wait pulls the "single step
-	   complete SIGTRAP" and the "fork" events from the kernel.  It
-	   arbitrarily choses one event to report, it happens to be the
-	   single-step SIGTRAP.  The fork stays pending in the thread_info.
-	 - GDBserver send that SIGTRAP as a stop reply to GDB
-	 - While in stop_all_threads, GDB calls update_thread_list, which ends
-	   up querying the remote thread list using qXfer:threads:read.
-	 - In the reply, GDBserver includes the fork child created as a result
-	   of thread B's fork.
-	 - GDB-side, the remote target sees the new PID, calls
-	   remote_notice_new_inferior, which ends up unexpectedly creating a new
-	   inferior, and things go downhill from there.
-
-	The problem here is that as long as GDB did not process the fork event,
-	it should pretend the fork child does not exist.  Ultimately, this event
-	will be reported, we'll go through follow_fork, and that process will be
-	detached.
-
-	The remote target (GDB-side), has some code to remove from the reported
-	thread list the threads that are the result of forks not processed by
-	GDB yet.  But that only works for fork events that have made their way
-	to the remote target (GDB-side), but haven't been consumed by the core
-	yet, so are still lingering as pending stop replies in the remote target
-	(see remove_new_fork_children in remote.c).  But in our case, the fork
-	event hasn't made its way to the GDB-side remote target.  We need to
-	implement the same kind of logic GDBserver-side: if there exists a
-	thread / inferior that is the result of a fork event GDBserver hasn't
-	reported yet, it should exclude that thread / inferior from the reported
-	thread list.
-
-	This was actually discussed a while ago, but not implemented AFAIK:
-
-	    https://pi.simark.ca/gdb-patches/1ad9f5a8-d00e-9a26-b0c9-3f4066af5142@redhat.com/#t
-	    https://sourceware.org/pipermail/gdb-patches/2016-June/133906.html
-
-	Implementation details-wise, the fix for this is all in GDBserver.  The
-	Linux layer of GDBserver already tracks unreported fork parent / child
-	relationships using the lwp_info::fork_relative, in order to avoid
-	wildcard actions resuming fork childs unknown to GDB.  This information
-	needs to be made available to the handle_qxfer_threads_worker function,
-	so it can filter the reported threads.  Add a new thread_pending_parent
-	target function that allows the Linux target to return the parent of an
-	eventual fork child.
-
-	Testing-wise, the test replicates pretty-much the sequence of events
-	shown above.  The setup of the test makes it such that the main thread
-	is about to fork.  We stepi the other thread, so that the step completes
-	very quickly, in a single event.  Meanwhile, the main thread is resumed,
-	so very likely has time to call fork.  This means that the bug may not
-	reproduce every time (if the main thread does not have time to call
-	fork), but it will reproduce more often than not.  The test fails
-	without the fix applied on the native-gdbserver and
-	native-extended-gdbserver boards.
-
-	At some point I suspected that which thread called fork and which thread
-	did the step influenced the order in which the events were reported, and
-	therefore the reproducibility of the bug.  So I made the test try  both
-	combinations: main thread forks while other thread steps, and vice
-	versa.  I'm not sure this is still necessary, but I left it there
-	anyway.  It doesn't hurt to test a few more combinations.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28288
-	Change-Id: I2158d5732fc7d7ca06b0eb01f88cf27bf527b990
-
-2021-12-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-08  Tom Tromey  <tom@tromey.com>
-
-	Use for-each more in gdb
-	There are some loops in gdb that use ARRAY_SIZE (or a wordier
-	equivalent) to loop over a static array.  This patch changes some of
-	these to use foreach instead.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-12-08  Tom Tromey  <tromey@adacore.com>
-
-	Fix error in file_and_directory patch
-	In my earlier C++-ization patch for file_and_directory, I introduced
-	an error:
-
-	-  if (strcmp (fnd.name, "<unknown>") != 0)
-	+  if (fnd.is_unknown ())
-
-	This change inverted the sense of the test, which causes failures with
-	.debug_names.
-
-	This patch fixes the bug.  Regression tested on x86-64 Fedora 34.  I
-	also tested it using the AdaCore internal test suite, with
-	.debug_names -- this was failing before, and now it works.
-
-2021-12-08  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: Use tp_init instead of tp_new to setup gdb.Value
-	The documentation suggests that we implement gdb.Value.__init__,
-	however, this is not currently true, we really implement
-	gdb.Value.__new__.  This will cause confusion if a user tries to
-	sub-class gdb.Value.  They might write:
-
-	  class MyVal (gdb.Value):
-	      def __init__ (self, val):
-	          gdb.Value.__init__(self, val)
-
-	  obj = MyVal(123)
-	  print ("Got: %s" % obj)
-
-	But, when they source this code they'll see:
-
-	  (gdb) source ~/tmp/value-test.py
-	  Traceback (most recent call last):
-	    File "/home/andrew/tmp/value-test.py", line 7, in <module>
-	      obj = MyVal(123)
-	    File "/home/andrew/tmp/value-test.py", line 5, in __init__
-	      gdb.Value.__init__(self, val)
-	  TypeError: object.__init__() takes exactly one argument (the instance to initialize)
-	  (gdb)
-
-	The reason for this is that, as we don't implement __init__ for
-	gdb.Value, Python ends up calling object.__init__ instead, which
-	doesn't expect any arguments.
-
-	The Python docs suggest that the reason why we might take this
-	approach is because we want gdb.Value to be immutable:
-
-	   https://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_new
-
-	But I don't see any reason why we should require gdb.Value to be
-	immutable when other types defined in GDB are not.  This current
-	immutability can be seen in this code:
-
-	  obj = gdb.Value(1234)
-	  print("Got: %s" % obj)
-	  obj.__init__ (5678)
-	  print("Got: %s" % obj)
-
-	Which currently runs without error, but prints:
-
-	  Got: 1234
-	  Got: 1234
-
-	In this commit I propose that we switch to using __init__ to
-	initialize gdb.Value objects.
-
-	This does introduce some additional complexity, during the __init__
-	call a gdb.Value might already be associated with a gdb value object,
-	in which case we need to cleanly break that association before
-	installing the new gdb value object.  However, the cost of doing this
-	is not great, and the benefit - being able to easily sub-class
-	gdb.Value seems worth it.
-
-	After this commit the first example above works without error, while
-	the second example now prints:
-
-	  Got: 1234
-	  Got: 5678
-
-	In order to make it easier to override the gdb.Value.__init__ method,
-	I have tweaked the definition of gdb.Value.__init__.  The second,
-	optional argument to __init__ is a gdb.Type, if this argument is not
-	present then GDB figures out a suitable type.
-
-	However, if we want to override the __init__ method in a sub-class,
-	and still support the default argument, it is easier to write:
-
-	  class MyVal (gdb.Value):
-	      def __init__ (self, val, type=None):
-	          gdb.Value.__init__(self, val, type)
-
-	Currently, passing None for the Type will result in an error:
-
-	  TypeError: type argument must be a gdb.Type.
-
-	After this commit I now allow the type argument to be None, in which
-	case GDB figures out a suitable type just as if the type had not been
-	passed at all.
-
-	Unless a user is trying to reinitialize a value, or create sub-classes
-	of gdb.Value, there should be no user visible changes after this
-	commit.
-
-2021-12-08  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: use try/catch around a gdb_disassembler::print_insn call
-	While investigating some disassembler problems I ran into this case;
-	GDB compiled on a 32-bit arm target, with --enable-targets=all.  Then
-	in GDB:
-
-	  (gdb) set architecture i386
-	  (gdb) disassemble 0x0,+4
-	  unknown disassembler error (error = -1)
-
-	This is interesting because it shows a case where the libopcodes
-	disassembler is returning -1 without first calling the
-	memory_error_func callback.  Indeed, the return from libopcodes
-	happens from this code snippet in i386-dis.c in the print_insn
-	function:
-
-	  if (address_mode == mode_64bit && sizeof (bfd_vma) < 8)
-	    {
-	      (*info->fprintf_func) (info->stream,
-				     _("64-bit address is disabled"));
-	      return -1;
-	    }
-
-	Notice how, prior to the return the disassembler tries to print a
-	helpful message out, but GDB doesn't print this message.
-
-	The reason this message goes missing is the call stack, it looks like
-	this:
-
-	  gdb_pretty_print_disassembler::pretty_print_insn
-	    gdb_disassembler::print_insn
-	      gdbarch_print_insn
-	        ...
-	          i386-dis.c:print_insn
-
-	When i386-dis.c:print_insn returns -1 this is handled in
-	gdb_disassembler::print_insn, where an exception is thrown.  However,
-	the actual printing of the disassembler output is done in
-	gdb_pretty_print_disassembler::pretty_print_insn, and is only done if
-	an exception is not thrown.
-
-	In this commit I change this.  The pretty_print_insn now uses
-	try/catch around the call to gdb_disassembler::print_insn, if we catch
-	an error then we first print any pending output in the instruction
-	buffer, before rethrowing the exception.  As a result, even if an
-	exception is thrown we still print any pending disassembler output to
-	the screen; in the above case the helpful message will now be shown.
-
-	Before my patch we might expect to see this output:
-
-	  (gdb) disassemble 0x0,+4
-	  Dump of assembler code from 0x0 to 0x4:
-	     0x0000000000000000:	unknown disassembler error (error = -1)
-	  (gdb)
-
-	But now we see this:
-
-	  (gdb) disassemble 0x0,+4
-	  Dump of assembler code from 0x0 to 0x4:
-	     0x0000000000000000:	64-bit address is disabled
-	  unknown disassembler error (error = -1)
-
-	If the disassembler returns -1 without printing a helpful message then
-	we would still expect a change in output, something like:
-
-	  (gdb) disassemble 0x0,+4
-	  Dump of assembler code from 0x0 to 0x4:
-	     0x0000000000000000:
-	  unknown disassembler error (error = -1)
-
-	Which I think is still acceptable, though at this point I think a
-	strong case can be made that this is a disassembler bug (not printing
-	anything, but still returning -1).
-
-	Notice however, that the error message is always printed on a new line
-	now.  This is also true for the memory error case, where before we
-	might see this:
-
-	  (gdb) disassemble 0x0,+4
-	  Dump of assembler code from 0x0 to 0x4:
-	     0x00000000:	Cannot access memory at address 0x0
-
-	We now get this:
-
-	  (gdb) disassemble 0x0,+4
-	  Dump of assembler code from 0x0 to 0x4:
-	     0x00000000:
-	  Cannot access memory at address 0x0
-
-	For me, I'm happy to accept this change, having the error on a line by
-	itself, rather than just appended to the end of the previous line,
-	seems like an improvement, but I'm aware others might feel
-	differently, so I'd appreciate any feedback.
-
-2021-12-08  Jan Vrany  <jan.vrany@labware.com>
-
-	ppc: recognize all program traps
-	Permanent program breakpoints (ones inserted into the code) other than
-	the one GDB uses for POWER (0x7fe00008) did not result in stop but
-	caused GDB to loop infinitely.
-
-	This was because GDB did not recognize trap instructions other than
-	"trap". For example, "tw 12, 4, 4" was not be recognized, causing GDB
-	to loop forever.
-
-	This commit fixes this by providing POWER specific hook
-	(gdbarch_program_breakpoint_here_p) recognizing all tw, twi, td and tdi
-	instructions.
-
-	Tested on Linux on PowerPC e500 and on QEMU PPC64le.
-
-2021-12-08  Jan Vrany  <jan.vrany@labware.com>
-
-	ppc: use "trap" ("tw, 31, 0, 0") as breakpoint instruction
-	Power ISA 3.0 B spec [1], sections 3.3.11 "Fixed-Point Trap Instructions"
-	and section C.6 "Trap Mnemonics" specify "tw, 31, 0, 0" (encoded as
-	0x7fe00008) as canonical unconditional trap instruction.
-
-	This commit changes the breakpoint instruction used by GDB from
-	"tw 12, r2, r2" to unconditional "trap".
-
-	[1]: https://openpowerfoundation.org/?resource_lib=power-isa-version-3-0
-
-2021-12-08  Fangrui Song  <maskray@google.com>
-
-	bfd_section_from_shdr: Support SHT_RELR sections
-	If a.so contains an SHT_RELR section, objcopy a.so will fail with:
-
-	    a.so: unknown type [0x13] section `.relr.dyn'
-
-	This change allows objcopy to work.
-
-	bfd/
-	    * elf.c (bfd_section_from_shdr): Support SHT_RELR.
-
-2021-12-08  Alan Modra  <amodra@gmail.com>
-
-	PR28673, input file 'gcov' is the same as output file
-		PR 28673
-		* ldlang.c (open_output): Use local_sym_name when checking
-		output against input files rather than filename.
-
-2021-12-08  Tom Tromey  <tom@tromey.com>
-
-	Fix bug in source.c change
-	My earlier change to source.c ("Remove an xfree from add_path")
-	introduced a regression.  This patch fixes the problem.
-
-2021-12-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make struct linespect contain vectors, not pointers to vectors
-	struct linespec contains pointers to vectors, instead of containing
-	vectors directly.  This is probably historical, when linespec_parser
-	(which contains a struct linespec field) was not C++-ified yet.  But it
-	seems easy to change the pointers to vectors to just vectors today.
-	This simplifies the code, we don't need to manually allocate and delete
-	the vectors and there's no pointer that can be NULL.
-
-	As far as I understand, there was not meaningful distinction between a
-	NULL pointer to vector and an empty vector.  So all NULL checks are
-	changed for !empty checks.
-
-	Change-Id: Ie759707da14d9d984169b93233343a86e2de9ee6
-
-2021-12-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-07  Tom Tromey  <tom@tromey.com>
-
-	Remove an xfree from add_path
-	This removes a temporary \0 assignment and an xfree from add_path,
-	replacing it with a simpler use of std::string.
-
-2021-12-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/linespec.c: simplify condition
-	We can remove the empty check: if the vector has size 1, it is obviously
-	not empty.  This code ended up like this because the empty check used to
-	be a NULL check.
-
-	Change-Id: I1571bd0228818ca93f6a6b444e9b010dc2da4c08
-
-2021-12-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: rename "maint agent" functions
-	Functions agent_eval_command and agent_command are used to implement
-	maintenance commands, rename them accordingly (with the maint_ prefix),
-	as well as the agent_command_1 helper function.
-
-	Change-Id: Iacf96d4a0a26298e8dd4648a0f38da649ea5ef61
-
-2021-12-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make set_raw_breakpoint static
-	set_raw_breakpoint is only used in breakpoint.c, make it static.
-
-	Change-Id: I7fbeda067685309a30b88aceaf957eff7a28e310
-
-2021-12-07  John Baldwin  <jhb@FreeBSD.org>
-
-	Support AT_FXRNG and AT_KPRELOAD on FreeBSD.
-	FreeBSD's kernel has recently added two new ELF auxiliary vector
-	entries.  AT_FXRNG points to a root seed version for the kernel's
-	PRNG.  Userland can use this to reseed a userland PRNG after the
-	kernel's PRNG has reseeded.  AT_KPRELOAD is the base address of a
-	kernel-provided vDSO.
-
-	This change displays the proper name and description of these entries
-	in 'info auxv'.
-
-	include/ChangeLog:
-
-		* elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define.
-
-2021-12-07  Tom Tromey  <tromey@adacore.com>
-
-	Avoid extra work in global_symbol_searcher::expand_symtabs
-	I noticed that global_symbol_searcher::expand_symtabs always passes a
-	file matcher to expand_symtabs_matching.  However, if 'filenames' is
-	empty, then this always returns true.  It's slightly more efficient to
-	pass a null file matcher in this case, because that lets the "quick"
-	symbol implementations skip any filename checks.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-12-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix options arg handling in compile_jit_elf_main_as_so
-	In commit 80ad340c902 ("[gdb/testsuite] use -Ttext-segment for jit-elf tests")
-	the following change was made:
-	...
-	 proc compile_jit_elf_main_as_so {main_solib_srcfile main_solib_binfile options} {
-	-    set options [concat $options debug]
-	+    global jit_load_address jit_load_increment
-	+
-	+    set options [list \
-	+       additional_flags="-DMAIN=jit_dl_main" \
-	+       additional_flags=-DLOAD_ADDRESS=$jit_load_address \
-	+       additional_flags=-DLOAD_INCREMENT=$jit_load_increment \
-	+       debug]
-	...
-
-	Before the change, the options argument was used, but after the change not
-	anymore.
-
-	Fix this by reverting back to using "set options [concat $options ...]".
-
-	Fixing this gets us twice the -DMAIN=jit_dl_main bit, once from a caller, and
-	once from compile_jit_elf_main_as_so.  Fix this by removing the bit from
-	compile_jit_elf_main_as_so, which makes the code similar to compile_jit_main.
-
-	Tested on x86_64-linux.
-
-2021-12-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAIL in gdb.tui/basic.exp
-	On openSUSE Leap 15.2 aarch64 I ran into:
-	...
-	FAIL: gdb.tui/basic.exp: check main is where we expect on the screen
-	...
-	while this is passing on x86_64.
-
-	On x86_64-linux we have at the initial screen dump for "list -q main":
-	...
-	 0 +-/home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.tui/tui-layout.c--+
-	 1 |       15     You should have received a copy of the GNU General Public |
-	 2 |       16     along with this program.  If not, see <http://www.gnu.org/|
-	 3 |       17                                                               |
-	 4 |       18  int                                                          |
-	 5 |       19  main ()                                                      |
-	 6 |       20  {                                                            |
-	 7 |       21    return 0;                                                  |
-	 8 |       22  }                                                            |
-	 9 |       23                                                               |
-	...
-	but on aarch64:
-	...
-	 0 +-/home/tdevries/gdb/src/gdb/testsuite/gdb.tui/tui-layout.c--------------+
-	 1 |       16     along with this program.  If not, see <http://www.gnu.org/|
-	 2 |       17                                                               |
-	 3 |       18  int                                                          |
-	 4 |       19  main ()                                                      |
-	 5 |       20  {                                                            |
-	 6 |       21    return 0;                                                  |
-	 7 |       22  }                                                            |
-	 8 |       23                                                               |
-	 9 |       24                                                               |
-	...
-
-	The cause of the diffferent placement is that we have as line number for main
-	on x86_64:
-	...
-	$ gdb -q -batch outputs/gdb.tui/basic/basic -ex "info line main"
-	Line 20 of "tui-layout.c" starts at address 0x4004a7 <main> \
-	  and ends at 0x4004ab <main+4>.
-	...
-	and on aarch64 instead:
-	...
-	$ gdb -q -batch outputs/gdb.tui/basic/basic -ex "info line main"
-	Line 21 of "tui-layout.c" starts at address 0x4005f4 <main> \
-	  and ends at 0x4005f8 <main+4>.
-	...
-
-	Fix this by using a new source file main-one-line.c, that implements the
-	entire main function on a single line, in order to force the compiler to use
-	that line number.
-
-	Also try to do less hard-coding in the test-case.
-
-	Tested on x86_64-linux and aarch64-linux.
-
-2021-12-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix inferior plt calls in PIE for i386
-	Consider test-case test.c:
-	...
-	int main (void) {
-	  void *p = malloc (10);
-	  return 0;
-	}
-	...
-
-	When compiled to a non-PIE exec:
-	...
-	$ gcc -m32 test.c
-	...
-	the call sequence looks like:
-	...
-	 8048447:       83 ec 0c                sub    $0xc,%esp
-	 804844a:       6a 0a                   push   $0xa
-	 804844c:       e8 bf fe ff ff          call   8048310 <malloc@plt>
-	...
-	which calls to:
-	...
-	08048310 <malloc@plt>:
-	 8048310:       ff 25 0c a0 04 08       jmp    *0x804a00c
-	 8048316:       68 00 00 00 00          push   $0x0
-	 804831b:       e9 e0 ff ff ff          jmp    8048300 <.plt>
-	...
-	where the first insn at 0x8048310 initially jumps to the following address
-	0x8048316, read from the .got.plt @ 0x804a00c:
-	...
-	 804a000 0c9f0408 00000000 00000000 16830408  ................
-	 804a010 26830408                             &...
-	...
-
-	Likewise, when compiled as a PIE:
-	...
-	$ gcc -m32 -fPIE -pie test.c
-	...
-	we have this call sequence (with %ebx setup to point to the .got.plt):
-	...
-	0000055d <main>:
-	 579:   83 ec 0c                sub    $0xc,%esp
-	 57c:   6a 0a                   push   $0xa
-	 57e:   89 c3                   mov    %eax,%ebx
-	 580:   e8 6b fe ff ff          call   3f0 <malloc@plt>
-	...
-	which calls to:
-	...
-	000003f0 <malloc@plt>:
-	 3f0:   ff a3 0c 00 00 00       jmp    *0xc(%ebx)
-	 3f6:   68 00 00 00 00          push   $0x0
-	 3fb:   e9 e0 ff ff ff          jmp    3e0 <.plt>
-	...
-	where the insn at 0x3f0 initially jumps to following address 0x3f6, read from
-	the .got.plt at offset 0xc:
-	...
-	 2000 f41e0000 00000000 00000000 f6030000  ................
-	 2010 06040000                             ....
-	...
-
-	When instead doing an inferior call to malloc (with nosharedlib to force
-	malloc to resolve to malloc@plt rather than the functions in ld.so or libc.so)
-	with the non-PIE exec, we have the expected:
-	...
-	$ gdb -q -batch a.out -ex start -ex nosharedlib -ex "p /x (void *)malloc (10)"
-	Temporary breakpoint 1 at 0x8048444
-
-	Temporary breakpoint 1, 0x08048444 in main ()
-	$1 = 0x804b160
-	...
-
-	But with the PIE exec, we run into:
-	...
-	$ gdb -q -batch a.out -ex start -ex nosharedlib -ex "p /x (void *)malloc (10)"
-	Temporary breakpoint 1 at 0x56c
-
-	Temporary breakpoint 1, 0x5655556c in main ()
-
-	Program received signal SIGSEGV, Segmentation fault.
-	0x565553f0 in malloc@plt ()
-	...
-
-	The segfault happens because:
-	- the inferior call mechanism doesn't setup %ebx
-	- %ebx instead is 0
-	- the jump to "*0xc(%ebx)" reads from memory at 0xc
-
-	Fix this by setting up %ebx properly in i386_thiscall_push_dummy_call.
-
-	Fixes this failure with target board unix/-m32/-pie/-fPIE reported in
-	PR28467:
-	...
-	FAIL: gdb.base/nodebug.exp: p/c (int) array_index("abcdef",2)
-	...
-
-	Tested on x86_64-linux, with target board unix/-m32 and unix/-m32/-fPIE/-pie.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28467
-
-2021-12-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Support -readnow during reread
-	When running test-case gdb.base/cached-source-file.exp with target board
-	readnow, we run into:
-	...
-	FAIL: gdb.base/cached-source-file.exp: rerun program (the program exited)
-	...
-
-	The problem is that when rereading, the readnow is ignored.
-
-	Fix this by copying the readnow handling code from symbol_file_add_with_addrs
-	to reread_symbols.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26800
-
-2021-12-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/ada] Fix assert in ada_is_unconstrained_packed_array_type
-	On openSUSE Leap 42.3, with system compiler gcc 4.8.5 I run into:
-	...
-	(gdb) print u_one_two_three^M
-	src/gdb/gdbtypes.h:1050: internal-error: field: \
-	 Assertion `idx >= 0 && idx < num_fields ()' failed.^M
-	...
-
-	We run into trouble while doing this in
-	ada_is_unconstrained_packed_array_type:
-	...
-	1953          return TYPE_FIELD_BITSIZE (type, 0) > 0;
-	...
-	which tries to get field 0 from a type without fields:
-	...
-	(gdb) p type->num_fields ()
-	$6 = 0
-	...
-	which is the case because the type is a typedef:
-	...
-	(gdb) p type->code ()
-	$7 = TYPE_CODE_TYPEDEF
-	...
-
-	Fix this by using the type referenced by the typedef instead.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28323
-
-2021-12-07  Alan Modra  <amodra@gmail.com>
-
-	Re: Add support for AArch64 EFI (efi-*-aarch64)
-	Commit b69c9d41e8 was broken in multiple ways regarding the realloc
-	of the target string, most notably in that "-little" wasn't actually
-	appended to the input_target or output_target.  This caused asan
-	errors and "FAIL: Check if efi app format is recognized".  I also
-	noticed that the input_target string wasn't being copied but rather
-	the output_target when dealing with the input target.  Fix that too.
-
-		PR 26206
-		* objcopy.c (convert_efi_target): Rewrite.  Allocate modified
-		target strings here..
-		(copy_main): ..rather than here.  Do handle input_target,
-		not output_target for input.
-
-2021-12-07  Alan Modra  <amodra@gmail.com>
-
-	Error on ld output file name matching input file name
-	It's not foolproof, for example we don't catch output to a linker
-	script, to a library specified with -l, or to an element of a thin
-	archive.
-
-		* ldlang.c (open_output): Exit with error on output file matching
-		an input file.
-		* testsuite/ld-misc/just-symbols.exp: Adjust ld -r test to suit.
-
-2021-12-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-06  Carl Love  <cel@us.ibm.com>
-
-	gdb: Add PowerPC support to gdb.dwarf2/frame-inlined-in-outer-frame
-	This patch adds an #elif defined for PowerPC to setup the exit_0 macro.
-	This patch addes the needed macro definitionald logic to handle both elfV1
-	and elfV2.
-
-	The patch has been successfully tested on both PowerPC BE, Powerpc LE and
-	X86_64 with no regressions.
-
-2021-12-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use precise align in gdb.arch/i386-{avx,sse}.exp
-	Test-cases gdb.arch/i386-{avx,sse}.exp use assembly instructions that require
-	the memory operands to be aligned to a certain boundary, and the test-cases
-	use C11's _Alignas to make that happen.
-
-	The draw-back of using _Alignas is that while it does enforce a minimum
-	alignment, the actual alignment may be bigger, which makes the following
-	scenario possible:
-	- copy say, gdb.arch/i386-avx.c as basis for a new test-case
-	- run the test-case and observe a PASS
-	- commit the new test-case in the supposition that the test-case is correct
-	  and well-tested
-	- run later into a failure on a different test setup (which may be a setup
-	  where reproduction and investigation is more difficult and time-consuming),
-	  and find out that the specified alignment was incorrect and should have been
-	  updated to say, 64 bytes.  The initial PASS occurred only because the actual
-	  alignment happened to be greater than required.
-
-	The idea of having precise alignment as a means of having more predictable
-	execution which allows flushing out bugs earlier, has been filed as PR
-	gcc/103095.
-
-	Add a new file lib/precise-aligned-alloc.c with functions
-	precise_aligned_alloc and precise_aligned_dup, to support precise alignment.
-
-	Use precise_aligned_dup in aforementioned test-cases to:
-	- verify that the specified alignment is indeed sufficient, rather
-	  than too little but accidentally over-aligned.
-	- prevent the same type of problems in any new test-cases based on these
-
-	Tested on x86_64-linux, with both gcc and clang.
-
-2021-12-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix data alignment in gdb.arch/i386-{avx,sse}.exp
-	When running test-case gdb.arch/i386-avx.exp with clang I ran into:
-	...
-	(gdb) PASS: gdb.arch/i386-avx.exp: set first breakpoint in main
-	continue^M
-	Continuing.^M
-	^M
-	Program received signal SIGSEGV, Segmentation fault.^M
-	0x000000000040052b in main (argc=1, argv=0x7fffffffd3c8) at i386-avx.c:54^M
-	54        asm ("vmovaps 0(%0), %%ymm0\n\t"^M
-	(gdb) FAIL: gdb.arch/i386-avx.exp: continue to breakpoint: \
-	  continue to first breakpoint in main
-	...
-
-	The problem is that the vmovaps insn requires an 256-bit (or 32-byte) aligned
-	address, and it's only 16-byte aligned:
-	...
-	(gdb) p /x $rax
-	$1 = 0x601030
-	...
-
-	Fix this by using a sufficiently aligned address, using _Alignas.
-
-	Compile using -std=gnu11 to support _Alignas.
-
-	Likewise in gdb.arch/i386-sse.exp.
-
-	Tested on x86_64-linux, with both gcc and clang.
-
-2021-12-06  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] PowerPC64 inline plt sequences
-	The fixes gold failures to handle inline PLT sequences properly.
-	PowerPC gold was always turning these back into direct calls due to
-	gsym->use_plt_offset() returning false.  This is fixed for dynamic
-	linking by correcting get_reference_flags, and for static linking by
-	overriding use_plt_offset() in relocate().  The rest of the patch
-	revolves around needing to create PLT entries for inline PLT calls
-	when statically linking (for gcc -mlongcall).  The lplt section
-	handled that for local symbols, now it does globals too.
-
-		* powerpc.cc (Target_powerpc::plt_off): Return proper section
-		for static link.
-		(Target_powerpc::symval_for_branch): Make public.
-		(Target_powerpc::make_lplt_section): Add Symbol_table* param.
-		Adjust all calls.
-		(Target_powerpc::make_local_plt_entry): Likewise.
-		(Target_powerpc::make_local_plt_entry): New variant for global syms.
-		(Powerpc_relobj::do_relocate_sections): Don't write lplt contents.
-		(Output_data_plt_powerpc::do_write): Write lplt contents here.
-		(Output_data_plt_powerpc::Output_data_plt_powerpc): Save
-		symbol table pointer.  Adjust all uses.
-		(Output_data_plt_powerpc::add_entry): Add stash parameter.  Don't
-		do dynamic reloc handling when no reloc section.  Save symbol
-		for local plt entries.
-		(Output_data_plt_powerpc::add_local_entry): Save symbol.
-		(Output_data_plt_powerpc::Local_plt_ent): New class.
-		(Output_data_plt_powerpc::sym_ents_): New vector.
-		(Target_powerpc::Scan::get_reference_flags): Return
-		FUNCTION_CALL|RELATIVE_REF for inline plt relocs.
-		(Target_powerpc::Scan::global): Make entries in lplt for inline
-		plt call relocation symbols.
-		(Target_powerpc::Relocate::relocate): Rename has_plt_offset to
-		use_plt_offset.  Set use_plt_offset for inline plt relocs.
-
-2021-12-06  Clément Chigot  <clement.chigot@atos.net>
-
-	ld: improve shared tests for AIX
-	It's now possible to refer symbols in the main program from the
-	shared library. However, it still impossible to have the same
-	overriden features between shared objects and mains than ELF,
-	without using the runtime linking feature which isn't yet fully
-	available.
-
-	ld/ChangeLog:
-
-		* testsuite/ld-shared/shared.exp: Improve XCOFF support
-		* testsuite/ld-shared/main.c: Likewise.
-		* testsuite/ld-shared/sh1.c: Likewise.
-		* testsuite/ld-shared/xcoff.dat: Likewise.
-
-2021-12-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-05  Tom Tromey  <tom@tromey.com>
-
-	Preserve artificial CU name in process_psymtab_comp_unit_reader
-	This fixes a use-after-free that Simon pointed out.
-	process_psymtab_comp_unit_reader was allocating an artificial name for
-	a CU, and then discarding it.  However, this name was preserved in the
-	cached file_and_directory.  This patch arranges for the allocated name
-	to be preserved there.
-
-2021-12-05  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: include ansidecl.h when needed
-	Avoid implicit include deps with this to help untangle sim headers
-	so we can get rid of arch-specific sim-main.h.
-
-	sim: include stdint.h when needed
-	Avoid implicit include deps with this to help untangle sim headers
-	so we can get rid of arch-specific sim-main.h.
-
-	sim: include stdarg.h when used
-	Avoid implicit include deps with this to help untangle sim headers
-	so we can get rid of arch-specific sim-main.h.
-
-2021-12-05  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: reorder header includes
-	We're including system headers after local headers in a bunch of
-	places, but this leads to conflicts when our local headers happen
-	to define symbols that show up in the system headers.
-
-	Use the more standard order of:
-	* config.h (via defs.h)
-	* system headers
-	* local library headers (e.g. bfd & libiberty)
-	* sim specific headers
-
-2021-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: fix memory leak in create_file_handler when re-using file handler
-	ASan made me notice a memory leak, where the memory tied to the file
-	handle name string wasn't freed.  When register a file handler with an
-	fd that is already registered, we re-use the file_handler object, so we
-	ended up creating a new std::string object and overwriting the
-	file_handler::name pointer, without free-ing the old std::string.
-
-	Fix this by allocating file_handler with new, deleting it with
-	delete, and making file_handler::name not a pointer.
-
-	Change-Id: Ie304cc78ab5ae5dfad9a1366e9890c09de651f43
-
-2021-12-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: moxie: hoist dtb rules up to common builds
-	These rules don't depend on the target compiler settings, so hoist
-	the build logic up to the common builds for better parallelization.
-
-	sim: m68hc11: delete unused profile flags
-	These were moved to the common configure script a while ago and have
-	the same default as these, so just delete it.
-
-	sim: msp430: delete redundant comments & settings
-	These were copied from the example docs, so aren't adding any value.
-
-	sim: erc32: drop old configure target
-	There is no configure script in here anymore to regenerate.
-
-	sim: m32c/rl78: drop redundant -Wall settings
-	We already turn these on in the configure script.
-
-2021-12-04  Tom Tromey  <tom@tromey.com>
-
-	Cache the result of find_file_and_directory
-	This changes the DWARF reader to cache the result of
-	find_file_and_directory.  This is not especially important now, but it
-	will help the new DWARF indexer.
-
-	Move file_and_directory to new file and C++-ize
-	This moves file_and_directory to a new file, and then C++-izes it --
-	replacing direct assignments with methods, and arranging for it to own
-	any string that must be computed.  Finally, the CU's objfile will only
-	be used on demand; this is an important property for the new DWARF
-	indexer's parallel mode.
-
-	Remove Irix case from find_file_and_directory
-	find_file_and_directory has a special case for the Irix 6.2 compiler.
-	Since this is long obsolete, this patch removes it.
-
-2021-12-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: frv: split up testsuite a bit
-	Running frv's allinsn in serial is quite slow due to the sheer number
-	of tests it contains.  By splitting it up and running in parallel, the
-	execution time on my system goes from ~100sec to ~60sec.
-
-2021-12-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: don't show deprecated aliases
-	I don't think it's very useful to show deprecated aliases to the
-	user.  It encourages the user to use them, when the goal is the
-	opposite.
-
-	For example, before:
-
-	    (gdb) help set index-cache enabled
-	    set index-cache enabled, set index-cache off, set index-cache on
-	      alias set index-cache off = set index-cache enabled off
-	      alias set index-cache on = set index-cache enabled on
-	    Enable the index cache.
-	    When on, enable the use of the index cache.
-
-	    (gdb) help set index-cache on
-	    Warning: 'set index-cache on', an alias for the command 'set index-cache enabled', is deprecated.
-	    Use 'set index-cache enabled on'.
-
-	    set index-cache enabled, set index-cache off, set index-cache on
-	      alias set index-cache off = set index-cache enabled off
-	      alias set index-cache on = set index-cache enabled on
-	    Enable the index cache.
-	    When on, enable the use of the index cache.
-
-	After:
-
-	    (gdb) help set index-cache enabled
-	    Enable the index cache.
-	    When on, enable the use of the index cache.
-	    (gdb) help set index-cache on
-	    Warning: 'set index-cache on', an alias for the command 'set index-cache enabled', is deprecated.
-	    Use 'set index-cache enabled on'.
-
-	    Enable the index cache.
-	    When on, enable the use of the index cache.
-
-	Change-Id: I989b618a5ad96ba975367e9d16db95523cd57a4c
-
-2021-12-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: fix two "maint info line-table"-related tests
-	Commit 92228a334ba2 ("gdb: small "maintenance info line-table"
-	readability improvements") change the output format of "maint info
-	line-table" slightly, adding some empty lines between each
-	line-table.  This causes two tests to start failing, update them to
-	account for those empty lines.
-
-	Change-Id: I9d33a58fce3e860ba0554b25f5582e8066a5c519
-
-2021-12-04  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: revert one array_view copy change in ada-lang.c
-	Commit 4bce7cdaf481 ("gdbsupport: add array_view copy function") caused
-	an internal error when running gdb.ada/packed_array_assign.exp:
-
-	    print pra(1) := pr^M
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/array-view.h:217: internal-error: copy: Assertion `dest.size () == src.size ()' failed.^M
-
-	I am not sure what's the root cause of this, whether it is a GDB bug
-	exposed by using the array_view copy function or not.  Back out the
-	change that triggers the internal error for now, while we investigate
-	it.
-
-	Change-Id: I055ab14143e4cfd3ca7ce8f4855c6c3c05db52a7
-
-2021-12-04  Mike Frysinger  <vapier@gentoo.org>
-
-	bfd: unify header generation rules
-	The logic between these rules are extremely similar, so unify them
-	into a single variable.
-
-2021-12-04  Mike Frysinger  <vapier@gentoo.org>
-
-	bfd: move header updates up a directory
-	The rules for rebuilding the bfd headers live in the doc/ subdir
-	(most likely) because they rely on the chew & related tools.  But
-	we can collapse them into the main Makefile while keeping the tools
-	in the doc subdir easily enough.  This makes the code simpler and
-	allows for rebuilding them in parallel.
-
-	Also add automake silent rule support while we're here.
-
-2021-12-04  Mike Frysinger  <vapier@gentoo.org>
-
-	bfd: convert bfdver.h to silent automake rules
-
-2021-12-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: small "maintenance info line-table" readability improvements
-	 - separate each entry with a newline, to visually separate them
-	 - style filenames with the filename style
-	 - print the name of the compunit_symtab
-
-	A header now looks like this, with the compunit_symtab name added (and
-	the coloring, but you can't really see it here):
-
-	    objfile: /home/simark/build/babeltrace/src/cli/.libs/babeltrace2 ((struct objfile *) 0x613000005980)
-	    compunit_symtab: babeltrace2-cfg-cli-args.c ((struct compunit_symtab *) 0x62100da1ed10)
-	    symtab: /usr/include/glib-2.0/glib/gdatetime.h ((struct symtab *) 0x62100d9ee530)
-	    linetable: ((struct linetable *) 0x0):
-
-	Change-Id: Idc23e10aaa66e2e692adb0a6a74144f72c4fa1c7
-
-2021-12-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: change some alias functions parameters to const-reference
-	Now that we use intrusive list to link aliases, it becomes easier to
-	pass cmd_list_element arguments by const-reference rather than by
-	pointer to some functions, change a few.
-
-	Change-Id: Id0df648ed26e9447da0671fc2c858981cda31df8
-
-2021-12-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use intrusive_list for cmd_list_element aliases list
-	Change the manually-implemented linked list to use intrusive_list.  This
-	is not strictly necessary, but it makes the code much simpler.
-
-	Change-Id: Idd08090ebf2db8bdcf68e85ef72a9635f1584ccc
-
-2021-12-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: trivial changes to use array_view
-	Change a few relatively obvious spots using value contents to propagate
-	the use array_view a bit more.
-
-	Change-Id: I5338a60986f06d5969fec803d04f8423c9288a15
-
-2021-12-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make extract_integer take an array_view
-	I think it would make sense for extract_integer, extract_signed_integer
-	and extract_unsigned_integer to take an array_view.  This way, when we
-	extract an integer, we can validate that we don't overflow the buffer
-	passed by the caller (e.g. ask to extract a 4-byte integer but pass a
-	2-byte buffer).
-
-	 - Change extract_integer to take an array_view
-	 - Add overloads of extract_signed_integer and extract_unsigned_integer
-	   that take array_views.  Keep the existing versions so we don't
-	   need to change all callers, but make them call the array_view
-	   versions.
-
-	This shortens some places like:
-
-	  result = extract_unsigned_integer (value_contents (result_val).data (),
-					     TYPE_LENGTH (value_type (result_val)),
-					     byte_order);
-
-	into
-
-	  result = extract_unsigned_integer (value_contents (result_val), byte_order);
-
-	value_contents returns an array view that is of length
-	`TYPE_LENGTH (value_type (result_val))` already, so the length is
-	implicitly communicated through the array view.
-
-	Change-Id: Ic1c1f98c88d5c17a8486393af316f982604d6c95
-
-2021-12-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: add array_view copy function
-	An assertion was recently added to array_view::operator[] to ensure we
-	don't do out of bounds accesses.  However, when the array_view is copied
-	to or from using memcpy, it bypasses that safety.
-
-	To address this, add a `copy` free function that copies data from an
-	array view to another, ensuring that the destination and source array
-	views have the same size.  When copying to or from parts of an
-	array_view, we are expected to use gdb::array_view::slice, which does
-	its own bounds check.  With all that, any copy operation that goes out
-	of bounds should be caught by an assertion at runtime.
-
-	copy is implemented using std::copy and std::copy_backward, which, at
-	least on libstdc++, appears to pick memmove when copying trivial data.
-	So in the end there shouldn't be much difference vs using a bare memcpy,
-	as we do right now.  When copying non-trivial data, std::copy and
-	std::copy_backward assigns each element in a loop.
-
-	To properly support overlapping ranges, we must use std::copy or
-	std::copy_backward, depending on whether the destination is before the
-	source or vice-versa.  std::copy and std::copy_backward don't support
-	copying exactly overlapping ranges (where the source range is equal to
-	the destination range).  But in this case, no copy is needed anyway, so
-	we do nothing.
-
-	The order of parameters of the new copy function is based on std::copy
-	and std::copy_backward, where the source comes before the destination.
-
-	Change a few randomly selected spots to use the new function, to show
-	how it can be used.
-
-	Add a test for the new function, testing both with arrays of a trivial
-	type (int) and of a non-trivial type (foo).  Test non-overlapping
-	ranges as well as three kinds of overlapping ranges: source before dest,
-	dest before source, and dest == source.
-
-	Change-Id: Ibeaca04e0028410fd44ce82f72e60058d6230a03
-
-2021-12-03  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: change store_waitstatus to return a target_waitstatus by value
-	store_waitstatus is basically a translation function between a status
-	integer and an equivalent target_waitstatus object.  It would make sense
-	for it to take the integer as a parameter and return the
-	target_waitstatus by value.  Do that, and rename to
-	host_status_to_waitstatus.  Users can then do:
-
-	  ws = host_status_to_waitstatus (status)
-
-	which does the right thing, given the move constructor of
-	target_waitstatus.
-
-	Change-Id: I7a07d59d3dc19d3ed66929642f82f44f3e85d61b
-
-2021-12-03  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: return *this in target_waitstatus setters
-	While playing with some code creating target_waitstatus objects, I was
-	mildly annoyed by the fact that we can't just return a new
-	target_waitstatus object.  We have to do:
-
-	    target_waitstatus ws;
-	    ws.set_exited (123);
-	    return ws;
-
-	Make the setters return the "this" object as a reference, such that it's
-	possible to do:
-
-	    return target_waitstatus ().set_exited (123);
-
-	I initially thought of adding static creation functions, which you would
-	use like:
-
-	    return target_waitstatus::make_exited (123);
-
-	However, making the setters return a reference to the object achieves
-	pretty much the same thing, with less new code.
-
-	Change-Id: I45159b7f9fcd9db5b20603480e323020b14ed147
-
-2021-12-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make saved_filename an std::string
-	Make this variable an std::string, avoiding manual memory management.
-
-	Change-Id: Ie7a8d7381449ab9c4dfc4cb8b99e63b9ffa8f947
-
-2021-12-03  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Fix uninitialised memory
-	AARCH64_OPDE_EXPECTED_A_AFTER_B and AARCH64_OPDE_A_SHOULD_FOLLOW_B
-	are not paired with an error string, but we had an assert that the
-	error was nonnull.  Previously this assert was testing uninitialised
-	memory and so could pass or fail arbitrarily.
-
-	opcodes/
-		* aarch64-opc.c (verify_mops_pme_sequence): Initialize the error
-		field to null for AARCH64_OPDE_EXPECTED_A_AFTER_B and
-		AARCH64_OPDE_A_SHOULD_FOLLOW_B.
-		* aarch64-dis.c (print_verifier_notes): Move assert.
-
-2021-12-03  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: make value_subscripted_rvalue static
-	The function value_subscripted_rvalue is only used in valarith.c, so
-	lets make it a static function.
-
-	There should be no user visible change after this commit.
-
-2021-12-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: give a test a real name
-	A test in gdb.python/py-send-packet.exp added in this commit:
-
-	  commit 24b2de7b776f8f23788d855b1eec290c6e208821
-	  Date:   Tue Aug 31 14:04:36 2021 +0100
-
-	      gdb/python: add gdb.RemoteTargetConnection.send_packet
-
-	included a large amount of binary data in the command sent to GDB.  As
-	this test didn't have a real test name the binary data was included in
-	the gdb.sum file.  The contents of the binary data could change
-	between different runs of GDB, and this makes comparing results
-	harder.
-
-	This commit gives the test a real test name.
-
-2021-12-03  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/remote: fix use after free bug
-	This commit:
-
-	  commit 288712bbaca36bff6578bc839ebcdc3707662f81
-	  Date:   Mon Nov 22 15:16:27 2021 +0000
-
-	      gdb/remote: use scoped_restore to control starting_up flag
-
-	introduced a use after free bug.  The scoped restore added in the
-	above commit resets a flag within a remote_target's remote_state
-	object.
-
-	However, in some situations, the remote_target can be unpushed before
-	the error is thrown.  If the only reference to the target is the one
-	in the target stack, then unpushing the target will cause the
-	remote_target to be deleted, which, in turn, will delete the
-	remote_state object.  The scoped restore will then try to reset the
-	flag within a deleted object.
-
-	This problem was caught in the gdb.server/server-connect.exp test,
-	which, when run with the address sanitizer enabled, highlights the
-	write after free bug described above.
-
-	This commit resolves this issue by adding a new class specifically for
-	the purpose of managing the starting_up flag.  As well as setting, and
-	then clearing the starting_up flag, this new class increments, and
-	then decrements the reference count on the remote_target object.  This
-	prevents the remote_target from being deleted until after the flag has
-	been reset.
-
-	The gdb.server/server-connect.exp now runs cleanly with the address
-	sanitizer enabled.
-
-2021-12-03  Mike Frysinger  <vapier@gentoo.org>
-
-	libctf: workaround automake bug with conditional info pages
-	It looks like automake makes assumptions about its ability to build info
-	pages based on the GNU standard behavior of shipping info pages with the
-	distributions.  So even though the info pages were conditionalized, and
-	automake disabled some of the targets, it was still creeping in by way
-	of unconditional INFO_DEPS settings.
-
-	We can workaround this by adding a stub target for the info page when
-	building info pages are disabled.  This tricks automake into disabling
-	its own extended generation target.  I'll follow up with the automake
-	folks to see what they think.
-
-2021-12-03  Chenghua Xu  <xuchenghua@loongson.cn>
-
-	Add myself and Zhensong Liu as the LoongArch port maintainer.
-
-2021-12-03  Alan Modra  <amodra@gmail.com>
-
-	Revert "Re: Don't compile some opcodes files when bfd is 32-bit only"
-	This reverts commit 7a53275579e7cec9389ccb924f5ecf69e8d89d41.
-	The bpf sim doesn't work with a 32-bit bfd after all.
-
-2021-12-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove unexpected xstrdup in _initialize_maint_test_settings
-	That xstrdup is not correct, since we are assigning an std::string.  The
-	result of xstrdup is used to initialize the string, and then lost
-	forever.  Remove it.
-
-	Change-Id: Ief7771055e4bfd643ef3b285ec9fb7b1bfd14335
-
-2021-12-02  Nick Clifton  <nickc@redhat.com>
-
-	Fix illegal memory access whilst parsing corrupt DWARF debug information.
-		PR 28645
-		* dwarf.c (process_cu_tu_index): Add test for overruning section
-		whilst processing slots.
-
-2021-12-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix avx512 -m32 support in gdbserver
-	PR27257 reports a problem that can be reproduced as follows:
-	- use x86_64 machine with avx512 support
-	- compile a hello world with -m32 to a.out
-	- start a gdbserver session with a.out
-	- use gdb to connect to the gdbserver session
-
-	This makes us run into:
-	...
-	Listening on port 2346
-	Remote debugging from host ::1, port 34940
-	src/gdbserver/regcache.cc:257: \
-	  A problem internal to GDBserver has been detected.
-	Unknown register zmm16h requested
-	...
-
-	The problem is that i387_xsave_to_cache in gdbserver/i387-fp.cc can't find a
-	register zmm16h in the register cache.
-
-	To understand how this happens, first some background.
-
-	SSE has 16 128-bit wide xmm registers.
-
-	AVX extends the SSE registers set as follows:
-	- it extends the 16 existing 128-bit wide xmm registers to 256-bit wide ymm
-	  registers.
-
-	AVX512 extends the AVX register set as follows:
-	- it extends the 16 existing 256-bit wide ymm registers to 512-bit wide zmm
-	  registers.
-	- it adds 16 additional 512-bit wide zmm registers (with corresponding ymm and
-	  xmm subregisters added as well)
-
-	However, in 32-bit mode, there are only 8 xmm/ymm/zmm registers.
-
-	The problem we're running into is that gdbserver/i387-fp.cc uses these
-	constants to describe the size of the register file:
-	...
-	static const int num_avx512_zmmh_low_registers = 16;
-	static const int num_avx512_zmmh_high_registers = 16;
-	static const int num_avx512_ymmh_registers = 16;
-	static const int num_avx512_xmm_registers = 16;
-	...
-	which are all incorrect for the 32-bit case.
-
-	Fix this by replacing the constants with variables that have the appropriate
-	values in 64-bit and 32-bit mode.
-
-	Tested on x86_64-linux with native and unix/-m32.
-
-2021-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: update tests looking for "DWARF 2" debug format
-	Commit ab557072b8ec ("gdb: use actual DWARF version in compunit's
-	debugformat field") changes the debug format string in "info source" to
-	show the actual DWARF version, rather than always show "DWARF 2".
-
-	However, it failed to consider that some tests checked for the "DWARF 2"
-	string to see if the test program is compiled with DWARF debug
-	information.  Since everything is compiled with DWARF 4 or 5 nowadays,
-	that changed the behavior of those tests.  Notably, it prevent the
-	tests using skip_inline_var_tests to run.
-
-	Grep through the testsuite for "DWARF 2" and change all occurrences I
-	could find to use "DWARF [0-9]" instead (that string is passed to TCL's
-	string match).
-
-	Change-Id: Ic7fb0217fb9623880c6f155da6becba0f567a885
-
-2021-12-02  Joel Brobecker  <brobecker@adacore.com>
-
-	(PPC64) fix handling of fixed-point values when using "return" command
-	In the gdb.ada/fixed_points_function.exp testcase, we have the following
-	Ada code...
-
-	   type FP1_Type is delta 0.1 range -1.0 .. +1.0; --  Ordinary
-	   function Call_FP1 (F : FP1_Type) return FP1_Type is
-	   begin
-	      FP1_Arg := F;
-	      return FP1_Arg;
-	   end Call_FP1;
-
-	... used as follow:
-
-	   F1 : FP1_Type := 1.0;
-	   F1 := Call_FP1 (F1);
-
-	The testcase, among other things, verifies that "return" works
-	properly as follow:
-
-	    | (gdb) return 1.0
-	    | Make pck.call_fp1 return now? (y or n) y
-	    | [...]
-	    | 9          F1 := Call_FP1 (F1);
-	    | (gdb) next
-	    | (gdb) print f1
-	    | $1 = 0.0625
-
-	The output of the last command shows that we returned the wrong
-	value. The value printed gives a clue about the problem, since
-	it is 1/16th of the value we expected, where 1/16 is FP1_Type's
-	scaling factor.
-
-	The problem, here, comes from the fact that the function
-	handling return values for base types (ppc64_sysv_abi_return_value_base)
-	writes the return value using unpack_long which, upon seeing that
-	the value being unpacked is a fixed point type, applies the scaling
-	factor, to get the integer-representation of our fixed-point value
-	(similar to what it does with floats, for instance).
-
-	So, the fix consists in teaching ppc64_sysv_abi_return_value_base
-	about fixed-point types, and to avoid the unwanted application
-	of the scaling factor.
-
-	Note that the "finish" function, on the other hand, does not
-	suffer from this issue, simply becaue the value returned by
-	the function is read from register without the use of a type,
-	thus avoiding an unwanted application of a scaling factor.
-
-	No test added, as this change is already tested by
-	gdb.ada/fixed_points_function.exp.
-
-	Co-Authored-By: Tristan Gingold <gingold@adacore.com>
-
-2021-12-02  Joel Brobecker  <brobecker@adacore.com>
-
-	(RISCV) fix handling of fixed-point type return values
-	This commit adds support for TYPE_CODE_FIXED_POINT types for
-	"finish" and "return" commands.
-
-	Consider the following Ada code...
-
-	   type FP1_Type is delta 0.1 range -1.0 .. +1.0; --  Ordinary
-	   function Call_FP1 (F : FP1_Type) return FP1_Type is
-	   begin
-	      FP1_Arg := F;
-	      return FP1_Arg;
-	   end Call_FP1;
-
-	... used as follow:
-
-	   F1 : FP1_Type := 1.0;
-	   F1 := Call_FP1 (F1);
-
-	"finish" currently behaves as follow:
-
-	    | (gdb) finish
-	    | [...]
-	    | Value returned is $1 = 0
-
-	We expect the returned value to be "1".
-
-	Similarly, "return" makes the function return the wrong value:
-
-	    | (gdb) return 1.0
-	    | Make pck.call_fp1 return now? (y or n) y
-	    | [...]
-	    | 9          F1 := Call_FP1 (F1);
-	    | (gdb) next
-	    | (gdb) print f1
-	    | $1 = 0.0625
-
-	(we expect it to print "1" instead).
-
-	This problem comes from the handling of integral return values
-	when the return value is actually fixed point type. Our type
-	here is actually a range of a fixed point type, but the same
-	principles should also apply to pure fixed-point types. For
-	the record, here is what the debugging info looks like:
-
-	 <1><238>: Abbrev Number: 2 (DW_TAG_subrange_type)
-	    <239>   DW_AT_lower_bound : -16
-	    <23a>   DW_AT_upper_bound : 16
-	    <23b>   DW_AT_name        : pck__fp1_type
-	    <23f>   DW_AT_type        : <0x248>
-
-	 <1><248>: Abbrev Number: 4 (DW_TAG_base_type)
-	    <249>   DW_AT_byte_size   : 1
-	    <24a>   DW_AT_encoding    : 13      (signed_fixed)
-	    <24b>   DW_AT_binary_scale: -4
-	    <24c>   DW_AT_name        : pck__Tfp1_typeB
-	    <250>   DW_AT_artificial  : 1
-
-	... where the scaling factor is 1/16.
-
-	Looking at the "finish" command, what happens is that riscv_arg_location
-	determines that our return value should be returned by parameter using
-	an integral convention (via builtin type long). And then,
-	riscv_return_value uses a cast to that builtin type long to
-	store the value of into a buffer with the right register size.
-	This doesn't work in our case, because the underlying value
-	returned by the function is unscaled, which means it is 16,
-	and thus the cast is like doing:
-
-	   arg_val = (FP1_Type) 16
-
-	... In other words, it is trying to create an FP1_Type enty whose
-	value is 16. Applying the scaling factor, that's 256, and because
-	the size of FP1_Type is 1 byte, we overflow and thus it ends up
-	being zero.
-
-	The same happen with the "return" function, but the other way around.
-
-	The fix consists in handling fixed-point types separately from
-	integral types.
-
-2021-12-02  Joel Brobecker  <brobecker@adacore.com>
-
-	(ARM/fixed-point) wrong value shown by "finish" command:
-	Consider the following Ada code:
-
-	   type FP1_Type is delta 0.1 range -1.0 .. +1.0; --  Ordinary
-	   FP1_Arg : FP1_Type := 0.0;
-
-	   function Call_FP1 (F : FP1_Type) return FP1_Type is
-	   begin
-	      FP1_Arg := F;
-	      return FP1_Arg;
-	   end Call_FP1;
-
-	After having stopped inside function Call_FP1 as follow:
-
-	    Breakpoint 1, pck.call_fp1 (f=1) at /[...]/pck.adb:5
-	    5             FP1_Arg := F;
-
-	Returning from that function call using "finish" should show
-	that the function return "1.0" (the same value as was passed
-	as an argument). However, this is not the case:
-
-	    (gdb) finish
-	    Run till exit from #0  pck.call_fp1 (f=1)
-	    [...]
-	    9          F1 := Call_FP1 (F1);
-	    Value returned is $1 = 0
-
-	This patch enhances the extraction of the return value to know about
-	fixed point types.
-
-2021-12-02  Xavier Roirand  <roirand@adacore.com>
-
-	(Ada/AArch64) fix fixed point argument passing in inferior funcall
-	Consider the following code:
-
-	   type FP1_Type is delta 0.1 range -1.0 .. +1.0; --  Ordinary
-
-	   function Call_FP1 (F : FP1_Type) return FP1_Type is
-	   begin
-	      return F;
-	   end Call_FP1;
-
-	When the default in GCC is to generate proper DWARF info for fixed point
-	types, then in gdb, printing the result of a call to call_fp1 with a
-	decimal parameter leads to:
-
-	  (gdb) p call_fp1(0.5)
-	  $1 = 0
-
-	The displayed value is wrong, and we actually expected:
-
-	  (gdb) p call_fp1(0.5)
-	  $1 = 0.5
-
-	What happened is that our fixed point type parameter got promoted to a
-	32bit integer because we detected that the length of that object was less
-	than 4 bytes. The compiler does not perform this promotion and therefore
-	GDB should not either.
-
-	This patch fixes the behavior described above.
-
-2021-12-02  Tom Tromey  <tromey@adacore.com>
-
-	Implement 'task apply'
-	This adds a 'task apply' command, which is the Ada tasking analogue of
-	'thread apply'.  Unlike 'thread apply', it doesn't offer the
-	'ascending' flag; but otherwise it's essentially the same.
-
-	Add "task" keyword to the "watch" command
-	Breakpoints in gdb can be made specific to an Ada task using the
-	"task" qualifier.  This patch applies this same idea to watchpoints.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Update gas/NEWS for recent changes
-	gas/
-		* NEWS: Mention support for Armv8.8-A and for new system registers.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add BC instruction
-	This patch adds support for the Armv8.8-A BC instruction.
-	[https://developer.arm.com/documentation/ddi0596/2021-09/Base-Instructions/BC-cond--Branch-Consistent-conditionally-?lang=en]
-
-	include/
-		* opcode/aarch64.h (AARCH64_FEATURE_HBC): New macro.
-		(AARCH64_ARCH_V8_8): Make armv8.8-a imply AARCH64_FEATURE_HBC.
-
-	opcodes/
-		* aarch64-tbl.h (aarch64_feature_hbc): New variable.
-		(HBC, HBC_INSN): New macros.
-		(aarch64_opcode_table): Add BC.C.
-		* aarch64-dis-2.c: Regenerate.
-
-	gas/
-		* doc/c-aarch64.texi: Document +hbc.
-		* config/tc-aarch64.c (aarch64_features): Add "hbc".
-		* testsuite/gas/aarch64/hbc.s, testsuite/gas/aarch64/hbc.d: New test.
-		* testsuite/gas/aarch64/hbc-invalid.s,
-		testsuite/gas/aarch64/hbc-invalid.l,
-		testsuite/gas/aarch64/hbc-invalid.d: New test.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Enforce P/M/E order for MOPS instructions
-	The MOPS instructions should be used as a triple, such as:
-
-	       cpyfp [x0]!, [x1]!, x2!
-	       cpyfm [x0]!, [x1]!, x2!
-	       cpyfe [x0]!, [x1]!, x2!
-
-	The registers should also be the same for each writeback operand.
-	This patch adds a warning for code that doesn't follow this rule,
-	along similar lines to the warning that we already emit for
-	invalid uses of MOVPRFX.
-
-	include/
-		* opcode/aarch64.h (C_SCAN_MOPS_P, C_SCAN_MOPS_M, C_SCAN_MOPS_E)
-		(C_SCAN_MOPS_PME): New macros.
-		(AARCH64_OPDE_A_SHOULD_FOLLOW_B): New aarch64_operand_error_kind.
-		(AARCH64_OPDE_EXPECTED_A_AFTER_B): Likewise.
-		(aarch64_operand_error): Make each data value a union between
-		an int and a string.
-
-	opcodes/
-		* aarch64-tbl.h (MOPS_CPY_OP1_OP2_INSN): Add scan flags.
-		(MOPS_SET_OP1_OP2_INSN): Likewise.
-		* aarch64-opc.c (set_out_of_range_error): Update after change to
-		aarch64_operand_error.
-		(set_unaligned_error, set_reg_list_error): Likewise.
-		(init_insn_sequence): Use a 3-instruction sequence for
-		MOPS P instructions.
-		(verify_mops_pme_sequence): New function.
-		(verify_constraints): Call it.
-		* aarch64-dis.c (print_verifier_notes): Handle
-		AARCH64_OPDE_A_SHOULD_FOLLOW_B and AARCH64_OPDE_EXPECTED_A_AFTER_B.
-
-	gas/
-		* config/tc-aarch64.c (operand_mismatch_kind_names): Add entries
-		for AARCH64_OPDE_A_SHOULD_FOLLOW_B and AARCH64_OPDE_EXPECTED_A_AFTER_B.
-		(operand_error_higher_severity_p): Check that
-		AARCH64_OPDE_A_SHOULD_FOLLOW_B and AARCH64_OPDE_EXPECTED_A_AFTER_B
-		come between AARCH64_OPDE_RECOVERABLE and AARCH64_OPDE_SYNTAX_ERROR;
-		their relative order is not significant.
-		(record_operand_error_with_data): Update after change to
-		aarch64_operand_error.
-		(output_operand_error_record): Likewise.  Handle
-		AARCH64_OPDE_A_SHOULD_FOLLOW_B and AARCH64_OPDE_EXPECTED_A_AFTER_B.
-		* testsuite/gas/aarch64/mops_invalid_2.s,
-		testsuite/gas/aarch64/mops_invalid_2.d,
-		testsuite/gas/aarch64/mops_invalid_2.l: New test.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add support for +mops
-	This patch adds support for FEAT_MOPS, an Armv8.8-A extension
-	that provides memcpy and memset acceleration instructions.
-
-	I took the perhaps controversial decision to generate the individual
-	instruction forms using macros rather than list them out individually.
-	This becomes useful with a follow-on patch to check that code follows
-	the correct P/M/E sequence.
-	[https://developer.arm.com/documentation/ddi0596/2021-09/Base-Instructions?lang=en]
-
-	include/
-		* opcode/aarch64.h (AARCH64_FEATURE_MOPS): New macro.
-		(AARCH64_ARCH_V8_8): Make armv8.8-a imply AARCH64_FEATURE_MOPS.
-		(AARCH64_OPND_MOPS_ADDR_Rd): New aarch64_opnd.
-		(AARCH64_OPND_MOPS_ADDR_Rs): Likewise.
-		(AARCH64_OPND_MOPS_WB_Rn): Likewise.
-
-	opcodes/
-		* aarch64-asm.h (ins_x0_to_x30): New inserter.
-		* aarch64-asm.c (aarch64_ins_x0_to_x30): New function.
-		* aarch64-dis.h (ext_x0_to_x30): New extractor.
-		* aarch64-dis.c (aarch64_ext_x0_to_x30): New function.
-		* aarch64-tbl.h (aarch64_feature_mops): New feature set.
-		(aarch64_feature_mops_memtag): Likewise.
-		(MOPS, MOPS_MEMTAG, MOPS_INSN, MOPS_MEMTAG_INSN)
-		(MOPS_CPY_OP1_OP2_PME_INSN, MOPS_CPY_OP1_OP2_INSN, MOPS_CPY_OP1_INSN)
-		(MOPS_CPY_INSN, MOPS_SET_OP1_OP2_PME_INSN, MOPS_SET_OP1_OP2_INSN)
-		(MOPS_SET_INSN): New macros.
-		(aarch64_opcode_table): Add MOPS instructions.
-		(aarch64_opcode_table): Add entries for AARCH64_OPND_MOPS_ADDR_Rd,
-		AARCH64_OPND_MOPS_ADDR_Rs and AARCH64_OPND_MOPS_WB_Rn.
-		* aarch64-opc.c (aarch64_print_operand): Handle
-		AARCH64_OPND_MOPS_ADDR_Rd, AARCH64_OPND_MOPS_ADDR_Rs and
-		AARCH64_OPND_MOPS_WB_Rn.
-		(verify_three_different_regs): New function.
-		* aarch64-asm-2.c: Regenerate.
-		* aarch64-dis-2.c: Likewise.
-		* aarch64-opc-2.c: Likewise.
-
-	gas/
-		* doc/c-aarch64.texi: Document +mops.
-		* config/tc-aarch64.c (parse_x0_to_x30): New function.
-		(parse_operands): Handle AARCH64_OPND_MOPS_ADDR_Rd,
-		AARCH64_OPND_MOPS_ADDR_Rs and AARCH64_OPND_MOPS_WB_Rn.
-		(aarch64_features): Add "mops".
-		* testsuite/gas/aarch64/mops.s, testsuite/gas/aarch64/mops.d: New test.
-		* testsuite/gas/aarch64/mops_invalid.s,
-		* testsuite/gas/aarch64/mops_invalid.d,
-		* testsuite/gas/aarch64/mops_invalid.l: Likewise.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add Armv8.8-A system registers
-	Armv8.8-A defines two new system registers: allint and icc_nmiar1_el1.
-	Both of them were previously unmapped.  allint supports a 0/1 immediate.
-	[https://developer.arm.com/documentation/ddi0595/2021-09/AArch64-Registers/ALLINT--All-Interrupt-Mask-Bit?lang=en]
-	[https://developer.arm.com/documentation/ddi0595/2021-09/AArch64-Registers/ICC-NMIAR1-EL1--Interrupt-Controller-Non-maskable-Interrupt-Acknowledge-Register-1?lang=en]
-
-	opcodes/
-		* aarch64-opc.c (SR_V8_8): New macro.
-		(aarch64_sys_regs): Add allint and icc_nmiar1_el1.
-		(aarch64_pstatefields): Add allint.
-
-	gas/
-		* testsuite/gas/aarch64/armv8_8-a-sysregs.s,
-		* testsuite/gas/aarch64/armv8_8-a-sysregs.d: New test.
-		* testsuite/gas/aarch64/armv8_8-a-sysregs-invalid.s,
-		* testsuite/gas/aarch64/armv8_8-a-sysregs-invalid.l,
-		* testsuite/gas/aarch64/armv8_8-a-sysregs-invalid.d: New test.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add id_aa64isar2_el1
-	Armv8.8-A defines a read-only system register called id_aa64isar2_el1.
-	The register was previously RES0 and should therefore be accepted
-	at all architecture levels.
-	[https://developer.arm.com/documentation/ddi0595/2021-09/AArch64-Registers/ID-AA64ISAR2-EL1--AArch64-Instruction-Set-Attribute-Register-2?lang=en]
-
-	opcodes/
-		* aarch64-opc.c (aarch64_sys_regs): Add id_aa64isar2_el1.
-
-	gas/
-		* testsuite/gas/aarch64/sysreg-diagnostic.s: Test writes to
-		id_aa64isar2_el1.
-		* testsuite/gas/aarch64/sysreg-diagnostic.d: Update accordingly.
-		* testsuite/gas/aarch64/sysreg-diagnostic.l: Likewise.
-		* testsuite/gas/aarch64/sysreg.s: Test reads from
-		id_aa64isar2_el1.
-		* testsuite/gas/aarch64/sysreg.d: Update accordingly.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add support for Armv8.8-A
-	This patch adds skeleton support for -march=armv8.8-a, testing only
-	that it correctly inherits from armv8.7-a.
-
-	include/
-		* opcode/aarch64.h (AARCH64_FEATURE_V8_8): New macro.
-		(AARCH64_ARCH_V8_8): Likewise.
-
-	gas/
-		* doc/c-aarch64.texi: Document armv8.8-a.
-		* config/tc-aarch64.c (aarch64_archs): Add armv8-8-a
-		* testsuite/gas/aarch64/v8-8-a.s,
-		* testsuite/gas/aarch64/v8-8-a.d: New test.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Provide line info for unclosed sequences
-	We warn about MOVPRFX instructions that have no following
-	instruction.  This patch adds a line number to the message,
-	which is useful if the assembly code has multiple text sections.
-
-	The new code is unconditional since OBJ_ELF is always defined
-	for aarch64.
-
-	gas/
-		* config/tc-aarch64.h (aarch64_segment_info_type): Add last_file
-		and last_line.
-		* config/tc-aarch64.c (now_instr_sequence): Delete.
-		(force_automatic_sequence_close): Provide a line number when
-		reporting unclosed sequences.
-		(md_assemble): Record the location of the instruction in
-		tc_segment_info.
-		* testsuite/gas/aarch64/sve-movprfx_4.l: Add line number to error
-		message.
-		* testsuite/gas/aarch64/sve-movprfx_7.l: Likewise.
-		* testsuite/gas/aarch64/sve-movprfx_8.l: Likewise.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Tweak insn sequence code
-	libopcodes has some code to check constraints across sequences
-	of consecutive instructions.  It was added to support MOVPRFX
-	sequences but is going to be useful for the Armv8.8-A MOPS
-	feature as well.
-
-	Currently the structure has one field to record the instruction
-	that started a sequence and another to record the remaining
-	instructions in the sequence.  It's more convenient for the
-	MOPS code if we put the instructions into a single array instead.
-
-	No functional change intended.
-
-	include/
-		* opcode/aarch64.h (aarch64_instr_sequence): Replace num_insns
-		and current_insns with num_added_insns and num_allocated_insns.
-
-	opcodes/
-		* aarch64-opc.c (add_insn_to_sequence): New function.
-		(init_insn_sequence): Update for new aarch64_instr_sequence layout.
-		Add the first instruction to the inst array.
-		(verify_constraints): Update for new aarch64_instr_sequence layout.
-		Don't add the last instruction to the array.
-
-2021-12-02  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add maximum immediate value to aarch64_sys_reg
-	The immediate form of MSR has a 4-bit immediate field (in CRm).
-	However, many forms of MSR require a smaller immediate.  These cases
-	are identified by value in operand_general_constraint_met_p,
-	but they're now the common case rather than the exception.
-
-	This patch therefore adds the maximum value to the sys_reg
-	description and gets the range from there.  It also enforces
-	the minimum of 0, which avoids a situation in which:
-
-	  msr dit, #2
-
-	would give the expected:
-
-	  Error: immediate value out of range 0 to 1
-
-	whereas:
-
-	  msr dit, #-1
-
-	would give:
-
-	  Error: immediate value out of range 0 to 15
-
-	(from the later UIMM4 checking).
-
-	Also:
-
-	- we were reporting the first error above against the wrong operand
-	- TCO takes a single-bit immediate, but we previously allowed
-	  all 16 values.
-	  [https://developer.arm.com/documentation/ddi0596/2021-09/Base-Instructions/MSR--immediate---Move-immediate-value-to-Special-Register-?lang=en]
-
-	opcodes/
-		* aarch64-opc.h (F_REG_MAX_VALUE, F_GET_REG_MAX_VALUE): New macros.
-		* aarch64-opc.c (operand_general_constraint_met_p): Read the
-		maximum MSR immediate value from aarch64_pstatefields.
-		(aarch64_pstatefields): Add the maximum immediate value
-		for each register.
-
-	gas/
-		* testsuite/gas/aarch64/sysreg-4.s: Use an immediate value of 1
-		rather than 8 for the TCO test.
-		* testsuite/gas/aarch64/sysreg-4.d: Update accordingly.
-		* testsuite/gas/aarch64/armv8_2-a-illegal.l: Fix operand number
-		in MSR immediate error messages.
-		* testsuite/gas/aarch64/diagnostic.l: Likewise.
-		* testsuite/gas/aarch64/pan-illegal.l: Likewise.
-		* testsuite/gas/aarch64/ssbs-illegal1.l: Likewise.
-		* testsuite/gas/aarch64/illegal-sysreg-4b.s,
-		* testsuite/gas/aarch64/illegal-sysreg-4b.d,
-		* testsuite/gas/aarch64/illegal-sysreg-4b.l: New test.
-
-2021-12-02  Marcus Nilsson  <brainbomb@gmail.com>
-
-	Allow the --visualize-jumps feature to work with the AVR disassembler.
-		* avr-dis.c (avr_operand); Pass in disassemble_info and fill
-		in insn_type on branching instructions.
-
-2021-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb, include: replace pragmas with DIAGNOSTIC macros, fix build with g++ 4.8
-	When introducing this code, I forgot that we had some macros for this.
-	Replace some "manual" pragma diagnostic with some DIAGNOSTIC_* macros,
-	provided by include/diagnostics.h.
-
-	In diagnostics.h:
-
-	 - Add DIAGNOSTIC_ERROR, to enable a diagnostic at error level.
-	 - Add DIAGNOSTIC_ERROR_SWITCH, to enable -Wswitch at error level, for
-	   both gcc and clang.
-
-	Additionally, using DIAGNOSTIC_PUSH, DIAGNOSTIC_ERROR_SWITCH and
-	DIAGNOSTIC_POP seems to misbehave with g++ 4.8, where we see these
-	errors:
-
-	      CXX    ada-tasks.o
-	    /home/smarchi/src/binutils-gdb/gdb/ada-tasks.c: In function void read_known_tasks():
-	    /home/smarchi/src/binutils-gdb/gdb/ada-tasks.c:998:10: error: enumeration value ADA_TASKS_UNKNOWN not handled in switch [-Werror=switch]
-	       switch (data->known_tasks_kind)
-	              ^
-
-	Because of the POP, the diagnostic should go back to being disabled,
-	since it was disabled in the beginning, but that's not what we see
-	here.  Versions of GCC >= 5 compile correctly.
-
-	Work around this by making DIAGNOSTIC_ERROR_SWITCH a no-op for GCC < 5.
-
-	Note that this code (already as it exists in master today) enables
-	-Wswitch at the error level even if --disable-werror is passed.  It
-	shouldn't be a problem, as it's not like a new enumerator will appear
-	out of nowhere and cause a build error if building with future
-	compilers.  Still, for correctness, we would ideally want to ask the
-	compiler to enable -Wswitch at its default level (as if the user had
-	passed -Wswitch on the command-line).  There doesn't seem to be a way to
-	do this.
-
-	Change-Id: Id33ebec3de39bd449409ea0bab59831289ffe82d
-
-2021-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gas: re-generate configure
-	When configuring gas, I get:
-
-	  config.status: error: cannot find input file: `doc/Makefile.in'
-
-	This is because configure is out-of-date, re-generate it.
-
-	Change-Id: Iaa5980c282900d9fd23b90f0df25bf8ba3676498
-
-2021-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	libctf: re-generate configure
-	When configuring libctf, I get:
-
-	  config.status: error: cannot find input file: `doc/Makefile.in'
-
-	This is because configure is out-of-date, re-generate it.
-
-	Change-Id: Ie69acd33012211a4620661582c7d24ad6d2cd169
-
-2021-12-02  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Skip __[start|stop]_SECNAME for --gc-sections -z start-stop-gc
-	Don't convert memory load to immediate load on __start_SECNAME and
-	__stop_SECNAME for --gc-sections -z start-stop-gc if all SECNAME
-	sections been garbage collected.
-
-	bfd/
-
-		PR ld/27491
-		* elf32-i386.c (elf_i386_convert_load_reloc): Skip __start_SECNAME
-		and __stop_SECNAME for --gc-sections -z start-stop-gc if the input
-		section been garbage collected.
-		* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise.
-		* elfxx-x86.h (elf_x86_start_stop_gc_p): New function.
-
-	ld/
-		PR ld/27491
-		* testsuite/ld-i386/i386.exp: Run PR ld/27491 tests.
-		* testsuite/ld-x86-64/x86-64.exp: Likewise.
-		* testsuite/ld-i386/pr27491-1.s: New file.
-		* testsuite/ld-i386/pr27491-1a.d: Likewise.
-		* testsuite/ld-i386/pr27491-1b.d: Likewise.
-		* testsuite/ld-i386/pr27491-1c.d: Likewise.
-		* testsuite/ld-i386/pr27491-2.d: Likewise.
-		* testsuite/ld-i386/pr27491-2.s: Likewise.
-		* testsuite/ld-i386/pr27491-3.d: Likewise.
-		* testsuite/ld-i386/pr27491-3.s: Likewise.
-		* testsuite/ld-i386/pr27491-4.d: Likewise.
-		* testsuite/ld-i386/pr27491-4a.s: Likewise.
-		* testsuite/ld-i386/pr27491-4b.s: Likewise.
-		* testsuite/ld-x86-64/pr27491-1.s: Likewise.
-		* testsuite/ld-x86-64/pr27491-1a.d: Likewise.
-		* testsuite/ld-x86-64/pr27491-1b.d: Likewise.
-		* testsuite/ld-x86-64/pr27491-1c.d: Likewise.
-		* testsuite/ld-x86-64/pr27491-2.d: Likewise.
-		* testsuite/ld-x86-64/pr27491-2.s: Likewise.
-		* testsuite/ld-x86-64/pr27491-3.d: Likewise.
-		* testsuite/ld-x86-64/pr27491-3.s: Likewise.
-		* testsuite/ld-x86-64/pr27491-4.d: Likewise.
-		* testsuite/ld-x86-64/pr27491-4a.s: Likewise.
-		* testsuite/ld-x86-64/pr27491-4b.s: Likewise.
-
-2021-12-02  Mike Frysinger  <vapier@gentoo.org>
-
-	bfd: delete unused proto settings
-	These have been around for decades but don't appear to be used, and
-	trying to build them (e.g. `make archive.p archive.ip`) doesn't work,
-	so just delete it all.
-
-	gas: merge doc subdir up a level
-	This avoids a recursive make into the doc subdir and speeds up the
-	build slightly.  It also allows for more parallelism.
-
-	libctf: merge doc subdir up a level
-	This avoids a recursive make into the doc subdir and speeds up the
-	build slightly.  It also allows for more parallelism.
-
-2021-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use actual DWARF version in compunit's debugformat field
-	The "info source" command, with a DWARF-compile program, always show
-	that the debug info is "DWARF 2":
-
-	    (gdb) info source
-	    Current source file is test.c
-	    Compilation directory is /home/smarchi/build/binutils-gdb/gdb
-	    Located in /home/smarchi/build/binutils-gdb/gdb/test.c
-	    Contains 2 lines.
-	    Source language is c.
-	    Producer is GNU C17 9.3.0 -mtune=generic -march=x86-64 -g3 -gdwarf-5 -O0 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection.
-	    Compiled with DWARF 2 debugging format.
-	    Includes preprocessor macro info.
-
-	Change it to display the actual DWARF version:
-
-	    (gdb) info source
-	    Current source file is test.c
-	    Compilation directory is /home/smarchi/build/binutils-gdb/gdb
-	    Located in /home/smarchi/build/binutils-gdb/gdb/test.c
-	    Contains 2 lines.
-	    Source language is c.
-	    Producer is GNU C17 9.3.0 -mtune=generic -march=x86-64 -g3 -gdwarf-5 -O0 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection.
-	    Compiled with DWARF 5 debugging format.
-	    Includes preprocessor macro info.
-
-	The comp_unit_head::version field is guaranteed to be between 2 and 5,
-	thanks to the check in read_comp_unit_head.  So we can still use static
-	strings to pass to record_debugformat, and keep it efficient.
-
-	In the future, when somebody will update GDB to support DWARF 6, they'll
-	hit this assert and have to update this code.
-
-	Change-Id: I3270b7ebf5e9a17b4215405bd2e365662a4d6172
-
-2021-12-02  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Discard input .note.gnu.build-id sections
-	1. Discard input .note.gnu.build-id sections.
-	2. Clear the build ID field before writing.
-	3. Use bfd_make_section_anyway_with_flags to create the output
-	.note.gnu.build-id section.
-
-		PR ld/28639
-		* ldelf.c (ldelf_after_open): Discard input .note.gnu.build-id
-		sections, excluding the first one.
-		(write_build_id): Clear the build ID field before writing.
-		(ldelf_setup_build_id): Use bfd_make_section_anyway_with_flags
-		to create the output .note.gnu.build-id section.
-		* testsuite/ld-elf/build-id.exp: New file.
-		* testsuite/ld-elf/pr28639a.rd: Likewise.
-		* testsuite/ld-elf/pr28639b.rd: Likewise.
-		* testsuite/ld-elf/pr28639c.rd: Likewise.
-		* testsuite/ld-elf/pr28639d.rd: Likewise.
-
-2021-12-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-12-01  Mike Frysinger  <vapier@gentoo.org>
-
-	binutils: add missing prefix for binutils/index.html rule
-
-2021-12-01  Luca Boccassi  <luca.boccassi@gmail.com>
-
-	readelf: recognize FDO Packaging Metadata ELF note.  (Correcting snafu during patch application)
-
-2021-12-01  Luca Boccassi  <luca.boccassi@gmail.com>
-
-	readelf: recognize FDO Packaging Metadata ELF note
-	As defined on: https://systemd.io/COREDUMP_PACKAGE_METADATA/
-	this note will be used starting from Fedora 36. Allow
-	readelf --notes to pretty print it:
-
-	Displaying notes found in: .note.package
-	  Owner                Data size 	Description
-	  FDO                  0x00000039	FDO_PACKAGING_METADATA
-	    Packaging Metadata: {"type":"deb","name":"fsverity-utils","version":"1.3-1"}
-
-2021-12-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix typo in gdb.multi/multi-arch-exec.exp
-	With gdb.multi/multi-arch-exec.exp I run into:
-	...
-	Running src/gdb/testsuite/gdb.multi/multi-arch-exec.exp ...
-	ERROR: tcl error sourcing src/gdb/testsuite/gdb.multi/multi-arch-exec.exp.
-	ERROR: wrong # args: extra words after "else" clause in "if" command
-	    while executing
-	"if [istarget "powerpc64*-*-*"] {
-	        set march "-m64"
-	    } else if [istarget "s390*-*-*"] {
-	        set march "-m31"
-	    } else {
-	        set march "-m32"
-	    }"
-	...
-
-	Fix the else if -> elseif typo.
-
-	Tested on x86_64-linux.
-
-2021-12-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.arch/i386-pkru.exp on linux
-	When running test-case gdb.arch/i386-pkru.exp on a machine with "Memory
-	Protection Keys for Userspace" support, we run into:
-	...
-	(gdb) PASS: gdb.arch/i386-pkru.exp: probe PKRU support
-	print $pkru^M
-	$2 = 1431655764^M
-	(gdb) FAIL: gdb.arch/i386-pkru.exp: pkru register
-	...
-
-	The test-case expects the $pkru register to have the default value 0, matching
-	the "init state" of 0 defined by the XSAVE hardware.
-
-	Since linux kernel version v4.9 containing commit acd547b29880 ("x86/pkeys:
-	Default to a restrictive init PKRU"), the register is set to 0x55555554 by
-	default (which matches the printed decimal value above).
-
-	Fix the FAIL by accepting this value for linux.
-
-	Tested on x86_64-linux.
-
-2021-12-01  Nick Clifton  <nickc@redhat.com>
-
-	Fix the fields in the x_n union inside the the x_file structure so that pointers can be stored.
-		PR 28630
-		* coff/internal.h (x_n): Use bfd_hostptr_t for the fields in this
-		structure.
-
-2021-12-01  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/remote: use scoped_restore to control starting_up flag
-	This commit makes use of a scoped_restore object to control the
-	remote_state::starting_up flag within the remote_target::start_remote
-	method.
-
-	Ideally I would have liked to create the scoped_restore inside
-	start_remote and just leave the restore in place until the end of the
-	scope, however, I'm worried that doing this would change the behaviour
-	of GDB.  Specifically, in start_remote, the following code is executed
-	once the starting_up flag has been restored to its previous value:
-
-	  if (breakpoints_should_be_inserted_now ())
-	    insert_breakpoints ();
-
-	I think (but am not 100% sure) that calling install_breakpoints could
-	end up back inside remote_target::can_download_tracepoint, which does
-	check the value of remote_state::starting_up.  And so, I'm concerned
-	that leaving the scoped_restore in place until the end of start_remote
-	will cause a possible change in behaviour.
-
-	To avoid this, and to leave things as close to the current behaviour
-	as possible, I've split remote_target::start_remote into two, there's
-	the main function body which moves into remote_target::start_remote_1,
-	this function uses the scoped_restore to change the ::starting_up
-	flag, then there's the old remote_target::start_remote, which now just
-	calls ::start_remote_1, and then does the insert_breakpoints call.
-
-	There should be no user visible changes after this commit, unless
-	there's a situation where the ::starting_up flag could previously have
-	been left set, if this was the case, then this situation should no
-	longer be possible.
-
-2021-12-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb.base/corefile-buildid.exp: fix DUPLICATEs when failing to generate a core file
-	When my system isn't properly configured to generate core files in the
-	local directory, I see these DUPLICATEs:
-
-	    DUPLICATE: gdb.base/corefile-buildid.exp: could not generate core file
-
-	Fix that by having a single with_test_prefix around that message and
-	what follows.
-
-	Change-Id: I4ac245fcce1c666db56e3bad3582aa17f183dcba
-
-2021-12-01  Mike Frysinger  <vapier@gentoo.org>
-
-	gold: enable silent build rules
-
-2021-12-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-30  Carl Love  <cel@us.ibm.com>
-
-	gdb: Powerpc fix gdb.multi/multi-arch-exec.exp test
-	The expect file has a procedure append_arch_options which sets march based
-	the istarget.  The current if / else statement does not check for
-	powerpc64.  The else statement is hit which sets march to -m32.  This
-	results in compilation errors on 64-bit PowerPC.
-
-	This patch adds an if statement to check for powerpc64 and if true sets mach
-	to -m64.
-
-	The patch was tested on a Power 10 system.  No compile errors were generated.
-	The test completes with 1 expected pass and no failures.
-
-2021-11-30  Mike Frysinger  <vapier@gentoo.org>
-
-	binutils: regenerate Makefile.in after doc/ changes
-
-2021-11-30  Roland McGrath  <mcgrathr@google.com>
-
-	Fix missing build dependency for binutils man pages
-	binutils/
-		* doc/local.mk: Give each man page target its missing dependency on
-		doc/$(am__dirstamp).
-
-2021-11-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Add missing system registers [PR27145]
-	This patch adds support for various system registers, up to Armv8.7-A.
-	This includes all the registers that were mentioned in the PR and that
-	hadn't become supported since.
-
-	opcodes/
-		PR aarch64/27145
-		* aarch64-opc.c (SR_V8_4): Remove duplicate definition.
-		(SR_V8_6, SR_V8_7, SR_GIC, SR_AMU): New macros.
-		(aarch64_sys_regs): Add missing entries (up to Armv8.7-A).
-
-	gas/
-		PR aarch64/27145
-		* testsuite/gas/aarch64/sysreg-8.s,
-		* testsuite/gas/aarch64/sysreg-8.d,
-		* testsuite/gas/aarch64/illegal-sysreg-8.s,
-		* testsuite/gas/aarch64/illegal-sysreg-8.d,
-		* testsuite/gas/aarch64/illegal-sysreg-8.l,
-		* testsuite/gas/aarch64/illegal-sysreg-8b.s,
-		* testsuite/gas/aarch64/illegal-sysreg-8b.d,
-		* testsuite/gas/aarch64/illegal-sysreg-8b.l: New tests.
-		* testsuite/gas/aarch64/sysreg.s: Change system register numbers
-		to ones that are still unallocated.
-		* testsuite/gas/aarch64/sysreg.d: Update accordingly.
-
-2021-11-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Make LOR registers conditional on +lor
-	We have a +lor feature flag for the Limited Ordering Regions
-	extension, but the associated registers didn't use it.
-
-	opcodes/
-		* aarch64-opc.c (SR_LOR): New macro.
-		(aarch64_sys_regs): Use it for lorc_el1, lorea_el1, lorn_el1 and
-		lorsa_el1.
-
-	gas/
-		* testsuite/gas/aarch64/sysreg-7.s: Enable +lor.
-		* testsuite/gas/aarch64/illegal-sysreg-7.s: Test for LOR registers
-		without +lor.
-		* testsuite/gas/aarch64/illegal-sysreg-7.d: Update accordingly.
-		* testsuite/gas/aarch64/illegal-sysreg-7.l: Likewise.
-
-2021-11-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Remove ZIDR_EL1
-	ZIDR_EL1 was part of an early version of SVE, but didn't make
-	it to the final release.
-
-	opcodes/
-		* aarch64-opc.c (aarch64_sys_regs): Remove zidr_el1 entry.
-
-	gas/
-		* testsuite/gas/aarch64/sve-sysreg.s: Remove zidr_el1.
-		* testsuite/gas/aarch64/sve-sysreg.d: Update accordingly.
-		* testsuite/gas/aarch64/sve-sysreg-invalid.l: Likewise.
-
-2021-11-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Allow writes to MFAR_EL3
-	MFAR_EL3 is a read/write register, but was incorrectly marked as
-	read-only
-	[https://developer.arm.com/documentation/ddi0601/2021-09/AArch64-Registers/MFAR-EL3--PA-Fault-Address-Register?lang=en]
-
-	opcodes/
-		* aarch64-opc.c (aarch64_sys_regs): Mark mfar_el3 as read-write.
-
-	gas/
-		* testsuite/gas/aarch64/rme.s: Test writing to mfar_el3.
-		* testsuite/gas/aarch64/rme.d: Update accordingly.
-		* testsuite/gas/aarch64/rme-invalid.s: Delete.
-		* testsuite/gas/aarch64/rme-invalid.l: Likewise.
-		* testsuite/gas/aarch64/rme-invalid.d: Likewise.
-
-2021-11-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Mark PMSIDR_EL1 as read-only
-	We were incorrectly allowing writes to PMSIDR_EL1, which is
-	a read-only register.
-	[https://developer.arm.com/documentation/ddi0595/2021-09/AArch64-Registers/PMSIDR-EL1--Sampling-Profiling-ID-Register?lang=en]
-
-	opcodes/
-		* aarch64-opc.c (aarch64_sys_regs): Make pmsidr_el1 as F_REG_READ.
-
-	gas/
-		* testsuite/gas/aarch64/msr.s: Remove write to pmsidr_el1.
-		* testsuite/gas/aarch64/msr.d: Update accordingly.
-		* testsuite/gas/aarch64/illegal-sysreg-2.s,
-		* testsuite/gas/aarch64/illegal-sysreg-2.d,
-		* testsuite/gas/aarch64/illegal-sysreg-2.l: New test.
-
-2021-11-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Remove duplicate system register entries
-	There is a lot of overlap between the ETM and ETE system registers,
-	so some registers were listed twice.
-
-	Already tested by etm.[sd] and ete.[sd].
-
-	opcodes/
-		* aarch64-opc.c (aarch64_sys_regs): Combine ETE and ETM blocks
-		and remove redundant entries.
-
-	gas/
-		* testsuite/gas/aarch64/etm.s: Remove duplicated test.
-		* testsuite/gas/aarch64/etm.d: Update accordingly.
-
-2021-11-30  Richard Sandiford  <richard.sandiford@arm.com>
-
-	aarch64: Check for register aliases before mnemonics
-	Previously we would not accept:
-
-		A .req B
-
-	if A happened to be the name of an instruction.  Adding new
-	instructions could therefore invalidate existing register aliases.
-
-	I noticed this with a test that used "zero" as a register alias
-	for "xzr", where "zero" is now also the name of an SME instruction.
-	I don't have any evidence that "real" code is doing this, but it
-	seems at least plausible.
-
-	This patch switches things so that we check for register aliases
-	first.  It might slow down parsing slightly, but the difference
-	is unlikely to be noticeable.
-
-	Things like:
-
-		b	.req + 0
-
-	still work, since create_register_alias checks for " .req ",
-	and with the input scrubber, we'll only keep whitespace after
-	.req if it's followed by another name.  If there's some valid
-	expression that I haven't thought about that is scrubbed to
-	" .req ", users could avoid the ambiguity by wrapping .req
-	in parentheses.
-
-	The new test for invalid aliases already passed.  I just wanted
-	something to exercise the !dot condition.
-
-	I can't find a way of exercising the (existing) p == base condition,
-	but I'm not brave enough to say that it can never happen.  If it does
-	happen, get_mnemonic_name would return an empty string.
-
-	gas/
-		* config/tc-aarch64.c (opcode_lookup): Move mnemonic extraction
-		code to...
-		(md_assemble): ...here.  Check for register aliases first.
-		* testsuite/gas/aarch64/register_aliases.d,
-		testsuite/gas/aarch64/register_aliases.s: Test for a register
-		alias called "zero".
-		* testsuite/gas/aarch64/register_aliases_invalid.d,
-		testsuite/gas/aarch64/register_aliases_invalid.l,
-		testsuite/gas/aarch64/register_aliases_invalid.s: New test.
-
-2021-11-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: don't use the 'p' format for parsing args
-	When running the gdb.python/py-arch.exp tests on a GDB built
-	against Python 2 I ran into some errors.  The problem is that this
-	test script exercises the gdb.Architecture.integer_type method, and
-	this method uses 'p' as an argument format specifier in a call to
-	gdb_PyArg_ParseTupleAndKeywords.
-
-	Unfortunately this specified was only added in Python 3.3, so will
-	cause an error for earlier versions of Python.
-
-	This commit switches to use the 'O' specifier to collect a PyObject,
-	and then uses PyObject_IsTrue to convert the object to a boolean.
-
-	An earlier version of this patch incorrectly switched from using 'p'
-	to use 'i', however, it was pointed out during review that this would
-	cause some changes in behaviour, for example both of these will work
-	with 'p', but not with 'i':
-
-	  gdb.selected_inferior().architecture().integer_type(32, None)
-	  gdb.selected_inferior().architecture().integer_type(32, "foo")
-
-	The new approach of using 'O' works fine with these cases.  I've added
-	some new tests to cover both of the above.
-
-	There should be no user visible changes after this commit.
-
-2021-11-30  Tom de Vries  <tdevries@sdflex.arch.suse.de>
-
-	[gdb/testsuite] Fix gdb.base/style.exp with stub-termcap
-	When running test-case gdb.base/style.exp with a gdb build using
-	stub-termcap.c, we run into:
-	...
-	(gdb) PASS: gdb.base/style.exp: all styles enabled: frame when width=20
-	^M<et width 30^M
-	(gdb) FAIL: gdb.base/style.exp: all styles enabled: set width 30
-	...
-
-	The problem is that we're trying to issue the command "set width 30" while
-	width is set to 20, which causes horizontal scrolling.
-
-	Fix this by resetting the width to 0 before issuing the "set width 30"
-	command.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24582
-
-2021-11-30  Nick Clifton  <nickc@redhat.com>
-
-	Use dwarf_vma type for offsets, ranges and section sizes in DWARF decoder.
-		* dwarf.c (find_debug_info_for_offset): Use dwarf_vma type for
-		offsets, sizes and ranges.
-		(display_loc_list): Likewise.  Also use print_dwarf_vma to print
-		the offset.
-		(display_loclists_list): Likewise.
-		(display_loc_list_dwo): Likewise.
-		(display_debug_str): Likewise.
-		(display_debug_aranges): Likewise.
-		(display_debug_ranges_list): Likewise.
-		(display_debug_rnglists_list): Likewise.
-		(display_debug_ranges): Likewise.
-
-	ld: pru: Add pru_irq_map output section
-		* scripttempl/pru.sc (.pru_irq_map): Define output section.
-		* testsuite/ld-pru/pru_irq_map-1.d: New test.
-		* testsuite/ld-pru/pru_irq_map-2.d: New test.
-		* testsuite/ld-pru/pru_irq_map.s: New test.
-
-2021-11-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: check the python module is available before using it
-	The gdb.python/py-inferior-leak.exp test makes use of the tracemalloc
-	module.  When running the Python tests with a GDB built against Python
-	2 I ran into a test failure due to the tracemalloc module not being
-	available.
-
-	This commit adds a new helper function to lib/gdb-python.exp that
-	checks if a named module is available.  Using this we can then skip
-	the py-inferior-leak.exp test when the tracemalloc module is not
-	available.
-
-2021-11-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix disassembler regressions for 32-bit arm
-	After this commit:
-
-	  commit 76b43c9b5c2b275cbf4f927bfc25984410cb5dd5
-	  Date:   Tue Oct 5 15:10:12 2021 +0100
-
-	      gdb: improve error reporting from the disassembler
-
-	We started seeing FAILs in the gdb.base/all-architectures*.exp tests,
-	when running on a 32-bit ARM target, though I suspect running on any
-	target that compiles such that bfd_vma is 32-bits would also trigger
-	the failures.
-
-	The problem is that the test is expected GDB's disassembler to print
-	an error like this:
-
-	  Cannot access memory at address 0x0
-
-	However, after the above commit we see an error like:
-
-	  unknown disassembler error (error = -1)
-
-	The reason for this is this code in opcodes/i386-dis.c (in the
-	print_insn function):
-
-	  if (address_mode == mode_64bit && sizeof (bfd_vma) < 8)
-	    {
-	      (*info->fprintf_func) (info->stream,
-	                             _("64-bit address is disabled"));
-	      return -1;
-	    }
-
-	This code effectively disallows us from ever disassembling 64-bit x86
-	code if we compiled GDB with a 32-bit bfd_vma.  Notice we return
-	-1 (indicating a failure to disassemble), but never call the
-	memory_error_func callback.
-
-	Prior to the above commit GDB, when it received the -1 return value
-	would assume that a memory error had occurred and just print whatever
-	value happened to be in the memory error address variable, the default
-	value of 0 just happened to be fine because the test had asked GDB to
-	do this 'disassemble 0x0,+4'.
-
-	If we instead change the test to do 'disassemble 0x100,+4' then GDB
-	would (previously) have still reported:
-
-	  Cannot access memory at address 0x0
-
-	which makes far less sense.
-
-	In this commit I propose to fix this issue by changing the test to
-	accept either the "Cannot access memory ..." string, or the newer
-	"unknown disassembler error ..." string.  With this change done the
-	test now passes.
-
-	However, there is one weakness with this strategy; if GDB broke such
-	that we _always_ reported "unknown disassembler error ..." we would
-	never notice.  This clearly would be bad.  To avoid this issue I have
-	adjusted the all-architectures*.exp tests so that, when we disassemble
-	for the default architecture (the one selected by "auto") we _only_
-	expect to get the "Cannot access memory ..." error string.
-
-	[ Note: In an ideal world we should be able to disassemble any
-	  architecture at all times.  There's no reason why the 64-bit x86
-	  disassembler requires a 64-bit bfd_vma, other than the code happens
-	  to be written that way.  We could rewrite the disassemble to not
-	  have this requirement, but, I don't plan to do that any time soon. ]
-
-	Further, I have changed the all-architectures*.exp test so that we now
-	disassemble at address 0x100, this should avoid us being able to pass
-	by printing a default address of 0x0.  I did originally change the
-	address we disassembled at to 0x4, however, some architectures,
-	e.g. ia64, have a default instruction alignment that is greater than
-	4, so would still round down to 0x0.  I could have just picked 0x8 as
-	an address, but I figured that 0x100 was likely to satisfy most
-	architectures alignment requirements.
-
-2021-11-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: add gdb.RemoteTargetConnection.send_packet
-	This commits adds a new sub-class of gdb.TargetConnection,
-	gdb.RemoteTargetConnection.  This sub-class is created for all
-	'remote' and 'extended-remote' targets.
-
-	This new sub-class has one additional method over its base class,
-	'send_packet'.  This new method is equivalent to the 'maint
-	packet' CLI command, it allows a custom packet to be sent to a remote
-	target.
-
-	The outgoing packet can either be a bytes object, or a Unicode string,
-	so long as the Unicode string contains only ASCII characters.
-
-	The result of calling RemoteTargetConnection.send_packet is a bytes
-	object containing the reply that came from the remote.
-
-2021-11-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: make packet_command function available outside remote.c
-	In a later commit I will add a Python API to access the 'maint packet'
-	functionality, that is, sending a user specified packet to the target.
-
-	To make implementing this easier, this commit refactors how this
-	command is currently implemented so that the packet_command function
-	is now global.
-
-	The new global send_remote_packet function takes an object that is an
-	implementation of an abstract interface.  Two functions within this
-	interface are then called, one just before a packet is sent to the
-	remote target, and one when the reply has been received from the
-	remote target.  Using an interface object in this way allows (1) for
-	the error checking to be done before the first callback is made, this
-	means we only print out what packet it being sent once we know we are
-	going to actually send it, and (2) we don't need to make a copy of the
-	reply if all we want to do is print it.
-
-	One user visible changes after this commit are the error
-	messages, which I've changed to be less 'maint packet' command
-	focused, this will make them (I hope) better for when
-	send_remote_packet can be called from Python code.
-
-	So:      "command can only be used with remote target"
-	Becomes: "packets can only be sent to a remote target"
-
-	And:     "remote-packet command requires packet text as argument"
-	Becomes: "a remote packet must not be empty"
-
-	Additionally, in this commit, I've added support for packet replies
-	that contain binary data.  Before this commit, the code that printed
-	the reply treated the reply as a C string, it assumed that the string
-	only contained printable characters, and had a null character only at
-	the end.
-
-	One way to show the problem with this is if we try to read the auxv
-	data from a remote target, the auxv data is binary, so, before this
-	commit:
-
-	  (gdb) target remote :54321
-	  ...
-	  (gdb) maint packet qXfer:auxv:read::0,1000
-	  sending: "qXfer:auxv:read::0,1000"
-	  received: "l!"
-	  (gdb)
-
-	And after this commit:
-
-	  (gdb) target remote :54321
-	  ...
-	  (gdb) maint packet qXfer:auxv:read::0,1000
-	  sending: "qXfer:auxv:read::0,1000"
-	  received: "l!\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xfc\xf7\xff\x7f\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xff\xf>
-	  (gdb)
-
-	The binary contents of the reply are now printed as escaped hex.
-
-2021-11-30  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/python: introduce gdb.TargetConnection object type
-	This commit adds a new object type gdb.TargetConnection.  This new
-	type represents a connection within GDB (a connection as displayed by
-	'info connections').
-
-	There's three ways to find a gdb.TargetConnection, there's a new
-	'gdb.connections()' function, which returns a list of all currently
-	active connections.
-
-	Or you can read the new 'connection' property on the gdb.Inferior
-	object type, this contains the connection for that inferior (or None
-	if the inferior has no connection, for example, it is exited).
-
-	Finally, there's a new gdb.events.connection_removed event registry,
-	this emits a new gdb.ConnectionEvent whenever a connection is removed
-	from GDB (this can happen when all inferiors using a connection exit,
-	though this is not always the case, depending on the connection type).
-	The gdb.ConnectionEvent has a 'connection' property, which is the
-	gdb.TargetConnection being removed from GDB.
-
-	The gdb.TargetConnection has an 'is_valid()' method.  A connection
-	object becomes invalid when the underlying connection is removed from
-	GDB (as discussed above, this might be when all inferiors using a
-	connection exit, or it might be when the user explicitly replaces a
-	connection in GDB by issuing another 'target' command).
-
-	The gdb.TargetConnection has the following read-only properties:
-
-	  'num': The number for this connection,
-
-	  'type': e.g. 'native', 'remote', 'sim', etc
-
-	  'description': The longer description as seen in the 'info
-	                 connections' command output.
-
-	  'details': A string or None.  Extra details for the connection, for
-	             example, a remote connection's details might be
-	             'hostname:port'.
-
-2021-11-30  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: The vtype immediate with more than the defined 8 bits are preserved.
-	According the rvv spec,
-	https://github.com/riscv/riscv-v-spec/blob/master/vtype-format.adoc
-
-	The bits of vtype immediate from 8 to (xlen - 1) should be reserved.
-	Therefore, we should also dump the vtype immediate as numbers, when
-	they are set over 8-bits.  I think this is a bug that we used to support
-	vediv extension and use the bit 8 and 9 of vtype, but forgot to update
-	the behavior when removing the vediv.
-
-	Consider the testcases,
-
-	vsetvli  a0, a1,  0x700    # the reserved bit 10, 9 and 8 are used.
-	vsetvli  a0, a1,  0x400    # the reserved bit 10 is used.
-	vsetvli  a0, a1,  0x300    # the reserved bit 9 and 8 are used.
-	vsetvli  a0, a1,  0x100    # the reserved bit 8 is used.
-	vsetivli a0, 0xb, 0x300    # the reserved bit 9 and 8 are used.
-	vsetivli a0, 0xb, 0x100    # the reserved bit 8 is used.
-
-	The original objdump shows the following result,
-
-	0000000000000000 <.text>:
-	   0:   7005f557                vsetvli a0,a1,1792
-	   4:   4005f557                vsetvli a0,a1,1024
-	   8:   3005f557                vsetvli a0,a1,e8,m1,tu,mu
-	   c:   1005f557                vsetvli a0,a1,e8,m1,tu,mu
-	  10:   f005f557                vsetivli        a0,11,e8,m1,tu,mu
-	  14:   d005f557                vsetivli        a0,11,e8,m1,tu,mu
-
-	But in fact the correct result should be,
-
-	0000000000000000 <.text>:
-	   0:   7005f557                vsetvli a0,a1,1792
-	   4:   4005f557                vsetvli a0,a1,1024
-	   8:   3005f557                vsetvli a0,a1,768
-	   c:   1005f557                vsetvli a0,a1,256
-	  10:   f005f557                vsetivli        a0,11,768
-	  14:   d005f557                vsetivli        a0,11,256
-
-	gas/
-		* testsuite/gas/riscv/vector-insns.d: Added testcases to
-		test the reserved bit 8 to (xlen-1) of vtype.
-		* testsuite/gas/riscv/vector-insns.s: Likewise.
-	include/
-		* opcode/riscv.h: Removed OP_MASK_VTYPE_RES and OP_SH_VTYPE_RES,
-		since they are different for operand Vc and Vb.
-	opcodes/
-		* riscv-dis.c (print_insn_args): Updated imm_vtype_res to
-		extract the reserved immediate of vtype correctly.
-
-2021-11-30  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Dump vset[i]vli immediate as numbers once vsew or vlmul is reserved.
-	Consider the following case,
-
-	vsetvli  a0, a1,  0x4           # unrecognized vlmul
-	vsetvli  a0, a1,  0x20          # unrecognized vsew
-	vsetivli a0, 0xb, 0x4           # unrecognized vlmul
-	vsetivli a0, 0xb, 0x20          # unrecognized vsew
-
-	For the current dis-assembler, we get the result,
-
-	0000000000000000 <.text>:
-	   0:   0045f557                vsetvli a0,a1,e8,(null),tu,mu
-	   4:   0205f557                vsetvli a0,a1,e128,m1,tu,mu
-	   8:   c045f557                vsetivli        a0,11,e8,(null),tu,mu
-	   c:   c205f557                vsetivli        a0,11,e128,m1,tu,mu
-
-	The vsew e128 and vlmul (null) are preserved according to the spec,
-	so dump these fields looks wrong.  Consider that we are used to dump
-	the unrecognized csr as csr numbers directly, we should also dump
-	the whole vset[i]vli immediates as numbers, once the vsew or vlmul
-	is reserved.  Therefore, following is what I expected,
-
-	0000000000000000 <.text>:
-	   0:   0045f557                vsetvli a0,a1,4
-	   4:   0205f557                vsetvli a0,a1,32
-	   8:   c045f557                vsetivli        a0,11,4
-	   c:   c205f557                vsetivli        a0,11,32
-
-	gas/
-		* testsuite/gas/riscv/vector-insns.d: Rewrite the vset[i]vli
-		testcases since we should dump the immediate as numbers once
-		the vsew or vlmul is reserved.
-		* testsuite/gas/riscv/vector-insns.s: Likewise.
-	opcodes/
-		* riscv-dis.c (print_insn_args): The reserved vsew and vlmul
-		are NULL string in the riscv_vsew and riscv_vlmul, so dump the
-		whole imm as numbers once one of them is NULL.
-		* riscv-opc.c (riscv_vsew): Set the reserved vsew to NULL.
-		(riscv_vlmul): Set the reserved vlmul to NULL.
-
-2021-11-30  Mike Frysinger  <vapier@gentoo.org>
-
-	zlib: enable silent build rules
-
-	ld: enable silent build rules
-	Also add $(AM_V_xxx) to various manual rules in here.
-
-	libctf: enable silent build rules
-	Also add $(AM_V_xxx) to various manual rules in here.
-
-	gprof: enable silent build rules
-	Also add $(AM_V_xxx) to various manual rules in here.
-
-	binutils: merge doc subdir up a level
-	This avoids a recursive make into the doc subdir and speeds up the
-	build slightly.  It also allows for more parallelism.
-
-	binutils: enable silent build rules
-	Also add $(AM_V_xxx) to various manual rules in here.
-
-	bfd: enable silent build rules
-	Also add $(AM_V_xxx) to various manual rules in here.
-
-	opcodes: enable silent build rules
-	Also add $(AM_V_xxx) to various manual rules in here.
-
-2021-11-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-29  Tom Tromey  <tom@tromey.com>
-
-	Allow DW_ATE_UTF for Rust characters
-	The Rust compiler plans to change the encoding of a Rust 'char' type
-	to use DW_ATE_UTF.  You can see the discussion here:
-
-	    https://github.com/rust-lang/rust/pull/89887
-
-	However, this fails in gdb.  I looked into this, and it turns out that
-	the handling of DW_ATE_UTF is currently fairly specific to C++.  In
-	particular, the code here assumes the C++ type names, and it creates
-	an integer type.
-
-	This comes from commit 53e710acd ("GDB thinks char16_t and char32_t
-	are signed in C++").  The message says:
-
-	    Both places need fixing.  But since I couldn't tell why dwarf2read.c
-	    needs to create a new type, I've made it use the per-arch built-in
-	    types instead, so that the types are only created once per arch
-	    instead of once per objfile.  That seems to work fine.
-
-	... which is fine, but it seems to me that it's also correct to make a
-	new character type; and this approach is better because it preserves
-	the type name as well.  This does use more memory, but first we
-	shouldn't be too concerned about the memory use of types coming from
-	debuginfo; and second, if we are, we should implement type interning
-	anyway.
-
-	Changing this code to use a character type revealed a couple of
-	oddities in the C/C++ handling of TYPE_CODE_CHAR.  This patch fixes
-	these as well.
-
-	I filed PR rust/28637 for this issue, so that this patch can be
-	backported to the gdb 11 branch.
-
-2021-11-29  Aaron Merey  <amerey@redhat.com>
-	    Tom de Vries  <tdevries@suse.de>
-
-	[PR gdb/27026] CTRL-C is ignored when debug info is downloaded
-	During debuginfod downloads, ctrl-c should result in the download
-	being cancelled and skipped.  However in some cases, ctrl-c fails to
-	get delivered to gdb during downloading.  This can result in downloads
-	being unskippable.
-
-	Fix this by ensuring that target_terminal::ours is in effect for the
-	duration of each download.
-
-	https://sourceware.org/bugzilla/show_bug.cgi?id=27026#c3
-
-2021-11-29  Nick Clifton  <nickc@redhat.com>
-
-	strings: Replace references to -u option with references to -U.
-		PR 28632
-
-2021-11-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix segfault in search_one_symtab
-	PR28539 describes a segfault in lambda function search_one_symtab due to
-	psymbol_functions::expand_symtabs_matching calling expansion_notify with a
-	nullptr symtab:
-	...
-	          struct compunit_symtab *symtab =
-	            psymtab_to_symtab (objfile, ps);
-
-	          if (expansion_notify != NULL)
-	            if (!expansion_notify (symtab))
-	              return false;
-	...
-
-	This happens as follows.  The partial symtab ps is a dwarf2_include_psymtab
-	for some header file:
-	...
-	(gdb) p ps.filename
-	$5 = 0x64fcf80 "/usr/include/c++/11/bits/stl_construct.h"
-	...
-
-	The includer of ps is a shared symtab for a partial unit, with as user:
-	...
-	(gdb) p ps.includer().user.filename
-	$11 = 0x64fc9f0 \
-	  "/usr/src/debug/llvm13-13.0.0-1.2.x86_64/tools/clang/lib/AST/Decl.cpp"
-	...
-
-	The call to psymtab_to_symtab expands the Decl.cpp symtab (and consequently
-	the shared symtab), but returns nullptr because:
-	...
-	struct dwarf2_include_psymtab : public partial_symtab
-	{
-	  ...
-	  compunit_symtab *get_compunit_symtab (struct objfile *objfile) const override
-	  {
-	    return nullptr;
-	  }
-	...
-
-	Fix this by returning the Decl.cpp symtab instead, which fixes the segfault
-	in the PR.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28539
-
-2021-11-29  Nick Clifton  <nickc@redhat.com>
-
-	Update description of string's -n option.
-		PR 28632
-		* strings.c (usage): Update desciption of -n option.
-		* doc/binutils.texi: Likewise.
-
-2021-11-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix typo in proc lines
-	Proc lines contains a typo:
-	...
-	  string_form { set $_line_string_form $value }
-	...
-
-	Remove the incorrect '$' in '$_line_string_form'.
-
-	Tested on x86_64-linux.
-
-2021-11-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use unique files in gdb.dwarf2/dw2-lines.exp
-	While debugging a problem in gdb.dwarf2/dw2-lines.exp, I realized that the
-	test-case generates all executables and associated temporary files using the
-	same filenames.
-
-	Fix this by adding a new proc prefix_id in lib/gdb.exp, and using it in the
-	test-case.
-
-	Tested on x86_64-linux.
-
-2021-11-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-lines.exp with -m32
-	When running test-case gdb.dwarf2/dw2-lines.exp with target board -unix/-m32,
-	we run into another instance of PR28383, where the dwarf assembler generates
-	64-bit relocations which are not supported by the 32-bit assembler:
-	...
-	dw2-lines-dw.S: Assembler messages:^M
-	outputs/gdb.dwarf2/dw2-lines/dw2-lines-dw.S:76: Error: \
-	  cannot represent relocation type BFD_RELOC_64^M
-	...
-
-	Fix this by using _op_offset in _line_finalize_header.
-
-	Tested on x86_64-linux.
-
-2021-11-29  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: drop most specific istarget checks
-	We'll rely on the toolchain probing to determine whether each arch's
-	tests can be run rather the current configure target.  This allows
-	testing all of the ports in a multitarget configuration.
-
-	For now, we don't reformat the files entirely to make it easier to
-	review, and in case we need to make adjustments.  Once this feels
-	like it's stable, we can flatten the code a bit by removing the if
-	statement entirely.
-
-2021-11-29  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: support parallel execution
-	Break up the dejagnu logic so that we can parallelize the testsuite.
-	This takes a page from gcc & gdb where each .exp is run in isolation
-	instead of in serial.
-
-	For most targets, this doesn't make much of a difference as they only
-	have a single .exp.  A few (like cris & frv) have multiple .exp though
-	and will see a bit of a speed up.
-
-	The real gain is when testing a multitarget build.  This way we can
-	run all the targets in parallel and cut the execution time a bit.
-	On my system, it goes from ~155sec to ~100sec.
-
-	We can gain further speedups by splitting up some of the larger .exp
-	files into smaller groups.  We'll do that in a followup though.
-
-2021-11-29  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: expand arch specific toolchain settings
-	Leverage the new per-port toolchain settings to initialize the env
-	for eeach set of tests.  This allows us to run all the tests in a
-	multitarget build if the user sets up the vars.  If they don't, we
-	can still skip all the tests.
-
-2021-11-29  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: setup per-port toolchain settings for multitarget build
-	Gas does not support multitarget builds -- it still only supports
-	a single input & output format.  ld is a bit better, but requires
-	manual flags to select the right output.  This makes it impossible
-	to run the complete testsuite in a multitarget build.
-
-	To address this limitation, create a suite of FOR_TARGET variables
-	so these can be set to precompiled as & ld programs.  It requires
-	a bit of setup ahead of time, but it's a one-time cost, and makes
-	running the full testsuite at once much easier.
-
-2021-11-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-28  Alan Modra  <amodra@gmail.com>
-
-	PR28629 NIOS2 fallout
-	The test exactly matched wrong output.
-
-		PR 28629
-		* testsuite/gas/nios2/relax.d: Update expected output.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: add checks to core headers to prevent incorrect common building
-	Some of the core sim headers rely on the SIM_AC_OPTION_BITSIZE macro
-	which can change the size of core types.  Since these haven't been
-	unified across ports, add checks to make sure they aren't accidentally
-	included when building for all ports.  This caught the sim-load file
-	using poisoned headers that it didn't actually need.
-
-	sim: unify syscall.o building
-	Now that we've unified all the syscall tables, this file does not rely
-	on any port-specific settings, so move it up to building as part of the
-	common step so we only do it once in a multibuild.
-
-	sim: drop unused gentmap & nltvals.def logic
-	Now that all ports have switched to target-newlib-* files, there's
-	no need for these files & generating things at build time.  So punt
-	the logic and make target-newlib-syscall a hard requirement.
-
-	sim: mcore: switch to new target-newlib-syscall
-	Use the new target-newlib-syscall module.  This is needed to merge all
-	the architectures into a single build, and mcore has a custom syscall
-	table for its newlib/libgloss port.
-
-	sim: riscv: switch to new target-newlib-syscall
-	Use the new target-newlib-syscall module.  This is needed to merge all
-	the architectures into a single build, and riscv has a custom syscall
-	table for its newlib/libgloss port.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cr16: switch to new target-newlib-syscall
-	Use the new target-newlib-syscall module.  This is needed to merge all
-	the architectures into a single build, and cr16 has a custom syscall
-	table for its newlib/libgloss port.
-
-	This allows cleaning up the syscall ifdef logic.  We know these will
-	always exist now.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: d10v: switch to new target-newlib-syscall
-	Use the new target-newlib-syscall module.  This is needed to merge all
-	the architectures into a single build, and d10v has a custom syscall
-	table for its newlib/libgloss port.
-
-	This allows cleaning up the syscall ifdef logic.  We know these will
-	always exist now.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: switch to new target-newlib-syscall
-	Use the new target-newlib-syscall module.  This is needed to merge all
-	the architectures into a single build, and sh has a custom syscall
-	table for its newlib/libgloss port.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: v850: switch to new target-newlib-syscall
-	Use the new target-newlib-syscall module.  This is needed to merge all
-	the architectures into a single build, and v850 has a custom syscall
-	table for its newlib/libgloss port.
-
-	This allows cleaning up the syscall ifdef logic.  We know these will
-	always exist now.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: iq2000/lm32/m32c/moxie/rx: switch to new target-newlib-syscall.h
-	Use the new target-newlib-syscall.h to provide the target syscall
-	defines.  These code paths are written specifically for the newlib
-	ABI rather than being generalized, so switching them to the defines
-	rather than trying to go through the dynamic callback conversion
-	seems like the best trade-off for now.  Might have to reconsider
-	this in the future.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: nltvals: pull target syscalls out into a dedicated source file
-	Like we just did for pulling out the errno map, pull out the syscall
-	maps into a dedicated common file.  Most newlib ports are using the
-	same syscall map, but not all, which means we have to do a bit more
-	work to migrate.
-
-	This commit adds the maps and switches the ports using the common
-	default syscall table over to it.  Ports using unique syscall tables
-	are still using the old targ-map.c logic.
-
-	Switching common ports over is easy by checking NL_TARGET, but the
-	ppc code needs a bit more cleanup here hence its larger diff.
-
-2021-11-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: frv: resolve syscalls dynamically
-	Avoid use of TARGET_<syscall> defines and rely on the callback layers
-	to resolve these dynamically so we can support multiple syscall layers
-	instead of assuming the newlib/libgloss numbers all the time.
-
-	sim: mn10300: resolve syscalls dynamically
-	Avoid use of TARGET_<syscall> defines and rely on the callback layers
-	to resolve these dynamically so we can support multiple syscall layers
-	instead of assuming the newlib/libgloss numbers all the time.
-
-	sim: nltvals: drop i960
-	This port was dropped from gdb/bfd/sim years ago, so stop including
-	its syscall constants too.
-
-	sim: moxie: fix datadir handling
-	Expand the value at `make` time rather than configure generation time
-	so that we handle $(datarootdir) setting properly.
-
-2021-11-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix typos in configure
-	The variable names used to restore CFLAGS and LDFLAGS here don't quite
-	match the names used above, resulting in losing the original CFLAGS and
-	LDFLAGS.  Fix that.
-
-	Change-Id: I9cc2c3b48b1dc30c31a7143563c893fd6f426a0a
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: hw: mark hw_descriptors const
-
-	sim: testsuite: add dedicated flag for init toolchain tests
-	As we setup more reliable CC_FOR_TARGET variables for each target, the
-	bfin way of overriding it to stuff custom CFLAGS doesn't scale well.
-	Add a dedicated CFLAGS_FOR_TARGET_init setting that each set of tests
-	can setup if they want to add custom options.
-
-	sim: testsuite: clean up arch specific toolchain settings
-	In a multitarget build, we process all targets in order, so make sure
-	the toolchain settings from one don't leak into the next.
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cris: always search for local rvdummy tool
-	If the board info sets the sim to a basename that is found via $PATH
-	(which is the default dejagnu behavior), the logic here to use its
-	dirname to find rvdummy fails because it looks for `./rvdummy`.  So
-	switch it to always use the local build of rvdummy which is the one
-	we want to be testing against in the first place.
-
-	If we get a request for testing against a different setup, we can
-	figure out & document the needs at that point, and then setup some
-	config knobs to control it.
-
-2021-11-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAIL in gdb.base/list-missing-source.exp
-	In commit f8080fb7a44 "[gdb/testsuite] Add gdb.base/include-main.exp" a
-	file gdb.base/main.c was added, which caused the following regression:
-	...
-	(gdb) list^M
-	<gdb.base/main.c>
-	(gdb) FAIL: gdb.base/list-missing-source.exp: list
-	...
-
-	The problem is that the test-case does not expect to find a file main.c, but
-	now it finds gdb.base/main.c.
-
-	Fix this by using the more specific file name list-missing-source.c.
-
-	Tested on x86_64-linux.
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: fix bits-gen EXEEXT handling
-	Add missing $(EXEEXT) to dependencies on bits-gen.  These are actually
-	build-only tools, but automake doesn't allow for build & host tools, so
-	the rules are re-using EXEEXT.
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: initial support for OS-specific tests
-	We usually test against the newlib/libgloss environment, but for a
-	few ports that also support Linux apps, we want to test that logic
-	too.  A lot of the C code is written such that it works with either
-	newlib/libgloss or glibc/linux toolchains, but we have some tests
-	that end up being Linux-specific.  Cris has been using the target
-	tuple as a rough proxy for this (where cris*-*-elf is assumed to be
-	newlib/libgloss, and everything else is glibc/linux), but that is a
-	bit too rough, and it doesn't work in a multitarget build.
-
-	So lets create a few stub files that we can do compile tests with
-	to detect the different setups, and then let tests declare which
-	one they require (if they require any at all).
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: unify basic C compiler checks
-	Both bfin & cris ports test the C compiler to see if it works, but in
-	their own way.  Unify the checks in the common code so we can leverage
-	them in more ports in the future, and collapse the bfin & cris code.
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: rework sim_init usage
-	The sim_init function was called by runtest for each test when --tool
-	was set to sim.  When we changed to --tool '' to collapse the testsuite
-	dir, the init function was no longer called on every test.  However, it
-	was still being called explicitly by config/default.exp.  It's not clear
-	why that explicit call ever existed since, in the past, it meant it was
-	redundant.
-
-	Lets drop the single sim_init call in config/default.exp and move it out
-	to all our tests.  This replicates the runtest behavior so we can setup
-	variables on a per-test basis which allows us to recollapse the sim_path
-	logic back.  We'll also leverage this in the future for toolchain setup.
-
-	Also add a few comments clarifying the overall runtime behavior.
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cris: fix testsuite hang when sim is missing
-	If the cris sim hasn't been built yet, trying to run its testsuite
-	will hang indefinitely.  The common sim APIs already have this, so
-	copy it over to the cris forks of the test+run functions.
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: fix objdir handling
-	The tests assume that the cwd is the objdir directory and write its
-	intermediates to there all the time.  When using runtest's --objdir
-	setting though, this puts the files in the wrong place.  This isn't
-	a big problem currently as we never change --objdir, but in order to
-	support parallel test execution, we're going to start setting that
-	option, so clean up the code ahead of time.
-
-	We also have to tweak some of the cris tests which were making
-	assumptions about the argv[0] value.
-
-2021-11-27  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: rename global_sim_options to SIMFLAGS_FOR_TARGET
-	Now that all the other toolchain settings have been renamed to match
-	the dejagnu settings of XXX_FOR_TARGET, rename global_sim_options to
-	SIMFLAGS_FOR_TARGET too.
-
-	sim: testsuite: replace global_ld_options with LDFLAGS_FOR_TARGET
-	Only a few tests actually use global_ld_options, but we can replace the
-	sim-specific settings with the dejagnu common LDFLAGS_FOR_TARGET and get
-	the same result.
-
-2021-11-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-26  John David Anglin  <danglin@gcc.gnu.org>
-
-	Fix ifunc test fails on hppa*-*-*
-	2021-11-26  John David Anglin  <danglin@gcc.gnu.org>
-
-		PR ld/27442
-
-	ld/ChangeLog:
-
-		* ld/testsuite/ld-ifunc/ifunc.exp (contains_irelative_reloc): Adjust
-		regexp.
-		Skip static ifunc-using executable test on hppa*-*-*.
-
-2021-11-26  H.J. Lu  <hjl.tools@gmail.com>
-
-	gas: Update commit 4780e5e4933
-	Update
-
-	commit 4780e5e4933a2497a5aecc4ceabbbb8e82aaf822
-	Author: Tom de Vries <tdevries@suse.de>
-	Date:   Fri Nov 26 09:59:45 2021 +0100
-
-	    [gas] Fix file 0 dir with -gdwarf-5
-
-	1. Replace i with j in
-
-	  for (j = 0; i < NUM_MD5_BYTES; ++j)
-
-	2. Pass -W to readelf to force CU: in output due to:
-
-		      if (do_wide || strlen (directory) < 76)
-			printf (_("CU: %s/%s:\n"), directory, file_table[0].name);
-		      else
-			printf ("%s:\n", file_table[0].name);
-
-		PR gas/28629
-		* dwarf2dbg.c (out_dir_and_file_list): Fix a typo in commit
-		4780e5e4933.
-		* testsuite/gas/elf/dwarf-5-nop-for-line-table.d: Pass -W to
-		readelf.
-
-2021-11-26  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: replace global_as_options with ASFLAGS_FOR_TARGET
-	Only a few tests actually use global_as_options, but we can replace the
-	sim-specific settings with the dejagnu common ASFLAGS_FOR_TARGET and get
-	the same result.
-
-2021-11-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.base/include-main.exp
-	The test-case gdb.ada/dgopt.exp uses the -gnatD switch, in combination with
-	-gnatG.
-
-	This causes the source file $src/gdb/testsuite/gdb.ada/dgopt/x.adb to be
-	expanded into $build/gdb/testsuite/outputs/gdb.ada/dgopt/x.adb.dg, and the
-	debug information should refer to the x.adb.dg file.
-
-	That is the case for the .debug_line part:
-	...
-	The Directory Table is empty.
-
-	 The File Name Table (offset 0x1c):
-	  Entry Dir     Time    Size    Name
-	  1     0       0       0       x.adb.dg
-	...
-	but not for the .debug_info part:
-	...
-	    <11>   DW_AT_name        : $src/gdb/testsuite/gdb.ada/dgopt/x.adb
-	    <15>   DW_AT_comp_dir    : $build/gdb/testsuite/outputs/gdb.ada/dgopt
-	...
-
-	Filed as PR gcc/103436.
-
-	In C we can generate similar debug information, using a source file that does
-	not contain any code, but includes another one that does:
-	...
-	 $ cat gdb/testsuite/gdb.base/include-main.c
-	 #include "main.c"
-	...
-	such that in the .debug_line part we have:
-	...
-	 The Directory Table (offset 0x1c):
-	  1     /home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.base
-
-	 The File Name Table (offset 0x57):
-	  Entry Dir     Time    Size    Name
-	  1     1       0       0       main.c
-	...
-	and in the .debug_info part:
-	...
-	    <11>   DW_AT_name        : $src/gdb/testsuite/gdb.base/include-main.c
-	    <15>   DW_AT_comp_dir    : $build/gdb/testsuite
-	...
-
-	Add a C test-case that mimics gdb.ada/dgopt.exp, that is:
-	- generate debug info as described above,
-	- issue a list of a line in include-main.c, while the corresponding
-	  CU is not expanded yet.
-
-	Tested on x86_64-linux.
-
-2021-11-26  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: drop unused global_cc_options
-	Nothing in the testsuite is using this setting, so let's drop it.
-	Any code that wants to set compiler flags can use CFLAGS_FOR_TARGET
-	instead to get the same effect.
-
-	sim: testsuite: punt unused toolchain variables
-	These haven't been used in over 20 years.  The sim testsuite used to
-	run these tools itself directly, but back in ~1999 it switched to the
-	dejagnu helpers (e.g. target_assemble & target_link), and the dejagnu
-	logic only utilizes XXX_FOR_TARGET variables.  Punt them here to avoid
-	confusion with dead code.
-
-2021-11-26  Andrew Burgess  <aburgess@redhat.com>
-	    Simon Cook  <simon.cook@embecosm.com>
-
-	gdb: add risc-v disassembler options support
-	This commit adds support for RISC-V disassembler options to GDB.  This
-	commit is based on this patch which was never committed:
-
-	  https://sourceware.org/pipermail/binutils/2021-January/114944.html
-
-	All of the binutils refactoring has been moved to a separate, earlier,
-	commit, so this commit is pretty straight forward, just registering
-	the required gdbarch hooks.
-
-2021-11-26  Andrew Burgess  <aburgess@redhat.com>
-	    Simon Cook  <simon.cook@embecosm.com>
-
-	opcodes/riscv: add disassembler options support to libopcodes
-	In preparation for the next commit, which will add GDB support for
-	RISC-V disassembler options, this commit restructures how the
-	disassembler options are managed within libopcodes.
-
-	The implementation provided here is based on this mailing list patch
-	which was never committed:
-
-	  https://sourceware.org/pipermail/binutils/2021-January/114944.html
-
-	which in turn took inspiration from the MIPS implementation of the
-	same feature.
-
-	The biggest changes from the original mailing list post are:
-
-	  1. The GDB changes have been split into a separate patch, and
-
-	  2. The `riscv_option_args_privspec` variable, which held the valid
-	  priv-spec values is now gone, instead we use the `riscv_priv_specs`
-	  array from bfd/cpu-riscv.c instead.
-
-
-	include/ChangeLog:
-
-		* dis-asm.h (disassembler_options_riscv): Declare.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (enum riscv_option_arg_t): New enum typedef.
-		(riscv_options): New static global.
-		(disassembler_options_riscv): New function.
-		(print_riscv_disassembler_options): Rewrite to use
-		disassembler_options_riscv.
-
-2021-11-26  Tom de Vries  <tdevries@suse.de>
-
-	[gas] Fix file 0 dir with -gdwarf-5
-	In out_dir_and_file_list, if file 0 is copied from file 1, only the filename
-	is copied, and the dir and md5 fields are left to their default values.
-
-	Fix this by adding the copy of the dir and md5 fields.
-
-	gas/ChangeLog:
-
-	2021-11-26  Tom de Vries  <tdevries@suse.de>
-
-		PR 28629
-		* dwarf2dbg.c (out_dir_and_file_list): When copying file 1 to file 0,
-		also copy dir and md5 fields.
-		* testsuite/gas/i386/dwarf5-line-4.d: Adjust expected output.
-
-2021-11-26  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: avoid _ namespace
-	Some C libraries export _P symbols in their headers (like older
-	newlib and its ctype.h), so use P_ instead to avoid conflicts.
-
-	ld: fix POSIX shell test usage
-	POSIX test uses = for compares, not == which is a bashism.
-
-	gas: enable silent build rules
-
-	ld: fix --disable-multiple-abs-defs alignment in help
-
-2021-11-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-25  Enze Li  <lienze2010@hotmail.com>
-
-	gdb: ensure extension_language_python is always defined
-	In this commit:
-
-	  commit c6a6aad52d9e839d6a84ac31cabe2b7e1a2a31a0
-	  Date:   Mon Oct 25 17:25:45 2021 +0100
-
-	      gdb/python: make some global variables static
-
-	building without Python was broken.  The extension_language_python
-	global was moved from being always defined, to only being defined when
-	the HAVE_PYTHON macro was defined.  As a consequence, building without
-	Python support would result in errors like:
-
-	  /usr/bin/ld: extension.o:(.rodata+0x120): undefined reference to `extension_language_python'
-
-	This commit fixes the problem by moving the definition of
-	extension_language_python outside of the HAVE_PYTHON macro protection.
-
-2021-11-25  Andrew Burgess  <aburgess@redhat.com>
-
-	Revert "gdb: add assert in remote_target::wait relating to async being off"
-	This commit introduced a test failure in gdb.server/attach-flag.exp.
-	I didn't spot this failure originally as the problem is fixed by this,
-	as yet unpushed patch:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-November/183768.html
-
-	I unfortunately didn't test each patch in the original series
-	independently.  I'll repost this patch after the above patch has been
-	merged.
-
-	This reverts commit 32b1f5e8d6b8ddd3be6e471c26dd85a1dac31dda.
-
-2021-11-25  Nick Clifton  <nickc@redhat.com>
-
-	Fix building the AArch64 assembler and disassembler when assertions are disabled.
-		PR 28614
-		* aarch64-asm.c: Replace assert(0) with real code.
-		* aarch64-dis.c: Likewise.
-		* aarch64-opc.c: Likewise.
-
-2021-11-25  Bruno Larsen  <blarsen@redhat.com>
-
-	PR gdb/28480: Improve ambiguous member detection
-	Basic ambiguity detection assumes that when 2 fields with the same name
-	have the same byte offset, it must be an unambiguous request. This is not
-	always correct. Consider the following code:
-
-	class empty { };
-
-	class A {
-	public:
-	  [[no_unique_address]] empty e;
-	};
-
-	class B {
-	public:
-	  int e;
-	};
-
-	class C: public A, public B { };
-
-	if we tried to use c.e in code, the compiler would warn of an ambiguity,
-	however, since A::e does not demand an unique address, it gets the same
-	address (and thus byte offset) of the members, making A::e and B::e have the
-	same address. however, "print c.e" would fail to report the ambiguity,
-	and would instead print it as an empty class (first path found).
-
-	The new code solves this by checking for other found_fields that have
-	different m_struct_path.back() (final class that the member was found
-	in), despite having the same byte offset.
-
-	The testcase gdb.cp/ambiguous.exp was also changed to test for this
-	behavior.
-
-2021-11-25  Jan W. Jagersma  <jwjagersma@gmail.com>
-
-	coff-go32: consistent 16-byte section alignment
-	Section alignment for coff-go32 is inconsistent - The '.text' and
-	'.data' sections are 16-byte aligned, but named sections '.text.*' and
-	'.data.*' are only 4-byte aligned.  '.gnu.linkonce.r.*' is aligned to
-	16 bytes, yet '.rodata' and '.rodata.*' are aligned to 4 bytes.  For
-	'.bss' all input sections are only aligned to 4 bytes.
-
-	This primarily can cause trouble when using SSE instructions, which
-	require their memory operands to be aligned to 16-byte boundaries.
-
-	This patch solves the issue simply by setting the section alignment
-	to 16 bytes, for all code and data sections referenced in the default
-	linker script.
-
-		* coff-go32.c (COFF_SECTION_ALIGNMENT_ENTRIES):  Use partial
-		name match for .text, .data.  Add entries for .const, .rodata,
-		.bss, .gnu.linkonce.b.
-
-2021-11-25  Alan Modra  <amodra@gmail.com>
-
-	Re: AArch64: Add support for AArch64 EFI (efi-*-aarch64)
-	Commit b69c9d41e8 edited bfd/Makefile.in rather than using automake,
-	which meant a typo in Makefile.am was not discovered and other
-	differences in Makefile.in are seen with a proper regeneration.  One
-	difference was lack of an empty line between the pe-aarch64igen.c rule
-	and the following $(BFD32_LIBS) etc. dependency rule, in the
-	regenerated file.  Not that it matters for proper "make" behaviour,
-	but it's nicer with a line between those rules.  Moving the rule
-	earlier seems to cure the missing empty line.
-
-		* Makefile.am (BFD64_BACKENDS): Correct typo.
-		(BFD_H_DEPS, LOCAL_H_DEPS): Move earlier.  Move rule using these
-		deps earlier too.
-		* Makefile.in: Regenerate.
-		* po/BLD-POTFILES.in: Regenerate.
-		* po/SRC-POTFILES.in: Regenerate.
-
-2021-11-25  Nick Clifton  <nickc@redhat.com>
-
-	Updated French translation for the opcodes directory.
-		* po/fr.po; Updated French translation.
-
-2021-11-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: rename source_styling_changed observer
-	In a later commit I plan to add disassembler styling.  In the same way
-	that we have a source_styling_changed observer I would need to add a
-	disassembler_styling_changed observer.
-
-	However, currently, these observers would only be notified from
-	cli-style.c:set_style_enabled, and observed in tui-winsource.c,
-	tui_source_window::style_changed, as a result, having two observers
-	seems unnecessary right now, so, in this commit, I plan to rename
-	source_styling_changed to just styling_changed, then, in the later
-	commit, when disassembler styling is added, I can use the same
-	observer for both source styling, and disassembler styling.
-
-	There should be no user visible changes after this commit.
-
-2021-11-25  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: make some global variables static
-	Make a couple of global variables static in python/python.c.  To do
-	this I had to move the definition of extension_language_python to
-	later in the file.
-
-	There should be no user visible changes after this commit.
-
-2021-11-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add assert in remote_target::wait relating to async being off
-	While working on another patch I ended up in a situation where I had
-	async mode disabled (with 'maint set target-async off'), but the async
-	event token got marked anyway.
-
-	In this situation GDB was continually calling into
-	remote_target::wait, however, the async token would never become
-	unmarked as the unmarking is guarded by target_is_async_p.
-
-	We could just unconditionally unmark the token, but that would feel
-	like just ignoring a bug, so, instead, lets assert that if
-	!target_is_async_p, then the async token should not be marked.
-
-	This assertion would have caught my earlier mistake.
-
-	There should be no user visible changes with this commit.
-
-2021-11-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: simplify remote_target::is_async_p
-	This commit simplifies remote_target::is_async_p by removing the
-	target_async_permitted check.
-
-	In previous commits I have added additional assertions around the
-	target_async_permitted flag into target.c, as a result we should now
-	be confident that if target_can_async_p returns false, a target will
-	never have async mode enabled.  Given this, it should not be necessary
-	to check target_async_permitted in remote_target::is_async_p, if this
-	flag is false ::is_async_p should return false anyway.  There is an
-	assert to this effect in target_is_async_p.
-
-	There should be no user visible change after this commit.
-
-2021-11-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: add asserts in target.c for target_async_permitted
-	The target_async_permitted flag allows a user to override whether a
-	target can act in async mode or not.  In previous commits I have moved
-	the checking of this flag out of the various ::can_async_p methods and
-	into the common target.c code.
-
-	In this commit I will add some additional assertions into
-	target_is_async_p and target_async.  The rules these assertions are
-	checking are:
-
-	  1. A target that returns false for target_can_async_p should never
-	  become "async enabled", and so ::is_async_p should always return
-	  false.  This is being checked in target_is_async_p.
-
-	  2. GDB should never try to enable async mode for a target that
-	  returns false for target_can_async_p, this is checked in
-	  target_async.
-
-	There are a few places where we call the ::is_async_p method directly,
-	in these cases we will obviously not pass through the assert in
-	target_is_async_p, however, there are also plenty of places where we
-	do call target_is_async_p so if GDB starts to misbehave we should
-	catch it quickly enough.
-
-	There should be no user visible changes after this commit.
-
-2021-11-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: hoist target_async_permitted checks into target.c
-	This commit moves the target_async_permitted check out of each targets
-	::can_async_p method and into the target_can_async_p wrapper function.
-
-	I've left some asserts in the two ::can_async_p methods that I
-	changed, which will hopefully catch any direct calls to these methods
-	that might be added in the future.
-
-	There should be no user visible changes after this commit.
-
-2021-11-25  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: introduce a new overload of target_can_async_p
-	There are a few places where we call the target_ops::can_async_p
-	member function directly, instead of using the target_can_async_p
-	wrapper.
-
-	In some of these places this is because we need to ask before the
-	target has been pushed, and in another location (in target.c) it seems
-	unnecessary to go through the wrapper when we are already in target.c
-	code.
-
-	However, in the next commit I'd like to hoist some common checks out
-	of target specific code into target.c.  To achieve this, in this
-	commit, I introduce a new overload of target_can_async_p which takes a
-	target_ops pointer, and calls the ::can_async_p method directly.  I
-	then make use of the new overload where appropriate.
-
-	There should be no user visible changes after this commit.
-
-2021-11-25  Clément Chigot  <clement.chigot@atos.net>
-
-	ld/testsuite/ld-elfvsb: correctly test "weak hidden symbol DSO last"
-	The test must be done with the shared object and not with the object
-	file which is already being tested above.
-
-	ld/
-		* testsuite/ld-elfvsb/elfvsb.exp: use .so file in "weak hidden
-		  symbol DSO last"
-
-2021-11-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Add "set logging enabled", deprecate "set logging on/off"
-	Before commit 3b6acaee895 "Update more calls to add_prefix_cmd" we had the
-	following output for "show logging file":
-	...
-	$ gdb -q -batch -ex "set trace-commands on" \
-	    -ex "set logging off" \
-	    -ex "show logging file" \
-	    -ex "set logging on" \
-	    -ex "show logging file"
-	+set logging off
-	+show logging file
-	Future logs will be written to gdb.txt.
-	+set logging on
-	+show logging file
-	Currently logging to "gdb.txt".
-	...
-
-	After that commit we have instead:
-	...
-	+set logging off
-	+show logging file
-	The current logfile is "gdb.txt".
-	+set logging on
-	+show logging file
-	The current logfile is "gdb.txt".
-	...
-
-	Before the commit, whether logging is enabled or not can be deduced from the
-	output of the command.  After the commit, the message is unified and it's no
-	longer clear whether logging is enabled or not.
-
-	Fix this by:
-	- adding a new command "show logging enabled"
-	- adding a corresponding new command "set logging enabled on/off"
-	- making the commands "set logging on/off" deprecated aliases of the
-	  "set logging enabled on/off" command.
-
-	Update the docs and testsuite to use "set logging enabled".  Mention the new
-	and deprecated commands in NEWS.
-
-	Tested on x86_64-linux.
-
-2021-11-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Fix typo in logging overwrite help text
-	Currently we have:
-	...
-	$ gdb -q -batch -ex "help set logging overwrite"
-	Set whether logging overwrites or appends to the log file.
-	If set, logging overrides the log file.
-	...
-
-	Fix overrides -> overwrites typo.
-
-2021-11-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-24  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix help doc for "set index-cache enabled"
-	When implementing this command, I put "help doc" as a placeholder for
-	the help string, and forgot to update it.  Change it for a real help
-	string.
-
-	Change-Id: Id23c2142c5073dc570bd8a706e9ec6fa8c40eb09
-
-2021-11-24  Simon Marchi  <simon.marchi@efficios.com>
-
-	Revert (part of) "gdb fix for catch-syscall.exp"
-	This reverts (par of) commit ab198279120fe7937c0970a8bb881922726678f9.
-	This commit changed what the test expects when catching the execve
-	syscall based on the behavior seen on a Linux PowerPC machine.  That is,
-	we get an "entry" event, but no "return" event.  This is not what we get
-	on Linux with other architectures, though, and it seems like a
-	PowerPC-specific bug.
-
-	Revert the part of the patch related to this, but not the other hunk.
-
-	Change-Id: I4248776e4299f10999487be96d4acd1b33639996
-
-2021-11-24  Nick Clifton  <nickc@redhat.com>
-
-	Fix an illegal memory access parsing a corrupt sysroff file.
-		PR 28564
-		* sysdump.c (getCHARS): Check for an out of bounds read.
-
-2021-11-24  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: fix crash when reading ECOFF debug information
-	In commit:
-
-	  commit 633cf2548bcd3dafe297e21a1dd3574240280d48
-	  Date:   Wed May 9 15:42:28 2018 -0600
-
-	      Remove cleanups from mdebugread.c
-
-	the following change was made in the function parse_partial_symbols in
-	mdebugread.c:
-
-	  -  fdr_to_pst = XCNEWVEC (struct pst_map, hdr->ifdMax + 1);
-	  -  old_chain = make_cleanup (xfree, fdr_to_pst);
-	  +  gdb::def_vector<struct pst_map> fdr_to_pst_holder (hdr->ifdMax + 1);
-	  +  fdr_to_pst = fdr_to_pst_holder.data ();
-
-	The problem with this change is that XCNEWVEC calls xcalloc, which in
-	turn calls calloc, and calloc zero initializes the allocated memory.
-	In contrast, the new line gdb::def_vector<struct pst_map> specifically
-	does not initialize the underlying memory.
-
-	This is a problem because, later on in this same function, we
-	increment the n_globals field within 'struct pst_map' objects stored
-	in the vector.  The incrementing is now being done from an
-	uninitialized starting point.
-
-	In this commit we switch from using gdb::def_vector to using
-	std::vector, this alone should be enough to ensure that the fields are
-	initialized to zero.
-
-	However, for extra clarity, I have also added initial values in the
-	'struct pst_map' to make it crystal clear how the struct will start
-	up.
-
-	This issue was reported on the mailing list here:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-November/183693.html
-
-	Co-Authored-By: Lightning <lightningth@gmail.com>
-
-2021-11-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-23  Alexandra Hájková  <ahajkova@redhat.com>
-
-	configure.ac: Check for the readline.h explicitly
-	When readline development package is missing make fails with
-	"configure: error: system readline is not new enough" which
-	might be confusing. This patch checks for the readline.h explicitly
-	and makes make to warn about the missing package.
-
-2021-11-23  Tamar Christina  <tamar.christina@arm.com>
-
-	AArch64: Add support for AArch64 EFI (efi-*-aarch64).
-	This adds support for efi-*-aarch64 by virtue of adding a new PEI target
-	pei-aarch64-little.  This is not a full target and only exists to support EFI
-	at this time.
-
-	This means that this target does not support relocation processing and is mostly
-	a container format.  This format has been added to elf based aarch64 targets
-	such that efi images can be made natively on Linux.
-
-	However this target is not valid for use with gas but only with objcopy.
-
-	With these changes the resulting file is recognized as an efi image by
-	third party tools:
-
-	>  pecli info hello.efi
-
-	Metadata
-	================================================================================
-	MD5:            598c32a778b0f0deebe977fef8578c4e
-	SHA1:           4580121edd5cb4dc40f51b28f171fd15250df84c
-	SHA256:         3154bd7cf42433d1c957f6bf55a17ad8c57ed41b29df2d485703349fd6ff1d5c
-	Imphash:
-	Size:           47561 bytes
-	Type:           PE32+ executable (EFI application) (stripped to external PDB), for MS Windows
-	Compile Time:   1970-01-01 00:00:00 (UTC - 0x0       )
-	Entry point:    0x2000 (section .text)
-
-	Sections
-	================================================================================
-	Name      RWX  VirtSize   VirtAddr   RawAddr   RawSize   Entropy  md5
-	.text     R-X  0x5bb0     0x2000     0x400     0x5c00      6.39 551fbc264256a3f387de8a891500ae0d
-	.reloc    R--  0xc        0x8000     0x6000    0x200       0.02 0c45f6d812d079821c1d54c09ab89e1d
-	.data     RW-  0x1d88     0x9000     0x6200    0x1e00      4.18 5d1137c09f01289dc62bf754f7290db3
-	.dynamic  RW-  0xf0       0xb000     0x8000    0x200       0.34 5c94ed3206f05a277e6f04fbf131f131
-	.rela     R--  0xe58      0xc000     0x8200    0x1000      1.87 8b5c6bc30f3acb7ca7bf2e6789d68519
-	.dynsym   R--  0x138      0xd000     0x9200    0x200       0.96 bdcf5101da51aadc663ca8859f88138c
-
-	Imports
-	================================================================================
-
-	Any magic number is based on the Microsoft PE specification [1].
-
-	[1] https://docs.microsoft.com/en-us/windows/win32/debug/pe-format
-
-	bfd/ChangeLog:
-
-	2021-10-21  Tamar Christina  <tamar.christina@arm.com>
-
-		PR binutils/26206
-		* .gitignore (pe-aarch64igen.c): New.
-		* Makefile.am (pei-aarch64.lo, pe-aarch64igen.lo, pei-aarch64.c,
-		pe-aarch64igen.c): Add support.
-		* Makefile.in: Likewise.
-		* bfd.c (bfd_get_sign_extend_vma): Add pei-aarch64-little.
-		* coff-aarch64.c: New file.
-		* coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
-		coff_write_object_contents) Add aarch64 (aarch64_pei_vec) support.
-		* config.bfd: Likewise.
-		* configure: Likewise.
-		* configure.ac: Likewise.
-		* libpei.h (GET_OPTHDR_IMAGE_BASE, PUT_OPTHDR_IMAGE_BASE,
-		GET_OPTHDR_SIZE_OF_STACK_RESERVE, PUT_OPTHDR_SIZE_OF_STACK_RESERVE,
-		GET_OPTHDR_SIZE_OF_STACK_COMMIT, PUT_OPTHDR_SIZE_OF_STACK_COMMIT,
-		GET_OPTHDR_SIZE_OF_HEAP_RESERVE, PUT_OPTHDR_SIZE_OF_HEAP_RESERVE,
-		GET_OPTHDR_SIZE_OF_HEAP_COMMIT, PUT_OPTHDR_SIZE_OF_HEAP_COMMIT,
-		GET_PDATA_ENTRY, _bfd_peAArch64_bfd_copy_private_bfd_data_common,
-		_bfd_peAArch64_bfd_copy_private_section_data,
-		_bfd_peAArch64_get_symbol_info, _bfd_peAArch64_only_swap_filehdr_out,
-		_bfd_peAArch64_print_private_bfd_data_common,
-		_bfd_peAArch64i_final_link_postscript,
-		_bfd_peAArch64i_only_swap_filehdr_out, _bfd_peAArch64i_swap_aouthdr_in,
-		_bfd_peAArch64i_swap_aouthdr_out, _bfd_peAArch64i_swap_aux_in,
-		_bfd_peAArch64i_swap_aux_out, _bfd_peAArch64i_swap_lineno_in,
-		_bfd_peAArch64i_swap_lineno_out, _bfd_peAArch64i_swap_scnhdr_out,
-		_bfd_peAArch64i_swap_sym_in, _bfd_peAArch64i_swap_sym_out,
-		_bfd_peAArch64i_swap_debugdir_in, _bfd_peAArch64i_swap_debugdir_out,
-		_bfd_peAArch64i_write_codeview_record,
-		_bfd_peAArch64i_slurp_codeview_record,
-		_bfd_peAArch64_print_ce_compressed_pdata): New.
-		* peXXigen.c (_bfd_XXi_swap_aouthdr_in, _bfd_XXi_swap_aouthdr_out,
-		pe_print_pdata, _bfd_XX_print_private_bfd_data_common,
-		_bfd_XX_bfd_copy_private_section_data, _bfd_XXi_final_link_postscript):
-		Support COFF_WITH_peAArch64,
-		* pei-aarch64.c: New file.
-		* peicode.h (coff_swap_scnhdr_in, pe_ILF_build_a_bfd, pe_ILF_object_p):
-		Support COFF_WITH_peAArch64.
-		(jtab): Add dummy entry that traps.
-		* targets.c (aarch64_pei_vec): New.
-
-	binutils/ChangeLog:
-
-	2021-10-21  Tamar Christina  <tamar.christina@arm.com>
-
-		PR binutils/26206
-		* NEWS: Add new support.
-		* objcopy.c (convert_efi_target): Add efi-*-aarch64 support.
-		* testsuite/binutils-all/aarch64/pei-aarch64-little.d: New test.
-		* testsuite/binutils-all/aarch64/pei-aarch64-little.s: New test.
-
-	include/ChangeLog:
-
-	2021-10-21  Tamar Christina  <tamar.christina@arm.com>
-
-		PR binutils/26206
-		* coff/aarch64.h: New file.
-		* coff/pe.h (IMAGE_FILE_MACHINE_ARM64): New.
-
-2021-11-23  Alan Modra  <amodra@gmail.com>
-
-	binutils debuginfod test
-	A missing "return" resulted in this non-ELF fail:
-	x86_64-w64-mingw32  +FAIL: debuginfod (create separate debug info file)
-
-	Also, the debuginfod I have installed does not appear to handle
-	non-native ELF objects, so only run the test when native.
-
-		* testsuite/binutils-all/debuginfod.exp: Don't run test unless
-		native ELF.
-
-2021-11-23  Alan Modra  <amodra@gmail.com>
-
-	Update bug reporting address
-	https://sourceware.org/bugzilla/ everywhere
-
-	bfd/
-		* configure.ac (ACX_BUGURL): Set to https://sourceware.org/bugzilla/
-		* po/Make-in (msgid-bugs-address): Likewise.
-		* README: Report bugs to the above.
-		* configure: Regenerate.
-	binutils/
-		* po/Make-in (msgid-bugs-address): Update.
-	gas/
-		* README: Update bug address.  Delete mention of gcc.
-		* po/Make-in: Update bug address.
-	gold/
-		* po/Make-in: Update bug address.
-	gprof/
-		* po/Make-in: Update bug address.
-	ld/
-		* po/Make-in: Update bug address.
-	opcodes/
-		* po/Make-in: Update bug address.
-
-2021-11-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
-
-	gdb: more compile fixes for gnu-nat.c
-	This fixes compile errors like
-
-	    ../../gdb-11.1/gdb/gnu-nat.c: In function void add_task_commands():
-	    ../../gdb-11.1/gdb/gnu-nat.c:3204:17: error: no matching function for call to add_cmd(const char [8], command_class, cmd_list_element*&, char*, cmd_list_element**)
-	     3204 |         &setlist);
-	          |                 ^
-	    In file included from ../../gdb-11.1/gdb/completer.h:21,
-	                     from ../../gdb-11.1/gdb/symtab.h:36,
-	                     from ../../gdb-11.1/gdb/infrun.h:21,
-	                     from ../../gdb-11.1/gdb/target.h:42,
-	                     from ../../gdb-11.1/gdb/inf-child.h:23,
-	                     from ../../gdb-11.1/gdb/gnu-nat.h:38,
-	                     from ../../gdb-11.1/gdb/gnu-nat.c:24:
-	    ../../gdb-11.1/gdb/command.h:160:33: note: candidate: cmd_list_element* add_cmd(const char*, command_class, void (*)(const char*, int), const char*, cmd_list_element**)
-	      160 | extern struct cmd_list_element *add_cmd (const char *, enum command_class,
-	          |                                 ^~~~~~~
-	    ../../gdb-11.1/gdb/command.h:161:30: note:   no known conversion for argument 3 from cmd_list_element* to void (*)(const char*, int)
-	      161 |       cmd_const_cfunc_ftype *fun,
-	          |       ~~~~~~~~~~~~~~~~~~~~~~~^~~
-	    ../../gdb-11.1/gdb/command.h:167:33: note: candidate: cmd_list_element* add_cmd(const char*, command_class, const char*, cmd_list_element**)
-	      167 | extern struct cmd_list_element *add_cmd (const char *, enum command_class,
-	          |                                 ^~~~~~~
-	    ../../gdb-11.1/gdb/command.h:167:33: note:   candidate expects 4 arguments, 5 provided
-	    ../../gdb-11.1/gdb/gnu-nat.c:3210:18: error: no matching function for call to add_cmd(const char [8], command_class, cmd_list_element*&, char*, cmd_list_element**)
-	     3210 |         &showlist);
-	          |                  ^
-
-	Change-Id: Ie9029363d3fb40e34e8f5b1ab503745bc44bfe3f
-
-2021-11-23  Andrea Monaco  <andrea.monaco@autistici.org>
-
-	gnu-nat.c: fix calls to add_info_alias
-	Some time ago add_info_alias was changed (commit
-	e0f25bd9717c7973197095523db7c1cdc956cea2).  These calls were not updated
-	and caused errors on compilation.
-
-	Change-Id: I354ae4e8b8926d785abc94ec7142471ffd76d2de
-
-2021-11-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-22  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: pass more const target_waitstatus by reference
-	While working on target_waitstatus changes, I noticed a few places where
-	const target_waitstatus objects could be passed by reference instead of
-	by pointers.  And in some cases, places where a target_waitstatus could
-	be passed as const, but was not.  Convert them as much as possible.
-
-	Change-Id: Ied552d464be5d5b87489913b95f9720a5ad50c5a
-
-2021-11-22  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: introduce target_waitkind_str, use it in target_waitstatus::to_string
-	I would like to print target_waitkind values in debug messages, so I
-	think that a target_waitkind-to-string function would be useful.  While
-	at it, use it in target_waitstatus::to_string.  This changes the output
-	of target_waitstatus::to_string a bit, but I think it is for the better.
-	The debug messages will show a string matching exactly the
-	target_waitkind enumerator (minus the TARGET_WAITKIND prefix).
-
-	As a convenience, make string_appendf return the same reference to
-	string it got as a parameter.  This allows doing this:
-
-	  return string_appendf (str, "foo");
-
-	... keeping the code concise.
-
-	Change-Id: I383dffc9c78614e7d0668b1516073905e798eef7
-
-2021-11-22  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: rename target_waitstatus_to_string to target_waitstatus::to_string
-	Make target_waitstatus_to_string a "to_string" method of
-	target_waitstatus, a bit like we have ptid_t::to_string already.  This
-	will save a bit of typing.
-
-	Change-Id: Id261b7a09fa9fa3c738abac131c191a6f9c13905
-
-2021-11-22  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Removed the redundant NULL pointer check in the riscv_update_subset.
-	If we always use the .option arch to call the riscv_update_subset, then
-	it is almost impossible that the input string will be NULL.  Therefore,
-	just remove the redundant NULL pointer check in the riscv_update_subset.
-
-	bfd/
-		* elfxx-riscv.c (riscv_update_subset): Removed the redundant NULL
-		pointer check.
-
-2021-11-22  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Replace .option rvc/norvc with .option arch, +c/-c.
-	Since the .option rvc/norvc directives are obsolete, replace them with
-	the new proposed diretives: .option arch, +c/-c.  And also reset the
-	riscv_opts.rvc flag for the .option arch directives.
-
-	gas/
-		* config/tc-riscv.c (s_riscv_option): Reset the riscv_opts.rvc
-		for the .option arch directives.
-		* testsuite/gas/riscv/align-1.s: Replace the obsolete .option
-		rvc/norvc with .option arch, +c/-c.
-		* testsuite/gas/riscv/c-add-addi.s: Likewise.
-		* testsuite/gas/riscv/c-nonzero-imm.s: Likewise.
-		* testsuite/gas/riscv/c-nonzero-reg.s: Likewise.
-		* testsuite/gas/riscv/c-zero-imm-64.s: Likewise.
-		* testsuite/gas/riscv/c-zero-imm.s: Likewise.
-		* testsuite/gas/riscv/c-zero-reg.s: Likewise.
-		* testsuite/gas/riscv/ext.s: Likewise.
-		* testsuite/gas/riscv/mapping-01.s: Likewise.
-		* testsuite/gas/riscv/mapping-02.s: Likewise.
-		* testsuite/gas/riscv/mapping-03.s: Likewise.
-		* testsuite/gas/riscv/mapping-04.s: Likewise.
-		* testsuite/gas/riscv/no-relax-align-2.s: Likewise.
-		* testsuite/gas/riscv/shamt-32.s: Likewise.
-		* testsuite/gas/riscv/shamt-64.s: Likewise.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix x86_64 x32 build
-	A build error on x86_64 with x32 abi was reported here (
-	https://sourceware.org/pipermail/gdb/2021-November/049787.html ):
-	...
-	gdb/nat/amd64-linux-siginfo.c:280:42: error: \
-	  'struct compat_x32_siginfo_t::<unnamed union>::<unnamed>' has no member \
-	  named 'si_addr_bnd'
-	280 | #define cpt_si_lower _sifields._sigfault.si_addr_bnd._lower
-	| ^~~~~~~~~~~
-	gdb/nat/amd64-linux-siginfo.c:337:38: note: in expansion of macro 'cpt_si_lower'
-	337 | to->cpt_si_lower = from_ptrace.cpt_si_lower;
-	| ^~~~~~~~~~~~
-	...
-
-	The problem is that code added in commit d3d7d1ba3bb "[gdb/tdep] Handle
-	si_addr_bnd in compat_siginfo_from_siginfo" doesn't compile on an x86_64 x32
-	setup, because compat_x32_siginfo_t doesn't have the si_addr_bnd fields.
-
-	Fix this conservatively by disabling the code for x32.
-
-	Tested on x86_64-linux.
-
-2021-11-22  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: PR28610, Fix ASAN heap-buffer-overflow error in riscv_update_subset.
-	The architecture parser in riscv_update_subset shouldn't check (or access)
-	the pointer space which doesn't exist.
-
-	bfd/
-		pr 28610
-		* elfxx-riscv.c (riscv_update_subset): The architecture parser
-		shouldn't access the pointer space which doesn't exist.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Support .debug_line with DW_FORM_line_strp
-	I noticed a new gcc option -gdwarf64 and tried it out (using gcc 11.2.1).
-
-	With a test-case hello.c:
-	...
-	int
-	main (void)
-	{
-	  printf ("hello\n");
-	  return 0;
-	}
-	...
-	compiled like this:
-	...
-	$ gcc -g -gdwarf64 ~/hello.c
-	...
-	I ran into:
-	...
-	$ gdb -q -batch a.out
-	DW_FORM_line_strp pointing outside of .debug_line_str section \
-	  [in module a.out]
-	...
-
-	Debugging gdb revealed that the string offset is:
-	...
-	(gdb) up
-	    objfile=0x182ab70, str_offset=1378684502312,
-	    form_name=0xeae9b5 "DW_FORM_line_strp")
-	    at src/gdb/dwarf2/section.c:208
-	208         error (_("%s pointing outside of %s section [in module %s]"),
-	(gdb) p /x str_offset
-	$1 = 0x14100000128
-	(gdb)
-	...
-	which is read when parsing a .debug_line entry at 0x1e0.
-
-	Looking with readelf at the 0x1e0 entry, we have:
-	...
-	 The Directory Table (offset 0x202, lines 2, columns 1):
-	  Entry Name
-	  0     (indirect line string, offset: 0x128): /data/gdb_versions/devel
-	  1     (indirect line string, offset: 0x141): /home/vries
-	...
-	which in a hexdump looks like:
-	...
-	  0x00000200 1f022801 00004101 00000201 1f020f02
-	...
-
-	What happens is the following:
-	- readelf interprets the DW_FORM_line_strp reference to .debug_line_str as
-	  a 4 byte value, and sees entries 0x00000128 and 0x00000141.
-	- gdb instead interprets it as an 8 byte value, and sees as first entry
-	  0x0000014100000128, which is too big so it bails out.
-
-	AFAIU, gdb is wrong.  It assumes DW_FORM_line_strp is 8 bytes on the basis
-	that the corresponding CU is 64-bit DWARF.  However, the .debug_line
-	contribution has it's own initial_length field, and encodes there that it's
-	32-bit DWARF.
-
-	Fix this by using the correct offset size for DW_FORM_line_strp references
-	in .debug_line.
-
-	Note: the described test-case does trigger this complaint (both with and
-	without this patch):
-	...
-	$ gdb -q -batch -iex "set complaints 10" a.out
-	During symbol reading: intermixed 32-bit and 64-bit DWARF sections
-	...
-
-	The reason that the CU has 64-bit dwarf is because -gdwarf64 was passed to
-	gcc.  The reason that the .debug_line entry has 32-bit dwarf is because that's
-	what gas generates.  Perhaps this is complaint-worthy, but I don't think it
-	is wrong.
-
-	Tested on x86_64-linux, using native and target board dwarf64.exp.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add target board dwarf64.exp
-	Add a new target board dwarf64.exp, that runs test with -gdwarf64.
-
-	Tested on x86_64-linux.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Support .debug_line v5 in dwarf assembler
-	The v5 section version for .debug_line has:
-	- two new fields address_size and segment_selector_size
-	- a different way to encode the directory and filename tables.
-
-	Add support for this in the dwarf assembler.
-
-	For now, make the v5 directory and filename tables work with the v4 type of
-	specification in the test-cases by adding duplicate entries at position 0.
-
-	This will need to be properly fixed with an intrusive fix that changes how
-	directory and filename entries are specified in the test-cases, f.i:
-	...
-	set diridx [include_dir "${srcdir}/${subdir}"]
-	set fileidx [file_name "$srcfile" $diridx]
-	...
-
-	Tested on x86_64-linux.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Factor out _line_finalize_header
-	Rather than generate dwarf immediately in procs include_dir and file_name,
-	postpone generation and store the data in variables.  Then handle the
-	generation in a new proc _line_finalize_header.
-
-	Tested on x86-64-linux.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Support .debug_line v4 in dwarf assembler
-	The .debug_line header got a new field in v4:
-	maximum_operations_per_instruction.
-
-	Generate this field in the dwarf assembler, for now hardcoding the value to 1,
-	meaning non-VLIW.
-
-	Tested on x86_64-linux.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add test-case gdb.dwarf2/dw2-lines.exp
-	Add a new test-case gdb.dwarf2/dw2-lines.exp that tests various .debug_line
-	sections.
-
-	Tested on x86_64-linux.
-
-2021-11-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Speed up MACRO_AT_* calls
-	Currently, for each MACRO_AT_range or MACRO_AT_func in dwarf assembly the
-	following is done:
-	- $srcdir/$subdir/$srcfile is compiled to an executable using
-	  flags "debug"
-	- a new gdb instance is started
-	- the new executable is loaded.
-
-	This is inefficient, because the executable is identical within the same
-	Dwarf::assemble call.
-
-	Share the gdb instance in the same Dwarf::assemble invocation, which speeds
-	up a make check with RUNTESTFLAGS like this to catch all dwarf assembly
-	test-cases:
-	...
-	rtf=$(echo $(cd src/gdb/testsuite; find gdb.* -type f -name "*.exp" \
-	      | xargs grep -l Dwarf::assemble))
-	...
-	from:
-	...
-	real    1m39.916s
-	user    1m25.668s
-	sys     0m21.377s
-	...
-	to:
-	...
-	real    1m29.512s
-	user    1m17.316s
-	sys     0m19.100s
-	...
-
-	Tested on x86_64-linux.
-
-2021-11-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-21  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Remove duplicates in gdb.base/catch-signal.exp
-	When running the testsuite I have the following:
-
-	    Running .../gdb/testsuite/gdb.base/catch-signal.exp ...
-	    DUPLICATE: gdb.base/catch-signal.exp: SIGHUP: continue
-	    DUPLICATE: gdb.base/catch-signal.exp: SIGHUP: continue
-	    DUPLICATE: gdb.base/catch-signal.exp: 1: continue
-	    DUPLICATE: gdb.base/catch-signal.exp: 1: continue
-	    DUPLICATE: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
-	    DUPLICATE: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
-
-	This patch removes DUPLICATE in gdb.base/catch-signal.exp by explicitly
-	giving names to the offending 'gdb_test "continue"' statements to make
-	them distinct.
-
-	Tested on x86_64-linux.
-
-2021-11-21  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: v850: fix cpu_option testsuite handling
-	The v850 testsuite code has been testing the $opt variable, but this
-	was never actually set anywhere globally or v850-specific.  Instead,
-	this was a random variable leaking out of the sh testsuite code.  As
-	far as I can tell, it has always been this way.  That means the code
-	only ever tested the v850 cpu target (which is the default).
-
-	This failure can be easily seen in practice by running the v850 code
-	in isolation and seeing it crash:
-	$ runtest v850/allinsns.exp
-	...
-	Running target unix
-	Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
-	Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
-	Using ../../../sim/testsuite/config/default.exp as tool-and-target-specific interface file.
-	WARNING: Assuming target board is the local machine (which is probably wrong).
-	You may need to set your DEJAGNU environment variable.
-	Running ../../../sim/testsuite/v850/allinsns.exp ...
-	ERROR: tcl error sourcing ../../../sim/testsuite/v850/allinsns.exp.
-	ERROR: tcl error code TCL LOOKUP VARNAME opt
-	ERROR: can't read "opt": no such variable
-	    while executing
-	"switch -regexp -- $opt {
-
-	Backing up a bit, the reason for this logic in the first place is
-	because the common sim testsuite code makes an assumption about the
-	assembler options with cpu_option -- the option and its value are
-	always separated by an =.  This is not the case with v850.  So tweak
-	the core sim logic a bit to support omitting the = so that we can
-	switch v850 to the standard all_machs setting and avoid opt entirely.
-
-2021-11-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-20  Jeff Law  <jeffreyalaw@gmail.com>
-
-	    Fix intermittent failures on the H8, particularly H8/SX tests.
-	    The upstream GCC tester has  showed spurious execution failures on the
-	    H8 target for the H8/SX multilibs. I suspected memory corruption or an
-	    uninitialized variable early as the same binary would sometimes work and
-	    sometimes it got the wrong result. Worse yet, the point where the test
-	    determined it was getting the wrong result would change.
-
-	    Because it only happened on the H8/SX variant I was able to zero in on
-	    the "mova" support and the "short form" of those instructions in particular.
-
-	    As the code stands it checks if code->op3.type == 0 to try and identify cases
-	    where op3 wasn't filled in and thus we've got the short form of the mova
-	    instruction.
-
-	    But for the short-form of those instructions we never set any of the "op3"
-	    data structure. We get whatever was lying around -- it's usually zero and
-	     thus things usually work, but if the stale data was nonzero, then we'd
-	    fail to recognize the instruction as a short-form and fail to set up the
-	    various fields appropriately.
-
-	    I initially initialized the op3.type field to zero, but didn't like that
-	     because it was inconsistent with how other operands were initialized.
-	    Bringing consistency meant using -1 as the initializer value and adjusting
-	    the check for short form mova appropriately.
-
-	    I've had this in the upstream GCC tester for perhaps a year at this point
-	    and haven't seen any of the intermittent failures again.
-
-2021-11-20  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: fix array-view compilation with c++11 && _GLIBCXX_DEBUG
-	When building with -std=c++11 and -D_GLIBCXX_DEBUG=1, we get some errors
-	like:
-
-	      CXX    unittests/array-view-selftests.o
-	    In file included from /home/smarchi/src/binutils-gdb/gdb/utils.h:25,
-	                     from /home/smarchi/src/binutils-gdb/gdb/defs.h:630,
-	                     from /home/smarchi/src/binutils-gdb/gdb/unittests/array-view-selftests.c:20:
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/array-view.h: In instantiation of constexpr gdb::array_view<T> gdb::array_view<T>::slice(gdb::array_view<T>::size_type, gdb::array_view<T>::size_type) const [with T = unsigned char; gdb::array_view<T>::size_type = long unsigned int:
-	    /home/smarchi/src/binutils-gdb/gdb/unittests/array-view-selftests.c:532:29:   required from here
-	    /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/array-view.h:192:3: error: body of constexpr function constexpr gdb::array_view<T> gdb::array_view<T>::slice(gdb::array_view<T>::size_type, gdb::array_view<T>::size_type) const [with T = unsigned char; gdb::array_view<T>::size_type = long unsigned int not a return-statement
-	      192 |   }
-	          |   ^
-
-	This is because constexpr functions in c++11 can only consist of a
-	single return statement, so we can't have the gdb_assert in there.  Make
-	the gdb_assert presence conditional to the __cplusplus version, to
-	enable it only for c++14 and later.
-
-	Change-Id: I2ac33f7b4bd1765ddc3ac8d07445b16ac1f340f0
-
-2021-11-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Check if libsource-highlight is usable
-	When building gdb with g++ 4.8.5, I ran into:
-	...
-	ld: source-cache.o: in function `source_cache::ensure(symtab*)':
-	source-cache.c:207: undefined reference to \
-	  srchilite::SourceHighlight::SourceHighlight(std::string const&)
-	...
-
-	[ I configured gdb without explicit settings related to source-highlight, so
-	we're excercising the enable_source_highlight=auto scenario. ]
-
-	The problem is that:
-	- the source-highlight library is build with system compiler
-	  g++ 7.5.0 which uses the new libstdc++ library abi (see
-	  https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html )
-	- gdb is build using g++ 4.8.5 which uses the old abi.
-
-	[ There's a compatibility macro _GLIBCXX_USE_CXX11_ABI, but that doesn't work
-	for this case.  Instead, it enables the opposite case where the
-	source-highlight library is build with g++ 4.8.5 and gdb is build with
-	g++ 7.5.0. ]
-
-	Fix this by checking whether the source-highlight library is usable during
-	configuration.
-
-	In the enable_source_highlight=auto scenario, this allows the build to skip
-	the unusable library and finish successfully.
-
-	In the enable_source_highlight=yes scenario, this allows the build to error
-	out earlier.
-
-	Tested on x86_64-linux.
-
-2021-11-20  Clément Chigot  <clement.chigot@atos.net>
-
-	bfd: remove wrong comment in xcofflink.c
-	This comment was long time ago associated to the function
-	"xcoff_build_ldsyms" which have since been replaced by
-	"xcoff_build_ldsym".
-
-		* xcofflink.c: Remove wrong comment.
-
-2021-11-20  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: bfin: fix short --env usage in testsuite
-	Now that we have more than one option that matches "--env", the test
-	config here doesn't work.  Use the explicit --environment.
-
-2021-11-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	elfedit: Align --[in|out]put-abiversion usage
-	Align
-
-	  --input-abiversion [0-255]  Set input ABIVERSION
-	  --output-abiversion [0-255] Set output ABIVERSION
-
-	instead of
-
-	  --input-abiversion [0-255]
-	                              Set input ABIVERSION
-	  --output-abiversion [0-255]
-	                              Set output ABIVERSION
-
-		* elfedit.c (usage): Align --[in|out]put-abiversion usage.
-
-2021-11-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle runto fail in gdb.mi/mi-var-cp.exp
-	On OBS I ran into:
-	...
-	PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:81 (set breakpoint)
-	UNRESOLVED: gdb.mi/mi-var-cp.exp: unable to start target
-	...
-	followed by 81 FAILs and two more UNRESOLVEDs.
-
-	I didn't manage to reproduce this, but I did notice that the initial
-	problem causing the UNRESOLVED caused all subsequent UNRESOLVEDs and FAILs.
-
-	I emulated the problem by commenting out the send_gdb "run\n" in
-	mi_run_cmd_full.
-
-	Fix this by:
-	- handling mi_run_cmd failure in mi_get_inline_test
-	- handling mi_run_inline_test failure in gdb.mi/mi-var-cp.exp, and
-	  other test-cases using mi_get_inline_test
-
-	Tested on x86_64-linux.
-
-2021-11-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix 64-bit dwarf test-cases with -m32
-	When running test-case gdb.dwarf2/loc-sec-offset.exp with target board -m32,
-	I run into:
-	...
-	builtin_spawn -ignore SIGHUP gcc -fno-stack-protector -m32 \
-	  -fdiagnostics-color=never -c -o loc-sec-offset-dw641.o \
-	  loc-sec-offset-dw64.S^M
-	as: loc-sec-offset-dw641.o: unsupported relocation type: 0x1^M
-	loc-sec-offset-dw64.S: Assembler messages:^M
-	loc-sec-offset-dw64.S:29: Error: cannot represent relocation type \
-	  BFD_RELOC_64^M
-	...
-
-	Looking at line 29, we have:
-	...
-	        .8byte        .Labbrev1_begin   /* Abbrevs */
-	...
-
-	It would be nice if the assembler could handle this somehow.  But I guess
-	it's not unreasonable that an assembler for a 32-bit architecture will object
-	to handling 64-bit labels.
-
-	Instead, work around this in the dwarf assembler by emitting:
-	...
-	        .4byte        .Labbrev1_begin   /* Abbrevs (lsw) */
-	        .4byte        0                 /* Abbrevs (msw) */
-	...
-
-	Tested on x86_64-linux with target board unix/-m32.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28383
-
-2021-11-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/thread-specific-bp.exp
-	On OBS I ran into a failure in test-case gdb.threads/thread-specific-bp.exp:
-	...
-	(gdb) PASS: gdb.threads/thread-specific-bp.exp: non-stop: continue to end
-	info breakpoint^M
-	Num     Type           Disp Enb Address            What^M
-	1       breakpoint     keep y   0x0000555555555167 in main at $src:36^M
-	        breakpoint already hit 1 time^M
-	2       breakpoint     keep y   0x0000555555555151 in start at $src:23^M
-	        breakpoint already hit 1 time^M
-	3       breakpoint     keep y   0x0000555555555167 in main at $src:36 thread 2^M
-	        stop only in thread 2^M
-	4       breakpoint     keep y   0x000055555555515c in end at $src:29^M
-	        breakpoint already hit 1 time^M
-	(gdb) [Thread 0x7ffff7db1640 (LWP 19984) exited]^M
-	Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M
-	FAIL: gdb.threads/thread-specific-bp.exp: non-stop: \
-	  thread-specific breakpoint was deleted (timeout)
-	...
-
-	Fix this by waiting for the "[Thread 0x7ffff7db1640 (LWP 19984) exited]"
-	message before issuing the "info breakpoint command".
-
-	Tested on x86_64-linux.
-
-2021-11-19  Christina Schimpe  <christina.schimpe@intel.com>
-
-	gdb/testsuite: Extend tests for print of cv qualifiers
-	This commit supplements whatis and ptype command tests for print of
-	const-volatile qualifiers.
-
-	gdb/testsuite/ChangeLog:
-	2021-11-16  Christina Schimpe  <christina.schimpe@intel.com>
-
-		* gdb.cp/ptype-cv-cp.cc: New const and volatile typedef
-		  variables.
-		* gdb.cp/ptype-cv-cp.exp: Add new tests.
-
-2021-11-19  Christina Schimpe  <christina.schimpe@intel.com>
-
-	gdb: Print cv qualifiers if class attributes are substituted
-	Make ptype print const/volatile qualifiers when template or typedef
-	attributes are substituted.
-
-	For a programm like
-	~~~
-	template<typename DataT>
-	class Cfoo
-	{
-	  typedef float myfloat;
-	public:
-	  DataT me0;
-	  const DataT me1=1;
-	  const myfloat me2=2.0;
-	};
-
-	int main()
-	{
-	  Cfoo<int> cfoo;
-	  return 0;
-	}
-	~~~
-
-	gdb outputs the following type for cfoo's attributes:
-
-	~~~
-	(gdb) b 14
-	Breakpoint 1 at 0x1170: file tmp.cc, line 14.
-	(gdb) run
-	Starting program: /tmp
-
-	Breakpoint 1, main () at tmp.cc:14
-	14        return 0;
-	(gdb) ptype cfoo
-	type = class Cfoo<int> [with DataT = int] {
-	  public:
-	    DataT me0;
-	    DataT me1;
-	    myfloat me2;
-
-	  private:
-	    typedef float myfloat;
-	}
-
-	~~~
-
-	The cv qualifiers (const in this case) are ignored for me1 and me2.
-
-	After:
-	~~~
-	(gdb) ptype cfoo
-	type = class Cfoo<int> [with DataT = int] {
-	  public:
-	    DataT me0;
-	    const DataT me1;
-	    const myfloat me2;
-
-	  private:
-	    typedef float myfloat;
-	}
-	~~~
-
-	gdb/ChangeLog:
-	2021-11-16  Christina Schimpe  <christina.schimpe@intel.com>
-
-		* gdb/c-typeprint.c: Print cv qualifiers in case of parameter
-		  substitution.
-
-	gdb/testsuite/ChangeLog:
-	2021-11-16  Christina Schimpe  <christina.schimpe@intel.com>
-
-		* gdb.cp/templates.cc: 	New template class Cfoo with const,
-		  template, typdef and integer attributes.
-		* gdb.cp/templates.exp: Add new test using ptype and ptype/r
-		  commmands for template class CFoo.
-
-2021-11-19  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Support new .option arch directive.
-	https://github.com/riscv/riscv-asm-manual/pull/67
-
-	Format:
-	.option arch, +<extension><version>, ...
-	.option arch, -<extension>
-	.option arch, =<ISA string>
-
-	The new direcitve is used to enable/disable extensions for the specific
-	code region.  For example,
-
-	.attribute arch, "rv64ic"   # arch = rv64i2p0_c2p0
-	.option push
-	.option arch, +d2p0, -c     # arch = rv64i2p0_f2p0_d2p0, f is added implied
-	.option arch, =rv32gc       # arch = rv32i2p0_m2p0_a2p0_f2p0_d2p0_c2p0
-	.option pop                 # arch = rv64i2p0_c2p0
-
-	Note that,
-	1. ".option rvc/norvc" have the same behavior as ".option arch +c/-c".
-	2. ".option arch -i" is illegal, since we cannot remove base i extension.
-	3. If arch=rv64i2p0, then ".option arch, +i3p0" will update the i's version
-	   from 2.0 to 3.0.
-	4. If arch=rv64i3p0, then ".option arch, +i" will update the i's version
-	   from 2.0 to the default one according to the chosen isa spec.
-
-	bfd/
-		* elfxx-riscv.c (riscv_add_subset): If the subset is already added,
-		and the new versions are not RISCV_UNKNOWN_VERSION, then update the
-		versions to the subset list.
-		(riscv_copy_subset): New function.  Copy the subset from list.
-		(riscv_copy_subset_list): New function.  Return the new copyed list.
-		(riscv_update_subset): Updated to make .option arch directives workable.
-		* elfxx-riscv.h: Updated.
-	gas/
-		* config/tc-riscv.c (riscv_subsets): Defined as a pointer.
-		(riscv_rps_as): Init the subset_list to NULL, we will set it later
-		once riscv_opts_stack is created or updated.
-		(struct riscv_option_stack, riscv_opts_stack): Moved forward.
-		(riscv_set_arch): Updated.
-		(s_riscv_option): Support new .option arch directive, to add, remove
-		or update subsets for the specific code region.
-		(riscv_write_out_attrs): Updated.
-		* doc/c-riscv.texi: Added document for new .option arch directive.
-		* testsuite/gas/riscv/option-arch-01a.d: New testcase.
-		* testsuite/gas/riscv/option-arch-01b.d: Likewise.
-		* testsuite/gas/riscv/option-arch-01.s: Likewise..
-		* testsuite/gas/riscv/option-arch-02.d: Likewise.
-		* testsuite/gas/riscv/option-arch-02.s: Likewise.
-		* testsuite/gas/riscv/option-arch-fail.d: Likewise.
-		* testsuite/gas/riscv/option-arch-fail.l: Likewise.
-		* testsuite/gas/riscv/option-arch-fail.s: Likewise.
-
-2021-11-19  Alan Modra  <amodra@gmail.com>
-
-	Re: Add multibyte character warning option to the assembler.
-	On hppa*-hp-hpux* run_dump_test edits the test file, adjusting .comm
-	directives to suit those target's unusual syntax.  Thus gas is passed
-	a temporary file name.
-
-		* testsuite/gas/all/multibyte1.l: Ignore file name.
-
-2021-11-19  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: install various doc files
-
-2021-11-19  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Support STO_RISCV_VARIANT_CC and DT_RISCV_VARIANT_CC.
-	This is the original discussion,
-	https://github.com/riscv/riscv-elf-psabi-doc/pull/190
-
-	And here is the glibc part,
-	https://sourceware.org/pipermail/libc-alpha/2021-August/129931.html
-
-	For binutils part, we need to support a new direcitve: .variant_cc.
-	The function symbol marked by .variant_cc means it need to be resolved
-	directly without resolver for dynamic linker.  We also add a new dynamic
-	entry, STO_RISCV_VARIANT_CC, to indicate there are symbols with the
-	special attribute in the dynamic symbol table of the object.
-
-	I heard that llvm already have supported this in their mainline, so
-	I think it's time to commit this.
-
-	bfd/
-		* elfnn-riscv.c (riscv_elf_link_hash_table): Added variant_cc
-		flag. It is used to check if relocations for variant CC symbols
-		may be present.
-		(allocate_dynrelocs): If the symbol has STO_RISCV_VARIANT_CC
-		flag, then raise the variant_cc flag of riscv_elf_link_hash_table.
-		(riscv_elf_size_dynamic_sections): Added dynamic entry for
-		variant_cc.
-		(riscv_elf_merge_symbol_attribute): New function, used to merge
-		non-visibility st_other attributes, including STO_RISCV_VARIANT_CC.
-	binutils/
-		* readelf.c (get_riscv_dynamic_type): New function.
-		(get_dynamic_type): Called get_riscv_dynamic_type for riscv targets.
-		(get_riscv_symbol_other): New function.
-		(get_symbol_other): Called get_riscv_symbol_other for riscv targets.
-	gas/
-		* config/tc-riscv.c (s_variant_cc): Marked symbol that it follows a
-		variant CC convention.
-		(riscv_elf_copy_symbol_attributes): Same as elf_copy_symbol_attributes,
-		but without copying st_other.  If a function symbol has special st_other
-		value set via directives, then attaching an IFUNC resolver to that symbol
-		should not override the st_other setting.
-		(riscv_pseudo_table): Support variant_cc diretive.
-		* config/tc-riscv.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Defined.
-		* testsuite/gas/riscv/variant_cc-set.d: New testcase.
-		* testsuite/gas/riscv/variant_cc-set.s: Likewise.
-		* testsuite/gas/riscv/variant_cc.d: Likewise.
-		* testsuite/gas/riscv/variant_cc.s: Likewise.
-	include/
-		* elf/riscv.h (DT_RISCV_VARIANT_CC): Defined to (DT_LOPROC + 1).
-		(STO_RISCV_VARIANT_CC): Defined to 0x80.
-	ld/
-		* testsuite/ld-riscv-elf/variant_cc-1.s: New testcase.
-		* testsuite/ld-riscv-elf/variant_cc-2.s: Likewise.
-		* testsuite/ld-riscv-elf/variant_cc-now.d: Likewise.
-		* testsuite/ld-riscv-elf/variant_cc-r.d: Likewise.
-		* testsuite/ld-riscv-elf/variant_cc-shared.d: Likewise.
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
-
-2021-11-19  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: use program_transform_name for libsim
-	Instead of always using target_alias as a prefix on the name, use
-	program_transform_name instead so that the library is scoped in the
-	same way as the run program.
-
-	sim: avoid installing headers when there is no sim
-	If we aren't building any sims, don't install the sim headers as they
-	won't be useful to anyone.
-
-2021-11-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-18  Kevin Buettner  <kevinb@redhat.com>
-
-	dprintf-execution-x-script.exp: Adjust test for native-extended-gdbserver
-	Without this commit, doing...
-
-	make check RUNTESTFLAGS="--target_board=native-extended-gdbserver" \
-	           TESTS="gdb.base/dprintf-execution-x-script.exp"
-
-	...will show one failure.
-
-	Here's a snippet from gdb.log showing the circumstances - I've trimmed
-	the paths for readability:
-
-	builtin_spawn gdb -nw -nx -data-directory data-directory -iex set height 0 -iex set width 0 -iex set auto-connect-native-target off -iex set sysroot -ex set height unlimited -x testsuite/gdb.base/dprintf-execution-x-script.gdb --args testsuite/outputs/gdb.base/dprintf-execution-x-script/dprintf-execution-x-script
-	...
-	Reading symbols from testsuite/outputs/gdb.base/dprintf-execution-x-script/dprintf-execution-x-script...
-	Dprintf 1 at 0x40116e: file testsuite/gdb.base/dprintf-execution-x-script.c, line 38.
-	Breakpoint 2 at 0x40113a: file testsuite/gdb.base/dprintf-execution-x-script.c, line 26.
-	testsuite/gdb.base/dprintf-execution-x-script.gdb:21: Error in sourced command file:
-	Don't know how to run.  Try "help target".
-	(gdb) FAIL: gdb.base/dprintf-execution-x-script.exp: load and run script with -x
-	...
-	GNU gdb (GDB) 12.0.50.20211118-git
-	Copyright (C) 2021 Free Software Foundation, Inc.
-	...
-	(gdb) set height 0
-	(gdb) set width 0
-	(gdb) builtin_spawn gdbserver/gdbserver --once --multi localhost:2346
-	Listening on port 2346
-	target extended-remote localhost:2346
-	Remote debugging using localhost:2346
-	...
-	[Tests after this point will pass.]
-
-	Note that the command which spawns gdb prevents the gdb script from
-	using the native target via "-iex set auto-connect-native-target off".
-
-	Moreover, the script in question contains a "run" command, so GDB
-	doesn't know how to run (since it's prevented from using the native
-	target and no alternate "target" command has been issued.  But, once
-	GDB finishes starting up, the test will spawn a gdbserver and then
-	connect to it.  The other (two) tests after this point both pass.
-
-	I've fixed this by using gdb_test_multiple instead of gdb_test.
-	When a "Don't know how to run message" is received, the test is
-	unsupported.
-
-	I've also added a comment explaining the reason for needing to check
-	for "Don't know how to run" despite bailing out at the top of the test
-	via:
-
-	  if ![target_can_use_run_cmd] {
-	      return 0
-	  }
-
-2021-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix array-view-selftests.c build with g++ 4.8
-	When building with g++ 4.8, I get:
-
-	    CXX    unittests/array-view-selftests.o
-	  /home/smarchi/src/binutils-gdb/gdb/unittests/array-view-selftests.c:123:42: error: expected 'class' before 'Container'
-	   template<template<typename ...> typename Container>
-						    ^
-
-	I am no C++ template expert, but it looks like if I change "typename" for
-	"class", as the compiler kind of suggests, the code compiles.
-
-	Change-Id: I9c3edd29fb2b190069f0ce0dbf3bc3604d175f48
-
-2021-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix ia64-tdep.c build with g++ 4.8
-	When building with g++ 4.8, I get:
-
-	      CXX    ia64-tdep.o
-	    /home/smarchi/src/binutils-gdb/gdb/ia64-tdep.c:3862:1: error: could not convert '{ia64_allocate_new_rse_frame, ia64_store_argument_in_slot, ia64_set_function_addr}' from '<brace
-	-enclosed initializer list>' to 'const ia64_infcall_ops'
-	     };
-	     ^
-
-	This happens since commit 345bd07cce3 ("gdb: fix gdbarch_tdep ODR
-	violation"), which added default values for ia64_infcall_ops fields.  It
-	looks like g++ 4.8 doesn't like initializing the ia64_infcall_ops object
-	using the brace-enclosed initializer list when the ia64_infcall_ops
-	fields are assigned default values.
-
-	Later compilers don't have a problem with that, so I suppose that the
-	code is correct, but still, change it to make gcc 4.8 happy.  Don't
-	initialize the fields of ia64_infcall_ops directly, instead
-	default-initialize ia64_gdbarch_tdep::infcall_ops.
-
-	Change-Id: I35e3a61abd7b7bbcafe6cb207078c738c5266d76
-
-2021-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: move AIX_TEXT_SEGMENT_BASE to rs6000-aix-tdep.c, remove rs6000-tdep.h
-	The contents of rs6000-tdep.h (AIX_TEXT_SEGMENT_BASE) is AIX-specific,
-	so I thought that this file should be named rs6000-aix-tdep.h.  But
-	there's already a rs6000-aix-tdep.h, so then I though
-	AIX_TEXT_SEGMENT_BASE should simply be moved there, and rs6000-tdep.h
-	deleted.  But then I realized that AIX_TEXT_SEGMENT_BASE is only used in
-	rs6000-aix-tdep.c, so move it to the beginning of that file.
-
-	Change-Id: Ia212c6fae202f31aedb46575821cd642beeda7a3
-
-2021-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: rename rs6000-nat.c to rs6000-aix-nat.c
-	This file seems to be AIX-specific, according to its contents and
-	configure.nat.  Rename it to rs6000-aix-nat.c, to make that clear (and
-	to follow the convention).
-
-	Change-Id: Ib418dddc6b79b2e28f64431121742b5e87f5f4f5
-
-2021-11-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/doc] Fix negative repeat count examining memory example
-	The documentation for the examining memory command x contains an example:
-	...
-	You can also specify a negative repeat count to examine memory backward from
-	the given address.  For example, 'x/-3uh 0x54320' prints three halfwords (h)
-	at 0x54314, 0x54328, and 0x5431c.
-	...
-
-	The 0x54328 looks like a typo, which was intended to be 0x54318.
-
-	But the series uses a 4-byte distance, while the halfword size used in the
-	command means a 2-byte distance, so the series should be:
-	...
-	0x5431a, 0x5431c, and 0x5431e.
-	...
-
-	Fix this by updating the addresses in the example accordingly.
-
-	Reported here ( https://sourceware.org/pipermail/gdb/2021-November/049784.html
-	).
-
-2021-11-18  Nick Clifton  <nickc@redhat.com>
-
-	Add multibyte character warning option to the assembler.
-		* as.c (parse_args): Add support for --multibyte-handling.
-		* as.h (multibyte_handling): Declare.
-		* app.c (scan_for_multibyte_characters): New function.
-		(do_scrub_chars): Call the new function if multibyte warning is
-		enabled.
-		* input-scrub,c (input_scrub_next_buffer): Call the multibyte
-		scanning function if multibyte warnings are enabled.
-		* symbols.c (struct symbol_flags): Add multibyte_warned bit.
-		(symbol_init): Call the multibyte scanning function if multibyte
-		symbol warnings are enabled.
-		(S_SET_SEGMENT): Likewise.
-		* NEWS: Mention the new feature.
-		* doc/as.texi: Document the new feature.
-		* testsuite/gas/all/multibyte.s: New test source file.
-		* testsuite/gas/all/multibyte1.d: New test driver file.
-		* testsuite/gas/all/multibyte1.l: New test expected output.
-		* testsuite/gas/all/multibyte2.d: New test driver file.
-		* testsuite/gas/all/multibyte2.l: New test expected output.
-		* testsuite/gas/all/gas.exp: Run the new tests.
-
-2021-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: include gdbarch.h in all files extending gdbarch_tdep
-	Commit 345bd07cce33 ("gdb: fix gdbarch_tdep ODR violation") made a bunch
-	of files define a *_gdbarch_tdep class that inherits from a gdbarch_tdep
-	base.  But some of these files don't include gdbarch.h, where
-	gdbarch_tdep is defined.  This may cause build errors if gdbarch.h isn't
-	already included by chance by some other header file.  Avoid this by
-	making them include gdbarch.h.
-
-	Change-Id: If433d302007e274daa4f656cfc94f769cf1aa68a
-
-2021-11-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: make gdb_assert_not_reached accept a format string
-	Change gdb_assert_not_reached to accept a format string plus
-	corresponding arguments.  This allows giving more precise messages.
-
-	Because the format string passed by the caller is prepended with a "%s:"
-	to add the function name, the callers can no longer pass a translated
-	string (`_(...)`).  Make the gdb_assert_not_reached include the _(),
-	just like the gdb_assert_fail macro just above.
-
-	Change-Id: Id0cfda5a57979df6cdaacaba0d55dd91ae9efee7
-
-2021-11-18  Carl Love  <cel@us.ibm.com>
-
-	gdb fix for catch-syscall.exp
-	Remove check_continue "execve" from Proc test_catch_syscall_execve.
-
-	The check_continue proceedure checs that the command, execve, starts and
-	checks for the return from the command.  The execve command starts a new
-	program and thus the return from the command causing the test to fail.
-
-	The call to proc check_continue "execve" is removed and replaced with
-	just the call to check_call_to_syscall "execve" to verify the command
-	executed.  The next test in proc test_catch_syscall_execve verifies that
-	the new program started and hit the break point in main.
-
-	Update the check for the PowerPC architecture.  Power Little Endian systems
-	include "le" in the name.  The istarget "power64-*-linux*" check fails to
-	match LE sytems.  The expected string is updated to capture both Big Endian
-	and Little Endian systems.  Power 10 LE istarget prints as:
-	powerpc64le-unknown-linux-gnu.
-
-	This patch fixes three failures and the error:
-
-	    ERROR: can't read "arch1": no such variable
-
-	Patch tested on Power 10 ppc64le GNU/Linux platform.
-
-2021-11-18  Carl Love  <cel@us.ibm.com>
-
-	gdb: PowerPC fix gdb.base/break-interp.exp
-	This patch fixes eight test failures on PowerPC for the test
-	gdb.base/break-interp.exp. The patch adds a funtion and registers it to
-	setup the displaced stepping for ppc-linux platform.  The patch moves the
-	struct ppc_inferior_data to the ppc-tdep.h include file to make it visible
-	to the ppc-linux-tdep.c and rs6000-tdep.c files.  Additionally the function
-	get_ppc_per_inferior is made external in ppc-tdep.h to make it visible in
-	both files.
-
-	Tested on Power 10 ppc64le-linux with no regressions.
-
-2021-11-18  Carl Love  <cel@us.ibm.com>
-
-	gdb fix PowerPC test gdb.arch/ppc-longdouble.exp
-	The test complains of duplicate tests.
-
-	DUPLICATE: gdb.arch/ppc-longdouble.exp: continue to breakpoint: return
-
-	The do_test calls gdb_continue_to_breakpoint "return".  The duplicates
-	are the result of calling do_test three times with different arguments.
-
-	This patch fixes the duplicate tests by adding $name to the
-	gdb_continue_to_breakpoint argument.
-
-	Patch tested on Power 10  ppc64le GNU/Linux, no duplicate tests reported,
-	no new regression errors.
-
-2021-11-18  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf/x86: Issue an error on discarded output .plt section
-	Issue an error, instead of crash, on discarded output .plt section.
-
-	bfd/
-
-		PR ld/28597
-		* elf32-i386.c (elf_i386_finish_dynamic_sections): Issue an error
-		on discarded output .plt section.
-		* elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Likewise.
-
-	ld/
-
-		PR ld/28597
-		* testsuite/ld-elf/pr28597.d: New file.
-		* testsuite/ld-elf/pr28597.s: Likewise.
-		* testsuite/ld-elf/pr28597.t: Likewise.
-
-2021-11-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add missing wait in gdb.base/signals-state-child.exp
-	On OBS I ran into:
-	...
-	(gdb) shell diff -s outputs/gdb.base/signals-state-child/standalone.txt \
-	  outputs/gdb.base/signals-state-child/gdb.txt^M
-	diff: outputs/gdb.base/signals-state-child/standalone.txt: \
-	  No such file or directory^M
-	(gdb) FAIL: gdb.base/signals-state-child.exp: signals states are identical
-	...
-
-	I managed to reproduce this by adding "sleep (5)" at the start of main in
-	signals-state-child.c.
-
-	Fix this by waiting on the result of the spawned command.
-
-	Tested on x86_64-linux.
-
-2021-11-18  Alan Modra  <amodra@gmail.com>
-
-	Re: Don't compile some opcodes files when bfd is 32-bit only
-	Put bpf back in the 32-bit targets, even though bpf requires a 64-bit
-	bfd.  bpf sim support apparently works without being 64-bit.
-
-		* Makefile.am (TARGET64_LIBOPCODES_CFILES): Move bpf files..
-		(TARGET32_LIBOPCODES_CFILES): ..to here.
-		* Makefile.in: Regenerate.
-
-2021-11-18  Alan Modra  <amodra@gmail.com>
-
-	Pass DEBUGINFOD_CFLAGS when compiling dwarf.c
-	Pick up the elfutils/debuginfod.h install location -I flags from
-	a variable set by debuginfod.m4 (via pkg.m4 and pkg-config).
-
-		* Makefile.am (DEBUGINFOD_CFLAGS): Define.
-		(dwarf.@OBJECT@): New rule.
-
-2021-11-18  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Add testcases for z[fdq]inx
-	Use gpr when the zfinx enable, the testcases contain float
-	instructions that reuse by z[fdq]inx.
-
-	gas/ChangeLog:
-
-	* testsuite/gas/riscv/zdinx.d: New test.
-	* testsuite/gas/riscv/zdinx.s: New test.
-	* testsuite/gas/riscv/zfinx.d: New test.
-	* testsuite/gas/riscv/zfinx.s: New test.
-	* testsuite/gas/riscv/zqinx.d: New test.
-	* testsuite/gas/riscv/zqinx.s: New test.
-
-	Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
-
-2021-11-18  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Add instructions and operand set for z[fdq]inx
-	Reuse float instructions in INSN_CLASS_F/D/Q, use riscv_subset_supports to
-	verify if z*inx enabled and use gpr instead of fpr when z*inx is enable.
-
-	bfd/ChangeLog:
-
-	* elfxx-riscv.c (riscv_multi_subset_supports): Added support for
-	  z*inx extension.
-
-	gas/ChangeLog:
-
-	* config/tc-riscv.c (riscv_ip): Added register choice for z*inx.
-
-	include/ChangeLog:
-
-	* opcode/riscv.h (enum riscv_insn_class): Reused INSN_CLASS_* for z*inx.
-
-	opcodes/ChangeLog:
-
-	* riscv-dis.c (riscv_disassemble_insn): Added disassemble check for
-	  z*inx.
-	* riscv-opc.c: Reused INSN_CLASS_* for z*inx.
-
-	Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
-
-2021-11-18  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Add mininal support for z[fdq]inx
-	Minimal support for zfinx, zdinx, zqinx. Like f/d/q, the zqinx
-	imply zdinx and zdinx imply zfinx, where zfinx are not compatible
-	with f/d/q.
-
-	bfd/ChangeLog:
-
-	* elfxx-riscv.c (riscv_implicit_subsets): Added implicit rules
-	for z*inx extensions.
-	(riscv_supported_std_z_ext): Added entries for z*inx.
-	(riscv_parse_check_conflicts): Added conflict check for z*inx.
-
-	Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
-
-2021-11-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] SVE2 instructions added to support SME
-	This patch is adding new SVE2 instructions added to support SME extension.
-	The following SVE2 instructions are added by the SME architecture:
-	* PSEL,
-	* REVD, SCLAMP and UCLAMP.
-
-	gas/ChangeLog:
-
-		* config/tc-aarch64.c (parse_sme_pred_reg_with_index):
-		New parser.
-		(parse_operands): New parser.
-		* testsuite/gas/aarch64/sme-9-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-9-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-9-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-9.d: New test.
-		* testsuite/gas/aarch64/sme-9.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/aarch64.h (enum aarch64_opnd): New operand
-		AARCH64_OPND_SME_PnT_Wm_imm.
-
-	opcodes/ChangeLog:
-
-		* aarch64-asm.c (aarch64_ins_sme_pred_reg_with_index):
-		New inserter.
-		* aarch64-dis.c (aarch64_ext_sme_pred_reg_with_index):
-		New extractor.
-		* aarch64-opc.c (aarch64_print_operand): Printout of
-		OPND_SME_PnT_Wm_imm.
-		* aarch64-opc.h (enum aarch64_field_kind): New bitfields
-		FLD_SME_Rm, FLD_SME_i1, FLD_SME_tszh, FLD_SME_tszl.
-		* aarch64-tbl.h (OP_SVE_NN_BHSD): New qualifier.
-		(OP_SVE_QMQ): New qualifier.
-		(struct aarch64_opcode): New instructions PSEL, REVD,
-		SCLAMP and UCLAMP.
-		aarch64-asm-2.c: Regenerate.
-		aarch64-dis-2.c: Regenerate.
-		aarch64-opc-2.c: Regenerate.
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] Add new SME system registers
-	This patch is adding miscellaneous SME related system registers.
-
-	gas/ChangeLog:
-
-		* testsuite/gas/aarch64/sme-sysreg.d: New test.
-		* testsuite/gas/aarch64/sme-sysreg.s: New test.
-		* testsuite/gas/aarch64/sme-sysreg-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-sysreg-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-sysreg-illegal.s: New test.
-
-	opcodes/ChangeLog:
-
-		* aarch64-opc.c: New system registers id_aa64smfr0_el1,
-		smcr_el1, smcr_el12, smcr_el2, smcr_el3, smpri_el1,
-		smprimap_el2, smidr_el1, tpidr2_el0 and mpamsm_el1.
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] Add SME mode selection and state access instructions
-	This patch is adding new SME mode selection and state access instructions:
-	* Add SMSTART and SMSTOP instructions.
-	* Add SVCR system register.
-
-	gas/ChangeLog:
-
-		* config/tc-aarch64.c (parse_sme_sm_za): New parser.
-		(parse_operands): New parser.
-		* testsuite/gas/aarch64/sme-8-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-8-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-8-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-8.d: New test.
-		* testsuite/gas/aarch64/sme-8.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/aarch64.h (enum aarch64_opnd): New operand
-		AARCH64_OPND_SME_SM_ZA.
-		(enum aarch64_insn_class): New instruction classes
-		sme_start and sme_stop.
-
-	opcodes/ChangeLog:
-
-		* aarch64-asm.c (aarch64_ins_pstatefield): New inserter.
-		(aarch64_ins_sme_sm_za): New inserter.
-		* aarch64-dis.c (aarch64_ext_imm): New extractor.
-		(aarch64_ext_pstatefield): New extractor.
-		(aarch64_ext_sme_sm_za): New extractor.
-		* aarch64-opc.c (operand_general_constraint_met_p):
-		New pstatefield value for SME instructions.
-		(aarch64_print_operand): Printout for OPND_SME_SM_ZA.
-		(SR_SME): New register SVCR.
-		* aarch64-opc.h (F_REG_IN_CRM): New register endcoding.
-		* aarch64-opc.h (F_IMM_IN_CRM): New immediate endcoding.
-		(PSTATE_ENCODE_CRM): Encode CRm field.
-		(PSTATE_DECODE_CRM): Decode CRm field.
-		(PSTATE_ENCODE_CRM_IMM): Encode CRm immediate field.
-		(PSTATE_DECODE_CRM_IMM): Decode CRm immediate field.
-		(PSTATE_ENCODE_CRM_AND_IMM): Encode CRm and immediate
-		field.
-		* aarch64-tbl.h (struct aarch64_opcode): New SMSTART
-		and SMSTOP instructions.
-		aarch64-asm-2.c: Regenerate.
-		aarch64-dis-2.c: Regenerate.
-		aarch64-opc-2.c: Regenerate.
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] Add LD1x, ST1x, LDR and STR instructions
-	This patch is adding new loads and stores defined by SME instructions.
-
-	gas/ChangeLog:
-
-		* config/tc-aarch64.c (parse_sme_address): New parser.
-		(parse_sme_za_hv_tiles_operand_with_braces): New parser.
-		(parse_sme_za_array): New parser.
-		(output_operand_error_record): Print error details if
-		present.
-		(parse_operands): Support new operands.
-		* testsuite/gas/aarch64/sme-5-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-5-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-5-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-5.d: New test.
-		* testsuite/gas/aarch64/sme-5.s: New test.
-		* testsuite/gas/aarch64/sme-6-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-6-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-6-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-6.d: New test.
-		* testsuite/gas/aarch64/sme-6.s: New test.
-		* testsuite/gas/aarch64/sme-7-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-7-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-7-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-7.d: New test.
-		* testsuite/gas/aarch64/sme-7.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/aarch64.h (enum aarch64_opnd): New operands.
-		(enum aarch64_insn_class): Added sme_ldr and sme_str.
-		(AARCH64_OPDE_UNTIED_IMMS): New operand error kind.
-
-	opcodes/ChangeLog:
-
-		* aarch64-asm.c (aarch64_ins_sme_za_hv_tiles): New inserter.
-		(aarch64_ins_sme_za_list): New inserter.
-		(aarch64_ins_sme_za_array): New inserter.
-		(aarch64_ins_sme_addr_ri_u4xvl): New inserter.
-		* aarch64-asm.h (AARCH64_DECL_OPD_INSERTER): Added
-		ins_sme_za_list, ins_sme_za_array and ins_sme_addr_ri_u4xvl.
-		* aarch64-dis.c (aarch64_ext_sme_za_hv_tiles): New extractor.
-		(aarch64_ext_sme_za_list): New extractor.
-		(aarch64_ext_sme_za_array): New extractor.
-		(aarch64_ext_sme_addr_ri_u4xvl): New extractor.
-		* aarch64-dis.h (AARCH64_DECL_OPD_EXTRACTOR): Added
-		ext_sme_za_list, ext_sme_za_array and ext_sme_addr_ri_u4xvl.
-		* aarch64-opc.c (operand_general_constraint_met_p):
-		(aarch64_match_operands_constraint): Handle sme_ldr, sme_str
-		and sme_misc.
-		(aarch64_print_operand): New operands supported.
-		* aarch64-tbl.h (OP_SVE_QUU): New qualifier.
-		(OP_SVE_QZU): New qualifier.
-		aarch64-asm-2.c: Regenerate.
-		aarch64-dis-2.c: Regenerate.
-		aarch64-opc-2.c: Regenerate.
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] Add ZERO instruction
-	This patch is adding ZERO (a list of 64-bit element ZA tiles)
-	instruction.
-
-	gas/ChangeLog:
-
-		* config/tc-aarch64.c (parse_sme_list_of_64bit_tiles):
-		New parser.
-		(parse_operands): Handle OPND_SME_list_of_64bit_tiles.
-		* testsuite/gas/aarch64/sme-4-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-4-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-4-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-4.d: New test.
-		* testsuite/gas/aarch64/sme-4.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/aarch64.h (enum aarch64_opnd): New operand
-		AARCH64_OPND_SME_list_of_64bit_tiles.
-
-	opcodes/ChangeLog:
-
-		* aarch64-opc.c (print_sme_za_list): New printing function.
-		(aarch64_print_operand): Handle OPND_SME_list_of_64bit_tiles.
-		* aarch64-opc.h (enum aarch64_field_kind): New bitfield
-		FLD_SME_zero_mask.
-		* aarch64-tbl.h (struct aarch64_opcode): New ZERO instruction.
-		aarch64-asm-2.c: Regenerate.
-		aarch64-dis-2.c: Regenerate.
-		aarch64-opc-2.c: Regenerate.
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] Add MOV and MOVA instructions
-	This patch is adding new MOV (alias) and MOVA SME instruction.
-
-	gas/ChangeLog:
-
-		* config/tc-aarch64.c (enum sme_hv_slice): new enum.
-		(struct reloc_entry): Added ZAH and ZAV registers.
-		(parse_sme_immediate): Immediate parser.
-		(parse_sme_za_hv_tiles_operand): ZA tile parser.
-		(parse_sme_za_hv_tiles_operand_index): Index parser.
-		(parse_operands): Added ZA tile parser calls.
-		(REGNUMS): New macro. Regs with suffix.
-		(REGSET16S): New macro. 16 regs with suffix.
-		* testsuite/gas/aarch64/sme-2-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-2-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-2-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-2.d: New test.
-		* testsuite/gas/aarch64/sme-2.s: New test.
-		* testsuite/gas/aarch64/sme-2a.d: New test.
-		* testsuite/gas/aarch64/sme-2a.s: New test.
-		* testsuite/gas/aarch64/sme-3-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-3-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-3-illegal.s: New test.
-		* testsuite/gas/aarch64/sme-3.d: New test.
-		* testsuite/gas/aarch64/sme-3.s: New test.
-		* testsuite/gas/aarch64/sme-3a.d: New test.
-		* testsuite/gas/aarch64/sme-3a.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/aarch64.h (enum aarch64_opnd): New enums
-		AARCH64_OPND_SME_ZA_HV_idx_src and
-		AARCH64_OPND_SME_ZA_HV_idx_dest.
-		(struct aarch64_opnd_info): New ZA tile vector struct.
-
-	opcodes/ChangeLog:
-
-		* aarch64-asm.c (aarch64_ins_sme_za_hv_tiles):
-		New inserter.
-		* aarch64-asm.h (AARCH64_DECL_OPD_INSERTER):
-		New inserter ins_sme_za_hv_tiles.
-		* aarch64-dis.c (aarch64_ext_sme_za_hv_tiles):
-		New extractor.
-		* aarch64-dis.h (AARCH64_DECL_OPD_EXTRACTOR):
-		New extractor ext_sme_za_hv_tiles.
-		* aarch64-opc.c (aarch64_print_operand):
-		Handle SME_ZA_HV_idx_src and SME_ZA_HV_idx_dest.
-		* aarch64-opc.h (enum aarch64_field_kind): New enums
-		FLD_SME_size_10, FLD_SME_Q, FLD_SME_V and FLD_SME_Rv.
-		(struct aarch64_operand): Increase fields size to 5.
-		* aarch64-tbl.h (OP_SME_BHSDQ_PM_BHSDQ): New qualifiers
-		aarch64-asm-2.c: Regenerate.
-		aarch64-dis-2.c: Regenerate.
-		aarch64-opc-2.c: Regenerate.
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] Add SME instructions
-	Patch is adding new SME matrix instructions. Please note additional
-	instructions will be added in following patches.
-
-	gas/ChangeLog:
-
-		* config/tc-aarch64.c (parse_sme_zada_operand):
-		New parser.
-		* config/tc-aarch64.c (parse_reg_with_qual):
-		New reg parser.
-		* config/tc-aarch64.c (R_ZA): New egister type.
-		(parse_operands): New parser.
-		* testsuite/gas/aarch64/sme-illegal.d: New test.
-		* testsuite/gas/aarch64/sme-illegal.l: New test.
-		* testsuite/gas/aarch64/sme-illegal.s: New test.
-		* testsuite/gas/aarch64/sme.d: New test.
-		* testsuite/gas/aarch64/sme.s: New test.
-		* testsuite/gas/aarch64/sme-f64.d: New test.
-		* testsuite/gas/aarch64/sme-f64.s: New test.
-		* testsuite/gas/aarch64/sme-i64.d: New test.
-		* testsuite/gas/aarch64/sme-i64.s: New test.
-
-	include/ChangeLog:
-
-		* opcode/aarch64.h (enum aarch64_opnd): New operands
-		AARCH64_OPND_SME_ZAda_2b, AARCH64_OPND_SME_ZAda_3b and
-		AARCH64_OPND_SME_Pm.
-		(enum aarch64_insn_class): New instruction class sme_misc.
-
-	opcodes/ChangeLog:
-
-		* aarch64-opc.c (aarch64_print_operand):
-		Print OPND_SME_ZAda_2b and OPND_SME_ZAda_3b operands.
-		(verify_constraints): Handle OPND_SME_Pm.
-		* aarch64-opc.h (enum aarch64_field_kind):
-		New bit fields FLD_SME_ZAda_2b, FLD_SME_ZAda_3b and FLD_SME_Pm.
-		* aarch64-tbl.h (OP_SME_ZADA_PN_PM_ZN_S): New qualifier set.
-		(OP_SME_ZADA_PN_PM_ZN_D): New qualifier.
-		(OP_SME_ZADA_PN_PM_ZN_ZM): New qualifier.
-		(OP_SME_ZADA_S_PM_PM_S_S): New qualifier.
-		(OP_SME_ZADA_D_PM_PM_D_D): New qualifier.
-		(OP_SME_ZADA_S_PM_PM_H_H): New qualifier.
-		(OP_SME_ZADA_S_PM_PM_B_B): New qualifier.
-		(OP_SME_ZADA_D_PM_PM_H_H): New qualifier.
-		(SME_INSN): New instruction macro.
-		(SME_F64_INSN): New instruction macro.
-		(SME_I64_INSN): New instruction macro.
-		(SME_INSNC): New instruction macro.
-		(struct aarch64_opcode): New SME instructions.
-		aarch64-asm-2.c: Regenerate.
-		aarch64-dis-2.c: Regenerate.
-		aarch64-opc-2.c: Regenerate.
-
-2021-11-17  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: [SME] Add +sme option to -march
-	This series of patches (tagged [SME]) add support for the Scalable
-	Matrix Extension. Patch introduces new command line options: +sme, +sme-f64 and
-	+sme-i64 to -march command line options.
-
-	gas/ChangeLog:
-
-		* NEWS: Updated docs.
-		* config/tc-aarch64.c: New SME command line options.
-		* doc/c-aarch64.texi: Update docs.
-
-	include/ChangeLog:
-
-		* opcode/aarch64.h (AARCH64_FEATURE_SME): New flag.
-		(AARCH64_FEATURE_SME_F64): New flag.
-		(AARCH64_FEATURE_SME_I64): New flag.
-
-	opcodes/ChangeLog:
-
-		* aarch64-tbl.h (SME): New feature object.
-
-2021-11-17  Jeremy Drake  <cygwin@jdrake.com>
-
-	Set the default DLL chracteristics to 0 for Cygwin based targets.
-		* emultempl/pep.em (DEFAULT_DLL_CHARACTERISTICS): Set to 0 for
-		Cygwin targets.
-		* emultempl/pep.em (DEFAULT_DLL_CHARACTERISTICS): Likewise.
-
-2021-11-17  Nick Clifton  <nickc@redhat.com>
-
-	Fix the linker script parser so that it will recognise the PT_GNU_RELRO segment type, and the linker itself so that it will gracefully handle being unable to assign any sections to such a segment.
-		PR 28452
-	bfd	* elf.c (assign_file_positions_for_non_load_sections): Replace
-		assertion with a warning message.
-
-	ld	* ldgram.y: Add support for PT_GNU_RELRO and PT_GNU_PROPERTY.
-		* ldgram.c: Regenerate.
-
-2021-11-17  Andreas Arnez  <arnez@linux.ibm.com>
-
-	[gdb/build, s390x] Fix build after gdbarch_tdep changes
-	Commit 345bd07cce33 ("gdb: fix gdbarch_tdep ODR violation") changes a
-	declaration in s390-tdep.h from
-
-	   struct gdbarch_tdep { ... };
-
-	to
-
-	   struct s390_gdbarch_tdep : gdbarch_tdep { ... };
-
-	and now requires that gdbarch_tdep has been declared before.  Which is
-	usually the case, except when compiling s390-linux-nat.c, where
-	s390-tdep.h is included before gdbarch.h.  Thus the s390x build errors out
-	with the compiler complaining about a missing class name after the colon.
-
-	Fix this in s390-linux-nat.c, by including gdbarch.h before s390-tdep.h.
-
-2021-11-17  Luis Machado  <luis.machado@linaro.org>
-
-	Expose the BTI BTYPE more explicitly in the registers
-	Augment the register description XML to expose the BTI BTYPE field contained
-	in the CPSR register. It will be displayed like so:
-
-	cpsr           0x60001000          [ EL=0 BTYPE=0 SSBS C Z ]
-
-2021-11-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	elfedit: Add --output-abiversion option to update ABIVERSION
-		* NEWS: Mention --output-abiversion.
-		* elfedit.c (input_elf_abiversion): New.
-		(output_elf_abiversion): Likewise.
-		(update_elf_header): Update EI_ABIVERSION.
-		(command_line_switch): Add OPTION_INPUT_ABIVERSION and
-		OPTION_OUTPUT_ABIVERSION.
-		(options): Add --input-abiversion and --output-abiversion.
-		(usage): Likewise.
-		(main): Handle --input-abiversion and --output-abiversion.
-		* doc/binutils.texi: Document --input-abiversion and
-		--output-abiversion.
-		* testsuite/binutils-all/elfedit.exp: Run elfedit-6.
-		* testsuite/binutils-all/elfedit-6.d: New file.
-
-2021-11-17  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Support rvv extension with released version 1.0.
-	2021-11-17  Jim Wilson  <jimw@sifive.com>
-	            Kito Cheng  <kito.cheng@sifive.com>
-	            Nelson Chu  <nelson.chu@sifive.com>
-
-	This patch is porting from the following riscv github,
-	https://github.com/riscv/riscv-binutils-gdb/tree/rvv-1.0.x
-
-	And here is the vector spec,
-	https://github.com/riscv/riscv-v-spec
-
-	bfd/
-		* elfxx-riscv.c (riscv_implicit_subsets): Added imply rules
-		of v, zve and zvl extensions.
-		(riscv_supported_std_ext): Updated verison of v to  1.0.
-		(riscv_supported_std_z_ext): Added zve and zvl extensions.
-		(riscv_parse_check_conflicts): The zvl extensions need to
-		enable either v or zve extension.
-		(riscv_multi_subset_supports): Check the subset list to know
-		if the INSN_CLASS_V and INSN_CLASS_ZVEF instructions are supported.
-	gas/
-		* config/tc-riscv.c (enum riscv_csr_class): Added CSR_CLASS_V.
-		(enum reg_class): Added RCLASS_VECR and RCLASS_VECM.
-		(validate_riscv_insn): Check whether the rvv operands are valid.
-		(md_begin): Initialize register hash for rvv registers.
-		(macro_build): Added rvv operands when expanding rvv pseudoes.
-		(vector_macro): Expand rvv macros into one or more instructions.
-		(macro): Likewise.
-		(my_getVsetvliExpression): Similar to my_getVsetvliExpression,
-		but used for parsing vsetvli operands.
-		(riscv_ip): Parse and encode rvv operands.  Besides, The rvv loads
-		and stores with EEW 64 cannot be used when zve32x is enabled.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p10.d: Updated -march
-		to rv32ifv_zkr.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/priv-reg.s: Added rvv csr testcases.
-		* testsuite/gas/riscv/priv-reg-version-1p10.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/march-imply-v.d: New testcase.
-		* testsuite/gas/riscv/vector-insns-fail-zve32xf.d: Likewise.
-		* testsuite/gas/riscv/vector-insns-fail-zve32xf.l: Likewise.
-		* testsuite/gas/riscv/vector-insns-fail-zvl.d: Likewise.
-		* testsuite/gas/riscv/vector-insns-fail-zvl.l: Likewise.
-		* testsuite/gas/riscv/vector-insns-vmsgtvx.d: Likewise.
-		* testsuite/gas/riscv/vector-insns-vmsgtvx.s: Likewise.
-		* testsuite/gas/riscv/vector-insns-zero-imm.d: Likewise.
-		* testsuite/gas/riscv/vector-insns-zero-imm.s: Likewise.
-		* testsuite/gas/riscv/vector-insns.d: Likewise.
-		* testsuite/gas/riscv/vector-insns.s: Likewise.
-	include/
-		* opcode/riscv-opc.h: Defined mask/match encodings and csrs for rvv.
-		* opcode/riscv.h: Defined rvv immediate encodings and fields.
-		(enum riscv_insn_class): Added INSN_CLASS_V and INSN_CLASS_ZVEF.
-		(INSN_V_EEW64): Defined.
-		(M_VMSGE, M_VMSGEU): Added for the rvv pseudoes.
-	opcodes/
-		* riscv-dis.c (print_insn_args): Dump the rvv operands.
-		* riscv-opc.c (riscv_vecr_names_numeric): Defined rvv registers.
-		(riscv_vecm_names_numeric): Likewise.
-		(riscv_vsew): Likewise.
-		(riscv_vlmul): Likewise.
-		(riscv_vta): Likewise.
-		(riscv_vma): Likewise.
-		(match_vs1_eq_vs2): Added for rvv Vu operand.
-		(match_vd_eq_vs1_eq_vs2): Added for rvv Vv operand.
-		(riscv_opcodes): Added rvv v1.0 instructions.
-
-2021-11-17  Sergei Trofimovich  <siarheit@google.com>
-
-	gdb/nat/linux-osdata.c: fix build on gcc-12 (string overfow)
-	On gcc-12 build fails as:
-
-	    ../../gdbserver/../gdb/nat/linux-osdata.c: In function 'void linux_xfer_osdata_processes(buffer*)':
-	    ../../gdbserver/../gdb/nat/linux-osdata.c:330:39: error:
-	      '__builtin___sprintf_chk' may write a terminating nul past the end of the destination [-Werror=format-overflow=]
-	      330 |                 sprintf (core_str, "%d", i);
-	          |                                       ^
-
-	It's an off-by-one case in an infeasible scenario for negative
-	huge core count. The change switches to std::string for memory
-	handling.
-
-	Tested by running 'info os processes' and checking CPU cores column.
-
-2021-11-17  Aaron Merey  <amerey@redhat.com>
-
-	gdb: Add aliases for read_core_file_mappings callbacks
-	Add aliases read_core_file_mappings_loop_ftype and
-	read_core_file_mappings_pre_loop_ftype.  Intended for use with
-	read_core_file_mappings.
-
-	Also add build_id parameter to read_core_file_mappings_loop_ftype.
-
-2021-11-17  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: add support for $pwd replacements
-	Extend the common test framework to support $pwd replacements in
-	settings.  This allows replacing the custom cris @exedir@ with it.
-
-	sim: cris: replace @srcdir@ test extension with $srcdir/$subdir
-	The common framework supports $srcdir & $subdir replacements already,
-	so replace the custom @srcdir@ logic with those.  Since the replace
-	happens in slurp_options that cris already uses, we don't have any
-	logic to port over there.  We have to duplicate that into the cris
-	slurp_rv helper though.
-
-2021-11-17  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cris: drop custom "dynamic" test field
-	This tag is used to force tests to be built dynamically (i.e. without
-	-static linking).  This is because cris-sim.exp in dejagnu turns on
-	static linking in ldflags.
-
-	The default configs and runtest flags shouldn't load these boards.
-	If these settings are still needed, we should figure out a different
-	way of suppressing the stock settings wholesale.  We want these to
-	all pass out of the box with little to no configuration so that they
-	can run in a multitarget build.
-
-	With dropping "dynamic", it'll be easier to merge the custom cris
-	test logic with the common sim test logic.
-
-2021-11-17  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: add more silent build rules
-	site.exp is still verbose, but that comes from automake, so have
-	to get it fixed upstream.
-
-2021-11-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-16  Sergei Trofimovich  <siarheit@google.com>
-
-	sim: cr16: fix build on gcc-12 (NULL comparison)
-	On gcc-12 build fails as:
-
-	    sim/cr16/interp.c: In function 'lookup_hash':
-	    sim/cr16/interp.c:89:25: error:
-	      the comparison will always evaluate as 'true'
-	      for the address of 'mnimonic' will never be NULL [-Werror=address]
-	       89 |   if ((h->ops->mnimonic != NULL) &&
-	          |                         ^~
-
-	'mnimonic' is a sharr array within ops. It can never be NULL.
-
-	While at it renamed 'mnimonic' to 'mnemonic'.
-
-2021-11-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix length of array view returned by some value_contents functions
-	In commit 50888e42dcd3 ("gdb: change functions returning value contents
-	to use gdb::array_view"), I believe I made a mistake with the length of
-	the array views returned by some functions.  All functions return a view
-	of `TYPE_LENGTH (value_type (type))` length.  This is not correct when
-	the value's enclosing type is larger than the value's type.  In that
-	case, the value's contents buffer is of the size of the enclosing type,
-	and the value's actual contents is a slice of that (as returned by
-	value_contents).  So, functions value_contents_all_raw,
-	value_contents_for_printing and value_contents_for_printing_const are
-	not correct.  Since they are meant to return the value's contents buffer
-	as a whole, they should have the size of the enclosing type.
-
-	There is nothing that uses the returned array view size at the moment,
-	so this didn't cause a problem.  But it became apparent when trying to
-	adjust some callers.
-
-	Change-Id: Ib4e8837e1069111d2b2784d3253d5f3002419e68
-
-2021-11-16  Fangrui Song  <maskray@google.com>
-
-	readelf: Support SHT_RELR/DT_RELR for -r
-	The -r output for SHT_RELR looks like:
-
-	Relocation section '.relr.dyn' at offset 0x530 contains 4 entries:
-	  7 offsets
-	00000000000028c0
-	00000000000028c8
-	0000000000003ad0
-	0000000000003ad8
-	0000000000003ae0
-	0000000000003ae8
-	0000000000003af0
-
-	For --use-dynamic, the header looks like
-
-	    'RELR' relocation section at offset 0x530 contains 32 bytes:
-
-	include/
-	    * elf/common.h (DT_ENCODING): Bump to 38.
-	    * elf/external.h (Elf32_External_Relr): New.
-	    (Elf64_External_Relr): New.
-	binutils/
-	    * readelf.c (enum relocation_type): New.
-	    (slurp_relr_relocs): New.
-	    (dump_relocations): Change is_rela to rel_type.
-	    Dump RELR.
-	    (dynamic_relocations): Add DT_RELR.
-	    (process_relocs): Check SHT_RELR and DT_RELR.
-	    (process_dynamic_section): Store into dynamic_info for
-	    DT_RELR/DT_RELRENT/DT_RELRSZ.
-
-2021-11-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: remove FUNCTION_NAME
-	__func__ is standard C++11:
-
-	    https://en.cppreference.com/w/cpp/language/function
-
-	Also, in C++11, __func__ expands to the demangled function name, so the
-	mention in the comment above FUNCTION_NAME doesn't apply anymore.
-	Finally, in places where FUNCTION_NAME is used, I think it's enough to
-	print the function name, no need to print the whole signature.
-	Therefore, I propose to just remove FUNCTION_NAME and update users to
-	use the standard __func__.
-
-	Change-Id: I778f28155422b044402442dc18d42d0cded1017d
-
-2021-11-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/gdbsupport: make xstrprintf and xstrvprintf return a unique_ptr
-	The motivation is to reduce the number of places where unmanaged
-	pointers are returned from allocation type routines.  All of the
-	callers are updated.
-
-	There should be no user visible changes after this commit.
-
-2021-11-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdbsupport: move xfree into its own file
-	In the next commit I'd like to reference gdb_unique_ptr within the
-	common-utils.h file.  However, this requires that I include
-	gdb_unique_ptr.h, which requires that xfree be defined.
-
-	Interestingly, gdb_unique_ptr.h doesn't actually include anything that
-	defines xfree, but I was finding that when I added a gdb_unique_ptr.h
-	include to common-utils.h I was getting a dependency cycle; before my
-	change xfree was defined when gdb_unique_ptr.h was processed, while
-	after my change it was not, and this made g++ unhappy.
-
-	To break this cycle, I propose to move xfree into its own header file,
-	gdb-xfree.h, which I'll then include into gdb_unique_ptr.h and
-	common-utils.cc.
-
-2021-11-16  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb: throw OPTIMIZED_OUT_ERROR rather than GENERIC_ERROR
-	While reviewing this patch:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-November/183227.html
-
-	I spotted that the patch could be improved if we threw
-	OPTIMIZED_OUT_ERROR rather than GENERIC_ERROR in a few places.
-
-	This commit updates error_value_optimized_out and
-	require_not_optimized_out to throw OPTIMIZED_OUT_ERROR.
-
-	I ran the testsuite and saw no regressions.  This doesn't really
-	surprise me, we don't usually write code like:
-
-	  catch (const gdb_exception_error &ex)
-	    {
-	      (if ex.error == GENERIC_ERROR)
-	        ...
-	      else
-	        ...
-	    }
-
-	There are a three places where we write something like:
-
-	  catch (const gdb_exception_error &ex)
-	    {
-	      (if ex.error == OPTIMIZED_OUT_ERROR)
-	        ...
-	    }
-
-	In frame.c:unwind_pc, stack.c:info_frame_command_core, and
-	value.c:value_optimized_out, but if we are hitting these cases then
-	it's not significantly changing GDB's behaviour.
-
-2021-11-16  Tom Tromey  <tromey@adacore.com>
-
-	Remove config.cache in gdbserver's "distclean"
-	PR gdb/28586 points out that "make distclean" fails to delete
-	config.cache from gdbserver/.  This patch fixes the bug, and removes a
-	duplicate "Makefile" deletion that was also pointed out in the PR.
-
-2021-11-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove inferior output in gdb.base/foll-vfork.exp
-	Test-case gdb.base/foll-vfork.exp has inferior output that is not needed, but
-	which makes the regexp matching more difficult (see commit 1f28b70def1
-	"[gdb/testsuite] Fix regexp in gdb.base/foll-vfork.exp").
-
-	Remove the inferior output, and revert commit 1f28b70def1 to make the matching
-	more restrictive.
-
-	Tested on x86_64-linux.
-
-2021-11-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Don't allow KMOV in TLS code sequences
-	Don't allow KMOV in TLS code sequences which require integer MOV
-	instructions.
-
-		PR target/28595
-		* config/tc-i386.c (match_template): Don't allow KMOV in TLS
-		code sequences.
-		* testsuite/gas/i386/i386.exp: Run inval-tls and x86-64-inval-tls
-		tests.
-		* testsuite/gas/i386/inval-tls.l: New file.
-		* testsuite/gas/i386/inval-tls.s: Likewise.
-		* testsuite/gas/i386/x86-64-inval-tls.l: Likewise.
-		* testsuite/gas/i386/x86-64-inval-tls.s: Likewise.
-
-2021-11-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: run: support concise env var settings
-	Support the same syntax as other common utilities where env vars can
-	be specified before the program to be run without an explicit option.
-
-	This behavior can be suppressed by using the -- marker.
-
-2021-11-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: nrun: add --env-{set,unset,clear} command line options
-	Provide explicit control over the program's environment with the
-	basic set/unset/clear options.  These are a bit clunky to use,
-	but they're functional.
-
-	The env set operation is split out into a separate function as it'll
-	be used in the next commit.
-
-	With these in place, we can adjust the custom cris testsuite to use
-	the now standard options and not its one-off hack.
-
-2021-11-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: syscall: hoist argc/argn/argnlen to common code
-	Now that the callback framework supports argv & envp, we can move
-	the Blackfin implementation of these syscalls to the common code.
-
-	sim: syscall: fix argvlen & argv implementation
-	Now that we have access to the argv & envp strings, finish implementing
-	these syscalls.  Delete unused variables, fix tbuf by incrementing the
-	pointer instead of setting to the length, and make sure we don't write
-	more data than the bufsize says is available.
-
-	sim: callback: expose argv & environ
-	Pass the existing strings data to the callbacks so that common
-	libgloss syscalls can be implemented (which we'll do shortly).
-
-2021-11-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: keep track of program environment strings
-	We've been passing the environment strings to sim_create_inferior,
-	but most ports don't do anything with them.  A few will use ad-hoc
-	logic to stuff the stack for user-mode programs, but that's it.
-
-	Let's formalize this across the board by storing the strings in the
-	normal sim state.  This will allow (in future commits) supporting
-	more functionality in the run interface, and to unify some of the
-	libgloss syscalls.
-
-2021-11-16  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: iq2000: fix some missing prototypes warnings
-	Turns out some of these were hiding real bugs like not passing the
-	pc variable down.
-
-2021-11-16  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Scalar crypto instruction and entropy source CSR testcases.
-	Add testcases for Scalar Crypto extension, with total testcase contain all
-	instructions in k-ext/k-ext-64 and sub-extension testcase for zbk* zk*. Also
-	add testcase for new CSR name 'seed' which is the Entropy Source in zkr.
-
-	In fact these whole testcases can be combined into one file, after we have
-	supported the .option arch +-= directives.
-
-	gas/
-		* testsuite/gas/riscv/k-ext-64.d: New testcase for crypto instructions.
-		* testsuite/gas/riscv/k-ext-64.s: Likewise.
-		* testsuite/gas/riscv/k-ext.d: Likewise.
-		* testsuite/gas/riscv/k-ext.s: Likewise.
-		* testsuite/gas/riscv/zbkb-32.d: Likewise.
-		* testsuite/gas/riscv/zbkb-32.s: Likewise.
-		* testsuite/gas/riscv/zbkb-64.d: Likewise.
-		* testsuite/gas/riscv/zbkb-64.s: Likewise.
-		* testsuite/gas/riscv/zbkc-32.d: Likewise.
-		* testsuite/gas/riscv/zbkc-64.d: Likewise.
-		* testsuite/gas/riscv/zbkc.s: Likewise.
-		* testsuite/gas/riscv/zbkx-32.d: Likewise.
-		* testsuite/gas/riscv/zbkx-64.d: Likewise.
-		* testsuite/gas/riscv/zbkx.s: Likewise.
-		* testsuite/gas/riscv/zknd-32.d: Likewise.
-		* testsuite/gas/riscv/zknd-32.s: Likewise.
-		* testsuite/gas/riscv/zknd-64.d: Likewise.
-		* testsuite/gas/riscv/zknd-64.s: Likewise.
-		* testsuite/gas/riscv/zkne-32.d: Likewise.
-		* testsuite/gas/riscv/zkne-32.s: Likewise.
-		* testsuite/gas/riscv/zkne-64.d: Likewise.
-		* testsuite/gas/riscv/zkne-64.s: Likewise.
-		* testsuite/gas/riscv/zknh-32.d: Likewise.
-		* testsuite/gas/riscv/zknh-32.s: Likewise.
-		* testsuite/gas/riscv/zknh-64.d: Likewise.
-		* testsuite/gas/riscv/zknh-64.s: Likewise.
-		* testsuite/gas/riscv/zksed-32.d: Likewise.
-		* testsuite/gas/riscv/zksed-64.d: Likewise.
-		* testsuite/gas/riscv/zksed.s: Likewise.
-		* testsuite/gas/riscv/zksh-32.d: Likewise.
-		* testsuite/gas/riscv/zksh-64.d: Likewise.
-		* testsuite/gas/riscv/zksh.s: Likewise.
-		* testsuite/gas/riscv/priv-reg-fail-zkr.d: New testcase for zkr
-		csr check.
-		* testsuite/gas/riscv/priv-reg-fail-zkr.l: Likewise.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p10.d: Updated march to
-		rv32if_zkr.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-fail-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-version-1p10.d: Added Crypto seed csr.
-		* testsuite/gas/riscv/priv-reg-version-1p11.d: Likewise.
-		* testsuite/gas/riscv/priv-reg-version-1p9p1.d: Likewise.
-		* testsuite/gas/riscv/priv-reg.s: Likewise.
-
-2021-11-16  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Scalar crypto instructions and operand set.
-	Add instructions in k-ext, some instruction in zbkb, zbkc is reuse from
-	zbb,zbc, we just change the class attribute to make them both support.
-	The 'aes64ks1i' and 'aes64ks2' instructions are present in both the Zknd
-	and Zkne extensions on rv64.  Add new operand letter 'y' to present 'bs'
-	symbol and 'Y' to present 'rnum' symbolc  for zkn instructions.  Also add
-	a new Entropy Source CSR define 'seed' located at address 0x015.
-
-	bfd/
-		* elfxx-riscv.c (riscv_multi_subset_supports): Added support for
-		crypto extension.
-	gas/
-		*config/tc-riscv.c (enum riscv_csr_class): Added CSR_CLASS_ZKR.
-		(riscv_csr_address): Checked for CSR_CLASS_ZKR.
-		(validate_riscv_insn): Added y and Y for bs and rnum operands.
-		(riscv_ip): Handle y and Y operands.
-	include/
-		* opcode/riscv-opc.h: Added encodings of crypto instructions.
-		Also defined new csr seed, which address is 0x15.
-		* opcode/riscv.h: Defined OP_* and INSN_CLASS_* for crypto.
-	opcodes/
-		* riscv-dis.c (print_insn_args): Recognized new y and Y operands.
-		* riscv-opc.c (riscv_opcodes): Added crypto instructions.
-
-2021-11-16  jiawei  <jiawei@iscas.ac.cn>
-
-	RISC-V: Minimal support of scalar crypto extension.
-	Minimal support of scalar crypto extension, add "k" in the
-	riscv_supported_std_ext, to make the order check right with
-	"zk" behind "zb".
-
-	bfd/
-		* elfxx-riscv.c (riscv_implicit_subsets): Added implicit
-		rules for zk* extensions.
-		(riscv_supported_std_ext): Added entry for k.
-		(riscv_supported_std_z_ext): Added entries for zk*.
-
-2021-11-16  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: rework "set debuginfod" commands
-	As discussed here [1], do some re-work in the "set debuginfod commands".
-
-	First, use "set debuginfod enabled on/off/ask" instead of "set
-	debuginfod on/off/ask".  This is more MI-friendly, and it gives an
-	output that makes more sense in "info set", for example.
-
-	Then, make the show commands not call "error" when debuginfod support is
-	not compiled in.  This makes the commands "show" and "show debuginfod"
-	stop early, breaking gdb.base/default.exp:
-
-	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/default.exp ...
-	    FAIL: gdb.base/default.exp: info set
-	    FAIL: gdb.base/default.exp: show
-
-	 - Make the "debuginfod enabled" setting default to "off" when debuginfod
-	   support is not compiled in, and "ask" otherwise.
-	 - Make the setter of "debuginfod enabled" error out when debuginfod
-	   support is not compiled in, so that "debuginfod enabled" will always
-	   remain "off" in that case.
-	 - Make the setter of "debuginfod verbose" work in any case.  I don't
-	   see the harm in letting the user change that setting, since the user will
-	   hit an error if they try to enable the use of debuginfod.
-	 - I would do the same for the "debuginfod urls" setter, but because
-	   this one needs to see the DEBUGINFOD_URLS_ENV_VAR macro, provided by
-	   libdebuginfod, I made that one error out as well if debuginfod
-	   support is not compiled it (otherwise, I would have left it like
-	   "debuginfod verbose".  Alternatively, we could hard-code
-	   "DEBUGINFOD_URLS" in the code (in fact, it was prior to this patch,
-	   but I think it was an oversight, as other spots use
-	   DEBUGINFOD_URLS_ENV_VAR), or use a dummy string to store the setting,
-	   but I don't really see the value in that.
-
-	Rename debuginfod_enable to debuginfod_enabled, just so it matches the
-	setting name.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2021-October/182937.html
-
-	Change-Id: I45fdb2993f668226a5639228951362b7800f09d5
-	Co-Authored-By: Aaron Merey <amerey@redhat.com>
-
-2021-11-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: adjust gdbarch_tdep calls in nat files
-	Commit 345bd07cce33 ("gdb: fix gdbarch_tdep ODR violation") forgot to
-	update the gdbarch_tdep calls in the native files other than x86-64
-	Linux.  This patch updates them all (to the best of my knowledge).
-	These are the files I was able to build-test:
-
-	  aarch64-linux-nat.c
-	  amd64-bsd-nat.c
-	  arm-linux-nat.c
-	  ppc-linux-nat.c
-	  windows-nat.c
-	  xtensa-linux-nat.c
-
-	And these are the ones I could not build-test:
-
-	  aix-thread.c
-	  arm-netbsd-nat.c
-	  ppc-fbsd-nat.c
-	  ppc-netbsd-nat.c
-	  ia64-tdep.c (the part that needs libunwind)
-	  ppc-obsd-nat.c
-	  rs6000-nat.c
-
-	If there are still some build problems related to gdbarch_tdep in them,
-	they should be pretty obvious to fix.
-
-	Change-Id: Iaa3d791a850e4432973757598e634e3da6061428
-
-2021-11-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove unused variables in xtensa-linux-nat.c
-	While build-testing this file, the compiler complained about these two
-	unused variables, remove them.
-
-	Change-Id: I3c54f779f12c16ef6184af58aca75eaad042ce4e
-
-2021-11-16  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add arc-newlib-tdep.c to ALL_TARGET_OBS
-	This file is currently not compiled in an --enable-targets=all build,
-	but it should be.  Add it to ALL_TARGET_OBS.
-
-	Update the gdbarch_tdep call that commit 345bd07cce33 ("gdb: fix
-	gdbarch_tdep ODR violation") forgot to update.
-
-	Change-Id: I86248a01493eea5e70186e9c46a298ad3994b034
-
-2021-11-16  Jim Wilson  <wilson@tuliptree.org>
-
-	Update my email address.
-	I've left SiFive and have a new gmail account because it is convenient
-	to use with git send-email.  I'm planning to use this for my RISC-V
-	work.  My tuliptree address still works, it just isn't as convenient.
-
-		binutils:
-		* MAINTAINERS (RISC-V): Update my address.
-
-2021-11-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Don't use gdb_stdlog for inferior-events
-	The test-case gdb.base/foll-vfork.exp contains:
-	...
-	if [gdb_debug_enabled] {
-	    untested "debug is enabled"
-	    return 0
-	}
-	...
-
-	To understand what it does, I disabled this bit and ran with GDB_DEBUG=infrun,
-	like so:
-	...
-	$ cd $build/gdb/testsuite
-	$ make check GDB_DEBUG=infrun RUNTESTFLAGS=gdb.base/foll-vfork.exp
-	...
-	and ran into:
-	...
-	(gdb) PASS: gdb.base/foll-vfork.exp: exec: \
-	  vfork parent follow, through step: set follow-fork parent
-	next^M
-	33        if (pid == 0) {^M
-	(gdb) FAIL: gdb.base/foll-vfork.exp: exec: \
-	  vfork parent follow, through step: step
-	...
-
-	The problem is that the test-case expects:
-	...
-	(gdb) PASS: gdb.base/foll-vfork.exp: exec: \
-	  vfork parent follow, through step: set follow-fork parent
-	next^M
-	[Detaching after vfork from child process 28169]^M
-	33        if (pid == 0) {^M
-	(gdb) PASS: gdb.base/foll-vfork.exp: exec: \
-	  vfork parent follow, through step: step
-	...
-	but the "Detaching" line has been redirected to
-	$outputs/gdb.base/foll-vfork/gdb.debug.
-
-	I looked at the documentation of "set logging debugredirect [on|off]":
-	...
-	  By default, GDB debug output will go to both the terminal and the logfile.
-	  Set debugredirect if you want debug output to go only to the log file.
-	...
-	and my interpretation of it was that "debug output" did not match the
-	"messages" description of inferior-events:
-	...
-	The set print inferior-events command allows you to enable or disable printing
-	of messages when GDB notices that new inferiors have started or that inferiors
-	have exited or have been detached.
-	...
-
-	Fix the discrepancy by not using gdb_stdlog for inferior-events.
-
-	Update the gdb.base/foll-vfork.exp test-case to not require
-	gdb_debug_enabled == 0.
-
-	Tested on x86_64-linux.
-
-	Tested test-case gdb.base/foll-vfork.exp with and without GDB_DEBUG=infrun.
-
-2021-11-15  Roland McGrath  <mcgrathr@google.com>
-
-	ld: Fix testsuite failures under --enable-textrel-check=error
-	ld/
-		* testsuite/ld-aarch64/dt_textrel.d: Pass explicit -z notext in
-		case ld was configured with --enable-textrel-check=error.
-		* testsuite/ld-aarch64/pr22764.d: Likewise.
-		* testsuite/ld-aarch64/pr20402.d: Likewise.
-
-2021-11-15  Luis Machado  <luis.machado@linaro.org>
-
-	Extend the prologue analyzer to handle the bti instruction
-	Handle the BTI instruction in the prologue analyzer. The patch handles all
-	the variations of the BTI instruction.
-
-2021-11-15  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix gdbarch_tdep ODR violation
-	I would like to be able to use non-trivial types in gdbarch_tdep types.
-	This is not possible at the moment (in theory), because of the one
-	definition rule.
-
-	To allow it, rename all gdbarch_tdep types to <arch>_gdbarch_tdep, and
-	make them inherit from a gdbarch_tdep base class.  The inheritance is
-	necessary to be able to pass pointers to all these <arch>_gdbarch_tdep
-	objects to gdbarch_alloc, which takes a pointer to gdbarch_tdep.
-
-	These objects are never deleted through a base class pointer, so I
-	didn't include a virtual destructor.  In the future, if gdbarch objects
-	deletable, I could imagine that the gdbarch_tdep objects could become
-	owned by the gdbarch objects, and then it would become useful to have a
-	virtual destructor (so that the gdbarch object can delete the owned
-	gdbarch_tdep object).  But that's not necessary right now.
-
-	It turns out that RISC-V already has a gdbarch_tdep that is
-	non-default-constructible, so that provides a good motivation for this
-	change.
-
-	Most changes are fairly straightforward, mostly needing to add some
-	casts all over the place.  There is however the xtensa architecture,
-	doing its own little weird thing to define its gdbarch_tdep.  I did my
-	best to adapt it, but I can't test those changes.
-
-	Change-Id: Ic001903f91ddd106bd6ca09a79dabe8df2d69f3b
-
-2021-11-15  Clément Chigot  <clement.chigot@atos.net>
-
-	COFF: avoid modifications over C_FILE filename aux entries.
-	Commit e86fc4a5bc37 ("PR 28447: implement multiple parameters for .file
-	on XCOFF") introduces C_FILE entries which can store additional
-	information.
-	However, some modifications are needed by them but not by the original
-	C_FILE entries, usually representing the filename.
-	This patch ensures that filename entries are kept as is, in order to
-	protect targets not supporting the additional entries.
-
-		* coffgen.c (coff_write_symbol): Protect filename entries
-		(coff_write_symbols): Likewise.
-		(coff_print_symbol): Likewise.
-
-2021-11-15  Eric Botcazou  <ebotcazou@gcc.gnu.org>
-
-	Deal with full path in .file 0 directive
-	Gas uses the directory part, if present, of the .file 0 directive to set
-	entry 0 of the directory table in DWARF 5, which represents the "current
-	directory".
-
-	Now Gas also uses the file part of the same directive to set entry 0 of the
-	file table, which represents the "current compilation file".  But the latter
-	need not be located in the former so GCC will use a full path in the file
-	part when it is passed a full path:
-
-	gcc -c /full/path/test.c -save-temps
-
-	yields:
-
-	 .file 0 "/current/directory" "/full/path/test.c"
-
-	in the assembly file and:
-
-	 The Directory Table (offset 0x22, lines 2, columns 1):
-	  Entry Name
-	  0     (indirect line string, offset: 0x25): /current/directory
-	  1     (indirect line string, offset: 0x38): /full/path
-
-	 The File Name Table (offset 0x30, lines 2, columns 2):
-	  Entry Dir     Name
-	  0     0       (indirect line string, offset: 0x43): /full/path/test.c
-
-	in the object file.  Note the full path and the questionable Dir value in
-	the 0 entry of the file table.
-
-2021-11-15  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cris: make error message test a little more flexible
-	The point of this test is to just make sure the usage text is shown,
-	not the exact details of the usage text.  So shorten the output test
-	to match the beginning.  This fixes breakage when the output changed
-	slightly to include [--].
-
-	sim: run: fix crash in argc==0 error situation
-	The new argv processing code assumed that we were always passed a
-	command line.  If we weren't, make sure we don't crash before we
-	get a chance to output an error message about incorrect usage.
-
-	sim: cris: touch up rvdummy handling
-	Add quiet build support and make sure it's removed with `make clean`.
-
-	sim: cris: replace custom "dest" test field with new --argv0
-	The #dest field used in the cris testsuite is a bit of hack to set the
-	argv[0] for the tests to read out later on.  Now that the sim has an
-	option to set argv[0] explicitly, we don't need this custom field, so
-	let's drop it to harmonize the testsuites a little.
-
-	sim: run: add --argv0 option to control argv[0]
-	We default argv[0] to the program we run which is a standard *NIX
-	convention, but sometimes we want to be able to control the argv[0]
-	setting independently (especially for programs that inspect argv[0]
-	to change their behavior or output).  Add an option to control it.
-
-2021-11-15  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: split program path out of argv vector
-	We use the program argv to both find the program to run (argv[0]) and
-	to hold the arguments to the program.  Most of the time this is fine,
-	but if we want to let programs specify argv[0] independently (which is
-	possible in standard *NIX programs), this double duty doesn't work.
-
-	So let's split the path to the program to run out into a separate
-	field by itself.  This simplifies the various sim_open funcs too.
-
-	By itself, this code is more of a logical cleanup than something that
-	is super useful.  But it will open up customization of argv[0] in a
-	follow up commit.  Split the changes to make it easier to review.
-
-2021-11-15  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: bfin: fix mach/xfail usage in tests
-	Set the mach to the right value all the time, and update xfail to
-	say the test fails on all targets.  WIth multitarget testing, the
-	idea of target here doesn't make much sense.
-
-2021-11-15  Alan Modra  <amodra@gmail.com>
-
-	-Waddress fixes for gold testsuite
-	Current mainline gcc.
-	common_test_1.c: In function 'main':
-	common_test_1.c:56:14: error: comparison between two arrays [-Werror=array-compare]
-	   56 |   assert (c5 > c4);
-	      |              ^
-	common_test_1.c:56:14: note: use '&c5[0] > &c4[0]' to compare the addresses
-
-		* testsuite/common_test_1.c: Avoid -Waddress warnings.
-		* testsuite/common_test_1_v1.c: Likewise.
-		* testsuite/common_test_1_v2.c: Likewise.
-		* testsuite/script_test_2.cc: Likewise.
-
-2021-11-15  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64 @notoc in non-power10 code
-	R_PPC64_REL24_P9NOTOC is a variant of R_PPC64_REL24_NOTOC for use on
-	@notoc cals from non-power10 code in the rare case that using such a
-	construct is useful.  R_PPC64_REL24_P9NOTOC will be emitted by gas
-	rather than R_PPC64_REL24_NOTOC when @notoc is used in a branch
-	instruction if power10 instructions are not enabled at that point.
-	The new relocation tells the linker to not use power10 instructions on
-	any stub emitted for that branch, unless overridden by
-	--power10-stubs=yes.
-
-	The current linker heuristic of only generating power10 instructions
-	for stubs if power10-only relocations are detected, continues to be
-	used.
-
-	include/
-		* elf/ppc64.h (R_PPC64_REL24_P9NOTOC): Define.
-	bfd/
-		* reloc.c (BFD_RELOC_PPC64_REL24_P9NOTOC): Define.
-		* elf64-ppc.c (ppc64_elf_howto_raw): Add entry for new reloc.
-		(ppc64_elf_reloc_type_lookup): Handle it.
-		(enum ppc_stub_type): Delete.
-		(enum ppc_stub_main_type, ppc_stub_sub_type): New.
-		(struct ppc_stub_type): New.
-		(struct ppc_stub_hash_entry): Use the above new type.
-		(struct ppc_link_hash_table): Update stub_count.
-		(is_branch_reloc, ppc64_elf_check_relocs),
-		(toc_adjusting_stub_needed): Handle new reloc.
-		(stub_hash_newfunc, select_alt_stub, ppc_merge_stub),
-		(ppc_type_of_stub, plt_stub_size, build_plt_stub),
-		(build_tls_get_addr_head, build_tls_get_addr_tail),
-		(ppc_build_one_stub, ppc_size_one_stub, ppc64_elf_size_stubs),
-		(ppc64_elf_build_stubs, ppc64_elf_relocate_section): Handle new
-		reloc.  Modify stub handling to suit new scheme.
-		* bfd-in2.h: Regenerate.
-		* libbfd.h: Regenerate.
-	gas/
-		* config/tc-ppc.c (ppc_elf_suffix): When power10 is not enabled
-		return BFD_RELOC_PPC64_REL24_P9NOTOC for @notoc.
-		(fixup_size, ppc_force_relocation, ppc_fix_adjustable): Handle
-		BFD_RELOC_PPC64_REL24_P9NOTOC.
-	ld/
-		* testsuite/ld-powerpc/callstub-2.s: Add .machine power10.
-
-2021-11-15  Alan Modra  <amodra@gmail.com>
-
-	Regenerate a couple of files
-	A couple of files changed on my latest --enable-maintainer-mode
-	build.  ld/Makefile.in had a missing dependency but better sorting of
-	the loongson entries.
-
-	intl/
-		* configure: Regenerate.
-	ld/
-		* Makefile.am: Sort loongson entries.
-		* Makefile.in: Regenerate.
-
-2021-11-15  Pedro Alves  <pedro@palves.net>
-
-	Fix build with current GCC: EL_EXPLICIT(location) always non-NULL
-	Compiling GDB with current GCC (1b4a63593b) runs into this:
-
-	  src/gdb/location.c: In function 'int event_location_empty_p(const event_location*)':
-	  src/gdb/location.c:963:38: error: the address of 'event_location::<unnamed union>::explicit_loc' will never be NULL [-Werror=address]
-	    963 |       return (EL_EXPLICIT (location) == NULL
-		|                                      ^
-	  src/gdb/location.c:57:30: note: 'event_location::<unnamed union>::explicit_loc' declared here
-	     57 |     struct explicit_location explicit_loc;
-		|                              ^~~~~~~~~~~~
-
-	GCC is right, EL_EXPLICIT is defined as returning the address of an
-	union field:
-
-	      /* An explicit location.  */
-	      struct explicit_location explicit_loc;
-	  #define EL_EXPLICIT(P) (&((P)->u.explicit_loc))
-
-	and thus must always be non-NULL.
-
-	Change-Id: Ie74fee7834495a93affcefce03c06e4d83ad8191
-
-2021-11-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-14  Lancelot SIX  <lsix@lancelotsix.com>
-
-	[PR gdb/16238] Add completer for the show user command
-	The 'show user' command (which shows the definition of non-python/scheme
-	user defined commands) is currently missing a completer. This is
-	mentioned in PR 16238.  Having one can improve the user experience.
-
-	In this commit I propose an implementation for such completer as well as
-	the associated tests.
-
-	Tested on x86_64 GNU/Linux.
-
-	All feedbacks are welcome.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16238
-
-2021-11-14  Alan Modra  <amodra@gmail.com>
-
-	sync libbacktrace from gcc
-
-2021-11-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-13  H.J. Lu  <hjl.tools@gmail.com>
-
-	Sync Makefile.tpl with GCC
-		* Makefile.tpl: Sync with GCC.
-		* Makefile.in: Regenerate.
-
-2021-11-13  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: fix switch-bool warnings
-	This code triggers -Werror=switch-bool warnings with <=gcc-5 versions.
-	Rework it to use if statements instead as it also simplifies a bit.
-
-	sim: sh: rework carry checks to not rely on integer overflows
-	In <=gcc-7 versions, -fstrict-overflow is enabled by default, and that
-	triggers warnings in this code that relies on integer overflows to test
-	for carries.  Change the logic to test against the limit directly.
-
-2021-11-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-12  Carl Love  <cel@us.ibm.com>
-
-	Fix gdb.base/sigstep.exp test for ppc
-	The test stops at <signal_handler called> which is the call to the handler
-	rather than in the handler as intended.  This patch replaces the
-	gdb_test "$enter_cmd to handler" with a gdb_test_multiple test.  The multiple
-	test looks for the stop at <signal_handler called>.  If found, the command
-	is issued again.  The test passes if gdb stops in the handler as expected.
-
-	(gdb) PASS: gdb.base/sigstep.exp: stepi to handler, nothing in handler, step
-	from handler: continue to signal
-	stepi
-	<signal handler called>
-	1: x/i $pc
-	=> 0x7ffff7f80440 <__kernel_start_sigtramp_rt64>:       bctrl
-	(gdb) stepi
-	handler (sig=551) at sigstep.c:32
-	32      {
-	1: x/i $pc
-	=> 0x10000097c <handler>:       addis   r2,r12,2
-	(gdb) PASS: gdb.base/sigstep.exp: stepi to handler, nothing in handler,
-	step from handler: stepi to handler
-
-	Patch has been tested on x86_64-linux and ppc64le-linux with no test failures.
-
-2021-11-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix regexp in gdb.base/foll-vfork.exp
-	On OBS I ran into:
-	...
-	(gdb) PASS: gdb.base/foll-vfork.exp: exit: \
-	  vfork relations in info inferiors: continue to child exit
-	info inferiors^M
-	  Num  Description       Connection           Executable        ^M
-	  1    <null>                                 foll-vfork-exit ^M
-	* 2    <null>                                 foll-vfork-exit ^M
-	(gdb) I'm the proud parent of child #5044!^M
-	FAIL: gdb.base/foll-vfork.exp: exit: vfork relations in info inferiors: \
-	  vfork relation no longer appears in info inferiors (timeout)
-	...
-
-	Fix this by removing the '$' anchor in the corresponding '$gdb_prompt $'
-	regexps.
-
-	Tested on x86_64-linux.
-
-2021-11-12  Alan Modra  <amodra@gmail.com>
-
-	Don't compile some opcodes files when bfd is 32-bit only
-		* Makefile.am (TARGET_LIBOPCODES_CFILES): Split into..
-		(TARGET64_LIBOPCODES_CFILES): ..this and..
-		(TARGET32_LIBOPCODES_CFILES): ..this.
-		(ALL_MACHINES): Likewise split to
-		(ALL64_MACHINES, ALL32_MACHINES): ..this.
-		* disassemble.c: Define some ARCH_* when ARCH_all only if BFD64.
-		* configure.ac (BFD_MACHINES): Defined depending on BFD_ARCH_SIZE.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-
-	Import Makefile.def from gcc
-		* Makefile.def: Import from gcc.
-		* Makefile.in: Regenerate.
-
-2021-11-12  Alan Modra  <amodra@gmail.com>
-
-	Fix demangle style usage info
-	Extract allowed styles from libiberty, so we don't have to worry about
-	our help messages getting out of date.  The function probably belongs
-	in libiberty/cplus-dem.c but it can be here for a while to iron out
-	bugs.
-
-		PR 28581
-		* demanguse.c: New file.
-		* demanguse.h: New file.
-		* nm.c (usage): Break up output.  Use display_demangler_styles.
-		* objdump.c (usage): Use display_demangler_styles.
-		* readelf.c (usage): Likewise.
-		* Makefile.am: Add demanguse.c and demanguse.h.
-		* Makefile.in: Regenerate.
-		* po/POTFILESin: Regenerate.
-
-2021-11-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-11  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix "set scheduler-locking" thread exit hang
-	GDB hangs when doing this:
-
-	 - launch inferior with multiple threads
-	 - multiple threads hit some breakpoint(s)
-	 - one breakpoint hit is presented as a stop, the rest are saved as
-	   pending wait statuses
-	 - "set scheduler-locking on"
-	 - resume the currently selected thread (because of scheduler-locking,
-	   it's the only one resumed), let it execute until exit
-	 - GDB hangs, not showing the prompt, impossible to interrupt with ^C
-
-	When the resumed thread exits, we expect the target to return a
-	TARGET_WAITKIND_NO_RESUMED event, and that's what we see:
-
-	    [infrun] fetch_inferior_event: enter
-	      [infrun] scoped_disable_commit_resumed: reason=handling event
-	      [infrun] random_pending_event_thread: None found.
-	    [Thread 0x7ffff7d9c700 (LWP 309357) exited]
-	      [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	      [infrun] print_target_wait_results:   -1.0.0 [process -1],
-	      [infrun] print_target_wait_results:   status->kind = no-resumed
-	      [infrun] handle_inferior_event: status->kind = no-resumed
-	      [infrun] handle_no_resumed: TARGET_WAITKIND_NO_RESUMED (ignoring: found resumed)
-	      [infrun] prepare_to_wait: prepare_to_wait
-	      [infrun] reset: reason=handling event
-	      [infrun] maybe_set_commit_resumed_all_targets: not requesting commit-resumed for target native, no resumed threads
-	    [infrun] fetch_inferior_event: exit
-
-	The problem is in handle_no_resumed: we check if some other thread is
-	actually resumed, to see if we should ignore that event (see comments in
-	that function for more info).  If this condition is true:
-
-	    (thread->executing () || thread->has_pending_waitstatus ())
-
-	... then we ignore the event.  The problem is that there are some non-resumed
-	threads with a pending event, which makes us ignore the event.  But these
-	threads are not resumed, so we end up waiting while nothing executes, hence
-	waiting for ever.
-
-	My first fix was to change the condition to:
-
-	    (thread->executing ()
-	     || (thread->resumed () && thread->has_pending_waitstatus ()))
-
-	... but then it occured to me that we could simply check for:
-
-	    (thread->resumed ())
-
-	Since "executing" implies "resumed", checking simply for "resumed"
-	covers threads that are resumed and executing, as well as threads that
-	are resumed with a pending status, which is what we want.
-
-	Change-Id: Ie796290f8ae7f34c026ca3a8fcef7397414f4780
-
-2021-11-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix Wimplicit-exception-spec-mismatch in clang build
-	When building with clang 13 (and -std=gnu++17 to work around an issue in
-	string_view-selftests.c), we run into a few Wimplicit-exception-spec-mismatch
-	warnings:
-	...
-	src/gdbsupport/new-op.cc:102:1: error: function previously declared with an \
-	  explicit exception specification redeclared with an implicit exception \
-	  specification [-Werror,-Wimplicit-exception-spec-mismatch]
-	operator delete (void *p)
-	^
-	/usr/include/c++/11/new:130:6: note: previous declaration is here
-	void operator delete(void*) _GLIBCXX_USE_NOEXCEPT
-	     ^
-	...
-
-	These are due to recent commit 5fff6115fea "Fix
-	LD_PRELOAD=/usr/lib64/libasan.so.6 gdb".
-
-	Fix this by adding the missing noexcept.
-
-	Build on x86_64-linux, using gcc 7.5.0 and clang 13.0.0.
-
-2021-11-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build with -std=c++11
-	When building with -std=c++11, we run into two Werror=missing-declarations:
-	...
-	new-op.cc: In function 'void operator delete(void*, std::size_t)':
-	new-op.cc:114:1: error: no previous declaration for \
-	  'void operator delete(void*, std::size_t)' [-Werror=missing-declarations]
-	 operator delete (void *p, std::size_t) noexcept
-	 ^~~~~~~~
-	new-op.cc: In function 'void operator delete [](void*, std::size_t)':
-	new-op.cc:132:1: error: no previous declaration for \
-	  'void operator delete [](void*, std::size_t)' [-Werror=missing-declarations]
-	 operator delete[] (void *p, std::size_t) noexcept
-	 ^~~~~~~~
-	...
-
-	These are due to recent commit 5fff6115fea "Fix
-	LD_PRELOAD=/usr/lib64/libasan.so.6 gdb".
-
-	The declarations are provided by <new> (which is included) for c++14 onwards,
-	but they are missing for c++11.
-
-	Fix this by adding the missing declarations.
-
-	Tested on x86_64-linux, with gcc 7.5.0, both without (implying -std=gnu++14) and
-	with -std=c++11.
-
-2021-11-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.arch/ppc64-break-on-_exit.exp
-	Add a regression test-case for commit a50bdb99afe "[gdb/tdep, rs6000] Don't
-	skip system call in skip_prologue":
-	- set a breakpoint on a local copy of glibc's _exit, and
-	- verify that it triggers.
-
-	The test-case uses an assembly file by default, but also has the possibility
-	to use a C source file instead.
-
-	Tested on ppc64le-linux.  Verified that the test-case fails without
-	aforementioned commit, and passes with the commit.  Both with assembly
-	and C source.
-
-2021-11-11  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Dump objects according to the elf architecture attribute.
-	For now we should always generate the elf architecture attribute both for
-	elf and linux toolchains, so that we could dump the objects correctly
-	according to the generated architecture string.  This patch resolves the
-	problem that we probably dump an object with c.nop instructions, but
-	in fact the c extension isn't allowed.  Consider the following case,
-
-	nelson@LAPTOP-QFSGI1F2:~/test$ cat temp.s
-	.option norvc
-	.option norelax
-	.text
-	add     a0, a0, a0
-	.byte   0x1
-	.balign 16
-	nelson@LAPTOP-QFSGI1F2:~/test$ ~/binutils-dev/build-elf32-upstream/build-install/bin/riscv32-unknown-elf-as temp.s -o temp.o
-	nelson@LAPTOP-QFSGI1F2:~/test$ ~/binutils-dev/build-elf32-upstream/build-install/bin/riscv32-unknown-elf-objdump -d temp.o
-
-	temp.o:     file format elf32-littleriscv
-
-	Disassembly of section .text:
-
-	00000000 <.text>:
-	   0:   00a50533                add     a0,a0,a0
-	   4:   01                      .byte   0x01
-	   5:   00                      .byte   0x00
-	   6:   0001                    nop
-	   8:   00000013                nop
-	   c:   00000013                nop
-	nelson@LAPTOP-QFSGI1F2:~/test$ ~/binutils-dev/build-elf32-upstream/build-install/bin/riscv32-unknown-elf-readelf -A temp.o
-	Attribute Section: riscv
-	File Attributes
-	  Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0"
-
-	The c.nop at address 0x6 is generated for alignment, but since the rvc isn't
-	allowed for this object, dump it as a c.nop instruction looks wrong.  After
-	applying this patch, I get the following result,
-
-	nelson@LAPTOP-QFSGI1F2:~/test$ ~/binutils-dev/build-elf32-upstream/build-install/bin/riscv32-unknown-elf-objdump -d temp.o
-
-	temp.o:     file format elf32-littleriscv
-
-	Disassembly of section .text:
-
-	00000000 <.text>:
-	   0:   00a50533                add     a0,a0,a0
-	   4:   01                      .byte   0x01
-	   5:   00                      .byte   0x00
-	   6:   0001                    .2byte  0x1
-	   8:   00000013                nop
-	   c:   00000013                nop
-
-	For the current objdump, we dump data to .byte/.short/.word/.dword, and
-	dump the unknown or unsupported instructions to .2byte/.4byte/.8byte, which
-	respectively are 2, 4 and 8 bytes instructions.  Therefore, we shouldn't
-	dump the 0x0001 as a c.nop instruction in the above case, we should dump
-	it to .2byte 0x1 as a unknown instruction, since the rvc is disabled.
-
-	However, consider that some people may use the new objdump to dump the old
-	objects, which don't have any elf attributes.  We usually set the default
-	architecture string to rv64g by bfd/elfxx-riscv.c:riscv_set_default_arch.
-	But this will cause rvc instructions to be unrecognized.  Therefore, we
-	set the default architecture string to rv64gc for disassembler, to keep
-	the previous behavior.
-
-	This patch pass the riscv-gnu-toolchain gcc/binutils regressions for
-	rv32emc-elf, rv32gc-linux, rv32i-elf, rv64gc-elf and rv64gc-linux
-	toolchains.  Also, tested by --enable-targets=all and can build
-	riscv-gdb successfully.
-
-	bfd/
-		* elfnn-riscv.c (riscv_merge_arch_attr_info): Tidy the
-		codes for riscv_parse_subset_t setting.
-		* elfxx-riscv.c (riscv_get_default_ext_version): Updated.
-		(riscv_subset_supports): Moved from gas/config/tc-riscv.c.
-		(riscv_multi_subset_supports): Likewise.
-		* elfxx-riscv.h: Added extern for riscv_subset_supports and
-		riscv_multi_subset_supports.
-	gas/
-		* config/tc-riscv.c (riscv_subset_supports): Moved to
-		bfd/elfxx-riscv.c.
-		(riscv_multi_subset_supports): Likewise.
-		(riscv_rps_as): Defined for architectrue parser.
-		(riscv_set_arch): Updated.
-		(riscv_set_abi_by_arch): Likewise.
-		(riscv_csr_address): Likewise.
-		(reg_lookup_internal): Likewise.
-		(riscv_ip): Likewise.
-		(s_riscv_option): Updated.
-		* testsuite/gas/riscv/mapping-04b.d: Updated.
-		* testsuite/gas/riscv/mapping-norelax-03b.d: Likewise.
-		* testsuite/gas/riscv/mapping-norelax-04b.d: Likewise.
-	opcodes/
-		* riscv-dis.c: Include elfxx-riscv.h since we need the
-		architecture parser.  Also removed the cpu-riscv.h, it
-		is already included in elfxx-riscv.h.
-		(default_isa_spec): Defined since the parser need this
-		to set the default architecture string.
-		(xlen): Moved out from riscv_disassemble_insn as a global
-		variable, it is more convenient to initialize riscv_rps_dis.
-		(riscv_subsets): Defined to recoed the supported
-		extensions.
-		(riscv_rps_dis): Defined for architectrue parser.
-		(riscv_disassemble_insn): Call riscv_multi_subset_supports
-		to make sure if the instructions are valid or not.
-		(print_insn_riscv): Initialize the riscv_subsets by parsing
-		the elf architectrue attribute.  Otherwise, set the default
-		architectrue string to rv64gc.
-
-2021-11-11  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: testsuite: drop sim_compile cover function
-	Most code isn't using this, and the only call site (in one cris file)
-	can use target_compile directly.  So switch it over to simplify.
-
-	sim: cris: stop testing a.out explicitly [ld/13900]
-	Since gcc dropped support for a.out starting with 4.4.0 in 2009, it's
-	been impossible to verify this code actually still works.  Since it
-	crashes in ld, and it uses a config option that no other tests uses
-	and we want to remove, drop the test to avoid all the trouble.
-
-	sim: io: tweak compiler workaround with error output
-	Outputting an extra space broke a cris test.  Change the workaround
-	to use %s with an empty string to avoid the compiler warning but not
-	output an extra space.
-
-	sim: testsuite: delete unused arm remote host logic
-	There's no need to sync testutils.inc with remote hosts.  The one
-	we have in the source tree is all we need and only thing we test.
-	Delete it to simplify.
-
-	sim: synacor: simplify test generation
-	Objcopy was used to create a binary file of just the executable code
-	since the environment requires code to based at address 0.  We can
-	accomplish the same thing with the -Ttext=0 flag, so switch to that
-	to get rid of custom logic.
-
-2021-11-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-10  Tom Tromey  <tromey@adacore.com>
-
-	Handle PIE in .debug_loclists
-	Simon pointed out that my recent patches to .debug_loclists caused
-	some regressions.  After a brief discussion we realized it was because
-	his system compiler defaults to PIE.
-
-	This patch changes this code to unconditionally apply the text offset
-	here.  It also changes loclist_describe_location to work more like
-	dwarf2_find_location_expression.
-
-	I tested this by running the gdb.dwarf2 tests both with and without
-	-pie.
-
-2021-11-10  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	arm: enable Cortex-A710 CPU
-	This patch is adding support for Cortex-A710 CPU in Arm.
-
-	bfd/
-
-		* cpu-arm.c (processors): Add cortex-a710.
-
-	gas/
-
-		* NEWS: Update docs.
-		* config/tc-arm.c (arm_cpus): Add cortex-a710 to -mcpu.
-		* doc/c-arm.texi: Update docs.
-		* testsuite/gas/arm/cpu-cortex-a710.d: New test.
-
-2021-11-10  Clément Chigot  <clement.chigot@atos.net>
-
-	gdb: adjust x_file fields on COFF readers
-	Commit e86fc4a5bc37 ("PR 28447: implement multiple parameters for .file
-	on XCOFF") changes the structure associated to the internal
-	representation of files in COFF formats.  However, gdb directory update
-	has been forgotten, leading to compilation errors of this kind:
-
-	      CXX    coffread.o
-	    /home/simark/src/binutils-gdb/gdb/coffread.c: In function 'const char* coff_getfilename(internal_auxent*)':
-	    /home/simark/src/binutils-gdb/gdb/coffread.c:1343:29: error: 'union internal_auxent::<unnamed struct>::<unnamed>' has no member named 'x_zeroes'
-	     1343 |   if (aux_entry->x_file.x_n.x_zeroes == 0)
-	          |                             ^~~~~~~~
-
-	Fix it by adjusting the COFF code in GDB.
-
-	Change-Id: I703fa134bc722d47515efbd72b88fa5650af6c3c
-
-2021-11-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.opt/break-on-_exit.exp
-	Add a test-case to excercise the problem scenario reported in PR28527 and
-	fixed in commit a50bdb99afe "[gdb/tdep, rs6000] Don't skip system call in
-	skip_prologue":
-	- set a breakpoint on _exit, and
-	- verify that it triggers.
-
-	Note that this is not a regression test for that commit.  Since the actual
-	code in _exit may vary across os instances, we cannot guarantee that the
-	problem will always trigger with this test-case.
-
-	Rather, this test-case is a version of the original test-case
-	(gdb.threads/process-dies-while-detaching.exp) that is minimal while still
-	reproducing the problem reported in PR28527, in that same setting.
-
-	The benefit of this test-case is that it exercise real-life code and may
-	expose similar problems in other settings.  Also, it provides a much easier
-	test-case to investigate in case a similar problem occurs.
-
-	Tested on x86_64-linux and ppc64le-linux.
-
-2021-11-10  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: frv: flip trapdump default back to off
-	When I refactored this by scoping it to sim-frv-xxx in commit
-	e7954ef5e5ed90fb7d28c013518f4c2e6bcd20a1 ("sim: frv: scope the
-	unique configure flag"), I changed the default from off to on.
-	While the feature is nice for developers, it breaks a bunch of
-	tests which aren't expecting this extra output.  So flip it back
-	to off by default.
-
-2021-11-10  Pekka Seppänen  <pexu@sourceware.mail.kapsi.fi>
-
-	PR28575, readelf.c and strings.c use undefined type uint
-	Since --unicode support (commit b3aa80b45c4) both binutils/readelf.c
-	and binutils/strings.c use 'uint' in a few locations.  It likely
-	should be 'unsigned int' since there isn't anything defining 'uint'
-	within binutils (besides zlib) and AFAIK it isn't a standard type.
-
-		* readelf.c (print_symbol): Replace uint with unsigned int.
-		* strings.c (string_min, display_utf8_char): Likewise.
-		(print_unicode_stream_body, print_unicode_stream): Likewise.
-		(print_strings): Likewise.
-		(get_unicode_byte): Wrap long line.
-
-2021-11-10  Clément Chigot  <clement.chigot@atos.net>
-
-	ld: set correct flags for AIX shared tests
-	Previous flags were aimed to be run with XLC.
-	Nowadays, only GCC is being tested with GNU toolchain. Moreover,
-	recent XLC versions might also accept "-shared".
-
-		* testsuite/ld-shared/shared.exp: Adjust shared flags.
-
-2021-11-10  Clément Chigot  <clement.chigot@atos.net>
-
-	PR 28447: implement multiple parameters for .file on XCOFF
-	On XCOFF, ".file" pseudo-op allows 3 extras parameters to provide
-	additional information to AIX linker, or its debugger. These are
-	stored in auxiliary entries of the C_FILE symbol.
-
-	bfd/
-		PR 28447
-		* coffcode.h (combined_entry_type): Add extrap field.
-		(coff_bigobj_swap_aux_in): Adjust names of x_file fields.
-		(coff_bigobj_swap_aux_out): Likewise.
-		* coffgen.c (coff_write_auxent_fname): New function.
-		(coff_fix_symbol_name): Write x_file using
-		 coff_write_auxent_fname.
-		(coff_write_symbol): Likewise.
-		(coff_write_symbols): Add C_FILE auxiliary entries to
-		string table if needed.
-		(coff_get_normalized_symtab): Adjust names of x_file fields.
-		Normalize C_FILE auxiliary entries.
-		(coff_print_symbol): Print C_FILE auxiliary entries.
-		* coff-rs6000.c (_bfd_xcoff_swap_aux_in): Adjust names of
-		x_file fields.
-		(_bfd_xcoff_swap_aux_out): Likewise.
-		* coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Likewise.
-		(_bfd_xcoff64_swap_aux_out): Likewise.
-		* cofflink.c (_bfd_coff_final_link): Likewise.
-		(_bfd_coff_link_input_bfd): Likewise.
-		* coffswap.h (coff_swap_aux_in): Likewise.
-		* peXXigen.c (_bfd_XXi_swap_aux_in): Likewise.
-		(_bfd_XXi_swap_aux_out): Likewise.
-		* xcofflink.c (xcoff_link_input_bfd): Likewise.
-		* libcoff.h: Regenerate.
-	gas/
-		* config/tc-ppc.c (ppc_file): New function.
-		* config/tc-ppc.h (OBJ_COFF_MAX_AUXENTRIES): Change to 4.
-		* testsuite/gas/ppc/aix.exp: Add tests.
-		* testsuite/gas/ppc/xcoff-file-32.d: New test.
-		* testsuite/gas/ppc/xcoff-file-64.d: New test.
-		* testsuite/gas/ppc/xcoff-file.s: New test.
-	include/
-		* coff/internal.h (union internal_auxent): Change x_file to be a
-		  struct instead of a union. Add x_ftype field.
-		* coff/rs6000.h (union external_auxent): Add x_resv field.
-		* coff/xcoff.h (XFT_FN): New define.
-		(XFT_CT): Likewise.
-		(XFT_CV): Likewise.
-		(XFT_CD): Likewise.
-
-2021-11-10  Kevin Buettner  <kevinb@redhat.com>
-
-	Test case for Bug 28308
-	The purpose of this test is described in the comments in
-	dprintf-execution-x-script.exp.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28308
-
-	The name of this new test was based on that of an existing test,
-	bp-cmds-execution-x-script.exp.  I started off by copying that test,
-	adding to it, and then rewriting almost all of it.  It's different
-	enough that I decided that listing the copyright year as 2021
-	was sufficient.
-
-2021-11-10  Kevin Buettner  <kevinb@redhat.com>
-
-	Fix PR 28308 - dprintf breakpoints not working when run from script
-	This commit fixes Bug 28308, titled "Strange interactions with
-	dprintf and break/commands":
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28308
-
-	Since creating that bug report, I've found a somewhat simpler way of
-	reproducing the problem.  I've encapsulated it into the GDB test case
-	which I've created along with this bug fix.  The name of the new test
-	is gdb.base/dprintf-execution-x-script.exp, I'll demonstrate the
-	problem using this test case, though for brevity, I've placed all
-	relevant files in the same directory and have renamed the files to all
-	start with 'dp-bug' instead of 'dprintf-execution-x-script'.
-
-	The script file, named dp-bug.gdb, consists of the following commands:
-
-	dprintf increment, "dprintf in increment(), vi=%d\n", vi
-	break inc_vi
-	commands
-	  continue
-	end
-	run
-
-	Note that the final command in this script is 'run'.  When 'run' is
-	instead issued interactively, the  bug does not occur.  So, let's look
-	at the interactive case first in order to see the correct/expected
-	output:
-
-	$ gdb -q -x dp-bug.gdb dp-bug
-	... eliding buggy output which I'll discuss later ...
-	(gdb) run
-	Starting program: /mesquite2/sourceware-git/f34-master/bld/gdb/tmp/dp-bug
-	vi=0
-	dprintf in increment(), vi=0
-
-	Breakpoint 2, inc_vi () at dprintf-execution-x-script.c:26
-	26	in dprintf-execution-x-script.c
-	vi=1
-	dprintf in increment(), vi=1
-
-	Breakpoint 2, inc_vi () at dprintf-execution-x-script.c:26
-	26	in dprintf-execution-x-script.c
-	vi=2
-	dprintf in increment(), vi=2
-
-	Breakpoint 2, inc_vi () at dprintf-execution-x-script.c:26
-	26	in dprintf-execution-x-script.c
-	vi=3
-	[Inferior 1 (process 1539210) exited normally]
-
-	In this run, in which 'run' was issued from the gdb prompt (instead
-	of at the end of the script), there are three dprintf messages along
-	with three 'Breakpoint 2' messages.  This is the correct output.
-
-	Now let's look at the output that I snipped above; this is the output
-	when 'run' is issued from the script loaded via GDB's -x switch:
-
-	$ gdb -q -x dp-bug.gdb dp-bug
-	Reading symbols from dp-bug...
-	Dprintf 1 at 0x40116e: file dprintf-execution-x-script.c, line 38.
-	Breakpoint 2 at 0x40113a: file dprintf-execution-x-script.c, line 26.
-	vi=0
-	dprintf in increment(), vi=0
-
-	Breakpoint 2, inc_vi () at dprintf-execution-x-script.c:26
-	26	dprintf-execution-x-script.c: No such file or directory.
-	vi=1
-
-	Breakpoint 2, inc_vi () at dprintf-execution-x-script.c:26
-	26	in dprintf-execution-x-script.c
-	vi=2
-
-	Breakpoint 2, inc_vi () at dprintf-execution-x-script.c:26
-	26	in dprintf-execution-x-script.c
-	vi=3
-	[Inferior 1 (process 1539175) exited normally]
-
-	In the output shown above, only the first dprintf message is printed.
-	The 2nd and 3rd dprintf messages are missing!  However, all three
-	'Breakpoint 2...' messages are still printed.
-
-	Why does this happen?
-
-	bpstat_do_actions_1() in gdb/breakpoint.c contains the following
-	comment and code near the start of the function:
-
-	  /* Avoid endless recursion if a `source' command is contained
-	     in bs->commands.  */
-	  if (executing_breakpoint_commands)
-	    return 0;
-
-	  scoped_restore save_executing
-	    = make_scoped_restore (&executing_breakpoint_commands, 1);
-
-	Also, as described by this comment prior to the 'async' field
-	in 'struct ui' in top.h, the main UI starts off in sync mode
-	when processing command line arguments:
-
-	  /* True if the UI is in async mode, false if in sync mode.  If in
-	     sync mode, a synchronous execution command (e.g, "next") does not
-	     return until the command is finished.  If in async mode, then
-	     running a synchronous command returns right after resuming the
-	     target.  Waiting for the command's completion is later done on
-	     the top event loop.  For the main UI, this starts out disabled,
-	     until all the explicit command line arguments (e.g., `gdb -ex
-	     "start" -ex "next"') are processed.  */
-
-	This combination of things, the state of the static global
-	'executing_breakpoint_commands' plus the state of the async
-	field in the main UI causes this behavior.
-
-	This is a backtrace after hitting the dprintf breakpoint for
-	the second time when doing 'run' from the script file, i.e.
-	non-interactively:
-
-	Thread 1 "gdb" hit Breakpoint 3, bpstat_do_actions_1 (bsp=0x7fffffffc2b8)
-	    at /ironwood1/sourceware-git/f34-master/bld/../../worktree-master/gdb/breakpoint.c:4431
-	4431	  if (executing_breakpoint_commands)
-
-	 #0  bpstat_do_actions_1 (bsp=0x7fffffffc2b8)
-	     at gdb/breakpoint.c:4431
-	 #1  0x00000000004d8bc6 in dprintf_after_condition_true (bs=0x1538090)
-	     at gdb/breakpoint.c:13048
-	 #2  0x00000000004c5caa in bpstat_stop_status (aspace=0x116dbc0, bp_addr=0x40116e, thread=0x137f450, ws=0x7fffffffc718,
-	     stop_chain=0x1538090) at gdb/breakpoint.c:5498
-	 #3  0x0000000000768d98 in handle_signal_stop (ecs=0x7fffffffc6f0)
-	     at gdb/infrun.c:6172
-	 #4  0x00000000007678d3 in handle_inferior_event (ecs=0x7fffffffc6f0)
-	     at gdb/infrun.c:5662
-	 #5  0x0000000000763cd5 in fetch_inferior_event ()
-	     at gdb/infrun.c:4060
-	 #6  0x0000000000746d7d in inferior_event_handler (event_type=INF_REG_EVENT)
-	     at gdb/inf-loop.c:41
-	 #7  0x00000000007a702f in handle_target_event (error=0, client_data=0x0)
-	     at gdb/linux-nat.c:4207
-	 #8  0x0000000000b8cd6e in gdb_wait_for_event (block=block@entry=0)
-	     at gdbsupport/event-loop.cc:701
-	 #9  0x0000000000b8d032 in gdb_wait_for_event (block=0)
-	     at gdbsupport/event-loop.cc:597
-	 #10 gdb_do_one_event () at gdbsupport/event-loop.cc:212
-	 #11 0x00000000009d19b6 in wait_sync_command_done ()
-	     at gdb/top.c:528
-	 #12 0x00000000009d1a3f in maybe_wait_sync_command_done (was_sync=0)
-	     at gdb/top.c:545
-	 #13 0x00000000009d2033 in execute_command (p=0x7fffffffcb18 "", from_tty=0)
-	     at gdb/top.c:676
-	 #14 0x0000000000560d5b in execute_control_command_1 (cmd=0x13b9bb0, from_tty=0)
-	     at gdb/cli/cli-script.c:547
-	 #15 0x000000000056134a in execute_control_command (cmd=0x13b9bb0, from_tty=0)
-	     at gdb/cli/cli-script.c:717
-	 #16 0x00000000004c3bbe in bpstat_do_actions_1 (bsp=0x137f530)
-	     at gdb/breakpoint.c:4469
-	 #17 0x00000000004c3d40 in bpstat_do_actions ()
-	     at gdb/breakpoint.c:4533
-	 #18 0x00000000006a473a in command_handler (command=0x1399ad0 "run")
-	     at gdb/event-top.c:624
-	 #19 0x00000000009d182e in read_command_file (stream=0x113e540)
-	     at gdb/top.c:443
-	 #20 0x0000000000563697 in script_from_file (stream=0x113e540, file=0x13bb0b0 "dp-bug.gdb")
-	     at gdb/cli/cli-script.c:1642
-	 #21 0x00000000006abd63 in source_gdb_script (extlang=0xc44e80 <extension_language_gdb>, stream=0x113e540,
-	     file=0x13bb0b0 "dp-bug.gdb") at gdb/extension.c:188
-	 #22 0x0000000000544400 in source_script_from_stream (stream=0x113e540, file=0x7fffffffd91a "dp-bug.gdb",
-	     file_to_open=0x13bb0b0 "dp-bug.gdb")
-	     at gdb/cli/cli-cmds.c:692
-	 #23 0x0000000000544557 in source_script_with_search (file=0x7fffffffd91a "dp-bug.gdb", from_tty=1, search_path=0)
-	     at gdb/cli/cli-cmds.c:750
-	 #24 0x00000000005445cf in source_script (file=0x7fffffffd91a "dp-bug.gdb", from_tty=1)
-	     at gdb/cli/cli-cmds.c:759
-	 #25 0x00000000007cf6d9 in catch_command_errors (command=0x5445aa <source_script(char const*, int)>,
-	     arg=0x7fffffffd91a "dp-bug.gdb", from_tty=1, do_bp_actions=false)
-	     at gdb/main.c:523
-	 #26 0x00000000007cf85d in execute_cmdargs (cmdarg_vec=0x7fffffffd1b0, file_type=CMDARG_FILE, cmd_type=CMDARG_COMMAND,
-	     ret=0x7fffffffd18c) at gdb/main.c:615
-	 #27 0x00000000007d0c8e in captured_main_1 (context=0x7fffffffd3f0)
-	     at gdb/main.c:1322
-	 #28 0x00000000007d0eba in captured_main (data=0x7fffffffd3f0)
-	     at gdb/main.c:1343
-	 #29 0x00000000007d0f25 in gdb_main (args=0x7fffffffd3f0)
-	     at gdb/main.c:1368
-	 #30 0x00000000004186dd in main (argc=5, argv=0x7fffffffd508)
-	     at gdb/gdb.c:32
-
-	There are two frames for bpstat_do_actions_1(), one at frame #16 and
-	the other at frame #0.  The one at frame #16 is processing the actions
-	for Breakpoint 2, which is a 'continue'.  The one at frame #0 is attempting
-	to process the dprintf breakpoint action.  However, at this point,
-	the value of 'executing_breakpoint_commands' is 1, forcing an early
-	return, i.e. prior to executing the command(s) associated with the dprintf
-	breakpoint.
-
-	For the sake of comparison, this is what the stack looks like when hitting
-	the dprintf breakpoint for the second time when issuing the 'run'
-	command from the GDB prompt.
-
-	Thread 1 "gdb" hit Breakpoint 3, bpstat_do_actions_1 (bsp=0x7fffffffccd8)
-	    at /ironwood1/sourceware-git/f34-master/bld/../../worktree-master/gdb/breakpoint.c:4431
-	4431	  if (executing_breakpoint_commands)
-
-	 #0  bpstat_do_actions_1 (bsp=0x7fffffffccd8)
-	     at gdb/breakpoint.c:4431
-	 #1  0x00000000004d8bc6 in dprintf_after_condition_true (bs=0x16b0290)
-	     at gdb/breakpoint.c:13048
-	 #2  0x00000000004c5caa in bpstat_stop_status (aspace=0x116dbc0, bp_addr=0x40116e, thread=0x13f0e60, ws=0x7fffffffd138,
-	     stop_chain=0x16b0290) at gdb/breakpoint.c:5498
-	 #3  0x0000000000768d98 in handle_signal_stop (ecs=0x7fffffffd110)
-	     at gdb/infrun.c:6172
-	 #4  0x00000000007678d3 in handle_inferior_event (ecs=0x7fffffffd110)
-	     at gdb/infrun.c:5662
-	 #5  0x0000000000763cd5 in fetch_inferior_event ()
-	     at gdb/infrun.c:4060
-	 #6  0x0000000000746d7d in inferior_event_handler (event_type=INF_REG_EVENT)
-	     at gdb/inf-loop.c:41
-	 #7  0x00000000007a702f in handle_target_event (error=0, client_data=0x0)
-	     at gdb/linux-nat.c:4207
-	 #8  0x0000000000b8cd6e in gdb_wait_for_event (block=block@entry=0)
-	     at gdbsupport/event-loop.cc:701
-	 #9  0x0000000000b8d032 in gdb_wait_for_event (block=0)
-	     at gdbsupport/event-loop.cc:597
-	 #10 gdb_do_one_event () at gdbsupport/event-loop.cc:212
-	 #11 0x00000000007cf512 in start_event_loop ()
-	     at gdb/main.c:421
-	 #12 0x00000000007cf631 in captured_command_loop ()
-	     at gdb/main.c:481
-	 #13 0x00000000007d0ebf in captured_main (data=0x7fffffffd3f0)
-	     at gdb/main.c:1353
-	 #14 0x00000000007d0f25 in gdb_main (args=0x7fffffffd3f0)
-	     at gdb/main.c:1368
-	 #15 0x00000000004186dd in main (argc=5, argv=0x7fffffffd508)
-	     at gdb/gdb.c:32
-
-	This relatively short backtrace is due to the current UI's async field
-	being set to 1.
-
-	Yet another thing to be aware of regarding this problem is the
-	difference in the way that commands associated to dprintf breakpoints
-	versus regular breakpoints are handled.  While they both use a command
-	list associated with the breakpoint, regular breakpoints will place
-	the commands to be run on the bpstat chain constructed in
-	bp_stop_status().  These commands are run later on.  For dprintf
-	breakpoints, commands are run via the 'after_condition_true' function
-	pointer directly from bpstat_stop_status().  (The 'commands' field in
-	the bpstat is cleared in dprintf_after_condition_true().  This
-	prevents the dprintf commands from being run again later on when other
-	commands on the bpstat chain are processed.)
-
-	Another thing that I noticed is that dprintf breakpoints are the only
-	type of breakpoint which use 'after_condition_true'.  This suggests
-	that one possible way of fixing this problem, that of making dprintf
-	breakpoints work more like regular breakpoints, probably won't work.
-	(I must admit, however, that my understanding of this code isn't
-	complete enough to say why.  I'll trust that whoever implemented it
-	had a good reason for doing it this way.)
-
-	The comment referenced earlier regarding 'executing_breakpoint_commands'
-	states that the reason for checking this variable is to avoid
-	potential endless recursion when a 'source' command appears in
-	bs->commands.  We know that a dprintf command is constrained to either
-	1) execution of a GDB printf command, 2) an inferior function call of
-	a printf-like function, or 3) execution of an agent-printf command.
-	Therefore, infinite recursion due to a 'source' command cannot happen
-	when executing commands upon hitting a dprintf breakpoint.
-
-	I chose to fix this problem by having dprintf_after_condition_true()
-	directly call execute_control_commands().  This means that it no
-	longer attempts to go through bpstat_do_actions_1() avoiding the
-	infinite recursion check for potential 'source' commands on the
-	command chain.  I think it simplifies this code a little bit too, a
-	definite bonus.
-
-	Summary:
-
-		* breakpoint.c (dprintf_after_condition_true): Don't call
-		bpstat_do_actions_1().  Call execute_control_commands()
-		instead.
-
-2021-11-10  Alan Modra  <amodra@gmail.com>
-
-	Re: Add --unicode option
-		* objdump: Whitespace fixes.
-		(long_options): Correct "ctf" entry.
-
-2021-11-10  Alan Modra  <amodra@gmail.com>
-
-	Re: Add --unicode option
-	At low optimisation levels gcc may warn.
-
-		* strings.c (print_unicode_stream_body): Avoid bogus "may be
-		used unitialised" warning.
-
-2021-11-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-09  Alan Modra  <amodra@gmail.com>
-
-	PR28543, readelf entered an infinite loop
-	This little tweak terminates fuzzed binary readelf output a little
-	quicker.
-
-		PR 28543
-		* dwarf.c (read_and_display_attr_value): Consume a byte when
-		form is unrecognized.
-
-2021-11-09  Alan Modra  <amodra@gmail.com>
-
-	PR28542, Undefined behaviours in readelf.c
-		PR 28542
-		* readelf.c (dump_relocations): Check that section headers have
-		been read before attempting to access section name.
-		(print_dynamic_symbol): Likewise.
-		(process_mips_specific): Delete dead code.
-
-2021-11-09  Pedro Alves  <pedro@palves.net>
-
-	gdb::array_view slicing/container selftest - test std::array too
-	Change-Id: I2141b0b8a09f6521a59908599eb5ba1a19b18dc6
-
-2021-11-09  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.debuginfod/fetch_src_and_symbols.exp: fix when GDB is built with AddressSanitizer
-	This test fails for me, showing:
-
-	    ERROR: tcl error sourcing /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp.
-	    ERROR: This GDB was configured as follows:
-	       configure --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
-	                 --with-auto-load-dir=$debugdir:$datadir/auto-load
-	                 --with-auto-load-safe-path=$debugdir:$datadir/auto-load
-	    ... and much more ...
-
-	The problem is that TCL's exec throws an error as soon as the exec'ed
-	process outputs on stderr.  When GDB is built with ASan, it prints some
-	warnings about pre-existing signal handlers:
-
-	    warning: Found custom handler for signal 7 (Bus error) preinstalled.
-	    warning: Found custom handler for signal 8 (Floating point exception) preinstalled.
-	    warning: Found custom handler for signal 11 (Segmentation fault) preinstalled.
-
-	Pass --quiet to GDB to avoid these warnings.
-
-	Change-Id: I3751d89b9b1df646da19149d7cb86775e2d3e80f
-
-2021-11-09  Tom Tromey  <tromey@adacore.com>
-
-	Correctly handle DW_LLE_start_end
-	When the code to handle DW_LLE_start_end was added (as part of some
-	DWARF 5 work), it was written to add the base address.  However, this
-	seems incorrect -- the DWARF standard describes this as an address,
-	not an offset from the base address.
-
-	This patch changes a couple of spots in dwarf2/loc.c to fix this
-	problem.  It then changes decode_debug_loc_addresses to return
-	DEBUG_LOC_OFFSET_PAIR instead, which preserves the previous semantics.
-
-	This only showed up on the RISC-V target internally, due to the
-	combination of DWARF 5 and a newer version of GCC.  I've updated a
-	couple of existing loclists test cases to demonstrate the bug.
-
-2021-11-09  Tom Tromey  <tromey@adacore.com>
-
-	Fix build on rhES5
-	The rhES5 build failed due to an upstream import a while back.  The
-	bug here is that, while the 'personality' function exists,
-	ADDR_NO_RANDOMIZE is only defined in <linux/personality.h>, not
-	<sys/personality.h>.
-
-	However, <linux/personality.h> does not declare the 'personality'
-	function, and <sys/personality.h> and <linux/personality.h> cannot
-	both be included.
-
-	This patch restores one of the removed configure checks and updates
-	the code to check it.
-
-	We had this as a local patch at AdaCore, because it seemed like there
-	was no interest upstream.  However, now it turns out that this fixes
-	PR build/28555, so I'm sending it now.
-
-2021-11-09  H.J. Lu  <hjl.tools@gmail.com>
-
-	doc/ctf-spec.texi: Remove "@validatemenus off"
-	Remove @validatemenus from ctf-spec.texi, which has been removed from
-	texinfo by
-
-	commit a16dd1a9ece08568a1980b9a65a3a9090717997f
-	Author: Gavin Smith <gavinsmith0123@gmail.com>
-	Date:   Mon Oct 12 16:32:37 2020 +0100
-
-	    * doc/texinfo.texi
-	    (Writing a Menu, Customization Variables for @-Commands)
-	    (Command List),
-	    * doc/refcard/txirefcard.tex
-	    Remove @validatemenus.
-	    * tp/Texinfo/XS/Makefile.am (command_ids.h): Use gawk instead
-	    of awk.  Avoid discouraged "$p" usage, using "$(p)" instead.
-	    * tp/Texinfo/XS/configure.ac: Check for gawk.
-
-	commit 128acab3889b51809dc3bd3c6c74b61d13f7f5f4
-	Author: Gavin Smith <gavinsmith0123@gmail.com>
-	Date:   Thu Jan 3 14:51:53 2019 +0000
-
-	    Update refcard.
-
-	    * doc/refcard/txirefcard.tex: @setfilename is no longer
-	    mandatory.  Do not mention @validatemenus or explicitly giving
-	    @node pointers, as these are not very important features.
-
-		PR libctf/28567
-		* doc/ctf-spec.texi: Remove "@validatemenus off".
-
-2021-11-09  Nick Clifton  <nickc@redhat.com>
-
-	Add --unicode option to control how unicode characters are handled by display tools.
-		* nm.c: Add --unicode option to control how unicode characters are
-		handled.
-		* objdump.c: Likewise.
-		* readelf.c: Likewise.
-		* strings.c: Likewise.
-		* binutils.texi: Document the new feature.
-		* NEWS: Document the new feature.
-		* testsuite/binutils-all/unicode.exp: New file.
-		* testsuite/binutils-all/nm.hex.unicode
-		* testsuite/binutils-all/strings.escape.unicode
-		* testsuite/binutils-all/objdump.highlight.unicode
-		* testsuite/binutils-all/readelf.invalid.unicode
-
-2021-11-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: simplify testsuite a bit
-	Switch from the centralized list in the exp file to each test declaring
-	its own requirements which they're already (mostly) doing.  This will
-	increase coverage slightly by running more tests in more configurations
-	since the hardcoded exp list was a little out of date.
-
-	We have to mark the psh* tests as shdsp only (to match what the exp
-	file was doing), mark the fsca & fsrra tests as failing (since they
-	weren't even being run by the exp file), and to fix the expected
-	output & status of the fail test.
-
-2021-11-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cris: clean up missing func prototype warnings
-	Move some unused funcs under existing #if 0 protection, mark a few
-	local funcs as static, and add missing prototypes for the rest which
-	are used from other files.  This fixes all the fatal warnings in the
-	mloop files so we can turn -Werror on here fully.
-
-2021-11-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-08  Lancelot SIX  <lsix@lancelotsix.com>
-
-	Improve gdb::array_view ctor from contiguous containers
-	While reading the interface of gdb::array_view, I realized that the
-	constructor that builds an array_view on top of a contiguous container
-	(such as std::vector, std::array or even gdb::array_view) can be
-	missused.
-
-	Lets consider the following code sample:
-
-		struct Parent
-		{
-		  Parent (int a): a { a } {}
-		  int a;
-		};
-
-		std::ostream &operator<< (std::ostream& os, const Parent & p)
-		{ os << "Parent {a=" << p.a << "}"; return os; }
-
-		struct Child : public Parent
-		{
-		  Child (int a, int b): Parent { a }, b { b } {}
-		  int b;
-		};
-
-		std::ostream &operator<< (std::ostream& os, const Child & p)
-		{ os << "Child {a=" << p.a << ", b=" << p.b << "}"; return os; }
-
-		template <typename T>
-		void print (const gdb::array_view<const T> &p)
-		{
-		  std::for_each (p.begin (), p.end (), [](const T &p) { std::cout << p << '\n'; });
-		}
-
-	Then with the current interface nothinng prevents this usage of
-	array_view to be done:
-
-		const std::array<Child, 3> elts = {
-		  Child {1, 2},
-		  Child {3, 4},
-		  Child {5, 6}
-		};
-		print_all<Parent> (elts);
-
-	This compiles fine and produces the following output:
-
-		Parent {a=1}
-		Parent {a=2}
-		Parent {a=3}
-
-	which is obviously wrong.  There is nowhere in memory a Parent-like
-	object for which the A member is 2 and this call to print_all<Parent>
-	shold not compile at all (calling print_all<Child> is however fine).
-
-	This comes down to the fact that a Child* is convertible into a Parent*,
-	and that an array view is constructed to a pointer to the first element
-	and a size.  The valid type pointed to that can be used with this
-	constructor are restricted using SFINAE, which requires that a
-	pointer to a member into the underlying container can be converted into a
-	pointer the array_view's data type.
-
-	This patch proposes to change the constraints on the gdb::array_view
-	ctor which accepts a container now requires that the (decayed) type of
-	the elements in the container match the (decayed) type of the array_view
-	being constructed.
-
-	Applying this change required minimum adjustment in GDB codebase, which
-	are also included in this patch.
-
-	Tested by rebuilding.
-
-2021-11-08  Lancelot SIX  <lsix@lancelotsix.com>
-
-	Add a const version of gdb_argv:as_array_view
-	This commits adds const versions for the GET and AS_ARRAX_VIEW methods
-	of gdb_argv.  Those methods will be required in the following patch of
-	the series.
-
-2021-11-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix nulltr -> nullptr typo
-	Change-Id: I04403bd85ec3fa75ea14130d68daba675a2a8aeb
-
-2021-11-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: tweak scoped_disable_commit_resumed uses when resuming all threads in non-stop
-	When doing "continue -a" in non-stop mode, each thread is individually
-	resumed while the commit resumed state is enabled.  This forces the
-	target to commit each resumption immediately, instead of being able to
-	batch things.
-
-	The reason is that there is no scoped_disable_commit_resumed around the
-	loop over threads in continue_1, when "non_stop && all_threads" is true.
-	Since the proceed function is called once for each thread, the
-	scoped_disable_commit_resumed in proceed therefore forces commit-resumed
-	between each thread resumption.  Add the necessary
-	scoped_disable_commit_resumed in continue_1 to avoid that.
-
-	I looked at the MI side of things, the function exec_continue, and found
-	that it was correct.  There is a similar iteration over threads, and
-	there is a scoped_disable_commit_resumed at the function scope.  This is
-	not wrong, but a bit more than we need.  The branches that just call
-	continue_1 do not need it, as continue_1 takes care of disabling commit
-	resumed.  So, move the scoped_disable_commit_resumed to the inner scope
-	where we iterate on threads and proceed them individually.
-
-	Here's an example debugging a multi-threaded program attached by
-	gdbserver (debug output trimmed for brevity):
-
-	    $ ./gdb -nx -q --data-directory=data-directory -ex "set non-stop" -ex "tar rem :1234"
-	    (gdb) set debug remote
-	    (gdb) set debug infrun
-	    (gdb) c -a
-	    Continuing.
-	    [infrun] proceed: enter
-	      [infrun] scoped_disable_commit_resumed: reason=proceeding
-	      [remote] Sending packet: $vCont;c:p14388.14388#90
-	      [infrun] reset: reason=proceeding
-	      [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target remote
-	    [infrun] proceed: exit
-	    [infrun] proceed: enter
-	      [infrun] scoped_disable_commit_resumed: reason=proceeding
-	      [remote] Sending packet: $vCont;c:p14388.1438a#b9
-	      [infrun] reset: reason=proceeding
-	      [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target remote
-	      [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target remote
-	    [infrun] proceed: exit
-	    ... and so on for each thread ...
-
-	Notice how we send one vCont;c for each thread.  With the patch applied, we
-	send a single vCont;c at the end:
-
-	    [infrun] scoped_disable_commit_resumed: reason=continue all threads in non-stop
-	    [infrun] proceed: enter
-	      [infrun] scoped_disable_commit_resumed: reason=proceeding
-	      [infrun] reset: reason=proceeding
-	    [infrun] proceed: exit
-	    [infrun] clear_proceed_status_thread: Thread 85790.85792
-	    [infrun] proceed: enter
-	      [infrun] scoped_disable_commit_resumed: reason=proceeding
-	      [infrun] reset: reason=proceeding
-	    [infrun] proceed: exit
-	    ... proceeding threads individually ...
-	    [infrun] reset: reason=continue all threads in non-stop
-	    [infrun] maybe_set_commit_resumed_all_targets: enabling commit-resumed for target remote
-	    [infrun] maybe_call_commit_resumed_all_targets: calling commit_resumed for target remote
-	    [remote] Sending packet: $vCont;c#a8
-
-	Change-Id: I331dd2473c5aa5114f89854196fed2a8fdd122bb
-
-2021-11-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make dwarf2_find_containing_comp_unit take a dwarf2_per_bfd
-	While reading another patch, I saw that this function didn't need to
-	take a dwarf2_per_objfile, but could take a dwarf2_per_bfd instead.
-	It doesn't change the behavior, but doing this shows that this function
-	is objfile-independent (can work with only the shared per-bfd data).
-
-	Change-Id: I58f9c9cef6688902e95226480285da2d0005d77f
-
-2021-11-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove bpstat typedef, rename bpstats to bpstat
-	I don't find that the bpstat typedef, which hides a pointer, is
-	particularly useful.  In fact, it confused me many times, and I just see
-	it as something to remember that adds cognitive load.  Also, with C++,
-	we might want to be able to pass bpstats objects by const-reference, not
-	necessarily by pointer.
-
-	So, remove the bpstat typedef and rename struct bpstats to bpstat (since
-	it represents one bpstat, it makes sense that it is singular).
-
-	Change-Id: I52e763b6e54ee666a9e045785f686d37b4f5f849
-
-2021-11-08  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: add CTF format specification
-	It's been a long time since most of this was written: it's long past
-	time to put it in the binutils source tree.  It's believed correct and
-	complete insofar as it goes: it documents format v3 (the current
-	version) but not the libctf API or any earlier versions.  (The
-	earlier versions can be read by libctf but not generated by it, and you
-	are highly unlikely ever to see an example of any of them.)
-
-	libctf/ChangeLog
-	2021-11-08  Nick Alcock  <nick.alcock@oracle.com>
-
-		* doc/ctf-spec.texi: New file.
-		* configure.ac (MAKEINFO): Add.
-		(BUILD_INFO): Likewise.
-		(AC_CONFIG_FILES) [doc/Makefile]: Add.
-		* Makefile.am [BUILD_INFO] (SUBDIRS): Add doc/.
-		* doc/Makefile.am: New file.
-		* doc/Makefile.in: Likewise.
-		* configure: Regenerated.
-		* Makefile.in: Likewise.
-
-2021-11-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-07  Alan Modra  <amodra@gmail.com>
-
-	Correct ld script wildcard matching description
-	Goes with commit 68bbb9f788d0
-
-		* ld.texi (Input Section Wildcards): Delete paragraph incorrectly
-		saying '*' does not match '/'.
-
-2021-11-07  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: fix conversion of PC to an integer
-	On LLP64 targets where sizeof(long) != sizeof(void*), this code fails:
-	sim/sh/interp.c:704:24: error: cast from pointer to integer of different size  -Werror=pointer-to-int-cast]
-	  704 |   do { memstalls += ((((long) PC & 3) != 0) ? (n) : ((n) - 1)); } while (0)
-	      |                        ^
-
-	Since this code simply needs to check alignment, cast it using uintptr_t
-	which is the right type for this.
-
-2021-11-07  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: clean up time(NULL) call
-	Casting 0 to a pointer via (long *) doesn't work on LLP64 targets:
-	error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
-
-	It's also unnecessary here.  We can simply pass NULL like every other
-	bit of code does.
-
-2021-11-07  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: sh: break utime logic out of _WIN32 check
-	Some _WIN32 targets provide utime (like mingw), so move the header
-	include out from _WIN32 and under the specific HAVE_UTIME_H check.
-
-	sim: sh: drop errno extern
-	This isn't needed on any reasonable target nowadays, and no other
-	source does this, and breaks with some mingw targets, so punt the
-	extern entirely.
-
-	sim: sh: fix isnan redefinition with mingw targets
-	The code assumes that all _WIN32 targets are the same and can
-	define isnan to _isnan.  For mingw targets, they provide an isnan
-	define already, so no need for the fallback here.
-
-	sim: arm/bfin/rx: undefine page size from system headers
-	Some targets (like cygwin) will export page size defines that clash
-	with our local usage here.  Undefine the system one to fix building
-	for these targets.
-
-	sim: ppc: switch to libiberty environ.h
-	Drop our compat code and assume environ exists to simplify.
-	We did this for all other targets already, but ppc was missed.
-
-	sim: sh: enable -Werror everywhere
-	With most of the warnings fixed in interp.c, we can enable -Werror
-	here too now.  There are some -Wmaybe-uninitialized warnings still
-	lurking that look legitimate, but we don't flag those are fatal,
-	and I don't have the expertise to dive into each opcode to figure
-	out the right way to clean them up.
-
-	sim: sh: fix uninitialized variable usage with pdmsb
-	This block of code relies on i to control which bits to test and how
-	many times to run through the loop, but it never actually initialized
-	it.  There is another chunk of code that handles the pdmsb instruction
-	that sets i to 16, so use that here too assuming it's correct.  The
-	programming manual suggests this is the right value too, but I am by
-	no means a SuperH DSP expert.  The tests are still passing though ...
-
-	sim: sh: constify a few read-only lookup tables
-
-	sim: sh: fix various parentheses warnings
-	Add parentheses to a bunch of places where the compiler suggests we
-	do to avoid confusion to most readers.
-
-	sim: sh: fix unused-value warnings
-	These macro expansions are deliberate in not using the computed value
-	so that they trigger side-effects (possible invalid memory accesses)
-	but while otherwise being noops.  Add a (void) cast so the compiler
-	knows these are intentional.
-
-	sim: sh: rework register layout with anonymous unions & structs
-	Now that we require C11, we can leverage anonymous unions & structs
-	to fix a long standing issue with the SH register layout.  The use
-	of sregs.i for sh-dsp has generated a lot of compiler warnings about
-	the access being out of bounds -- it only has 7 elements declared,
-	but code goes beyond that to reach into the fregs that follow.  But
-	now that we have anonymous unions, we can reduce the nested names
-	and have sregs cover all of these registers.
-
-2021-11-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-06  Tiezhu Yang  <yangtiezhu@loongson.cn>
-
-	sim: mips: use sim_fpu_to{32,64}u to fix build warnings
-	Since the first argument type is unsigned32 or unsigned64, just use
-	sim_fpu_to{32,64}u instead of sim_fpu_to{32,64}i to fix the following
-	build warnings:
-
-	  CC     cp1.o
-	.../sim/mips/cp1.c: In function 'convert':
-	.../sim/mips/cp1.c:1425:32: warning: pointer targets in passing argument 1 of 'sim_fpu_to32i' differ in signedness [-Wpointer-sign]
-	       status |= sim_fpu_to32i (&result32, &wop, round);
-	                                ^~~~~~~~~
-	In file included from .../sim/mips/sim-main.h:67,
-	                 from .../sim/mips/cp1.c:46:
-	.../sim/mips/../common/sim-fpu.h:270:22: note: expected 'signed32 *' {aka 'int *'} but argument is of type 'unsigned32 *' {aka 'unsigned int *'}
-	 INLINE_SIM_FPU (int) sim_fpu_to32i (signed32 *i, const sim_fpu *f,
-	                      ^~~~~~~~~~~~~
-	.../sim/mips/cp1.c:1429:32: warning: pointer targets in passing argument 1 of 'sim_fpu_to64i' differ in signedness [-Wpointer-sign]
-	       status |= sim_fpu_to64i (&result64, &wop, round);
-	                                ^~~~~~~~~
-	In file included from .../sim/mips/sim-main.h:67,
-	                 from .../sim/mips/cp1.c:46:
-	.../sim/mips/../common/sim-fpu.h:274:22: note: expected 'signed64 *' {aka 'long int *'} but argument is of type 'unsigned64 *' {aka 'long unsigned int *'}
-	 INLINE_SIM_FPU (int) sim_fpu_to64i (signed64 *i, const sim_fpu *f,
-	                      ^~~~~~~~~~~~~
-	.../sim/mips/cp1.c: In function 'convert_ps':
-	.../sim/mips/cp1.c:1528:34: warning: pointer targets in passing argument 1 of 'sim_fpu_to32i' differ in signedness [-Wpointer-sign]
-	       status_u |= sim_fpu_to32i (&res_u, &wop_u, round);
-	                                  ^~~~~~
-	In file included from .../sim/mips/sim-main.h:67,
-	                 from .../sim/mips/cp1.c:46:
-	.../sim/mips/../common/sim-fpu.h:270:22: note: expected 'signed32 *' {aka 'int *'} but argument is of type 'unsigned32 *' {aka 'unsigned int *'}
-	 INLINE_SIM_FPU (int) sim_fpu_to32i (signed32 *i, const sim_fpu *f,
-	                      ^~~~~~~~~~~~~
-	.../sim/mips/cp1.c:1529:34: warning: pointer targets in passing argument 1 of 'sim_fpu_to32i' differ in signedness [-Wpointer-sign]
-	       status_l |= sim_fpu_to32i (&res_l, &wop_l, round);
-	                                  ^~~~~~
-	In file included from .../sim/mips/sim-main.h:67,
-	                 from .../sim/mips/cp1.c:46:
-	.../sim/mips/../common/sim-fpu.h:270:22: note: expected 'signed32 *' {aka 'int *'} but argument is of type 'unsigned32 *' {aka 'unsigned int *'}
-	 INLINE_SIM_FPU (int) sim_fpu_to32i (signed32 *i, const sim_fpu *f,
-	                      ^~~~~~~~~~~~~
-
-2021-11-06  Alan Modra  <amodra@gmail.com>
-
-	Modernise yyerror
-	Newer versions of bison emit a prototype for yyerror
-		void yyerror (const char *);
-	This clashes with some of our old code that declares yyerror to return
-	an int.  Fix that in most cases by modernizing yyerror.  bfin-parse.y
-	uses the return value all over the place, so for there disable
-	generation of the prototype as specified by posix.
-
-	binutils/
-		* arparse.y (yyerror): Return void.
-		* dlltool.c (yyerror): Likewise.
-		* dlltool.h (yyerror): Likewise.
-		* sysinfo.y (yyerror): Likewise.
-		* windmc.h (yyerror): Likewise.
-		* mclex.c (mc_error): Extract from ..
-		(yyerror): ..here, both now returning void.
-	gas/
-		* config/bfin-parse.y (yyerror): Define.
-		(yyerror): Make static.
-		* itbl-parse.y (yyerror): Return void.
-	ld/
-		* deffilep.y (def_error): Return void.
-
-2021-11-06  Alan Modra  <amodra@gmail.com>
-
-	ubsan: undefined shift in mach-o.c
-	This one was logically wrong too.  If file_ptr was 64 bits, then -1U
-	is extended to 0x00000000ffffffff, probably not what was intended
-	here.
-
-		* mach-o.c (FILE_ALIGN): Correct expression.
-
-2021-11-06  Fangrui Song  <maskray@google.com>
-
-	readelf: Support RELR in -S and -d and output
-	readelf -r dumping support is not added in this patch.
-
-	include/
-		* elf/common.h: Add SHT_RELR, DT_RELR{,SZ,ENT}
-	bfd/
-		* elf.c (_bfd_elf_print_private_bfd_data): Add DT_RELR{,SZ,ENT}.
-	binutils/
-		* readelf.c (get_dynamic_type): Add DT_RELR{,SZ,ENT}.
-		(get_section_type_name): Add SHT_RELR.
-
-2021-11-06  Fangrui Song  <maskray@google.com>
-
-	readelf: Make DT_PREINIT_ARRAYSZ's output style match DT_INIT_ARRAYSZ
-	The output now looks like:
-
-	- 0x0000000000000021 (PREINIT_ARRAYSZ)    0x10
-	+ 0x0000000000000021 (PREINIT_ARRAYSZ)    16 (bytes)
-	  0x0000000000000019 (INIT_ARRAY)         0xbefc90
-	  0x000000000000001b (INIT_ARRAYSZ)       536 (bytes)
-
-		* readelf.c (process_dynamic_section): Handle DT_PREINIT_ARRAYSZ.
-
-2021-11-06  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: clarify license text via COPYING file
-	The project has been using GPL v3 for a while now in the source files,
-	and the arm & ppc ports have carried a copy of the COPYING file.  Lets
-	move those up to the top sim dir like other projects to make it clear.
-
-	Also drop the ppc/COPYING.LIB as it's not really referenced by any
-	source as everything is GPL v3.
-
-2021-11-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-05  Tom Tromey  <tom@tromey.com>
-
-	Introduce make_unique_xstrndup
-	This adds a new make_unique_xstrndup function, which is the "n"
-	analogue of make_unique_xstrdup.  It also updates a couple existing
-	places to use this function.
-
-2021-11-05  Pedro Alves  <pedro@palves.net>
-
-	Avoid /proc/pid/mem races (PR 28065)
-	PR 28065 (gdb.threads/access-mem-running-thread-exit.exp intermittent
-	failure) shows that GDB can hit an unexpected scenario -- it can
-	happen that the kernel manages to open a /proc/PID/task/LWP/mem file,
-	but then reading from the file returns 0/EOF, even though the process
-	hasn't exited or execed.
-
-	"0" out of read/write is normally what you get when the address space
-	of the process the file was open for is gone, because the process
-	execed or exited.  So when GDB gets the 0, it returns memory access
-	failure.  In the bad case in question, the process hasn't execed or
-	exited, so GDB fails a memory access when the access should have
-	worked.
-
-	GDB has code in place to gracefully handle the case of opening the
-	/proc/PID/task/LWP/mem just while the LWP is exiting -- most often the
-	open fails with EACCES or ENOENT.  When it happens, GDB just tries
-	opening the file for a different thread of the process.  The testcase
-	is written such that it stresses GDB's logic of closing/reopening the
-	/proc/PID/task/LWP/mem file, by constantly spawning short lived
-	threads.
-
-	However, there's a window where the kernel manages to find the thread,
-	but the thread exits just after and clears its address space pointer.
-	In this case, the kernel creates a file successfully, but the file
-	ends up with no address space associated, so a subsequent read/write
-	returns 0/EOF too, just like if the whole process had execed or
-	exited.  This is the case in question that GDB does not handle.
-
-	Oleg Nesterov gave this suggestion as workaround for that race:
-
-	    gdb can open(/proc/pid/mem) and then read (say) /proc/pid/statm.
-	    If statm reports something non-zero, then open() was "successfull".
-
-	I think that might work.  However, I didn't try it, because I realized
-	we have another nasty race that that wouldn't fix.
-
-	The other race I realized is that because we close/reopen the
-	/proc/PID/task/LWP/mem file when GDB switches to a different inferior,
-	then it can happen that GDB reopens /proc/PID/task/LWP/mem just after
-	a thread execs, and before GDB has seen the corresponding exec event.
-	I.e., we can open a /proc/PID/task/LWP/mem file accessing the
-	post-exec address space thinking we're accessing the pre-exec address
-	space.
-
-	A few months back, Simon, Oleg and I discussed a similar race:
-
-	  [Bug gdb/26754] Race condition when resuming threads and one does an exec
-	  https://sourceware.org/bugzilla/show_bug.cgi?id=26754
-
-	The solution back then was to make the kernel fail any ptrace
-	operation until the exec event is consumed, with this kernel commit:
-
-	 commit dbb5afad100a828c97e012c6106566d99f041db6
-	 Author:     Oleg Nesterov <oleg@redhat.com>
-	 AuthorDate: Wed May 12 15:33:08 2021 +0200
-	 Commit:     Linus Torvalds <torvalds@linux-foundation.org>
-	 CommitDate: Wed May 12 10:45:22 2021 -0700
-
-	     ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
-
-	This however, only applies to ptrace, not to the /proc/pid/mem file
-	opening case.  Also, even if it did apply to the file open case, we
-	would want to support current kernels until such a fix is more wide
-	spread anyhow.
-
-	So all in all, this commit gives up on the idea of only ever keeping
-	one /proc/pid/mem file descriptor open.  Instead, make GDB open a
-	/proc/pid/mem per inferior, and keep it open until the inferior exits,
-	is detached or execs.  Make GDB open the file right after the inferior
-	is created or is attached to or forks, at which point we know the
-	inferior is stable and stopped and isn't thus going to exec, or have a
-	thread exit, and so the file open won't fail (unless the whole process
-	is SIGKILLed from outside GDB, at which point it doesn't matter
-	whether we open the file).
-
-	This way, we avoid both races described above, at the expense of using
-	more file descriptors (one per inferior).
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28065
-	Change-Id: Iff943b95126d0f98a7973a07e989e4f020c29419
-
-2021-11-05  Andrew Burgess  <aburgess@redhat.com>
-
-	gdb/testsuite: use gdb_get_line_number
-	Replaces a hard coded line number with a use of gdb_get_line_number.
-
-	I suspect that the line number has, over time, come adrift from where
-	it was supposed to be stopping.  When the test was first added, line
-	770 pointed at the final 'return 0' in function main.  Over time, as
-	things have been added, line 770 now points at some random location in
-	the middle of main.
-
-	So, I've marked the 'return 0' with a comment, and now the test will
-	always stop there.
-
-	I also removed an old comment from 1997 talking about how these tests
-	will only pass with the HP compiler, followed by an additional comment
-	from 2000 saying that the tests now pass with GCC.
-
-	I get the same results before and after this change.
-
-2021-11-05  Alan Modra  <amodra@gmail.com>
-
-	PR28541, unstable cie offset in the output of readelf
-	Calculating "0 - pointer" can indeed result in seeming randomness as
-	the pointer address varies.
-
-		PR 28541
-		* dwarf.c (display_debug_frames): Don't print cie offset when
-		invalid, print "invalid" instead.  Remove now redundant warning.
-
-2021-11-05  Alan Modra  <amodra@gmail.com>
-
-	Missing va_end in aarch64-dis.c
-		* aarch64-dis.c (extract_fields): Invoke va_end.
-
-2021-11-05  Alan Modra  <amodra@gmail.com>
-
-	PR28530, Hang in objdump on machine with 196GB RAM
-	Investigating the PR28530 testcase, which has a fuzzed compression
-	header with an enormous size, I noticed that decompress_contents is
-	broken when the size doesn't fit in strm.avail_out.  It wouldn't be
-	too hard to support larger sizes (patches welcome!) but for now just
-	stop decompress_contents from returning rubbish.
-
-		PR 28530
-		* compress.c (decompress_contents): Fail when uncompressed_size
-		is too big.
-		(bfd_init_section_decompress_status): Likewise.
-
-2021-11-05  Alan Modra  <amodra@gmail.com>
-
-	asan: alpha-vms: objdump buffer overflows
-		* vms-alpha.c (evax_bfd_print_desc): Sanity check buffer access.
-		(evax_bfd_print_valspec, evax_bfd_print_typspec): Likewise.
-		(evax_bfd_print_dst): Likewise.
-
-2021-11-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: introduce "set index-cache enabled", deprecate "set index-cache on/off"
-	The "set index-cache" command is used at the same time as a prefix
-	command (prefix for "set index-cache directory", for example), and a
-	boolean setting for turning the index-cache on and off.  Even though I
-	did introduce that, I now don't think it's a good idea to do something
-	non-standard like this.
-
-	First, there's no dedicated CLI command to show whether the index-cache
-	is enabled, so it has to be custom output in the "show index-cache
-	handler".  Also, it means there's no good way a MI frontend can find out
-	if the index-cache is enabled.  "-gdb-show index-cache" doesn't show it
-	in the MI output record:
-
-	    (gdb) interpreter-exec mi "-gdb-show index-cache"
-	    ~"\n"
-	    ~"The index cache is currently disabled.\n"
-	    ^done,showlist={option={name="directory",value="/home/simark/.cache/gdb"}}
-
-	Fix this by introducing "set/show index-cache enabled on/off", regular
-	boolean setting commands.  Keep commands "set index-cache on" and "set
-	index-cache off" as deprecated aliases of "set index-cache enabled",
-	with respectively the default arguments "on" and "off".
-
-	Update tests using "set index-cache on/off" to use the new command.
-	Update the regexps in gdb.base/maint.exp to figure out whether the
-	index-cache is enabled or not.  Update the doc to mention the new
-	commands.
-
-	Change-Id: I7d5aaaf7fd22bf47bd03e0023ef4fbb4023b37b3
-
-2021-11-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: pass/return setting setter/getter scalar values by value
-	The getter and setter in struct setting always receive and return values
-	by const reference.  This is not necessary for scalar values (like bool
-	and int), but more importantly it makes it a bit annoying to write a
-	getter, you have to use a scratch static variable or something similar
-	that you can refer to:
-
-	  const bool &
-	  my_getter ()
-	  {
-	    static bool value;
-	    value = function_returning_bool ();
-	    return value;
-	  }
-
-	Change the getter and setter function signatures to receive and return
-	value by value instead of by reference, when the underlying data type is
-	scalar.  This means that string-based settings will still use
-	references, but all others will be by value.  The getter above would
-	then be re-written as:
-
-	  bool
-	  my_getter ()
-	  {
-	    return function_returning_bool ();
-	  }
-
-	This is useful for a patch later in this series that defines a boolean
-	setting with a getter and a setter.
-
-	Change-Id: Ieca3a2419fcdb75a6f75948b2c920b548a0af0fd
-
-2021-11-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove command_class enum class_deprecated
-	The class_deprecated enumerator isn't assigned anywhere, so remove it.
-	Commands that are deprecated have cmd_list_element::cmd_deprecated set
-	instead.
-
-	Change-Id: Ib35e540915c52aa65f13bfe9b8e4e22e6007903c
-
-2021-11-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove unnecessary cmd_list_element::aliases nullptr checks
-	Remove two unnecessary nullptr checks.  If aliases is nullptr, then the
-	for loops will simply be skipped.
-
-	Change-Id: I9132063bb17798391f8d019af305383fa8e0229f
-
-2021-11-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver: re-generate configure
-	I get some diffs when running autoconf in gdbserver, probably leftovers
-	from commit 5dfe4bfcb969 ("Fix format_pieces selftest on Windows").
-	Re-generate configure in that directory.
-
-	Change-Id: Icdc9906af95fbaf1047a579914b2983f8ec5db08
-
-2021-11-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	Revert "bfd: Always check sections with the corrupt size"
-	This reverts commit e0f7ea91436dd308a094c4c101fd4169e8245a91.
-
-2021-11-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Always check sections with the corrupt size
-	Always check sections with the corrupt size for non-MMO files.  Skip MMO
-	files for compress_status == COMPRESS_SECTION_NONE since MMO has special
-	handling for COMPRESS_SECTION_NONE.
-
-		PR binutils/28530
-		* compress.c (bfd_get_full_section_contents): Always check
-		sections with the corrupt size.
-
-2021-11-04  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Clarify the behavior of .option rvc or norvc.
-	Add/Remove the rvc extension to/from the riscv_subsets once the
-	.option rvc/norvc is set.  So that we don't need to always check
-	the riscv_opts.rvc in the riscv_subset_supports, just call the
-	riscv_lookup_subset to search the subset list is enough.
-
-	Besides, we will need to dump the instructions according to the
-	elf architecture attributes.  That means the dis-assembler needs
-	to parse the architecture string from the elf attribute before
-	dumping any instructions, and also needs to recognized the
-	INSN_CLASS* classes from riscv_opcodes.  Therefore, I suppose
-	some functions will need to be moved from gas/config/tc-riscv.c
-	to bfd/elfxx-riscv.c, including riscv_multi_subset_supports and
-	riscv_subset_supports.  This is one of the reasons why we need
-	this patch.
-
-	This patch passes the gcc/binutils regressions of rv32emc-elf,
-	rv32i-elf, rv64gc-elf and rv64gc-linux toolchains.
-
-	bfd/
-		* elfxx-riscv.c (riscv_remove_subset): Remove the extension
-		from the subset list.
-		(riscv_update_subset): Add/Remove an extension to/from the
-		subset list.  This is used for the .option rvc or norvc.
-		* elfxx-riscv.h: Added the extern bool riscv_update_subset.
-	gas/
-		* config/tc-riscv.c (riscv_set_options): Removed the unused
-		rve flag.
-		(riscv_opts): Likewise.
-		(riscv_set_rve): Removed.
-		(riscv_subset_supports): Removed the riscv_opts.rvc check.
-		(riscv_set_arch): Don't need to call riscv_set_rve.
-		(reg_lookup_internal): Call riscv_subset_supports to check
-		whether the rve is supported.
-		(s_riscv_option): Add/Remove the rvc extension to/from the
-		subset list once the .option rvc/norvc is set.
-
-2021-11-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: fix missing prototype in multi-run generation
-	The multi-run logic for mips involves a bit of codegen and rewriting
-	of files to include per-architecture prefixes.  That can result in
-	files with missing prototypes which cause compiler errors.  In the
-	case of mips-sde-elf targets, we have:
-	$srcdir/m16run.c -> $builddir/m16mips64r2_run.c
-	  sim_engine_run -> m16mips64r2_engine_run
-	$srcdir/micromipsrun.c -> micromipsmicromips_run.c
-	  sim_engine_run -> micromips64micromips_engine_run
-
-	micromipsmicromips_run.c:80:1: error: no previous prototype for 'micromips64micromips_engine_run' [-Werror=missing-prototypes]
-	   80 | micromips64micromips_engine_run (SIM_DESC sd, int next_cpu_nr, int nr_cpus,
-
-	We generate headers for those prototypes in the configure script,
-	but only include them in the generated multi-run.c file.  Update the
-	rewrite logic to turn the sim-engine.h include into the relevant
-	generated engine include so these files also have their prototypes.
-	$srcdir/m16run.c -> $builddir/m16mips64r2_run.c
-	  sim-engine.h -> m16mips64r2_engine.h
-	$srcdir/micromipsrun.c -> micromipsmicromips_run.c
-	  sim-engine.h -> micromips64micromips_engine.h
-
-2021-11-04  Alan Modra  <amodra@gmail.com>
-
-	PR28540, segmentation fault on NULL byte_get
-		PR 28540
-		* objdump.c (dump_bfd): Don't attempt load_separate_debug_files
-		when byte_get is NULL.
-
-2021-11-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: inline common sim-fpu.c logic
-	We will never bother building w/out a ../common/ sim directory,
-	so drop ancient logic supporting that method.
-
-2021-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: switch to common builds for callback objects
-	We don't need to build this anymore ourselves since the common build
-	includes it and produces the same object code.  We also need to pull
-	in the split constant modules after the refactoring and pulling them
-	out of nltvals.def & targ-map.o.  This doesn't matter for the sim
-	directly, but does for gdb and other users of libsim.
-
-	We also delete some conditional source tree logic since we already
-	require this be the "new" combined tree with a ../common/ dir.  This
-	has been the case for decades at this point.
-
-2021-11-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix gnu-nat build
-	When building gnu-nat.c, we get:
-
-	      CXX    gnu-nat.o
-	    gnu-nat.c: In member function 'virtual void gnu_nat_target::create_inferior(const char*, const string&, char**, int)':
-	    gnu-nat.c:2117:13: error: 'struct inf' has no member named 'target_is_pushed'
-	     2117 |   if (!inf->target_is_pushed (this))
-	          |             ^~~~~~~~~~~~~~~~
-	    gnu-nat.c:2118:10: error: 'struct inf' has no member named 'push_target'
-	     2118 |     inf->push_target (this);
-	          |          ^~~~~~~~~~~
-
-	This is because of a confusion between the generic `struct inferior`
-	variable and the gnu-nat-specific `struct inf` variable.  Fix by
-	referring to `inferior`, not `inf`.
-
-	Adjust the comment on top of `struct inf` to clarify the purpose of that
-	type.
-
-	Co-Authored-By: Andrea Monaco <andrea.monaco@autistici.org>
-	Change-Id: I2fe2f7f6ef61a38d79860fd262b08835c963fc77
-
-2021-11-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: set ASAN_OPTIONS=detect_leaks=0 while running tests
-	We see some additional failures when running the testsuite against a GDB
-	compiled with ASan, compared to a GDB compiled without ASan.  Some of
-	them are caused by the memory leak report shown by the GDB process when
-	it exits, and the fact that it makes it exit with a non-zero exit code.
-
-	I generally try to remember to set ASAN_OPTIONS=detect_leaks=0 in my
-	environment when running the tests, but I don't always do it.  I think
-	it would be nice if the testsuite did it.  I don't see any use to have
-	leak detection when running the tests.  That is, unless we ever have a
-	test that ensures GDB doesn't leak memory, which isn't going to happen
-	any time soon.
-
-	Here are some tests I found that were affected by this:
-
-	    gdb.base/batch-exit-status.exp
-	    gdb.base/many-headers.exp
-	    gdb.base/quit.exp
-	    gdb.base/with-mf.exp
-	    gdb.dwarf2/gdb-add-index.exp
-	    gdb.dwarf2/gdb-add-index-symlink.exp
-	    gdb.dwarf2/imported-unit-runto-main.exp
-
-	Change-Id: I784c7df8a13979eb96587f735c1d33ba2cc6e0ca
-
-2021-11-03  Tom Tromey  <tromey@adacore.com>
-
-	Use section name in warnings in display_debug_loc
-	While looking at an apparently malformed executable with
-	"readelf --debug-dump=loc", I got this warning:
-
-	    readelf: ./main: Warning: There is a hole [0x89 - 0x95] in .debug_loc section.
-
-	However, the executable only has a .debug_loclists section.
-
-	This patch fixes the warning messages in display_debug_loc to use the
-	name of the section that is being processed.
-
-	binutils/ChangeLog
-	2021-11-03  Tom Tromey  <tromey@adacore.com>
-
-		* dwarf.c (display_debug_loc): Use section name in warnings.
-
-2021-11-03  Luis Machado  <luis.machado@linaro.org>
-
-	[AArch64] Make gdbserver register set selection dynamic
-	The current register set selection mechanism for AArch64 is static, based
-	on a pre-populated array of register sets.
-
-	This means that we might potentially probe register sets that are not
-	available. This is OK if the kernel errors out during ptrace, but probing the
-	tag_ctl register, for example, does not result in a ptrace error if the kernel
-	supports the tagged address ABI but not MTE (PR 28355).
-
-	Making the register set selection dynamic, based on feature checks, solves
-	this and simplifies the code a bit. It allows us to list all of the register
-	sets only once, and pick and choose based on HWCAP/HWCAP2 or other properties.
-
-	I plan to backport this fix to GDB 11 as well.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28355
-
-2021-11-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	Fix LD_PRELOAD=/usr/lib64/libasan.so.6 gdb
-	Currently for a binary compiled normally (without -fsanitize=address) but with
-	LD_PRELOAD of ASAN one gets:
-
-	$ ASAN_OPTIONS=detect_leaks=0:alloc_dealloc_mismatch=1:abort_on_error=1:fast_unwind_on_malloc=0 LD_PRELOAD=/usr/lib64/libasan.so.6 gdb
-	=================================================================
-	==1909567==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000001570
-	    #0 0x7f1c98e5efa7 in operator delete[](void*) (/usr/lib64/libasan.so.6+0xb0fa7)
-	...
-	0x602000001570 is located 0 bytes inside of 2-byte region [0x602000001570,0x602000001572)
-	allocated by thread T0 here:
-	    #0 0x7f1c98e5cd1f in __interceptor_malloc (/usr/lib64/libasan.so.6+0xaed1f)
-	    #1 0x557ee4a42e81 in operator new(unsigned long) (/usr/libexec/gdb+0x74ce81)
-	SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/usr/lib64/libasan.so.6+0xb0fa7) in operator delete[](void*)
-	==1909567==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
-	==1909567==ABORTING
-
-	Despite the code called properly operator new[] and operator delete[].
-	But GDB's new-op.cc provides its own operator new[] which gets translated into
-	malloc() (which gets recogized as operatore new(size_t)) but as it does not
-	translate also operators delete[] Address Sanitizer gets confused.
-
-	The question is how many variants of the delete operator need to be provided.
-	There could be 14 operators new but there are only 4, GDB uses 3 of them.
-	There could be 16 operators delete but there are only 6, GDB uses 2 of them.
-	It depends on libraries and compiler which of the operators will get used.
-	Currently being used:
-	                 U operator new[](unsigned long)
-	                 U operator new(unsigned long)
-	                 U operator new(unsigned long, std::nothrow_t const&)
-	                 U operator delete[](void*)
-	                 U operator delete(void*, unsigned long)
-
-	Tested on x86_64-linux.
-
-2021-11-03  Alan Modra  <amodra@gmail.com>
-
-	asan: dlltool buffer overflow: embedded NUL in string
-	yyleng gives the pattern length, xstrdup just copies up to the NUL.
-	So it is quite possible writing at an index of yyleng-2 overflows
-	the xstrdup allocated string buffer.  xmemdup quite handily avoids
-	this problem, even writing the terminating NUL over the trailing
-	quote.  Use it in ldlex.l too where we'd already had a report of this
-	problem and fixed it by hand, and to implement xmemdup0 in gas.
-
-	binutils/
-		* deflex.l (single and double quote strings): Use xmemdup.
-	gas/
-		* as.h (xmemdup0): Use xmemdup.
-	ld/
-		PR 20906
-		* ldlex.l (double quote string): Use xmemdup.
-
-2021-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mloop: mark a few conditionally used funcs as unused
-	These are marked inline, so building w/gcc at higher optimization
-	levels will automatically discard them.  But building with -O0 will
-	trigger unused function warnings, so fix that.
-
-	The common before/after cover functions in the common mloop generator
-	are not used by all architecture ports.  Doesn't seem to be a hard
-	requirement, so marking them optional (i.e. unused) is fine.
-
-	The cris execute function is conditionally used depending on the
-	fast-build mode settings, so mark it unused too.
-
-2021-11-03  Alan Modra  <amodra@gmail.com>
-
-	asan: assert (addr_ranges) <= (start)
-	That assert would be more obvious if it were reported as
-	"addr_ranges <= end_ranges".  Fix that by using the obvious variable
-	in the final loop.  Stop the assertion by using a signed comparison:
-	It's possible for the rounding up of the arange pointer to exceed the
-	end of the block when the block size is fuzzed.
-
-		* dwarf.c (display_debug_aranges): Use "end_ranges" in loop
-		displaying ranges rather that "start".  Simplify rounding up
-		to 2*address_size boundary.  Use signed comparison in loop.
-
-2021-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: hoist cgen mloop rules up to common builds
-	These rules don't depend on the target compiler settings, so hoist
-	the build logic up to the common builds for better parallelization.
-
-	We have to extend the genmloop.sh logic a bit to allow outputting
-	to a subdir since it always assumed cwd was the right place.
-
-	We leave the cgen maintainer rules in the subdirs for now as they
-	aren't normally run, and they rely on cgen logic that has not yet
-	been generalized.
-
-2021-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: hoist mn10300 & v850 igen rules up to common builds
-	These rules don't depend on the target compiler settings, so hoist
-	the build logic up to the common builds for better parallelization.
-
-	We leave the mips rules in place as they depend on complicated
-	arch-specific configure logic that needs to be untangled first.
-
-2021-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: hoist gencode & opc2c build rules up to common builds
-	These rules don't depend on the target compiler settings, so hoist
-	the build logic up to the common builds for better parallelization.
-
-2021-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	opcodes: d10v: simplify header includes
-	This file doesn't use anything from bfd (sysdep.h), so drop that
-	include.  This avoids an implicit dependency on the generated
-	config.h which can be problematic for build-time tools.
-
-	Also swap stdio.h for stddef.h.  This file isn't doing or using
-	any I/O structures, but it does need NULL.
-
-2021-11-03  Alan Modra  <amodra@gmail.com>
-
-	PR28523, ld.bfd created undefined symbols on ppc64
-	This patch removes any fake (linker created) function descriptor
-	symbol if its code entry symbol isn't dynamic, to ensure bogus dynamic
-	symbols are not created.  The change to func_desc_adjust requires that
-	it be run only once, which means ppc64_elf_tls_setup can't call it for
-	just a few selected symbols.
-
-		PR 28523
-		* elf64-ppc.c (func_desc_adjust): If a function entry sym is
-		not dynamic and has no plt entry, hide any associated fake
-		function descriptor symbol.
-		(ppc64_elf_edit): Move func_desc_adjust iteration over syms to..
-		(ppc64_elf_tls_setup): ..here.
-
-2021-11-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep, rs6000] Don't skip system call in skip_prologue
-	I ran into a case where a breakpoint on _exit never triggered, because it was
-	set past the end of the _exit prologue, past the end of the exit_group system
-	call (which does not return).
-
-	More concretely, the breakpoint was set at the last insn show here:
-	...
-	Dump of assembler code for function _exit:
-	   0x00007ffff7e42ea0 <+0>:     12 00 4c 3c     addis   r2,r12,18
-	   0x00007ffff7e42ea4 <+4>:     60 43 42 38     addi    r2,r2,17248
-	   0x00007ffff7e42ea8 <+8>:     00 00 00 60     nop
-	   0x00007ffff7e42eac <+12>:    f8 ff e1 fb     std     r31,-8(r1)
-	   0x00007ffff7e42eb0 <+16>:    78 1b 7f 7c     mr      r31,r3
-	   0x00007ffff7e42eb4 <+20>:    f0 ff c1 fb     std     r30,-16(r1)
-	   0x00007ffff7e42eb8 <+24>:    ea 00 00 38     li      r0,234
-	   0x00007ffff7e42ebc <+28>:    a0 8b 22 e9     ld      r9,-29792(r2)
-	   0x00007ffff7e42ec0 <+32>:    78 fb e3 7f     mr      r3,r31
-	   0x00007ffff7e42ec4 <+36>:    14 6a c9 7f     add     r30,r9,r13
-	   0x00007ffff7e42ec8 <+40>:    02 00 00 44     sc
-	   0x00007ffff7e42ecc <+44>:    26 00 00 7c     mfcr    r0
-	   0x00007ffff7e42ed0 <+48>:    00 10 09 74     andis.  r9,r0,4096
-	...
-
-	Fix this by treating system calls the same as branches in skip_prologue:
-	by default, don't skip, such that the breakpoint is set at 0x00007ffff7e42eb8
-	instead.
-
-	Tested on ppc64le-linux, on a power 8 machine.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28527
-
-2021-11-02  Tom de Vries  <tdevries@zinfandel-3.arch.suse.de>
-
-	[gdb/testsuite] Handle SIGILL in two gdb.arch powerpc test-cases
-	On powerpc64le-linux, with test-case gdb.arch/powerpc-addpcis.exp I run into
-	SIGILL:
-	...
-	(gdb) PASS: gdb.arch/powerpc-addpcis.exp: get hexadecimal valueof "$r3"
-	stepi^M
-	^M
-	Program terminated with signal SIGILL, Illegal instruction.^M
-	The program no longer exists.^M
-	(gdb) PASS: gdb.arch/powerpc-addpcis.exp: set r4
-	...
-	because it's a power9 insn, and I'm running on a power8 machine.
-
-	Fix this by handling the SIGILL.  Likewise in gdb.arch/powerpc-lnia.exp.
-
-	Tested on powerpc64le-linux.
-
-2021-11-02  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/sim: update my email address
-	gdb:
-
-		* MAINTAINERS (Global Maintainers): Update my address.
-		(Responsible Maintainers): Likewise.
-		(Write After Approval): Likewise.
-
-	sim:
-
-		* MAINTAINERS (Global Maintainers): Update my address.
-
-2021-11-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix stepi test-cases with unix/-m32/-fPIE/-pie
-	When running test-case gdb.base/step-indirect-call-thunk.exp with target board
-	unix/-m32/-fPIE/-pie, I run into:
-	...
-	(gdb) stepi^M
-	0x5655552e      22      {                /* inc.1 */^M
-	(gdb) stepi^M
-	0x56555530      22      {                /* inc.1 */^M
-	(gdb) stepi^M
-	0x565555f7 in __x86.get_pc_thunk.ax ()^M
-	(gdb) FAIL: gdb.base/step-indirect-call-thunk.exp: stepi into return thunk
-	...
-
-	In contrast, with unix/-m32 we have instead:
-	...
-	(gdb) stepi^M
-	0x08048407      22      {                /* inc.1 */^M
-	(gdb) stepi^M
-	23        return x + 1;  /* inc.2 */^M
-	(gdb) stepi^M
-	0x0804840c      23        return x + 1;  /* inc.2 */^M
-	(gdb) stepi^M
-	24      }                /* inc.3 */^M
-	(gdb) stepi^M
-	0x08048410      24      }                /* inc.3 */^M
-	(gdb) stepi^M
-	0x0804848f in __x86_return_thunk ()^M
-	(gdb) PASS: gdb.base/step-indirect-call-thunk.exp: stepi into return thunk
-	...
-
-	The test-case doesn't expect to run into __x86.get_pc_thunk.ax, which is a
-	PIC helper function for x86_64-linux.
-
-	Fix this by insn-stepping through it.
-
-	Likewise in a few other test-cases.
-
-	Tested on x86_64-linux.
-
-2021-11-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-11-01  Alan Modra  <amodra@gmail.com>
-
-	ARM: match armeb output for unwind-pacbti-m test
-		* testsuite/gas/arm/unwind-pacbti-m.d: Match armeb output.
-
-2021-11-01  Bruno Larsen  <blarsen@redhat.com>
-
-	[gdb/doc]: Updated manpages to be consistent with help
-	Updated manpages to be consistent with help information provided by the
-	binary. The main changes are:
-
-	* Making all long-form options have '--', instead of a single '-';
-	* added most of the missing options to the manpage;
-	* removed the information about using '+' instead of '-', since it
-	  doesn't seem to be supported anymore.
-
-	This also fixes 2 upstream bugs:
-	* https://sourceware.org/bugzilla/show_bug.cgi?id=23965; by adding
-	--args to the manpage
-	* https://sourceware.org/bugzilla/show_bug.cgi?id=10619; by adding the
-	double dashes
-
-2021-11-01  Alan Modra  <amodra@gmail.com>
-
-	macho-o archive sanity checks
-	Anti-fuzzing checks.
-
-		* mach-o.c (bfd_mach_o_fat_archive_p): Sanity check entry offset
-		and size against file size.
-
-2021-11-01  Alan Modra  <amodra@gmail.com>
-
-	objcopy buffer overflow
-	"tocopy" in this code was an int, which when the size to be copied was
-	larger than MAXINT could result in tocopy being negative.  A negative
-	value of course is less than BUFSIZE, but when converted to
-	bfd_size_type is extremely large.
-
-		PR 995
-		* objcopy.c (copy_unknown_object): Correct calculation of "tocopy".
-		Use better variable types.
-
-2021-11-01  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	arm: add armv9-a architecture to -march
-	Update also include:
-		+ New value of Tag_CPU_arch EABI attribute (22) is added.
-		+ Updated missing Tag_CPU_arch EABI attributes.
-		+ Updated how we combine archs 'v4t_plus_v6_m' as this mechanism
-		  have to handle new Armv9 as well.
-
-	Regression tested on `arm-none-eabi` cross Binutils and no issues.
-
-	bfd/
-
-		* archures.c: Define bfd_mach_arm_9.
-		* bfd-in2.h (bfd_mach_arm_9): Define bfd_mach_arm_9.
-		* cpu-arm.c: Add 'armv9-a' option to -march.
-		* elf32-arm.c (using_thumb2_bl): Update assert check.
-		(arch_has_arm_nop): Add TAG_CPU_ARCH_V9.
-		(bfd_arm_get_mach_from_attributes): Add case for TAG_CPU_ARCH_V9.
-		Update assert.
-		(tag_cpu_arch_combine): Updated table.
-		(v9): New table..
-
-	binutils/
-
-		* readelf.c (arm_attr_tag_CPU_arch): Update with
-
-	elfcpp/
-
-		* arm.h: Update TAG_CPU_ARCH_ enums with correct values.
-
-	gas/
-
-		* NEWS: Update docs.
-		* config/tc-arm.c (get_aeabi_cpu_arch_from_fset): Return Armv9-a
-		for -amarch=all.
-		(aeabi_set_public_attributes): Update assert.
-		* doc/c-arm.texi: Update docs.
-		* testsuite/gas/arm/armv9-a_arch.d: New test.
-		* testsuite/gas/arm/attr-march-all.d: Update test with v9.
-
-	include/
-
-		* elf/arm.h Update TAG_CPU_ARCH_ defines with correct values.
-		* opcode/arm.h (ARM_EXT3_V9A): New macro.
-		(ARM_ARCH_NONE): Updated with arm_feature_set.core size.
-		(FPU_NONE): Updated.
-		(ARM_ANY): Updated.
-		(ARM_ARCH_UNKNOWN): New macro.
-		(ARM_FEATURE_LOW): Updated.
-		(ARM_FEATURE_CORE): Updated.
-		(ARM_FEATURE_CORE_LOW): Updated.
-		(ARM_FEATURE_CORE_HIGH): Updated.
-		(ARM_FEATURE_COPROC): Updated.
-		(ARM_FEATURE): Updated.
-		(ARM_FEATURE_ALL): New macro.
-
-	opcodes/
-
-		* arm-dis.c (select_arm_features): Support bfd_mach_arm_9.
-		Also Update bfd_mach_arm_unknown to use new macro ARM_ARCH_UNKNOWN.
-
-2021-11-01  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: iq2000: reduce -Wno-error scope
-	Clean up the warnings in sim-if, then reduce the -Werror disable to
-	the files that still aren't clean that now that we require GNU make
-	and can set variables on a per-object basis.
-
-	sim: lm32: reduce -Wno-error scope
-	Clean up some warnings in dv-lm32cpu, and all in sim-if, then reduce
-	the -Werror disable to the files that still aren't clean that now that
-	we require GNU make and can set variables on a per-object basis.
-
-	sim: frv: reduce -Wno-error scope
-	Only two files in here still generates warnings, so reduce the -Werror
-	disable to that now that we require GNU make and can set variables on
-	a per-object basis.
-
-	sim: m32r: reduce -Wno-error scope
-	Only two files in here still generates warnings, so reduce the -Werror
-	disable to that now that we require GNU make and can set variables on
-	a per-object basis.
-
-	sim: mips: reduce -Wno-error scope
-	Fix a few printf warnings in sim-main.c, and then we're left with only
-	one file in here still generating warnings, so reduce the -Werror
-	disable to that alone now that we require GNU make and can set variables
-	on a per-object basis.
-
-	sim: erc32: reduce -Wno-error scope
-	Only one file in here still generates warnings, so reduce the -Werror
-	disable to that alone now that we require GNU make and can set variables
-	on a per-object basis.
-
-	sim: cris: reduce -Wno-error scope
-	Only two files in here still generates warnings, so reduce the -Werror
-	disable to that now that we require GNU make and can set variables on
-	a per-object basis.
-
-	sim: sh: reduce -Wno-error scope
-	Only one file in here still generates warnings, so reduce the -Werror
-	disable to that alone now that we require GNU make and can set variables
-	on a per-object basis.
-
-	sim: or1k: build with -Werror
-	The only warnings left in this port are a few maybe-uninitialized,
-	but we don't abort the build for them, so turn on -Werror everywhere.
-
-	sim: igen: minor build output alignment fix
-	The custom echo was off by one space relative to all the others.
-
-	sim: ppc: fix the printf fix for 32-bit systems
-	The time delta is a 64-bit value too.
-
-	sim: m68hc11: clean up pointer casts
-	The void *data field is used to past arbitrary data between event
-	handlers, and these are using it to pass an integer.  Fix up the
-	casts to avoid using (long) to cast to/from pointers since there
-	is no guarantee that's the right size.
-
-	sim: d10v: clean up pointer casts
-	Use %p to print pointers instead of trying to cast them to longs.
-
-	sim: bfin: cast pointers using uintptr_t
-	We can't assume that sizeof(long) == sizeof(void*), so change all
-	these casts over to uintptr_t.
-
-	sim: ppc: clean up printf format handling
-	Don't blindly cast every possible type to (long).  Change to the right
-	printf format specifier whether it be a 64-bit type or a pointer.
-
-	sim: ppc: switch core types to stdint.h types
-	There's no need to define these ourselves anymore, so switch to the
-	stdint.h types.  This will be important when we start using PRI*
-	defines with printf formats.
-
-	sim: mn10300: clean up pointer casts
-	The void *data field is used to past arbitrary data between event
-	handlers, and these are using it to pass an enum.  Fix up the casts
-	to avoid using (long) to cast to/from pointers since there is no
-	guarantee that's the right size.
-
-	sim: events: clean up trace casts
-	Don't blindly cast every possible type to (long).  Change to the right
-	printf format specifier whether it be a 64-bit type or a pointer.
-
-	sim: ppc: handle \r in igen inputs [PR sim/28476]
-	Make sure we consume & ignore \r bytes in inputs in case the file
-	encodings are from a non-LF systems (e.g. Windows).
-
-	sim: ppc: constify strings in igen tooling
-
-2021-11-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-31  Tom Tromey  <tom@tromey.com>
-
-	Fix latent bug in DWARF test case
-	On my branch that replaces the DWARF psymtab reader,
-	dw2-stack-boundary.exp started failing.  However, when I look at the
-	output in gdb.log, it is correct:
-
-	    file /home/tromey/gdb/build/gdb/testsuite/outputs/gdb.dwarf2/dw2-stack-boundary/dw2-stack-boundary
-	    Reading symbols from /home/tromey/gdb/build/gdb/testsuite/outputs/gdb.dwarf2/dw2-stack-boundary/dw2-stack-boundary...
-	    During symbol reading: location description stack overflow
-	    During symbol reading: location description stack underflow
-
-	What happens to cause the failure is that the two branches in
-	gdb_test_multiple appear in this order:
-
-	    -re "\r\nDuring symbol reading: location description stack underflow" {
-	    [...]
-	    -re "\r\nDuring symbol reading: location description stack overflow" {
-
-	The first one will match the above, without causing the second one to
-	ever match -- leading to a spurious failure.
-
-	Anchoring the regexps seems to fix the problem, and works for the
-	current gdb as well.
-
-2021-10-31  Tom Tromey  <tom@tromey.com>
-
-	Fix unittest.exp failure due to 'set debuginfod' addition
-	The 'set debuginfod' change caused a regression in unittest.exp:
-
-	    Running selftest help_doc_invariants.
-	    help doc broken invariant: command 'info set debuginfod' help doc first line is not terminated with a '.' character
-	    help doc broken invariant: command 'set debuginfod' help doc first line is not terminated with a '.' character
-	    help doc broken invariant: command 'show debuginfod' help doc first line is not terminated with a '.' character
-	    Self test failed: self-test failed at ../../binutils-gdb/gdb/unittests/command-def-selftests.c:100
-
-	This patch fixes the problem.  I'm checking it in.
-
-2021-10-31  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: use silent build rules here too
-	The ppc codebase is unique and doesn't leverage common/, so have to
-	add silent rules to it specifically.
-
-	sim: rl78: drop obsolete manual dependency rules
-	We have GNU make generate these for us automatically now, so there's
-	no need to manually specify any deps.
-
-	sim: drop unused targ-vals.h includes
-	This is used in a few places where it's not needed.  Drop the include
-	to avoid the build-time generated header file as we move to drop it.
-
-	sim: unify callback.o building
-	Now that the use of TARGET_xxx defines have been removed, we can move
-	this to the common logic so we only build it once for multi-targets.
-
-	sim: nltvals: pull target open flags out into a dedicated source file
-	Like we just did for pulling out the errno & signal maps, pull out the
-	open flag map into a dedicated common file.  All newlib ports are using
-	the same map which makes it easy.
-
-	sim: nltvals: localize TARGET_<open> defines
-	Code should not be using these directly, instead they should be
-	resolving these dynamically via the open_map.  Rework the common
-	callback code that was using the defines to use symbolic names
-	instead, and localize some of the defines in the ARM code (since
-	it's a bit unclear how many different APIs it supports currently),
-	then remove the defines out of the header so no new code can rely on
-	them.
-
-	sim: nltvals: pull target signal out into a dedicated source file
-	Like we just did for pulling out the errno map, pull out the signal
-	map into a dedicated common file.  All newlib ports are using the
-	same signal map which makes it easy.
-
-2021-10-31  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: nltvals: pull target errno out into a dedicated source file
-	The current system maintains a list of target errno constants in the
-	nltvals.def file, then runs a build-time tool to turn that into a C
-	file.  This list of errno values is the same for all arches, so we
-	don't need the arch-specific flexibility.  Further, these are only
-	for newlib/libgloss environments, which makes it confusing to support
-	other userland runtimes (like Linux).  Let's simplify to make this
-	easier to understand & build.  We don't namespace the variables yet,
-	but sets up the framework for it.
-
-	Create a new target-newlib-errno.c template file.  The template file
-	is hand written, but the inline map is still automatically generated.
-
-	This allows us to move it to the common set of objects so it's only
-	built once in a multi-target build.
-
-	Now we can remove the output from the gentmap build-time tool since
-	it's checked into the tree.
-
-	Then we stop including the errno lists in nltvals.def since nothing
-	uses it.
-
-2021-10-31  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: erc32: use silent build rules with sis linkage
-
-2021-10-31  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: erc32: fix a few more build warnings
-	Tweak the if indentation & brace style to avoid ambiguous warnings.
-
-	Add ATTRIBUTE_UNUSED to UART functions that aren't used when FAST_UART
-	is defined (which is the default).
-
-2021-10-31  Orgad Shaneh  <orgads@gmail.com>
-
-	sim: erc32: fix signedness compatibility and redefinition warnings
-
-2021-10-31  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: add arch-specific conditional logic
-	This will make it easy to include arch-specific logic (build files)
-	as we migrate ports to the common top level build.
-
-	sim: v850: delete old gencode logic
-	The v850 port used to have a gencode helper, but it was deleted long
-	ago.  Clean up the settings that no longer make sense w/out it.
-
-	sim: common: merge multiple clean commands
-	This provides a minor speedup when cleaning in a multi-target build.
-
-	sim: m32c: tighten up opc2c build output
-	Drop the single debugging line that repeats the command line option,
-	and use the silent build helpers to tighten up output.
-
-	sim: tighten up build regen rules
-	Update the makefile & configure related rules to use the silent
-	build helpers.
-
-	sim: tighten up gencode output
-	Update the gencode rules to use the silent build helpers.
-
-	sim: igen: tighten up build output
-	Add a new stamp helper for quiet builds, and don't dump the command
-	line options when it runs.  That isn't standard tool behavior, and
-	doesn't really seem necessary in any way.
-
-	sim: tighten up stamp rules
-	Add a new ECHO_STAMP helper and convert existing stamp code over
-	to it.  This is mostly common rules and cgen mloop rules.
-
-	sim: silence stamp touch rules
-	We pretty much never care about these stamp touches, so silence them.
-	Also switch to using $@ when it makes sense.
-
-	sim: standardize move-if-change rules
-	Use the srcroot path and make them all silent.
-
-	sim: mips/v850: remove redundant variable setup
-	The common/Make-common.in fragment already provides these variables.
-
-2021-10-31  Orgad Shaneh  <orgads@gmail.com>
-
-	sim: fix compilation on mingw64 [PR sim/28476]
-	...by reordering includes.
-
-	1. sim-utils.c
-
-	sim/mips/sim-main.h defines UserMode, while there is a struct in winnt.h
-	which has UserMode as a member. So if sim-main.h is included before winnt.h,
-	compilation fails.
-
-	2. ppc
-
-	registers.h defines CR, which is used as a member in winnt.h.
-
-	winsock2.h is included by sys/time.h, so sys/time.h has to be included
-	before registers.h.
-
-	Bug: https://sourceware.org/PR28476
-
-2021-10-31  Alan Modra  <amodra@gmail.com>
-
-	Don't include coff/pe.h in coff-x86_64.c
-	This (and other) code from coffcode.h is broken for x86_64_coff_vec,
-	and has been ever since support was added in 2006 commit 99ad839030c1
-	Here, bfd_coff_aoutsz must match coff_swap_aouthdr_out otherwise we
-	end up writing garbage.
-
-	      /* Note that peicode.h fills in a PEAOUTHDR, not an AOUTHDR.
-		 include/coff/pe.h sets AOUTSZ == sizeof (PEAOUTHDR)).  */
-	      char * buff;
-	      bfd_size_type amount = bfd_coff_aoutsz (abfd);
-
-	      buff = (char *) bfd_malloc (amount);
-	      if (buff == NULL)
-		return false;
-
-	      coff_swap_aouthdr_out (abfd, & internal_a, buff);
-	      amount = bfd_bwrite (buff, amount, abfd);
-
-	We have removed support for --target=x86_64-coff, likely because it
-	never worked properly, but still produce coff-x86_64.o with
-	--enable-targets=all.  This means objcopy can recognize x86_64 COFF
-	files but will write garbage to the output file, a fact found by
-	fuzzers.  I suspect x86_64 COFF is still broken after this fix, and
-	mention of coff-x86_64.* should be removed from bfd/Makefile.am.
-
-		* coff-x86_64.c: Don't include coff/pe.h.
-		(COFF_WITH_pex64): Don't define here.
-		* pe-x86_64.c: Include coff/pe.h and other headers.
-		(PEI_HEADERS): Define.
-
-2021-10-31  Alan Modra  <amodra@gmail.com>
-
-	Re: PR28420, ecoff fuzzing failures
-	sym_ptr_ptr NULL results in segfaults.
-
-		PR 28420
-		* ecoff.c (ecoff_slurp_reloc_table): Don't leave sym_ptr_ptr NULL.
-
-2021-10-31  Alan Modra  <amodra@gmail.com>
-
-	ubsan: alpha-vms: undefined shift
-		* vms-alpha.c (evax_bfd_print_image): Shift left 1u.
-
-	PR28518: signed integer overflow & free on unmalloced address
-		PR 28518
-		* vms-alpha.c (build_module_list): Don't lose malloc buffer address.
-		Use unsigned variables.
-
-2021-10-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix gdb.gdb/unittest.exp with C++17 compiler
-	On a machine with gcc 11, I get:
-
-	    FAIL: gdb.gdb/unittest.exp: test_completion: tab complete "maintenance selftest string_v" (second tab) (timeout)
-	    FAIL: gdb.gdb/unittest.exp: test_completion: tab complete "maintenance selftest string_vie" (timeout)
-
-	That's because when compiling with C++ >= 17, we use the standard
-	version of string_view, and don't have a selftest for it.  So the list
-	of selftests shown by the tab completion when completing "string_v"
-	differs.
-
-	Change the test to use the copy_* tests instead.
-
-	Change-Id: I85f6aa44ee5fc9652b9bd4451e0506b89773526b
-
-2021-10-30  Aaron Merey  <amerey@redhat.com>
-
-	gdb.texinfo: Expand documentation for debuginfod
-	Add section describing GDB's usage of debuginfod.
-
-	Refer to this new section in the description of the '--with-debuginfod'
-	configure option.
-
-	Mention debuginfod in the 'Separate Debug Files' section.
-
-2021-10-30  Aaron Merey  <amerey@redhat.com>
-
-	gdb: add set/show commands for managing debuginfod
-	Add 'set debuginfod' command.  Accepts 'on', 'off' or 'ask' as an
-	argument.  'on' enables debuginfod for the current session.  'off'
-	disables debuginfod for the current session.  'ask' will prompt
-	the user to either enable or disable debuginfod when the next query
-	is about to be performed:
-
-	    This GDB supports auto-downloading debuginfo from the following URLs:
-	    <URL1> <URL2> ...
-	    Enable debuginfod for this session? (y or [n]) y
-	    Debuginfod has been enabled.
-	    To make this setting permanent, add 'set debuginfod on' to .gdbinit.
-
-	For interactive sessions, 'ask' is the default.  For non-interactive
-	sessions, 'off' is the default.
-
-	Add 'show debuginfod status' command.  Displays whether debuginfod
-	is set to 'on', 'off' or 'ask'.
-
-	Add 'set/show debuginfod urls' commands. Accepts a string of
-	space-separated debuginfod server URLs to be queried.  The default
-	value is copied from the DEBUGINFOD_URLS environment variable.
-
-	Finally add 'set/show debuginfod verbose' commands to control whether
-	debuginfod-related output is displayed.  Verbose output is enabled
-	by default.
-
-	    (gdb) run
-	    Starting program: /bin/sleep 5
-	    Download failed: No route to host.  Continuing without debug info for /lib64/libc.so.6.
-
-	If GDB is not built with debuginfod then these commands will just display
-
-	    Support for debuginfod is not compiled into GDB.
-
-2021-10-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_FIELD_DWARF_BLOCK
-	Remove TYPE_FIELD_DWARF_BLOCK, replace with type::field +
-	field::loc_dwarf_block.
-
-	Change-Id: I10af9410bb5f46d342b8358a7956998c7e804b64
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_FIELD_STATIC_PHYSADDR
-	Remove TYPE_FIELD_STATIC_PHYSADDR replace with type::field +
-	field::loc_physaddr.
-
-	Change-Id: Ica9bc4a48f34750ec82ec86c298d3ecece81bcbd
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_FIELD_STATIC_PHYSNAME
-	Remove TYPE_FIELD_STATIC_PHYSNAME, replace with type::field +
-	field::loc_physname.
-
-	Change-Id: Ie35d446b67dd1d02f39998b406001bdb7e6d5abb
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_FIELD_ENUMVAL
-	Remove TYPE_FIELD_ENUMVAL, replace with type::field +
-	field::loc_enumval.
-
-	Change-Id: I2ada73e4635aad3363ce2eb22c1dc52698ee2072
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_FIELD_BITPOS
-	Remove TYPE_FIELD_BITPOS, replace its uses with type::field +
-	field::loc_bitpos.
-
-	Change-Id: Iccd8d5a77e5352843a837babaa6bd284162e0320
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_FIELD_LOC_KIND
-	Remove TYPE_FIELD_LOC_KIND, replace its uses with type::field +
-	field::loc_kind.
-
-	Change-Id: Ib124a26365df82ac1d23df7962d954192913bd90
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove FIELD_DWARF_BLOCK macro
-	Remove FIELD_DWARF_BLOCK, replace its uses with field::loc_dwarf_block.
-
-	Change-Id: I66b7d6a960cb5e341e61e21bd3cc9a6ac26de6a8
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove FIELD_STATIC_PHYSADDR macro
-	Remove FIELD_LOC_KIND_PHYSADDR, replace its uses with
-	field::loc_physaddr.
-
-	Change-Id: Ifd8b2bdaad75f42bfb1404ef8c396ffe7e10ac55
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove FIELD_STATIC_PHYSNAME macro
-	Remove FIELD_STATIC_PHYSNAME, replace its uses with field::loc_physname.
-
-	Change-Id: Iaa8952410403b4eb5bbd68411feea27e2405d657
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove FIELD_ENUMVAL macro
-	Remove FIELD_ENUMVAL, replace its uses with field::loc_enumval.
-
-	Change-Id: Id4861cee91a8bb583a9836f1aa5da0a320fbf4d9
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove FIELD_BITPOS macro
-	Remove FIELD_BITPOD, replace its uses with field::loc_bitpos.
-
-	Change-Id: Idb99297e0170661254276c206383a7e9bf1a935a
-
-2021-10-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove FIELD_LOC_KIND macro
-	Remove FIELD_LOC_KIND, replace its uses with field::loc_kind or
-	call_site_target::loc_kind.
-
-	Change-Id: I0368d8c3ea269d491bb215aa70e32edbdf55f389
-
-2021-10-29  Tom Tromey  <tromey@adacore.com>
-
-	Add gdb.Architecture.integer_type Python function
-	This adds a new Python function, gdb.Architecture.integer_type, which
-	can be used to look up an integer type of a given size and
-	signed-ness.  This is useful to avoid dependency on debuginfo when a
-	particular integer type would be useful.
-
-	v2 moves this to be a method on gdb.Architecture and addresses other
-	review comments.
-
-2021-10-29  Tom Tromey  <tromey@adacore.com>
-
-	Remove ada_value_print_inner
-	I noticed that the only caller of ada_value_print_inner is
-	valprint.c:do_val_print (via ada_language::value_print_inner), meaning
-	that the try/catch logic in this function is redundant.  This patch
-	removes the wrapper function.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-10-29  Tom Tromey  <tromey@adacore.com>
-
-	Document resolve_dynamic_type oddity
-	Today I re-learned that resolve_dynamic_type can return a type for
-	which is_dynamic_type returns true.  This can happen for an array
-	whose elements have dynamic type -- the array is reported as dynamic,
-	but resolving the elements would be incorrect, because each element
-	might have a different type after resolution.
-
-	You can see the special case in resolve_dynamic_array_or_string:
-
-	  if (ary_dim != NULL && ary_dim->code () == TYPE_CODE_ARRAY)
-	...
-	  else
-	...
-
-	I looked into having the TYPE_CODE_ARRAY case in
-	is_dynamic_type_internal follow this same logic, but that breaks down
-	on the gdb.fortran/dynamic-ptype-whatis.exp test case.  In particular
-	this code in fortran_undetermined::evaluate:
-
-	  value *callee = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
-	  if (noside == EVAL_AVOID_SIDE_EFFECTS
-	      && is_dynamic_type (value_type (callee)))
-	    callee = std::get<0> (m_storage)->evaluate (nullptr, exp, EVAL_NORMAL);
-
-	... relies on is_dynamic_type returning true for such an array.
-
-	I wasn't really sure of the best way to fix this, so in the meantime I
-	wrote this patch, which documents the oddity so that I might have a
-	chance of remembering this in the future.
-
-2021-10-29  Tom Tromey  <tromey@adacore.com>
-
-	Avoid self-test failures on x86-linux
-	The disassembly tests in "maint selftest" will fail on x86-linux.
-	This happens because opcodes rejects an attempt to disassemble for an
-	arch with a 64-bit address size when bfd_vma is 32-bit.
-
-	This patch avoids this problem by avoiding the test in this case.  I
-	chose to do it this way because this seems to be the only situation
-	where opcodes checks the size of bfd_vma.
-
-	For v2 of this patch, I've also updated memory_error_test to do the
-	same thing.  This is needed due to the "improve error reporting from
-	the disassembler" patch.
-
-2021-10-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build with --disable-unit-tests
-	A build with --disable-unit-tests currently run into:
-	...
-	ld: maint.o: in function \
-	  `maintenance_selftest_completer(cmd_list_element*, completion_tracker&,
-	                                  char const*, char const*)':
-	src/gdb/maint.c:1183: undefined reference to \
-	  `selftests::for_each_selftest(
-	    gdb::function_view<
-	      void (std::__cxx11::basic_string<char,std::char_traits<char>,
-	                                       std::allocator<char> > const&)>)'
-	...
-
-	Fix this by guarding the call to selftests::for_each_selftest in
-	maintenance_selftest_completer with GDB_SELF_TEST, such that the "-verbose"
-	completion still works.
-
-	Rebuild on x86_64-linux and ran gdb.gdb/unittest.exp.
-
-2021-10-29  Enze Li  <lienze2010@hotmail.com>
-
-	Document "memory-tag-violations".
-	* gdb/doc/gdb.texinfo: (Data): Document	'-memory-tag-violations'.
-	 (Command Options): Update the example.
-
-2021-10-29  Tejas Belagod  <tejas.belagod@arm.com>
-
-	Support for a new pacbti unwind opcode.
-	This patch adds readelf support for decoding the exception table
-	opcode for restoring the RA_AUTH_CODE pseudo register defined by the
-	EHABI
-	(https://github.com/ARM-software/abi-aa/releases/download/2021Q1/ehabi32.pdf
-	Section 10.3).
-
-		* readelf.c (decode_arm_unwind_bytecode): Add support to decode
-		restoring RA_AUTH_CODE pseudo register.
-
-2021-10-29  Alan Modra  <amodra@gmail.com>
-
-	Re: arm: add unwinder encoding support for PACBTI
-	Move the gas testsuite files to where they belong.
-
-2021-10-29  Alan Modra  <amodra@gmail.com>
-
-	ELF core file size checks
-	Catch fuzzed segments where p_offset + p_filesz wraps, and limit error
-	output.
-
-		* elfcore.h (elf_core_file_p): Rewrite segment checks using
-		bfd_get_file_size.  Set read_only on file size errors.
-		* elfcode.h (elf_swap_shdr_in): Don't repeat error message.
-
-2021-10-29  Alan Modra  <amodra@gmail.com>
-
-	obcopy vs. files with silly section alignment
-	We already ignore stupid segment alignment when rewriting headers,
-	ignore section alignment too.
-
-		* elf.c (rewrite_elf_program_header): Ignore section alignment
-		power greater than 62.
-
-2021-10-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-28  Stafford Horne  <shorne@gmail.com>
-
-	gdb: Add OpenRISC gdbserver and native config news
-	The previous patches added gdbserver and native debugging support
-	for OpenRISC targets.  This patch documents that in the news.
-
-	gdb: or1k: add single step for linux native debugging
-	Needed for single stepping in Linux, this adds the or1k implementation
-	of or1k_software_single_step.  Most of the implementation is borrowed
-	from the bare metal single step code from or1k_single_step_through_delay
-	which has been extracted and shared in helper function
-	or1k_delay_slot_p.
-
-2021-10-28  Stafford Horne  <shorne@gmail.com>
-
-	gdb: or1k: add native linux support
-	This patch adds support for running gdb natively on OpenRISC linux.
-	Debugging support is provided via the linux PTRACE interface which is
-	mostly handled by GDB genric code.  This patch provides the logic of how
-	to read and write the ptrace registers between linux and GDB.
-
-	Single stepping is privided in a separate patch.
-
-2021-10-28  Stafford Horne  <shorne@gmail.com>
-
-	gdb: or1k: add generated linux descriptor file
-
-	gdb: or1k: fixup linux regcache comment
-	The old comment was not properly updated from the RISC-V example used.
-	Update it to match OpenRISC.
-
-2021-10-28  Stafford Horne  <shorne@gmail.com>
-
-	gdb: or1k: implement gdb server
-	This patch adds gdbserver support for OpenRISC.  This has been used for
-	debugging the glibc port that in being worked on here:
-
-	  https://github.com/openrisc/or1k-glibc/tree/or1k-port-2
-
-	Hence the comment about registers definitions being inline with glibc.
-
-2021-10-28  Christian Biesinger  <cbiesinger@google.com>
-
-	[sim] Include defs.h in ppc/hw_memory.c
-	To fix this error (seen on cygwin):
-	/../../sim/ppc/../common ../../../sim/ppc/hw_memory.c
-	In file included from ../../gnulib/import/stdlib.h:100,
-	                 from ../../../sim/ppc/hw_memory.c:28:
-	../../gnulib/import/unistd.h:663:3: error: #error "Please include config.h first."
-	  663 |  #error "Please include config.h first."
-	      |   ^~~~~
-	../../gnulib/import/unistd.h:665:24: error: expected ';' before 'extern'
-	  665 | _GL_INLINE_HEADER_BEGIN
-	      |                        ^
-	      |                        ;
-	../../gnulib/import/unistd.h:2806:22: error: expected ';' before 'extern'
-	 2806 | _GL_INLINE_HEADER_END
-	      |                      ^
-	      |                      ;
-
-2021-10-28  Markus Klein  <markus.klein@sma.de>
-
-	ARM assembler: Allow up to 32 single precision registers in the VPUSH and VPOP instructions.
-		PR 28436
-		* config/tc-arm.c (do_vfp_nsyn_push_pop_check): New function.
-		(do_vfp_nsyn_pop): Use the new function.
-		(do_vfp_nsyn_push): Use the new function.
-		* testsuite/gas/arm/v8_1m-mve.s: Add new instructions.
-		* testsuite/gas/arm/v8_1m-mve.d: Updated expected disassembly.
-
-2021-10-28  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: use ptid_t::to_string in infrun debug messages
-	In debug messages, I think it would be more helpful to print ptid using
-	the simple "pid.lwp.tid" notation in infrun debug messages.  I am
-	currently debugging some fork issues, and find the pid_to_str output not
-	so useful, as it doesn't tell which process a thread belongs to.
-
-	It currently shows up like this:
-
-	    [infrun] resume_1: step=1, signal=GDB_SIGNAL_0, trap_expected=0, current thread [Thread 0x7ffff7d95740 (LWP 892942)] at 0x55555555521f
-
-	With the patch, it shows up like this:
-
-	    [infrun] resume_1: step=1, signal=GDB_SIGNAL_0, trap_expected=1, current thread [894072.894077.0] at 0x5555555551d9
-
-	Change-Id: I130796d7dfb0d8e763b8358d8a6002701d80c4ea
-
-2021-10-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add selftest name completion
-	After the previous commit, it is easy to add completion for selftest
-	names.  Again, this is not particularly high value, but I rarely touched
-	completion, so it served as a simple example to get some practice.
-
-	Change the for_each_selftest_ftype parameter to gdb::function_view, so
-	that we can pass a lambda that captures things.
-
-	Change-Id: I87cac299ddca9ca7eb0ffab78342e850a98d954c
-
-2021-10-28  Tejas Belagod  <Tejas.Belagod@arm.com>
-
-	arm: add unwinder encoding support for PACBTI
-	This patch adds support for encoding the Return Address Authentication pseudo
-	register - '.save {ra_auth_code}' as defined by the DWARF ABI - in the
-	exception tables where the opcode is defined by the EHABI
-
-	gas/Changelog:
-
-		* config/tc-arm.c (arm_reg_type): Add new type REG_TYPE_PSEUDO.
-		(reg_expected_msgs): Add message for pseudo reg type.
-		(reg_list_els): Add new reg list type REGLIST_PSEUDO.
-		(parse_reg_list): Handle new REGLIST_PSEUDO type.
-		(s_arm_unwind_save_pseudo): Encode pseudo reg list save in exception
-		tables.
-		(s_arm_unwind_save): Handle new REG_TYPE_PSEUDO.
-		(reg_names): Add ra_auth_code pseudo register.
-		* testsuite/gas/arm/unwind-pacbti-m.s: New test.
-		* testsuite/gas/arm/unwind-pacbti-m.d: New test.
-		* testsuite/gas/arm/unwind-pacbti-m-readelf.d: New test.
-
-2021-10-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add "maint set/show selftest verbose" commands and use process_options
-	I saw the new -verbose switch to "maint selftests" and thought it would
-	be nice for it to use the option framework.  For example, that makes
-	having completion easy.  It's not that high value, given this is a
-	maintenance command, but I had never used the framework myself, so it
-	was a good way to practice.
-
-	This patch also adds the "maint set/show selftest verbose" setting.  It
-	would be possible to use option framework without adding the setting,
-	but using the framework makes adding the option almost trivial, so I
-	thought why not.
-
-	Change-Id: I6687faa0713ff3da60b398253211777100094144
-
-2021-10-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Update some test-cases to GPLv3
-	I noticed some files in the test-suite have GPLv2 notices.
-
-	Update these to GPLv3.
-
-2021-10-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add add_setshow_prefix_cmd
-	There's a common pattern to call add_basic_prefix_cmd and
-	add_show_prefix_cmd to add matching set and show commands.  Add the
-	add_setshow_prefix_cmd function to factor that out and use it at a few
-	places.
-
-	Change-Id: I6e9e90a30e9efb7b255bf839cac27b85d7069cfd
-
-2021-10-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require python in gdb.server/server-kill-python.exp
-	I came across this when running test-case gdb.server/server-kill-python.exp
-	with a gdb configured without python:
-	...
-	builtin_spawn gdb -nw -nx -data-directory data-directory -iex set height 0 \
-	  -iex set width 0 -quiet -iex set height 0 -iex set width 0 \
-	  -ex source outputs/gdb.server/server-kill-python/file1.py^M
-	FAIL: gdb.server/server-kill-python.exp: ensure inferior is running
-	Executing on target: kill -9 28535    (timeout = 300)
-	builtin_spawn -ignore SIGHUP kill -9 28535^M
-	file1.py:1: Error in sourced command file:^M
-	Undefined command: "import".  Try "help".^M
-	...
-
-	Fix this by testing for python support in the test-case.
-
-	Tested on aarch64-linux (with python support disabled) and x86_64-linux (with
-	python support enabled).
-
-2021-10-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix assembly comments in gdb.dwarf2/clang-debug-names.exp.tcl
-	On openSUSE Leap 15.2 aarch64 I ran into:
-	...
-	clang-debug-names-debug.S:72: \
-	  Error: junk at end of line, first unrecognized character is `#'
-	...
-	due to:
-	...
-	    71  .Ldebug_names_start:
-	    72    .short 5                      # Header: version
-	...
-
-	Fix this by using the /* ... */ comment style instead:
-	...
-	$ sed -i 's% #\([^"]*\)%/*\1 */%' clang-debug-names.exp.tcl
-	...
-
-	Tested on aarch64-linux and x86_64-linux.
-
-2021-10-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Handle DW_AT_string_length with location list
-	Consider a fortran routine where a string variable s is modified:
-	...
-	subroutine f(s)
-	  character*(*) s
-	  print *, s
-	  s(1:3) = 'oof'
-	  print *, s
-	end subroutine f
-	...
-
-	When compiling with optimization level -O1 and printing the type of
-	variable s we get:
-	...
-	$ gdb -q -batch outputs/gdb.opt/fortran-string/fortran-string \
-	  -ex "b f" \
-	  -ex run \
-	  -ex "ptype s"
-	Breakpoint 1 at 0x4006f7: file fortran-string.f90, line 21.
-
-	Breakpoint 1, f (s=..., _s=_s@entry=3) at fortran-string.f90:21
-	21      subroutine f(s)
-	type = character*1
-	...
-	while with -O0 we have instead:
-	...
-	type = character (3)
-	...
-
-	The problem is that the type of s is:
-	...
-	 <1><2d6>: Abbrev Number: 21 (DW_TAG_string_type)
-	    <2d7>   DW_AT_string_length: 0xbf (location list)
-	    <2db>   DW_AT_byte_size   : 4
-	...
-	where the DW_AT_string_length is a location list, a case that is not handled
-	by attr_to_dynamic_prop.
-
-	Fix this by handling attr->form_is_section_offset () in attr_to_dynamic_prop.
-
-	Tested on x86_64-linux.
-
-	The test-case is based on gdb.opt/fortran-string.exp from
-	https://src.fedoraproject.org/rpms/gdb/raw/f32/f/gdb-archer-vla-tests.patch .
-	I've updated the copyrights to stretch to 2021.
-
-	[ I've tried to create a dwarf assembly test-case for this, but didn't
-	manage. ]
-
-	Co-Authored-By: Jan Kratochvil <jan.kratochvil@redhat.com>
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26910
-
-2021-10-28  Kavitha Natarajan  <kavitha.natarajan@amd.com>
-
-	[gdb/testsuite] Initialize anonymous union in gdb.cp/koenig.cc
-	GDB test fails while running the test case gdb.cp/koenig.exp using
-	clang compiler:
-	[...]
-	p foo (p_union)
-	No symbol "p_union" in current context.
-	(gdb) FAIL: gdb.cp/koenig.exp: p foo (p_union)
-	[...]
-
-	In the testcase, "p_union" is an unused/uninitialized variable of
-	anonymous union type. Clang does not emit symbol for unused anonymous
-	union/struct variables at any optimization level. Since the compiler
-	itself is not emitting the symbol for "p_union", debug info is also
-	not emitted when built with debug option. If the anonymous union is
-	initialized (or used), then clang emits the symbol "p_union" which
-	enables emitting debug info for "p_union".
-	[...]
-	p foo (p_union)
-	Cannot resolve function foo to any overloaded instance
-	(gdb) PASS: gdb.cp/koenig.exp: p foo (p_union)
-	[...]
-
-2021-10-28  Alan Modra  <amodra@gmail.com>
-
-	asan: mmo: NULL dereferenc in mmo_xore_32
-	mmo_get_loc can return NULL.  It's commented even, and that the caller
-	then must handle a split field.  mmo_xore_* don't handle split fields,
-	instead just segfault.  Stop that happening, and refuse to recognise
-	fuzzed mmo files that trigger this problem.
-
-		* mmo.c (mmo_get_loc): Don't declare inline.
-		(mmo_xore_64, mmo_xore_32, mmo_xore_16): Remove forward decls.
-		Return pointer, don't dereference NULL.
-		(mmo_scan): Return error on mmo_get_loc returning NULL.
-
-2021-10-28  Alan Modra  <amodra@gmail.com>
-
-	bfd: remove use of INLINE
-	No need to use anything fancy, plain inline works just as well.
-
-		* bfd-in.h (INLINE): Don't define.
-		* bfd-in2.h: Regenerate.
-		* aoutx.h: Replace use of INLINE with inline.
-		* elf-eh-frame.c: Likewise.
-		* elf32-score7.c: Likewise.
-		* elfxx-mips.c: Likewise.
-		* ihex.c: Likewise.
-		* mach-o.c: Likewise.
-		* mmo.c: Likewise.
-
-2021-10-28  Alan Modra  <amodra@gmail.com>
-
-	ASSERT in empty output section with address
-		* ldlang.c (lang_do_assignments_1): Correct "dot" inside ignored
-		sections.
-		* testsuite/ld-scripts/empty-address-4.d,
-		* testsuite/ld-scripts/empty-address-4.s,
-		* testsuite/ld-scripts/empty-address-4.t: New test.
-		* testsuite/ld-scripts/empty-address.exp: Run it.
-
-2021-10-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-27  Alan Modra  <amodra@gmail.com>
-
-	asan: alpha-vms: buffer overflows
-	Yet more anti-fuzzer sanity checking
-
-		* vms-alpha.c (evax_bfd_print_egsd): Sanity check record and
-		name lengths before access.
-		(evax_bfd_print_etir_stc_ir, evax_bfd_print_etir): Likewise.
-
-2021-10-27  Alan Modra  <amodra@gmail.com>
-
-	ubsan: arm: undefined shift
-	left shift of 2 by 31 places cannot be represented in type 'int'
-
-		* arm-dis.c (print_insn_thumb16): Avoid undefined behaviour.
-
-2021-10-27  Tom Tromey  <tromey@adacore.com>
-
-	Fix watchpoints with multiple threads on Windows
-	A recent internal change pointed out that watchpoints were not working
-	on Windows when the inferior was multi-threaded.  This happened
-	because the debug registers were only updated for certain threads --
-	in particular, those that were being resumed and that were not marked
-	as suspended.  In the case of single-stepping, the need to update the
-	debug registers in other threads could also be "forgotten".
-
-	This patch changes windows-nat.c to mark all threads needing a debug
-	register update.  This brings the code closer to what gdbserver does
-	(though, unfortunately, it still seems more complicated than needed).
-
-2021-10-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix port detection in gdb.debuginfod/fetch_src_and_symbols.exp
-	On OBS I ran into this failure with test-case
-	gdb.debuginfod/fetch_src_and_symbols.exp:
-	...
-	Failed to listen for connections: Address already in use^M
-	[Thu Oct 21 11:48:49 2021] (559/559): started http server on IPv6 port=8000^M
-	  ...
-	FAIL: gdb.debuginfod/fetch_src_and_symbols.exp: local_url: find port timeout
-	...
-
-	The test-case is trying to start debuginfod on a port to see if it's
-	available, and it handles either this message:
-	  "started http server on IPv4 IPv6 port=$port"
-	meaning success, or:
-	  "failed to bind to port"
-	meaning failure, in which case the debuginfod instance is killed, and we try
-	the next port.
-
-	The test-case only uses the v4 address 127.0.0.1, so fix this by:
-	- accepting "started http server on IPv4 port=$port"
-	- rejecting "started http server on IPv6 port=$port"
-
-	Tested on x86_64-linux.
-
-2021-10-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: fix value.c build on 32-bits
-	When building on ARM (32-bits), we errors like this:
-
-	    /home/smarchi/src/binutils-gdb/gdb/value.c: In function 'gdb::array_view<const unsigned char> value_contents_for_printing(value*)':
-	    /home/smarchi/src/binutils-gdb/gdb/value.c:1252:35: error: narrowing conversion of 'length' from 'ULONGEST' {aka 'long long unsigned int'} to 'size_t' {aka 'unsigned int'} [-Werror=narrowing]
-	     1252 |   return {value->contents.get (), length};
-	          |                                   ^~~~~~
-
-	Fix that by using gdb::make_array_view, which does the appropriate
-	conversion.
-
-	Change-Id: I7d6f2e75d7440d248b8fb18f8272ee92954b404d
-
-2021-10-27  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Tidy riscv assembler and disassembler.
-	Tidy the gas/config/tc-riscv.c and opcodes/riscv-dis.c, to prepare for
-	moving the released extensions (including released vendor extensions)
-	from integration branch back to mainline.
-
-	* Added parts of missing comments.
-
-	* Updated md_show_usage.
-
-	* For validate_riscv_insn, riscv_ip and print_insn_args, unify the
-	  following pointer names,
-	  - oparg: pointed to the parsed operand defined in the riscv_opcodes.
-	  - asarg: pointed to the parsed operand from assembly.
-	  - opargStart: recorded the parsed operand name from riscv_opcodes.
-	  - asargStart: recorded the parsed operand name from assembly.
-
-	gas/
-		* config/tc-riscv.c: Added parts of missind comments and updated
-		the md_show_usage.
-		(riscv_multi_subset_supports): Tidy codes.
-		(validate_riscv_insn): Unify the pointer names, oparg, asarg,
-		opargStart and asargStart, to prepare for moving the released
-		extensions from integration branch back to mainline.
-		(riscv_ip): Likewise.
-		(macro_build): Added fmtStart, also used to prepare for moving
-		released extensions.
-		(md_show_usage): Added missing descriptions for new options.
-	opcodes/
-		* riscv-dis.c (print_insn_args): Unify the pointer names,
-		oparg and opargStart, to prepare for moving the released
-		extensions from integration branch back to mainline.
-
-2021-10-27  Maciej W. Rozycki  <macro@embecosm.com>
-
-	opcodes: Fix RPATH not being set for dynamic libbfd dependency
-	If built as a shared library, libopcodes has a load-time dependency on
-	libbfd, which is recorded in the dynamic section, however without a
-	corresponding RPATH entry for the directory to find libbfd in.  This
-	causes loading to fail whenever libbfd is only pulled by libopcodes
-	indirectly and libbfd has been installed in a directory that is not in
-	the dynamic loader's search path.
-
-	It does not happen with the programs included with binutils or GDB,
-	because they all also pull libbfd when using libopcodes, but it can
-	happen with external software, e.g.:
-
-	$ gdbserver --help
-	gdbserver: error while loading shared libraries: libbfd-[...].so: cannot open shared object file: No such file or directory
-	$
-
-	(not our `gdbserver').
-
-	Indirect dynamic dependencies are handled by libtool automatically by
-	adding RPATH entries as required, however our setup for libopcodes
-	prevents this from happening by linking in libbfd with an explicit file
-	reference sneaked through to the linker directly behind libtool's back
-	via the `-Wl' linker command-line option rather than via `-l' combined
-	with a suitable library search path specified via `-L', as it would be
-	usually the case, or just referring to the relevant .la file in a fully
-	libtool-enabled configuration such as ours.
-
-	According to an observation in the discussion back in 2007[1][2][3] that
-	has led to the current arrangement it is to prevent libtool from picking
-	up the wrong version of libbfd.  It does not appear to be needed though,
-	not at least with our current libtool incarnation, as directly referring
-	`libbfd.la' does exactly what it should, as previously suggested[4], and
-	with no link-time reference to the installation directory other than to
-	set RPATH.  Uninstalled version of libopcodes has libbfd's build-time
-	location prepended to RPATH too, as also expected.
-
-	Use a direct reference to `libbfd.la' then, making the load error quoted
-	above go away.  Alternatively `-L' and `-l' could be used to the same
-	effect, but it seems an unnecessary complication and just another way to
-	circumvent rather than making use of libtool.
-
-	References:
-
-	[1] "compile failure due to undefined symbol",
-	    <https://sourceware.org/ml/binutils/2007-08/msg00476.html>
-
-	[2] same, <https://sourceware.org/ml/binutils/2007-09/msg00000.html>
-
-	[3] same, <https://sourceware.org/ml/binutils/2007-10/msg00019.html>
-
-	[4] same, <https://sourceware.org/ml/binutils/2007-10/msg00034.html>
-
-		opcodes/
-		* Makefile.am: Remove obsolete comment.
-		* configure.ac: Refer `libbfd.la' to link shared BFD library
-		except for Cygwin.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-
-2021-10-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-27  H.J. Lu  <hjl.tools@gmail.com>
-
-	gold: Place .note.gnu.property section before other note sections
-	Place the .note.gnu.property section before all other note sections to
-	avoid being placed between other note sections with different alignments.
-
-		PR gold/28494
-		* layout.cc (Layout::create_note): Set order to ORDER_PROPERTY_NOTE
-		for the .note.gnu.property section.
-		* layout.h (Output_section_order): Add ORDER_PROPERTY_NOTE.
-
-2021-10-26  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/doc] Fix print inferior-events default
-	In the docs about print inferior-events we read:
-	...
-	By default, these messages will not be printed.
-	...
-
-	That used to be the case, but is no longer so since commit f67c0c91715 "Enable
-	'set print inferior-events' and improve detach/fork/kill/exit messages".
-
-	Fix this by updating the docs.
-
-2021-10-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-25  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: change functions returning value contents to use gdb::array_view
-	The bug fixed by this [1] patch was caused by an out-of-bounds access to
-	a value's content.  The code gets the value's content (just a pointer)
-	and then indexes it with a non-sensical index.
-
-	This made me think of changing functions that return value contents to
-	return array_views instead of a plain pointer.  This has the advantage
-	that when GDB is built with _GLIBCXX_DEBUG, accesses to the array_view
-	are checked, making bugs more apparent / easier to find.
-
-	This patch changes the return types of these functions, and updates
-	callers to call .data() on the result, meaning it's not changing
-	anything in practice.  Additional work will be needed (which can be done
-	little by little) to make callers propagate the use of array_view and
-	reap the benefits.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2021-September/182306.html
-
-	Change-Id: I5151f888f169e1c36abe2cbc57620110673816f3
-
-2021-10-25  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdbsupport: add assertions in array_view
-	Add assertions to ensure we don't access an array_view out of bounds.
-	Enable these assertions only when _GLIBCXX_DEBUG is set, as we did for
-	gdb::optional.
-
-	Change-Id: Iffaee38252405073735ed123c8e57fde6b2c6be3
-
-2021-10-25  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver: make target_pid_to_str return std::string
-	I wanted to write a warning that included two target_pid_to_str calls,
-	like this:
-
-	    warning (_("Blabla %s, blabla %s"),
-		     target_pid_to_str (ptid1),
-		     target_pid_to_str (ptid2));
-
-	This doesn't work, because target_pid_to_str stores its result in a
-	static buffer, so my message would show twice the same ptid.  Change
-	target_pid_to_str to return an std::string to avoid this.  I don't think
-	we save much by using a static buffer, but it is more error-prone.
-
-	Change-Id: Ie3f649627686b84930529cc5c7c691ccf5d36dc2
-
-2021-10-25  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Also handle stores for -muse-unaligned-vector-move
-		* config/tc-i386.c (encode_with_unaligned_vector_move): Also
-		handle stores.
-		* testsuite/gas/i386/unaligned-vector-move.s: Add stores.
-		* testsuite/gas/i386/unaligned-vector-move.d: Updated.
-		* testsuite/gas/i386/x86-64-unaligned-vector-move.d: Likewise.
-
-2021-10-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix duplicate in gdb.mi/mi-var-cp.exp
-	With test-case gdb.mi/mi-var-cp.exp I run into this duplicate:
-	...
-	PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:104 (set breakpoint)
-	PASS: gdb.mi/mi-var-cp.exp: create varobj for s
-	PASS: gdb.mi/mi-var-cp.exp: create varobj for s
-	DUPLICATE: gdb.mi/mi-var-cp.exp: create varobj for s
-	...
-
-	This is due to a duplicate test name here:
-	...
-	$ cat -n gdb/testsuite/gdb.mi/mi-var-cp.cc
-	  ...
-	   100  int reference_to_struct ()
-	   101  {
-	   102    /*: BEGIN: reference_to_struct :*/
-	   103    S s = {7, 8};
-	   104    S& r = s;
-	   105    /*:
-	   106      mi_create_varobj S s "create varobj for s"
-	   107      mi_create_varobj R r "create varobj for s"
-	...
-
-	Fix this by using "create varobj for r" instead.
-
-	Tested on x86_64-linux.
-
-2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf, ld: handle nonrepresentable types better
-	ctf_type_visit (used, among other things, by the type dumping code) was
-	aborting when it saw a nonrepresentable type anywhere: even a single
-	structure member with a nonrepresentable type caused an abort with
-	ECTF_NONREPRESENTABLE.  This is not useful behaviour, given that the
-	abort comes from a type-resolution we are only doing in order to
-	determine whether the type is a structure or union.  We know
-	nonrepresentable types can't be either, so handle that case and
-	pass the nonrepresentable type down.
-
-	(The added test verifies that the dumper now handles this case and
-	prints nonrepresentable structure members as it already does
-	nonrepresentable top-level types, rather than skipping the whole
-	structure -- or, without the previous commit, skipping the whole types
-	section.)
-
-	ld/ChangeLog
-	2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-		* testsuite/ld-ctf/nonrepresentable-member.*: New test.
-
-	libctf/ChangeLog
-	2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-		* ctf-types.c (ctf_type_rvisit): Handle nonrepresentable types.
-
-2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: dump: do not stop dumping types on error
-	If dumping of a single type fails, we obviously can't dump it; but just
-	as obviously this doesn't make the other types in the types section
-	invalid or undumpable.  So we should not propagate errors seen when
-	type-dumping, but rather ignore them and carry on, so we dump as many
-	types as we can (leaving out the ones we can't grok).
-
-	libctf/ChangeLog
-	2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-		* ctf-dump.c (ctf_dump_type): Do not abort on error.
-
-2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-	binutils, ld: make objdump --ctf's parameter optional
-	ld by default (and always, unless adjusted with a hand-rolled linker
-	script) emits deduplicated CTF into the .ctf section.  But viewing
-	it needs you to explicitly tell objdump this: it doesn't default
-	its argument, even though what you always end up typing is
-	--ctf=.ctf.
-
-	This is annoying, so make the argument optional.
-
-	binutils/ChangeLog
-	2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-		* objdump.c (usage): --ctf now has an optional argument.
-		(main): Adjust accordingly.
-		(dump_ctf): Default it.
-		* doc/ctf.options.texi: Adjust.
-
-	ld/ChangeLog
-	2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-		* testsuite/ld-ctf/array.d: Change --ctf=.ctf to --ctf.
-		* testsuite/ld-ctf/conflicting-cycle-1.B-1.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-1.B-2.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-1.parent.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-2.A-1.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-2.A-2.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-2.parent.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-3.C-1.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-3.C-2.d: Likewise.
-		* testsuite/ld-ctf/conflicting-cycle-3.parent.d: Likewise.
-		* testsuite/ld-ctf/conflicting-enums.d: Likewise.
-		* testsuite/ld-ctf/conflicting-typedefs.d: Likewise.
-		* testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Likewise.
-		* testsuite/ld-ctf/cross-tu-cyclic-nonconflicting.d: Likewise.
-		* testsuite/ld-ctf/cross-tu-into-cycle.d: Likewise.
-		* testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise.
-		* testsuite/ld-ctf/cycle-1.d: Likewise.
-		* testsuite/ld-ctf/cycle-2.A.d: Likewise.
-		* testsuite/ld-ctf/cycle-2.B.d: Likewise.
-		* testsuite/ld-ctf/cycle-2.C.d: Likewise.
-		* testsuite/ld-ctf/data-func-conflicted.d: Likewise.
-		* testsuite/ld-ctf/diag-cttname-null.d: Likewise.
-		* testsuite/ld-ctf/diag-cuname.d: Likewise.
-		* testsuite/ld-ctf/diag-parlabel.d: Likewise.
-		* testsuite/ld-ctf/enum-forward.d: Likewise.
-		* testsuite/ld-ctf/enums.d: Likewise.
-		* testsuite/ld-ctf/forward.d: Likewise.
-		* testsuite/ld-ctf/function.d: Likewise.
-		* testsuite/ld-ctf/nonrepresentable.d: Likewise.
-		* testsuite/ld-ctf/slice.d: Likewise.
-		* testsuite/ld-ctf/super-sub-cycles.d: Likewise.
-
-2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-	binutils: make objdump/readelf --ctf-parent actually useful
-	This option has been present since the very early days of the
-	development of libctf as part of binutils, and it shows.  Back in the
-	earliest days, I thought we might handle ambiguous types by introducing
-	new ELF sections on the fly named things like .ctf.foo.c for ambiguous
-	types found only in foo.c, etc.  This turned out to be a terrible idea,
-	so we moved to using a CTF archive in the .ctf section which contained
-	all the CTF dictionaries -- but the --ctf-parent option in objdump and
-	readelf was never adjusted, and lingered as a mechanism to specify CTF
-	parent dictionaries in sections other than .ctf, even though the linker
-	has no way to produce parent dictionaries in different sections from
-	their children, libctf's ctf_open can't handle such split-up
-	parent/child dicts, and they are never found in the wild, emitted by GNU
-	ld or by any known third-party linking tool.
-
-	Meanwhile, the actually-useful ctf_link feature (albeit not used by ld)
-	which lets you remap the names of CTF archive members (so you can end up
-	with a parent archive member named something other than ".ctf", still
-	contained with all its children in a single .ctf section) had no support
-	in objdump or readelf: there was no way to tell them that these members
-	were parents, so all the types in the associated child dicts always
-	appeared corrupted, referencing nonexistent types from a parent objdump
-	couldn't find.
-
-	So adjust --ctf-parent so that rather than taking a section name it
-	takes a member name instead (if not specified, the name is ".ctf", which
-	is what GNU ld emits).  Because the option was always useless before
-	now, this is expected to have no backward-compatibility implications.
-
-	As part of this, we have to slightly adjust the code which skips the
-	archive member name if redundant: right now it skips it if it's ".ctf",
-	on the assumption that this name will almost always be at the start
-	of the objdump output and thus we'll end up with a shared dump
-	and then smaller, headed dumps for the per-TU child dicts; but if
-	the parent name has been changed, that won't be true any more.
-
-	So change the rules to "members named .ctf which appear first in the
-	first have their member name skipped".  Since we now need to count
-	members, move from ctf_archive_iter (for which passing in extra
-	parameters requires defining a new struct and is clumsy) to
-	ctf_archive_next, allowing us to just *call* dump_ctf_archive_member and
-	maintain a member count in the obvious way.  In the process we fix a
-	tiny difference between readelf and objdump: if a ctf_dump ever failed,
-	readelf skipped every later member, while objdump tried to keep going as
-	much as it could.  For a dumping tool the former is clearly preferable.
-
-	binutils/ChangeLog
-	2021-10-25  Nick Alcock  <nick.alcock@oracle.com>
-
-		* objdump.c (usage): --ctf-parent now takes a name, not a section.
-		(dump_ctf): Don't open a separate section; use the parent_name in
-		ctf_dict_open instead.  Use ctf_archive_next, not ctf_archive_iter,
-		so we can pass down a member count.
-		(dump_ctf_archive_member): Add the member count; don't return
-		anything.  Import parents into children no matter what the
-		parent's name, while still avoiding displaying the header for the
-		common parent name of ".ctf".
-		* readelf.c (usage): Adjust similarly.
-		(dump_section_as_ctf): Likewise.
-		(dump_ctf_archive_member): Likewise.  Never stop iterating over
-		archive members, even if ctf_dump of one member fails.
-		* doc/ctf.options.texi: Adjust.
-
-2021-10-25  Alan Modra  <amodra@gmail.com>
-
-	objdump doesn't accept -L option
-	A followup to commit ca0e11aa4b.
-
-		* objdump.c (main): Add 'L' to short options and sort them.
-
-2021-10-25  Alan Modra  <amodra@gmail.com>
-
-	bfd_nonfatal_message, localise va_start
-	Nothing to see here, just a little tidier.
-
-		* bucomm.c (bfd_nonfatal_message): Localise va_list args.
-
-2021-10-25  Alan Modra  <amodra@gmail.com>
-
-	ubsan: _bfd_xcoff64_swap_aux_in left shift of negative value
-		* coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Use bfd_vma for h.
-
-	asan: evax_bfd_print_image buffer overflow
-		* vms-alpha.c (evax_bfd_print_image): Sanity check printing of
-		"image activator fixup" section.
-		(evax_bfd_print_relocation_records): Sanity check buffer offsets.
-		(evax_bfd_print_address_fixups): Likewise.
-		(evax_bfd_print_reference_fixups): Likewise.
-
-2021-10-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-24  Alan Modra  <amodra@gmail.com>
-
-	asan: c4x, c54x coff_canonicalize_reloc buffer overflow
-	Sometimes the investigation of a fuzzing bug report leads into areas
-	you'd rather not go.  In this instance by the time I'd figured out the
-	real cause was a target variant that had never been properly supported
-	in binutils, the time needed to fix it was less than the time needed
-	to rip it out.
-
-		* coffcode.h (coff_set_alignment_hook): Call bfd_coff_swap_reloc_in
-		not coff_swap_reloc_in.
-		(coff_slurp_reloc_table): Likewise.  Don't use RELOC type.
-		(ticoff0_swap_table): Use coff_swap_reloc_v0_out and
-		coff_swap_reloc_v0_in.
-		* coffswap.h (coff_swap_reloc_v0_in, coff_swap_reloc_v0_out): New.
-		* coff-tic54x.c (tic54x_lookup_howto): Don't abort.
-		* coffgen.c (coff_get_normalized_symtab): Use PTR_ADD.
-		* bfd-in.h (PTR_ADD, NPTR_ADD): Avoid warnings when passing an
-		expression.
-		* bfd-in2.h: Regenerate.
-
-2021-10-24  Alan Modra  <amodra@gmail.com>
-
-	asan: arm-darwin: buffer overflow
-		PR 21813
-		* mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Sanity
-		check PAIR reloc in other branch of condition as was done for
-		PR21813.  Formatting.  Delete debug printf.
-
-	asan: aout: heap buffer overflow
-		* aoutx.h (aout_get_external_symbols): Sanity check before writing
-		zero index entry.  Remove outdated comment.
-		* pdp11.c (aout_get_external_symbols): Likewise.
-
-2021-10-24  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch ld support
-	2021-10-22  Chenghua Xu  <xuchenghua@loongson.cn>
-		    Zhensong Liu  <liuzhensong@loongson.cn>
-		    Weinan Liu  <liuweinan@loongson.cn>
-		    Xiaolin Tang  <tangxiaolin@loongson.cn>
-
-	ld/
-		* Makefile.am: Add LoongArch.
-		* NEWS: Mention LoongArch support.
-		* configure.tgt: Add LoongArch.
-		* emulparams/elf32loongarch-defs.sh: New.
-		* emulparams/elf32loongarch.sh: Likewise.
-		* emulparams/elf64loongarch-defs.sh: Likewise.
-		* emulparams/elf64loongarch.sh: Likewise.
-		* emultempl/loongarchelf.em: Likewise.
-		* Makefile.in: Regenerate.
-		* po/BLD-POTFILES.in: Regenerate.
-	ld/testsuite/
-		* ld-loongarch-elf/disas-jirl.d: New.
-		* ld-loongarch-elf/disas-jirl.s: Likewise.
-		* ld-loongarch-elf/jmp_op.d: Likewise.
-		* ld-loongarch-elf/jmp_op.s: Likewise.
-		* ld-loongarch-elf/ld-loongarch-elf.exp: Likewise.
-		* ld-loongarch-elf/macro_op.d: Likewise.
-		* ld-loongarch-elf/macro_op.s: Likewise.
-		* ld-loongarch-elf/syscall-0.s: Likewise.
-		* ld-loongarch-elf/syscall-1.s: Likewise.
-		* ld-loongarch-elf/syscall.d: Likewise.
-		* ld-srec/srec.exp: Add LoongArch.
-		* ld-unique/pr21529.d: Likewise.
-
-2021-10-24  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch gas support
-	2021-10-22  Chenghua Xu  <xuchenghua@loongson.cn>
-	            Zhensong Liu  <liuzhensong@loongson.cn>
-	            Weinan Liu  <liuweinan@loongson.cn>
-		    Xiaolin Tang  <tangxiaolin@loongson.cn>
-
-	gas/
-		* Makefile.am: Add LoongArch.
-		* NEWS: Mention LoongArch support.
-		* config/loongarch-lex-wrapper.c: New.
-		* config/loongarch-lex.h: New.
-		* config/loongarch-lex.l: New.
-		* config/loongarch-parse.y: New.
-		* config/tc-loongarch.c: New.
-		* config/tc-loongarch.h: New.
-		* configure.ac: Add LoongArch.
-		* configure.tgt: Likewise.
-		* doc/as.texi: Likewise.
-		* doc/c-loongarch.texi: Likewise.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-		* po/POTFILES.in: Regenerate.
-	gas/testsuite/
-		* gas/all/gas.exp: Add LoongArch.
-		* gas/elf/elf.exp: Likewise.
-		* gas/loongarch/4opt_op.d: New.
-		* gas/loongarch/4opt_op.s: Likewise.
-		* gas/loongarch/fix_op.d: Likewise.
-		* gas/loongarch/fix_op.s: Likewise.
-		* gas/loongarch/float_op.d: Likewise.
-		* gas/loongarch/float_op.s: Likewise.
-		* gas/loongarch/imm_op.d: Likewise.
-		* gas/loongarch/imm_op.s: Likewise.
-		* gas/loongarch/jmp_op.d: Likewise.
-		* gas/loongarch/jmp_op.s: Likewise.
-		* gas/loongarch/load_store_op.d: Likewise.
-		* gas/loongarch/load_store_op.s: Likewise.
-		* gas/loongarch/loongarch.exp: Likewise.
-		* gas/loongarch/macro_op.d: Likewise.
-		* gas/loongarch/macro_op.s: Likewise.
-		* gas/loongarch/nop.d: Likewise.
-		* gas/loongarch/nop.s: Likewise.
-		* gas/loongarch/privilege_op.d: Likewise.
-		* gas/loongarch/privilege_op.s: Likewise.
-		* gas/loongarch/syscall.d: Likewise.
-		* gas/loongarch/syscall.s: Likewise.
-		* lib/gas-defs.exp: Add LoongArch.
-
-2021-10-24  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch binutils support
-	2021-10-22  Chenghua Xu  <xuchenghua@loongson.cn>
-		    Zhensong Liu  <liuzhensong@loongson.cn>
-		    Weinan Liu  <liuweinan@loongson.cn>
-	binutils/
-		* NEWS: Mention LoongArch support.
-		* readelf.c: Add LoongArch.
-		* testsuite/binutils-all/objdump.exp: Add LoongArch.
-
-2021-10-24  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch opcodes support
-	2021-10-22  Chenghua Xu  <xuchenghua@loongson.cn>
-		    Zhensong Liu  <liuzhensong@loongson.cn>
-		    Weinan Liu  <liuweinan@loongson.cn>
-
-	include/
-		* opcode/loongarch.h: New.
-		* dis-asm.h: Declare print_loongarch_disassembler_options.
-	opcodes/
-		* Makefile.am: Add LoongArch.
-		* configure.ac: Likewise.
-		* disassemble.c: Likewise.
-		* disassemble.h: Declare print_insn_loongarch.
-		* loongarch-coder.c: New.
-		* loongarch-dis.c: New.
-		* loongarch-opc.c: New.
-		* Makefile.in: Regenerate.
-		* configure: Regenerate.
-		* po/POTFILES.in: Regenerate.
-
-2021-10-24  liuzhensong  <liuzhensong@loongson.cn>
-
-	LoongArch bfd support
-	2021-10-22  Chenghua Xu  <xuchenghua@loongson.cn>
-		    Zhensong Liu  <liuzhensong@loongson.cn>
-		    Weinan Liu  <liuweinan@loongson.cn>
-	bfd/
-		* Makefile.am: Add LoongArch.
-		* archures.c: Likewise.
-		* config.bfd: Likewise.
-		* configure.ac: Likewise.
-		* cpu-loongarch.c: New.
-		* elf-bfd.h: Add LoongArch.
-		* elf.c: Add LoongArch elfcore_grok_xxx.
-		* elfnn-loongarch.c: New.
-		* elfxx-loongarch.c: New.
-		* elfxx-loongarch.h: New.
-		* reloc.c: Add LoongArch BFD RELOC ENUM.
-		* targets.c: Add LoongArch target.
-		* Makefile.in: Regenerate.
-		* bfd-in2.h: Regenerate.
-		* configure: Regenerate.
-		* libbfd.h: Regenerate.
-		* po/BLD-POTFILES.in: Regenerate.
-		* po/SRC-POTFILES.in: Regenerate.
-
-	include/
-		* elf/common.h: Add NT_LARCH_{CPUCFG,CSR,LSX,LASX}.
-		* elf/loongarch.h: New.
-
-2021-10-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-22  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Add -muse-unaligned-vector-move to assembler
-	Unaligned load/store instructions on aligned memory or register are as
-	fast as aligned load/store instructions on modern Intel processors.  Add
-	a command-line option, -muse-unaligned-vector-move, to x86 assembler to
-	encode encode aligned vector load/store instructions as unaligned
-	vector load/store instructions.
-
-		* NEWS: Mention -muse-unaligned-vector-move.
-		* config/tc-i386.c (use_unaligned_vector_move): New.
-		(encode_with_unaligned_vector_move): Likewise.
-		(md_assemble): Call encode_with_unaligned_vector_move for
-		-muse-unaligned-vector-move.
-		(OPTION_MUSE_UNALIGNED_VECTOR_MOVE): New.
-		(md_longopts): Add -muse-unaligned-vector-move.
-		(md_parse_option): Handle -muse-unaligned-vector-move.
-		(md_show_usage): Add -muse-unaligned-vector-move.
-		* doc/c-i386.texi: Document -muse-unaligned-vector-move.
-		* testsuite/gas/i386/i386.exp: Run unaligned-vector-move and
-		x86-64-unaligned-vector-move.
-		* testsuite/gas/i386/unaligned-vector-move.d: New file.
-		* testsuite/gas/i386/unaligned-vector-move.s: Likewise.
-		* testsuite/gas/i386/x86-64-unaligned-vector-move.d: Likewise.
-
-2021-10-22  Tom Tromey  <tromey@adacore.com>
-
-	Fix 'uninstall' target
-	This adds some missing code to the 'uninstall' targets in gdb and
-	gdbserver.  It also changes gdb's uninstall target so that it no
-	longer tries to remove any man page -- this is already done (and more
-	correctly) by doc/Makefile.in.
-
-	I tested this with 'make install' followed by 'make uninstall', then
-	examining the install tree for regular files.  Only the 'dir' file
-	remains, but this appears to just be how 'install-info' is intended to
-	work.
-
-2021-10-22  Tom Tromey  <tromey@adacore.com>
-
-	Remove unused variables from gdbserver's Makefile
-	This removes a number of unused variables from gdbserver's Makefile.
-	I found these while working on the subsequent patches, and figured it
-	would be cleaner to have a separate patch for the deletions.
-
-2021-10-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/linux-dp.exp
-	On openSUSE Tumbleweed with glibc-debuginfo installed I get:
-	...
-	 (gdb) PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
-	 where^M
-	 #0  print_philosopher (n=3, left=33 '!', right=33 '!') at linux-dp.c:105^M
-	 #1  0x0000000000401628 in philosopher (data=0x40537c) at linux-dp.c:148^M
-	 #2  0x00007ffff7d56b37 in start_thread (arg=<optimized out>) \
-	                          at pthread_create.c:435^M
-	 #3  0x00007ffff7ddb640 in clone3 () \
-	                          at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81^M
-	 (gdb) PASS: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
-	...
-	while without debuginfo installed I get instead:
-	...
-	 (gdb) PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
-	 where^M
-	 #0  print_philosopher (n=3, left=33 '!', right=33 '!') at linux-dp.c:105^M
-	 #1  0x0000000000401628 in philosopher (data=0x40537c) at linux-dp.c:148^M
-	 #2  0x00007ffff7d56b37 in start_thread () from /lib64/libc.so.6^M
-	 #3  0x00007ffff7ddb640 in clone3 () from /lib64/libc.so.6^M
-	 (gdb) FAIL: gdb.threads/linux-dp.exp: first thread-specific breakpoint hit
-	...
-
-	The problem is that the regexp used:
-	...
-	  "\(from .*libpthread\|at pthread_create\|in pthread_create\)"
-	...
-	expects the 'from' part to match libpthread, but in glibc 2.34 libpthread has
-	been merged into libc.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-2021-10-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAILs in gdb.mi/mi-breakpoint-changed.exp
-	Since commit e36788d1354 "[gdb/testsuite] Fix handling of nr_args < 3 in
-	mi_gdb_test" we run into:
-	...
-	PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: mi runto main
-	Expecting: ^(-break-insert -f pendfunc1[^M
-	]+)?((&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,\
-	  bkpt=\{number="2",type="breakpoint".*\}.*\n\^done[^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	-break-insert -f pendfunc1^M
-	^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",\
-	  addr="0x00007ffff7bd559e",func="pendfunc1",\
-	  file="gdb/testsuite/gdb.mi/pendshr1.c",\
-	  fullname="gdb/testsuite/gdb.mi/pendshr1.c",line="21",thread-groups=["i1"],\
-	  times="0",original-location="pendfunc1"}^M
-	(gdb) ^M
-	FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \
-	  -break-insert -f pendfunc1 (unexpected output)
-	...
-
-	The regexp expects a breakpoint-created event, but that's actually suppressed
-	by the command:
-	...
-	DEF_MI_CMD_MI_1 ("break-insert", mi_cmd_break_insert,
-	                   &mi_suppress_notification.breakpoint),
-	...
-
-	Fix this by updating the regexp.
-
-	Likewise for the following:
-	...
-	PASS: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \
-	  -break-insert -f pendfunc1
-	Expecting: ^(-break-enable count 1 2[^M
-	]+)?(=breakpoint-modified,\
-	  bkpt=\{number="2",type="breakpoint",disp="dis",enabled="y".*\}.*\n\^done[^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	-break-enable count 1 2^M
-	^done^M
-	(gdb) ^M
-	FAIL: gdb.mi/mi-breakpoint-changed.exp: test_auto_disable: \
-	  -break-enable count 1 2 (unexpected out\
-	put)
-	...
-
-	Tested on x86_64-linux.
-
-2021-10-22  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: move gdb.Membuf support into a new file
-	In a future commit I'm going to be creating gdb.Membuf objects from a
-	new file within gdb/python/py*.c.  Currently all gdb.Membuf objects
-	are created directly within infpy_read_memory (as a result of calling
-	gdb.Inferior.read_memory()).
-
-	Initially I split out the Membuf creation code into a new function,
-	and left the new function in gdb/python/py-inferior.c, however, it
-	felt a little random that the Membuf creation code should live with
-	the inferior handling code.
-
-	So, then I moved all of the Membuf related code out into a new file,
-	gdb/python/py-membuf.c, the interface is gdbpy_buffer_to_membuf, which
-	wraps an array of bytes into a gdb.Membuf object.
-
-	Most of the code is moved directly from py-inferior.c with only minor
-	tweaks to layout and replacing NULL with nullptr, hence, I've left the
-	copyright date on py-membuf.c as 2009-2021 to match py-inferior.c.
-
-	Currently, the only user of this code is still py-inferior.c, but in
-	later commits this will change.
-
-	There should be no user visible changes after this commit.
-
-2021-10-22  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: new gdb.architecture_names function
-	Add a new function to the Python API, gdb.architecture_names().  This
-	function returns a list containing all of the supported architecture
-	names within the current build of GDB.
-
-	The values returned in this list are all of the possible values that
-	can be returned from gdb.Architecture.name().
-
-2021-10-22  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: make disassembler fprintf callback a static member function
-	The disassemble_info structure has four callbacks, we have three of
-	them as static member functions within gdb_disassembler, the fourth is
-	just a global static function.
-
-	However, this fourth callback, is still only used from the
-	disassemble_info struct, so there's no real reason for its special
-	handling.
-
-	This commit makes fprintf_disasm a static method within
-	gdb_disassembler.
-
-	There should be no user visible changes after this commit.
-
-2021-10-22  Lewis Revill  <lewis.revill@embecosm.com>
-
-	RISC-V: Added ld testcase for pcgp relaxation.
-	Consider the the pcgp-relax-02 testcase,
-
-	        .text
-	        .globl _start
-	_start:
-	.L1:    auipc   a0, %pcrel_hi(data_a)
-	.L2:    auipc   a1, %pcrel_hi(data_b)
-	        addi    a0, a0, %pcrel_lo(.L1)
-	        addi    a1, a1, %pcrel_lo(.L2)
-
-	        .data
-	        .word 0x0
-	        .globl data_a
-	data_a:
-	        .word 0x1
-
-	        .section .rodata
-	        .globl data_b
-	data_b:
-	        .word 0x2
-
-	If the first auipc is deleted, but we are still building the pcgp
-	table (connect the high and low pcrel relocations), then there is
-	an aliasing issue that we need some way to disambiguate which of
-	the two symbols we are targeting.  Therefore, Palmer thought of a
-	way to use R_RISCV_DELETE to split this into two phases, so we
-	could resolve the addresses before creating the ambiguities.
-
-	This patch just add the ld testcase for the above case, in case we
-	have changed something but break this.
-
-	ld/
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Renamed pcgp-relax
-		to pcgp-relax-01, and added pcgp-relax-02.
-		* testsuite/ld-riscv-elf/pcgp-relax-01.d: Renmaed from pcgp-relax.
-		* testsuite/ld-riscv-elf/pcgp-relax-01.s: Likewise.
-		* testsuite/ld-riscv-elf/pcgp-relax-02.d: New testcase.
-		* testsuite/ld-riscv-elf/pcgp-relax-02.s: Likewise.
-
-2021-10-22  Lewis Revill  <lewis.revill@embecosm.com>
-
-	RISC-V: Don't separate pcgp relaxation to another relax pass.
-	Commit abd20cb637008da9d32018b4b03973e119388a0a and
-	ebdcad3fddf6ec21f6d4dcc702379a12718cf0c4 introduced additional
-	complexity into the paths run by the RISC-V relaxation pass in order to
-	resolve the issue of accurately keeping track of pcrel_hi and pcrel_lo
-	pairs. The first commit split up relaxation of these relocs into a pass
-	which occurred after other relaxations in order to prevent the situation
-	where bytes were deleted in between a pcrel_lo/pcrel_hi pair, inhibiting
-	our ability to find the corresponding pcrel_hi relocation from the
-	address attached to the pcrel_lo.
-
-	Since the relaxation was split into two passes the 'again' parameter
-	could not be used to perform the entire relaxation process again and so
-	the second commit added a way to restart ldelf_map_segments, thus
-	starting the whole process again.
-
-	Unfortunately this process could not account for the fact that we were
-	not finished with the relaxation process so in some cases - such as the
-	case where code would not fit in a memory region before the
-	R_RISCV_ALIGN relocation was relaxed - sanity checks in generic code
-	would fail.
-
-	This patch fixes all three of these concerns by reverting back to a
-	system of having only one target relax pass but updating entries in the
-	table of pcrel_hi/pcrel_lo relocs every time any bytes are deleted. Thus
-	we can keep track of the pairs accurately, and we can use the 'again'
-	parameter to restart the entire target relax pass, behaving in the way
-	that generic code expects. Unfortunately we must still have an
-	additional pass to delay deleting AUIPC bytes to avoid ambiguity between
-	pcrel_hi relocs stored in the table after deletion. This pass can only
-	be run once so we may potentially miss out on relaxation opportunities
-	but this is likely to be rare.
-
-	https://sourceware.org/bugzilla/show_bug.cgi?id=28410
-
-	bfd/
-		* elfnn-riscv.c (riscv_elf_link_hash_table): Removed restart_relax.
-		(riscv_elf_link_hash_table_create): Updated.
-		(riscv_relax_delete_bytes): Moved after the riscv_update_pcgp_relocs.
-		Update the pcgp_relocs table whenever bytes are deleted.
-		(riscv_update_pcgp_relocs): Add function to update the section
-		offset of pcrel_hi and pcrel_lo, and also update the symbol value
-		of pcrel_hi.
-		(_bfd_riscv_relax_call): Need to update the pcgp_relocs table
-		when deleting codes.
-		(_bfd_riscv_relax_lui): Likewise.
-		(_bfd_riscv_relax_tls_le): Likewise.
-		(_bfd_riscv_relax_align): Once we've handled an R_RISCV_ALIGN,
-		we can't relax anything else, so set the sec->sec_flg0 to true.
-		Besides, we don't need to update the pcgp_relocs table at this
-		stage, so just pass NULL pointer as the pcgp_relocs table for
-		riscv_relax_delete_bytes.
-		(_bfd_riscv_relax_section): Use only one pass for all target
-		relaxations.
-		(_bfd_riscv_relax_delete): Likewise, we don't need to update
-		the pcgp_relocs table at this stage, and don't need to set
-		the `again' since restart_relax mechanism is abandoned.
-		(bfd_elfNN_riscv_restart_relax_sections): Removed.
-		(_bfd_riscv_relax_section): Updated.
-		* elfxx-riscv.h (bfd_elf32_riscv_restart_relax_sections): Removed.
-		(bfd_elf64_riscv_restart_relax_sections): Likewise.
-	ld/
-		* emultempl/riscvelf.em: Revert restart_relax changes and set
-		relax_pass to 3.
-		* testsuite/ld-riscv-elf/align-small-region.d: New testcase.
-		* testsuite/ld-riscv-elf/align-small-region.ld: Likewise.
-		* testsuite/ld-riscv-elf/align-small-region.s: Likewise.
-		* testsuite/ld-riscv-elf/restart-relax.d: Removed sine the
-		restart_relax mechanism is abandoned.
-		* testsuite/ld-riscv-elf/restart-relax.s: Likewise.
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
-
-2021-10-22  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix remote-sim.c build
-	Commit 183be222907a ("gdb, gdbserver: make target_waitstatus safe")
-	broke the remote-sim.c build.  In fact, it does some wrong changes,
-	result of a bad sed invocation.
-
-	Fix it by adjusting the code to the new target_waitstatus API.
-
-	Change-Id: I3236ff7ef7681fc29215f68be210ff4263760e91
-
-2021-10-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-21  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb, gdbserver: make target_waitstatus safe
-	I stumbled on a bug caused by the fact that a code path read
-	target_waitstatus::value::sig (expecting it to contain a gdb_signal
-	value) while target_waitstatus::kind was TARGET_WAITKIND_FORKED.  This
-	meant that the active union field was in fact
-	target_waitstatus::value::related_pid, and contained a ptid.  The read
-	signal value was therefore garbage, and that caused GDB to crash soon
-	after.  Or, since that GDB was built with ubsan, this nice error
-	message:
-
-	    /home/simark/src/binutils-gdb/gdb/linux-nat.c:1271:12: runtime error: load of value 2686365, which is not a valid value for type 'gdb_signal'
-
-	Despite being a large-ish change, I think it would be nice to make
-	target_waitstatus safe against that kind of bug.  As already done
-	elsewhere (e.g. dynamic_prop), validate that the type of value read from
-	the union matches what is supposed to be the active field.
-
-	 - Make the kind and value of target_waitstatus private.
-	 - Make the kind initialized to TARGET_WAITKIND_IGNORE on
-	   target_waitstatus construction.  This is what most users appear to do
-	   explicitly.
-	 - Add setters, one for each kind.  Each setter takes as a parameter the
-	   data associated to that kind, if any.  This makes it impossible to
-	   forget to attach the associated data.
-	 - Add getters, one for each associated data type.  Each getter
-	   validates that the data type fetched by the user matches the wait
-	   status kind.
-	 - Change "integer" to "exit_status", "related_pid" to "child_ptid",
-	   just because that's more precise terminology.
-	 - Fix all users.
-
-	That last point is semi-mechanical.  There are a lot of obvious changes,
-	but some less obvious ones.  For example, it's not possible to set the
-	kind at some point and the associated data later, as some users did.
-	But in any case, the intent of the code should not change in this patch.
-
-	This was tested on x86-64 Linux (unix, native-gdbserver and
-	native-extended-gdbserver boards).  It was built-tested on x86-64
-	FreeBSD, NetBSD, MinGW and macOS.  The rest of the changes to native
-	files was done as a best effort.  If I forgot any place to update in
-	these files, it should be easy to fix (unless the change happens to
-	reveal an actual bug).
-
-	Change-Id: I0ae967df1ff6e28de78abbe3ac9b4b2ff4ad03b7
-
-2021-10-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver: initialize the members of lwp_info in-class
-	Add a constructor to initialize the waitstatus members.  Initialize the
-	others in the class directly.
-
-	Change-Id: I10f885eb33adfae86e3c97b1e135335b540d7442
-
-2021-10-21  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbserver: make thread_info non-POD
-	Add a constructor and a destructor.  The constructor takes care of the
-	initialization that happened in add_thread, while the destructor takes
-	care of the freeing that happened in free_one_thread.  This is needed to
-	make target_waitstatus non-POD, as thread_info contains a member of that
-	type.
-
-	Change-Id: I1db321b4de9dd233ede0d5c101950f1d6f1d13b7
-
-2021-10-21  Andrew Pinski  <apinski@marvell.com>
-
-	Fix ARMv8.4 for hw watchpoint and breakpoint
-	Just like my previoius patch for ARMv8.1 and v8.2 (49ecef2a7da2ee9df4),
-	this adds ARMv8.4 debug arch as being compatible for hw watchpoint
-	and breakpoints.
-
-	Refactor code slightly in nat/aarch64-linux-hw-point.c (aarch64_linux_get_debug_reg_capacity)
-	Since the two locations which check the debug arch are the same code currently, it is
-	a good idea to factor it out to a new function and just use that function from
-	aarch64_linux_get_debug_reg_capacity. This is also the first step to support
-	ARMv8.4 debug arch.
-
-2021-10-21  Carl Love  <cel@us.ibm.com>
-
-	Fixes for gdb.mi/mi-break.exp
-	Update the expected pattern for two of the tests.
-
-	Matching pattern \" doesn't work.  Use .*  to match the \* pattern.
-
-2021-10-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tui] Fix breakpoint display functionality
-	In commit 81e6b8eb208 "Make tui-winsource not use breakpoint_chain", a loop
-	body was transformed into a lambda function body:
-	...
-	-      for (bp = breakpoint_chain;
-	-           bp != NULL;
-	-           bp = bp->next)
-	+      iterate_over_breakpoints ([&] (breakpoint *bp) -> bool
-	...
-	and consequently:
-	- a continue was replaced by a return, and
-	- a final return was added.
-
-	Then in commit 240edef62f0 "gdb: remove iterate_over_breakpoints function", we
-	transformed back to a loop body:
-	...
-	-      iterate_over_breakpoints ([&] (breakpoint *bp) -> bool
-	+      for (breakpoint *bp : all_breakpoints ())
-	...
-	but without reverting the changes that introduced the two returns.
-
-	Consequently, breakpoints no longer show up in the tui source window.
-
-	Fix this by reverting the changes that introduced the two returns.
-
-	Build on x86_64-linux, tested with all .exp test-cases that contain
-	tuiterm_env.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28483
-
-2021-10-21  Carl Love  <cel@us.ibm.com>
-
-	Fix test step-and-next-inline.cc
-	The test expect the runto_main to stop at the first line of the function.
-	Depending on the optimization level, gdb may stop in the prolog or after
-	the prolog at the first line.  To ensure the test stops at the first line
-	of main, have it explicitly stop at a break point on the first line of the
-	function.
-
-	On PowerPC, the test passes when compiled with no optimization but fails
-	with all levels of optimization due to gdb stopping in the prolog.
-
-2021-10-21  Tom Tromey  <tromey@adacore.com>
-
-	Fix latent Ada bug when accessing field offsets
-	The "add accessors for field (and call site) location" patch caused a
-	gdb crash when running the internal AdaCore testsuite.  This turned
-	out to be a latent bug in ada-lang.c.
-
-	The immediate cause of the bug is that find_struct_field
-	unconditionally uses TYPE_FIELD_BITPOS.  This causes an assert for a
-	dynamic type.
-
-	This patch fixes the problem by doing two things.  First, it changes
-	find_struct_field to use a dummy value for the field offset in the
-	situation where the offset is not actually needed by the caller.  This
-	works because the offset isn't used in any other way -- only as a
-	result.
-
-	Second, this patch assures that calls to find_struct_field use a
-	resolved type when the offset is needed.  For
-	value_tag_from_contents_and_address, this is done by resolving the
-	type explicitly.  In ada_value_struct_elt, this is done by passing
-	nullptr for the out parameters when they are not needed (the second
-	call in this function already uses a resolved type).
-
-	Note that, while we believe the parent field probably can't occur at a
-	variable offset, the patch still updates this code path, just in case.
-
-	I've updated an existing test case to reproduce the crash.
-	I'm checking this in.
-
-2021-10-21  Alan Modra  <amodra@gmail.com>
-
-	-Waddress warning in ldelf.c
-	ldelf.c: In function 'ldelf_after_open':
-	ldelf.c:1049:43: warning: the comparison will always evaluate as 'true' for the address of 'elf_header' will never be NULL [-Waddress]
-	 1049 |           && elf_tdata (abfd)->elf_header != NULL
-	      |                                           ^~
-	In file included from ldelf.c:37:
-	../bfd/elf-bfd.h:1957:21: note: 'elf_header' declared here
-	 1957 |   Elf_Internal_Ehdr elf_header[1];      /* Actual data, but ref like ptr */
-
-		* ldelf.c (ldelf_after_open): Remove useless elf_header test.
-
-2021-10-21  Alan Modra  <amodra@gmail.com>
-
-	Avoid -Waddress warnings in readelf
-	Mainline gcc:
-	readelf.c: In function 'find_section':
-	readelf.c:349:8: error: the comparison will always evaluate as 'true' for the pointer operand in 'filedata->section_headers + (sizetype)((long unsigned int)i * 80)' must not be NULL [-Werror=address]
-	  349 |   ((X) != NULL                                                          \
-	      |        ^~
-	readelf.c:761:9: note: in expansion of macro 'SECTION_NAME_VALID'
-	  761 |     if (SECTION_NAME_VALID (filedata->section_headers + i)
-	      |         ^~~~~~~~~~~~~~~~~~
-
-	This will likely be fixed in gcc, but inline functions are nicer than
-	macros.
-
-		* readelf.c (SECTION_NAME, SECTION_NAME_VALID),
-		(SECTION_NAME_PRINT, VALID_SYMBOL_NAME, VALID_DYNAMIC_NAME),
-		(GET_DYNAMIC_NAME): Delete.  Replace with..
-		(section_name, section_name_valid, section_name_print),
-		(valid_symbol_name, valid_dynamic_name, get_dynamic_name): ..these
-		new inline functions.  Update use throughout file.
-
-2021-10-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-20  Alan Modra  <amodra@gmail.com>
-
-	PR28417, std::string no longer allows accepting nullptr_t
-		PR 28417
-		* incremental.cc (Sized_relobj_incr::do_section_name): Avoid
-		std:string undefined behaviour.
-		* options.h (Search_directory::Search_directory): Likewise.
-
-2021-10-20  Alan Modra  <amodra@gmail.com>
-
-	Re: PR27625, powerpc64 gold __tls_get_addr calls
-	My previous PR27625 patch had a problem or two.  For one, the error
-	"__tls_get_addr call lacks marker reloc" on processing some calls
-	before hitting a call without markers typically isn't seen.  Instead a
-	gold assertion fails.  Either way it would be a hard error, which
-	triggers on a file contained in libphobos.a when running the gcc
-	testsuite.  A warning isn't even appropriate since the call involved
-	is one built by hand without any of the arg setup relocations that
-	might result in linker optimisation.
-
-	So this patch reverts most of commit 0af4fcc25dd5, instead entirely
-	ignoring the problem of mis-optimising old-style __tls_get_addr calls
-	without marker relocs.  We can't handle them gracefully without
-	another pass over relocations before decisions are made about GOT
-	entries in Scan::global or Scan::local.  That seems too costly, just
-	to link object files from 2009.  What's more, there doesn't seem to be
-	any way to allow the libphobos explicit __tls_get_addr call, but not
-	old TLS sequences without marker relocs.  Examining instructions
-	before the __tls_get_addr call is out of the question: program flow
-	might reach the call via a branch.  Putting an R_PPC64_TLSGD marker
-	with zero sym on the call might be a solution, but current linkers
-	will then merrily optimise away the call!
-
-		PR gold/27625
-		* powerpc.cc (Powerpc_relobj): Delete no_tls_marker_, tls_marker_,
-		and tls_opt_error_ variables and accessors.  Remove all uses.
-
-2021-10-20  Tom Tromey  <tom@tromey.com>
-
-	Use std::string in print_one_catch_syscall
-	This changes print_one_catch_syscall to use std::string, removing a
-	bit of manual memory management.
-
-	Use unique_xmalloc_ptr in breakpoint
-	This changes struct breakpoint to use unique_xmalloc_ptr in a couple
-	of spots, removing a bit of manual memory management.
-
-	Use unique_xmalloc_ptr in bp_location
-	This changes struct bp_location to use a unique_xmalloc_ptr, removing
-	a bit of manual memory management.
-
-	Use unique_xmalloc_ptr in watchpoint
-	This changes struct watchpoint to use unique_xmalloc_ptr in a couple
-	of places, removing a bit of manual memory management.
-
-	Use unique_xmalloc_ptr in exec_catchpoint
-	This changes struct exec_catchpoint to use a unique_xmalloc_ptr,
-	removing a bit of manual memory management.
-
-	Use unique_xmalloc_ptr in solib_catchpoint
-	This changes struct solib_catchpoint to use a unique_xmalloc_ptr,
-	removing a bit of manual memory management.
-
-2021-10-20  Christian Biesinger  <cbiesinger@google.com>
-
-	Make c-exp.y work with Bison 3.8+
-	When using Bison 3.8, we get this error:
-
-	    ../../gdb/c-exp.y:3455:1: error: 'void c_print_token(FILE*, int, YYSTYPE)' defined but not used [-Werror=unused-function]
-
-	That's because bison 3.8 removed YYPRINT support:
-	https://savannah.gnu.org/forum/forum.php?forum_id=10047
-
-	Accordingly, this patch only defines that function for Bison < 3.8.
-
-	Change-Id: I3cbf2f317630bb72810b00f2d9b2c4b99fa812ad
-
-2021-10-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-19  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Reimplement gdb.gdb/python-interrupts.exp as unittest
-	The test-case gdb.gdb/python-interrupts.exp:
-	- runs to captured_command_loop
-	- sets a breakpoint at set_active_ext_lang
-	- calls a python command
-	- verifies the command triggers the breakpoint
-	- sends a signal and verifies the result
-
-	The test-case is fragile, because (f.i. with -flto) it cannot be guaranteed
-	that captured_command_loop and set_active_ext_lang are available for setting
-	breakpoints.
-
-	Reimplement the test-case as unittest, using:
-	- execute_command_to_string to capture the output
-	- try/catch to catch the "Error while executing Python code" exception
-	- a new hook selftests::hook_set_active_ext_lang to raise the signal
-
-	Tested on x86_64-linux.
-
-2021-10-19  Tom Tromey  <tromey@adacore.com>
-
-	Check index in type::field
-	This changes gdb to check the index that is passed to type::field.
-	This caught one bug in the Ada code when running the test suite
-	(actually I found the bug first, then realized that the check would
-	have helped), so this patch fixes that as well.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-10-19  Tom Tromey  <tromey@adacore.com>
-
-	Fix Rust lex selftest when using libiconv
-	The Rust lex selftest fails on our Windows build.  I tracked this down
-	to a use of UTF-32 as a parameter to convert_between_encodings.  Here,
-	iconv_open succeeds, but the actual conversion of a tab character
-	fails with EILSEQ.  I suspect that "UTF-32" is being interpreted as
-	big-endian, as changing the call to use "UTF-32LE" makes it work.
-	This patch implements this fix.
-
-2021-10-19  Tom Tromey  <tromey@adacore.com>
-
-	Fix format_pieces selftest on Windows
-	The format_pieces selftest currently fails on Windows hosts.
-
-	The selftest doesn't handle the "%ll" -> "%I64" rewrite that the
-	formatter may perform, but also gdbsupport was missing a configure
-	check for PRINTF_HAS_LONG_LONG.  This patch fixes both issues.
-
-2021-10-19  Tom Tromey  <tromey@adacore.com>
-
-	Fix bug in dynamic type resolution
-	A customer-reported problem led us to a bug in dynamic type
-	resolution.  resolve_dynamic_struct will recursively call
-	resolve_dynamic_type_internal, passing it the sub-object for the
-	particular field being resolved.  While it offsets the address here,
-	it does not also offset the "valaddr" -- the array of bytes describing
-	the memory.
-
-	This patch fixes the bug, by offsetting both.  A test case is included
-	that can be used to reproduce the bug.
-
-2021-10-19  Tom Tromey  <tromey@adacore.com>
-
-	Always use std::function for self-tests
-	Now that there is a register_test variant that accepts std::function,
-	it seems to me that the 'selftest' struct and accompanying code is
-	obsolete -- simply always using std::function is simpler.  This patch
-	implements this idea.
-
-2021-10-19  Daniel Black  <daniel@mariadb.org>
-
-	Fix PR gdb/17917 Lookup build-id in remote binaries
-	GDB doesn't support loading debug files using build-id from remote
-	target filesystems.
-
-	This is the case when gdbserver attached to a process and a gdb target
-	remote occurs over tcp.
-
-	With this change we make build-id lookups possible:
-
-	    (gdb) show debug-file-directory
-	    The directory where separate debug symbols are searched for is "/usr/local/lib/debug".
-	    (gdb) set debug-file-directory /usr/lib/debug
-	    (gdb) show sysroot
-	    The current system root is "target:".
-	    (gdb) target extended-remote :46615
-	    Remote debugging using :46615
-	    warning: Can not parse XML target description; XML support was disabled at compile time
-	    Reading /usr/sbin/mariadbd from remote target...
-	    warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
-	    Reading /usr/sbin/mariadbd from remote target...
-	    Reading symbols from target:/usr/sbin/mariadbd...
-	    Reading /usr/lib/debug/.build-id/6e/0a874dca5a7ff831396ddc0785d939a192efe3.debug from remote target...
-	    Reading /usr/lib/debug/.build-id/6e/0a874dca5a7ff831396ddc0785d939a192efe3.debug from remote target...
-	    Reading symbols from target:/usr/lib/debug/.build-id/6e/0a874dca5a7ff831396ddc0785d939a192efe3.debug...
-	    Reading /lib/x86_64-linux-gnu/libpcre2-8.so.0 from remote target...
-	    ...
-
-	Before this change, the lookups would have been (GNU gdb (GDB) Fedora 10.2-3.fc34):
-
-	    (gdb) target extended-remote :46615
-	    Remote debugging using :46615
-	    Reading /usr/sbin/mariadbd from remote target...
-	    warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
-	    Reading /usr/sbin/mariadbd from remote target...
-	    Reading symbols from target:/usr/sbin/mariadbd...
-	    Reading /usr/sbin/0a874dca5a7ff831396ddc0785d939a192efe3.debug from remote target...
-	    Reading /usr/sbin/.debug/0a874dca5a7ff831396ddc0785d939a192efe3.debug from remote target...
-	    Reading /usr/lib/debug//usr/sbin/0a874dca5a7ff831396ddc0785d939a192efe3.debug from remote target...
-	    Reading /usr/lib/debug/usr/sbin//0a874dca5a7ff831396ddc0785d939a192efe3.debug from remote target...
-	    Reading target:/usr/lib/debug/usr/sbin//0a874dca5a7ff831396ddc0785d939a192efe3.debug from remote target...
-	    Missing separate debuginfo for target:/usr/sbin/mariadbd
-	    Try: dnf --enablerepo='*debug*' install /usr/lib/debug/.build-id/6e/0a874dca5a7ff831396ddc0785d939a192efe3.debug
-	    (No debugging symbols found in target:/usr/sbin/mariadbd)
-
-	Observe it didn't look for
-	/usr/lib/debug/.build-id/6e/0a874dca5a7ff831396ddc0785d939a192efe3.debug
-	on the remote target (where it is) and expected them to be installed
-	locally.
-
-	As a minor optimization, this also changes the build-id lookup such that
-	if sysroot is empty, no second lookup of the same location is performed.
-
-	Change-Id: I5181696d271c325a25a0805a8defb8ab7f9b3f55
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17917
-
-2021-10-19  Nick Clifton  <nickc@redhat.com>
-
-	Fix a potential illegal memory access when testing for a special LTO symbol name.
-	bfd	* linker.c (_bfd_generic_link_add_one_symbol): Test for a NULL
-		name before checking to see if the symbol is __gnu_lto_slim.
-		* archive.c (_bfd_compute_and_write_armap): Likewise.
-	binutils
-		* nm.c (filter_symbols): Test for a NULL name before checking to
-		see if the symbol is __gnu_lto_slim.
-		* objcopy.c (filter_symbols): Likewise.
-
-2021-10-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-18  Weimin Pan  <weimin.pan@oracle.com>
-
-	CTF: incorrect underlying type setting for enumeration types
-	A bug was filed against the incorrect underlying type setting for
-	an enumeration type, which was caused by a copy and paste error.
-	This patch fixes the problem by setting it by calling objfile_int_type,
-	which was originally dwarf2_per_objfile::int_type, with ctf_type_size bits.
-	Also add error checking on ctf_func_type_info call.
-
-2021-10-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-17  Alan Modra  <amodra@gmail.com>
-
-	PR28459, readelf issues bogus warning
-	I'd missed the fact that the .debug_rnglists dump doesn't exactly
-	display the contents of the section.  Instead readelf rummages through
-	.debug_info looking for DW_AT_ranges entries, then displays the
-	entries in .debug_rnglists pointed at, sorted.  A simpler dump of the
-	actual section contents might be more useful and robust, but it was
-	likely done that way to detect overlap and holes.
-
-	Anyway, the headers in .debug_rnglists besides the first are ignored,
-	and limiting to the unit length of the first header fails if there is
-	more than one unit.
-
-		PR 28459
-		* dwarf.c (display_debug_ranges): Don't constrain data to length
-		in header.
-
-2021-10-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Adjust pr28158.rd for glibc 2.34
-	Adjust pr28158.rd for glibc 2.34:
-
-	$ readelf -W --dyn-syms tmpdir/pr28158
-
-	Symbol table '.dynsym' contains 4 entries:
-	   Num:    Value          Size Type    Bind   Vis      Ndx Name
-	     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
-	     1: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.34 (2)
-	     2: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
-	     3: 000000000040401c     4 OBJECT  GLOBAL DEFAULT   23 foo@VERS_2.0 (3)
-	$
-
-	vs older glibc:
-
-	$ readelf -W --dyn-syms tmpdir/pr28158
-
-	Symbol table '.dynsym' contains 4 entries:
-	   Num:    Value          Size Type    Bind   Vis      Ndx Name
-	     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
-	     1: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.2.5 (3)
-	     2: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
-	     3: 000000000040401c     4 OBJECT  GLOBAL DEFAULT   23 foo@VERS_2.0 (2)
-
-	$
-
-		* testsuite/ld-elf/pr28158.rd: Adjusted for glibc 2.34.
-
-2021-10-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-14  Carl Love  <cel@us.ibm.com>
-
-	Powerpc: Add support for openat and fstatat syscalls
-	[gdb] update ppc-linux-tdep.c
-
-	Add argument to ppc_canonicalize_syscall for the wordsize.
-	Add syscall entries for the openat and fstatat system calls.
-
-2021-10-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add .debug_loc support in dwarf assembler
-	Add .debug_loc support in the dwarf assembler, and use it in new test-case
-	gdb.dwarf2/loc-sec-offset.exp (which is based on
-	gdb.dwarf2/loclists-sec-offset.exp).
-
-	Tested on x86_64-linux.
-
-2021-10-14  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Re: PowerPC64: Don't pretend to support multi-toc
-	We can't get at section->address() until everything is laid out, so
-	trying to generalise the offset calculation rather than using a value
-	of 0x8000 (the old object->toc_base_offset()) was bound to fail.
-	got->g_o_t() is a little better than a hard-coded 0x8000.
-
-		* powerpc.cc (Target_powerpc::Scan::local, global): Don't use
-		toc_pointer() here.
-
-2021-10-14  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Two GOT sections for PowerPC64
-	Split .got into two piece, one with the header and entries for small
-	model got entries, the other with entries for medium/large model got
-	entries.  The idea is to better support mixed pcrel/non-pcrel code
-	where non-pcrel small-model .toc entries need to be within 32k of the
-	toc pointer.
-
-		* target.h (Target::tls_offset_for_local): Add got param.
-		(Target::tls_offset_for_global): Likewise.
-		(Target::do_tls_offset_for_local, do_tls_offset_for_global): Likewise.
-		* output.h (Output_data_got::Got_entry::write): Add got param.
-		* output.cc (Output_data_got::Got_entry::write): Likewise, pass to
-		tls_offset_for_local/global calls.
-		(Output_data_got::do_write): Adjust to suit.
-		* s390.cc (Target_s390::do_tls_offset_for_local): Likewise.
-		(Target_s390::do_tls_offset_for_global): Likewise.
-		* powerpc.cc (enum Got_type): Extend with small types, move from
-		class Target_powerpc.
-		(Target_powerpc::biggot_): New.
-		(Traget_powerpc::do_tls_offset_for_local, do_tls_offset_for_global,
-		got_size, got_section, got_base_offset): Handle biggot_.
-		(Target_powerpc::do_define_standard_symbols): Adjust.
-		(Target_powerpc::make_plt_section, do_finalize_sections): Likewise.
-		(Output_data_got_powerpc::Output_data_got_powerpc): Only make
-		64-bit header for small got section.
-		(Output_data_got_powerpc::g_o_t): Only return a result for small
-		got section.
-		(Output_data_got_powerpc::write): Only write small got section
-		header.
-		(Target_powerpc::Scan::local, global): Select small/big Got_type
-		and section to suit reloc.
-		(Target_powerpc::Relocate::relocate): Similarly.
-		(Sort_toc_sections): Rewrite.
-
-2021-10-14  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] PowerPC64: Don't pretend to support multi-toc
-	Code in powerpc.cc is pretending to support a per-object toc pointer
-	value, but powerpc gold has no real support for multi-toc.  This patch
-	removes the pretense, tidying quite a lot in preparation for a
-	followup patch.  If multi-toc is ever to be supported, don't revert
-	this patch but start by adding object parameter to toc_pointer() and
-	an object to Branch_stub_key.
-
-		* powerpc.cc (Powerpc_relobj::toc_base_offset): Delete.
-		(Target_powerpc::toc_pointer): New function.  Use throughout.
-		(Target_powerpc::got_base_offset): New function.  Use throughout..
-		(Output_data_got_powerpc::got_base_offset): ..in place of
-		this.  Delete.
-		(Output_data_got_powerpc::Output_data_got_powerpc): Init
-		header_index_ to -1u for 64-bit, and make header here.
-		(Output_data_got_powerpc::set_final_data_size, reserve_ent): Don't
-		make 64-bit header here.
-		(Output_data_got_powerpc::g_o_t): Return toc pointer offset in
-		section for 64-bit.  Use throughout.
-		(Stub_table): Remove toc_base_off_ from Branch_stub_key, and
-		object param on add_long_branch_entry and find_long_branch_entry.
-		Adjust all uses.
-
-2021-10-14  Alan Modra  <amodra@gmail.com>
-
-	Re: s12z/disassembler: call memory_error_func when appropriate
-	Adjust for commit ba7c18a48457.
-
-		* testsuite/gas/s12z/truncated.d: Update expected output.
-
-2021-10-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/exp] Improve <error reading variable> message
-	When printing a variable x in a subroutine foo:
-	...
-	subroutine foo (x)
-	  integer(4) :: x (*)
-	  x(3) = 1
-	end subroutine foo
-	...
-	where x is an array with unknown bounds, we get:
-	...
-	$ gdb -q -batch outputs/gdb.fortran/array-no-bounds/array-no-bounds \
-	  -ex "break foo" \
-	  -ex run \
-	  -ex "print x"
-	Breakpoint 1 at 0x4005cf: file array-no-bounds.f90, line 18.
-
-	Breakpoint 1, foo (x=...) at array-no-bounds.f90:18
-	18        x(3) = 1
-	$1 = <error reading variable>
-	...
-
-	Improve the error message by printing the details of the error, such that we
-	have instead:
-	...
-	$1 = <error reading variable: failed to get range bounds>
-	...
-
-	This is a change in gdb/valprint.c, and grepping through the sources reveals
-	that this is a common pattern.
-
-	Tested on x86_64-linux.
-
-2021-10-13  Carl Love  <cel@us.ibm.com>
-
-	PPC fix for stfiwx instruction (and additional stores with primary opcode of 31)
-	[gdb] Fix address being recorded in rs6000-tdep.c, ppc_process_record_op31.
-
-	The GDB record function was recording the variable addr that was passed in
-	rather than the calculated effective address (ea) by the
-	ppc_process_record_op31 function.
-
-2021-10-13  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: improve error reporting from the disassembler
-	If the libopcodes disassembler returns a negative value then this
-	indicates that the disassembly failed for some reason.  In disas.c, in
-	the function gdb_disassembler::print_insn we can see how this is
-	handled; when we get a negative value back, we call the memory_error
-	function, which throws an exception.
-
-	The problem here is that the address used in the memory_error call is
-	gdb_disassembler::m_err_memaddr, which is set in
-	gdb_disassembler::dis_asm_memory_error, which is called from within
-	the libopcodes disassembler through the
-	disassembler_info::memory_error_func callback.
-
-	However, for this to work correctly, every time the libopcodes
-	disassembler returns a negative value, the libopcodes disassembler
-	must have first called the memory_error_func callback.
-
-	My first plan was to make m_err_memaddr a gdb::optional, and assert
-	that it always had a value prior to calling memory_error, however, a
-	quick look in opcodes/*-dis.c shows that there _are_ cases where a
-	negative value is returned without first calling the memory_error_func
-	callback, for example in arc-dis.c and cris-dis.c.
-
-	Now, I think that a good argument can be made that these disassemblers
-	must therefore be broken, except for the case where we can't read
-	memory, we should always be able to disassemble the memory contents to
-	_something_, even if it's just '.word 0x....'.  However, I certainly
-	don't plan to go and fix all of the disassemblers.
-
-	What I do propose to do then, is make m_err_memaddr a gdb::optional,
-	but now, instead of always calling memory_error, I add a new path
-	which just calls error complaining about an unknown error.  This new
-	path is only used if m_err_memaddr doesn't have a value (indicating
-	that the memory_error_func callback was not called).
-
-	To test this I just augmented one of the disassemblers to always
-	return -1, before this patch I see this:
-
-	  Dump of assembler code for function main:
-	     0x000101aa <+0>:	Cannot access memory at address 0x0
-
-	And after this commit I now see:
-
-	  Dump of assembler code for function main:
-	     0x000101aa <+0>:	unknown disassembler error (error = -1)
-
-	This doesn't really help much, but that's because there's no way to
-	report non memory errors out of the disasembler, because, it was not
-	expected that the disassembler would ever report non memory errors.
-
-2021-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.fortran/call-no-debug.exp with native-gdbserver
-	When running test-case gdb.fortran/call-no-debug.exp with target board
-	native-gdbserver, I run into:
-	...
-	(gdb) PASS: gdb.fortran/call-no-debug.exp: print string_func_ (&'abcdefg', 3)
-	call (integer) string_func_ (&'abcdefg', 3)^M
-	$2 = 0^M
-	(gdb) FAIL: gdb.fortran/call-no-debug.exp: call (integer) string_func_ (&'abcdefg', 3)
-	...
-
-	The problem is that gdb_test is used to match inferior output.
-
-	Fix this by using gdb_test_stdio.
-
-	Tested on x86_64-linux.
-
-2021-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Require use_gdb_stub == 0 where appropriate
-	When running with target board native-gdbserver, we run into a number of FAILs
-	due to use of the start command (and similar), which is not supported when
-	use_gdb_stub == 1.
-
-	Fix this by:
-	- requiring use_gdb_stub == 0 for the entire test-case, or
-	- guarding some tests in the test-case with use_gdb_stub == 0.
-
-	Tested on x86_64-linux.
-
-2021-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix test name in gdb.python/python.exp
-	When running test-case gdb.python/python.exp, we have:
-	...
-	PASS: gdb.python/python.exp: starti via gdb.execute, not from tty
-	PASS: gdb.python/python.exp: starti via interactive input
-	...
-
-	The two tests are instances of the same test, with different values for
-	starti command argument from_tty, so it's strange that the test names are so
-	different.
-
-	This is due to using a gdb_test nested in a gdb_test_multiple, with the inner
-	one using a different test name than the outer one.  [ That could still make
-	sense if both produced passes, but that's not the case here. ]
-
-	Fix this by using $gdb_test_name, such that we have:
-	...
-	PASS: gdb.python/python.exp: starti via gdb.execute, not from tty
-	PASS: gdb.python/python.exp: starti via gdb.execute, from tty
-	...
-
-	Also make this more readable by using variables.
-
-	Tested on x86_64-linux.
-
-2021-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/batch-exit-status.exp with native-gdbserver
-	When running test-case gdb.base/batch-exit-status.exp with target board
-	native-gdbserver, I run into (added missing double quotes for clarity):
-	...
-	builtin_spawn $build/gdb/testsuite/../../gdb/gdb -nw -nx \
-	  -data-directory $build/gdb/testsuite/../data-directory \
-	  -iex "set height 0" -iex "set width 0" \
-	  -ex "set auto-connect-native-target off" \
-	  -iex "set sysroot" -batch ""^M
-	: No such file or directory.^M
-	PASS: gdb.base/batch-exit-status.exp: 1x: \
-	  No such file or directory: [lindex $result 2] == 0
-	FAIL: gdb.base/batch-exit-status.exp: 1x: \
-	  No such file or directory: [lindex $result 3] == $expect_status
-	...
-
-	As in commit a02a90c114c "[gdb/testsuite] Set sysroot earlier in
-	local-board.exp", the problem is the use of -ex for
-	"set auto-connect-native-target off", which makes that the last command to
-	be executed, and consequently determines the return status.
-
-	Fix this by using -iex instead.
-
-	Tested on x86_64-linux.
-
-2021-10-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove quit in gdb.arch/i386-mpx.exp
-	When running test-case gdb.arch/i386-mpx.exp with target board
-	native-gdbserver, I run into:
-	...
-	(gdb) PASS: gdb.arch/i386-mpx.exp: verify size for bnd0
-	Remote debugging from host ::1, port 42328^M
-	quit^M
-	A debugging session is active.^M
-	^M
-	        Inferior 1 [process 19679] will be killed.^M
-	^M
-	Quit anyway? (y or n) monitor exit^M
-	Please answer y or n.^M
-	A debugging session is active.^M
-	^M
-	        Inferior 1 [process 19679] will be killed.^M
-	^M
-	Quit anyway? (y or n) WARNING: Timed out waiting for EOF in server after monitor exit
-	...
-
-	The problem is that the test-case sends a quit at the end (without verifying
-	the result of this in any way):
-	...
-	send_gdb "quit\n"
-	...
-
-	Fix this by removing the quit.
-
-	Tested on x86_64-linux.
-
-2021-10-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
-
-	[ARM] Add support for M-profile MVE extension
-	This patch adds support for the M-profile MVE extension, which includes the
-	following:
-
-	- New M-profile XML feature m-profile-mve
-	- MVE vector predication status and control register (VPR)
-	- p0 pseudo register (contained in the VPR)
-	- q0 ~ q7 pseudo vector registers
-	- New feature bits
-	- Documentation update
-
-	Pseudo register p0 is the least significant bits of vpr and can be accessed
-	as $p0 or displayed through $vpr.  For more information about the register
-	layout, please refer to [1].
-
-	The q0 ~ q7 registers map back to the d0 ~ d15 registers, two d registers
-	per q register.
-
-	The register dump looks like this:
-
-	(gdb) info reg all
-	r0             0x0                 0
-	r1             0x0                 0
-	r2             0x0                 0
-	r3             0x0                 0
-	r4             0x0                 0
-	r5             0x0                 0
-	r6             0x0                 0
-	r7             0x0                 0
-	r8             0x0                 0
-	r9             0x0                 0
-	r10            0x0                 0
-	r11            0x0                 0
-	r12            0x0                 0
-	sp             0x0                 0x0 <__Vectors>
-	lr             0xffffffff          -1
-	pc             0xd0c               0xd0c <Reset_Handler>
-	xpsr           0x1000000           16777216
-	d0             0                   (raw 0x0000000000000000)
-	d1             0                   (raw 0x0000000000000000)
-	d2             0                   (raw 0x0000000000000000)
-	d3             0                   (raw 0x0000000000000000)
-	d4             0                   (raw 0x0000000000000000)
-	d5             0                   (raw 0x0000000000000000)
-	d6             0                   (raw 0x0000000000000000)
-	d7             0                   (raw 0x0000000000000000)
-	d8             0                   (raw 0x0000000000000000)
-	d9             0                   (raw 0x0000000000000000)
-	d10            0                   (raw 0x0000000000000000)
-	d11            0                   (raw 0x0000000000000000)
-	d12            0                   (raw 0x0000000000000000)
-	d13            0                   (raw 0x0000000000000000)
-	d14            0                   (raw 0x0000000000000000)
-	d15            0                   (raw 0x0000000000000000)
-	fpscr          0x0                 0
-	vpr            0x0                 [ P0=0 MASK01=0 MASK23=0 ]
-	s0             0                   (raw 0x00000000)
-	s1             0                   (raw 0x00000000)
-	s2             0                   (raw 0x00000000)
-	s3             0                   (raw 0x00000000)
-	s4             0                   (raw 0x00000000)
-	s5             0                   (raw 0x00000000)
-	s6             0                   (raw 0x00000000)
-	s7             0                   (raw 0x00000000)
-	s8             0                   (raw 0x00000000)
-	s9             0                   (raw 0x00000000)
-	s10            0                   (raw 0x00000000)
-	s11            0                   (raw 0x00000000)
-	s12            0                   (raw 0x00000000)
-	s13            0                   (raw 0x00000000)
-	s14            0                   (raw 0x00000000)
-	s15            0                   (raw 0x00000000)
-	s16            0                   (raw 0x00000000)
-	s17            0                   (raw 0x00000000)
-	s18            0                   (raw 0x00000000)
-	s19            0                   (raw 0x00000000)
-	s20            0                   (raw 0x00000000)
-	s21            0                   (raw 0x00000000)
-	s22            0                   (raw 0x00000000)
-	s23            0                   (raw 0x00000000)
-	s24            0                   (raw 0x00000000)
-	s25            0                   (raw 0x00000000)
-	s26            0                   (raw 0x00000000)
-	s27            0                   (raw 0x00000000)
-	s28            0                   (raw 0x00000000)
-	s29            0                   (raw 0x00000000)
-	s30            0                   (raw 0x00000000)
-	s31            0                   (raw 0x00000000)
-	q0             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	q1             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	q2             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	q3             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	q4             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	q5             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	q6             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	q7             {u8 = {0x0 <repeats 16 times>}, u16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u32 = {0x0, 0x0, 0x0, 0x0}, u64 = {0x0, 0x0}, f32 = {0x0, 0x0, 0x0, 0x0}, f64 = {0x0, 0x0}}
-	p0             0x0                 0
-
-	Built and regtested with a simulator.
-
-	[1] https://developer.arm.com/documentation/ddi0553/bn
-
-	Co-Authored-By: Luis Machado <luis.machado@linaro.org>
-
-2021-10-11  Luis Machado  <luis.machado@linaro.org>
-
-	[ARM] Refactor pseudo register numbering
-	The pseudo register handling for ARM uses some hardcoded constants to
-	determine types and names.  In preparation to the upcoming MVE support
-	patch (that will add another pseudo register), this patch refactors and
-	reorganizes things in order to simplify handling of future pseudo registers.
-
-	We keep track of the first pseudo register number in a group and the number of
-	pseudo registers in that group.
-
-	Right now we only have the S and Q pseudo registers.
-
-2021-10-11  Luis Machado  <luis.machado@linaro.org>
-
-	[ARM] Small refactoring of arm gdbarch initialization
-	This is in preparation to MVE support, where we will define another
-	pseudo register. We need to define the pseudo register numbers *after*
-	accounting for all the registers in the XML description, so move
-	the call to tdesc_use_registers up.
-
-	If we don't do it, GDB's register count won't consider registers contained
-	in the XML but ignored by GDB, throwing the register numbering off.
-
-2021-10-11  Luis Machado  <luis.machado@linaro.org>
-
-	[ARM] Refactor some constants
-	In preparation for the MVE extension patch, this one refactors some of
-	the register-related constants we have for ARM.
-
-	Basically I'm separating counting constants from numbering constants.
-
-	For example, ARM_A1_REGNUM is a numbering constant, whereas ARM_NUM_ARG_REGS
-	is a counting constant.
-
-2021-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAIL in gdb.mi/mi-var-child-f.exp
-	When running test-case gdb.mi/mi-var-child-f.exp on openSUSE Tumbleweed
-	(with glibc 2.34) I run into:
-	...
-	(gdb) ^M
-	PASS: gdb.mi/mi-var-child-f.exp: mi runto prog_array
-	Expecting: ^(-var-create array \* array[^M
-	]+)?(\^done,name="array",numchild="[0-9]+",value=".*",type=.*,has_more="0"[^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	-var-create array * array^M
-	&"Attempt to use a type name as an expression.\n"^M
-	^error,msg="-var-create: unable to create variable object"^M
-	(gdb) ^M
-	FAIL: gdb.mi/mi-var-child-f.exp: create local variable array (unexpected output)
-	...
-
-	The problem is that the name array is used both:
-	- as the name for a local variable
-	- as the name of a type in glibc, in file malloc/dynarray-skeleton.c, as included
-	  by nss/nss_files/files-hosts.c.
-
-	Fix this by ignoring the shared lib symbols.
-
-	Likewise in a couple of other fortran tests.
-
-	Tested on x86_64-linux.
-
-2021-10-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	z80/disassembler: call memory_error_func when appropriate
-	If a call to the read_memory_func fails then we should call the
-	memory_error_func to notify the user of the disassembler of the
-	address that was a problem.
-
-	Without this GDB will report all memory errors as being at address
-	0x0.
-
-	opcodes/ChangeLog:
-
-		* z80-dis.c (fetch_data): Call memory_error_func if the
-		read_memory_func call fails.
-
-2021-10-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	s12z/disassembler: call memory_error_func when appropriate
-	If a call to the read_memory_func fails then we should call the
-	memory_error_func to notify the user of the disassembler of the
-	address that was a problem.
-
-	Without this GDB will report all memory errors as being at address
-	0x0.
-
-	opcodes/ChangeLog:
-
-		* s12z-disc.c (abstract_read_memory): Call memory_error_func if
-		the read_memory_func call fails.
-
-2021-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix double debug info in gdb.dwarf2/dw2-ref-missing-frame.exp
-	A mistake slipped in in commit a5ea23036d8 "[gdb/testsuite] Use function_range
-	in gdb.dwarf2/dw2-ref-missing-frame.exp".
-
-	Before the commit the main file was compiled with debug info, and the two
-	others not:
-	...
-	if {[prepare_for_testing_full "failed to prepare" \
-	        [list $testfile {} $srcfile {} $srcfuncfile {} \
-	             $srcmainfile debug]]} {
-	...
-
-	After the commit, all were compiled with debug info, and consequently, there
-	are two versions of debug info for $srcfuncfile.  This shows up as a FAIL when
-	running the test-case with target boards readnow and cc-with-debug-names.
-
-	Fix this by using prepare_for_testing_full, as before.
-
-	Tested on x86_64-linux.
-
-	Fixes: a5ea23036d8 ("[gdb/testsuite] Use function_range in
-	       gdb.dwarf2/dw2-ref-missing-frame.exp")
-
-2021-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use require for ensure_gdb_index
-	Replace:
-	...
-	if { [ensure_gdb_index $binfile] == -1 } {
-	    return -1
-	}
-	...
-	with:
-	...
-	require {ensure_gdb_index $binfile} != -1
-	...
-	and consequently, add a missing UNTESTED message.
-
-	Tested on x86_64-linux, both with native and target board readnow.
-
-2021-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle readnow in ensure_gdb_index
-	When running test-case gdb.base/with-mf.exp with target board readnow, I run
-	into:
-	...
-	FAIL: gdb.base/with-mf.exp: check if index present
-	...
-	This is since commit 6010fb0c49e "[gdb/testsuite] Fix full buffer in
-	gdb.rust/dwindex.exp".
-
-	Before that commit, the proc ensure_gdb_index would treat the line:
-	...
-	.gdb_index: faked for "readnow"^M
-	...
-	as proof that an index is already present (which is incorrect).
-
-	Now, instead it generates aforementioned FAIL and continues to generate an
-	index.
-
-	Fix this by explicitly handling the readnow case in proc ensure_gdb_index,
-	such that we bail out instead.
-
-	Tested on x86_64-linux.
-
-2021-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/gdb-add-index-symlink.exp
-	The test-case gdb.dwarf2/gdb-add-index-symlink.exp interpretes a failure to
-	add an index as a failure to add an index for a symlink:
-	...
-	if { [ensure_gdb_index $symlink] == -1 } {
-	    fail "Unable to call gdb-add-index with a symlink to a symfile"
-	    return -1
-	}
-	...
-
-	However, it's possible that the gdb-add-index also fails with a regular
-	file.  Add a check for that situation.
-
-	Tested on x86_64-linux.
-
-2021-10-11  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add proc require in lib/gdb.exp
-	Add a new proc require in lib/gdb.exp, and use it to shorten:
-	...
-	if { [gdb_skip_xml_test] } {
-	    # Valgrind gdbserver requires gdb with xml support.
-	    untested "missing xml support"
-	    return 0
-	}
-	...
-	into:
-	...
-	require gdb_skip_xml_test 0
-	...
-
-	Tested on x86_64-linux, both with and without a trigger patch that forces
-	gdb_skip_xml_test to return 1.
-
-2021-10-11  Michael Forney  <mforney@mforney.org>
-
-	bfd: Remove use of void pointer arithmetic
-	This is not valid in ISO C. Instead, use a pointer to bfd_byte.
-
-		* peicode.h (pe_bfd_object_p): Remove use of void pointer
-		arithmetic.
-
-2021-10-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Make execute_command_to_string return string on throw
-	The pattern for using execute_command_to_string is:
-	...
-	  std::string output;
-	  output = execute_fn_to_string (fn, term_out);
-	...
-
-	This results in a problem when using it in a try/catch:
-	...
-	  try
-	    {
-	      output = execute_fn_to_string (fn, term_out)
-	    }
-	  catch (const gdb_exception &e)
-	    {
-	      /* Use output.  */
-	    }
-	...
-
-	If an expection was thrown during execute_fn_to_string, then the output
-	remains unassigned, while it could be worthwhile to known what output was
-	generated by gdb before the expection was thrown.
-
-	Fix this by returning the string using a parameter instead:
-	...
-	  execute_fn_to_string (output, fn, term_out)
-	...
-
-	Also add a variant without string parameter, to support places where the
-	function is used while ignoring the result:
-	...
-	  execute_fn_to_string (fn, term_out)
-	...
-
-	Tested on x86_64-linux.
-
-2021-10-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add check-readmore
-	Consider the gdb output:
-	...
-	27        return SYSCALL_CANCEL (nanosleep, requested_time, remaining);^M
-	(gdb) ^M
-	Thread 2 "run-attach-whil" stopped.^M
-	...
-
-	When trying to match the gdb prompt using gdb_test which uses '$gdb_prompt $',
-	it may pass or fail.
-
-	This sort of thing needs to be fixed (see commit b0e2f96b56b), but there's
-	currently no way to reliably find this type of FAILs.
-
-	We have check-read1, but that one actually make the test pass reliably.
-
-	We need something like the opposite of check-read1: something that makes
-	expect read a bit slower, or more exhaustively.
-
-	Add a new test target check-readmore that implements this.
-
-	There are two methods of implementing this in read1.c:
-	- the first method waits a bit before doing a read
-	- the second method does a read and then decides whether to
-	  return or to wait a bit and do another read, and so on.
-
-	The second method is potentially faster, has less risc of timeout and could
-	potentially detect more problems.  The first method has a simpler
-	implementation.
-
-	The second method is enabled by default.  The default waiting period is 10
-	miliseconds.
-
-	The first method can be enabled using:
-	...
-	$ export READMORE_METHOD=1
-	...
-	and the waiting period can be specified in miliseconds using:
-	...
-	$ export READMORE_SLEEP=9
-	...
-
-	Also a log file can be specified using:
-	...
-	$ export READMORE_LOG=$(pwd -P)/LOG
-	...
-
-	Tested on x86_64-linux.
-
-	Testing with check-readmore showed these regressions:
-	...
-	FAIL: gdb.base/bp-cmds-continue-ctrl-c.exp: run: stop with control-c (continue)
-	FAIL: gdb.base/bp-cmds-continue-ctrl-c.exp: attach: stop with control-c (continue)
-	...
-
-	I have not been able to find a problem in the test-case, and I think it's the
-	nature of both the test-case and readmore that makes it run longer.  Make
-	these pass by increasing the alarm timeout from 60 to 120 seconds.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27957
-
-2021-10-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix fortran module tests with stressed cpu
-	When running these test-cases:
-	- gdb.fortran/info-modules.exp
-	- gdb.fortran/module.exp
-	- gdb.mi/mi-fortran-modules.exp
-	in conjunction with:
-	...
-	$ stress -c $(($(cat /proc/cpuinfo | grep -c "^processor") + 1))
-	...
-	I run into timeouts.
-
-	Fix this by using:
-	- "set auto-solib-add off" to avoid symbols of shared libs
-	  (which doesn't work for libc, now that libpthread_name_p has been
-	  updated to  match libc)
-	- "nosharedlibrary" to avoid symbols of libc
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28133
-
-2021-10-09  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
-
-	PR28415, invalid read in xtensa_read_table_entries
-		PR 28415
-		PR 28416
-		* elf32-xtensa.c (xtensa_read_table_entries): Handle error
-		return from retrieve_contents.
-
-2021-10-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/info-types-c++.exp with stressed cpu
-	When running test-case gdb.base/info-types-c++.exp in conjunction with:
-	...
-	$ stress -c $(($(cat /proc/cpuinfo | grep -c "^processor") + 1))
-	...
-	we get:
-	...
-	FAIL: gdb.base/info-types-c++.exp: info types (timeout)
-	...
-
-	Fix this by setting auto-solib-add to off.
-
-	Tested on x86_64-linux.
-
-2021-10-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/info_sources_2.exp with check-read1
-	When running test-case gdb.base/info_sources_2.exp with check-read1, I run
-	into:
-	...
-	FAIL: gdb.base/info_sources_2.exp: args: : info sources  (timeout)
-	...
-
-	Fix this by consuming a "$src1, $src2, ..., $srcn: line bit by bit rather than
-	as one whole line.
-
-	Also add the missing handling of "Objfile has no debug information".
-
-	Tested on x86_64-linux.
-
-2021-10-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.mi/gdb2549.exp with check-read1
-	When running test-case gdb.mi/gdb2549.exp with check-read1, I run into:
-	...
-	FAIL: gdb.mi/gdb2549.exp: register values x (timeout)
-	...
-
-	Fix this by applying the same fix as for "register values t" in commit
-	478e490a4df "[gdb/testsuite] Fix gdb.mi/gdb2549.exp with check-read1".
-
-	Tested on x86_64-linux.
-
-2021-10-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/bt-on-error-and-warning.exp with check-read1
-	When running test-case gdb.base/bt-on-error-and-warning.exp with check-read1,
-	I run into:
-	...
-	(gdb) maint internal-error foobar^M
-	src/gdb/maint.c:82: internal-error: foobar^M
-	A problem internal to GDB has been detectedFAIL: \
-	  gdb.base/bt-on-error-and-warning.exp: problem=internal-error, mode=on: \
-	  scan for backtrace (GDB internal error)
-	Resyncing due to internal error.
-	,^M
-	...
-
-	The corresponding gdb_test_multiple in the test-case contains:
-	...
-	           -early -re "^A problem internal to GDB has been detected,\r\n" {
-	               incr header_lines
-	               exp_continue
-	           }
-	...
-	but instead this one triggers in gdb_test_multiple:
-	...
-	        -re ".*A problem internal to GDB has been detected" {
-	            fail "$message (GDB internal error)"
-	            gdb_internal_error_resync
-	            set result -1
-	        }
-	...
-
-	Fix this by likewise shortening the regexp to before the comma.
-
-	Tested on x86_64-linux.
-
-2021-10-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add nopie in two test-cases
-	When running test-case gdb.dwarf2/dw2-restrict.exp on openSUSE Leap 15.2 with
-	gcc-PIE installed (switching compiler default to -fPIE/-pie), I get:
-	...
-	gdb compile failed, ld: outputs/gdb.dwarf2/dw2-restrict/dw2-restrict0.o: \
-	  warning: relocation in read-only section `.text'
-	ld: warning: creating DT_TEXTREL in a PIE
-	UNTESTED: gdb.dwarf2/dw2-restrict.exp: failed to prepare
-	...
-
-	This is due to using a hardcoded .S file that was generated with -fno-PIE.
-
-	Fix this by adding the missing nopie.
-
-	Likewise in gdb.arch/amd64-tailcall-noret.exp.
-
-	Tested on x86_64-linux.
-
-2021-10-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.threads/check-libthread-db.exp with glibc 2.34
-	When running test-case gdb.threads/check-libthread-db.exp on openSUSE
-	Tumbleweed (with glibc 2.34) I get:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	[Thread debugging using libthread_db enabled]^M
-	Using host libthread_db library "/lib64/libthread_db.so.1".^M
-	Stopped due to shared library event:^M
-	  Inferior loaded /lib64/libm.so.6^M
-	    /lib64/libc.so.6^M
-	(gdb) FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: continue
-	...
-
-	The check expect the inferior to load libpthread, but since glibc 2.34
-	libpthread has been integrated into glibc, and consequently it's no longer
-	a dependency:
-	...
-	$ ldd outputs/gdb.threads/check-libthread-db/check-libthread-db
-	        linux-vdso.so.1 (0x00007ffe4cae4000)
-	        libm.so.6 => /lib64/libm.so.6 (0x00007f167c77c000)
-	        libc.so.6 => /lib64/libc.so.6 (0x00007f167c572000)
-	        /lib64/ld-linux-x86-64.so.2 (0x00007f167c86e000)
-	...
-
-	Fix this by updating the regexp to expect libpthread or libc.
-
-	Tested on x86_64-linux.
-
-2021-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/scm-type.exp with gcc 4.8
-	With gcc 7.5.0, I get:
-	...
-	(gdb) guile (print (type-range (field-type (type-field (value-type \
-	  (value-dereference f)) "items"))))^M
-	= (0 0)^M
-	(gdb) PASS: gdb.guile/scm-type.exp: lang_cpp: test_range: \
-	  on flexible array member: $cmd
-	...
-	but with gcc 4.8.5, I get instead:
-	...
-	(gdb) guile (print (type-range (field-type (type-field (value-type \
-	  (value-dereference f)) "items"))))^M
-	= (0 -1)^M
-	(gdb) FAIL: gdb.guile/scm-type.exp: lang_cpp: test_range: \
-	  on flexible array member: $cmd
-	...
-
-	There's a difference in debug info.  With gcc 4.8.5, we have:
-	...
-	 <2><224>: Abbrev Number: 15 (DW_TAG_member)
-	    <225>   DW_AT_name        : items
-	    <22b>   DW_AT_type        : <0x231>
-	 <1><231>: Abbrev Number: 4 (DW_TAG_array_type)
-	    <232>   DW_AT_type        : <0x105>
-	 <2><23a>: Abbrev Number: 16 (DW_TAG_subrange_type)
-	    <23b>   DW_AT_type        : <0x11a>
-	    <23f>   DW_AT_upper_bound : 0xffffffffffffffff
-	...
-	and with gcc 7.5.0, we have instead:
-	...
-	 <2><89f>: Abbrev Number: 12 (DW_TAG_member)
-	    <8a0>   DW_AT_name        : items
-	    <8a6>   DW_AT_type        : <0x8ac>
-	 <1><8ac>: Abbrev Number: 17 (DW_TAG_array_type)
-	    <8ad>   DW_AT_type        : <0x29d>
-	 <2><8b5>: Abbrev Number: 41 (DW_TAG_subrange_type)
-	 <2><8b6>: Abbrev Number: 0
-	...
-
-	As mentioned in commit 858c8f2c1b9 "gdb/testsuite: adjust
-	gdb.python/flexible-array-member.exp expected pattern":
-	...
-	Ideally, GDB would present a consistent and documented value for an
-	array member declared with size 0, regardless of how the debug info
-	looks like.
-	...
-
-	As in gdb.python/flexible-array-member.exp, change the test to accept the two
-	values.
-
-	Tested on x86_64-linux.
-
-2021-10-07  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add accessors for field (and call site) location
-	Add accessors for the various location values in struct field.  This
-	lets us assert that when we get a location value of a certain kind (say,
-	bitpos), the field's location indeed contains a value of that kind.
-
-	Remove the SET_FIELD_* macros, instead use the new setters directly.
-	Update the FIELD_* macros used to access field locations to go through
-	the getters.  They will be removed in a subsequent patch.
-
-	There are places where the FIELD_* macros are used on call_site_target
-	structures, because it contains members of the same name (loc_kind and
-	loc).  For now, I have replicated the getters/setters in
-	call_site_target.  But we could perhaps eventually factor them in a
-	"location" structure that can be used at both places.
-
-	Note that the field structure, being zero-initialized, defaults to a
-	bitpos location with value 0.  While writing this patch, I tried to make
-	it default to an "unset" location, to catch places where we would miss
-	setting a field's location.  However, I found that some places relied on
-	the default being "bitpos 0", so I left it as-is.  This change could
-	always be done as follow-up work, making these places explicitly set the
-	"bitpos 0" location.
-
-	I found two issues to fix:
-
-	 - I got some failures in the gdb.base/infcall-nested-structs-c++.exp
-	   test.  They were caused by two functions in amd64-tdep.c using
-	   TYPE_FIELD_BITPOS before checking if the location is of the bitpos
-	   kind, which they do indirectly through `field_is_static`.  Simply
-	   move getting the bitpos below the field_is_static call.
-
-	 - I got a failure in gdb.xml/tdesc-regs.exp.  It turns out that in
-	   make_gdb_type_enum, we set enum field values using SET_FIELD_BITPOS,
-	   and later access them through FIELD_ENUMVAL.  Fix that by using
-	   set_loc_enumval to set the value.
-
-	Change-Id: I53d3734916c46457576ba11dd77df4049d2fc1e8
-
-2021-10-07  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	RISC-V: Support aliases for Zbs instructions
-	Add aliases for the non-immediate mnemonics of b{set,clr,inv,ext} to
-	yencode the respective immediate insn b{set,clr,inv,ext}i when the
-	second source operand is an immediate.
-
-	2021-01-11  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	    gas/
-		* testsuite/gas/riscv/b-ext.d: Add tests.
-		* testsuite/gas/riscv/b-ext.s: Likewise.
-		* testsuite/gas/riscv/b-ext-64.d: Likewise.
-		* testsuite/gas/riscv/b-ext-64.s: Likewise.
-	    opcodes/
-	        * riscv-opc.c (riscv_opcodes): Add aliases for Zbs.
-
-	Suggested-by: Jan Beulich <jbeulich@suse.com>
-
-2021-10-07  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	RISC-V: Add support for Zbs instructions
-	This change adds the Zbs instructions from the Zbs 1.0.0 specification.
-	See
-	  https://github.com/riscv/riscv-bitmanip/releases/tag/1.0.0
-	for the frozen specification.
-
-	2021-01-09  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	    bfd/
-		* elfxx-riscv.c (riscv_supported_std_z_ext): Added zbs.
-	    gas/
-		* config/tc-riscv.c (riscv_multi_subset_supports): Handle INSN_CLASS_ZBS.
-		* testsuite/gas/riscv/b-ext.d: Test Zbs instructions.
-		* testsuite/gas/riscv/b-ext.s: Likewise.
-		* testsuite/gas/riscv/b-ext-64.d: Likewise.
-		* testsuite/gas/riscv/b-ext-64.s: Likewise.
-	    include/
-		* opcode/riscv-opc.h: Added MASK/MATCH/DECLARE_INSN for Zbs.
-		* opcode/riscv.h (riscv_insn_class): Added INSN_CLASS_ZBS.
-	    opcodes/
-		* riscv-opc.c (riscv_supported_std_z_ext): Add zbs.
-
-2021-10-07  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	RISC-V: Update extension version for Zb[abc] to 1.0.0
-	2021-10-06  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	    bfd/
-		* elfxx-riscv.c (riscv_supported_std_z_ext): Update the version
-		number for zba, zbb and zbc to 1.0.0
-
-
-	Version-changes: 3
-	- Updated version numbers for zba, zbb and zbc to 1.0.0
-
-2021-10-07  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	RISC-V: Split Zb[abc] into commented sections
-	The Zb[abc] opcodes are bundled just below the Privileged opcodes in
-	riscv_opcodes, possibly giving the appearance that they are part of
-	the Privileged spec for an uninitiated reader.  This separates them
-	out and adds comments above each section to clearly identify them as
-	Zba, Zbb or Zbc opcodes.
-
-	2021-10-04  Philipp Tomsich  <philipp.tomsich@vrull.eu>
-
-	    opcodes/
-		* riscv-opc.c: Split of Zb[abc] instructions and add comments.
-
-2021-10-07  Alan Modra  <amodra@gmail.com>
-
-	PR28423, use-after-free in objdump
-	XCOFF archives use a bi-directional linked list for file members.  So
-	one member points to both the previous member and the next member.
-	Members may not be sequentially ordered in the file.  This of course
-	is over-engineered nonsense and an attractive target for fuzzers.
-	(There is even a free list of members!)  The testcase in PR28423 is an
-	XCOFF archive with one member pointing to itself, which results in
-	lots of bad behaviour.  For example, "ar t" never terminates.
-
-	The use-after-free with "objdump -r" happens like this:  The first
-	archive element is opened, its symbols are read and "canonicalized"
-	for objdump, then relocations are read and printed.  Those relocations
-	use the canonicalized symbols, and also happen to be cached by the
-	coff bfd backend support.  objdump frees the symbols.  The next
-	archive element is then opened.  This must be done before the first
-	element is closed, because finding the next element uses data held in
-	the currect element.  Unfortunately the next element happens to be the
-	original, so we aren't opening, we're reopening a bfd which has cached
-	data.  When the relocations are printed they use the cached copy
-	containing references to the freed canonical symbols.
-
-	This patch adds a little sanity checking to the XCOFF "open next
-	archive file" support, so that it rejects archive members pointing at
-	themselves.  That is sufficient to cure this problem.  Anything more
-	is overkill.  If someone deliberately fuzzes an XCOFF archive with an
-	element loop then reports an "ar" bug when it runs forever, they will
-	find their bug report closed WONTFIX.
-
-		PR 28423
-		* coff-rs6000.c (_bfd_xcoff_read_ar_hdr): Save size occupied
-		by member name in areltdata.extra_size.
-		(_bfd_xcoff_openr_next_archived_file): Sanity check nextoff.
-		* coff64-rs6000.c (xcoff64_openr_next_archived_file): Call
-		_bfd_xcoff_openr_next_archived_file.
-
-2021-10-07  Alan Modra  <amodra@gmail.com>
-
-	PR28422, build_id use-after-free
-	This fixes a bug in commit 5d9bbb73c1df.  All fields preserved from a
-	bfd in struct bfd_preserve need to be cleared in bfd_reinit.
-
-		PR 28422
-		* format.c (bfd_reinit): Clear build_id.
-
-2021-10-07  Alan Modra  <amodra@gmail.com>
-
-	Change ridiculous section size error
-	Rather than reporting "memory exhausted", report "file truncated".
-	You can hit this error on small fuzzed object files, or on files that
-	are actually truncated.  In either case sizes can be such that an out
-	of memory error is a little confusing.
-
-		* compress.c (bfd_get_full_section_contents): Set
-		bfd_error_file_truncated rather than bfd_error_no_memory when
-		section size exceeds file size.
-
-2021-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAIL in gdb.base/annota1.exp
-	On openSUSE tumbleweed I run into:
-	...
-	FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
-	...
-	due to a message related to libthread_db:
-	...
-	^Z^Zstarting^M
-	[Thread debugging using libthread_db enabled]^M
-	Using host libthread_db library "/lib64/libthread_db.so.1".^M
-	^M
-	^Z^Zframes-invalid^M
-	...
-	which is not matched by the regexp.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-2021-10-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Refactor regexp in gdb.base/annota1.exp
-	Refactor regexp in gdb.base/annota1.exp to reduce indentation and repetition.
-
-	Tested on x86_64-linux.
-
-2021-10-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-06  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/doc: improve 'show print elements' description
-	The documentation for 'show print elements' contains the line:
-
-	  If the number is 0, then the printing is unlimited.
-
-	However, this line is now out of date as can be seen by this GDB
-	session:
-
-	  (gdb) set print elements 0
-	  (gdb) show print elements
-	  Limit on string chars or array elements to print is unlimited.
-
-	The value 0 does indeed mean unlimited, and this is described in the
-	'set print elements' section, however, for 'show print elements' the
-	user will never see the value 0, so lets just remove that bit from the
-	docs.
-
-2021-10-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAIL in gdb.tui/corefile-run.exp
-	When running test-case gdb.tui/corefile-run.exp on openSUSE Tumbleweed,
-	I run into:
-	...
-	PASS: gdb.tui/corefile-run.exp: load corefile
-	FAIL: gdb.tui/corefile-run.exp: run until the end
-	...
-
-	What's going on is easier to see when also doing dump_screen if
-	check_contents passes, and inspecting state at the preceding PASS:
-	...
-	 +-------------------------------------------------------------------------+
-	 exec No process In:                                           L??   PC: ??
-	 [New LWP 16629]
-	 [Thread debugging using libthread_db enabled]
-	 Using host libthread_db library "/lib64/libthread_db.so.1".
-	 Core was generated by `/data/gdb_versions/devel/build/gdb/testsuite/output
-	 s/gdb.tui/corefile-run/corefi'.
-	 Program terminated with signal SIGTRAP, Trace/breakpoint trap.
-	 #0  main ()
-	 --Type <RET> for more, q to quit, c to continue without paging--
-	...
-
-	The problem is that we're getting a pagination prompt, and the subsequent run
-	command is interpreted as an answer to that prompt.
-
-	Fix this by:
-	- detecting the gdb prompt in response to "load corefile", such that
-	  we detect the failure earlier, and
-	- doing a "set pagination off" in Term::clean_restart.
-
-	Tested on x86_64-linux.
-
-2021-10-06  Alan Modra  <amodra@gmail.com>
-
-	PR28420, ecoff fuzzing failures
-		PR 28420
-		* coff-mips.c (mips_adjust_reloc_in): Replace abort with error
-		message and return.
-		* ecoff.c (ecoff_slurp_reloc_table): Remove assertion and aborts,
-		instead handle errors gracefully.
-
-2021-10-06  Alan Modra  <amodra@gmail.com>
-
-	PR28402, fail to allocate line number array
-	This fixes a situation where the COFF code allocated memory for
-	internal representaion arrays before reading the external file data.
-	That meant the allocation didn't have any sanity check against file
-	size.
-
-		PR 28402
-		* coffcode.h (buy_and_read): Malloc rather than alloc memory.
-		(coff_slurp_line_table): Read native line number info before
-		allocating memory for internal line number array.  Adjust error
-		paths to suit.  Remove now unnecessary line number count check.
-		(coff_slurp_reloc_table): Adjust to suit buy_and_read change.
-
-2021-10-06  Alan Modra  <amodra@gmail.com>
-
-	PR28403, null pointer dereference in disassemble_bytes
-	Indexing of symbol and howto arrays wasn't checked in aout targets.
-
-		PR 28403
-		* aout-ns32k.c (MY (reloc_howto)): Sanity check howto_table index.
-		Make r_index unsigned.
-		(MY_swap_std_reloc_in): Make r_index unsigned.
-		* aoutx.h (MOVE_ADDRESS): Sanity check symbol r_index.
-		(aout_link_input_section_std): Make r_index unsigned.
-		(aout_link_input_section_ext): Likewise.
-		* i386lynx.c (MOVE_ADDRESS): Sanity check symbol r_index.
-		(swap_ext_reloc_in, swap_std_reloc_in): Make r_index unsigned.
-		* pdp11.c (MOVE_ADDRESS): Sanity check symbol r_index.
-
-2021-10-06  Alan Modra  <amodra@gmail.com>
-
-	PR28401, invalid section name lookup
-	The PR28401 testcase has a section named "", ie. an empty string.
-	This results in some silly behaviour in load_debug_section, and
-	dump_dwarf_section.  Fix that.  Note that this patch doesn't correct
-	the main complaint in PR28401, "failed to allocate", since malloc
-	failures on sections having huge bogus sizes are to be expected.  We
-	can't safely catch all such cases by comparing with file size, for
-	example, where sections contain compressed data.
-
-		PR 28401
-		* objdump.c (load_debug_section): Don't attempt to retrieve
-		empty name sections.
-		(dump_dwarf_section): Likewise.
-
-2021-10-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Make tui testing less verbose
-	Currently, tui testing is rather verbose.  When using these RUNTESTFLAGS to
-	pick up all tui tests (17 in total):
-	...
-	rtf=$(echo $(cd src/gdb/testsuite/; find gdb.* -type f -name *.exp* \
-	  | xargs grep -l tuiterm_env) )
-	...
-	we have:
-	...
-	$ wc -l gdb.log
-	120592 gdb.log
-	...
-
-	Most of the output is related to controlling the tui screen, but that does
-	not give a top-level sense of how the test-case progresses.
-
-	Put differently: a lot of bandwith is used to describe how we arrive at a
-	certain tui screen state.  But we don't actually always show the state we
-	arrive at, unless there's a FAIL.
-
-	And if there's say, a PASS that should actually be FAILing, it's hard to
-	detect.
-
-	Fix this by:
-	- dropping the -log on the call to verbose in _log.  We still can get the
-	  same info back using runtest -v.
-	- dumping the screen or box that we're checking, also when the test passes.
-
-	Brings down verbosity to something more reasonable:
-	...
-	$ wc -l gdb.log
-	3221 gdb.log
-	...
-
-	Tested on x86_64-linux.
-
-2021-10-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add Term::dump_box in lib/tuiterm.exp
-	Factor out new proc Term::get_region and use it to implement a
-	new proc Term::dump_box, similar to Term::dump_screen.
-
-	Tested on x86_64-linux.
-
-2021-10-05  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: Remove deprecated assertion in setting::get
-	The commit 702991711a91bd47b209289562843a11e7009396 (gdb: Have setter
-	and getter callbacks for settings) makes it possible for a setting not
-	to be backed by a memory buffer but use callback functions instead to
-	retrieve or set the setting's value.
-
-	An assertion was not properly updated to take into account that the
-	m_var member (which points to a memory buffer, if used) might be nullptr
-	if the setting uses callback functions.  If the setting is backed by a
-	memory buffer, the m_var has to be non nullptr, which is already checked
-	before the pointer is dereferenced.
-
-	This commit removes this assertion as it is not valid anymore.
-
-2021-10-05  Tom Tromey  <tromey@adacore.com>
-
-	Remove 'varsize-limit'
-	This makes the Ada-specific "varsize-limit" a synonym for
-	"max-value-size", and removes the Ada-specific checks of the limit.
-
-	I am not certain of the history here, but it seems to me that this
-	code is fully obsolete now.  And, removing this makes it possible to
-	index large Ada arrays without triggering an error.  A new test case
-	is included to demonstrate this.
-
-2021-10-05  Tom Tromey  <tromey@adacore.com>
-
-	Allow lazy 'zero' value
-	This changes value_zero to create a lazy value.  In many cases,
-	value_zero is called in expression evaluation to wrap a type in a
-	non-eval context.  It seems senseless to allocate a buffer in these
-	cases.
-
-	A new 'is_zero' flag is added so we can preserve the existing
-	assertions in value_fetch_lazy.
-
-	A subsequent patch will add a test where creating a zero value would
-	fail, due to the variable size check.  However, the contents of this
-	value are never needed, and so creating a lazy value avoids the error
-	case.
-
-2021-10-05  Tom Tromey  <tromey@adacore.com>
-
-	Add lval_funcs::is_optimized_out
-	This adds an is_optimized_out function pointer to lval_funcs, and
-	changes value_optimized_out to call it.  This new function lets gdb
-	determine if a value is optimized out without necessarily fetching the
-	value.  This is needed for a subsequent patch, where an attempt to
-	access a lazy value would fail due to the value size limit -- however,
-	the access was only needed to determine the optimized-out state.
-
-2021-10-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAIL in gdb.mi/mi-nsmoribund.exp
-	Since commit e36788d1354 "[gdb/testsuite] Fix handling of nr_args < 3 in
-	mi_gdb_test" we run into:
-	...
-	PASS: gdb.mi/mi-nsmoribund.exp: print done = 1
-	Expecting: ^(.*[^M
-	]+)?([^
-	]*^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"^M
-	\*running,thread-id="[0-9]+"[^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	103-exec-continue --all^M
-	=library-loaded,id="/lib64/libgcc_s.so.1",target-name="/lib64/libgcc_s.so.1",\
-	  host-name="/lib64/libgcc_s.so.1",symbols-loaded="0",thread-group="i1",\
-	  ranges=[{from="0x00007ffff22a5010",to="0x00007ffff22b6365"}]^M
-	103^running^M
-	*running,thread-id="5"^M
-	(gdb) ^M
-	FAIL: gdb.mi/mi-nsmoribund.exp: 103-exec-continue --all (unexpected output)
-	...
-
-	The regexp expect running messages for all threads, but we only get one for
-	thread 5.
-
-	The test-case uses non-stop mode, and when the exec-continue --all command is
-	issued, thread 5 is stopped and all other threads are running.  Consequently,
-	only thread 5 is resumed, and reported as running.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-2021-10-05  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: fix memory leak in python inferior code
-	When a user creates a gdb.Inferior object for the first time a new
-	Python object is created.  This object is then cached within GDB's
-	inferior object using the registry mechanism (see
-	inferior_to_inferior_object in py-inferior.c, specifically the calls
-	to inferior_data and set_inferior_data).
-
-	The Python Reference to the gdb.Inferior object held within the real
-	inferior object ensures that the reference count on the Python
-	gdb.Inferior object never reaches zero while the GDB inferior object
-	continues to exist.
-
-	At the same time, the gdb.Inferior object maintains a C++ pointer back
-	to GDB's real inferior object.  We therefore end up with a system that
-	looks like this:
-
-	                   Python Reference
-	                         |
-	                         |
-	    .----------.         |          .--------------.
-	    |          |------------------->|              |
-	    | inferior |                    | gdb.Inferior |
-	    |          |<-------------------|              |
-	    '----------'         |          '--------------'
-	                         |
-	                         |
-	                    C++ Pointer
-
-	When GDB's inferior object is deleted (say the inferior exits) then
-	py_free_inferior is called (thanks to the registry system), this
-	function looks up the Python gdb.Inferior object and sets the C++
-	pointer to nullptr and finally reduces the reference count on the
-	Python gdb.Inferior object.
-
-	If at this point the user still holds a reference to the Python
-	gdb.Inferior object then nothing happens.  However, the gdb.Inferior
-	object is now in the non-valid state (see infpy_is_valid in
-	py-inferior.c), but otherwise, everything is fine.
-
-	However, if there are no further references to the Python gdb.Inferior
-	object, or, once the user has given up all their references to the
-	gdb.Inferior object, then infpy_dealloc is called.
-
-	This function currently checks to see if the inferior pointer within
-	the gdb.Inferior object is nullptr or not.  If the pointer is nullptr
-	then infpy_dealloc immediately returns.
-
-	Only when the inferior point in the gdb.Inferior is not nullptr do
-	we (a) set the gdb.Inferior reference inside GDB's inferior to
-	nullptr, and (b) call the underlying Python tp_free function.
-
-	There are a number things wrong here:
-
-	  1.  The Python gdb.Inferior reference within GDB's inferior object
-	  holds a reference count, thus, setting this reference to nullptr
-	  without first decrementing the reference count would leak a
-	  reference, however...
-
-	  2. As GDB's inferior holds a reference then infpy_dealloc will never
-	  be called until GDB's inferior object is deleted.  Deleting a GDB
-	  inferior ohject calls py_free_inferior, and so gives up the
-	  reference.  At this point there is no longer a need to call
-	  set_inferior_data to set the field back to NULL, that field must
-	  have been cleared in order to get the reference count to zero, which
-	  means...
-
-	  3. If we know that py_free_inferior must be called before
-	  infpy_dealloc, then we know that the inferior pointer in
-	  gdb.Inferior will always be nullptr when infpy_dealloc is called,
-	  this means that the call to the underlying tp_free function will
-	  always be skipped.  Skipping this call will cause Python to leak the
-	  memory associated with the gdb.Inferior object, which is what we
-	  currently always do.
-
-	Given all of the above, I assert that the C++ pointer within
-	gdb.Inferior will always be nullptr when infpy_dealloc is called.
-	That's what this patch does.
-
-	I wrote a test for this issue making use of Pythons tracemalloc
-	module, which allows us to spot this memory leak.
-
-2021-10-05  Bhuvanendra Kumar N  <Bhuvanendra.KumarN@amd.com>
-
-	[gdb/testsuite] Use function_range in gdb.dwarf2/dw2-ref-missing-frame.exp
-	Following 2 test points are failing with clang compiler
-
-	(gdb) FAIL: gdb.dwarf2/dw2-ref-missing-frame.exp: func_nofb print
-	(gdb) FAIL: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb print
-
-	As in commit f677852bbda "[gdb/testsuite] Use function_range in
-	gdb.dwarf2/dw2-abs-hi-pc.exp", the problem is that the CU and functions
-	have an empty address range, due to using asm labels in global scope,
-	which is a known source of problems, as explained in the comment of proc
-	function_range in gdb/testsuite/lib/dwarf.exp.  Hence fix this also by
-	using function_range.
-
-	Tested on x86_64-linux with gcc and clang.
-
-2021-10-05  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: add a new gdb_exiting event
-	Add a new event, gdb.events.gdb_exiting, which is called once GDB
-	decides it is going to exit.
-
-	This event is not triggered in the case that GDB performs a hard
-	abort, for example, when handling an internal error and the user
-	decides to quit the debug session, or if GDB hits an unexpected,
-	fatal, signal.
-
-	This event is triggered if the user just types 'quit' at the command
-	prompt, or if GDB is run with '-batch' and has processed all of the
-	required commands.
-
-	The new event type is gdb.GdbExitingEvent, and it has a single
-	attribute exit_code, which is the value that GDB is about to exit
-	with.
-
-	The event is triggered before GDB starts dismantling any of its own
-	internal state, so, my expectation is that most Python calls should
-	work just fine at this point.
-
-	When considering this functionality I wondered about using the
-	'atexit' Python module.  However, this is triggered when the Python
-	environment is shut down, which is done from a final cleanup.  At
-	this point we don't know for sure what other GDB state has already
-	been cleaned up.
-
-2021-10-05  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: update events test to handle missing exit_code
-	The test gdb.python/py-events.exp sets up a handler for the gdb.exited
-	event.  Unfortunately the handler is slightly broken, it assumes that
-	the exit_code attribute will always be present.  This is not always
-	the case.
-
-	In a later commit I am going to add more tests to py-events.exp test
-	script, and in so doing I expose the bug in our handling of gdb.exited
-	events.
-
-	Just to be clear, GDB itself is fine, it is the test that is not
-	written correctly according to the Python Events API.
-
-	So, in this commit I fix the Python code in the test, and extend the
-	test case to exercise more paths through the Python code.
-
-	Additionally, I noticed that the gdb.exited event is used as an
-	example in the documentation for how to write an event handler.
-	Unfortunately the same bug that we had in our test was also present in
-	the example code in the manual.
-
-	So I've fixed that too.
-
-	After this commit there is no functional change to GDB.
-
-2021-10-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-04  Tom Tromey  <tromey@adacore.com>
-
-	Use unique_xmalloc_ptr<char> when demangling
-	I noticed that some methods in language_defn could use
-	unique_xmalloc_ptr<char> rather than a plain 'char *'.  This patch
-	implements this change, fixing up the fallout and changing
-	gdb_demangle to also return this type.  In one spot, std::string is
-	used to simplify some related code, and in another, an auto_obstack is
-	used to avoid manual management.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-10-04  Tom Tromey  <tromey@adacore.com>
-
-	Minor boolean fix in windows-nat.c
-	I noticed a spot in windows-nat.c that used '1' rather than the more
-	appropriate 'true'.  This patch fixes it.
-
-2021-10-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Add CXX_DIALECT to CXX
-	Say we use a gcc version that (while supporting c++11) does not support c++11
-	by default, and needs an -std setting to enable it.
-
-	If gdb would use the default AX_CXX_COMPILE_STDCXX from autoconf-archive, then
-	we'd have:
-	...
-	CXX="g++ -std=gnu++11"
-	...
-
-	That mechanism however has the following problem (quoting from commit
-	0bcda685399):
-	...
-	the top level Makefile passes CXX down to subdirs, and that overrides whatever
-	gdb/Makefile may set CXX to.  The result would be that a make invocation from
-	the build/gdb/ directory would use "g++ -std=gnu++11" as expected, while a
-	make invocation at the top level would not.
-	...
-
-	Commit 0bcda685399 fixes this by using a custom AX_CXX_COMPILE_STDCXX which
-	does:
-	...
-	CXX=g++
-	CXX_DIALECT=-std=gnu++11
-	...
-
-	The problem reported in PR28318 is that using the custom instead of the
-	default AX_CXX_COMPILE_STDCXX makes the configure test for std::thread
-	support fail.
-
-	We could simply add $CXX_DIALECT to the test for std::thread support, but
-	that would have to be repeated for each added c++ support test.
-
-	Instead, fix this by doing:
-	...
-	CXX="g++ -std=gnu++11"
-	CXX_DIALECT=-std=gnu++11
-	...
-
-	This is somewhat awkward, since it results in -std=gnu++11 occuring twice in
-	some situations:
-	...
-	$ touch src/gdb/dwarf2/read.c
-	$ ( cd build/gdb; make V=1 dwarf2/read.o )
-	g++-4.8 -std=gnu++11 -x c++ -std=gnu++11 ...
-	...
-
-	However, both settings are needed:
-	 - the switch in CXX for the std::thread tests (and other tests)
-	 - the switch in CXX_DIALECT so it can be appended in Makefiles, to
-	   counteract the fact that the top-level Makefile overrides CXX
-
-	The code added in gdb/ax_cxx_compile_stdcxx.m4 is copied from the default
-	AX_CXX_COMPILE_STDCXX from autoconf-archive.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28318
-
-2021-10-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	[gdb/symtab] Use unrelocated addresses in call_site
-	Consider test-case gdb.trace/entry-values.exp with target board
-	unix/-fPIE/-pie.
-
-	Using this command we have an abbreviated version, and can see the correct
-	@entry values for foo:
-	...
-	$ gdb -q -batch outputs/gdb.trace/entry-values/entry-values \
-	  -ex start \
-	  -ex "break foo" \
-	  -ex "set print entry-values both" \
-	  -ex continue
-	Temporary breakpoint 1 at 0x679
-
-	Temporary breakpoint 1, 0x0000555555554679 in main ()
-	Breakpoint 2 at 0x55555555463e
-
-	Breakpoint 2, 0x000055555555463e in foo (i=0, i@entry=2, j=2, j@entry=3)
-	...
-
-	Now, let's try the same again, but run directly to foo rather than stopping at
-	main:
-	...
-	$ gdb -q -batch outputs/gdb.trace/entry-values/entry-values \
-	  -ex "break foo" \
-	  -ex "set print entry-values both" \
-	  -ex run
-	Breakpoint 1 at 0x63e
-
-	Breakpoint 1, 0x000055555555463e in foo (i=0, i@entry=<optimized out>, \
-	  j=2, j@entry=<optimized out>)
-	...
-
-	So, what explains the difference?  Noteworthy, this is a dwarf assembly
-	test-case, with debug info for foo and bar, but not for main.
-
-	In the first case:
-	- we run to main
-	- this does not trigger expanding debug info, because there's none for main
-	- we set a breakpoint at foo
-	- this triggers expanding debug info.  Relocated addresses are used in
-	  call_site info (because the exec is started)
-	- we continue to foo, and manage to find the call_site info
-
-	In the second case:
-	- we set a breakpoint at foo
-	- this triggers expanding debug info.  Unrelocated addresses are used in
-	  call_site info (because the exec is not started)
-	- we run to foo
-	- this triggers objfile_relocate1, but it doesn't update the call_site
-	  info addresses
-	- we don't manage to find the call_site info
-
-	We could fix this by adding the missing call_site relocation in
-	objfile_relocate1.
-
-	This solution however is counter-trend in the sense that we're trying to
-	work towards the situation where when starting two instances of an executable,
-	we need only one instance of debug information, implying the use of
-	unrelocated addresses.
-
-	So, fix this instead by using unrelocated addresses in call_site info.
-
-	Tested on x86_64-linux.
-
-	This fixes all remaining unix/-fno-PIE/-no-pie vs unix/-fPIE/-pie
-	regressions, like f.i. PR24892.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24892
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-
-2021-10-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	[gdb/symtab] C++-ify call_site
-	- add constructor
-	- add member function call_site::pc ()
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-
-2021-10-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Add call_site_eq and call_site_hash
-	In commit b4c919f7525 "[gdb/symtab] Fix htab_find_slot call in
-	read_call_site_scope" , I removed the comment:
-	...
-	It must be the first field as we overload core_addr_hash and core_addr_eq for
-	it.
-	...
-	for field pc of struct call_site.
-
-	However, this was not tested, and when indeed moving field pc to the second
-	location, we run into a testsuite failure in gdb.trace/entry-values.exp.
-
-	This is caused by core_addr_eq (the eq_f function for the htab) being
-	called with a pointer to the pc field (as passed into htab_find_slot) and a
-	pointer to a hash table element.  Now that pc is no longer the first field,
-	the pointer to hash table element no longer points to the pc field.
-
-	This could be fixed by simply reinstating the comment, but we're trying to
-	get rid of this kind of tricks that make refactoring more difficult.
-
-	Instead, fix this by:
-	- reverting commit b4c919f7525, apart from the comment removal, such that
-	  we're passing a pointer to element to htab_find_slot
-	- updating the htab_find_slot call in compunit_symtab::find_call_site
-	  in a similar manner
-	- adding a call_site_eq and call_site_hash, and using these in the hash table
-	  instead of core_addr_eq and core_addr_hash.
-
-	Tested on x86_64-linux, both with and without a trigger patch that moves pc to
-	the second location in struct call_site.
-
-2021-10-04  Tom Tromey  <tromey@adacore.com>
-
-	Fix remote-sim.c compilation
-	The change "make string-like set show commands use std::string
-	variable" caused remote-sim.c to fail to build.  The issue is that the
-	code does:
-
-	  const std::string &sysroot = gdb_sysroot;
-	  if (is_target_filename (sysroot))
-	    sysroot += strlen (TARGET_SYSROOT_PREFIX);
-
-	... which isn't valid.
-
-	This patch changes this code to use a 'const char *' again, fixing the
-	build.
-
-2021-10-04  Bruno Larsen  <blarsen@redhat.com>
-
-	[gdb/testsuite] update analyze-racy-logs.py to python3
-	Since python 2 is no longer supported on most distributions, update the
-	script to run under python while while still being runnable under
-	python2.
-
-2021-10-04  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdbsupport: remove attempt to define TARGET_WORD_SIZE
-	In the gdbsupport configure.ac file, there is an attempt to define
-	TARGET_WORD_SIZE.  This is done by running grep on the file
-	../bfd/bfd-in3.h.
-
-	The problem with this is, the file bfd-in3.h is generated into the bfd
-	build directory when bfd is configured, and there is no dependency
-	between the gdbsupport module and the bfd module, so, for example, if
-	I do:
-
-	  $ ../src/configure
-	  $ make all-gdbsupport
-
-	Then bfd will neither be configured, or built.  In this case
-	TARGET_WORD_SIZE ends up being defined, but with no value because the
-	grep on bfd-in3.h fails.
-
-	However, it turns out that this doesn't matter; we don't actually use
-	TARGET_WORD_SIZE anywhere.
-
-	My proposal in this commit is to just remove the definition of
-	TARGET_WORD_SIZE, the alternative would be to add a dependency between
-	configure-gdbsupport and configure-bfd into Makefile.def, but adding a
-	dependency for something we don't need seems pretty pointless.
-
-2021-10-04  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: add --info-target for listing supported BFD targets
-	It can be difficult to guess the exact bfd name, so add an option to
-	list all the targets that the current build supports.  This aligns with
-	other simulator options like --info-architecture.
-
-2021-10-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-03  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: Setting setter return a bool to tell if the value changed
-	GDB can notify observers when a parameter is changed.
-
-	To do that, do_set_command (in gdb/cli/cli-setshow.c) compares the new
-	value against the old one before updating it, and based on that notifies
-	observers.  This looks like something like:
-
-	    int valuechanged = 0;
-	    switch (cmd->var.type ())
-	    {
-	    case var_integer:
-	      {
-	        LONGEST new_val = parse_and_eval_long (arg)
-	        if (new_val != cmd->var.get<int> ())
-	        {
-	          cmd->var.get<int> (new_val);
-	          value_changes = 1;
-	        }
-	      }
-	    case var_uinteger:
-	    case var_zuinteger:
-	      {
-	        unsigned int val
-	          = parse_cli_var_uinteger (c->var->type (), &arg, true);
-	        if (c->var->get<unsigned int> () != val)
-	          {
-	            c->var->set<unsigned int> (val);
-	            option_changed = true;
-	          }
-	      }
-	    case...
-	      /* And so on for all possible var_types.  */
-	    }
-
-	This comparison is done for each possible var_type, which leads to
-	unnecessary logic duplication.
-
-	In this patch I propose to move all those checks in one place within the
-	setting setter method.  This limits the code duplication and simplifies
-	the do_set_command implementation.
-
-	This patch also changes slightly the way a value change is detected.
-	Instead of comparing the user provided value against the current value
-	of the setting, we compare the value of the setting before and after the
-	set operation.  This is meant to handle edge cases where trying to set
-	an unrecognized value would be equivalent to a noop (the actual value
-	remains unchanged).  Doing this requires that the original value needs
-	to be copied before the update, which can be non trivial for
-	std::string.
-
-	There should be no user visible change introduced by this commit.
-
-	Tested on x86_64 GNU/Linux.
-
-	[1] https://review.lttng.org/c/binutils-gdb/+/5831/41
-
-	Change-Id: If064b9cede3eb56275aacd2b286f74eceb1aed11
-
-2021-10-03  Lancelot SIX  <lsix@lancelotsix.com>
-	    Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: Have setter and getter callbacks for settings
-	The main motivation behind this improvement is to help the
-	implementation of a patch Simon Marchi is preparing to fix a bug when
-	MI or Python try to access parameters that are inferior dependent (see
-	PR/28085).
-
-	This commit extends the previous ones, which introduces the setting
-	object to represent a static variable whose value can be set or shown
-	with the appropriate commands.  This patch proposes that a setting can
-	either contain a pointer to a static variable holding a setting, or
-	pointers to a pair of setter and getter callback functions.
-
-	The callbacks functions can be used to retrieve or change the value with
-	custom logic.  This is useful when the source of truth for a given
-	setting is not contained in the variable pointed to by the setting
-	instance.
-
-	Given that the callback function call is hidden within the setting
-	abstraction introduced earlier, none of the sites accessing the setting
-	needs to be updated.  The registered getter or setter is used whatever
-	the way to access it is (through MI, Python, Guile, the "with" command
-	and the $_gdb_setting / $_gdb_setting_str convenience functions).
-
-	All the add_setshow_*_cmd are given a new overload that will accept the
-	pair of function pointers (set / get functions) instead of the pointer
-	to a global variable.
-
-	Tested on GNU/Linux x86_64 with no regression observed.
-
-	Change-Id: Ieb81fef57550632ff66e6aa85f637372a226be8c
-
-2021-10-03  Simon Marchi  <simon.marchi@efficios.com>
-	    Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: make string-like set show commands use std::string variable
-	String-like settings (var_string, var_filename, var_optional_filename,
-	var_string_noescape) currently take a pointer to a `char *` storage
-	variable (typically global) that holds the setting's value.  I'd like to
-	"mordernize" this by changing them to use an std::string for storage.
-
-	An obvious reason is that string operations on std::string are often
-	easier to write than with C strings.  And they avoid having to do any
-	manual memory management.
-
-	Another interesting reason is that, with `char *`, nullptr and an empty
-	string often both have the same meaning of "no value".  String settings
-	are initially nullptr (unless initialized otherwise).  But when doing
-	"set foo" (where `foo` is a string setting), the setting now points to
-	an empty string.  For example, solib_search_path is nullptr at startup,
-	but points to an empty string after doing "set solib-search-path".  This
-	leads to some code that needs to check for both to check for "no value".
-	Or some code that converts back and forth between NULL and "" when
-	getting or setting the value.  I find this very error-prone, because it
-	is very easy to forget one or the other.  With std::string, we at least
-	know that the variable is not "NULL".  There is only one way of
-	representing an empty string setting, that is with an empty string.
-
-	I was wondering whether the distinction between NULL and "" would be
-	important for some setting, but it doesn't seem so.  If that ever
-	happens, it would be more C++-y and self-descriptive to use
-	optional<string> anyway.
-
-	Actually, there's one spot where this distinction mattered, it's in
-	init_history, for the test gdb.base/gdbinit-history.exp.  init_history
-	sets the history filename to the default ".gdb_history" if it sees that
-	the setting was never set - if history_filename is nullptr.  If
-	history_filename is an empty string, it means the setting was explicitly
-	cleared, so it leaves it as-is.  With the change to std::string, this
-	distinction doesn't exist anymore.  This can be fixed by moving the code
-	that chooses a good default value for history_filename to
-	_initialize_top.  This is ran before -ex commands are processed, so an
-	-ex command can then clear that value if needed (what
-	gdb.base/gdbinit-history.exp tests).
-
-	Another small improvement, in my opinion is that we can now easily
-	give string parameters initial values, by simply initializing the global
-	variables, instead of xstrdup-ing it in the _initialize function.
-
-	In Python and Guile, when registering a string-like parameter, we
-	allocate (with new) an std::string that is owned by the param_smob (in
-	Guile) and the parmpy_object (in Python) objects.
-
-	This patch started by changing all relevant add_setshow_* commands to
-	take an `std::string *` instead of a `char **` and fixing everything
-	that failed to build.  That includes of course all string setting
-	variable and their uses.
-
-	string_option_def now uses an std::string also, because there's a
-	connection between options and settings (see
-	add_setshow_cmds_for_options).
-
-	The add_path function in source.c is really complex and twisted, I'd
-	rather not try to change it to work on an std::string right now.
-	Instead, I added an overload that copies the std:string to a `char *`
-	and back.  This means more copying, but this is not used in a hot path
-	at all, so I think it is acceptable.
-
-	Change-Id: I92c50a1bdd8307141cdbacb388248e4e4fc08c93
-
-2021-10-03  Lancelot SIX  <lsix@lancelotsix.com>
-	    Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: Introduce setting construct within cmd_list_element
-	cmd_list_element can contain a pointer to data that can be set and / or
-	shown.  This is achieved with the void* VAR member which points to the
-	data that can be accessed, while the VAR_TYPE member (of type enum
-	var_types) indicates how to interpret the data pointed to.
-
-	With this pattern, the user of the cmd_list_element needs to know what
-	is the storage type associated with a given VAR_TYPES in order to do
-	the proper casting.  No automatic safeguard is available to prevent
-	miss-use of the pointer.  Client code typically looks something like:
-
-		switch (c->var_type)
-		{
-		  case var_zuinteger:
-		    unsigned int v = *(unsigned int*) c->var;
-		    ...
-		    break;
-		  case var_boolean:
-		    bool v = *(bool *) c->var;
-		    ...
-		    break;
-		  ...
-		}
-
-	This patch proposes to add an abstraction around the var_types and void*
-	pointer pair.  The abstraction is meant to prevent the user from having
-	to handle the cast and verify that the data is read or written as a type
-	that is coherent with the setting's var_type.  This is achieved by
-	introducing the struct setting which exposes a set of templated get /
-	set member functions.  The template parameter is the type of the
-	variable that holds the referred variable.
-
-	Using those accessors allows runtime checks to be inserted in order to
-	ensure that the data pointed to has the expected type.  For example,
-	instantiating the member functions with bool will yield something
-	similar to:
-
-		const bool &get<bool> () const
-		{
-		  gdb_assert (m_var_type == var_boolean);
-		  gdb_assert (m_var != nullptr);
-		  return *static_cast<bool *> (m_var);
-		}
-		void set<bool> (const bool &var)
-		{
-		  gdb_assert (m_var_type == var_boolean);
-		  gdb_assert (m_var != nullptr);
-		  *static_cast<bool *> (m_var) = var;
-		}
-
-	Using the new abstraction, our initial example becomes:
-
-		switch (c->var_type)
-		{
-		  case var_zuinteger:
-		    unsigned int v = c->var->get<unsigned int> ();
-		    ...
-		    break;
-		  case var_boolean:
-		    bool v = c->var->get<bool> ();
-		    ...
-		    break;
-		  ...
-		}
-
-	While the call site is still similar, the introduction of runtime checks
-	help ensure correct usage of the data.
-
-	In order to avoid turning the bulk of add_setshow_cmd_full into a
-	templated function, and following a suggestion from Pedro Alves, a
-	setting can be constructed from a pre validated type erased reference to
-	a variable.  This is what setting::erased_args is used for.
-
-	Introducing an opaque abstraction to describe a setting will also make
-	it possible to use callbacks to retrieve or set the value of the setting
-	on the fly instead of pointing to a static chunk of memory.  This will
-	be done added in a later commit.
-
-	Given that a cmd_list_element may or may not reference a setting, the
-	VAR and VAR_TYPES members of the struct are replaced with a
-	gdb::optional<setting> named VAR.
-
-	Few internal function signatures have been modified to take into account
-	this new abstraction:
-
-	-The functions value_from_setting, str_value_from_setting and
-	 get_setshow_command_value_string used to have a 'cmd_list_element *'
-	 parameter but only used it for the VAR and VAR_TYPE member. They now
-	 take a 'const setting &' parameter instead.
-	- Similarly, the 'void *' and a 'enum var_types' parameters of
-	  pascm_param_value and gdbpy_parameter_value have been replaced with a
-	  'const setting &' parameter.
-
-	No user visible change is expected after this patch.
-
-	Tested on GNU/Linux x86_64, with no regression noticed.
-
-	Change-Id: Ie1d08c3ceb8b30b3d7bf1efe036eb8acffcd2f34
-
-2021-10-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: filter out SIGSTKSZ [PR sim/28302]
-	We map target signals to host signals so we can propagate signals
-	between the host & simulated worlds.  That means we need to know
-	the symbolic names & values of all signals that might be sent.
-
-	The tools that generate that list use signal.h and include all
-	symbols that start with "SIG" so as to automatically include any
-	new symbols that the C library might add.  Unfortunately, this
-	also picks up "SIGSTKSZ" which is not actually a signal itself,
-	but a signal related setting -- it's the size of the stack when
-	a signal is handled.
-
-	By itself this doesn't super matter as we will never see a signal
-	with that same value (since the range of valid signals tend to be
-	way less than 1024, and the size of the default signal stack will
-	never be that small).  But with recent glibc changes that make this
-	into a dynamic value instead of a compile-time constant, some users
-	see build failures when building the sim.
-
-	As suggested by Adam Sampson, update our scripts to ignore this
-	symbol to simplify everything and avoid the build failure.
-
-	Bug: https://sourceware.org/PR28302
-
-2021-10-03  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: fallback when ln is not available [PR sim/18864]
-	Not all systems have easy access to hard links or symlinks, so add
-	fallback logic to the run->psim build code to handle those.
-
-	Bug: https://sourceware.org/PR18864
-
-2021-10-03  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: Fix comment in riscv_scan_prologue
-	I found an inaccurate comment in riscv_scan_prologue.  This commit fixes
-	it.
-
-2021-10-03  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: Support the c.mv insn in the riscv prologue scanner.
-	While working on other problems, I encountered situations where GDB
-	fails to properly unwind the stack because some functions use the C.MV
-	instruction in the prologue.  The prologue scanner stops when it hits
-	this instruction assuming its job is done at this point.  Unfortunately
-	the prologue is not necessarily finished yet, preventing GDB to properly
-	unwind.
-
-	This commit adds support for handling such instruction in
-	riscv_scan_prologue.
-
-	Note that C.MV is part of the compressed instruction set.  The MV
-	counterpart from the base ISA is a pseudo instruction that expands to
-	'ADDI RD,RS1,0' which is already supported.
-
-	Tested on riscv64-linux-gnu.
-
-	All feedback are welcome.
-
-2021-10-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	[gdb/symtab] Remove COMPUNIT_CALL_SITE_HTAB
-	Remove macro COMPUNIT_CALL_SITE_HTAB, and provide access to the htab using
-	member functions:
-	- compunit_symtab::find_call_site
-	- compunit_symtab::set_call_site_htab
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-
-2021-10-02  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/python: fix a few flake8 warnings
-	Fix these rather obvious warnings reported by flake8:
-
-	    ./lib/gdb/FrameIterator.py:16:1: F401 'gdb' imported but unused
-	    ./lib/gdb/FrameIterator.py:17:1: F401 'itertools' imported but unused
-	    ./lib/gdb/command/prompt.py:55:26: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
-	    ./lib/gdb/command/explore.py:526:9: F841 local variable 'has_explorable_fields' is assigned to but never used
-	    ./lib/gdb/command/explore.py:697:56: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
-	    ./lib/gdb/command/explore.py:736:62: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
-	    ./lib/gdb/command/explore.py:767:61: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
-	    ./lib/gdb/command/frame_filters.py:21:1: F401 'copy' imported but unused
-	    ./lib/gdb/command/frame_filters.py:22:1: F401 'gdb.FrameIterator.FrameIterator' imported but unused
-	    ./lib/gdb/command/frame_filters.py:23:1: F401 'gdb.FrameDecorator.FrameDecorator' imported but unused
-	    ./lib/gdb/command/frame_filters.py:25:1: F401 'itertools' imported but unused
-	    ./lib/gdb/command/frame_filters.py:179:17: E712 comparison to True should be 'if cond is True:' or 'if cond:'
-
-	Change-Id: I4f49c0cb430359ee872222600c61d9c5283b09ab
-
-2021-10-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-10-01  Luis Machado  <luis.machado@linaro.org>
-
-	Fix build failure for 32-bit targets
-	When building master GDB, I ran into the following:
-
-	binutils-gdb/gdb/bt-utils.c: In function 'int libbacktrace_print(void*, uintptr_t, const char*, int, const char*)':
-	binutils-gdb/gdb/bt-utils.c:93:44: error: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'uintptr_t {aka unsigned int}' [-Werror=format=]
-	   snprintf (buf, sizeof (buf), "0x%lx ", pc);
-
-	Fix this by using %PRIxPTR as opposed to %lx.
-
-2021-10-01  Nick Clifton  <nickc@redhat.com>
-
-	Fix mistake in RX assembler documentation (special section names)
-
-2021-10-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	[gdb/symtab] Fix htab_find_slot call in read_call_site_scope
-	In read_call_site_scope we have:
-	...
-	  call_site_local.pc = pc;
-	  slot = htab_find_slot (cu->call_site_htab, &call_site_local, INSERT);
-	...
-
-	The call passes a call_site pointer as element.  OTOH, the hashtab is created
-	using hash_f == core_addr_hash and eq_f == core_addr_eq, so the element
-	will be accessed through a CORE_ADDR pointer.
-
-	This is not wrong (at least in C), given that pc is the first field in
-	call_site.
-
-	Nevertheless, as in call_site_for_pc, make the htab_find_slot call match the
-	used hash_f and eq_f by using &pc instead:
-	...
-	  slot = htab_find_slot (cu->call_site_htab, &pc, INSERT);
-	...
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Tom de Vries <tdevries@suse.de>
-
-2021-10-01  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH bfd: Fix linker warning for recently introduced arm attributes
-	2021-09-27  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Update value to cover
-		'Tag_BTI_use' and 'Tag_PACRET_use'.
-
-2021-10-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/dwarf: use options for rnglists/loclists procs
-	Change how rnglists and loclists procs to align them with how procs for
-	aranges (and other things in the DWARF assembler) work.  Instead of
-	using "args" (variable number of parameters in TCL) and command-line
-	style option arguments, use one leading "option" parameters, used as a
-	kind of key/value dictionary of options parsed using `parse_options`.
-
-	Change-Id: I63e60d17ae16a020ce4d6de44baf3d152ea42a1a
-
-2021-10-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite/dwarf: don't define nested procs for rnglists/loclists
-	When I wrote support for rnglists and loclists in the testsuite's DWARF
-	assembler, I made it with nested procs, for example proc "table" inside
-	proc "rnglists".  The intention was that this proc "table" could only be
-	used by the user while inside proc "rnglists"'s body.  I had chosen very
-	simple names, thinking there was no chance of name clashes.  I recently
-	learned that this is not how TCL works.  This ends up defining a proc
-	"table" in the current namespace ("Dwarf" in this case).
-
-	Things still work if you generate rnglists and loclists in the same
-	file, as each redefines its own procedures when executing.  But if a
-	user of the assembler happened to define a convenience "table" or
-	"start_end" procedure, for example, it would get overriden.
-
-	I'd like to change how this works to reduce the chances of a name clash.
-
-	 - Move the procs out of each other, so they are not defined in a nested
-	   fashion.
-	 - Prefix them with "_rnglists_" or "_loclists_".
-	 - While calling $body in the various procs, temporarily make the procs
-	   available under their "short" name.  For example, while in rngllists'
-	   body, make _rnglists_table available as just "table".  This allows
-	   existing code to keep working and keeps it not too verbose.
-	 - Modify with_override to allow the overriden proc to not exist.  In
-	   that case, the temporary proc is deleted on exit.
-
-	Note the non-conforming indentation when calling with_override in
-	_loclists_list.  This is on purpose: as we implement more loclists (and
-	rnglists) entry types, the indentation would otherwise get larger and
-	larger without much value for readability.  So I think it's reasonable
-	here to put them on the same level.
-
-	Change-Id: I7bb48d26fcb0dba1ae4dada05c0c837212424328
-
-2021-10-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove TYPE_FIELD_NAME and FIELD_NAME macros
-	Remove the `TYPE_FIELD_NAME` and `FIELD_NAME` macros, changing all the
-	call sites to use field::name directly.
-
-	Change-Id: I6900ae4e1ffab1396e24fb3298e94bf123826ca6
-
-2021-10-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add field::name / field::set_name
-	Add the `name` and `set_name` methods on `struct field`, in order to
-	remove `FIELD_NAME` and `TYPE_FIELD_NAME` macros.  In this patch, the
-	macros are changed to use `field::name`, so all the call sites that are
-	used to set the field's name are changed to use `field::set_name`.
-	The next patch will remove the macros completely.
-
-	Note that because of the name clash between the existing field named
-	`name` and the new method, I renamed the field `m_name`.  It is not
-	private per-se, because we can't make `struct field` a non-POD yet, but
-	it should be considered private anyway (not accessed outside `struct
-	field`).
-
-	Change-Id: If16ddbca4e0c39d0ff9da420bb5cdebe5b9b0896
-
-2021-10-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-30  Sergio Durigan Junior  <sergiodj@sergiodj.net>
-
-	[PR gdb/28369] Use get_shell on gdb/ser-pipe.c
-	PR gdb/28369 reports that gdb/ser-pipe.c has an 'execl' function call
-	with a hard-coded "/bin/sh" as its argument.  We've had 'get_shell'
-	for a while now, which is conscious about the SHELL environment and a
-	better alternative to always calling "/bin/sh".
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28369
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add untested for missing xml support in gdb.base/valgrind*.exp
-	Add untested in case missing xml support is detected in test-cases
-	gdb.base/valgrind*.exp.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	arm: enable Cortex-R52+ CPU
-	Patch is adding Cortex-R52+ as 'cortex-r52plus' command line
-	flag for -mcpu option.
-
-	bfd/
-
-		* cpu-arm.c: New Cortex-R52+ CPU.
-
-	gas/
-
-		* NEWS: Update docs.
-		* config/tc-arm.c: New Cortex-R52+ CPU.
-		* doc/c-arm.texi: Update docs.
-		* testsuite/gas/arm/cpu-cortex-r52plus.d: New test.
-
-2021-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: Enable Cortex-X2 CPU
-	This patch is adding support for Cortex-X2 CPU.
-
-	gas:
-
-		* NEWS: Update docs.
-		* config/tc-aarch64.c: Add Cortex-X2.
-		* doc/c-aarch64.texi: Update docs.
-
-2021-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: Enable Cortex-A710 CPU
-	This patch is adding support for Cortex-A710 CPU.
-
-	gas/
-
-	        * NEWS: Update docs.
-	        * config/tc-aarch64.c: Add Cortex-A710.
-	        * doc/c-aarch64.texi: Update docs.
-
-2021-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: Enable Cortex-A510 CPU
-	This patch is adding support for Cortex-A510 CPU.
-
-	gas/
-
-		* NEWS: Update docs.
-		* config/tc-aarch64.c: Add Cortex-A510.
-		* doc/c-aarch64.texi: Update docs.
-
-2021-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: Update AArch64 features command line options docs 2/2
-	Patch is only sorting by 'Extension` column 'Architecture Extension'
-	table.
-
-	gas/
-
-		* doc/c-aarch64.texi: Update docs.
-
-2021-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: Update AArch64 features command line options docs 1/2
-	Patch is improving entries in "Architecture extensions" table in GAS
-	documentation.
-
-	gas/
-
-		* doc/c-aarch64.texi: Update docs.
-
-2021-09-30  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
-
-	aarch64: add armv9-a architecture to -march
-	Patch is adding new 'armv9-a` command line flag to -march for AArch64.
-
-	gas/
-
-		* config/tc-aarch64.c: Add 'armv9-a' command line flag.
-		* docs/c-aarch64.text: Update docs.
-		* NEWS: Update docs.
-
-	include/
-
-		* opcode/aarch64.h (AARCH64_FEATURE_V9): New define.
-		(AARCH64_ARCH_V9): New define.
-
-2021-09-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: make runto_main not pass no-message to runto
-	As follow-up to this discussion:
-
-	  https://sourceware.org/pipermail/gdb-patches/2020-August/171385.html
-
-	... make runto_main not pass no-message to runto.  This means that if we
-	fail to run to main, for some reason, we'll emit a FAIL.  This is the
-	behavior we want the majority of (if not all) the time.
-
-	Without this, we rely on tests logging a failure if runto_main fails,
-	otherwise.  They do so in a very inconsisteny mannet, sometimes using
-	"fail", "unsupported" or "untested".  The messages also vary widly.
-	This patch removes all these messages as well.
-
-	Also, remove a few "fail" where we call runto (and not runto_main).  by
-	default (without an explicit no-message argument), runto prints a
-	failure already.  In two places, gdb.multi/multi-re-run.exp and
-	gdb.python/py-pp-registration.exp, remove "message" passed to runto.
-	This removes a few PASSes that we don't care about (but FAILs will still
-	be printed if we fail to run to where we want to).  This aligns their
-	behavior with the rest of the testsuite.
-
-	Change-Id: Ib763c98c5f4fb6898886b635210d7c34bd4b9023
-
-2021-09-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: make gdb_mkostemp_cloexec return a scoped_fd
-	This encourages the callers to use automatic file descriptor management.
-
-	Change-Id: I137a81df6f3607b457e28c35aafde8ed6f3a3344
-
-2021-09-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: make gdb_open_cloexec return scoped_fd
-	Make gdb_open_cloexec return a scoped_fd, to encourage using automatic
-	management of the file descriptor closing.  Except in the most trivial
-	cases, I changed the callers to just release the fd, which retains their
-	existing behavior.  That will allow the transition to using scoped_fd
-	more to go gradually, one caller at a time.
-
-	Change-Id: Ife022b403f96e71d5ebb4f1056ef6251b30fe554
-
-2021-09-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: move gdb_file_up to its own file
-	The following patches wants to change gdb_fopen_cloexec and
-	gdb_mkostemp_cloexec to return a scoped_fd.  Doing this causes a cyclic
-	include between scoped_fd.h and filestuff.h, that both want to include
-	each other.  scoped_fd.h includes filestuff.h because of the
-	scoped_fd::to_file method's return value.  filestuff.h would then
-	include scoped_fd.h for gdb_fopen_cloexec's and gdb_mkostemp_cloexec's
-	return values.
-
-	To fix that, move gdb_file_up to its own file, gdb_file.h.
-
-	Change-Id: Ic82a48914b2aacee8f14af535b7469245f88b93d
-
-2021-09-30  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-	ld: pru: Fix resource_table output section alignment
-	My commit 261980de18b added alignment for the resource table symbol.
-	But it is wrong.  The Linux remoteproc driver loads and interprets the
-	contents of the .resource_table ELF section, not of a table symbol.
-
-	Without this patch, if the linker happens to output padding for symbol
-	alignment, then the resource table contents as viewed by the kernel
-	loader would "shift" and look corrupted.
-
-	ld/ChangeLog:
-
-		* scripttempl/pru.sc  (.resource_table): Align the output
-		section, not the first symbol.
-
-2021-09-30  Tom Tromey  <tromey@adacore.com>
-
-	Fix Windows crash from stop_pc change
-	The "make thread_suspend_state::stop_pc optional" patch caused a
-	regression on Windows when using shared libraries.  I tracked this
-	down to an unguarded use of stop_pc() in the TARGET_WAITKIND_LOADED
-	case of handle_inferior_event.  This patch fixes the bug by ensuring
-	that the stop PC is set at this point.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use untested in gdb.debuginfod/fetch_src_and_symbols.exp
-	With running test-case gdb.debuginfod/fetch_src_and_symbols.exp with target
-	board unix/-bad, I get:
-	...
-	gcc: error: unrecognized command line option '-bad'^M
-	compiler exited with status 1
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	FAIL: gdb.debuginfod/fetch_src_and_symbols.exp: compile
-	...
-
-	Replace the FAIL with the usual:
-	...
-	UNTESTED: gdb.debuginfod/fetch_src_and_symbols.exp: failed to compile
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove redundant FAIL in gdb.base/info-os.exp
-	When running test-case gdb.base/info-os.exp with target board unix/-bad, I run
-	into:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	UNTESTED: gdb.base/info-os.exp: failed to prepare
-	FAIL: gdb.base/info-os.exp: cannot compile test program
-	...
-
-	Remove the redundant FAIL.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATE in gdb.base/info-os.exp
-	When running test-case gdb.base/info-os.exp, I run into:
-	...
-	PASS: gdb.base/info-os.exp: get threads
-	PASS: gdb.base/info-os.exp: get threads
-	DUPLICATE: gdb.base/info-os.exp: get threads
-	...
-
-	Fix this not doing pass followed by exp_continue in gdb_test_multiple.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Check compilation result in gdb.dwarf2/dw2-opt-structptr.exp
-	When running test-case gdb.dwarf2/dw2-opt-structptr.exp with target board
-	unix/-bad, I get:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	UNTESTED: gdb.dwarf2/dw2-opt-structptr.exp: dw2-opt-structptr.exp
-	UNTESTED: gdb.dwarf2/dw2-opt-structptr.exp: failed to compile
-	ERROR: (dw2-opt-structptr) No such file or directory
-	UNRESOLVED: gdb.dwarf2/dw2-opt-structptr.exp: console: set print object on
-	...
-
-	Merge the two UNTESTEDs.
-
-	Fix the UNRESOLVED by checking result of compilation.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Check compilation result in gdb.base/structs.exp
-	When running test-case gdb.base/structs.exp with target board unix/-bad, I
-	get:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	UNTESTED: gdb.base/structs.exp: failed to prepare
-	ERROR: tcl error sourcing src/gdb/testsuite/gdb.base/structs.exp.
-	ERROR: can't read "use_gdb_stub": no such variable
-	...
-
-	Fix this by checking the compilation result.
-
-	Fix the resulting DUPLICATEs using with_test_prefix.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Prepare nodebug exec in gdb.base/cvexpr.exp
-	When running test-case gdb.base/cvexpr.exp with target board unix/-bad, I get:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	ERROR: tcl error sourcing src/gdb/testsuite/gdb.base/cvexpr.exp.
-	ERROR: can't read "use_gdb_stub": no such variable
-	...
-
-	This is triggered in a part of the test that claims to require no debug
-	information, but uses the exec containing either dwarf or ctf.
-
-	Fix this by preparing another executable compiled with nodebug, and using
-	that one instead.
-
-	Also use with_test_prefix to mark the nodebug part, such that we have:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	UNTESTED: gdb.base/cvexpr.exp: dwarf: failed to prepare
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	UNTESTED: gdb.base/cvexpr.exp: nodebug: failed to prepare
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATE in gdb.base/cvexpr.exp
-	Fix:
-	...
-	DUPLICATE: gdb.base/cvexpr.exp: ptype int * restrict
-	...
-	using with_test_prefix.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Check compilation result in gdb.base/call-sc.exp
-	When running test-case gdb.base/call-sc.exp with target board unix/-bad, I
-	get:
-	...
-	gdb compile failed, gcc: error: unrecognized command line option '-bad'
-	UNTESTED: gdb.base/call-sc.exp: failed to prepare
-	ERROR: tcl error sourcing src/gdb/testsuite/gdb.base/call-sc.exp.
-	ERROR: can't read "use_gdb_stub": no such variable
-	...
-
-	Fix this by checking the compilation result.
-
-	Fix the resulting DUPLICATE:
-	...
-	DUPLICATE: gdb.base/call-sc.exp: failed to prepare
-	...
-	using with_test_prefix.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix untested messages in gdb.mi/*.exp
-	The effect of:
-	...
-	untested "y.exp"
-	...
-	in a gdb.x/y.exp is:
-	...
-	UNTESTED: gdb.x/y.exp: y.exp
-	...
-	which is a bit pointless.
-
-	Replace these untested messages in gdb.mi/*.exp with the usual "failed to
-	compile".
-
-	Likewise for an:
-	...
-	untested $testname
-	...
-	where the variable is undefined.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Nick Clifton  <nickc@redhat.com>
-
-	make objcopy fail if it is asked to redefine symbols in an object file containing LTO information.
-		* objcopy.c (filter_symbols): Fail if attempting to dredefine
-		symbols in an LTO object file.
-
-2021-09-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix full buffer in gdb.rust/dwindex.exp
-	On ubuntu 18.04.5, I run into:
-	...
-	(gdb) mt print objfiles dwindex^M
-	^M
-	Object file build/gdb/testsuite/outputs/gdb.rust/dwindex/dwindex:  \
-	  Objfile at 0x55dab0b87a50, bfd at 0x55dab0b0cfa0, 1095 minsyms^M
-	^M
-	Psymtabs:^M
-	vendor/compiler_builtins/src/int/specialized_div_rem/mod.rs at 0x55dab0db0720^M
-	  ...
-	library/std/src/sys/unix/stdio.rs at 0x55dab0d96320^M
-	ERROR: internal buffer is full.
-	UNRESOLVED: gdb.rust/dwindex.exp: check if index present
-	...
-
-	Fix this by using -lbl in proc ensure_gdb_index.
-
-	Tested on x86_64-linux.
-
-2021-09-30  Libor Bukata  <libor.bukata@oracle.com>
-
-	Add Solaris specific ELF note processing
-	Add elfcore_grok_solaris_note function that enables to
-	obtain process status, register values, and program info
-	from Solaris's core files.
-
-	bfd/
-		* elf.c (elfcore_grok_solaris_note): Solaris specific ELF
-		note parser. Better GDB's coredump analysis on Solaris...
-		(elfcore_grok_solaris_note_impl): New function.
-		(elfcore_grok_solaris_prstatus): New function.
-		(elfcore_grok_solaris_info): New function.
-		(elfcore_grok_solaris_lwpstatus): New function.
-		(elf_parse_notes): Added "CORE" groker element.
-	include/
-		* elf/common.h: Add note segment constants for core files on
-		Solaris systems.
-
-2021-09-30  Frederic Cambus  <fred@statdns.com>
-
-	Add support to readelf for reading OpenBSD ELF core notes.
-		* readelf.c (get_openbsd_elfcore_note_type): New function.
-		(process_note): Add support for OpenBSD core notes.
-
-2021-09-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/break-interp.exp for ld.so without debug
-	When running test-case gdb.base/break-interp.exp on openSUSE Leap 42.3, I get:
-	...
-	(gdb) info addr dl_main^M
-	Symbol "dl_main" is at 0x1750 in a file compiled without debugging.^M
-	(gdb) FAIL: gdb.base/break-interp.exp: info addr dl_main
-	...
-	while the regexp expects "Symbol \"dl_main\" is a function at address $hex\\."
-
-	Fix this by also accepting this variant.
-
-	Tested on x86_64-linux.
-
-2021-09-29  H.J. Lu  <hjl.tools@gmail.com>
-
-	Add a testcase for PR binutils/27202
-		PR binutils/27202
-		* testsuite/gas/elf/dwarf-5-loc0.d: New file.
-		* testsuite/gas/elf/dwarf-5-loc0.s: Likewise.
-		* testsuite/gas/elf/elf.exp: Run dwarf-5-loc0.
-
-2021-09-29  Pedro Alves  <pedro@palves.net>
-
-	Fix gdb.multi/multi-term-settings.exp race
-	The gdb.multi/multi-term-settings.exp testcase sometimes fails like so:
-
-	 Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.multi/multi-term-settings.exp ...
-	 FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: stop with control-c (SIGINT)
-
-	It's easier to reproduce if you stress the machine at the same time, like e.g.:
-
-	  $ stress -c 24
-
-	Looking at gdb.log, we see:
-
-	 (gdb) attach 60422
-	 Attaching to program: build/gdb/testsuite/outputs/gdb.multi/multi-term-settings/multi-term-settings, process 60422
-	 [New Thread 60422.60422]
-	 Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...
-	 Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/libc-2.31.so...
-	 Reading symbols from /lib64/ld-linux-x86-64.so.2...
-	 (No debugging symbols found in /lib64/ld-linux-x86-64.so.2)
-	 0x00007f2fc2485334 in __GI___clock_nanosleep (clock_id=<optimized out>, clock_id@entry <mailto:clock_id@entry>=0, flags=flags@entry <mailto:flags@entry>=0, req=req@entry <mailto:req@entry>=0x7ffe23126940, rem=rem@entry <mailto:rem@entry>=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
-	 78	../sysdeps/unix/sysv/linux/clock_nanosleep.c: No such file or directory.
-	 (gdb) PASS: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: inf2: attach
-	 set schedule-multiple on
-	 (gdb) PASS: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: set schedule-multiple on
-	 info inferiors
-	   Num  Description       Connection                         Executable
-	   1    process 60404     1 (extended-remote localhost:2349) build/gdb/testsuite/outputs/gdb.multi/multi-term-settings/multi-term-settings
-	 * 2    process 60422     1 (extended-remote localhost:2349) build/gdb/testsuite/outputs/gdb.multi/multi-term-settings/multi-term-settings
-	 (gdb) PASS: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: info inferiors
-	 pid=60422, count=46
-	 pid=60422, count=47
-	 pid=60422, count=48
-	 pid=60422, count=49
-	 pid=60422, count=50
-	 pid=60422, count=51
-	 pid=60422, count=52
-	 pid=60422, count=53
-	 pid=60422, count=54
-	 pid=60422, count=55
-	 pid=60422, count=56
-	 pid=60422, count=57
-	 pid=60422, count=58
-	 pid=60422, count=59
-	 pid=60422, count=60
-	 pid=60422, count=61
-	 pid=60422, count=62
-	 pid=60422, count=63
-	 pid=60422, count=64
-	 pid=60422, count=65
-	 pid=60422, count=66
-	 pid=60422, count=67
-	 pid=60422, count=68
-	 pid=60422, count=69
-	 pid=60404, count=54
-	 pid=60404, count=55
-	 pid=60404, count=56
-	 pid=60404, count=57
-	 pid=60404, count=58
-	 PASS: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: continue
-	 Quit
-	 (gdb) FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: stop with control-c (SIGINT)
-
-	If you look at the testcase's sources, you'll see that the intention
-	is to resumes the program with "continue", wait to see a few of those
-	"pid=..., count=..." lines, and then interrupt the program with
-	Ctrl-C.  But somehow, that resulted in GDB printing "Quit", instead of
-	the Ctrl-C stopping the program with SIGINT.
-
-	Here's what is happening:
-
-	 #1 - those "pid=..., count=..." lines we see above weren't actually
-	      output by the inferior after it has been continued (see #1).
-	      Note that "inf1_how" and "inf2_how" are "attach".  What happened
-	      is that those "pid=..., count=..." lines were output by the
-	      inferiors _before_ they were attached to.  We see them at that
-	      point instead of earlier, because that's where the testcase
-	      reads from the inferiors' spawn_ids.
-
-	 #2 - The testcase mistakenly thinks those "pid=..., count=..." lines
-	      happened after the continue was processed by GDB, meaning it has
-	      waited enough, and so sends the Ctrl-C.  GDB hasn't yet passed
-	      the terminal to the inferior, so the Ctrl-C results in that
-	      Quit.
-
-	The fix here is twofold:
-
-	 #1 - flush inferior output right after attaching
-
-	 #2 - consume the "Continuing" printed by "continue", indicating the
-	      inferior has the terminal.  This is the same as done throughout
-	      the testsuite to handle this exact problem of sending Ctrl-C too
-	      soon.
-
-	gdb/testsuite/ChangeLog:
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net <mailto:pedro@palves.net>>
-
-		* gdb.multi/multi-term-settings.exp (create_inferior): Flush
-		inferior output.
-		(coretest): Use $gdb_test_name.  After issuing "continue", wait
-		for "Continuing".
-
-	Change-Id: Iba7671dfe1eee6b98d29cfdb05a1b9aa2f9defb9
-
-2021-09-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Disable vgdb tests if xml not supported
-	I build gdb without xml support using --without-expat, and ran into:
-	...
-	(gdb) target remote | vgdb --wait=2 --max-invoke-ms=2500 --pid=22032^M
-	Remote debugging using | vgdb --wait=2 --max-invoke-ms=2500 --pid=22032^M
-	relaying data between gdb and process 22032^M
-	warning: Can not parse XML target description; XML support was disabled at \
-	  compile time^M
-	  ...
-	(gdb) PASS: gdb.base/valgrind-infcall.exp: continue #1
-	p gdb_test_infcall ()^M
-	Remote 'g' packet reply is too long (expected 560 bytes, got 800 bytes): ...^M
-	(gdb) FAIL: gdb.base/valgrind-infcall.exp: p gdb_test_infcall ()
-	...
-
-	After googling the error message with context valgrind gdbserver, I found
-	indications that the Remote 'g' packet reply error is due to missing xml
-	support.
-
-	And here ( https://www.valgrind.org/docs/manual/manual-core-adv.html ) I
-	found:
-	...
-	GDB version needed for ARM and PPC32/64.
-
-	You must use a GDB version which is able to read XML target description sent
-	by a gdbserver.  This is the standard setup if GDB was configured and built
-	with the "expat" library.  If your GDB was not configured with XML support, it
-	will report an error message when using the "target" command.  Debugging will
-	not work because GDB will then not be able to fetch the registers from the
-	Valgrind gdbserver.
-	...
-
-	So I guess I'm running into the same problem for x86_64.
-
-	Fix this by skipping all gdb.base/valgrind-*.exp tests if xml support is not
-	available.  Although only the gdb.base/valgrind-infcall*.exp produce fails,
-	the Remote 'g' packet reply error occurs in all tests, so it seems prudent to
-	disable them all.
-
-	Tested on x86_64-linux.
-
-2021-09-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-breakpoint.exp with python 2
-	With a gdb build using python 2.7, I run into:
-	...
-	(gdb) python \
-	  gdb.events.breakpoint_modified.connect(lambda bp: print(bp.enabled))^M
-	  File "<string>", line 1^M
-	    gdb.events.breakpoint_modified.connect(lambda bp: print(bp.enabled))^M
-	                                                          ^^M
-	SyntaxError: invalid syntax^M
-	Error while executing Python code.^M
-	(gdb) FAIL: gdb.python/py-breakpoint.exp: test_bkpt_auto_disable: \
-	  trap breakpoint_modified event
-	...
-
-	This is caused by the following:
-	- a lambda function body needs to be an expression
-	- in python 2, print is a statement, while in python 3 it's a function
-	- a function call is an expression, and a statement is not.
-
-	Fix this by defining a function print_bp_enabled:
-	...
-	def print_bp_enabled (bp):
-	    print (bp.enabled)
-	end
-	...
-	and using that instead.
-
-	Tested on x86_64-linux.
-
-2021-09-29  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix breakpoint detection in gdb.gdb/python-helper.exp
-	With a gdb configured to be somewhat minimal, while still supporting python:
-	...
-	$ gdb --configuration
-	This GDB was configured as follows:
-	   configure --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
-	             --with-auto-load-dir=$debugdir:$datadir/auto-load
-	             --with-auto-load-safe-path=$debugdir:$datadir/auto-load
-	             --without-expat
-	             --with-gdb-datadir=$install/share/gdb (relocatable)
-	             --with-jit-reader-dir=$install/lib64/gdb (relocatable)
-	             --without-libunwind-ia64
-	             --without-lzma
-	             --without-babeltrace
-	             --without-intel-pt
-	             --with-mpfr
-	             --without-xxhash
-	             --with-python=/usr
-	             --with-python-libdir=/usr/lib
-	             --with-debuginfod
-	             --without-guile
-	             --disable-source-highlight
-	             --with-separate-debug-dir=/usr/lib/debug
-	             --with-system-gdbinit=$devel/system-gdbinit
-	...
-	and using gcc 4.8 to build gdb (causing std::thread not to be used due to
-	PR28318) I ran into:
-	...
-	(gdb) PASS: gdb.gdb/python-helper.exp: start inner gdb
-	print 1^M
-	^M
-	Breakpoint 2, value_print () at src/gdb/valprint.c:1174^M
-	1174      scoped_value_mark free_values;^M
-	(xgdb) FAIL: gdb.gdb/python-helper.exp: hit breakpoint in inner gdb (timeout)
-	...
-
-	The problem is that the regexp expects "hit Breakpoint $decimal".  The "hit"
-	part is missing.
-
-	The "hit" is printed by maybe_print_thread_hit_breakpoint, when
-	show_thread_that_caused_stop returns true:
-	...
-	int
-	show_thread_that_caused_stop (void)
-	{
-	  return highest_thread_num > 1;
-	}
-	...
-	Apparently, that's not the case.
-
-	Fix this by removing "hit" from the regexp, making the regexp more similar to
-	what is used in say, continue_to_breakpoint.
-
-	Tested on x86_64-linux.
-
-2021-09-29  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: fix build when libbacktrace and execinfo backtrace are not available
-	In this commit:
-
-	  commit abbbd4a3e0ca51132e7fb31a43f896d29894dae0
-	  Date:   Wed Aug 11 13:24:33 2021 +0100
-
-	      gdb: use libbacktrace to create a better backtrace for fatal signals
-
-	The build of GDB was broken iff, the execinfo backtrace API is not
-	available, and, libbacktrace is either disabled, or not usable.  In
-	this case you'll see build errors like this:
-
-	      CXX    bt-utils.o
-	    /home/username/src/binutils-gdb/gdb/bt-utils.c: In function 'void gdb_internal_backtrace()':
-	    /home/username/src/binutils-gdb/gdb/bt-utils.c:165:5: error: 'gdb_internal_backtrace_1' was not declared in this scope
-	         gdb_internal_backtrace_1 ();
-	         ^~~~~~~~~~~~~~~~~~~~~~~~
-
-	This commit fixes the issue by guarding the call to
-	gdb_internal_backtrace_1 with '#ifdef GDB_PRINT_INTERNAL_BACKTRACE',
-	which is only defined when one of the backtrace libraries are
-	available.
-
-2021-09-29  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/doc: use 'standard error stream' instead of 'stderr' in some places
-	With this commit:
-
-	  commit 91f2597bd24d171c1337a4629f8237aa47c59082
-	  Date:   Thu Aug 12 18:24:59 2021 +0100
-
-	      gdb: print backtrace for internal error/warning
-
-	I included some references to 'stderr', which, it was pointed out,
-	would be better written as 'standard error stream'.  See:
-
-	  https://sourceware.org/pipermail/gdb-patches/2021-September/182225.html
-
-	This commit replaces the two instances of 'stderr' that I introduced.
-
-2021-09-29  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: fix manor -> manner typo in some comments
-	In a recent commit I used 'manor' in some comments rather than
-	'manner'.  This commit fixes those two mistakes.
-
-	I also looked through the gdb/ tree and found one additional instance
-	of this mistake that this commit also fixes.
-
-2021-09-29  Alan Modra  <amodra@gmail.com>
-
-	PR27202, readelf -wL doesn't work on ".loc 0"
-	For DWARF revision 4 and earlier, display_debug_lines_decoded
-	populates the file_table array with entries read from .debug_line
-	after the directory table.  file_table[0] contains the first entry.
-	DWARF rev 4 line number programs index this entry as file number one.
-	DWARF revision 5 changes .debug_line format quite extensively, and in
-	particular gives file number zero a meaning.
-
-		PR 27202
-		* dwarf.c (display_debug_lines_decoded): Correct indexing used
-		for DWARF5 files.
-
-2021-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: enable target_async around stop_all_threads call in process_initial_stop_replies
-	The following scenario hangs:
-
-	 - maint set target-non-stop on
-	 - `gdbserver --attach`
-	 - a multi-threaded program
-
-	For example:
-
-	Terminal 1:
-
-	    $ gnome-calculator&
-	    [1] 495731
-	    $ ../gdbserver/gdbserver --once --attach :1234 495731
-	    Attached; pid = 495731
-	    Listening on port 1234
-
-	Terminal 2:
-
-	    $ ./gdb -nx -q --data-directory=data-directory /usr/bin/gnome-calculator -ex "maint set target-non-stop on" -ex "tar rem :1234"
-	    Reading symbols from /usr/bin/gnome-calculator...
-	    (No debugging symbols found in /usr/bin/gnome-calculator)
-	    Remote debugging using :1234
-	    * hangs *
-
-	What happens is:
-
-	 - The protocol between gdb and gdbserver is in non-stop mode, but the
-	   user-visible behavior is all-stop
-	 - On connect, gdbserver sends one stop reply for one thread that is
-	   stops, the others stay running
-	 - In process_initial_stop_replies, gdb calls stop_all_threads to stop
-	   these other threads, because we are using the all-stop user-visible
-	   mode
-	 - stop_all_threads sends a stop request for all the running threads and
-	   then waits for resulting events
-	 - At this point, the remote target is in target_async(0) mode, which
-	   makes stop_all_threads not consider it for events
-	 - stop_all_threads loops indefinitely (it does not even block
-	   indefinitely, it is in an infinite busy loop) because there are no
-	   event sources.  wait_one_event returns a TARGET_WAITKIND_NO_RESUMED
-	   wait status.
-
-	Fix that by making the remote target async around the stop_all_threads
-	call.
-
-	I haven't implemented it because I'm not sure how to do it, but I think
-	it would be a good idea to have, in stop_all_threads / wait_one /
-	handle_one, an assert to check that if we are expecting one or more
-	event, then there are some targets that are in a state where they can
-	supply some events.  Otherwise, we'll necessarily be stuck in this
-	infinite loop, and it's probably due to a bug in GDB.  I'm not too sure
-	where to put this or how to express it though.  Perhaps in
-	stop_all_threads, here:
-
-		  for (int i = 0; i < waits_needed; i++)
-		    {
-		      wait_one_event event = wait_one ();
-		      *here*
-		      if (handle_one (event))
-			break;
-		    }
-
-	If at that point, the returned event is TARGET_WAITKIND_NO_RESUMED,
-	there's a problem.  We expect some event, because we've asked some
-	threads to stop, but all targets are answering that they won't have any
-	events for us.  That's a contradiction, and a sign that something has
-	gone wrong.  It could perhaps event be:
-
-	    gdb_assert (event.ws.kind != TARGET_WAITKIND_NO_RESUMED);
-
-	in handle_one, as the idea is the same in prepare_for_detach.
-
-	A bit more sophisticated would be: we know which targets we are
-	expecting waits from, since we know which threads we have asked to
-	stop.  So if any of these targets returns TARGET_WAITKIND_NO_RESUMED,
-	something is fishy.
-
-	Add a test that tests attaching with gdbserver's --attach flag to a
-	multi-threaded program, and then connecting to it.  Without the fix, the
-	test reproduces the hang.
-
-	Change-Id: If6f6690a4887ca66693ef1af64791dda4c65f24f
-
-2021-09-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix darwin-nat build (again)
-	I made a mistake in the previous patch.  Adjust the format string to
-	match the arguments.
-
-	Change-Id: I4d45e0e0adb78eb3b5a06ba1a5287155940056ba
-
-2021-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix darwin-nat build
-	There are two errors of this kind:
-
-	      CXX    darwin-nat.o
-	    /Users/smarchi/src/binutils-gdb/gdb/darwin-nat.c:1175:19: error: format specifies type 'unsigned long' but the argument has type 'ULONGEST' (aka 'unsigned long long') [-Werror,-Wformat]
-		 ptid.pid (), ptid.tid ());
-			      ^~~~~~~~~~~
-
-	Fix them by using ptid_t's to_string method.
-
-	Change-Id: I52087d5f7ee0fc01ac8b3f87d4db0217cb0d7cc7
-
-2021-09-29  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb.base/foll-fork.exp: accept "info breakpoints" output in any order
-	The test currently requires the "inf 1" breakpoint to be before the "inf
-	2" breakpoint.  This is not always the case:
-
-	    info breakpoints 2
-	    Num     Type           Disp Enb Address            What
-	    2       breakpoint     keep y   <MULTIPLE>
-	    2.1                         y   0x0000555555554730 in callee at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/foll-fork.c:9 inf 2
-	    2.2                         y   0x0000555555554730 in callee at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/foll-fork.c:9 inf 1
-	    (gdb) FAIL: gdb.base/foll-fork.exp: follow-fork-mode=parent: detach-on-fork=off: cmd=next 2: test_follow_fork: info breakpoints
-
-	Since add_location_to_breakpoint uses only the address as a criterion to
-	sort locations, the order of locations at the same address is not
-	stable: it will depend on the insertion order.  Here, the insertion
-	order comes from the order of SALs when creating the breakpoint, which
-	can vary from machine to machine.  While it would be more user-friendly
-	to have a more stable order for printed breakpoint locations, it doesn't
-	really matter for this test, and it would be hard to define an order
-	that will be the same everywhere, all the time.
-
-	So, loosen the regexp to accept "inf 1" and "inf 2" in any order.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-	Change-Id: I5ada2e0c6ad0669e0d161bfb6b767229c0970d16
-
-2021-09-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
-
-	RISC-V: Fix wrong version number when arch contains 'p'.
-	When specify a default version for p extension in
-	riscv_supported_std_ext[](elfxx-riscv.c) and assembling with
-	-march=rv32imacp, the c extension's version in attribute will become
-	0p0, the expectation is 2p0.
-
-	TODO: Remember to add testcase when we have supported standrad p in
-	the future.
-
-	bfd/
-		PR gas/28372
-		* elfxx-riscv.c (riscv_parsing_subset_version): Break if p
-		represent the 'p' extension.
-
-	Change-Id: Ia4e0cf26f3d7d07acaee8cefd86707ecac663a59
-
-2021-09-28  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Allow to add numbers in the prefixed extension names.
-	We need to allow adding numbers in the prefixed extension names, since
-	the zve<32,64><d,f,x> extensions are included in the forzen rvv v1.0 spec
-	recently.  But there are two restrictions as follows,
-
-	* The extension name ends with <number>p is invalid, since this may
-	be confused with extension with <number>.0 version.  We report errors
-	for this case.
-
-	Invalid format: [z|h|s|zvm|x][0-9a-z]+[0-9]+p
-
-	* The extension name ends with numbers is valid, but the numbers will
-	be parsed as major version, so try to avoid naming extensions like this.
-
-	bfd/
-		* elfxx-riscv.c (riscv_recognized_prefixed_ext): Renamed from
-		riscv_valid_prefixed_ext/
-		(riscv_parsing_subset_version): The extensions end with <number>p
-		is forbidden, we already report the detailed errors in the
-		riscv_parse_prefixed_ext, so clean the code and unused parameters.
-		(riscv_parse_std_ext): Updated.
-		(riscv_parse_prefixed_ext): Rewrite the parser to allow numbers
-		in the prefixed extension names.
-	gas/
-		* testsuite/gas/riscv/march-fail-invalid-x-01.d: New testcases.
-		* testsuite/gas/riscv/march-fail-invalid-x-02.d: Likewise.
-		* testsuite/gas/riscv/march-fail-invalid-z-01.d: Likewise.
-		* testsuite/gas/riscv/march-fail-invalid-z-02.d: Likewise.
-		* testsuite/gas/riscv/march-fail-invalid.l: Likewise.
-		* testsuite/gas/riscv/march-fail-version-x.d: Removed.
-		* testsuite/gas/riscv/march-fail-version-z.d: Likewise.
-		* testsuite/gas/riscv/march-fail-version.l: Likewise.
-
-2021-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: print backtrace for internal error/warning
-	This commit builds on previous work to allow GDB to print a backtrace
-	of itself when GDB encounters an internal-error or internal-warning.
-	This fixes PR gdb/26377.
-
-	There's not many places where we call internal_warning, and I guess in
-	most cases the user would probably continue their debug session.  And
-	so, in order to avoid cluttering up the output, by default, printing
-	of a backtrace is off for internal-warnings.
-
-	In contrast, printing of a backtrace is on by default for
-	internal-errors, as I figure that in most cases hitting an
-	internal-error is going to be the end of the debug session.
-
-	Whether a backtrace is printed or not can be controlled with the new
-	settings:
-
-	  maintenance set internal-error backtrace on|off
-	  maintenance show internal-error backtrace
-
-	  maintenance set internal-warning backtrace on|off
-	  maintenance show internal-warning backtrace
-
-	Here is an example of what an internal-error now looks like with the
-	backtrace included:
-
-	  (gdb) maintenance internal-error blah
-	  ../../src.dev-3/gdb/maint.c:82: internal-error: blah
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-	  ----- Backtrace -----
-	  0x5c61ca gdb_internal_backtrace_1
-	  	../../src.dev-3/gdb/bt-utils.c:123
-	  0x5c626d _Z22gdb_internal_backtracev
-	  	../../src.dev-3/gdb/bt-utils.c:165
-	  0xe33237 internal_vproblem
-	  	../../src.dev-3/gdb/utils.c:393
-	  0xe33539 _Z15internal_verrorPKciS0_P13__va_list_tag
-	  	../../src.dev-3/gdb/utils.c:470
-	  0x1549652 _Z14internal_errorPKciS0_z
-	  	../../src.dev-3/gdbsupport/errors.cc:55
-	  0x9c7982 maintenance_internal_error
-	  	../../src.dev-3/gdb/maint.c:82
-	  0x636f57 do_simple_func
-	  	../../src.dev-3/gdb/cli/cli-decode.c:97
-	   .... snip, lots more backtrace lines ....
-	  ---------------------
-	  ../../src.dev-3/gdb/maint.c:82: internal-error: blah
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-	  Quit this debugging session? (y or n) y
-
-	  This is a bug, please report it.  For instructions, see:
-	  <https://www.gnu.org/software/gdb/bugs/>.
-
-	  ../../src.dev-3/gdb/maint.c:82: internal-error: blah
-	  A problem internal to GDB has been detected,
-	  further debugging may prove unreliable.
-	  Create a core file of GDB? (y or n) n
-
-	My hope is that this backtrace might make it slightly easier to
-	diagnose GDB issues if all that is provided is the console output, I
-	find that we frequently get reports of an assert being hit that is
-	located in pretty generic code (frame.c, value.c, etc) and it is not
-	always obvious how we might have arrived at the assert.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26377
-
-2021-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: use libbacktrace to create a better backtrace for fatal signals
-	GDB recently gained the ability to print a backtrace when a fatal
-	signal is encountered.  This backtrace is produced using the backtrace
-	and backtrace_symbols_fd API available in glibc.
-
-	However, in order for this API to actually map addresses to symbol
-	names it is required that the application (GDB) be compiled with
-	-rdynamic, which GDB is not by default.
-
-	As a result, the backtrace produced often looks like this:
-
-	  Fatal signal: Bus error
-	  ----- Backtrace -----
-	  ./gdb/gdb[0x80ec00]
-	  ./gdb/gdb[0x80ed56]
-	  /lib64/libc.so.6(+0x3c6b0)[0x7fc2ce1936b0]
-	  /lib64/libc.so.6(__poll+0x4f)[0x7fc2ce24da5f]
-	  ./gdb/gdb[0x15495ba]
-	  ./gdb/gdb[0x15489b8]
-	  ./gdb/gdb[0x9b794d]
-	  ./gdb/gdb[0x9b7a6d]
-	  ./gdb/gdb[0x9b943b]
-	  ./gdb/gdb[0x9b94a1]
-	  ./gdb/gdb[0x4175dd]
-	  /lib64/libc.so.6(__libc_start_main+0xf3)[0x7fc2ce17e1a3]
-	  ./gdb/gdb[0x4174de]
-	  ---------------------
-
-	This is OK if you have access to the exact same build of GDB, you can
-	manually map the addresses back to symbols, however, it is next to
-	useless if all you have is a backtrace copied into a bug report.
-
-	GCC uses libbacktrace for printing a backtrace when it encounters an
-	error.  In recent commits I added this library into the binutils-gdb
-	repository, and in this commit I allow this library to be used by
-	GDB.  Now (when GDB is compiled with debug information) the backtrace
-	looks like this:
-
-	  ----- Backtrace -----
-	  0x80ee08 gdb_internal_backtrace
-	  	../../src/gdb/event-top.c:989
-	  0x80ef0b handle_fatal_signal
-	  	../../src/gdb/event-top.c:1036
-	  0x7f24539dd6af ???
-	  0x7f2453a97a5f ???
-	  0x154976f gdb_wait_for_event
-	  	../../src/gdbsupport/event-loop.cc:613
-	  0x1548b6d _Z16gdb_do_one_eventv
-	  	../../src/gdbsupport/event-loop.cc:237
-	  0x9b7b02 start_event_loop
-	  	../../src/gdb/main.c:421
-	  0x9b7c22 captured_command_loop
-	  	../../src/gdb/main.c:481
-	  0x9b95f0 captured_main
-	  	../../src/gdb/main.c:1353
-	  0x9b9656 _Z8gdb_mainP18captured_main_args
-	  	../../src/gdb/main.c:1368
-	  0x4175ec main
-	  	../../src/gdb/gdb.c:32
-	  ---------------------
-
-	Which seems much more useful.
-
-	Use of libbacktrace is optional.  If GDB is configured with
-	--disable-libbacktrace then the libbacktrace directory will not be
-	built, and GDB will not try to use this library.  In this case GDB
-	would try to use the old backtrace and backtrace_symbols_fd API.
-
-	All of the functions related to writing the backtrace of GDB itself
-	have been moved into the new files gdb/by-utils.{c,h}.
-
-2021-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	src-release.sh: add libbacktrace to GDB_SUPPORT_DIRS
-	After the previous commit that imported libbacktrace from gcc, this
-	commit updates src-release.sh so that the libbacktrace directory is
-	included in the gdb release tar file.
-
-	ChangeLog:
-
-		* src-release.sh (GDB_SUPPPORT_DIRS): Add libbacktrace.
-
-2021-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	Copy in libbacktrace from gcc
-	This copies in libbacktrace from the gcc repository as it was in the
-	commit 62e420293a293608f383d9b9c7f2debd666e9fc9.  GDB is going to
-	start using this library soon.
-
-	A dependency between GDB and libbacktrace has already been added to
-	the top level Makefile, so, after this commit, when building GDB,
-	libbacktrace will be built first.  However, libbacktrace is not yet
-	linked into GDB, or used by GDB in any way.
-
-	It is possible to stop libbacktrace being built by configuring the
-	tree with --disable-libbacktrace.
-
-	This commit does NOT update src-release.sh, that will be done in the
-	next commit, this commit ONLY imports libbacktrace from gcc.  This
-	means that if you try to make a release of GDB from exactly this
-	commit then the release tar file will not include libbacktrace.
-	However, as libbacktrace is an optional dependency this is fine.
-
-2021-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: Add a dependency between gdb and libbacktrace
-	GDB is going to start using libbacktrace, so add a build dependency.
-
-	ChangeLog:
-
-		* Makefile.def: Add all-gdb dependency on all-libbacktrace.
-		* Makefile.in: Regenerate.
-
-2021-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	top-level configure: setup target_configdirs based on repository
-	The top-level configure script is shared between the gcc repository
-	and the binutils-gdb repository.
-
-	The target_configdirs variable in the configure.ac script, defines
-	sub-directories that contain components that should be built for the
-	target using the target tools.
-
-	Some components, e.g. zlib, are built as both host and target
-	libraries.
-
-	This causes problems for binutils-gdb.  If we run 'make all' in the
-	binutils-gdb repository we end up trying to build a target version of
-	the zlib library, which requires the target compiler be available.
-	Often the target compiler isn't immediately available, and so the
-	build fails.
-
-	The problem with zlib impacted a previous attempt to synchronise the
-	top-level configure scripts from gcc to binutils-gdb, see this thread:
-
-	  https://sourceware.org/pipermail/binutils/2019-May/107094.html
-
-	And I'm in the process of importing libbacktrace in to binutils-gdb,
-	which is also a host and target library, and triggers the same issues.
-
-	I believe that for binutils-gdb, at least at the moment, there are no
-	target libraries that we need to build.
-
-	In the configure script we build three lists of things we want to
-	build, $configdirs, $build_configdirs, and $target_configdirs, we also
-	build two lists of things we don't want to build, $skipdirs and
-	$noconfigdirs.  We then remove anything that is in the lists of things
-	not to build, from the list of things that should be built.
-
-	My proposal is to add everything in target_configdirs into skipdirs,
-	if the source tree doesn't contain a gcc/ sub-directory.  The result
-	is that for binutils-gdb no target tools or libraries will be built,
-	while for the gcc repository, nothing should change.
-
-	If a user builds a unified source tree, then the target tools and
-	libraries should still be built as the gcc/ directory will be present.
-
-	I've tested a build of gcc on x86-64, and the same set of target
-	libraries still seem to get built.  On binutils-gdb this change
-	resolves the issues with 'make all'.
-
-	ChangeLog:
-
-		* configure: Regenerate.
-		* configure.ac (skipdirs): Add the contents of target_configdirs if
-		we are not building gcc.
-
-2021-09-28  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>
-
-	PR28391, strip/objcopy --preserve-dates *.a: cannot set time
-	After commit 985e0264516 copy_archive function began to pass invalid
-	values to the utimensat(2) function when it tries to preserve
-	timestamps in ar archives.  This happens because the bfd_stat_arch_elt
-	implementation for ar archives fills only the st_mtim.tv_sec part of
-	the st_mtim timespec structure, but leaves the st_mtim.tv_nsec part
-	and the whole st_atim timespec untouched leaving them uninitialized
-
-		PR 28391
-		* ar.c (extract_file): Clear buf for preserve_dates.
-		* objcopy.c (copy_archive): Likewise.
-
-2021-09-28  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: drop weak func attrs on module inits
-	When I first wrote this, I was thinking we'd scan all source files
-	that existed and generate a complete init list.  That means for any
-	particular build, we'd probably have a few functions that didn't
-	exist, so weak attributes was necessary.  What I ended up scanning
-	though was only the source files that went into a particular build.
-
-	There was another concern too: a source file might be included, but
-	the build settings would cause all of its contents to be skipped
-	(via CPP defines).  So scanning via naive grep would pick up names
-	not actually available.  A check of the source tree shows that we
-	never do this, and it's pretty easy to institute a policy that we
-	don't start (by at the very least including a stub init func).
-
-	The use of weak symbols ends up causing a problem in practice: for
-	a few modules (like profiling), nothing else pulls it in, so the
-	linker omits it entirely, which leads to the profiling module never
-	being available.  So drop the weak markings since we know all these
-	funcs will be available.
-
-2021-09-28  Cui,Lili  <lili.cui@intel.com>
-
-	x86: Print {bad} on invalid broadcast in OP_E_memory
-	Don't print broadcast for scalar_mode, and print {bad} for invalid broadcast.
-
-	gas/
-
-		PR binutils/28381
-		* testsuite/gas/i386/bad-bcast.s: Add a new testcase.
-		* testsuite/gas/i386/bad-bcast.d: Likewise.
-		* testsuite/gas/i386/bad-bcast-intel.d: New.
-
-	opcodes/
-
-		PR binutils/28381
-		* i386-dis.c (static struct): Add no_broadcast.
-		(OP_E_memory): Mark invalid broadcast with no_broadcast=1 and Print "{bad}"for it.
-		(intel_operand_size): mark invalid broadcast with no_broadcast=1.
-		(OP_XMM): Mark scalar_mode with no_broadcast=1.
-
-2021-09-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use intrusive_list for linux-nat lwp_list
-	Replace the manually maintained linked list of lwp_info objects with
-	intrusive_list.  Replace the ALL_LWPS macro with all_lwps, which returns
-	a range.  Add all_lwps_safe as well, for use in iterate_over_lwps, which
-	currently iterates in a safe manner.
-
-	Change-Id: I355313502510acc0103f5eaf2fbde80897d6376c
-
-2021-09-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add destructor to lwp_info
-	Replace the lwp_free function with a destructor.  Make lwp_info
-	non-copyable, since there is now a destructor (we wouldn't want an
-	lwp_info object getting copied and this->arch_private getting deleted
-	twice).
-
-	Change-Id: I09fcbe967e362566d3a06fed2abca2a9955570fa
-
-2021-09-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make lwp_info non-POD
-	Initialize all fields in the class declaration directly.  This opens the
-	door to using intrusive_list, done in the following patch.
-
-	Change-Id: I38bb27410cd9ebf511d310bb86fe2ea1872c3b05
-
-2021-09-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb: don't share aspace/pspace on fork with "detach-on-fork on" and "follow-fork-mode child"
-	We found that when handling forks, two inferiors can unexpectedly share
-	their program space and address space.  To reproduce:
-
-	 1. Using a test program that forks...
-	 2. "set follow-fork-mode child"
-	 3. "set detach-on-fork on" (the default)
-	 4. run to a breakpoint somewhere after the fork
-
-	Step 4 should have created a new inferior:
-
-	    (gdb) info inferiors
-	      Num  Description       Connection           Executable
-	      1    <null>                                 /home/smarchi/build/wt/amd/gdb/fork
-	    * 2    process 251425    1 (native)           /home/smarchi/build/wt/amd/gdb/fork
-
-	By inspecting the state of GDB, we can see that the two inferiors now
-	share one program space and one address space:
-
-	Inferior 1:
-
-	    (top-gdb) p inferior_list.m_front.num
-	    $2 = 1
-	    (top-gdb) p inferior_list.m_front.aspace
-	    $3 = (struct address_space *) 0x5595e2520400
-	    (top-gdb) p inferior_list.m_front.pspace
-	    $4 = (struct program_space *) 0x5595e2520440
-
-	Inferior 2:
-
-	    (top-gdb) p inferior_list.m_front.next.num
-	    $5 = 2
-	    (top-gdb) p inferior_list.m_front.next.aspace
-	    $6 = (struct address_space *) 0x5595e2520400
-	    (top-gdb) p inferior_list.m_front.next.pspace
-	    $7 = (struct program_space *) 0x5595e2520440
-
-	You can then run inferior 1 again and the two inferiors will still
-	erroneously share their spaces, but already at this point this is wrong.
-
-	The cause of the bad {a,p}space sharing is in follow_fork_inferior.
-	When following the child and detaching from the parent, we just re-use
-	the parent's spaces, rather than cloning them.  When we switch back to
-	inferior 1 and run again, we find ourselves with two unrelated inferiors
-	sharing spaces.
-
-	Fix that by creating new spaces for the parent after having moved them
-	to the child.  My initial implementation created new spaces for the
-	child instead.  Doing this breaks doing "next" over fork().  When "next"
-	start, we record the symtab of the starting location.  When the program
-	stops, we compare that symtab with the symtab the program has stopped
-	at.  If the symtab or the line number has changed, we conclude the
-	"next" is done.  If we create a new program space for the child and copy
-	the parent's program space to it with clone_program_space, it creates
-	new symtabs for the child as well.  When the child stop, but still on
-	the fork() line, GDB thinks the "next" is done because the symtab
-	pointers no longer match.  In reality they are two symtab instances that
-	represent the same file.  But moving the spaces to the child and
-	creating new spaces for the parent, we avoid this problem.
-
-	Note that the problem described above happens today with "detach-on-fork
-	off" and "follow-fork-mode child", because we create new spaces for the
-	child.  This will have to be addressed later.
-
-	Test-wise, improve gdb.base/foll-fork.exp to set a breakpoint that is
-	expected to have a location in each inferiors.  Without the fix, when
-	the two inferiors erroneously share a program space, GDB reports a
-	single location.
-
-	Change-Id: Ifea76e14f87b9f7321fc3a766217061190e71c6e
-
-2021-09-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.base/foll-fork.exp: use foreach_with_prefix to handle prefixes
-	No behavior change in the test expected, other than in the test names.
-
-	Change-Id: I111137483858ab0f23138439f2930009779a2b3d
-
-2021-09-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.base/foll-fork.exp: rename variables
-	Rename the variables / parameters used to match the corresponding GDB
-	setting name, I find that easier to follow.
-
-	Change-Id: Idcbddbbb369279fcf1e808b11a8c478f21b2a946
-
-2021-09-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.base/foll-fork.exp: refactor to restart GDB between each portion of the test
-	This test is difficult to follow and modify because the state of GDB is
-	preserved some tests.  Add a setup proc, which starts a new GDB and runs
-	to main, and use it in all test procs.  Use proc_with_prefix to avoid
-	duplicates.
-
-	The check_fork_catchpoints proc also seems used to check for follow-fork
-	support by checking if catchpoints are supported.  If they are not, it
-	uses "return -code return", which makes its caller return.  I find this
-	unnecessary complex, versus just returning a boolean.  Modify it to do
-	so.
-
-	Change-Id: I23e62b204286c5e9c5c86d2727f7d33fb126ed08
-
-2021-09-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.base/foll-fork.exp: remove gating based on target triplet
-	It looks like this test has some code to check at runtime the support of
-	fork handling of the target (see check_fork_catchpoints).  So, it seems
-	to me that the check based on target triplet at the beginning of the
-	test is not needed.  This kind of gating is generally not desirable,
-	because we wouldn't think of updating it when adding fork support to a
-	target.  For example, FreeBSD supports fork, but it wasn't listed here.
-
-	Change-Id: I6b55f2298edae6b37c3681fb8633d8ea1b5aabee
-
-2021-09-27  Simon Marchi  <simon.marchi@efficios.com>
-
-	gdb.base/foll-fork.exp: remove DUPLICATEs
-	Remove DUPLICATEs, and and at the same time replace two uses of
-	gdb_test_multiple with gdb_test.  I don't think using gdb_test_multiple
-	is necessary here.
-
-	Change-Id: I8dcf097c3364e92d4f0e11f0c0f05dbb88e86742
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf, lookup: fix bounds of pptrtab lookup
-	An off-by-one bug in the check for pptrtab lookup meant that we could
-	access the pptrtab past its bounds (*well* past its bounds),
-	particularly if we called ctf_lookup_by_name in a child dict with "*foo"
-	where "foo" is a type that exists in the parent but not the child and no
-	previous lookups by name have been carried out.  (Note that "*foo" is
-	not even a valid thing to call ctf_lookup_by_name with: foo * is.
-	Nonetheless, users sometimes do call ctf_lookup_by_name with invalid
-	content, and it should return ECTF_NOTYPE, not crash.)
-
-	ctf_pptrtab_len, as its name suggests (and as other tests of it in
-	ctf-lookup.c confirm), is one higher than the maximum valid permissible
-	index, so the comparison is wrong.
-
-	(Test added, which should fail pretty reliably in the presence of this
-	bug on any machine with 4KiB pages.)
-
-	libctf/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* ctf-lookup.c (ctf_lookup_by_name_internal): Fix pptrtab bounds.
-		* testsuite/libctf-writable/pptrtab-writable-page-deep-lookup.*:
-		New test.
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf, testsuite: fix various warnings in tests
-	These warnings are all off by default, but if they do fire you get
-	spurious ERRORs when running make check-libctf.
-
-	libctf/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* testsuite/libctf-lookup/enum-symbol.c: Remove unused label.
-		* testsuite/libctf-lookup/conflicting-type-syms.c: Remove unused
-		variables.
-		* testsuite/libctf-regression/pptrtab.c: Likewise.
-		* testsuite/libctf-regression/type-add-unnamed-struct.c: Likewise.
-		* testsuite/libctf-writable/pptrtab.c: Likewise.
-		* testsuite/libctf-writable/reserialize-strtab-corruption.c:
-		Likewise.
-		* testsuite/libctf-regression/nonstatic-var-section-ld-r.c: Fix
-		format string.
-		* testsuite/libctf-regression/nonstatic-var-section-ld.c:
-		Likewise.
-		* testsuite/libctf-regression/nonstatic-var-section-ld.lk: Adjust.
-		* testsuite/libctf-writable/symtypetab-nonlinker-writeout.c: Fix
-		initializer.
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: fix handling of CTF symtypetab sections emitted by older GCC
-	Older (pre-upstreaming) GCC emits a function symtypetab section of a
-	format never read by any extant libctf.  We can detect such CTF dicts by
-	the lack of the CTF_F_NEWFUNCINFO flag in their header, and we do so
-	when reading in the symtypetab section -- but if the set of symbols with
-	types is sufficiently sparse, even an older GCC will emit a function
-	index section.
-
-	In NEWFUNCINFO-capable compilers, this section will always be the exact
-	same length as the corresponding function section (each is an array of
-	uint32_t, associated 1:1 with each other). But this is not true for the
-	older compiler, for which the sections are different lengths.  We check
-	to see if the function symtypetab section and its index are the same
-	length, but we fail to skip this check when this is not a NEWFUNCINFO
-	dict, and emit a spurious corruption error for a CTF dict we could
-	have perfectly well opened and used.
-
-	Fix trivial: check the flag (and fix the terrible grammar of the error
-	message at the same time).
-
-	libctf/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* ctf-open.c (ctf_bufopen_internal): Don't complain about corrupt
-		function index symtypetab sections if this is an old-format
-		function symtypetab section (which should be ignored in any case).
-		Fix bad grammar.
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	configure: regenerate in all projects that use libtool.m4
-	(including sim/, which has no changelog.)
-
-	bfd/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-
-	binutils/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-
-	gas/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-
-	gprof/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-
-	ld/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-
-	libctf/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-		* Makefile.in: Regenerate.
-
-	opcodes/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-
-	zlib/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		* configure: Regenerate.
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: try several possibilities for linker versioning flags
-	Checking for linker versioning by just grepping ld --help output for
-	mentions of --version-script is inadequate now that Solaris 11.4
-	implements a --version-script with different semantics.  Try linking a
-	test program with a small wildcard-using version script with each
-	supported set of flags in turn, to make sure that linker versioning is
-	not only advertised but actually works.
-
-	The Solaris "GNU-compatible" linker versioning is not quite
-	GNU-compatible enough, but we can work around the differences by
-	generating a new version script that removes the comments from the
-	original (Solaris ld requires #-style comments), and making another
-	version script for libctf-nonbfd in particular which doesn't mention any
-	of the symbols that appear in libctf.la, to avoid Solaris ld introducing
-	corresponding new NOTYPE symbols to match the version script.
-
-	libctf/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		PR libctf/27967
-		* configure.ac (VERSION_FLAGS): Replace with...
-		(ac_cv_libctf_version_script): ... this multiple test.
-		(VERSION_FLAGS_NOBFD): Substitute this too.
-		* Makefile.am (libctf_nobfd_la_LDFLAGS): Use it.  Split out...
-		(libctf_ldflags_nover): ... non-versioning flags here.
-		(libctf_la_LDFLAGS): Use it.
-		* libctf.ver: Give every symbol not in libctf-nobfd a comment on
-		the same line noting as much.
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	libtool.m4: fix nm BSD flag detection
-	Libtool needs to get BSD-format (or MS-format) output out of the system
-	nm, so that it can scan generated object files for symbol names for
-	-export-symbols-regex support.  Some nms need specific flags to turn on
-	BSD-formatted output, so libtool checks for this in its AC_PATH_NM.
-	Unfortunately the code to do this has a pair of interlocking flaws:
-
-	 - it runs the test by doing an nm of /dev/null.  Some platforms
-	   reasonably refuse to do an nm on a device file, but before now this
-	   has only been worked around by assuming that the error message has a
-	   specific textual form emitted by Tru64 nm, and that getting this
-	   error means this is Tru64 nm and that nm -B would work to produce
-	   BSD-format output, even though the test never actually got anything
-	   but an error message out of nm -B.  This is fixable by nm'ing *nm
-	   itself* (since we necessarily have a path to it).
-
-	 - the test is entirely skipped if NM is set in the environment, on the
-	   grounds that the user has overridden the test: but the user cannot
-	   reasonably be expected to know that libtool wants not only nm but
-	   also flags forcing BSD-format output.  Worse yet, one such "user" is
-	   the top-level Cygnus configure script, which neither tests for
-	   nor specifies any BSD-format flags.  So platforms needing BSD-format
-	   flags always fail to set them when run in a Cygnus tree, breaking
-	   -export-symbols-regex on such platforms.  Libtool also needs to
-	   augment $LD on some platforms, but this is done unconditionally,
-	   augmenting whatever the user specified: the nm check should do the
-	   same.
-
-	   One wrinkle: if the user has overridden $NM, a path might have been
-	   provided: so we use the user-specified path if there was one, and
-	   otherwise do the path search as usual.  (If the nm specified doesn't
-	   work, this might lead to a few extra pointless path searches -- but
-	   the test is going to fail anyway, so that's not a problem.)
-
-	(Tested with NM unset, and set to nm, /usr/bin/nm, my-nm where my-nm is a
-	symlink to /usr/bin/nm on the PATH, and /not-on-the-path/my-nm where
-	*that* is a symlink to /usr/bin/nm.)
-
-	ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		PR libctf/27967
-		* libtool.m4 (LT_PATH_NM): Try BSDization flags with a user-provided
-		NM, if there is one.  Run nm on itself, not on /dev/null, to avoid
-		errors from nms that refuse to work on non-regular files.  Remove
-		other workarounds for this problem.  Strip out blank lines from the
-		nm output.
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	libtool.m4: augment symcode for Solaris 11
-	This reports common symbols like GNU nm, via a type code of 'C'.
-
-	ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		PR libctf/27967
-		* libtool.m4 (lt_cv_sys_global_symbol_pipe): Augment symcode for
-		Solaris 11.
-
-2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-	libctf: link against libiberty before linking in libbfd or libctf-nobfd
-	This ensures that the CTF_LIBADD, which always contains at least this
-	when doing a shared link:
-
-	-L`pwd`/../libiberty/pic -liberty
-
-	appears in the link line before any requirements pulled in by libbfd.la,
-	which include -liberty but because it is install-time do not include the
-	-L`pwd`/../libiberty/pic portion (in an indirect dep like this, the path
-	comes from the libbfd.la file, and is an install path).  libiberty also
-	appears after libbfd in the link line by virtue of libctf-nobfd.la,
-	because libctf-nobfd has to follow libbfd in the link line, and that
-	needs symbols from libiberty too.
-
-	Without this, an installed liberty might well be pulled in by libbfd,
-	and if --enable-install-libiberty is not specified this libiberty might
-	be completely incompatible with what is being installed and break either
-	or boht of libbfd and libctf. (The specific problem observed here is
-	that bsearch_r was not present, but other problems might easily be
-	observed in future too.)
-
-	Because ld links against libctf, this has a tendency to break the system
-	linker at install time too, if installing with --prefix=/usr.  That's
-	quite unpleasant to recover from.
-
-	libctf/ChangeLog
-	2021-09-27  Nick Alcock  <nick.alcock@oracle.com>
-
-		PR libctf/27360
-		* Makefile.am (libctf_la_LIBADD): Link against libiberty
-		before pulling in libbfd.la or pulling in libctf-nobfd.la.
-		* Makefile.in: Regenerate.
-
-2021-09-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build with g++-4.8
-	When building g++-4.8, we run into:
-	...
-	src/gdb/dwarf2/read.c:919:5: error: multiple fields in union \
-	  'partial_die_info::<anonymous union>' initialized
-	...
-
-	This is due to:
-	...
-	    union
-	    {
-	      struct
-	      {
-	       CORE_ADDR lowpc = 0;
-	       CORE_ADDR highpc = 0;
-	      };
-	      ULONGEST ranges_offset;
-	    };
-	...
-
-	The error looks incorrect, given that only one union member is initialized,
-	and does not reproduce with newer g++.
-
-	Nevertheless, work around this by moving the initialization to a constructor.
-
-	[ I considered just removing the initialization, with the idea that access
-	should be guarded by has_pc_info, but I ran into one failure in the testsuite,
-	for gdb.base/check-psymtab.exp due to add_partial_symbol using lowpc without
-	checking has_pc_info. ]
-
-	Tested on x86_64-linux.
-
-2021-09-27  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: add setting to disable reading source code files
-	In some situations it is possible that a user might not want GDB to
-	try and access source code files, for example, the source code might
-	be stored on a slow to access network file system.
-
-	It is almost certainly possible that using some combination of 'set
-	directories' and/or 'set substitute-path' a user can trick GDB into
-	being unable to find the source files, but this feels like a rather
-	crude way to solve the problem.
-
-	In this commit a new option is add that stops GDB from opening and
-	reading the source files.  A user can run with source code reading
-	disabled if this is required, then re-enable later if they decide
-	that they now want to view the source code.
-
-2021-09-27  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: remove duplicate cmd_list_element declarations
-	For some reason we have two locations where cmd_list_elements are
-	declared, cli/cli-cmds.h and gdbcmd.h.  Worse still there is
-	duplication between these two locations.
-
-	In this commit I have moved all of the cmd_list_element declarations
-	from gdbcmd.h into cli/cli-cmds.h and removed the duplicates.
-
-	There should be no user visible changes after this commit.
-
-2021-09-27  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: prevent an assertion when computing the frame_id for an inline frame
-	I ran into this assertion while GDB was trying to unwind the stack:
-
-	  gdb/inline-frame.c:173: internal-error: void inline_frame_this_id(frame_info*, void**, frame_id*): Assertion `frame_id_p (*this_id)' failed.
-
-	That is, when building the frame_id for an inline frame, GDB asks for
-	the frame_id of the previous frame.  Unfortunately, no valid frame_id
-	was returned for the previous frame, and so the assertion triggers.
-
-	What is happening is this, I had a stack that looked something like
-	this (the arrows '->' point from caller to callee):
-
-	  normal_frame -> inline_frame
-
-	However, for whatever reason (e.g. broken debug information, or
-	corrupted stack contents in the inferior), when GDB tries to unwind
-	"normal_frame", it ends up getting back effectively the same frame,
-	thus the call stack looks like this to GDB:
-
-	  .-> normal_frame -> inline_frame
-	  |     |
-	  '-----'
-
-	Given such a situation we would expect GDB to terminate the stack with
-	an error like this:
-
-	  Backtrace stopped: previous frame identical to this frame (corrupt stack?)
-
-	However, the inline_frame causes a problem, and here's why:
-
-	When unwinding we start from the sentinel frame and call
-	get_prev_frame.  We eventually end up in get_prev_frame_if_no_cycle,
-	in here we create a raw frame, and as this is frame #0 we immediately
-	return.
-
-	However, eventually we will try to unwind the stack further.  When we
-	do this we inevitably needing to know the frame_id for frame #0, and
-	so, eventually, we end up in compute_frame_id.
-
-	In compute_frame_id we first find the right unwinder for this frame,
-	in our case (i.e. for inline_frame) the $pc is within the function
-	normal_frame, but also within a block associated with the inlined
-	function inline_frame, as such the inline frame unwinder claims this
-	frame.
-
-	Back in compute_frame_id we next compute the frame_id, for our
-	inline_frame this means a call to inline_frame_this_id.
-
-	The ID of an inline frame is based on the id of the previous frame, so
-	from inline_frame_this_id we call get_prev_frame_always, this
-	eventually calls get_prev_frame_if_no_cycle again, which creates
-	another raw frame and calls compute_frame_id (for frames other than
-	frame 0 we immediately compute the frame_id).
-
-	In compute_frame_id we again identify the correct unwinder for this
-	frame.  Our $pc is unchanged, however, the fact that the next frame is
-	of type INLINE_FRAME prevents the inline frame unwinder from claiming
-	this frame again, and so, the standard DWARF frame unwinder claims
-	normal_frame.
-
-	We return to compute_frame_id and call the standard DWARF function to
-	build the frame_id for normal_frame.
-
-	With the frame_id of normal_frame figured out we return to
-	compute_frame_id, and then to get_prev_frame_if_no_cycle, where we add
-	the ID for normal_frame into the frame_id cache, and return the frame
-	back to inline_frame_this_id.
-
-	From inline_frame_this_id we build a frame_id for inline_frame and
-	return to compute_frame_id, and then to get_prev_frame_if_no_cycle,
-	which adds the frame_id for inline_frame into the frame_id cache.
-
-	So far, so good.
-
-	However, as we are trying to unwind the complete stack, we eventually
-	ask for the previous frame of normal_frame, remember, at this point
-	GDB doesn't know the stack is corrupted (with a cycle), GDB still
-	needs to figure that out.
-
-	So, we eventually end up in get_prev_frame_if_no_cycle where we create
-	a raw frame and call compute_frame_id, remember, this is for the frame
-	before normal_frame.
-
-	The first task for compute_frame_id is to find the unwinder for this
-	frame, so all of the frame sniffers are tried in order, this includes
-	the inline frame sniffer.
-
-	The inline frame sniffer asks for the $pc, this request is sent up the
-	stack to normal_frame, which, due to its cyclic behaviour, tells GDB
-	that the $pc in the previous frame was the same as the $pc in
-	normal_frame.
-
-	GDB spots that this $pc corresponds to both the function normal_frame
-	and also the inline function inline_frame.  As the next frame is not
-	an INLINE_FRAME then GDB figures that we have not yet built a frame to
-	cover inline_frame, and so the inline sniffer claims this new frame.
-	Our stack is now looking like this:
-
-	  inline_frame -> normal_frame -> inline_frame
-
-	But, we have not yet computed the frame id for the outer most (on the
-	left) inline_frame.  After the frame sniffer has claimed the inline
-	frame GDB returns to compute_frame_id and calls inline_frame_this_id.
-
-	In here GDB calls get_prev_frame_always, which eventually ends up
-	in get_prev_frame_if_no_cycle again, where we create a raw frame and
-	call compute_frame_id.
-
-	Just like before, compute_frame_id tries to find an unwinder for this
-	new frame, it sees that the $pc is within both normal_frame and
-	inline_frame, but the next frame is, again, an INLINE_FRAME, so, just
-	like before the standard DWARF unwinder claims this frame.  Back in
-	compute_frame_id we again call the standard DWARF function to build
-	the frame_id for this new copy of normal_frame.
-
-	At this point the stack looks like this:
-
-	  normal_frame -> inline_frame -> normal_frame -> inline_frame
-
-	After compute_frame_id we return to get_prev_frame_if_no_cycle, where
-	we try to add the frame_id for the new normal_frame into the frame_id
-	cache, however, unlike before, we fail to add this frame_id as it is
-	a duplicate of the previous normal_frame frame_id.  Having found a
-	duplicate get_prev_frame_if_no_cycle unlinks the new frame from the
-	stack, and returns nullptr, the stack now looks like this:
-
-	  inline_frame -> normal_frame -> inline_frame
-
-	The nullptr result from get_prev_frame_if_no_cycle is fed back to
-	inline_frame_this_id, which forwards this to get_frame_id, which
-	immediately returns null_frame_id.  As null_frame_id is not considered
-	a valid frame_id, this is what triggers the assertion.
-
-	In summary then:
-
-	 - inline_frame_this_id currently assumes that as the inline frame
-	   exists, we will always get a valid frame back from
-	   get_prev_frame_always,
-
-	 - get_prev_frame_if_no_cycle currently assumes that it is safe to
-	   return nullptr when it sees a cycle.
-
-	Notice that in frame.c:compute_frame_id, this code:
-
-	  fi->this_id.value = outer_frame_id;
-	  fi->unwind->this_id (fi, &fi->prologue_cache, &fi->this_id.value);
-	  gdb_assert (frame_id_p (fi->this_id.value));
-
-	The assertion makes it clear that the this_id function must always
-	return a valid frame_id (e.g. null_frame_id is not a valid return
-	value), and similarly in inline_frame.c:inline_frame_this_id this
-	code:
-
-	  *this_id = get_frame_id (get_prev_frame_always (this_frame));
-	  /* snip comment */
-	  gdb_assert (frame_id_p (*this_id));
-
-	Makes it clear that every inline frame expects to be able to get a
-	previous frame, which will have a valid frame_id.
-
-	As I have discussed above, these assumptions don't currently hold in
-	all cases.
-
-	One possibility would be to move the call to get_prev_frame_always
-	forward from inline_frame_this_id to inline_frame_sniffer, however,
-	this falls foul of (in frame.c:frame_cleanup_after_sniffer) this
-	assertion:
-
-	  /* No sniffer should extend the frame chain; sniff based on what is
-	     already certain.  */
-	  gdb_assert (!frame->prev_p);
-
-	This assert prohibits any sniffer from trying to get the previous
-	frame, as getting the previous frame is likely to depend on the next
-	frame, I can understand why this assertion is a good thing, and I'm in
-	no rush to alter this rule.
-
-	The solution proposed here takes onboard feedback from both Pedro, and
-	Simon (see the links below).  The get_prev_frame_if_no_cycle function
-	is renamed to get_prev_frame_maybe_check_cycle, and will now not do
-	cycle detection for inline frames, even when we spot a duplicate frame
-	it is still returned.  This is fine, as, if the normal frame has a
-	duplicate frame-id then the inline frame will also have a duplicate
-	frame-id.  And so, when we reject the inline frame, the duplicate
-	normal frame, which is previous to the inline frame, will also be
-	rejected.
-
-	In inline-frame.c the call to get_prev_frame_always is no longer
-	nested inside the call to get_frame_id.  There are reasons why
-	get_prev_frame_always can return nullptr, for example, if there is a
-	memory error while trying to get the previous frame, if this should
-	happen then we now give a more informative error message.
-
-	Historical Links:
-
-	 Patch v2: https://sourceware.org/pipermail/gdb-patches/2021-June/180208.html
-	 Feedback: https://sourceware.org/pipermail/gdb-patches/2021-July/180651.html
-	           https://sourceware.org/pipermail/gdb-patches/2021-July/180663.html
-
-	 Patch v3: https://sourceware.org/pipermail/gdb-patches/2021-July/181029.html
-	 Feedback: https://sourceware.org/pipermail/gdb-patches/2021-July/181035.html
-
-	 Additional input: https://sourceware.org/pipermail/gdb-patches/2021-September/182040.html
-
-2021-09-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/dcache-flush.exp
-	When running test-case gdb.base/dcache-flush.exp on ubuntu 18.04.5, I run into:
-	...
-	(gdb) PASS: gdb.base/dcache-flush.exp: p var2
-	info dcache^M
-	Dcache 4096 lines of 64 bytes each.^M
-	Contains data for Thread 0x7ffff7fc6b80 (LWP 3551)^M
-	Line 0: address 0x7fffffffd4c0 [47 hits]^M
-	Line 1: address 0x7fffffffd500 [31 hits]^M
-	Line 2: address 0x7fffffffd5c0 [7 hits]^M
-	Cache state: 3 active lines, 85 hits^M
-	(gdb) FAIL: gdb.base/dcache-flush.exp: check dcache before flushing
-	...
-	The regexp expects "Contains data for process $decimal".
-
-	This is another case of thread_db_target::pid_to_str being used.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-2021-09-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Test sw watchpoint in gdb.threads/process-dies-while-detaching.exp
-	The test-case gdb.threads/process-dies-while-detaching.exp takes about 20s
-	when using hw watchpoints, but when forcing sw watchpoints (using the patch
-	mentioned in PR28375#c0), the test-case takes instead 3m14s.
-
-	Also, it show a FAIL:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	Cannot find user-level thread for LWP 10324: generic error^M
-	(gdb) FAIL: gdb.threads/process-dies-while-detaching.exp: single-process:
-	continue: watchpoint: continue
-	...
-	for which PR28375 was filed.
-
-	Modify the test-case to:
-	- add the hw/sw axis to the watchpoint testing, to ensure that we
-	  observe the sw watchpoint behaviour also on can-use-hw-watchpoints
-	  architectures.
-	- skip the hw breakpoint testing if not supported
-	- set the sw watchpoint later to avoid making the test
-	  too slow.  This still triggers the same PR, but now takes just 24s.
-
-	This patch adds a KFAIL for PR28375.
-
-	Tested on x86_64-linux.
-
-2021-09-27  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix indentation in gdbtypes.c
-	Change-Id: I7bfbb9d349a1f474256800c45e28fe3b1de08771
-
-2021-09-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-26  Peter Bergner  <bergner@linux.ibm.com>
-
-	PowerPC: Enable mfppr mfppr32, mtppr and mtppr32 extended mnemonics on POWER5
-	SPR 896 and the mfppr mfppr32, mtppr and mtppr32 extended mnemonics were added
-	in ISA 2.03, so enable them on POWER5 and later.
-
-	opcodes/
-		* ppc-opc.c (powerpc_opcodes) <mfppr, mfppr32, mtppr, mtppr32>: Enable
-		on POWER5 and later.
-
-	gas/
-		* testsuite/gas/ppc/power5.s: New test.
-		* testsuite/gas/ppc/power5.d: Likewise.
-		* testsuite/gas/ppc/ppc.exp: Run it.
-		* testsuite/gas/ppc/power7.s: Remove tests for mfppr, mfppr32, mtppr
-		and mtppr32.
-		* testsuite/gas/ppc/power7.d: Likewise.
-
-2021-09-25  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Minimize gdb restarts
-	Minimize gdb restarts, applying the following rules:
-	- don't use prepare_for_testing unless necessary
-	- don't use clean_restart unless necessary
-
-	Also, if possible, replace build_for_executable + clean_restart
-	with prepare_for_testing for brevity.
-
-	Touches 68 test-cases.
-
-	Tested on x86_64-linux.
-
-2021-09-25  Alan Modra  <amodra@gmail.com>
-
-	PR28346, segfault attempting to disassemble raw binary
-	Don't attempt to access elf_section_data for non-ELF sections.
-
-		PR 28346
-		* elf32-xtensa.c (xtensa_read_table_entries): Return zero entries
-		for non-ELF.
-
-2021-09-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-24  Hans-Peter Nilsson  <hp@axis.com>
-
-	gas/testsuite/ld-elf/dwarf2-21.d: Pass -W
-	Required for the expected "CU:" to be emitted for long
-	source-paths.  See binutils/dwarf.c:
-
-	 if (do_wide || strlen (directory) < 76)
-	   printf (_("CU: %s/%s:\n"), directory, file_table[0].name);
-	 else
-	   printf ("%s:\n", file_table[0].name);
-
-	See also commit 5f410aa50ce2c, "testsuite/ld-elf/pr26936.d:
-	Pass -W."
-
-	gas/ChangeLog:
-		* testsuite/ld-elf/dwarf2-21.d: Pass -W.
-
-2021-09-24  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: change thread_info::name to unique_xmalloc_ptr, add helper function
-	This started out as changing thread_info::name to a unique_xmalloc_ptr.
-	That showed that almost all users of that field had the same logic to
-	get a thread's name: use thread_info::name if non-nullptr, else ask the
-	target.  Factor out this logic in a new thread_name free function.  Make
-	the field private (rename to m_name) and add some accessors.
-
-	Change-Id: Iebdd95f4cd21fbefc505249bd1d05befc466a2fc
-
-2021-09-24  Tom Tromey  <tom@tromey.com>
-
-	Move value_true to value.h
-	I noticed that value_true is declared in language.h and defined in
-	language.c.  However, as part of the value API, I think it would be
-	better in one of those files.  And, because it is very short, I
-	changed it to be an inline function in value.h.  I've also removed a
-	comment from the implementation, on the basis that it seems obsolete
-	-- if the change it suggests was needed, it probably would have been
-	done by now; and if it is needed in the future, odds are it would be
-	done differently anyway.
-
-	Finally, this patch also changes value_true and value_logical_not to
-	return a bool, and updates some uses.
-
-2021-09-24  Pedro Alves  <pedro@palves.net>
-
-	Make dcache multi-target-safe
-	By inspection, I noticed that this code in dcache.c is not
-	multi-target-aware:
-
-	  /* If this is a different inferior from what we've recorded,
-	     flush the cache.  */
-
-	  if (inferior_ptid != dcache->ptid)
-
-	This doesn't take into account that threads of different targets may
-	have the same ptid.
-
-	Fixed by also storing/comparing the process_stratum_target.
-
-	Tested on x86-64-linux-gnu, native and gdbserver.
-
-	Change-Id: I4d9d74052c696b72d28cb1c77b697b911725c8d3
-
-2021-09-24  Pedro Alves  <pedro@palves.net>
-
-	Fix 'FAIL: gdb.perf/disassemble.exp: python Disassemble().run()'
-	We currently have one FAIL while running "make check-perf":
-
-	  PerfTest::assemble, run ...
-	  python Disassemble().run()
-	  Traceback (most recent call last):
-	    File "<string>", line 1, in <module>
-	    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 64, in run
-	      self.warm_up()
-	    File "<string>", line 25, in warm_up
-	  gdb.error: No symbol "ada_evaluate_subexp" in current context.
-	  Error while executing Python code.
-	  (gdb) FAIL: gdb.perf/disassemble.exp: python Disassemble().run()
-	  ...
-
-	The gdb.perf/disassemble.exp testcase debugs GDB with itself, runs to
-	main, and then disassembles a few GDB functions.  The problem is that
-	most(!) functions it is trying to disassemble are now gone...
-
-	This commit fixes the issue by simply picking some other functions to
-	disassemble.
-
-	It would perhaps be better to come up with some test program to
-	disassemble, one that would stay the same throughout the years,
-	instead of disassembling GDB itself.  I don't know why that wasn't
-	done to begin with.  I'll have to leave that for another rainy day,
-	though.
-
-	gdb/testsuite/
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		* gdb.perf/disassemble.py (Disassemble::warm_up): Disassemble
-		evaluate_subexp_do_call instead of ada_evaluate_subexp.
-		(Disassemble::warm_up): Disassemble "captured_main",
-		"run_inferior_call" and "update_global_location_list" instead of
-		"evaluate_subexp_standard" and "c_parse_internal".
-
-	Change-Id: I89d1cca89ce2e495dea5096e439685739cc0d3df
-
-2021-09-24  Pedro Alves  <pedro@palves.net>
-
-	Fix all PATH problems in testsuite/gdb.perf/
-	Currently "make check-perf" triggers ~40 PATH messages in gdb.sum:
-
-	  ...
-	  PATH: gdb.perf/backtrace.exp: python sys.path.insert(0, os.path.abspath("/home/pedro/rocm/gdb/build/gdb/../../src/gdb/testsuite/gdb.perf/lib"))
-	  PATH: gdb.perf/backtrace.exp: python exec (open ('/home/pedro/rocm/gdb/build/gdb/testsuite/outputs/gdb.perf/backtrace/backtrace.py').read ())
-	  ...
-
-	This commit fixes them.  E.g. before/after gdb.sum diff:
-
-	 -PASS: gdb.perf/backtrace.exp: python import os, sys
-	 -PASS: gdb.perf/backtrace.exp: python sys.path.insert(0, os.path.abspath("/home/pedro/rocm/gdb/build-master/gdb/../../src/gdb/testsuite/gdb.perf/lib"))
-	 -PATH: gdb.perf/backtrace.exp: python sys.path.insert(0, os.path.abspath("/home/pedro/rocm/gdb/build-master/gdb/../../src/gdb/testsuite/gdb.perf/lib"))
-	 -PASS: gdb.perf/backtrace.exp: python exec (open ('/home/pedro/rocm/gdb/build-master/gdb/testsuite/outputs/gdb.perf/backtrace/backtrace.py').read ())
-	 -PATH: gdb.perf/backtrace.exp: python exec (open ('/home/pedro/rocm/gdb/build-master/gdb/testsuite/outputs/gdb.perf/backtrace/backtrace.py').read ())
-	 +PASS: gdb.perf/backtrace.exp: setup perftest: python import os, sys
-	 +PASS: gdb.perf/backtrace.exp: setup perftest: python sys.path.insert(0, os.path.abspath("${srcdir}/gdb.perf/lib"))
-	 +PASS: gdb.perf/backtrace.exp: setup perftest: python exec (open ('${srcdir}/gdb.perf/backtrace.py').read ())
-
-	gdb/testsuite/
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		* lib/perftest.exp (PerfTest::_setup_perftest): Use
-		with_test_prefix.  Add explicit test names to python invocations,
-		with "$srcdir" not expanded.
-
-	Change-Id: I50a31b04b7abdea754139509e4a34ae9263118a4
-
-2021-09-24  Pedro Alves  <pedro@palves.net>
-
-	Fix all DUPLICATE problems in testsuite/gdb.perf/
-	Currently running "make check-perf" shows:
-
-	 ...
-	 # of duplicate test names       6008
-	 ...
-
-	All those duplicate test names come from gdb.perf/skip-command.exp.
-	This commit fixes them, using with_test_prefix.
-
-	gdb/testsuite/
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		* gdb.perf/skip-command.exp (run_skip_bench): Wrap each for
-		iteration in with_test_prefix.
-
-	Change-Id: I38501cf70bc6b60306ee7228996ee7bcd858dc1b
-
-2021-09-24  Tom Tromey  <tromey@adacore.com>
-
-	Fix handling of DW_AT_data_bit_offset
-	A newer version of GCC will now emit member locations using just
-	DW_AT_data_bit_offset, like:
-
-	 <3><14fe>: Abbrev Number: 1 (DW_TAG_member)
-	    <14ff>   DW_AT_name        : (indirect string, offset: 0x215e): nb_bytes
-	    <1503>   DW_AT_decl_file   : 1
-	    <1503>   DW_AT_decl_line   : 10
-	    <1504>   DW_AT_decl_column : 7
-	    <1505>   DW_AT_type        : <0x150b>
-	    <1509>   DW_AT_bit_size    : 31
-	    <150a>   DW_AT_data_bit_offset: 64
-
-	whereas earlier versions would emit something like:
-
-	 <3><164f>: Abbrev Number: 7 (DW_TAG_member)
-	    <1650>   DW_AT_name        : (indirect string, offset: 0x218d): nb_bytes
-	    <1654>   DW_AT_decl_file   : 1
-	    <1655>   DW_AT_decl_line   : 10
-	    <1656>   DW_AT_decl_column : 7
-	    <1657>   DW_AT_type        : <0x165f>
-	    <165b>   DW_AT_byte_size   : 4
-	    <165c>   DW_AT_bit_size    : 31
-	    <165d>   DW_AT_bit_offset  : 1
-	    <165e>   DW_AT_data_member_location: 8
-
-	That is, DW_AT_data_member_location is not emitted any more.  This is
-	a change due to the switch to DWARF 5 by default.
-
-	This change pointed out an existing bug in gdb, namely that the
-	attr_to_dynamic_prop depends on the presence of
-	DW_AT_data_member_location.  This patch moves the handling of
-	DW_AT_data_bit_offset into handle_data_member_location, and updates
-	attr_to_dynamic_prop to handle this new case.
-
-	A new test case is included.  This test fails with GCC 11, but passes
-	with an earlier version of GCC.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Don't leave gdb instance running after function_range
-	A typical dwarf assembly test-case start like this:
-	...
-	standard_testfile .c -debug.S
-
-	set asm_file [standard_output_file $srcfile2]
-	Dwarf::assemble $asm_file {
-	  ...
-	}
-
-	if { [prepare_for_testing "failed to prepare" ${testfile} \
-		  [list $srcfile $asm_file] {nodebug}] } {
-	    return -1
-	}
-	...
-
-	When accidentally using build_for_executable instead of
-	prepare_for_testing (or intentionally using it but forgetting to add
-	clean_restart $binfile or some such) the mistake may not be caught, because
-	another gdb instance is still running, and we may silently end up testing
-	compiler-generated DWARF.
-
-	This can be caused by something relatively obvious, like an earlier
-	prepare_for_testing or clean_restart, but also by something more obscure like
-	function_range, which may even be triggered by dwarf assembly like this:
-	...
-	  {MACRO_AT_func {main}}
-	...
-
-	Fix this by calling gdb_exit at the end of function_range.
-
-	Also fix the fallout of that in test-case gdb.dwarf2/dw2-bad-elf.exp, where a
-	get_sizeof call used the gdb instance left lingering by function_range.
-
-	[ A better and more complete fix would add a new proc get_exec_info, that would
-	be called at the start of the dwarf assembly body:
-	...
-	Dwarf::assemble $asm_file {
-	  get_exec_info {main foo} {int void*}
-	...
-	that would:
-	- do a prepare_for_testing with $srcfile (roughtly equivalent to what
-	  MACRO_AT_func does,
-	- call function_range for all functions main and foo, without starting a
-	  new gdb instance
-	- set corresponding variables at the call-site: main_start, main_len,
-	  main_end, foo_start, foo_len, foo_end.
-	- get size for types int and void*
-	- set corresponding variables at the call-site: int_size, void_ptr_size.
-	- do a gdb_exit. ]
-
-	Tested on x86_64-linux.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use pie instead of -fpie/-pie
-	I noticed two test-cases where -fpie is used.  Using the canonical pie option
-	will usually get one -fPIE instead.
-
-	That choice is justified here in gdb_compile:
-	...
-	  # For safety, use fPIE rather than fpie. On AArch64, m68k, PowerPC
-	  # and SPARC, fpie can cause compile errors due to the GOT exceeding
-	  # a maximum size.  On other architectures the two flags are
-	  # identical (see the GCC manual). Note Debian9 and Ubuntu16.10
-	  # onwards default GCC to using fPIE.  If you do require fpie, then
-	  # it can be set using the pie_flag.
-	  set flag "additional_flags=-fPIE"
-	...
-
-	There is no indication that using -fpie rather than -fPIE is on purpose, so
-	use pie instead.
-
-	Tested on x86_64-linux.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Factor out dump_info in gdb.testsuite/dump-system-info.exp
-	Factor out new proc dump_info in test-case gdb.testsuite/dump-system-info.exp,
-	and in the process:
-	- fix a few typos
-	- remove unnecessary "test -r /proc/cpuinfo"
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-
-2021-09-24  Pedro Alves  <pedro@palves.net>
-
-	gdb/testsuite: Make it possible to use TCL variables in DWARF assembler loclists
-	It is currently not possible to use variables in locations lists.  For
-	example, with:
-
-	  diff --git a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
-	  index 6b4f5c8cbb8..cdbf948619f 100644
-	  --- a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
-	  +++ b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
-	  @@ -30,6 +30,8 @@ if {![dwarf2_support]} {
-	       return 0
-	   }
-
-	  +set myconst 0x123456
-	  +
-	   # Test with 32-bit and 64-bit DWARF.
-	   foreach_with_prefix is_64 {false true} {
-	       if { $is_64 } {
-	  @@ -49,6 +51,7 @@ foreach_with_prefix is_64 {false true} {
-		  global func1_addr func1_len
-		  global func2_addr func2_len
-		  global is_64
-	  +       global myconst
-
-		  # The CU uses the DW_FORM_loclistx form to refer to the .debug_loclists
-		  # section.
-	  @@ -107,7 +110,7 @@ foreach_with_prefix is_64 {false true} {
-			  list_ {
-			      # When in func1.
-			      start_length $func1_addr $func1_len {
-	  -                       DW_OP_constu 0x123456
-	  +                       DW_OP_constu $myconst
-				  DW_OP_stack_value
-			      }
-
-	we get:
-
-	  $ make check TESTS="*/loclists-multiple-cus.exp"
-	  ...
-	  gdb compile failed, build/gdb/testsuite/outputs/gdb.dwarf2/loclists-multiple-cus/loclists-multiple-cus-dw32.S: Assembler messages:
-	  build/gdb/testsuite/outputs/gdb.dwarf2/loclists-multiple-cus/loclists-multiple-cus-dw32.S:78: Error: leb128 operand is an undefined symbol: $myconst
-	  ...
-
-	That means $myconst was copied literally to the generated assembly
-	file.
-
-	This patch fixes it, by running subst on the location list body, in
-	the context of the caller.  The fix is applied to both
-	Dwarf::loclists::table::list_::start_length and
-	Dwarf::loclists::table::list_::start_end.
-
-	Reported-by: Zoran Zaric <Zoran.Zaric@amd.com>
-
-	Change-Id: I615a64431857242d9f477d5699e3732df1b31322
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATEs in gdb.dwarf2/implptr-64bit.exp
-	When running test-case gdb.dwarf2/implptr-64bit.exp with target board
-	unix/-m32, I noticed:
-	...
-	DUPLICATE: gdb.dwarf2/implptr-64bit.exp: failed to prepare
-	...
-
-	Fix this by using with_test_prefix.
-
-	Tested on x86_64-linux.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATEs gdb.dwarf2/dw2-is-stmt.exp
-	Fix these DUPLICATEs by using with_test_prefix:
-	...
-	DUPLICATE: gdb.dwarf2/dw2-is-stmt.exp: ensure we saw a valid line pattern, 1
-	DUPLICATE: gdb.dwarf2/dw2-is-stmt.exp: ensure we saw a valid line pattern, 2
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix set $var val in gdb.dwarf2/dw2-is-stmt.exp
-	When doing a testrun with:
-	...
-	$ make check RUNTESTFLAGS=$(cd $src/gdb/testsuite/; echo gdb.dwarf2/*.exp)
-	...
-	I ran into:
-	...
-	ERROR: tcl error sourcing gdb.dwarf2/dw2-is-stmt.exp.
-	ERROR: expected integer but got "dw2-abs-hi-pc-world.c"
-	    while executing
-	"incr i"
-	...
-
-	The variable i is set in gdb.dwarf2/dw2-abs-hi-pc.exp, and leaks to
-	gdb.dwarf2/dw2-is-stmt.exp.  It's not removed by gdb_cleanup_globals because i
-	is set as global variable by runtest.exp, which does:
-	...
-	for { set i 0 } { $i < $argc } { incr i } {
-	...
-	at toplevel but forgets to unset the variable.
-
-	Fix this by removing '$' in front of the variable name when doing set:
-	...
-	-set $i 0
-	+set i 0
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATE in gdb.base/load-command.exp
-	Fix this duplicate:
-	...
-	DUPLICATE: gdb.base/load-command.exp: check initial value of the_variable
-	...
-	by using with_test_prefix.
-
-	Tested on x86_64-linux.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use pie/nopie instead of ldflags=-pie/-no-pie
-	I noticed two test-case that use ldflags=-pie and ldflags-no-pie, instead of
-	the canonical pie and nopie options, which would typically also add
-	additional_flags=-fPIE respectively additional_flags=-fno-pie.
-
-	There is no indication that this is on purpose, so replace these with pie and
-	nopie.
-
-	Tested on x86_64-linux.
-
-2021-09-24  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add gdb.testsuite/dump-system-info.exp
-	When interpreting the testsuite results, it's often relevant what kind of
-	machine the testsuite ran on.  On a local machine one can just do
-	/proc/cpuinfo, but in case of running tests using a remote system
-	that distributes test runs to other remote systems that are not directly
-	accessible, that's not possible.
-
-	Fix this by dumping /proc/cpuinfo into the gdb.log, as well as lsb_release -a
-	and uname -a.
-
-	We could do this at the start of each test run, by putting it into unix.exp
-	or some such.  However, this might be too verbose, so we choose to put it into
-	its own test-case, such that it get triggered in a full testrun, but not when
-	running one or a subset of tests.
-
-	We put the test-case into the gdb.testsuite directory, which is currently the
-	only place in the testsuite where we do not test gdb.   [ Though perhaps this
-	could be put into a new gdb.info directory, since the test-case doesn't
-	actually test the testsuite. ]
-
-	Tested on x86_64-linux.
-
-2021-09-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-23  Tom Tromey  <tom@tromey.com>
-
-	Change pointer_type to a method of struct type
-	I noticed that pointer_type is declared in language.h and defined in
-	language.c.  However, it really has to do with types, so it should
-	have been in gdbtypes.h all along.
-
-	This patch changes it to be a method on struct type.  And, I went
-	through uses of TYPE_IS_REFERENCE and updated many spots to use the
-	new method as well.  (I didn't update ones that were in arch-specific
-	code, as I couldn't readily test that.)
-
-2021-09-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Support -fPIE/-fno-PIE/-pie/-no-pie in gdb_compile_rust
-	When running gdb.rust/*.exp test-cases with target board unix/-fPIE/-pie, I
-	run into:
-	...
-	builtin_spawn -ignore SIGHUP rustc --color never gdb.rust/watch.rs \
-	  -g -lm -fPIE -pie -o outputs/gdb.rust/watch/watch^M
-	error: Unrecognized option: 'f'^M
-	^M
-	compiler exited with status 1
-	...
-
-	The problem is that -fPIE and -fpie are gcc options, but for rust we use
-	rustc, which has different compilation options.
-
-	Fix this by translating the gcc options to rustc options in gdb_compile_rust,
-	similar to how that is done for ada in target_compile_ada_from_dir.
-
-	Likewise for unix/-fno-PIE/-no-pie.
-
-	Tested on x86_64-linux, with:
-	- native
-	- unix/-fPIE/-pie
-	- unix/-fno-PIE/-no-pie
-	specifically, on openSUSE Leap 15.2 both with package gcc-PIE:
-	- installed (making gcc default to PIE)
-	- uninstalled (making gcc default to non-PIE).
-	and rustc 1.52.1.
-
-2021-09-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use pie instead of -fPIE -pie
-	Replace {additional_flags=-fPIE ldflags=-pie} with {pie}.
-
-	This makes sure that the test-cases properly error out when using target board
-	unix/-fno-PIE/-no-pie.
-
-	Tested on x86_64-linux.
-
-2021-09-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix probe test in gdb.base/break-interp.exp
-	When running test-case gdb.base/break-interp.exp on ubuntu 18.04.5, we have:
-	...
-	 (gdb) bt^M
-	 #0  0x00007eff7ad5ae12 in ?? () from break-interp-LDprelinkNOdebugNO^M
-	 #1  0x00007eff7ad71f50 in ?? () from break-interp-LDprelinkNOdebugNO^M
-	 #2  0x00007eff7ad59128 in ?? () from break-interp-LDprelinkNOdebugNO^M
-	 #3  0x00007eff7ad58098 in ?? () from break-interp-LDprelinkNOdebugNO^M
-	 #4  0x0000000000000002 in ?? ()^M
-	 #5  0x00007fff505d7a32 in ?? ()^M
-	 #6  0x00007fff505d7a94 in ?? ()^M
-	 #7  0x0000000000000000 in ?? ()^M
-	 (gdb) FAIL: gdb.base/break-interp.exp: ldprelink=NO: ldsepdebug=NO: \
-	         first backtrace: dl bt
-	...
-
-	Using the backtrace, the test-case tries to establish that we're stopped in
-	dl_main.
-
-	However, the backtrace only shows an address, because:
-	- the dynamic linker contains no minimal symbols and no debug info, and
-	- gdb is build without --with-separate-debug-dir so it can't find the
-	  corresponding .debug file, which does contain the mimimal symbols and
-	  debug info.
-
-	As in "[gdb/testsuite] Improve probe detection in gdb.base/break-probes.exp",
-	fix this by doing info probes and grepping for the address.
-
-	Tested on x86_64-linux.
-
-2021-09-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Improve probe detection in gdb.base/break-probes.exp
-	When running test-case gdb.base/break-probes.exp on ubuntu 18.04.5, we have:
-	...
-	 (gdb) run^M
-	 Starting program: break-probes^M
-	 Stopped due to shared library event (no libraries added or removed)^M
-	 (gdb) bt^M
-	 #0  0x00007ffff7dd6e12 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #1  0x00007ffff7dedf50 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #2  0x00007ffff7dd5128 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #3  0x00007ffff7dd4098 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #4  0x0000000000000001 in ?? ()^M
-	 #5  0x00007fffffffdaac in ?? ()^M
-	 #6  0x0000000000000000 in ?? ()^M
-	 (gdb) UNSUPPORTED: gdb.base/break-probes.exp: probes not present on this system
-	...
-
-	Using the backtrace, the test-case tries to establish that we're stopped in
-	dl_main, which is used as proof that we're using probes.
-
-	However, the backtrace only shows an address, because:
-	- the dynamic linker contains no minimal symbols and no debug info, and
-	- gdb is build without --with-separate-debug-dir so it can't find the
-	  corresponding .debug file, which does contain the mimimal symbols and
-	  debug info.
-
-	Fix this by instead printing the pc and grepping for the value in the
-	info probes output:
-	...
-	(gdb) p /x $pc^M
-	$1 = 0x7ffff7dd6e12^M
-	(gdb) info probes^M
-	Type Provider Name           Where              Object                      ^M
-	  ...
-	stap rtld     init_start     0x00007ffff7dd6e12 /lib64/ld-linux-x86-64.so.2 ^M
-	  ...
-	(gdb)
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle failing probe detection in gdb.base/break-probes.exp
-	When running test-case gdb.base/break-probes.exp on ubuntu 18.04.5, we have:
-	...
-	 (gdb) bt^M
-	 #0  0x00007ffff7dd6e12 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #1  0x00007ffff7dedf50 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #2  0x00007ffff7dd5128 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #3  0x00007ffff7dd4098 in ?? () from /lib64/ld-linux-x86-64.so.2^M
-	 #4  0x0000000000000001 in ?? ()^M
-	 #5  0x00007fffffffdaac in ?? ()^M
-	 #6  0x0000000000000000 in ?? ()^M
-	 (gdb) FAIL: gdb.base/break-probes.exp: ensure using probes
-	...
-
-	The test-case intends to emit an UNTESTED in this case, but fails to do so
-	because it tries to do it in a regexp clause in a gdb_test_multiple, which
-	doesn't trigger.  Instead, a default clause triggers which produces the FAIL.
-
-	Also the use of UNTESTED is not appropriate, and we should use UNSUPPORTED
-	instead.
-
-	Fix this by silencing the FAIL, and emitting an UNSUPPORTED after the
-	gdb_test_multiple:
-	...
-	 if { ! $using_probes } {
-	+    unsupported "probes not present on this system"
-	     return -1
-	 }
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use early-out style in gdb.base/break-probes.exp
-	Reduce indentation and improve readability in test-case
-	gdb.base/break-probes.exp by replacing:
-	...
-	if { <cond> } {
-	  <lots-of-code>
-	}
-	...
-	with:
-	...
-	if { ! <cond> } {
-	  return -1
-	}
-	<lots-of-code>
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-23  Pedro Alves  <pedro@palves.net>
-
-	Test that frame info/IDs are stable/consistent
-	This adds a testcase that tests that the unwinder produces consistent
-	frame info and frame IDs by making sure that "info frame" shows the
-	same result when stopped at a function (level == 0), compared to when
-	we find the same frame in the stack at a level > 0.
-
-	E.g., on x86-64, right after running to main, we see:
-
-	  (gdb) info frame
-	  Stack level 0, frame at 0x7fffffffd340:
-	   rip = 0x555555555168 in main (gdb.base/backtrace.c:41); saved rip = 0x7ffff7dd90b3
-	   source language c.
-	   Arglist at 0x7fffffffd330, args:
-	   Locals at 0x7fffffffd330, Previous frame's sp is 0x7fffffffd340
-	   Saved registers:
-	    rbp at 0x7fffffffd330, rip at 0x7fffffffd338
-	  (gdb)
-
-	and then after continuing to a function called by main, and selecting
-	the "main" frame again, we see:
-
-	  (gdb) info frame
-	  Stack level 3, frame at 0x7fffffffd340:
-	   rip = 0x555555555172 in main (gdb.base/backtrace.c:41); saved rip = 0x7ffff7dd90b3
-	   caller of frame at 0x7fffffffd330
-	   source language c.
-	   Arglist at 0x7fffffffd330, args:
-	   Locals at 0x7fffffffd330, Previous frame's sp is 0x7fffffffd340
-	   Saved registers:
-	    rbp at 0x7fffffffd330, rip at 0x7fffffffd338
-	  (gdb)
-
-	The only differences should be in the stack level, the 'rip = '
-	address, and the presence of the "caller of frame at" info.  All the
-	rest should be the same.  If it isn't, it probably means that the
-	frame base, the frame ID, etc. aren't stable & consistent.
-
-	The testcase exercises both the DWARF and the heuristic unwinders,
-	using "maint set dwarf unwinder on/off".
-
-	Tested on {x86-64 -m64, x86-64 -m32, Aarch64, Power8} GNU/Linux.
-
-	Change-Id: I795001c82cc70d543d197415e3f80ce5dc7f3452
-
-2021-09-23  Tom Tromey  <tromey@adacore.com>
-
-	Change get_ada_task_ptid parameter type
-	get_ada_task_ptid currently takes a 'long' as its 'thread' parameter
-	type.  However, on some platforms this is actually a pointer, and
-	using 'long' can sometimes end up with the value being sign-extended.
-	This sign extension can cause problems later, if the tid is then later
-	used as an address again.
-
-	This patch changes the parameter type to ULONGEST and updates all the
-	uses.  This approach preserves sign extension on the targets where it
-	is apparently intended, while avoiding it on others.
-
-	Co-Authored-By: John Baldwin <jhb@FreeBSD.org>
-
-2021-09-23  Tom Tromey  <tromey@adacore.com>
-
-	Change ptid_t::tid to ULONGEST
-	The ptid_t 'tid' member is normally used as an address in gdb -- both
-	bsd-uthread and ravenscar-thread use it this way.  However, because
-	the type is 'long', this can cause problems with sign extension.
-
-	This patch changes the type to ULONGEST to ensure that sign extension
-	does not occur.
-
-2021-09-23  Tom Tromey  <tromey@adacore.com>
-
-	Remove defaulted 'tid' parameter to ptid_t constructor
-	I wanted to find, and potentially modify, all the spots where the
-	'tid' parameter to the ptid_t constructor was used.  So, I temporarily
-	removed this parameter and then rebuilt.
-
-	In order to make it simpler to search through the "real" (nonzero)
-	uses of this parameter, something I knew I'd have to do multiple
-	times, I removed any ", 0" from constructor calls.
-
-	Co-Authored-By: John Baldwin <jhb@FreeBSD.org>
-
-2021-09-23  Tom Tromey  <tom@tromey.com>
-
-	Style the "XXX" text in ptype/o
-	This patch changes gdb to use the 'highlight' style on the "XXX" text
-	in the output of ptype/o.
-
-2021-09-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.python/py-events.exp
-	With test-case gdb.python/py-events.exp on ubuntu 18.04.5 we run into:
-	...
-	(gdb) info threads^M
-	  Id   Target Id                                     Frame ^M
-	* 1    Thread 0x7ffff7fc3740 (LWP 31467) "py-events" do_nothing () at \
-	         src/gdb/testsuite/gdb.python/py-events-shlib.c:19^M
-	(gdb) FAIL: gdb.python/py-events.exp: get current thread
-	...
-
-	The info thread commands uses "Thread" instead of "process" because
-	libpthread is already loaded:
-	...
-	new objfile name: /lib/x86_64-linux-gnu/libdl.so.2^M
-	[Thread debugging using libthread_db enabled]^M
-	Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".^M
-	event type: new_objfile^M
-	new objfile name: /lib/x86_64-linux-gnu/libpthread.so.0^M
-	...
-	and consequently thread_db_target::pid_to_str is used.
-
-	Fix this by parsing the "Thread" expression.
-
-	Tested on x86_64-linux.
-
-2021-09-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Add maint selftest -verbose option
-	The print_one_insn selftest in gdb/disasm-selftests.c contains:
-	...
-	  /* If you want to see the disassembled instruction printed to gdb_stdout,
-	     set verbose to true.  */
-	  static const bool verbose = false;
-	...
-
-	Make this parameter available in the maint selftest command using a new option
-	-verbose, such that we can do:
-	...
-	(gdb) maint selftest -verbose print_one_insn
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-22  Alan Modra  <amodra@gmail.com>
-
-	dwarf2 sub-section test
-	This is a testcase for the bug fixed by commit 5b4846283c3d.  When
-	running the testcase on ia64 targets I found timeouts along with lots
-	of memory being consumed, due to ia64 gas not tracking text
-	sub-sections.  Trying to add nops for ".nop 16" in ".text 1" resulting
-	in them being added to subsegment 0, with no increase to subsegment 1
-	size.  This patch also fixes that problem.
-
-	Note that the testcase fails on ft32-elf, mn10200-elf, score-elf,
-	tic5x-elf, and xtensa-elf.  The first two are relocation errors, the
-	last three appear to be the .nop directive failing to emit the right
-	number of nops.  I didn't XFAIL any of them.
-
-		* config/tc-ia64.c (md): Add last_text_subseg.
-		(ia64_flush_insns, dot_endp): Use last_text_subseg.
-		(ia64_frob_label, md_assemble): Set last_text_subseg.
-		* testsuite/gas/elf/dwarf2-21.d,
-		* testsuite/gas/elf/dwarf2-21.s: New test.
-		* testsuite/gas/elf/elf.exp: Run it.
-
-2021-09-22  Alan Modra  <amodra@gmail.com>
-
-	Fix x86 "FAIL: TLS -fno-pic -shared"
-	Fix a typo in commit 5d0869d9872a
-
-		* testsuite/ld-i386/tlsnopic.rd: Typo fix.
-
-2021-09-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-21  Nick Clifton  <nickc@redhat.com>
-
-	Change the linker's heuristic for computing the entry point for binaries so that shared libraries default to an entry point of 0.
-		* ldlang.c (lang_end): When computing the entry point, only
-		try the start address of the entry section when creating an
-		executable.
-		* ld.texi (Entry point): Update description of heuristic used to
-		choose the entry point.
-		testsuite/ld-alpha/tlspic.rd: Update expected entry point address.
-		testsuite/ld-arm/tls-gdesc-got.d: Likewise.
-		testsuite/ld-i386/tlsnopic.rd: Likewise.
-		testsuite/ld-ia64/tlspic.rd: Likewise.
-		testsuite/ld-sparc/gotop32.rd: Likewise.
-		testsuite/ld-sparc/gotop64.rd: Likewise.
-		testsuite/ld-sparc/tlssunnopic32.rd: Likewise.
-		testsuite/ld-sparc/tlssunnopic64.rd: Likewise.
-		testsuite/ld-sparc/tlssunpic32.rd: Likewise.
-		testsuite/ld-sparc/tlssunpic64.rd: Likewise.
-		testsuite/ld-tic6x/shlib-1.rd: Likewise.
-		testsuite/ld-tic6x/shlib-1b.rd: Likewise.
-		testsuite/ld-tic6x/shlib-1r.rd: Likewise.
-		testsuite/ld-tic6x/shlib-1rb.rd: Likewise.
-		testsuite/ld-tic6x/shlib-noindex.rd: Likewise.
-		testsuite/ld-x86-64/pr14207.d: Likewise.
-		testsuite/ld-x86-64/tlsdesc.rd: Likewise.
-		testsuite/ld-x86-64/tlspic.rd: Likewise.
-		testsuite/ld-x86-64/tlspic2.rd: Likewise.
-
-2021-09-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle supports_memtag in gdb.base/gdb-caching-proc.exp
-	In test-case gdb.base/gdb-caching-proc.exp, we run all procs declared with
-	gdb_caching_proc.  Some of these require a gdb instance, some not.
-
-	We could just do a clean_restart every time, but that would amount to 44 gdb
-	restarts.  We try to minimize this by doing this only for the few procs that
-	need it, and hardcoding those in the test-case.
-
-	For those procs, we do a clean_restart, execute the proc, and then do a
-	gdb_exit, to make sure the gdb instance doesn't linger such that we detect
-	procs that need a gdb instance but are not listed in the test-case.
-
-	However, that doesn't work in the case of gnat_runtime_has_debug_info.  This
-	proc doesn't require a gdb instance because it starts its own.  But it doesn't
-	clean up the gdb instance, and since it's not listed, the test-case
-	doesn't clean up the gdb instance eiter.  Consequently, the proc
-	supports_memtag (which should be listed, but isn't) uses the gdb instance
-	started by gnat_runtime_has_debug_info rather than throwing an error.  Well,
-	unless gnat_runtime_has_debug_info fails before starting a gdb instance, in
-	which case we do run into the error.
-
-	Fix this by:
-	- doing gdb_exit unconditionally
-	- fixing the resulting error by adding supports_memtag in the test-case to
-	  the "needing gdb instance" list
-
-	Tested on x86_64-linux.
-
-2021-09-21  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, doc: Add ieee_half and bfloat16 to list of predefined target types.
-	For some reason these two weren't added to the list when they were orginally
-	added to GDB.
-
-	gdb/doc/ChangeLog:
-	2021-09-21  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-		* gdb.texinfo (Predefined Target Types): Mention ieee_half and bfloat16.
-
-2021-09-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/interface.exp with gcc-9
-	When running test-case gdb.ada/interface.exp with gcc-9, we run into:
-	...
-	(gdb) info locals^M
-	s = (x => 1, y => 2, w => 3, h => 4)^M
-	r = (x => 1, y => 2, w => 3, h => 4)^M
-	(gdb) FAIL: gdb.ada/interface.exp: info locals
-	...
-
-	The failure is caused by the regexp expecting variable r followed by
-	variable s.
-
-	Fix this by allowing variable s followed by variable r as well.
-
-	Tested on x86_64-linux.
-
-2021-09-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/mi_prot.exp
-	When running test-case gdb.ada/mi_prot.exp with gcc 8.5.0, we run into:
-	...
-	(gdb) ^M
-	Expecting: ^(-stack-list-arguments --no-frame-filters 1[^M
-	]+)?(\^done,stack=.*[^M
-	]+[(]gdb[)] ^M
-	[ ]*)
-	-stack-list-arguments --no-frame-filters 1^M
-	^done,stack-args=[frame={level="0",args=[{name="<_object>",value="(ceiling_priority =\
-	> 97, local => 0)"},{name="v",value="5"},{name="<_objectO>",value="true"}]},frame={le\
-	vel="1",args=[{name="v",value="5"},{name="<_objectO>",value="true"}]},frame={level="2\
-	",args=[]}]^M
-	(gdb) ^M
-	FAIL: gdb.ada/mi_prot.exp: -stack-list-arguments --no-frame-filters 1 (unexpected out\
-	put)
-	...
-
-	Fix this by updating the regexp to expect "^done,stack-args=" instead of
-	"^done,stack=".
-
-	Tested on x86_64-linux.
-
-2021-09-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Register test for each arch separately in register_test_foreach_arch
-	In gdb/disasm-selftests.c we have:
-	...
-	  selftests::register_test_foreach_arch ("print_one_insn",
-	                                         selftests::print_one_insn_test);
-	...
-	and we get:
-	...
-	$ gdb -q -batch -ex "maint selftest print_one_insn" 2>&1 \
-	  | grep ^Running
-	Running selftest print_one_insn.
-	$
-	...
-
-	Change the semantics register_test_foreach_arch such that a version of
-	print_one_insn is registered for each architecture, such that we have:
-	...
-	$ gdb -q -batch -ex "maint selftest print_one_insn" 2>&1 \
-	  | grep ^Running
-	Running selftest print_one_insn::A6.
-	Running selftest print_one_insn::A7.
-	Running selftest print_one_insn::ARC600.
-	  ...
-	$
-	...
-
-	This makes it f.i. possible to do:
-	...
-	$ gdb -q -batch a.out -ex "maint selftest print_one_insn::armv8.1-m.main"
-	Running selftest print_one_insn::armv8.1-m.main.
-	Self test failed: self-test failed at src/gdb/disasm-selftests.c:165
-	Ran 1 unit tests, 1 failed
-	...
-
-	Tested on x86_64-linux with an --enable-targets=all build.
-
-2021-09-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Change register_test to use std::function arg
-	Change register_test to use std::function arg, such that we can do:
-	...
-	  register_test (test_name, [=] () { SELF_CHECK (...); });
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-20  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.ada/big_packed_array.exp xfail for -m32
-	With test-case gdb.ada/big_packed_array.exp and target board unix/-m32 I run
-	into:
-	...
-	(gdb) print bad^M
-	$2 = (0 => 0 <repeats 24 times>, 160)^M
-	(gdb) FAIL: gdb.ada/big_packed_array.exp: scenario=minimal: print bad
-	...
-
-	The problem is that while the variable is an array of 196 bits (== 24.5 bytes),
-	the debug information describes it as 25 unsigned char.  This is PR
-	gcc/101643, and the test-case contains an xfail for this, which catches only:
-	...
-	(gdb) print bad^M
-	$2 = (0 => 0 <repeats 25 times>)^M
-	...
-
-	Fix this by updating the xfail pattern.
-
-	Tested on x86_64-linux.
-
-2021-09-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport/gdb_proc_service.h: use decltype instead of typeof
-	Bug 28341 shows that GDB fails to compile when built with -std=c++11.
-	I don't know much about the use case, but according to the author of the
-	bug:
-
-	    I encountered the scenario where CXX is set to "g++ -std=c++11" when
-	    I try to compile binutils under GCC as part of the GCC 3-stage
-	    compilation, which is common for building a cross-compiler.
-
-	The author of the bug suggests using __typeof__ instead of typeof.  But
-	since we're using C++, we might as well use decltype, which is standard.
-	This is what this patch does.
-
-	The failure (and fix) can be observed by configuring GDB with CXX="g++
-	-std=c++11":
-
-	      CXX    linux-low.o
-	    In file included from /home/simark/src/binutils-gdb/gdbserver/gdb_proc_service.h:22,
-			     from /home/simark/src/binutils-gdb/gdbserver/linux-low.h:27,
-			     from /home/simark/src/binutils-gdb/gdbserver/linux-low.cc:20:
-	    /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before (token
-	      177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
-		  |                                                  ^
-	    /home/simark/src/binutils-gdb/gdbserver/../gdbsupport/gdb_proc_service.h:179:1: note: in expansion of macro PS_EXPORT
-	      179 | PS_EXPORT (ps_get_thread_area);
-		  | ^~~~~~~~~
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28341
-	Change-Id: I84fbaae938209d8d935ca08dec9b7e6a0dd1bda0
-
-2021-09-20  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	riscv: print .2byte or .4byte before an unknown instruction encoding
-	When the RISC-V disassembler encounters an unknown instruction, it
-	currently just prints the value of the bytes, like this:
-
-	  Dump of assembler code for function custom_insn:
-	     0x00010132 <+0>:	addi	sp,sp,-16
-	     0x00010134 <+2>:	sw	s0,12(sp)
-	     0x00010136 <+4>:	addi	s0,sp,16
-	     0x00010138 <+6>:	0x52018b
-	     0x0001013c <+10>:	0x9c45
-
-	My proposal, in this patch, is to change the behaviour to this:
-
-	  Dump of assembler code for function custom_insn:
-	     0x00010132 <+0>:	addi	sp,sp,-16
-	     0x00010134 <+2>:	sw	s0,12(sp)
-	     0x00010136 <+4>:	addi	s0,sp,16
-	     0x00010138 <+6>:	.4byte	0x52018b
-	     0x0001013c <+10>:	.2byte	0x9c45
-
-	Adding the .4byte and .2byte opcodes.  The benefit that I see here is
-	that in the patched version of the tools, the disassembler output can
-	be fed back into the assembler and it should assemble to the same
-	binary format.  Before the patch, the disassembler output is invalid
-	assembly.
-
-	I've started a RISC-V specific test file under binutils so that I can
-	add a test for this change.
-
-	binutils/ChangeLog:
-
-		* testsuite/binutils-all/riscv/riscv.exp: New file.
-		* testsuite/binutils-all/riscv/unknown.d: New file.
-		* testsuite/binutils-all/riscv/unknown.s: New file.
-
-	opcodes/ChangeLog:
-
-		* riscv-dis.c (riscv_disassemble_insn): Print a .%dbyte opcode
-		before an unknown instruction, '%d' is replaced with the
-		instruction length.
-
-2021-09-20  Alan Modra  <amodra@gmail.com>
-
-	Fix allocate_filenum last dir/file checks
-		* dwarf2dbg.c (allocate_filenum) Correct use of last_used_dir_len.
-
-2021-09-20  Alan Modra  <amodra@gmail.com>
-
-	Re: PR28149, debug info with wrong file association
-	Fixes segfaults when building aarch64-linux kernel, due to only doing
-	part of the work necessary when allocating file numbers late.  I'd
-	missed looping over subsegments, which resulted in some u.filename
-	entries left around and later interpreted as u.view.
-
-		PR 28149
-		* dwarf2dbg.c (purge_generated_debug): Iterate over subsegs too.
-		(dwarf2_finish): Call do_allocate_filenum for all subsegs too,
-		in a separate loop before subsegs are chained.
-
-2021-09-20  Alan Modra  <amodra@gmail.com>
-
-	Move eelf_mipsel_haiki.c to ALL_64_EMULATION_SOURCES
-	--enable-targets=all on a 32-bit host results in a link failure with
-	undefined references due to elfxx-mips.c not being compiled.  This
-	patch fixes that by putting eelf_mipsel_haiki.c in the correct
-	EMULATION_SOURCES Makefile variable.  I've also added a bunch of
-	missing file dependencies and sorted a few things so that it's easier
-	to verify dependencies are present.
-
-		* Makfile.am: Add missing haiku dependencies, sort.
-		(ALL_EMULATION_SOURCES): Sort.  Move eelf_mipsel_haiku.c to..
-		(ALL_64_EMULATION_SOURCES): ..here.  Sort.
-		* Makfile.in: Regenerate.
-
-2021-09-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Don't set version info on unversioned symbols
-	Don't set version info on unversioned symbols when seeing a hidden
-	versioned symbol after an unversioned definition and the default
-	versioned symbol.
-
-	bfd/
-
-		PR ld/28348
-		* elflink.c (elf_link_add_object_symbols): Don't set version info
-		on unversioned symbols.
-
-	ld/
-
-		PR ld/28348
-		* testsuite/ld-elf/pr28348.rd: New file.
-		* testsuite/ld-elf/pr28348.t: Likewise.
-		* testsuite/ld-elf/pr28348a.c: Likewise.
-		* testsuite/ld-elf/pr28348b.c: Likewise.
-		* testsuite/ld-elf/pr28348c.c: Likewise.
-		* testsuite/ld-elf/shared.exp: Run PR ld/28348 tests.
-
-2021-09-19  Mike Frysinger  <vapier@gentoo.org>
-
-	gdb: manual: update @inforef to @xref
-	The @inforef command is deprecated, and @xref does the samething.
-	Also had to update the text capitalization to match current manual.
-	Verified that info & HTML links work.
-
-2021-09-19  Weimin Pan  <weimin.pan@oracle.com>
-
-	CTF: multi-CU and archive support
-	Now gdb is capable of debugging executable, which consists of multiple
-	compilation units (CUs) with the CTF debug info. An executable could
-	potentially have one or more archives, which, in CTF context, contain
-	conflicting types.
-
-	all changes were made in ctfread.c in which elfctf_build_psymtabs was
-	modified to handle archives, via the ctf archive iterator and its callback
-	build_ctf_archive_member and scan_partial_symbols was modified to scan
-	archives, which are treated as subfiles, to build the psymtabs.
-
-	Also changes were made to handle CTF's data object section and function
-	info section which now share the same format of their contents - an array
-	of type IDs. New functions ctf_psymtab_add_stt_entries, which is called by
-	ctf_psymtab_add_stt_obj and ctf_psymtab_add_stt_func, and add_stt_entries,
-	which is called by add_stt_obj and add_stt_func when setting up psymtabs
-	and full symtab, respectively.
-
-2021-09-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.server/server-kill.exp with -m32
-	When running test-case gdb.server/server-kill.exp with target board unix/-m32,
-	I run into:
-	...
-	0xf7fd6b20 in _start () from /lib/ld-linux.so.2^M
-	(gdb) Executing on target: kill -9 13082    (timeout = 300)
-	builtin_spawn -ignore SIGHUP kill -9 13082^M
-	bt^M
-	(gdb) FAIL: gdb.server/server-kill.exp: kill_pid_of=server: test_unwind_syms: bt
-	...
-
-	The test-case expects the backtrace command to trigger remote communication,
-	which then should result in a "Remote connection closed" or similar.
-
-	However, no remote communication is triggered, because we hit the "Check that
-	this frame is unwindable" case in get_prev_frame_always_1.
-
-	We don't hit this problem in the kill_pid_of=inferior case, because there we
-	run to main before doing the backtrace.
-
-	Fix this by doing the same in the kill_pid_of=server case.
-
-	Tested on x86_64-linux.
-
-2021-09-18  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/ada] Handle artificial local symbols
-	With current master and gcc 7.5.0/8.5.0, we have this timeout:
-	...
-	(gdb) print s^M
-	Multiple matches for s^M
-	[0] cancel^M
-	[1] s at src/gdb/testsuite/gdb.ada/interface/foo.adb:20^M
-	[2] s at src/gdb/testsuite/gdb.ada/interface/foo.adb:?^M
-	> FAIL: gdb.ada/interface.exp: print s (timeout)
-	...
-
-	[ The FAIL doesn't reproduce with gcc 9.3.1.  This difference in
-	behaviour bisects to gcc commit d70ba0c10de.
-
-	The FAIL with earlier gcc bisects to gdb commit ba8694b650b. ]
-
-	The FAIL is caused by gcc generating this debug info describing a named
-	artificial variable:
-	...
-	 <2><1204>: Abbrev Number: 31 (DW_TAG_variable)
-	    <1205>   DW_AT_name        : s.14
-	    <1209>   DW_AT_type        : <0x1213>
-	    <120d>   DW_AT_artificial  : 1
-	    <120d>   DW_AT_location    : 5 byte block: 91 e0 7d 23 18   \
-	      (DW_OP_fbreg: -288; DW_OP_plus_uconst: 24)
-	...
-
-	An easy way to fix this would be to simply not put named artificial variables
-	into the symbol table.  However, that causes regressions for Ada.  It relies
-	on being able to get the value from such variables, using a named reference.
-
-	Fix this instead by marking the symbol as artificial, and:
-	- ignoring such symbols in ada_resolve_variable, which fixes the FAIL
-	- ignoring such ada symbols in do_print_variable_and_value, which prevents
-	  them from showing up in "info locals"
-
-	Note that a fix for the latter was submitted here (
-	https://sourceware.org/pipermail/gdb-patches/2008-January/054994.html ), and
-	this patch borrows from it.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Joel Brobecker  <brobecker@adacore.com>
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28180
-
-2021-09-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	PR28149 part 2, purge generated line info
-	Mixing compiler generated line info with gas generated line info is
-	generally just confusing.  Also .loc directives with non-zero view
-	fields might reference a previous .loc.  It becomes a little more
-	tricky to locate that previous .loc if there might be gas generated
-	line info present too.  Mind you, we turn off gas generation of line
-	info on seeing compiler generated line info, so any reference back
-	won't hit gas generated line info.  At least, if the view info is
-	sane.  Unfortunately, gas needs to handle mangled source.
-
-		PR 28149
-		* dwarf2dbg.c (purge_generated_debug): New function.
-		(dwarf2_directive_filename): Call the above.
-		(out_debug_line): Don't segfault after purging.
-		* testsuite/gas/i386/dwarf2-line-4.d: Update expected output.
-		* testsuite/gas/i386/dwarf4-line-1.d: Likewise.
-		* testsuite/gas/i386/dwarf5-line-1.d: Likewise.
-		* testsuite/gas/i386/dwarf5-line-2.d: Likewise.
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	PR28149, debug info with wrong file association
-	gcc-11 and gcc-12 pass -gdwarf-5 to gas, in order to prime gas for
-	DWARF 5 level debug info.  Unfortunately it seems there are cases
-	where the compiler does not emit a .file or .loc dwarf debug directive
-	before any machine instructions.  (Note that the .file directive
-	typically emitted as the first line of assembly output doesn't count as
-	a dwarf debug directive.  The dwarf .file has a file number before the
-	file name string.)
-
-	This patch delays allocation of file numbers for gas generated line
-	debug info until the end of assembly, thus avoiding any clashes with
-	compiler generated file numbers.  Two fixes for test case source are
-	necessary;  A .loc can't use a file number that hasn't already been
-	specified with .file.
-
-	A followup patch will remove all the gas generated line info on
-	seeing a .file directive.
-
-		PR 28149
-		* dwarf2dbg.c (num_of_auto_assigned): Delete.
-		(current): Update initialisation.
-		(set_or_check_view): Replace all accesses to view with u.view.
-		(dwarf2_consume_line_info): Likewise.
-		(dwarf2_directive_loc): Likewise.  Assert that we aren't generating
-		line info.
-		(dwarf2_gen_line_info_1): Don't call set_or_check_view on
-		gas generated line entries.
-		(dwarf2_gen_line_info): Set and track filenames for gas generated
-		line entries.  Simplify generation of labels.
-		(get_directory_table_entry): Use filename_cmp when comparing dirs.
-		(do_allocate_filenum): New function.
-		(dwarf2_where): Set u.filename and filenum to -1 for gas generated
-		line entries.
-		(dwarf2_directive_filename): Remove num_of_auto_assigned handling.
-		(process_entries): Update view field access.  Call
-		do_allocate_filenum.
-		* dwarf2dbg.h (struct dwarf2_line_info): Add filename field in
-		union aliasing view.
-		* testsuite/gas/i386/dwarf2-line-3.s: Add .file directive.
-		* testsuite/gas/i386/dwarf2-line-4.s: Likewise.
-		* testsuite/gas/i386/dwarf2-line-4.d: Update expected output.
-		* testsuite/gas/i386/dwarf4-line-1.d: Likewise.
-		* testsuite/gas/i386/dwarf5-line-1.d: Likewise.
-		* testsuite/gas/i386/dwarf5-line-2.d: Likewise.
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] PowerPC64 support for sym+addend GOT entries
-	Pass addends to all the GOT handling functions, plus remove some
-	extraneous asserts.
-
-		PR 28192
-		* powerpc.cc (Output_data_got_powerpc): Add addend parameter to
-		all methods creating got entries.
-		(Target_powerpc::Scan::local): Pass reloc addend to got handling
-		functions, and when creating dynamic got relocations.
-		(Target_powerpc::Scan::global): Likewise.
-		(Target_powerpc::Relocate::relocate): Likewise.  Remove extraneous
-		assertions.
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Got_entry::write addends
-	This takes care of writing out GOT entries with addends.  The local
-	symbol case was already largely handled, except for passing the addend
-	to tls_offset_for_local which might need the addend in a
-	local_got_offset call.  That's needed also in tls_offset_for_global.
-
-	I'm assuming here that GOT entries for function symbols won't ever
-	have addends, and in particular that a GOT entry referencing PLT call
-	stub code won't want an offset into the code.
-
-		PR 28192
-		* output.cc (Output_data_got::Got_entry::write): Include addend
-		in global symbol value.  Pass addend to tls_offset_for_*.
-		* powerpc.cc (Target_powerpc::do_tls_offset_for_local): Handle addend.
-		(Target_powerpc::do_tls_offset_for_global): Likewise.
-		* s390.cc (Target_s390::do_tls_offset_for_local): Likewise.
-		(Target_s390::do_tls_offset_for_global): Likewise.
-		* target.h (Target::tls_offset_for_local): Add addend param.
-		(Target::tls_offset_for_global): Likewise.
-		(Target::do_tls_offset_for_local): Likewise.
-		(Target::do_tls_offset_for_global): Likewise.
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Output_data_got create entry method addends
-	This patch makes all the Output_data_got methods that create new
-	entries accept an optional addend.
-
-		PR 28192
-		* output.h (Output_data_got::add_global): Add optional addend
-		parameter.  Update comment.  Delete overload without addend.
-		(Output_data_got::add_global_plt): Likewise.
-		(Output_data_got::add_global_tls): Likewise.
-		(Output_data_got::add_global_with_rel): Likewise.
-		(Output_data_got::add_global_pair_with_rel): Likewise.
-		(Output_data_got::add_local_plt): Likewise.
-		(Output_data_got::add_local_tls): Likewise.
-		(Output_data_got::add_local_tls_pair): Likewise.
-		(Output_data_got::reserve_local): Likewise.
-		(Output_data_got::reserve_global): Likewise.
-		(Output_data_got::Got_entry): Include addend in global sym
-		constructor.  Delete local sym constructor without addend.
-		* output.cc (Output_data_got::add_global): Add addend param,
-		pass to got handling methods.
-		(Output_data_got::add_global_plt): Likewise.
-		(Output_data_got::add_global_with_rel): Likewise.
-		(Output_data_got::add_global_pair_with_rel): Likewise.
-		(Output_data_got::add_local_plt): Likewise.
-		(Output_data_got::add_local_tls_pair): Likewise.
-		(Output_data_got::reserve_local): Likewise.
-		(Output_data_got::reserve_global): Likewise.
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Output_data_got tidy
-	Some Output_data_got methods already have support for addends, but
-	were implemented as separate methods.  This removes unnecessary code
-	duplication.
-
-	Relobj::local_has_got_offset and others there get a similar treatment.
-	Comments are removed since it should be obvious without a comment, and
-	the existing comments are not precisely what the code does.  For
-	example, a local_has_got_offset call without an addend does not return
-	whether the local symbol has *a* GOT offset of type GOT_TYPE, it
-	returns whether there is a GOT entry of type GOT_TYPE for the symbol
-	with addend of zero.
-
-		PR 28192
-		* output.h (Output_data_got::add_local): Make addend optional.
-		(Output_data_got::add_local_with_rel): Likewise.
-		(Output_data_got::add_local_pair_with_rel): Likewise.
-		* output.cc (Output_data_got::add_local): Delete overload
-		without addend.
-		(Output_data_got::add_local_with_rel): Likewise.
-		(Output_data_got::add_local_pair_with_rel): Likewise.
-		* object.h (Relobj::local_has_got_offset): Make addend optional.
-		Delete overload without addend later.  Update comment.
-		(Relobj::local_got_offset): Likewise.
-		(Relobj::set_local_got_offset): Likewise.
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Remove addend from Local_got_entry_key
-	This patch removes the addend from Local_got_entry_key, which is
-	unnecessary now that Got_offset_list has an addend.  Note that it
-	might be advantageous to keep the addend in Local_got_entry_key when
-	linking objects containing a large number of section_sym+addend@got
-	relocations.  I opted to save some memory by removing the field but
-	left the class there in case we might need to restore {sym,addend}
-	lookup.  That's also why this change is split out from the
-	Got_offset_list change.
-
-		PR 28192
-		* object.h (Local_got_entry_key): Delete addend_ field.
-		Adjust constructor and methods to suit.
-		* object.cc (Sized_relobj::do_for_all_local_got_entries):
-		Update key.
-
-2021-09-17  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] Got_offset_list: addend field
-	This is the first in a series of patches aimed at supporting GOT
-	entries against symbol plus addend generally for PowerPC64 rather than
-	just section symbol plus addend as gold has currently.
-
-	This patch adds an addend field to Got_offset_list, so that both local
-	and global symbols can have GOT entries with addend.
-
-		PR 28192
-		* object.h (Got_offset_list): Add addend_ field, init in both
-		constructors.  Adjust all accessors to suit.
-		(Sized_relobj::do_local_has_got_offset): Adjust to suit.
-		(Sized_relobj::do_local_got_offset): Likewise.
-		(Sized_relobj::do_set_local_got_offset): Likewise.
-		* symtab.h (Symbol::has_got_offset): Add optional addend param.
-		(Symbol::got_offset, Symbol::set_got_offset): Likewise.
-		* incremental.cc (Local_got_offset_visitor::visit): Add unused
-		uint64_t parameter with FIXME.
-		(Global_got_offset_visitor::visit): Add unused uint64_t parameter.
-
-2021-09-17  Henry Castro  <hcvcastro@gmail.com>
-
-	Fix segfault when running ia16-elf-gdb
-	"A problem internal to GDB has been detected,
-	further debugging may prove unreliable."
-
-	Segmentation fault
-
-2021-09-17  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Merged extension string tables and their version tables into one.
-	There are two main reasons for this patch,
-
-	* In the past we had two extension tables, one is used to record all
-	supported extensions in bfd/elfxx-riscv.c, another is used to get the
-	default extension versions in gas/config/tc-riscv.c.  It is hard to
-	maintain lots of tables in different files, but in fact we can merge
-	them into just one table.  Therefore, we now define many riscv_supported_std*
-	tables, which record names and versions for all supported extensions.
-	We not only use these tables to initialize the riscv_ext_order, but
-	also use them to get the default versions of extensions, and decide if
-	the extensions should be enbaled by default.
-
-	* We add a new filed `default_enable' for the riscv_supported_std* tables,
-	to decide if the extension should be enabled by default.  For now if the
-	`default_enable' field of the extension is set to EXT_DEFAULT, then we
-	should enable the extension when the -march and elf architecture attributes
-	are not set.  In the future, I suppose the `default_enable' can be set
-	to lots of EXT_<VENDOR>, each vendor can decide to open which extensions,
-	when the target triple of vendor is chosen.
-
-	The elf/linux regression tests of riscv-gnu-toolchain are passed.
-
-	bfd/
-		* elfnn-riscv.c (cpu-riscv.h): Removed sine it is included in
-		bfd/elfxx-riscv.h.
-		(riscv_merge_std_ext): Updated since the field of rpe is changed.
-		* elfxx-riscv.c (cpu-riscv.h): Removed.
-		(riscv_implicit_subsets): Added implicit extensions for g.
-		(struct riscv_supported_ext): Used to be riscv_ext_version.  Moved
-		from gas/config/tc-riscv.c, and added new field `default_enable' to
-		decide if the extension should be enabled by default.
-		(EXT_DEFAULT): Defined for `default_enable' field.
-		(riscv_supported_std_ext): It used to return the supported standard
-		architecture string, but now we move ext_version_table from
-		gas/config/tc-riscv.c to here, and rename it to riscv_supported_std_ext.
-		Currently we not only use the table to initialize riscv_ext_order, but
-		also get the default versions of extensions, and decide if the extensions
-		should be enbaled by default.
-		(riscv_supported_std_z_ext): Likewise, but is used for z* extensions.
-		(riscv_supported_std_s_ext): Likewise, but is used for s* extensions.
-		(riscv_supported_std_h_ext): Likewise, but is used for h* extensions.
-		(riscv_supported_std_zxm_ext): Likewise, but is used for zxm* extensions.
-		(riscv_all_supported_ext): Includes all supported extension tables.
-		(riscv_known_prefixed_ext): Updated.
-		(riscv_valid_prefixed_ext): Updated.
-		(riscv_init_ext_order): Init the riscv_ext_order table according to
-		riscv_supported_std_ext.
-		(riscv_get_default_ext_version): Moved from gas/config/tc-riscv.c.
-		Get the versions of extensions from riscv_supported_std* tables.
-		(riscv_parse_add_subset): Updated.
-		(riscv_parse_std_ext): Updated.
-		(riscv_set_default_arch): Set the default subset list according to
-		the default_enable field of riscv_supported_*ext tables.
-		(riscv_parse_subset): If the input ARCH is NULL, then we call
-		riscv_set_default_arch to set the default subset list.
-		* elfxx-riscv.h (cpu-riscv.h): Included.
-		(riscv_parse_subset_t): Removed get_default_version field, and added
-		isa_spec field to replace it.
-		(extern riscv_supported_std_ext): Removed.
-	gas/
-		* (bfd/cpu-riscv.h): Removed.
-		(struct riscv_ext_version): Renamed and moved to bfd/elfxx-riscv.c.
-		(ext_version_table): Likewise.
-		(riscv_get_default_ext_version): Likewise.
-		(ext_version_hash): Removed.
-		(init_ext_version_hash): Removed.
-		(riscv_set_arch): Updated since the field of rps is changed.  Besides,
-		report error when the architecture string is empty.
-		(riscv_after_parse_args): Updated.
-
-2021-09-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-16  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix interrupted sleep in multi-threaded test-cases
-	When running test-case gdb.threads/continue-pending-status.exp with native, I
-	have:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	PASS: gdb.threads/continue-pending-status.exp: attempt 0: continue for ctrl-c
-	^C^M
-	Thread 1 "continue-pendin" received signal SIGINT, Interrupt.^M
-	[Switching to Thread 0x7ffff7fc4740 (LWP 1276)]^M
-	0x00007ffff758e4c0 in __GI___nanosleep () at nanosleep.c:27^M
-	27        return SYSCALL_CANCEL (nanosleep, requested_time, remaining);^M
-	(gdb) PASS: gdb.threads/continue-pending-status.exp: attempt 0: caught interrupt
-	...
-	but with target board unix/-m32, I run into:
-	...
-	(gdb) continue^M
-	Continuing.^M
-	PASS: gdb.threads/continue-pending-status.exp: attempt 0: continue for ctrl-c
-	[Thread 0xf74aeb40 (LWP 31957) exited]^M
-	[Thread 0xf7cafb40 (LWP 31956) exited]^M
-	[Inferior 1 (process 31952) exited normally]^M
-	(gdb) Quit^M
-	...
-
-	The problem is that the sleep (300) call at the end of main is interrupted,
-	which causes the inferior to exit before the ctrl-c can be send.
-
-	This problem is described at "Interrupted System Calls" in the docs, and the
-	suggested solution (using a sleep loop) indeed fixes the problem.
-
-	Fix this instead using the more prevalent:
-	...
-	  alarm (300);
-	  ...
-	  while (1) sleep (1);
-	...
-	which is roughly equivalent because the sleep is called at the end of main,
-	but slightly better because it guards against hangs from the start rather than
-	from the end of main.
-
-	Likewise in gdb.base/watch_thread_num.exp.
-
-	Likewise in gdb.btrace/enable-running.exp, but use the sleep loop there,
-	because the sleep is not called at the end of main.
-
-	Tested on x86_64-linux.
-
-2021-09-16  Mike Frysinger  <vapier@gentoo.org>
-
-	gdb: manual: fix werrors typo
-
-2021-09-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use function_range in gdb.dwarf2/dw2-abs-hi-pc.exp
-	When I run test-case gdb.dwarf2/dw2-abs-hi-pc.exp with gcc, we have:
-	...
-	(gdb) break hello^M
-	Breakpoint 1 at 0x4004c0: file dw2-abs-hi-pc-hello.c, line 24.^M
-	(gdb) PASS: gdb.dwarf2/dw2-abs-hi-pc.exp: break hello
-	...
-	but with clang, I run into:
-	...
-	(gdb) break hello^M
-	Breakpoint 1 at 0x4004e4^M
-	(gdb) FAIL: gdb.dwarf2/dw2-abs-hi-pc.exp: break hello
-	...
-
-	The problem is that the CU and function both have an empty address range:
-	...
-	 <0><d2>: Abbrev Number: 1 (DW_TAG_compile_unit)
-	    <108>   DW_AT_name        : dw2-abs-hi-pc-hello.c
-	    <123>   DW_AT_low_pc      : 0x4004e0
-	    <127>   DW_AT_high_pc     : 0x4004e0
-	 <1><12f>: Abbrev Number: 2 (DW_TAG_subprogram)
-	    <131>   DW_AT_name        : hello
-	    <13a>   DW_AT_low_pc      : 0x4004e0
-	    <13e>   DW_AT_high_pc     : 0x4004e0
-	...
-
-	The address ranges are set like this in dw2-abs-hi-pc-hello-dbg.S:
-	...
-	        .4byte  .hello_start    /* DW_AT_low_pc */
-	        .4byte  .hello_end      /* DW_AT_high_pc */
-	...
-	where the labels refer to dw2-abs-hi-pc-hello.c:
-	...
-	extern int v;
-
-	asm (".hello_start: .globl .hello_start\n");
-	void
-	hello (void)
-	{
-	asm (".hello0: .globl .hello0\n");
-	  v++;
-	asm (".hello1: .globl .hello1\n");
-	}
-	asm (".hello_end: .globl .hello_end\n");
-	...
-
-	Using asm labels in global scope is a known source of problems, as explained
-	in the comment of proc function_range in gdb/testsuite/lib/dwarf.exp.
-
-	Fix this by using function_range instead.
-
-	Tested on x86_64-linux with gcc and clang-7 and clang-12.
-
-2021-09-15  Claudiu Zissulescu  <claziss@synopsys.com>
-
-	arc: Fix got-weak linker test
-	Use regular expressions to fix the got-weak linker test.
-
-	ld/
-		* testsuite/got-weak.d: Update test.
-
-2021-09-15  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	bfd: fix incorrect type used in sizeof
-	Noticed in passing that we used 'sizeof (char **)' when calculating
-	the size of a list of 'char *' pointers.  Of course, this isn't really
-	going to make a difference anywhere, but we may as well be correct.
-
-	There should be no user visible changes after this commit.
-
-	bfd/ChangeLog:
-
-		* archures.c (bfd_arch_list): Use 'char *' instead of 'char **'
-		when calculating space for a string list.
-
-2021-09-15  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/doc] Fix typo in maint selftest entry
-	Fix typo "will by" -> "will be".
-
-2021-09-15  Tom de Vries  <tdevries@suse.de>
-
-	[bfd] Ensure unique printable names for bfd archs
-	Remove duplicate entry in bfd_ft32_arch and bfd_rx_arch.
-
-	Fix printable name for bfd_mach_n1: "nh1" -> "n1".
-
-		PR 28336
-		* cpu-ft32.c (arch_info_struct): Remove "ft32" entry.
-		* cpu-rx.c (arch_info_struct): Remove "rx" entry.
-		* cpu-nds32.c (bfd_nds32_arch): Fix printable name for bfd_mach_n1
-		entry.
-
-2021-09-15  Alan Modra  <amodra@gmail.com>
-
-	PR28328, dlltool ice
-		PR 28328
-		* archive.c (bfd_ar_hdr_from_filesystem): Don't use bfd_set_input_error
-		here, our caller will do that.
-
-2021-09-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb_load_no_complaints with gnu-debuglink
-	When running test-case gdb.dwarf2/dw2-ranges-psym-warning.exp with target
-	board gnu-debuglink I run into:
-	...
-	(gdb) file dw2-ranges-psym-warning^M
-	Reading symbols from dw2-ranges-psym-warning...^M
-	Reading symbols from .debug/dw2-ranges-psym-warning.debug...^M
-	(gdb) FAIL: gdb.dwarf2/dw2-ranges-psym-warning.exp: No complaints
-	...
-
-	Fix this by updating the regexp in gdb_load_no_complaints.
-
-	Tested on x86_64-linux.
-
-2021-09-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix function range handling in psymtabs
-	Consider the test-case from this patch.
-
-	We run into:
-	...
-	(gdb) PASS: gdb.dwarf2/dw2-ranges-psym-warning.exp: continue
-	bt^M
-	warning: (Internal error: pc 0x4004b6 in read in psymtab, but not in symtab.)^M
-	^M
-	warning: (Internal error: pc 0x4004b6 in read in psymtab, but not in symtab.)^M
-	^M
-	warning: (Internal error: pc 0x4004b6 in read in psymtab, but not in symtab.)^M
-	^M
-	warning: (Internal error: pc 0x4004b6 in read in psymtab, but not in symtab.)^M
-	^M
-	warning: (Internal error: pc 0x4004b6 in read in psymtab, but not in symtab.)^M
-	^M
-	warning: (Internal error: pc 0x4004b6 in read in psymtab, but not in symtab.)^M
-	^M
-	  read in psymtab, but not in symtab.)^M
-	^M
-	)^M
-	(gdb) FAIL: gdb.dwarf2/dw2-ranges-psym-warning.exp: bt
-	...
-
-	This happens as follows.
-
-	The function foo:
-	...
-	 <1><31>: Abbrev Number: 4 (DW_TAG_subprogram)
-	    <33>   DW_AT_name        : foo
-	    <37>   DW_AT_ranges      : 0x0
-	...
-	has these ranges:
-	...
-	    00000000 00000000004004c1 00000000004004d2
-	    00000000 00000000004004ae 00000000004004af
-	    00000000 <End of list>
-	...
-	which have a hole at at [0x4004af,0x4004c1).
-
-	However, the address map of the partial symtabs incorrectly maps addresses
-	in the hole (such as 0x4004b6 in the backtrace) to the foo CU.
-
-	The address map of the full symbol table of the foo CU however does not
-	contain the addresses in the hole, which is what the warning / internal error
-	complains about.
-
-	Fix this by making sure that ranges of functions are read correctly.
-
-	The patch adds a bit to struct partial_die_info, in this hole (shown for
-	x86_64-linux):
-	...
-	/*   11: 7   |     4 */    unsigned int canonical_name : 1;
-	/* XXX  4-byte hole  */
-	/*   16      |     8 */    const char *raw_name;
-	...
-	So there's no increase in size for 64-bit, but AFAIU there will be an increase
-	for 32-bit.
-
-	Tested on x86_64-linux.
-
-	gdb/ChangeLog:
-
-	2021-08-10  Tom de Vries  <tdevries@suse.de>
-
-		PR symtab/28200
-		* dwarf2/read.c (struct partial_die_info): Add has_range_info and
-		range_offset field.
-		(add_partial_subprogram): Handle pdi->has_range_info.
-		(partial_die_info::read): Set pdi->has_range_info.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-10  Tom de Vries  <tdevries@suse.de>
-
-		PR symtab/28200
-		* gdb.dwarf2/dw2-ranges-psym-warning-main.c: New test.
-		* gdb.dwarf2/dw2-ranges-psym-warning.c: New test.
-		* gdb.dwarf2/dw2-ranges-psym-warning.exp: New file.
-
-2021-09-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix CU list in .debug_names for dummy CUs
-	With current trunk and target board cc-with-debug-names we have:
-	...
-	(gdb) file dw2-ranges-psym^M
-	Reading symbols from dw2-ranges-psym...^M
-	warning: Section .debug_names in dw2-ranges-psym has abbreviation_table of \
-	  size 1 vs. written as 28, ignoring .debug_names.^M
-	(gdb) set complaints 0^M
-	(gdb) FAIL: gdb.dwarf2/dw2-ranges-psym.exp: No complaints
-	...
-
-	The executable has 8 compilation units:
-	...
-	$ readelf -wi dw2-ranges-psym | grep @
-	  Compilation Unit @ offset 0x0:
-	  Compilation Unit @ offset 0x2e:
-	  Compilation Unit @ offset 0xa5:
-	  Compilation Unit @ offset 0xc7:
-	  Compilation Unit @ offset 0xd2:
-	  Compilation Unit @ offset 0x145:
-	  Compilation Unit @ offset 0x150:
-	  Compilation Unit @ offset 0x308:
-	...
-	of which the ones at 0xc7 and 0x145 are dummy CUs (that is, they do not
-	contain a single DIE), which were added by recent commit 5ef670d81fd
-	"[gdb/testsuite] Add dummy start and end CUs in dwarf assembly".
-
-	The .debug_names section contains this CU table:
-	...
-	[  0] 0x0
-	[  1] 0x2e
-	[  2] 0xa5
-	[  3] 0xd2
-	[  4] 0x150
-	[  5] 0x308
-	[  6] 0x1
-	[  7] 0x0
-	...
-	The last two entries are incorrect, and the entries for the dummy CUs are
-	missing.
-
-	The last two entries are incorrect because here in write_debug_names we write
-	the dimension of the CU list as 8:
-	...
-	  /* comp_unit_count - The number of CUs in the CU list.  */
-	  header.append_uint (4, dwarf5_byte_order,
-	                     per_objfile->per_bfd->all_comp_units.size ()
-	                     - per_objfile->per_bfd->tu_stats.nr_tus);
-	...
-	while the actual dimension of the CU list is 6.
-
-	The discrepancy is caused by this code which skips the dummy CUs:
-	...
-	  for (int i = 0; i < per_objfile->per_bfd->all_comp_units.size (); ++i)
-	    {
-	      ...
-	      /* CU of a shared file from 'dwz -m' may be unused by this main
-	        file.  It may be referenced from a local scope but in such
-	        case it does not need to be present in .debug_names.  */
-	      if (psymtab == NULL)
-	       continue;
-	...
-	because they have a null partial symtab.
-
-	We can fix this by writing the actual dimension of the CU list, but that still
-	leaves the dummy CUs out of the CU list.  The purpose of having these is to
-	delimit the end of preceding CUs.
-
-	So, fix this by:
-	- removing the code that skips the dummy CUs (note that the same change
-	  was done for .gdb_index in commit efba5c2319d '[gdb/symtab] Handle PU
-	  without import in "save gdb-index"'.
-	- verifying that all units are represented in the CU/TU lists
-	- using the actual CU list size when writing the dimension of the CU list
-	  (and likewise for the TU list).
-
-	Tested on x86_64-linux with native and target board cc-with-debug-names.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28261
-
-2021-09-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Generate .debug_aranges in gdb.dwarf2/locexpr-data-member-location.exp
-	When running test-case gdb.dwarf2/locexpr-data-member-location.exp with target
-	board cc-with-debug-names, all tests pass but we run into PR28261:
-	...
-	(gdb) run ^M
-	Starting program: locexpr-data-member-location ^M
-	warning: Section .debug_names in locexpr-data-member-location-lib.so has \
-	  abbreviation_table of size 1 vs. written as 37, ignoring .debug_names.^M
-	...
-
-	Using a patch that fixes PR28261, the warning is gone, but we run into:
-	...
-	FAIL: gdb.dwarf2/locexpr-data-member-location.exp: step into foo
-	...
-
-	This is due a missing .debug_aranges contribution for the CU declared in
-	gdb.dwarf2/locexpr-data-member-location.exp.
-
-	Fix this by adding the missing .debug_aranges contribution.
-
-	Tested on x86_64-linux.
-
-2021-09-14  Claudiu Zissulescu  <claziss@synopsys.com>
-
-	arc: Fix potential invalid pointer access when fixing got symbols.
-	When statically linking, it can arrive to an undefined weak symbol of
-	which its value cannot be determined. However, we are having pieces of
-	code which doesn't take this situation into account, leading to access
-	a structure which may not be initialized. Fix this situation and add a
-	test.
-
-	bfd/
-	xxxx-xx-xx  Cupertino Miranda  <cmiranda@synopsys.com>
-	            Claudiu Zissulescu  <claziss@synopsys.com>
-
-		* arc-got.h (arc_static_sym_data): New structure.
-		(get_static_sym_data): New function.
-		(relocate_fix_got_relocs_for_got_info): Move the computation fo
-		symbol value and section to above introduced function, and use
-		this new function.
-
-	ld/testsuite/
-	xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
-
-		* ld-arc/got-weak.d: New file.
-		* ld-arc/got-weak.s: Likewise.
-
-
-	fix
-
-2021-09-14  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: bfin: add support for SDL2
-	This probably should have been ported long ago, but better late than
-	never.  We keep support for both versions for now since both projects
-	tend to have long lifetimes.  Maybe consider dropping SDL1 in another
-	ten years.
-
-2021-09-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-14  Tom Tromey  <tom@tromey.com>
-
-	Remove use of __CYGNUSCLIB__
-	I found a check of __CYGNUSCLIB__ in dbxread.c.  I think this is dead
-	code.  This patch removes it.
-
-2021-09-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Check for valid test name
-	When running gdb.base/batch-exit-status.exp I noticed that the test name
-	contains a newline:
-	...
-	PASS: gdb.base/batch-exit-status.exp: : No such file or directory\.^M
-	: No such file or directory\.: [lindex $result 2] == 0
-	...
-
-	Check for this in ::CheckTestNames::check, such that we have a warning:
-	...
-	PASS: gdb.base/batch-exit-status.exp: : No such file or directory\.^M
-	: No such file or directory\.: [lindex $result 2] == 0
-	WARNING: Newline in test name
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Fix exec check in gdb_print_insn_arm
-	With a gdb build with --enable-targets=all we run into a KFAIL:
-	...
-	KFAIL: gdb.gdb/unittest.exp: executable loaded: maintenance selftest, \
-	  failed none (PRMS: gdb/27891)
-	...
-	due to:
-	...
-	Running selftest print_one_insn.^M
-	Self test failed: arch armv8.1-m.main: self-test failed at \
-	  disasm-selftests.c:165^M
-	...
-
-	The test fails because we expect disassembling of one arm insn to consume 4
-	bytes and produce (using verbose = true in disasm-selftests.c):
-	...
-	arm mov r0, #0
-	...
-	but instead the disassembler uses thumb mode and only consumes 2
-	bytes and produces:
-	...
-	arm movs        r0, r0
-	...
-
-	The failure does not show up in the "no executable loaded" variant because
-	this code in gdb_print_insn_arm isn't triggered:
-	...
-	  if (current_program_space->exec_bfd () != NULL)
-	    info->flags |= USER_SPECIFIED_MACHINE_TYPE;
-	...
-	and consequently we do this in print_insn:
-	...
-	      if ((info->flags & USER_SPECIFIED_MACHINE_TYPE) == 0)
-	        info->mach = bfd_mach_arm_unknown;
-	...
-	and don't set force_thumb to true in select_arm_features.
-
-	The code in gdb_print_insn_arm makes the assumption that the disassembly
-	architecture matches the exec architecture, which in this case is incorrect,
-	because the exec architecture is x86_64, and the disassembly architecture is
-	armv8.1-m.main.  Fix that by explicitly checking it:
-	...
-	  if (current_program_space->exec_bfd () != NULL
-	      && (current_program_space->exec_bfd ()->arch_info
-		  == gdbarch_bfd_arch_info (gdbarch)))
-	...
-
-	This fixes the print_one_insn failure, so remove the KFAIL.
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27891
-
-2021-09-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/tdep] Reset force_thumb in parse_arm_disassembler_options
-	With a gdb build with --enable-targets=all, we have 2 arch-specific failures
-	in selftest print_one_insn:
-	...
-	$ gdb -q -batch a.out -ex "maint selftest print_one_insn" 2>&1 \
-	  | grep "Self test failed: arch "
-	Self test failed: arch armv8.1-m.main: self-test failed at \
-	  disasm-selftests.c:165
-	Self test failed: arch arm_any: self-test failed at disasm-selftests.c:165
-	$
-	...
-
-	During the first failed test, force_thumb is set to true, and remains so until
-	and during the second test, which causes the second failure.
-
-	Fix this by resetting force_thumb to false in parse_arm_disassembler_options,
-	such that we get just one failure:
-	...
-	$ gdb -q -batch a.out -ex "maint selftest print_one_insn" 2>&1 \
-	  | grep "Self test failed: arch "
-	Self test failed: arch armv8.1-m.main: self-test failed at \
-	  disasm-selftests.c:165
-	$
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-13  Tom Tromey  <tromey@adacore.com>
-
-	Fix no-Python build
-	A build without Python will currently fail, because
-	selftests::test_python uses gdb_python_initialized, which is only
-	conditionally defined.
-
-	This patch fixes the build by making test_python also be conditionally
-	defined.  I chose this approach because the selftest will fail if
-	Python is not enabled, so it didn't seem useful to leave it defined.
-
-2021-09-13  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Update the assembler insn testcase.
-	Since the 0x57 is preserved for the vadd.vv instruction in the integration
-	branch, remove it to make sure the testcase can work.
-
-	gas/
-		* testsuite/gas/riscv/insn.d: Remove 0x57 since it is preserved
-		for vadd.vv instruction.
-		* testsuite/gas/riscv/insn.s: Likewise.
-
-2021-09-13  Jan Beulich  <jbeulich@suse.com>
-
-	MIPS: don't use get_symbol_name() for section parsing.  With s_change_section() later calling obj_elf_section(), it seems better to pre-parse the section name by the same function that will be used there. This way no differences in what is accepted will result.
-	gas	* config/tc-mips.c (s_change_section): Use obj_elf_section_name to
-		parse the section name.
-
-	ia64: don't use get_symbol_name() for section parsing.  With cross_section() later calling obj_elf_section(), it seems better to pre-parse the section name by the same function that will be used there. This way no differences in what is accepted will result.
-	gas	* config/tc-ia64.c (cross_section): Use obj_elf_section_name to
-		parse the section name.
-
-2021-09-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.gdb/selftest.exp
-	With a gdb build with CFLAGS "-O2 -g -flto=auto", I run into:
-	...
-	 #7  gdb_main (args=0x7fffffffd220) at src/gdb/main.c:1368^M
-	 #8  main (argc=<optimized out>, argv=<optimized out>) at src/gdb/gdb.c:32^M
-	 (gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler
-	...
-	which means that this regexp in proc test_with_self fails:
-	...
-	  -re "#0.*(read|poll).*in main \\(.*\\) at .*gdb\\.c.*$gdb_prompt $" {
-	...
-
-	The problem is that gdb_main has been inlined into main, and consequently the
-	backtrace uses:
-	...
-	 #x  <fn> ...
-	...
-	instead of
-	...
-	 #x  <address> in <fn> ...
-	...
-
-	Fix this by updating the regexp to not require "in" before " main".
-
-	Tested on x86_64-linux.
-
-2021-09-13  Alan Modra  <amodra@gmail.com>
-
-	Re: Deprecate a.out support for NetBSD targets
-		* config.bfd: Correct m68-*-*bsd* obsolete target match.
-
-2021-09-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix test name in gdb.base/batch-exit-status.exp
-	When running gdb.base/batch-exit-status.exp I noticed that the test name
-	contains a newline:
-	...
-	PASS: gdb.base/batch-exit-status.exp: : No such file or directory\.^M
-	: No such file or directory\.: [lindex $result 2] == 0
-	...
-
-	The mistake is that I passed an output regexp argument to a parameter
-	interpreted as testname prefix.  Fix this by passing a testname prefix
-	instead.
-
-	Add support for checking output, to be able to handle the output regexp
-	argument.
-
-	Tested on x86_64-linux.
-
-2021-09-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Set sysroot earlier in local-board.exp
-	When running test-case gdb.base/batch-exit-status.exp for native, it passes.
-	But with target board cc-with-debug-names, we run into (added missing double
-	quotes for clarity):
-	...
-	builtin_spawn $build/gdb/testsuite/../../gdb/gdb -nw -nx \
-	  -data-directory $build/gdb/testsuite/../data-directory \
-	  -iex "set height 0" -iex "set width 0" -ex "set sysroot" -batch ""^M
-	: No such file or directory.^M
-	PASS: gdb.base/batch-exit-status.exp: \
-	  : No such file or directory\.: [lindex $result 2] == 0
-	FAIL: gdb.base/batch-exit-status.exp: \
-	  : No such file or directory\.: [lindex $result 3] == $expect_status
-	...
-
-	The difference between the passing and failing case is that with native we
-	have (leaving out set height/width for brevity):
-	...
-	$ gdb -batch ""; echo $?
-	: No such file or directory.
-	1
-	...
-	and with target board cc-with-debug-names:
-	...
-	$ gdb -ex "set sysroot" -batch ""; echo $?
-	: No such file or directory.
-	0
-	...
-
-	The difference is expected.  GDB returns the exit status of the last executed
-	command.  In the former case that's 'file ""', which fails.  In the latter case,
-	that's 'set sysroot', which succeeds.
-
-	Fix this by setting sysroot using -iex instead of -ex in local-board.exp, such
-	that we have the expected:
-	...
-	$ gdb -iex "set sysroot" -batch ""; echo $?
-	: No such file or directory.
-	1
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-11  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: run: change help short option to -h
-	It's unclear why -H was picked over the more standard -h, but since
-	-h is still not used, just change -H to -h to match pretty much every
-	other tool in the sourceware tree.
-
-2021-09-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Reimplement gdb.gdb/python-selftest.exp as unittest
-	The test-case gdb.gdb/python-selftest.exp:
-	- patches the gdb_python_initialized variable in gdb to 0
-	- checks that the output of a python command is "Python not initialized"
-
-	Reimplement gdb.gdb/python-selftest.exp as unittest, using:
-	- execute_command_to_string to capture the output
-	- try/catch to catch the "Python not initialized" exception.
-
-	Tested on x86_64-linux.
-
-2021-09-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATE in gdb.base/global-var-nested-by-dso.exp
-	Fix DUPLICATE in gdb.base/global-var-nested-by-dso.exp by naming commands more
-	uniquely.
-
-2021-09-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix DUPLICATE in gdb.base/skip-solib.exp
-	Fix DUPLICATE in gdb.base/skip-solib.exp by using with_test_prefix.
-
-	Also fix indentation style and long lines, remove outdated question/answer
-	bits, and use multi_line.
-
-2021-09-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix handling of nr_args < 3 in mi_gdb_test
-	The documentation of mi_gdb_test states that the command, pattern and message
-	arguments are mandatory:
-	...
-	 # mi_gdb_test COMMAND PATTERN MESSAGE [IPATTERN] -- send a command to gdb;
-	 #   test the result.
-	...
-
-	However, this is not checked, and when mi_gdb_test is called with less than 3
-	arguments, it passes or fails silently.
-
-	Fix this by using the following semantics:
-	- if there are 1 or 2 arguments, use the command as the message.
-	- if there is 1 argument, use ".*" as the pattern.
-	- if there are no or too much arguments, error out.
-
-	Fix a PATH issue in gdb.mi/mi-logging.exp, introduced by using the command as
-	message.  Fix a few other trivial-looking FAILs.
-
-	There are 11 less trivial-looking FAILs left in gdb.mi in test-cases:
-	- mi-nsmoribund.exp
-	- mi-breakpoint-changed.exp
-	- mi-break.exp.
-
-	Tested on x86_64-linux.
-
-2021-09-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add string_list_to_regexp
-	A regexp pattern with escapes like this is hard to read:
-	...
-	set re "~\"\[$\]$decimal = 1\\\\n\"\r\n\\^done"
-	...
-
-	We can make it more readable by spacing out parts (which allows us to also use
-	the curly braces where that's convenient):
-	...
-	set re [list "~" {"} {[$]} $decimal " = 1" "\\\\" "n" {"} "\r\n" "\\^" "done"]
-	set re [join $re ""]
-	...
-	or by using string_to_regexp:
-	...
-	set re [list \
-	            [string_to_regexp {~"$}] \
-	            $decimal \
-	            [string_to_regexp " = 1\\n\"\r\n^done"]]
-	set re [join $re ""]
-	...
-	Note: we have to avoid applying string_to_list to decimal, which is already a
-	regexp.
-
-	Add a proc string_list_to_regexp to make it easy to do both:
-	...
-	set re [list \
-	            [string_list_to_regexp ~ {"} $] \
-	            $decimal \
-	            [string_list_to_regexp " = 1" \\ n {"} \r\n ^ done]]
-	...
-
-	Also add a test-case gdb.testsuite/string_to_regexp.exp.
-
-2021-09-10  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle unrecognized command line option in gdb_compile_test
-	When running the gdb testsuite with gnatmake-4.8, I get many fails of the
-	following form:
-	...
-	gcc: error: unrecognized command line option '-fgnat-encodings=all'^M
-	gnatmake: "gdb.ada/O2_float_param/foo.adb" compilation error^M
-	compiler exited with status 1
-	compilation failed: gcc ... gdb.ada/O2_float_param/foo.adb
-	gcc: error: unrecognized command line option '-fgnat-encodings=all'
-	gnatmake: "gdb.ada/O2_float_param/foo.adb" compilation error
-	FAIL: gdb.ada/O2_float_param.exp: scenario=all: compilation foo.adb
-	...
-
-	Fix this by marking the test unsupported instead, such that we have:
-	...
-	UNSUPPORTED: gdb.ada/O2_float_param.exp: scenario=all: compilation foo.adb \
-	  (unsupported option '-fgnat-encodings=all')
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-10  Alan Modra  <amodra@gmail.com>
-
-	PowerPC, sanity check r_offset in relocate_section
-	        * elf32-ppc.c (offset_in_range): New function.
-		(ppc_elf_vle_split16): Sanity check r_offset before accessing
-		section contents.  Return status.
-	        (ppc_elf_relocate_section): Sanity check r_offset before
-	        accessing section contents.  Don't segfault on NULL howto.
-
-	Re: gas: Use the directory name in .file 0
-		PR gas/28266
-		* testsuite/gas/elf/dwarf-5-file0-2.s: Use %object rather than
-		@object, .4byte instead of .long, and .asciz instead of .string.
-
-2021-09-10  Mike Frysinger  <vapier@gentoo.org>
-
-	etc: switch to automake
-	There's no content in here currently, so switching to automake is
-	pretty easy with a stub file.
-
-	etc: rename configure.in to configure.ac
-	The .in name has been deprecated for a long time in favor of .ac.
-
-2021-09-10  H.J. Lu  <hjl.tools@gmail.com>
-
-	gas: Use the directory name in .file 0
-	DWARF5 allows .file 0 to take an optional directory name.  Set the entry
-	0 of the directory table to the directory name in .file 0.
-
-		PR gas/28266
-		* dwarf2dbg.c (get_directory_table_entry): Add an argument for
-		the directory name in .file 0 and use it, instead of PWD.
-		(allocate_filenum): Pass NULL to get_directory_table_entry.
-		(allocate_filename_to_slot): Pass the incoming dirname to
-		get_directory_table_entry.
-		* testsuite/gas/elf/dwarf-5-file0-2.d: New file.
-		* testsuite/gas/elf/dwarf-5-file0-2.s: Likewise.
-		* testsuite/gas/elf/elf.exp: Run dwarf-5-file0-2.
-
-2021-09-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
-
-	gdb: Enable target rx-*-*linux.
-	I added rx-*-linux in binutils few yaers ago.
-	But missing this changes,
-
-2021-09-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/coredump-filter-build-id.exp with older eu-unstrip
-	On openSUSE Leap 42.3 with eu-unstrip 0.158, we run into:
-	...
-	(gdb) PASS: gdb.base/coredump-filter-build-id.exp: save corefile
-	First line of eu-unstrip: \
-	  0x400000+0x202000 f4ae8502bd6a14770182382316bc595e9dc6f08b@0x400284 - - [exe]
-	FAIL: gdb.base/coredump-filter-build-id.exp: gcore dumped mapping with build-id
-	...
-
-	The test expects an actual file name instead of '[exe]', but that only got
-	introduced with eu-unstrip 0.161.  Before it printed '[exe]' or '[pie]'.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-2021-09-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix various issues in gdb.mi/mi-sym-info.exp
-	I noticed this failure in gdb.mi/mi-sym-info.exp with gcc-4.8:
-	...
-	FAIL: gdb.mi/mi-sym-info.exp: -symbol-info-functions --max-results 1 \
-	  (unexpected output)
-	...
-	due to function f2 instead of f3 being listed.
-
-	AFAICT, this is caused by a difference in debug info:
-	...
-	$ readelf -wi outputs/gdb.mi/mi-sym-info/mi-sym-info1.o \
-	  | egrep "DW_AT_name.*: f[1-3]"
-	    <72>   DW_AT_name        : f1
-	    <a1>   DW_AT_name        : f2
-	    <d0>   DW_AT_name        : f3
-	...
-	vs:
-	...
-	$ readelf -wi outputs/gdb.mi/mi-sym-info/mi-sym-info1.o \
-	  | egrep "DW_AT_name.*: f[1-3]"
-	    <f4>   DW_AT_name        : f3
-	    <123>   DW_AT_name        : f2
-	    <152>   DW_AT_name        : f1
-	...
-	and the command documentation does not mention an imposed order, so fix this
-	by allowing f2 as well.
-
-	Doing this fix, it made sense to do a refactoring of adding f2_re and f3_re
-	variables, in order to write (?:$f2_re|$f3_re), and I applied the same pattern
-	overall.
-
-	Furthermore, I found a silent FAIL due to calling mi_gdb_proc with 2 args, fix
-	by updating the regexp.
-
-	Then I ran with clang and found another FAIL, fix by updating the regexp.
-
-	Tested on x86_64-linux with gcc-4.8.5, gcc-7.5.0, gcc-11.2.1, clang-7.0.1 and
-	clang-12.0.1.
-
-2021-09-09  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Reimplement gdb.gdb/complaints.exp as unittest
-	When building gdb with "-Wall -O2 -g -flto=auto", I run into:
-	...
-	(gdb) call clear_complaints()^M
-	No symbol "clear_complaints" in current context.^M
-	(gdb) FAIL: gdb.gdb/complaints.exp: clear complaints
-	...
-
-	The problem is that lto has optimized away the clear_complaints function
-	and consequently the selftest doesn't work.
-
-	Fix this by reimplementing the selftest as a unit test.
-
-	Factor out two new functions:
-	- void
-	  execute_fn_to_ui_file (struct ui_file *file, std::function<void(void)> fn);
-	- std::string
-	  execute_fn_to_string (std::function<void(void)> fn, bool term_out);
-	and use the latter to capture the complaints output.
-
-	Tested on x86_64-linux.
-
-2021-09-09  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: remove all uses of Py_TPFLAGS_HAVE_ITER
-	Python 2 has a bit flag Py_TPFLAGS_HAVE_ITER which can be passed as
-	part of the tp_flags field when defining a new object type.  This flag
-	is not defined in Python 3 and so we define it to 0 in
-	python-internal.h (when IS_PY3K is defined).
-
-	The meaning of this flag is that the object has the fields tp_iter and
-	tp_iternext.  Note the use of "has" here, the flag says nothing about
-	the values in those fields, just that the type object has the fields.
-
-	In early versions of Python 2 these fields were no part of the
-	PyTypeObject struct, they were added in version 2.2 (see
-	https://docs.python.org/release/2.3/api/type-structs.html).  And so,
-	there could be a some code compiled out there which has a PyTypeObject
-	structure within it that doesn't even have the tp_iter and tp_iternext
-	fields, attempting to access these fields would be undefined
-	behaviour.
-
-	And so Python added the Py_TPFLAGS_HAVE_ITER flag.  If the flag is
-	present then Python is free to access the tp_iter and tp_iternext
-	fields.
-
-	If we consider GDB then we always assume that the tp_iter and
-	tp_iternext fields are part of PyTypeObject.  If someone was crazy
-	enough to try and compile GDB against Python 2.1 then we'd get lots of
-	build errors saying that we were passing too many fields when
-	initializing PyTypeObject structures.  And so, I claim, we can be sure
-	that GDB will always be compiled with a version of Python that has the
-	tp_iter and tp_iternext fields in PyTypeObject.
-
-	Next we can look at the Py_TPFLAGS_DEFAULT flag.  In Python 2, each
-	time additional fields are added to PyTypeObject a new Py_TPFLAGS_*
-	flag would be defined to indicate whether those flags are present or
-	not.  And, those new flags would be added to Py_TPFLAGS_DEFAULT.  And
-	so, in the latest version of Python 2 the Py_TPFLAGS_DEFAULT flag
-	includes Py_TPFLAGS_HAVE_ITER (see
-	https://docs.python.org/2.7/c-api/typeobj.html).
-
-	In GDB we pass Py_TPFLAGS_DEFAULT as part of the tp_flags for all
-	objects we define.
-
-	And so, in this commit, I propose to remove all uses of
-	Py_TPFLAGS_HAVE_ITER from GDB, it's simply not needed.
-
-	There should be no user visible changes after this commit.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: accept -EB/-EL short options
-	Many GNU tools accept -EB/-EL as short options for selecting big &
-	little endian modes.  While the sim has an -E option, it requires
-	spelling out "big" and "little".  Adding support for -EB & -EL is
-	thus quite trivial, so lets round it out to be less annoying.
-
-	sim: ppc: drop support for std-config.h overrides
-	Only the ppc arch supports this kind of source file override logic.
-	All the others expose knobs via configure flags, and for some of
-	these, the ppc code does as well.  For others, it doesn't make sense
-	to ever change them.  Since it's unlikely anyone is using this, drop
-	it all to simplify the code (and to get us a little closer to the
-	common sim code).
-
-	sim: ppc: enable use of gnulib
-	All other sim arches are using this now, so finish up the logic in
-	the ppc arch to enable gnulib usage here too.
-
-	sim: drop old O_NDELAY & FNBLOCK support
-	We use these older names inconsistently in the sim codebase, and time
-	has moved on long ago, so drop support for these non-standard names.
-	POSIX provides O_NONBLOCK for us, so use it everywhere.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: dv-sockser: enable for mingw targets too
-	We have enough functionality from gnulib now to build sockser on
-	all platforms.
-
-	Non-blocking I/O is supported when F_GETFL/F_SETFL are unavailable,
-	but we can address that in a follow up commit.  This mirrors what
-	is done in other places in the sim already.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: cgen: workaround Windows VOID define
-	The cgen framework provides a "VOID" type for code to use, but this
-	defines ends up conflicting with the standard Windows VOID define.
-	Since they actually define to the same thing ("void"), undef it here
-	to fix the Windows build.
-
-	We might want to reconsider the need for "VOID" in cgen, but that
-	will take larger discussion & coordination with the cgen project.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: dv-sockser: move sim-main.h include after system includes
-	The sim-main.h header is a bit of a dumping ground.  Every arch can
-	(and many do) define all sorts of weird & common names that end up
-	conflicting with system headers.  So including it before the system
-	headers sets us up for pain.  v850 is a good example of this -- when
-	building for mingw, we see weird failures:
-
-	$ i686-w64-mingw32-gcc ... -c -o dv-sockser.o ../../../../sim/v850/../common/dv-sockser.c
-	In file included from ../../../../sim/v850/sim-main.h:11,
-	                 from ../../../../sim/v850/../common/dv-sockser.c:24:
-	../../../../sim/v850/../common/sim-base.h:97:32: error: expected ')' before '->' token
-	  97 | # define STATE_CPU(sd, n) ((sd)->cpu[0])
-	     |                                ^~
-
-	While gcc is unhelpful at first, running it through the preprocessor
-	by hand shows more details:
-
-	$ i686-w64-mingw32-gcc ... -E -dD -o dv-sockser.i ../../../../sim/v850/../common/dv-sockser.c
-	$ i686-w64-mingw32-gcc -c dv-sockser.i
-	In file included from /usr/i686-w64-mingw32/usr/include/minwindef.h:163,
-	                 from /usr/i686-w64-mingw32/usr/include/windef.h:9,
-	                 from /usr/i686-w64-mingw32/usr/include/windows.h:69,
-	                 from /usr/i686-w64-mingw32/usr/include/winsock2.h:23,
-	                 from ../../gnulib/import/sys/socket.h:684,
-	                 from ../../gnulib/import/netinet/in.h:43,
-	                 from ../../../../sim/v850/../common/dv-sockser.c:39:
-	/usr/i686-w64-mingw32/usr/include/winnt.h:4803:25: error: expected ')' before '->' token
-	 4803 |       DWORD State;
-	      |                         ^
-	      |                         )
-
-	This is because v850 sets up this common name:
-
-	All of this needs cleaning up someday, but since the dv-sockser code
-	definitely should be fixed in this way, lets do that now and unblock
-	the v850 code.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: mips: delete unused PSIZE define
-	It's unclear what this define is for as it appears to be unused, and
-	has never been used in the history of the mips sim.  Delete it to tidy
-	up, and to fix build errors for Windows targets that have a standard
-	"PSIZE" struct in their system headers.  This doesn't show up yet as
-	most sim files don't include many system headers, but enabling sockser
-	code for mingw uncovers the conflict.
-
-	Unfortunately the error produced by gcc is inscrutable, but running
-	it through the preprocessor manually manages to provide a pointer to
-	the underlying issue.
-
-	$ i686-w64-mingw32-gcc ... -c -o dv-sockser.o ../../../../sim/mips/../common/dv-sockser.c
-	<command-line>: error: expected identifier or '(' before numeric constant
-	In file included from /usr/i686-w64-mingw32/usr/include/windows.h:71,
-	                 from /usr/i686-w64-mingw32/usr/include/winsock2.h:23,
-	                 from ../../gnulib/import/sys/socket.h:684,
-	                 from ../../gnulib/import/netinet/in.h:43,
-	                 from ../../../../sim/mips/../common/dv-sockser.c:39:
-	/usr/i686-w64-mingw32/usr/include/wingdi.h:2934:59: error: unknown type name 'LPSIZE'; did you mean 'LPSIZEL'?
-	 2934 |   WINGDIAPI WINBOOL WINAPI GetAspectRatioFilterEx(HDC hdc,LPSIZE lpsize);
-	      |                                                           ^~~~~~
-	      |                                                           LPSIZEL
-	...
-
-	$ i686-w64-mingw32-gcc ... -E -dD -o dv-sockser.i ../../../../sim/mips/../common/dv-sockser.c
-	$ i686-w64-mingw32-gcc -c dv-sockser.i
-	In file included from /usr/i686-w64-mingw32/usr/include/windows.h:69,
-	                 from /usr/i686-w64-mingw32/usr/include/winsock2.h:23,
-	                 from ../../gnulib/import/sys/socket.h:684,
-	                 from ../../gnulib/import/netinet/in.h:43,
-	                 from ../../../../sim/mips/../common/dv-sockser.c:39:
-	/usr/i686-w64-mingw32/usr/include/windef.h:104:9: error: expected identifier or '(' before numeric constant
-	  104 | } SIZE,*PSIZE,*LPSIZE;
-	      |         ^~
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: switch to common warning flags
-	Now that the ppc code has been cleaned up enough to use the same set
-	of warning flags as the common code, delete the ppc-specific configure
-	logic so we can leverage what the common code already defined for us.
-
-2021-09-09  Tom de Vries  <tdevries@suse.de>
-
-	sim: ppc: enable -Wpointer-sign warnings
-	When compiling with --enable-werror and CFLAGS="-O0 -g -Wall", we run into:
-	...
-	src/sim/ppc/hw_memory.c: In function 'hw_memory_init_address':
-	src/sim/ppc/hw_memory.c:204:7: error: pointer targets in passing argument 4 \
-	  of 'device_find_integer_array_property' differ in signedness \
-	  [-Werror=pointer-sign]
-	       &new_chunk->size);
-	       ^
-	...
-
-	Fix these by adding an explicit pointer cast.  It's a bit ugly to use APIs
-	based on signed integers to read out unsigned values, but in practice, this
-	is par for the course in the ppc code.
-
-	We already use signed APIs and assign the result to unsigned values a lot:
-	see how device_find_integer_property returns a signed integer (cell), but
-	then assign it to unsigned types.  The array APIs are not used that often
-	which is why we don't see many warnings, and we disable warnings when we
-	assign signed integers to unsigned integers in general.
-
-	The dtc/libfdt project (which is the standard in other projects) processes
-	the fdt blob as a series of bytes without any type information.  Typing is
-	left to the caller.  They have core APIs that read/write bytes, and a few
-	helper functions to cast/convert those bytes to the right value (e.g. u32).
-	In this ppc sim code, the core APIs use signed integers, and the callers
-	convert to unsigned, usually implicitly.
-
-	We could add some core APIs to the ppc sim that deal with raw bytes and then
-	add some helpers to convert to the right type, but that seems like a lot of
-	lifting for what boils down to a cast, and is effectively equivalent to all
-	the implicit assignments we use elsewhere.  Long term, a lot of the ppc code
-	should either get converted to existing sim common code, or we should stand
-	up proper APIs in the common code first, or use standard libraries to do all
-	the processing (e.g. libfdt).  Either way, this device.c code would all get
-	deleted, and callers (like these hw_*.c files) would get converted.  Which
-	is also why we go with a cast rather new (but largely unused) APIs.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: enable -Wmissing-declarations & -Wmissing-prototypes
-	This aligns with common code which already uses this flag.  We have
-	to add another local prototype to fix the failure, and add another
-	local decl for the SIM_DESC type.  Unwinding these will require a
-	lot more work & conversions in the process, so going with the decl
-	for now unblocks the warning unification.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: microblaze: replace custom basic types with common ones
-	The basic "byte" type conflicts with Windows headers, and we already
-	have common types that provide the right sizes.  So replace these with
-	the common ones to avoid issues.
-
-	  CC     dv-sockser.o
-	In file included from /usr/i686-w64-mingw32/usr/include/wtypes.h:8,
-	                 from /usr/i686-w64-mingw32/usr/include/winscard.h:10,
-	                 from /usr/i686-w64-mingw32/usr/include/windows.h:97,
-	                 from /usr/i686-w64-mingw32/usr/include/winsock2.h:23,
-	                 from ../../gnulib/import/sys/socket.h:684,
-	                 from ../../gnulib/import/netinet/in.h:43,
-	                 from .../build/sim/../../../sim/microblaze/../common/dv-sockser.c:39:
-	/usr/i686-w64-mingw32/usr/include/rpcndr.h:63:25: error: conflicting types for 'byte'; have 'unsigned char'
-	   63 |   typedef unsigned char byte;
-	      |                         ^~~~
-	In file included from .../buildsim/../../../sim/microblaze/sim-main.h:21,
-	                 from .../buildsim/../../../sim/microblaze/../common/dv-sockser.c:24:
-	.../buildsim/../../../sim/microblaze/microblaze.h:94:25: note: previous declaration of 'byte' with type 'byte' {aka 'char'}
-	   94 | typedef char            byte;
-	      |                         ^~~~
-	make: *** [Makefile:513: dv-sockser.o] Error 1
-
-2021-09-09  Jim Wilson  <jimw@sifive.com>
-
-	RISC-V: Pretty print values formed with lui and addiw.
-	The disassembler has support to pretty print values created by an lui/addi
-	pair, but there is no support for addiw.  There is also no support for
-	c.addi and c.addiw.  This patch extends the pretty printing support to
-	handle these 3 instructions in addition to addi.  Existing testcases serve
-	as tests for the new feature.
-
-		opcodes/
-		* riscv-dis.c (maybe_print_address): New arg wide.  Sign extend when
-		wide is true.
-		(print_insn_args): Fix calls to maybe_print_address.  Add checks for
-		c.addi, c.addiw, and addiw, and call maybe_print_address for them.
-
-		gas/
-		* testsuite/gas/riscv/insn.d: Update for disassembler change.
-		* testsuite/gas/li32.d, testsuite/gas/li64.d: Likwise.
-		* testsuite/gas/lla64.d: Likewise.
-
-2021-09-09  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: ppc: align format string settings with common code
-	This copies logic used in the common sim warning configure code to fix
-	build errors for mingw targets.  Turning format warnings on triggers
-	a failure in the debug.c file, so apply a minor fix at the same time.
-
-	sim: ppc: drop unnecessary config includes
-	This file is compiled for the --host & --build system which leads to
-	including the configure generated config.h in both environments.
-	This obviously doesn't work when the two targets don't look alike at
-	all and can cause build failures here (e.g. a mingw host & a linux
-	build).  Since we don't actually need any config settings in this
-	very simple file, drop the includes entirely.
-
-2021-09-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-08  Mike Frysinger  <vapier@gentoo.org>
-
-	gnulib: import various network functions
-	Some sim ports use these to provide networking functionality via the
-	dv-sockser module or via direct emulation for a few ports.
-
-	Gdb seems to build just fine still too.
-
-2021-09-08  Tom Tromey  <tromey@adacore.com>
-
-	Fix unit test build on Windows
-	Like Tom de Vries' earlier patch to fix the no-CXX_STD_THREAD case in
-	maint.c, this patch fixes a similar problem in
-	parallel-for-selftests.c.  This fixes a build failure on Windows.
-
-2021-09-08  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64, sanity check r_offset in relocate_section
-	This hardens the powerpc64 linker code transformations.
-
-		* elf64-ppc.c (is_8byte_reloc, offset_in_range): New functions.
-		(ppc64_elf_relocate_section): Sanity check r_offset before
-		accessing section contents for various code transformations.
-
-2021-09-08  Alan Modra  <amodra@gmail.com>
-
-	PowerPC64: Avoid useless work on R_PPC64_TPREL34
-	_bfd_elf_ppc_at_tprel_transform doesn't handle prefix instructions,
-	and I'm not inclined to implement code editing for them.
-
-		* elf64-ppc.c (ppc64_elf_relocate_section): Don't attempt tprel
-		transform for R_PPC64_TPREL34.
-
-2021-09-08  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: make thread_suspend_state::stop_pc optional
-	Currently the stop_pc field of thread_suspect_state is a CORE_ADDR and
-	when we want to indicate that there is no stop_pc available we set
-	this field back to a special value.
-
-	There are actually two special values used, in post_create_inferior
-	the stop_pc is set to 0.  This is a little unfortunate, there are
-	plenty of embedded targets where 0 is a valid pc value.  The more
-	common special value for stop_pc though, is set in
-	thread_info::set_executing, where the value (~(CORE_ADDR) 0) is used.
-
-	This commit changes things so that the stop_pc is instead a
-	gdb::optional.  We can now explicitly reset the field to an
-	uninitialised state, we also have asserts that we don't read the
-	stop_pc when its in an uninitialised state (both in
-	gdbsupport/gdb_optional.h, when compiling with _GLIBCXX_DEBUG
-	defined, and in thread_info::stop_pc).
-
-	One situation where a thread will not have a stop_pc value is when the
-	thread is stopped as a consequence of GDB being in all stop mode, and
-	some other thread stopped at an interesting event.  When GDB brings
-	all the other threads to a stop those other threads will not have a
-	stop_pc set (thus avoiding an unnecessary read of the pc register).
-
-	Previously, when GDB passed through handle_one (in infrun.c) the
-	threads executing flag was set to false and the stop_pc field was left
-	unchanged, i.e. it would (previous) have been left as ~0.
-
-	Now, handle_one leaves the stop_pc with no value.
-
-	This caused a problem when we later try to set these threads running
-	again, in proceed() we compare the current pc with the cached stop_pc.
-	If the thread was stopped via handle_one then the stop_pc would have
-	been left as ~0, and the compare (in proceed) would (likely) fail.
-	Now however, this compare tries to read the stop_pc when it has no
-	value and this would trigger an assert.
-
-	To resolve this I've added thread_info::stop_pc_p() which returns true
-	if the thread has a cached stop_pc.  We should only ever call
-	thread_info::stop_pc() if we know that there is a cached stop_pc,
-	however, this doesn't mean that every call to thread_info::stop_pc()
-	needs to be guarded with a call to thread_info::stop_pc_p(), in most
-	cases we know that the thread we are looking at stopped due to some
-	interesting event in that thread, and so, we know that the stop_pc is
-	valid.
-
-	After running the testsuite I've seen no other situations where
-	stop_pc is read uninitialised.
-
-	There should be no user visible changes after this commit.
-
-2021-09-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Fix build with undefined CXX_STD_THREAD
-	When building gdb on openSUSE Leap 42.3, we trigger the case that
-	CXX_STD_THREAD is undefined, and run into:
-	...
-	gdb/maint.c: In function 'void maintenance_show_worker_threads \
-	  (ui_file*, int, cmd_list_element*, const char*)':
-	gdb/maint.c:877:14: error: 'gdb::thread_pool' has not been declared
-	         gdb::thread_pool::g_thread_pool->thread_count ());
-	              ^
-	Makefile:1647: recipe for target 'maint.o' failed
-	make[1]: *** [maint.o] Error 1
-	...
-
-	Fix this by handling the undefined CXX_STD_THREAD case in
-	maintenance_show_worker_threads, such that we get:
-	...
-	$ gdb -q -batch -ex "maint show worker-thread"
-	The number of worker threads GDB can use is 0.
-	...
-
-	Tested on x86_64-linux.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28312
-
-2021-09-08  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: update configure target list
-	Fix sorting of the list, and update the globs to match the list used
-	in gdb's configure script.
-
-	gdb: cris: enable sim integration
-	The sim side is already ready to go for cris, so wire it up.
-
-	gdb: aarch64: enable sim integration
-	The sim side is already ready to go for aarch64, so wire it up.
-
-	gdb: sim: consolidate configure settings
-	Moving all the sim settings to one section makes it easier to track,
-	and makes it easier to keep it aligned with the sim target tests.
-	The gdb logic was duplicating this when handling different OS targets
-	instead of having a single cpu check.  Now it's more obvious that the
-	sim is tied to a cpu and not related to the OS.
-
-2021-09-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-07  Tom Tromey  <tromey@adacore.com>
-
-	Remove unused declaration from gdbserver/win32-low.h
-	I noticed that gdbserver/win32-low.h has an unused declaration.  This
-	code was changed a while ago, but this declaration slipped through.
-	This patch removes it.  Tested by rebuilding.
-
-2021-09-07  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: make use of std::string in utils.c
-	Replace some of the manual string management (malloc/free) with
-	std::string when creating commands in utils.c.
-
-	Things are a little bit messy as, creating the prefix commands (using
-	add_basic_prefix_cmd and add_show_prefix_cmd), doesn't copy the doc
-	string, while creating the actual set/show commands (using
-	add_setshow_enum_cmd) does copy the doc string.
-
-	As a result, I have retained the use of xstrprintf when creating the
-	prefix command doc strings, but switched to using std::string when
-	creating the actual set/show commands.
-
-	There should be no user visible changes after this commit.
-
-2021-09-07  Luis Machado  <luis.machado@linaro.org>
-
-	Revert: [AArch64] MTE corefile support
-	        bfd     * elf.c (elfcore_make_memtag_note_section): New function.
-	                (elfcore_grok_note): Handle NT_MEMTAG note types.
-
-	        binutils* readelf.c (get_note_type): Handle NT_MEMTAG note types.
-
-	        include * elf/common.h (NT_MEMTAG): New constant.
-	                (NT_MEMTAG_TYPE_AARCH_MTE): New constant.
-
-2021-09-07  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: use bool instead of int in struct internal_problem
-	Change struct internal_problem (gdb/utils.c) to use bool instead of
-	int, update the 3 static instances of this structure that we create to
-	use true/false instead of 1/0.
-
-	I've also updated the comments on struct internal_problem as the
-	existing comment doesn't seem to be referring to the structure, it
-	talks about returning something, which doesn't make sense in this
-	context.
-
-	There should be no user visible changes after this commit.
-
-2021-09-07  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: make thread_info::executing private
-	Rename thread_info::executing to thread_info::m_executing, and make it
-	private.  Add a new get/set member functions, and convert GDB to make
-	use of these.
-
-	The only real change of interest in this patch is in thread.c where I
-	have deleted the helper function set_executing_thread, and now just
-	use the new set function thread_info::set_executing.  However, the old
-	helper function set_executing_thread included some code to reset the
-	thread's stop_pc, so I moved this code into the new function
-	thread_info::set_executing.  However, I don't believe there is
-	anywhere that this results in a change of behaviour, previously the
-	executing flag was always set true through a call to
-	set_executing_thread anyway.
-
-2021-09-07  Nick Clifton  <nickc@redhat.com>
-
-	Fix an illegal memory access triggered by an atempt to disassemble a corrupt xtensa binary.
-		PR 28305
-		* elf32-xtensa.c (elf_xtensa_do_reloc): Add check for put of range
-		reloc.
-
-2021-09-07  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/python: new function to add values into GDB's history
-	The guile API has (history-append! <value>) to add values into GDB's
-	history list.  There is currently no equivalent in the Python API.
-
-	This commit adds gdb.add_history(<value>) to the Python API, this
-	function takes <value> a gdb.Value (or anything that can be passed to
-	the constructor of gdb.Value), and adds the value it represents to
-	GDB's history list.  The index of the newly added value is returned.
-
-2021-09-07  Nick Clifton  <nickc@redhat.com>
-
-	Fix illegal memory access triggered by an attempt to disassemble a corrupt RISC-V binary.
-		PR 28303
-		* elfxx-riscv.c (riscv_elf_add_sub_reloc): Add check for out of
-		range relocs.
-
-2021-09-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle internal-error in gdb_unload
-	When reverting commit 5a20fadc841 and using gdb_unload instead of runto "bar"
-	to trigger the internal-error in test-case
-	gdb.dwarf2/locexpr-data-member-location.exp, we run into:
-	...
-	ERROR: couldn't unload file in $gdb (timeout).
-	...
-	and the test-case takes about 1 minute.
-
-	Fix this by handling internal-error in gdb_unload, such that we have:
-	...
-	ERROR: Couldn't unload file in $gdb (GDB internal error).
-	ERROR: Could not resync from internal error (eof)
-	...
-	within 2 seconds.
-
-	Tested on x86_64-linux.
-
-2021-09-07  Alan Modra  <amodra@gmail.com>
-
-	PR28307, segfault in ppc64_elf_toc64_reloc
-	Adds missing bfd_reloc_offset_in_range checks to various relocation
-	special_functions.
-
-		PR 28307
-		* elf32-ppc.c (ppc_elf_addr16_ha_reloc): Range check reloc offset.
-		* elf64-ppc.c (ppc64_elf_ha_reloc, ppc64_elf_brtaken_reloc): Likewise.
-		(ppc64_elf_toc64_reloc, ppc64_elf_prefix_reloc): Likewise.
-
-2021-09-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-07  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle internal-error in gdb_run_cmd
-	When reverting commit 5a20fadc841 the test-case
-	gdb.dwarf2/locexpr-data-member-location.exp fails like this:
-	...
-	FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
-	  (GDB internal error)
-	ERROR: Could not resync from internal error (eof)
-	...
-	and takes 1 minute to run.
-
-	The long running time is caused by running into a timeout in gdb_run_cmd, at
-	this point:
-	...
-	(gdb) run ^M
-	The program being debugged has been started already.^M
-	Start it from the beginning? (y or n) y^M
-	/home/vries/gdb_versions/devel/src/gdb/gdbtypes.c:5583: internal-error: \
-	  Unexpected type field location kind: 4^M
-	A problem internal to GDB has been detected,^M
-	further debugging may prove unreliable.^M
-	Quit this debugging session? (y or n)
-	...
-
-	Fix this by detecting the internal-error in gdb_run_cmd.  We don't handle it
-	in gdb_run_cmd, but stash the gdb output back into the buffer using
-	-notransfer, and let the caller proc runto deal with it.
-
-	After the fix, the test-case just takes 2 seconds.
-
-	Tested on x86_64-linux.
-
-2021-09-06  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: rename gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.c
-	A previous commit added the
-	gdb.arch/riscv64-unwind-prologue-with-ld-lw.exp testcase, but one of its
-	associated file was named after a previous version of the test.
-
-	This commit fixes this and makes sure that all the files linked to this
-	testcase share the same prefix in the name.
-
-	Tested on riscv64 GNU/Linux.
-
-2021-09-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Handle eof in gdb_internal_error_resync
-	Before commit 5a20fadc841 the test-case
-	gdb.dwarf2/locexpr-data-member-location.exp fails like this:
-	...
-	FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
-	  (GDB internal error)
-	ERROR: : spawn id exp9 not open
-	    while executing
-	"expect {
-	-i exp9 -timeout 10
-	            -re "Quit this debugging session\\? \\(y or n\\) $" {
-	                send_gdb "n\n" answer
-	                incr count
-	            }
-	            -re "Create ..."
-	    ("uplevel" body line 1)
-	    invoked from within
-	"uplevel $body" NONE : spawn id exp9 not open
-	ERROR: Could not resync from internal error (timeout)
-	...
-
-	Fix the:
-	...
-	ERROR: : spawn id exp9 not open
-	...
-	by handling eof in gdb_internal_error_resync, such that we have instead:
-	...
-	FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
-	  (GDB internal error)
-	ERROR: Could not resync from internal error (eof)
-	...
-
-	Tested on x86_64-linux.
-
-2021-09-06  Tom Tromey  <tom@tromey.com>
-
-	Remove some complaints.h includes
-	There are a few includes of complaints.h that aren't necessary.  This
-	patch removes them.  Tested by rebuilding.
-
-2021-09-06  Nick Clifton  <nickc@redhat.com>
-
-	Fix an illegal memory access triggered by disassembling corrupt s390x binaries.
-		PR 28304
-		* elfxx-score7.c (score_elf_gprel15_reloc): If there is no output bfd
-		treat the reloc as undefined.
-
-	Fix potential use on an uninitialised vairable in the MCore assembler.
-
-	Fix potential uninitialised variable in microblaze assembler code.
-
-2021-09-06  Yinjun Zhang  <yinjun.zhang@corigine.com>
-
-	Add a sanity check to the init_nfp6000_mecsr_sec() function in the NFP disassembler.
-
-2021-09-06  Alexandra Hájková  <ahajkova@redhat.com>
-
-	gdbtypes.c: Add the case for FIELD_LOC_KIND_DWARF_BLOCK
-	The case for FIELD_LOC_KIND_DWARF_BLOCK was missing for
-	switch TYPE_FIELD_LOC_KIND. Thas caused an internal-error
-	under some circumstances.
-
-	Fixes bug 28030.
-
-2021-09-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Check avx support in gdb.arch/amd64-disp-step-avx.exp
-	On a machine on Open Build Service I'm running into a SIGILL for test-case
-	gdb.arch/amd64-disp-step-avx.exp:
-	...
-	Program received signal SIGILL, Illegal instruction.^M
-	test_rip_vex2 () at gdb.arch/amd64-disp-step-avx.S:40^M
-	40              vmovsd ro_var(%rip),%xmm0^M
-	(gdb) FAIL: gdb.arch/amd64-disp-step-avx.exp: vex2: \
-	  continue to test_rip_vex2_end
-	...
-	The SIGILL happens when trying to execute the first avx instruction in the
-	executable.
-
-	I can't directly access the machine, but looking at the log for test-case
-	gdb.arch/i386-avx.exp, it seems that there's no avx support:
-	...
-	Breakpoint 1, main (argc=1, argv=0x7fffffffd6b8) at gdb.arch/i386-avx.c:68^M
-	68        if (have_avx ())^M
-	(gdb) print have_avx ()^M
-	$1 = 0^M
-	...
-
-	Fix this by:
-	- adding a gdb_caching_proc have_avx, similar to have_mpx, using the have_avx
-	  function from gdb.arch/i386-avx.c
-	- using proc have_avx in both gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
-	  and gdb/testsuite/gdb.arch/i386-avx.exp.
-
-	Tested on my x86_64-linux laptop with avx support, where both test-cases pass.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-09-04  Tom de Vries  <tdevries@suse.de>
-
-		PR testsuite/26950
-		* gdb/testsuite/gdb.arch/i386-avx.c (main): Remove call to have_avx.
-		(have_avx): Move ...
-		* gdb/testsuite/lib/gdb.exp (have_avx): ... here.  New proc.
-		* gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp: Use have_avx.
-		* gdb/testsuite/gdb.arch/i386-avx.exp: Same.
-
-2021-09-04  Mike Frysinger  <vapier@gentoo.org>
-
-	gnulib: import sys_wait
-	A few sims use this to emulate process syscalls.
-	Gdb builds seem to still be fine.
-
-2021-09-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-03  Tom Tromey  <tromey@adacore.com>
-
-	Use CORE_ADDR as return type from x86_dr_low_get_addr
-	On a Windows build locally, watchpoints started failing.  I tracked
-	this down to x86_dr_low_get_addr returning an 'unsigned long'... in
-	this particular build, this is a 32-bit type, but the inferior is a
-	64-bit program.
-
-	This patch fixes the problem by changing the return type.  No other
-	change is required, because this matches the function pointer in
-	struct x86_dr_low_type.
-
-2021-09-03  Kevin Buettner  <kevinb@redhat.com>
-
-	Test case reproducing PR28030 bug
-	The original reproducer for PR28030 required use of a specific
-	compiler version - gcc-c++-11.1.1-3.fc34 is mentioned in the PR,
-	though it seems probable that other gcc versions might also be able to
-	reproduce the bug as well.  This commit introduces a test case which,
-	using the DWARF assembler, provides a reproducer which is independent
-	of the compiler version.  (Well, it'll work with whatever compilers
-	the DWARF assembler works with.)
-
-	To the best of my knowledge, it's also the first test case which uses
-	the DWARF assembler to provide debug info for a shared object.  That
-	being the case, I provided more than the usual commentary which should
-	allow this case to be used as a template when a combo shared
-	library / DWARF assembler test case is required in the future.
-
-	I provide some details regarding the bug in a comment near the
-	beginning of locexpr-dml.exp.
-
-	This problem was difficult to reproduce; I found myself constantly
-	referring to the backtrace while trying to figure out what (else) I
-	might be missing while trying to create a reproducer.  Below is a
-	partial backtrace which I include for posterity.
-
-	 #0  internal_error (
-	    file=0xc50110 "/ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/gdbtypes.c", line=5575,
-	    fmt=0xc520c0 "Unexpected type field location kind: %d")
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdbsupport/errors.cc:51
-	 #1  0x00000000006ef0c5 in copy_type_recursive (objfile=0x1635930,
-	    type=0x274c260, copied_types=0x30bb290)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/gdbtypes.c:5575
-	 #2  0x00000000006ef382 in copy_type_recursive (objfile=0x1635930,
-	    type=0x274ca10, copied_types=0x30bb290)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/gdbtypes.c:5602
-	 #3  0x0000000000a7409a in preserve_one_value (value=0x24269f0,
-	    objfile=0x1635930, copied_types=0x30bb290)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/value.c:2529
-	 #4  0x000000000072012a in gdbscm_preserve_values (
-	    extlang=0xc55720 <extension_language_guile>, objfile=0x1635930,
-	    copied_types=0x30bb290)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/guile/scm-value.c:94
-	 #5  0x00000000006a3f82 in preserve_ext_lang_values (objfile=0x1635930,
-	    copied_types=0x30bb290)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/extension.c:568
-	 #6  0x0000000000a7428d in preserve_values (objfile=0x1635930)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/value.c:2579
-	 #7  0x000000000082d514 in objfile::~objfile (this=0x1635930,
-	    __in_chrg=<optimized out>)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/objfiles.c:549
-	 #8  0x0000000000831cc8 in std::_Sp_counted_ptr<objfile*, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x1654580)
-	    at /usr/include/c++/11/bits/shared_ptr_base.h:348
-	 #9  0x00000000004e6617 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x1654580) at /usr/include/c++/11/bits/shared_ptr_base.h:168
-	 #10 0x00000000004e1d2f in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x190bb88, __in_chrg=<optimized out>)
-	    at /usr/include/c++/11/bits/shared_ptr_base.h:705
-	 #11 0x000000000082feee in std::__shared_ptr<objfile, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x190bb80, __in_chrg=<optimized out>)
-	    at /usr/include/c++/11/bits/shared_ptr_base.h:1154
-	 #12 0x000000000082ff0a in std::shared_ptr<objfile>::~shared_ptr (
-	    this=0x190bb80, __in_chrg=<optimized out>)
-	    at /usr/include/c++/11/bits/shared_ptr.h:122
-	 #13 0x000000000085ed7e in __gnu_cxx::new_allocator<std::_List_node<std::shared_ptr<objfile> > >::destroy<std::shared_ptr<objfile> > (this=0x114bc00,
-	    __p=0x190bb80) at /usr/include/c++/11/ext/new_allocator.h:168
-	 #14 0x000000000085e88d in std::allocator_traits<std::allocator<std::_List_node<std::shared_ptr<objfile> > > >::destroy<std::shared_ptr<objfile> > (__a=...,
-	    __p=0x190bb80) at /usr/include/c++/11/bits/alloc_traits.h:531
-	 #15 0x000000000085e50c in std::__cxx11::list<std::shared_ptr<objfile>, std::allocator<std::shared_ptr<objfile> > >::_M_erase (this=0x114bc00, __position=
-	  std::shared_ptr<objfile> (expired, weak count 1) = {get() = 0x1635930})
-	    at /usr/include/c++/11/bits/stl_list.h:1925
-	 #16 0x000000000085df0e in std::__cxx11::list<std::shared_ptr<objfile>, std::allocator<std::shared_ptr<objfile> > >::erase (this=0x114bc00, __position=
-	  std::shared_ptr<objfile> (expired, weak count 1) = {get() = 0x1635930})
-	    at /usr/include/c++/11/bits/list.tcc:158
-	 #17 0x000000000085c748 in program_space::remove_objfile (this=0x114bbc0,
-	    objfile=0x1635930)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/progspace.c:210
-	 #18 0x000000000082d3ae in objfile::unlink (this=0x1635930)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/objfiles.c:487
-	 #19 0x000000000082e68c in objfile_purge_solibs ()
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/objfiles.c:875
-	 #20 0x000000000092dd37 in no_shared_libraries (ignored=0x0, from_tty=1)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/solib.c:1236
-	 #21 0x00000000009a37fe in target_pre_inferior (from_tty=1)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/target.c:2496
-	 #22 0x00000000007454d6 in run_command_1 (args=0x0, from_tty=1,
-	    run_how=RUN_NORMAL)
-	    at /ironwood1/sourceware-git/f34-pr28030/bld/../../worktree-pr28030/gdb/infcmd.c:437
-
-	I'll note a few points regarding this backtrace:
-
-	Frame #1 is where the internal error occurs.  It's caused by an
-	unhandled case for FIELD_LOC_KIND_DWARF_BLOCK.  The fix for this bug
-	adds support for this case.
-
-	Frame #22 - it's a partial backtrace - shows that GDB is attempting to
-	(re)run the program.  You can see the exact command sequence that was
-	used for reproducing this problem in the PR (at
-	https://sourceware.org/bugzilla/show_bug.cgi?id=28030), but in a
-	nutshell, after starting the program and advancing to the appropriate
-	source line, GDB was asked to step into libstdc++; a "finish" command
-	was issued, returning a value.  The fact that a value was returned is
-	very important.  GDB was then used to step back into libstdc++.  A
-	breakpoint was set on a source line in the library after which a "run"
-	command was issued.
-
-	Frame #19 shows a call to objfile_purge_solibs.  It's aptly named.
-
-	Frame #7 is a call to the destructor for one of the objfile solibs; it
-	turned out to be the one for libstdc++.
-
-	Frames #6 thru #3 show various value preservation frames.  If you look
-	at preserve_values() in gdb/value.c, the value history is preserved
-	first, followed by internal variables, followed by values for the
-	extension languages (python and guile).
-
-2021-09-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add untested case in gdb.gdb/complaints.exp
-	When building gdb with "-Wall -O2 -g -flto=auto", I run into:
-	...
-	(gdb) call clear_complaints()^M
-	No symbol "clear_complaints" in current context.^M
-	(gdb) FAIL: gdb.gdb/complaints.exp: clear complaints
-	...
-
-	The problem is that lto has optimized away clear_complaints, and consequently
-	the selftests cannot run.
-
-	Fix this by:
-	- using info function to detect presence of clear_complaints
-	- handling the absence of clear_complaints by calling untested
-	...
-	(gdb) UNTESTED: gdb.gdb/complaints.exp: \
-	  Cannot find clear_complaints, skipping test
-	...
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-09-03  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.gdb/complaints.exp: Use untested if clear_complaints cannot
-		be found.
-
-2021-09-03  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb: Enable finish command and inferior calls for _Float16 on amd64 and i386.
-	Values of type _Float16 and _Float16 _Complex can now be used on CPUs with
-	AVX512-FP16 support. Return values of those types are located in XMM0.
-	Compiler support for gcc and clang is in progress, see e.g.:
-	https://gcc.gnu.org/pipermail/gcc-patches/2021-July/574117.html
-
-	gdb/ChangeLog:
-	2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>
-
-		* amd64-tdep.c (amd64_classify): Classify _Float16 and
-		_Float16 _Complex as AMD64_SSE.
-		* i386-tdep.c (i386_extract_return_value): Read _Float16 and
-		_Float16 _Complex from xmm0.
-
-	gdb/testsuite/ChangeLog:
-	2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>
-
-		* gdb.arch/x86-avx512fp16-abi.c: New file.
-		* gdb.arch/x86-avx512fp16-abi.exp: New file.
-
-2021-09-03  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	Add half support for AVX512 register view.
-	This adds support for the half datatype, FP16, to the AVX512 register printing.
-
-	gdb/ChangeLog:
-	2020-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>
-
-		* i386-tdep.c (i386_zmm_type) <v32_half>: New field.
-		(i386_ymm_type) <v16_half>: New field.
-		(i386_gdbarch_init): Add set_gdbarch_half_format.
-		* features/i386/64bit-avx512.xml: Add half type.
-		* features/i386/64bit-avx512.c: Regenerated.
-		* features/i386/64bit-sse.xml: Add half type.
-		* features/i386/64bit-sse.c: Regenerated.
-
-	gdb/testsuite/ChangeLog:
-	2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>
-
-		* gdb.arch/x86-avx512fp16.c: New file.
-		* gdb.arch/x86-avx512fp16.exp: New file.
-		* lib/gdb.exp (skip_avx512fp16_tests): New function.
-
-2021-09-03  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, i386: Enable AVX512-bfloat16 for i386 targets.
-	Values of type bfloat16 can also be used on 32-bit targets, which was missed
-	in the original enablement.  This also adjusts the testcase to pass with
-	"unix/-m32", where only the lower 8 AVX registers are available.
-
-	gdb/ChangeLog:
-	2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>
-
-		* features/i386/32bit-sse.xml: Add bfloat16 type.
-		* features/i386/32bit-sse.c: Regenerated.
-
-	gdb/testsuite/ChangeLog:
-	2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>
-
-		* gdb.arch/x86-avx512bf16.exp: Only use x/z/ymm 0-7.
-
-2021-09-03  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add untested case in selftest_setup
-	When building gdb with "-Wall -O2 -g -flto=auto", I run into:
-	...
-	FAIL: gdb.gdb/python-helper.exp: breakpoint in captured_main \
-	  (got interactive prompt)
-	FAIL: gdb.gdb/python-helper.exp: run until breakpoint at captured_main
-	WARNING: Couldn't test self
-	...
-	and similar in gdb.gdb/selftest.exp.
-
-	The first FAIL in more detail:
-	...
-	(gdb) break captured_main^M
-	Function "captured_main" not defined.^M
-	Make breakpoint pending on future shared library load? (y or [n]) n^M
-	(gdb) FAIL: gdb.gdb/python-helper.exp: breakpoint in captured_main \
-	  (got interactive prompt)
-	...
-
-	The problem is that lto has optimized away the captured_main function
-	and consequently the selftests dependent on that cannot run.
-
-	Fix this by:
-	- using gdb_breakpoint to detect failure to set the breakpoint
-	- handling the failure to set a breakpoint by calling untested
-	- not emitting the warning if we've already got untested
-	such that we have:
-	...
-	(gdb) UNTESTED: gdb.gdb/python-helper.exp: Cannot set breakpoint at \
-	  captured_main, skipping testcase.
-	...
-
-	gdb/testsuite/ChangeLog:
-
-	2021-09-02  Tom de Vries  <tdevries@suse.de>
-
-		* lib/selftest-support.exp: Emit untested when not being able to set
-		breakpoint.
-
-2021-09-03  Alan Modra  <amodra@gmail.com>
-
-	ld testsuite tidy
-	Fixes a few issues:
-	1) If you use "-fsanitize=address,undefined" in CFLAGS, the Makefile
-	attempt to trim off -fsanitize options left us with ",undefined".
-	2) ld_compile adds CFLAGS_FOR_TARGET itself, no need to pass it.
-	3) CFLAGS might be needed linking bootstrap test.
-
-		* Makefile.am (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Trim off
-		all -fsanitize=*.
-		* Makefile.in: Regenerate.
-		* testsuite/ld-bootstrap/bootstrap.exp: Use CFLAGS when linking.
-		* testsuite/ld-cdtest/cdtest.exp: Use CFLAGS_FOR_TARGET when
-		linking.
-		* testsuite/ld-auto-import/auto-import.exp: Don't pass
-		CFLAGS_FOR_TARGET to ld_compile.
-		* testsuite/ld-cygwin/exe-export.exp: Likewise.
-		* testsuite/ld-elfvers/vers.exp: Likewise.
-		* testsuite/ld-elfvsb/elfvsb.exp: Likewise.
-		* testsuite/ld-elfweak/elfweak.exp: Likewise.
-		* testsuite/ld-gc/gc.exp: Likewise.
-		* testsuite/ld-pe/pe-compile.exp: Likewise.
-		* testsuite/ld-pe/pe-run.exp: Likewise.
-		* testsuite/ld-pe/pe-run2.exp: Likewise.
-		* testsuite/ld-plugin/plugin.exp: Likewise.
-		* testsuite/ld-shared/shared.exp: Likewise.
-		* testsuite/ld-elfcomm/elfcomm.exp: Likewise, and don't allow
-		nios2 testing to trash CFLAGS_FOR_TARGET.
-		* testsuite/ld-scripts/crossref.exp: Don't pass options in
-		CC_FOR_TARGET, do so in CFLAGS_FOR_TARGET instead.
-		* testsuite/ld-srec/srec.exp: Likewise, and for CXX.
-
-2021-09-03  Alan Modra  <amodra@gmail.com>
-
-	CC_FOR_TARGET et al
-	The top level Makefile, the ld Makefile and others, define
-	CC_FOR_TARGET to be a compiler for the binutils target machine.  This
-	is the compiler that should be used for almost all tests with C
-	source.  There are _FOR_TARGET versions of CFLAGS, CXX, and CXXFLAGS
-	too.  This was all supposed to work with the testsuite .exp files
-	using CC for the target compiler, and CC_FOR_HOST for the host
-	compiler, with the makefiles passing CC=$CC_FOR_TARGET and
-	CC_FOR_HOST=$CC to the runtest invocation.
-
-	One exception to the rule of using CC_FOR_TARGET is the native-only ld
-	bootstrap test, which uses the newly built ld to link a copy of
-	itself.  Since the files being linked were created with the host
-	compiler, the boostrap test should use CC and CFLAGS, in case some
-	host compiler option provides needed libraries automatically.
-	However, bootstrap.exp used CC where it should have used CC_FOR_HOST.
-	I set about fixing that problem, then decided that playing games in
-	the makefiles with CC was a bad idea.  Not only is it confusing, but
-	other dejagnu code knows about CC_FOR_TARGET.  See dejagnu/target.exp.
-
-	So this patch gets rid of the makefile variable renaming and changes
-	all the .exp files to use the correct _FOR_TARGET variables.
-	CC_FOR_HOST and CFLAGS_FOR_HOST disappear.  A followup patch will
-	correct bootstrap.exp to use CFLAGS, and a number of other things I
-	noticed.
-
-	binutils/
-		* testsuite/lib/binutils-common.exp (run_dump_test): Use
-		CC_FOR_TARGET and CFLAGS_FOR_TARGET rather than CC and CFLAGS.
-	ld/
-		* Makefile.am (check-DEJAGNU): Don't set CC to CC_FOR_TARGET
-		and similar.  Pass variables with unchanged names.  Don't set
-		CC_FOR_HOST or CFLAGS_FOR_HOST.
-		* Makefile.in: Regenerate.
-		* testsuite/config/default.exp: Update default CC and similar.
-		(compiler_supports, plug_opt): Use CC_FOR_TARGET.
-		* testsuite/ld-cdtest/cdtest.exp: Replace all uses of CC with
-		CC_FOR_TARGET, and similarly for CFLAGS, CXX and CXXFLAGS.
-		* testsuite/ld-auto-import/auto-import.exp: Likewise.
-		* testsuite/ld-cygwin/exe-export.exp: Likewise.
-		* testsuite/ld-elf/dwarf.exp: Likewise.
-		* testsuite/ld-elf/indirect.exp: Likewise.
-		* testsuite/ld-elf/shared.exp: Likewise.
-		* testsuite/ld-elfcomm/elfcomm.exp: Likewise.
-		* testsuite/ld-elfvers/vers.exp: Likewise.
-		* testsuite/ld-elfvsb/elfvsb.exp: Likewise.
-		* testsuite/ld-elfweak/elfweak.exp: Likewise.
-		* testsuite/ld-gc/gc.exp: Likewise.
-		* testsuite/ld-ifunc/ifunc.exp: Likewise.
-		* testsuite/ld-mn10300/mn10300.exp: Likewise.
-		* testsuite/ld-pe/pe-compile.exp: Likewise.
-		* testsuite/ld-pe/pe-run.exp: Likewise.
-		* testsuite/ld-pe/pe-run2.exp: Likewise.
-		* testsuite/ld-pie/pie.exp: Likewise.
-		* testsuite/ld-plugin/lto.exp: Likewise.
-		* testsuite/ld-plugin/plugin.exp: Likewise.
-		* testsuite/ld-scripts/crossref.exp: Likewise.
-		* testsuite/ld-selective/selective.exp: Likewise.
-		* testsuite/ld-sh/sh.exp: Likewise.
-		* testsuite/ld-shared/shared.exp: Likewise.
-		* testsuite/ld-srec/srec.exp: Likewise.
-		* testsuite/ld-undefined/undefined.exp: Likewise.
-		* testsuite/ld-unique/unique.exp: Likewise.
-		* testsuite/ld-x86-64/tls.exp: Likewise.
-		* testsuite/lib/ld-lib.exp: Likewise.
-	libctf/
-		* Makefile.am (check-DEJAGNU): Don't set CC to CC_FOR_TARGET.
-		Pass CC and CC_FOR_TARGET.  Don't set CC_FOR_HOST.
-		* Makefile.in: Regenerate.
-		* testsuite/config/default.exp: Update default CC and similar.
-		* testsuite/lib/ctf-lib.exp (run_native_host_cmd): Use CC rather
-		than CC_FOR_HOST.
-		(run_lookup_test): Use CC_FOR_TARGET and CFLAGS_FOR_TARGET.
-
-2021-09-03  Alan Modra  <amodra@gmail.com>
-
-	pj: asan: out of bounds, ubsan: left shift of negative
-		* pj-dis.c: Include libiberty.h.
-		(print_insn_pj): Don't index op->arg past array bound.  Don't
-		left shift negative int.
-
-	ubsan: alpha: member access within null pointer
-		* elf64-alpha.c (elf64_alpha_relax_with_lituse): Avoid UB.
-
-	ubsan: libctf: applying zero offset to null pointer
-		* ctf-open.c (init_symtab): Avoid ubsan error.
-
-2021-09-03  Alan Modra  <amodra@gmail.com>
-
-	haiku tidy
-	--enable-maintainer-mode showed a number of files needing to be
-	regenerated, and in the case of ld/Makefile.in that the file was
-	regenerated by hand.  Nothing to see here really.
-
-	ld/
-		* Makefile.am (ALL_64_EMULATION_SOURCES): Sort haiku entry.
-		* Makefile.in: Regenerate.
-		* po/BLD-POTFILES.in: Regenerate.
-	libctf/
-		* configure: Regenerate.
-	zlib/
-		* configure: Regenerate.
-
-2021-09-03  Fangrui Song  <maskray@google.com>
-
-	gold: --export-dynamic-symbol: don't imply -u
-	to match GNU ld.
-
-	gold/
-		* archive.cc (Library_base::should_include_member): Don't handle
-		--export-dynamic-symbol.
-		* symtab.cc (Symbol_table::do_add_undefined_symbols_from_command_line):
-		Likewise.
-
-2021-09-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-02  Alexander von Gluck IV  <kallisti5@unixzen.com>
-
-	Add support for the haiku operating system.  These are the os support patches we have been grooming and maintaining for quite a few years over on git.haiku-os.org.  All of these architectures are working and most have been stable for quite some time.
-
-2021-09-02  Nick Clifton  <nickc@redhat.com>
-
-	Fix the V850 assembler's generation of relocations for the st.b instruction.
-		PR 28292
-	gas	* config/tc-v850.c (handle_lo16): Also accept
-		BFD_RELOC_V850_LO16_SPLIT_OFFSET.
-		* testsuite/gas/v850/split-lo16.s: Add extra line.
-		* testsuite/gas/v850/split-lo16.d: Update expected disassembly.
-
-	opcodes	* v850-opc.c (D16): Use BFD_RELOC_V850_LO16_SPLIT_OFFSET in place
-		of BFD_RELOC_16.
-
-2021-09-02  Alan Modra  <amodra@gmail.com>
-
-	SHT_SYMTAB_SHNDX handling
-	.symtab_shndx section contents is an array, one entry for each symbol
-	in .symtab, present when the number of symbols exceeds a little less
-	than 64k.  Since the mapping is 1-1 with symbols there is no need to
-	keep both dest_index and destshndx_index in elf_sym_strtab.  Instead,
-	just make sure that the shndx pointers to the swap functions are kept
-	NULL when .symtab_shndx does not exist.  Also, strtabcount in the
-	linker's elf hash table is incremented in lock-step with the output
-	symcount, so that can disappear too.
-
-2021-09-02  Alan Modra  <amodra@gmail.com>
-
-	PTR_ADD and NPTR_ADD for bfd.h
-	This defines a couple of macros used to avoid ubsan complaints about
-	calculations involving NULL pointers.  PTR_ADD should be used in the
-	case where it is known that the offset is always zero with a NULL
-	pointer, and you'd like to know if a non-zero offset is ever used.
-	NPTR_ADD should be rarely used, but is defined for cases where a
-	non-zero offset is expected and should be ignored if the pointer is
-	NULL.
-
-	bfd/
-		* bfd-in.h (PTR_ADD, NPTR_ADD): Define.
-		* bfd-in2.h: Regenerate.
-		* elf-eh-frame.c (adjust_eh_frame_local_symbols): Avoid NULL
-		pointer calculations.
-		* elflink.c (_bfd_elf_strip_zero_sized_dynamic_sections): Likewise.
-		(bfd_elf_add_dt_needed_tag, elf_finalize_dynstr): Likewise.
-		(elf_link_add_object_symbols, elf_link_input_bfd): Likewise.
-		(bfd_elf_final_link, bfd_elf_gc_record_vtinherit): Likewise.
-	binutils/
-		* objdump.c (disassemble_section): Use PTR_ADD for rel_ppend.
-
-2021-09-02  Alan Modra  <amodra@gmail.com>
-
-	obstack.h __PTR_ALIGN vs. ubsan
-	Current ubsan complains on every use of __PTR_ALIGN (when ptrdiff_t is
-	as large as a pointer), due to making calculations relative to a NULL
-	pointer.  This patch avoids the problem by extracting out and
-	simplifying __BPTR_ALIGN for the usual case.  I've continued to use
-	ptrdiff_t here, where it might be better to throw away __BPTR_ALIGN
-	entirely and just assume uintptr_t exists.
-
-		* obstack.h (__PTR_ALIGN): Expand and simplify __BPTR_ALIGN
-		rather than calculating relative to a NULL pointer.
-
-2021-09-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-09-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix dwo path in fission-*.S
-	[ Using $build for /home/vries/gdb_versions/devel/build to make things a bit
-	more readable. ]
-
-	When using make check// to run test-case gdb.dwarf2/fission-base.exp:
-	...
-	( cd $build/gdb; make check//unix RUNTESTFLAGS="fission-base.exp" )
-	...
-	we run into:
-	...
-	(gdb) file \
-	  $build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base^M
-	Reading symbols from \
-	  $build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base...^M
-	warning: Could not find DWO CU \
-	  $build/gdb/testsuite.1/outputs/gdb.dwarf2/fission-base/fission-base.dwo \
-	  (0x807060504030201) referenced by CU at offset 0xc7 [in module \
-	  $build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base]^M
-	...
-
-	The problem is that the executable refers to the dwo file using path name
-	$build/gdb/testsuite.1/outputs/gdb.dwarf2/fission-base/fission-base.dwo,
-	while the actual dwo file is at
-	$build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base.dwo.
-
-	This is caused by this trick in fission-base.S:
-	...
-	 #define XSTR(s) STR(s)
-	 #define STR(s) #s
-	   ...
-	   .asciz XSTR(DWO)        # DW_AT_GNU_dwo_name
-	...
-	and:
-	...
-	$ echo | gcc -E -dD - | grep "define unix"
-	...
-
-	I used this trick to avoid doing additional_flags=-DDWO=\"$dwo\", since I was
-	concerned that there could be quoting issues.
-
-	However, I've found other uses of this pattern, f.i. in
-	gdb/testsuite/gdb.base/corefile-buildid.exp:
-	...
-	  additional_flags=-DSHLIB_NAME=\"$dlopen_lib\"]
-	...
-
-	So, fix this by:
-	- using additional_flags=-DDWO=\"$dwo\" and
-	- using plain DWO instead of XSTR(DWO)
-
-	Likewise in other gdb.dwarf2/fission*.exp test-cases.
-
-	Tested on x86_64-linux, using make check//unix.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-09-01  Tom de Vries  <tdevries@suse.de>
-
-		PR testsuite/28298
-		* gdb.dwarf2/fission-base.S: Use DWO instead of XSTR(DWO).
-		* gdb.dwarf2/fission-loclists-pie.S: Same.
-		* gdb.dwarf2/fission-loclists.S: Same.
-		* gdb.dwarf2/fission-reread.S: Same.
-		* gdb.dwarf2/fission-base.exp: Use additional_flags=-DDWO=\"$dwo\".
-		* gdb.dwarf2/fission-loclists-pie.exp: Same.
-		* gdb.dwarf2/fission-loclists.exp: Same.
-		* gdb.dwarf2/fission-reread.exp: Same.
-
-2021-09-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.fortran/call-no-debug.exp symbol search
-	On openSUSE Tumbleweed I ran into:
-	...
-	(gdb) ptype outstring_func.part^M
-	No symbol "outstring_func" in current context.^M
-	(gdb) FAIL: gdb.fortran/call-no-debug.exp: ptype outstring_func.part
-	...
-	while on openSUSE Leap 15.2 I have instead:
-	...
-	(gdb) ptype string_func_^M
-	type = <unknown return type> ()^M
-	(gdb) PASS: gdb.fortran/call-no-debug.exp: ptype string_func_
-	...
-
-	The difference is caused by the result for "info function string_func", which
-	is this for the latter:
-	...
-	(gdb) info function string_func^M
-	All functions matching regular expression "string_func":^M
-	^M
-	Non-debugging symbols:^M
-	0x000000000040089c  string_func_^M
-	...
-	but this for the former:
-	...
-	(gdb) info function string_func^M
-	All functions matching regular expression "string_func":^M
-	^M
-	Non-debugging symbols:^M
-	0x00000000004012bb  string_func_^M
-	0x00007ffff7bac5b0  outstring_func.part^M
-	0x00007ffff7bb1a00  outstring_func.part^M
-	...
-
-	The extra symbols are part of glibc:
-	...
-	$ nm /lib64/libc.so.6 | grep string_func
-	00000000000695b0 t outstring_func.part.0
-	000000000006ea00 t outstring_func.part.0
-	...
-
-	If glibc debug info is installed, we get instead:
-	...
-	(gdb) info function string_func^M
-	All functions matching regular expression "string_func":^M
-	^M
-	File /usr/src/debug/glibc-2.33-9.1.x86_64/stdio-common/vfprintf-internal.c:^M
-	236:    static int outstring_func(int, size_t, const unsigned int *, FILE *);^M
-	^M
-	File vfprintf-internal.c:^M
-	236:    static int outstring_func(int, size_t, const unsigned char *, FILE *);^M
-	^M
-	Non-debugging symbols:^M
-	0x00000000004012bb  string_func_^M
-	...
-	and the FAIL doesn't trigger.
-
-	Fix this by calling "info function string_func" before starting the exec, such
-	that only symbols of the exec are taken into account.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-09-01  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.fortran/call-no-debug.exp: Avoid shared lib symbols for
-		find_mangled_name calls.
-
-2021-09-01  Yinjun Zhang  <yinjun.zhang@corigine.com>
-
-	nfp: add validity check of island and me
-	AddressSanitizer detects heap-buffer-overflow when running
-	"objdump -D" for nfp .nffw files.
-
-		PR 27854
-		* nfp-dis.c (_NFP_ISLAND_MAX, _NFP_ME_MAX): Define.
-		(nfp_priv_data): ..and use here.
-		(_print_instrs): Sanity check island and menum.
-
-2021-09-01  Alan Modra  <amodra@gmail.com>
-
-	PR28250, Null pointer dereference in debug_class_type_samep
-	Typo fix, obviously should be m1->variants != NULL, not
-	m1->variants == NULL.
-
-		PR 28250
-		* debug.c (debug_class_type_samep): Correct m1->variants test.
-
-2021-09-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-31  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove breakpoint_find_if
-	Remove breakpoint_find_if, replace its sole usage with using
-	all_breakpoints directly instead.  At the same time, change return
-	types to use bool.
-
-	Change-Id: I9ec392236b4804b362d16ab563330b9c07311106
-
-2021-08-31  Nick Clifton  <nickc@redhat.com>
-
-	Update the how-to-make-a-release document so that a check for empty manual pages is included.  cf PR 28144
-
-2021-08-31  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Extend .insn directive to support hardcode encoding.
-	The .insn directive can let users use their own instructions, or
-	some new instruction, which haven't supported in the old binutils.
-	For example, if users want to use sifive cache instruction, they
-	cannot just write "cflush.d1.l1" in the assembly code, they should
-	use ".insn i SYSTEM, 0, x0, x10, -0x40".  But the .insn directive
-	may not easy to use for some cases, and not so friendly to users.
-	Therefore, I believe most of the users will use ".word 0xfc050073",
-	to encode the instructions directly, rather than use .insn.  But
-	once we have supported the mapping symbols, the .word directives
-	are marked as data, so disassembler won't dump them as instructions
-	as usual.  I have discussed this with Kito many times, we all think
-	extend the .insn direcitve to support the hardcode encoding, is the
-	easiest way to resolve the problem.  Therefore, there are two more
-	.insn formats are proposed as follows,
-
-	(original) .insn <type>, <operand1>, <operand2>, ...
-	           .insn <insn-length>, <value>
-	           .insn <value>
-
-	The <type> is string, and the <insn-length> and <value> are constants.
-
-	gas/
-		* config/tc-riscv.c (riscv_ip_hardcode): Similar to riscv_ip,
-		but assembles an instruction according to the hardcode values
-		of .insn directive.
-		* doc/c-riscv.texi: Document two new .insn formats.
-		* testsuite/gas/riscv/insn-fail.d: New testcases.
-		* testsuite/gas/riscv/insn-fail.l: Likewise.
-		* testsuite/gas/riscv/insn-fail.s: Likewise.
-		* testsuite/gas/riscv/insn.d: Updated.
-		* testsuite/gas/riscv/insn.s: Likewise.
-
-2021-08-31  John Baldwin  <jhb@FreeBSD.org>
-
-	Use gdbfmt for vprintf_filtered.
-	gdbfmt was already used for printf_filtered, so using it for
-	vprintf_filtered is more consistent.
-
-	As a result, all callers of vfprintf_maybe_filtered now use gdbfmt, so
-	the function can be simplified to assume the gdbfmt case and remove
-	the associated bool argument.  Similary, vprintf_filtered is now a
-	simple wrapper around vfprintf_filtered.
-
-2021-08-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-30  John Baldwin  <jhb@FreeBSD.org>
-
-	fbsd-nat: Don't use '%jd' and '%ju' with printf_filtered.
-	The handler for 'info proc status' for native processes on FreeBSD
-	uses the 'j' size modifier along with uintmax_t / intmax_t casts to
-	output integer values for types such as off_t that are not aliases of
-	a basic C type such as 'int' or 'long'.  printf_filtered does not
-	support the 'j' modifer, so this resulted in runtime errors in
-	practice:
-
-	(gdb) info proc stat
-	process 8674
-	Name: ls
-	State: T (stopped)
-	Parent process: 8673
-	Process group: 8674
-	Session id: 2779
-	Unrecognized format specifier 'j' in printf
-
-	Instead, use plongest and pulongest to generate the output strings of
-	these integer values.
-
-2021-08-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix build error in unittests/parallel-for-selftests.c
-	We get this error when building GDB on some platforms.  I get it using
-	g++-10 on Ubuntu 20.04 (installed using the distro package).  It was
-	also reported by John Baldwin, using a clang that uses libc++.
-
-	      CXX    unittests/parallel-for-selftests.o
-	    cc1plus: warning: command line option '-Wmissing-prototypes' is valid for C/ObjC but not for C++
-	    /home/smarchi/src/binutils-gdb/gdb/unittests/parallel-for-selftests.c: In function 'void selftests::parallel_for::test(int)':
-	    /home/smarchi/src/binutils-gdb/gdb/unittests/parallel-for-selftests.c:53:30: error: use of deleted function 'std::atomic<int>::atomic(const std::atomic<int>&)'
-	       53 |   std::atomic<int> counter = 0;
-	          |                              ^
-	    In file included from /usr/include/c++/9/future:42,
-	                     from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/thread-pool.h:29,
-	                     from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/parallel-for.h:26,
-	                     from /home/smarchi/src/binutils-gdb/gdb/unittests/parallel-for-selftests.c:22:
-	    /usr/include/c++/9/atomic:755:7: note: declared here
-	      755 |       atomic(const atomic&) = delete;
-	          |       ^~~~~~
-	    /usr/include/c++/9/atomic:759:17: note:   after user-defined conversion: 'constexpr std::atomic<int>::atomic(std::atomic<int>::__integral_type)'
-	      759 |       constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
-	          |                 ^~~~~~
-
-	I haven't dug to know why it does not happen everywhere, but this patch
-	fixes it by using the constructor to initialize the variable, rather
-	than the assignment operator.
-
-	Change-Id: I6b27958171bf6187f6a875657395fd10441db7e6
-
-2021-08-30  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: PR28291, Fix the gdb fails that PR27916 caused.
-	* According to PR28291, we get the following unexpected gdb behavior,
-
-	(gdb) disassemble 0x0,+4
-	Dump of assembler code from 0x0 to 0x4:
-	   0x0000000000000000:
-	   0x0000000000000001:
-	   0x0000000000000002:
-	   0x0000000000000003:
-	End of assembler dump.
-
-	* This patch should fix it to the right behavior,
-
-	(gdb) disassemble 0x0,+4
-	Dump of assembler code from 0x0 to 0x4:
-	   0x0000000000000000:  Cannot access memory at address 0x0
-
-	opcodes/
-	    pr 28291
-	    * riscv-dis.c (print_insn_riscv): Return STATUS if it is not zero.
-
-2021-08-30  Tom Tromey  <tom@tromey.com>
-
-	Add some parallel_for_each tests
-	Tom de Vries noticed that a patch in the DWARF scanner rewrite series
-	caused a regression in parallel_for_each -- it started crashing in the
-	case where the number of threads is 0 (there was an unchecked use of
-	"n-1" that was used to size an array).
-
-	He also pointed out that there were no tests of parallel_for_each.
-	This adds a few tests of parallel_for_each, primarily testing that
-	different settings for the number of threads will work.  This test
-	catches the bug that he found in that series.
-
-2021-08-30  Tom Tromey  <tom@tromey.com>
-
-	Add a show function for "maint show worker-threads"
-	I wanted to see how many threads gdb thought it was using, but
-	"maint show worker-threads" only reported "unlimited".  This patch
-	adds a show function so that it will now report the number of threads
-	gdb has started.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-08-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/cli] Don't assert on empty string for core-file
-	With current gdb we run into:
-	...
-	$ gdb -batch '' ''
-	: No such file or directory.
-	pathstuff.cc:132: internal-error: \
-	  gdb::unique_xmalloc_ptr<char> gdb_abspath(const char*): \
-	  Assertion `path != NULL && path[0] != '\0'' failed.
-	...
-
-	Fix this by skipping the call to gdb_abspath in core_target_open in the
-	empty-string case, such that we have instead:
-	...
-	$ gdb -batch '' ''
-	: No such file or directory.
-	: No such file or directory.
-	$
-	...
-
-	Tested on x86_64-linux.
-
-	gdb/ChangeLog:
-
-	2021-08-30  Tom de Vries  <tdevries@suse.de>
-
-		PR cli/28290
-		* gdb/corelow.c (core_target_open): Skip call to gdb_abspath in the
-		empty-string case.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-30  Tom de Vries  <tdevries@suse.de>
-
-		PR cli/28290
-		* gdb.base/batch-exit-status.exp: Add gdb '' and gdb '' '' tests.
-
-2021-08-30  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: PR27916, Support mapping symbols.
-	Similar to ARM/AARCH64, we add mapping symbols in the symbol table,
-	to mark the start addresses of data and instructions.  The $d means
-	data, and the $x means instruction.  Then the disassembler uses these
-	symbols to decide whether we should dump data or instruction.
-
-	Consider the mapping-04 test case,
-	$ cat tmp.s
-	  .text
-	  .option norelax
-	  .option norvc
-	  .fill 2, 4, 0x1001
-	  .byte 1
-	  .word 0
-	  .balign 8
-	  add a0, a0, a0
-	  .fill 5, 2, 0x2002
-	  add a1, a1, a1
-	  .data
-	  .word 0x1             # No need to add mapping symbols.
-	  .word 0x2
-
-	$ riscv64-unknown-elf-as tmp.s -o tmp.o
-	$ riscv64-unknown-elf-objdump -d tmp.o
-
-	Disassembly of section .text:
-
-	0000000000000000 <.text>:
-	   0:   00001001         .word   0x00001001  # Marked $d, .fill directive.
-	   4:   00001001         .word   0x00001001
-	   8:   00000001         .word   0x00000001  # .byte + part of .word.
-	   c:   00               .byte   0x00        # remaining .word.
-	   d:   00               .byte   0x00        # Marked $d, odd byte of alignment.
-	   e:   0001             nop                 # Marked $x, nops for alignment.
-	  10:   00a50533         add     a0,a0,a0
-	  14:   20022002         .word   0x20022002  # Marked $d, .fill directive.
-	  18:   20022002         .word   0x20022002
-	  1c:   2002             .short  0x2002
-	  1e:   00b585b3         add     a1,a1,a1    # Marked $x.
-	  22:   0001             nop                 # Section tail alignment.
-	  24:   00000013         nop
-
-	* Use $d and $x to mark the distribution of data and instructions.
-	  Alignments of code are recognized as instructions, since we usually
-	  fill nops for them.
-
-	* If the alignment have odd bytes, then we cannot just fill the nops
-	  into the spaces.  We always fill an odd byte 0x00 at the start of
-	  the spaces.  Therefore, add a $d mapping symbol for the odd byte,
-	  to tell disassembler that it isn't an instruction.  The behavior
-	  is same as Arm and Aarch64.
-
-	The elf/linux toolchain regressions all passed.  Besides, I also
-	disable the mapping symbols internally, but use the new objudmp, the
-	regressions passed, too.  Therefore, the new objudmp should dump
-	the objects corretly, even if they don't have any mapping symbols.
-
-	bfd/
-		pr 27916
-		* cpu-riscv.c (riscv_elf_is_mapping_symbols): Define mapping symbols.
-		* cpu-riscv.h: extern riscv_elf_is_mapping_symbols.
-		* elfnn-riscv.c (riscv_maybe_function_sym): Do not choose mapping
-		symbols as a function name.
-		(riscv_elf_is_target_special_symbol): Add mapping symbols.
-	binutils/
-		pr 27916
-		* testsuite/binutils-all/readelf.s: Updated.
-		* testsuite/binutils-all/readelf.s-64: Likewise.
-		* testsuite/binutils-all/readelf.s-64-unused: Likewise.
-		* testsuite/binutils-all/readelf.ss: Likewise.
-		* testsuite/binutils-all/readelf.ss-64: Likewise.
-		* testsuite/binutils-all/readelf.ss-64-unused: Likewise.
-	gas/
-		pr 27916
-		* config/tc-riscv.c (make_mapping_symbol): Create a new mapping symbol.
-		(riscv_mapping_state): Decide whether to create mapping symbol for
-		frag_now.  Only add the mapping symbols to text sections.
-		(riscv_add_odd_padding_symbol): Add the mapping symbols for the
-		riscv_handle_align, which have odd bytes spaces.
-		(riscv_check_mapping_symbols): Remove any excess mapping symbols.
-		(md_assemble): Marked as MAP_INSN.
-		(riscv_frag_align_code): Marked as MAP_INSN.
-		(riscv_init_frag): Add mapping symbols for frag, it usually called
-		by frag_var.  Marked as MAP_DATA for rs_align and rs_fill, and
-		marked as MAP_INSN for rs_align_code.
-		(s_riscv_insn): Marked as MAP_INSN.
-		(riscv_adjust_symtab): Call riscv_check_mapping_symbols.
-		* config/tc-riscv.h (md_cons_align): Defined to riscv_mapping_state
-		with MAP_DATA.
-		(TC_SEGMENT_INFO_TYPE): Record mapping state for each segment.
-		(TC_FRAG_TYPE): Record the first and last mapping symbols for the
-		fragments.  The first mapping symbol must be placed at the start
-		of the fragment.
-		(TC_FRAG_INIT): Defined to riscv_init_frag.
-		* testsuite/gas/riscv/mapping-01.s: New testcase.
-		* testsuite/gas/riscv/mapping-01a.d: Likewise.
-		* testsuite/gas/riscv/mapping-01b.d: Likewise.
-		* testsuite/gas/riscv/mapping-02.s: Likewise.
-		* testsuite/gas/riscv/mapping-02a.d: Likewise.
-		* testsuite/gas/riscv/mapping-02b.d: Likewise.
-		* testsuite/gas/riscv/mapping-03.s: Likewise.
-		* testsuite/gas/riscv/mapping-03a.d: Likewise.
-		* testsuite/gas/riscv/mapping-03b.d: Likewise.
-		* testsuite/gas/riscv/mapping-04.s: Likewise.
-		* testsuite/gas/riscv/mapping-04a.d: Likewise.
-		* testsuite/gas/riscv/mapping-04b.d: Likewise.
-		* testsuite/gas/riscv/mapping-norelax-04a.d: Likewise.
-		* testsuite/gas/riscv/mapping-norelax-04b.d: Likewise.
-		* testsuite/gas/riscv/no-relax-align.d: Updated.
-		* testsuite/gas/riscv/no-relax-align-2.d: Likewise.
-	include/
-		pr 27916
-		* opcode/riscv.h (enum riscv_seg_mstate): Added.
-
-	opcodes/
-		pr 27916
-		* riscv-dis.c (last_map_symbol, last_stop_offset, last_map_state):
-		Added to dump sections with mapping symbols.
-		(riscv_get_map_state): Get the mapping state from the symbol.
-		(riscv_search_mapping_symbol): Check the sorted symbol table, and
-		then find the suitable mapping symbol.
-		(riscv_data_length): Decide which data size we should print.
-		(riscv_disassemble_data): Dump the data contents.
-		(print_insn_riscv): Handle the mapping symbols.
-		(riscv_symbol_is_valid): Marked mapping symbols as invalid.
-
-2021-08-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Improve argument syntax of proc arange
-	The current syntax of proc arange is:
-	...
-	  proc arange { arange_start arange_length {comment ""} {seg_sel ""} } {
-	...
-	and a typical call looks like:
-	...
-	  arange $start $len
-	...
-
-	This style is somewhat annoying because if you want to specify the last
-	parameter, you need to give the default values of all the other optional ones
-	before as well:
-	...
-	  arange $start $len "" $seg_sel
-	...
-
-	Update the syntax to:
-	...
-	    proc arange { options arange_start arange_length } {
-	       parse_options {
-	           { comment "" }
-	           { seg_sel "" }
-	       }
-	...
-	such that a typical call looks like:
-	...
-	  arange {} $start $len
-	...
-	and a call using seg_sel looks like:
-	...
-	  arange {
-	    seg_sel $seg_sel
-	  } $start $len
-	...
-
-	Also update proc aranges, which already has an options argument, to use the
-	new proc parse_options.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@polymtl.ca>
-
-2021-08-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Change indirect symbol from IR to undefined
-	bfd/
-
-		PR ld/28264
-		* elflink.c (_bfd_elf_merge_symbol): Change indirect symbol from
-		IR to undefined.
-
-	ld/
-
-		PR ld/28264
-		* testsuite/ld-plugin/lto.exp: Run PR ld/28264 test.
-		* testsuite/ld-plugin/pr28264-1.d: New file.
-		* testsuite/ld-plugin/pr28264-2.d: Likewise.
-		* testsuite/ld-plugin/pr28264-3.d: Likewise.
-		* testsuite/ld-plugin/pr28264-4.d: Likewise.
-		* testsuite/ld-plugin/pr28264.c: Likewise.
-		* testsuite/ld-plugin/pr28264.ver: Likewise.
-
-2021-08-28  Alan Modra  <amodra@gmail.com>
-
-	PR28264, ld.bfd crash on linking efivar with LTO
-		PR 28264
-		PR 26978
-		* linker.c (_bfd_generic_link_add_one_symbol <MIND>): Check
-		that string is non-NULL.
-
-2021-08-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Don't write .gdb_index symbol table with empty entries
-	When comparing the sizes of the index files generated for shlib
-	outputs/gdb.dwarf2/dw2-zero-range/shr1.sl, I noticed a large difference
-	between .debug_names:
-	...
-	$ gdb -q -batch $shlib -ex "save gdb-index -dwarf-5 ."
-	$ du -b -h shr1.sl.debug_names shr1.sl.debug_str
-	61      shr1.sl.debug_names
-	0       shr1.sl.debug_str
-	...
-	and .gdb_index:
-	...
-	$ gdb -q -batch $shlib -ex "save gdb-index ."
-	$ du -b -h shr1.sl.gdb-index
-	8.2K    shr1.sl.gdb-index
-	...
-
-	The problem is that the .gdb_index contains a non-empty symbol table with only
-	empty entries.
-
-	Fix this by making the symbol table empty, such that we have instead:
-	...
-	$ du -b -h shr1.sl.gdb-index
-	184     shr1.sl.gdb-index
-	...
-
-	Tested on x86_64-linux.
-
-2021-08-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Generate .debug_aranges in gdb.dlang/watch-loc.exp
-	Before commit 5ef670d81fd "[gdb/testsuite] Add dummy start and end CUs in
-	dwarf assembly" we had in exec outputs/gdb.dlang/watch-loc/watch-loc a D
-	compilation unit at offset 0xc7:
-	...
-	  Compilation Unit @ offset 0xc7:
-	   Length:        0x4c (32-bit)
-	   Version:       4
-	   Abbrev Offset: 0x64
-	   Pointer Size:  8
-	 <0><d2>: Abbrev Number: 2 (DW_TAG_compile_unit)
-	    <d3>   DW_AT_language    : 19       (D)
-	...
-	with a corresponding .debug_aranges entry:
-	...
-	Offset into .debug_info:  0xc7
-	  Pointer Size:             4
-	  Segment Size:             0
-
-	    Address    Length
-	    004004a7 0000000b
-	    00000000 00000000
-	...
-
-	After that commit we have a dummy CU at offset 0xc7 and the D compilation unit
-	at offset 0xd2:
-	...
-	  Compilation Unit @ offset 0xc7:
-	   Length:        0x7 (32-bit)
-	   Version:       4
-	   Abbrev Offset: 0x64
-	   Pointer Size:  8
-	  Compilation Unit @ offset 0xd2:
-	   Length:        0x4c (32-bit)
-	   Version:       4
-	   Abbrev Offset: 0x65
-	   Pointer Size:  8
-	 <0><dd>: Abbrev Number: 2 (DW_TAG_compile_unit)
-	    <de>   DW_AT_language    : 19       (D)
-	...
-	while the .debug_aranges entry still points to 0xc7.
-
-	The problem is that the test-case uses a hack (quoting from
-	commit 75f06e9dc59):
-	...
-	[ Note: this is a non-trivial test-case.  The file watch-loc-dw.S contains a
-	.debug_info section, but not an .debug_aranges section or any actual code.
-	The file watch-loc.c contains code and a .debug_aranges section, but no other
-	debug section.  So, the intent for the .debug_aranges section in watch-loc.c
-	is to refer to a compilation unit in the .debug_info section in
-	watch-loc-dw.S. ]
-	...
-	and adding the dummy CU caused that hack to stop working.
-
-	Fix this by moving the generation of .debug_aranges from watch-loc.c to
-	watch-loc.exp, such that we have:
-	...
-	  Offset into .debug_info:  0xd2
-	  Pointer Size:             4
-	  Segment Size:             0
-
-	    Address    Length
-	    004004a7 0000000b
-	    00000000 00000000
-	...
-
-	Tested on x86_64-linux.
-
-2021-08-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Generate .debug_aranges entry for dummy CU
-	A best practise for DWARF [1] is to generate .debug_aranges entries for CUs
-	even if they have no address range.
-
-	Generate .debug_arange entries for the dummy CUs added by the DWARF assembler.
-
-	Tested on x86_64-linux.
-
-	[1] http://wiki.dwarfstd.org/index.php?title=Best_Practices
-
-2021-08-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add .debug_aranges in more test-cases
-	A couple of test-cases fail when run with target board cc-with-debug-names due
-	to missing .debug_aranges entries for the CUs added by the dwarf assembler.
-
-	Add a .debug_aranges entry for those CUs.
-
-	Tested on x86_64-linux.
-
-2021-08-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Support .debug_aranges in dwarf assembly
-	Add a proc aranges such that we can generate .debug_aranges sections in dwarf
-	assembly using:
-	...
-	  cu { label cu_label } {
-	  ...
-	  }
-
-	  aranges {} cu_label {
-	    arange $addr $len [<comment>] [$segment_selector]
-	  }
-	...
-
-	Tested on x86_64-linux.
-
-2021-08-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add label option to proc cu
-	We can use current dwarf assembly infrastructure to declare a label that marks
-	the start of the CU header:
-	...
-	  declare_labels header_start_cu_a
-	  _section ".debug_info"
-	  header_start_cu_a : cu {} {
-	  }
-	  _section ".debug_info"
-	  header_start_cu_b : cu {} {
-	  }
-	...
-	on the condition that we switch to the .debug_info section before, which makes
-	this style of use fragile.
-
-	Another way to achieve the same is to use the label as generated by the cu
-	proc itself:
-	...
-	  variable _cu_label
-	  cu {} {
-	  }
-	  set header_start_cu_a $_cu_label
-	  cu {} {
-	  }
-	  set header_start_cu_b $_cu_label
-	...
-	but again that seems fragile given that adding a new CU inbetween will
-	silently result in the wrong value for the label.
-
-	Add a label option to proc cu such that we can simply do:
-	...
-	  cu { label header_start_cu_a } {
-	  }
-	  cu { label header_start_cu_b } {
-	  }
-	...
-
-	Tested on x86_64-linux.
-
-2021-08-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-26  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: remove some stray newlines in debug output
-	I spotted a couple of stray newlines that were left at the end of
-	debug message during conversion to the new debug output scheme.  These
-	messages are part of the 'set debug lin-lwp 1' output.
-
-2021-08-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-24  Tom Tromey  <tom@tromey.com>
-
-	Fix two regressions caused by CU / TU merging
-	PR symtab/28160 and PR symtab/27893 concern GDB crashes in the test
-	suite when using the "fission" target board.  They are both caused by
-	the patches that merge the list of CUs with the list of TUs (and to a
-	lesser degree by the patches to share DWARF data across objfiles), and
-	the underlying issue is the same: it turns out that reading a DWO can
-	cause new type units to be created.  This means that the list of
-	dwarf2_per_cu_data objects depends on precisely which CUs have been
-	expanded.  However, because the type units can be created while
-	expanding a CU means that the vector of CUs can expand while it is
-	being iterated over -- a classic mistake.  Also, because a TU can be
-	added later, it means the resize_symtabs approach is incorrect.
-
-	This patch fixes resize_symtabs by removing it, and having set_symtab
-	resize the vector on demand.  It fixes the iteration problem by
-	introducing a safe (index-based) iterator and changing the relevant
-	spots to use it.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28160
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27893
-
-2021-08-24  Alan Modra  <amodra@gmail.com>
-
-	Real programmers don't configure gcc using --with-ld
-		* testsuite/lib/ld-lib.exp (run_host_cmd): Give a clue as to why
-		gcc -B doesn't pick up the ld under test.
-
-2021-08-24  Alan Modra  <amodra@gmail.com>
-
-	objdump -S test fail on mingw
-	FAIL: objdump -S
-	FAIL: objdump --source-comment
-	is seen on mingw for the simple reason that gcc adds a .exe suffix on
-	the output file if not already present.  Fix that, and tidy some objcopy
-	tests.
-
-		* testsuite/lib/binutils-common.exp (exeext): New proc.
-		* testsuite/binutils-all/objcopy.exp (exe, test_prog): Use it here.
-		(objcopy_remove_relocations_from_executable): Catch objcopy errors.
-		Only run on ELF targets.
-		* testsuite/binutils-all/objdump.exp (exe): Set variable.
-		(test_build_id_debuglink, test_objdump_S): Use exe file suffix.
-
-2021-08-24  James Bowman (FTDI-UK)  <james.bowman@ftdichip.com>
-
-	FT32: Remove recursion in ft32_opcode
-	The function ft32_opcode used recursion.  This could cause a stack
-	overflow.  Replaced with a pair of non-recursive functions.
-
-		PR 28169
-	        * ft32-dis.c: Formatting.
-		(ft32_opcode1): Split out from..
-		(ft32_opcode): ..here.
-
-2021-08-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-23  Tom Tromey  <tom@tromey.com>
-
-	Fix a latent bug in dw2-ranges-overlap.exp
-	dw2-ranges-overlap.exp creates a program where a psymtab has two
-	address ranges, and a function without debug info whose address is
-	between these two ranges.  Then it sets a breakpoint on this function
-	and runs to it, expecting that the language should remain "auto; c"
-	when stopped.
-
-	However, this test case also has a "main" function described (briefly)
-	in the DWARF, and this function is given language C++.  Also, a
-	breakpoint stop sets the current language to the language that was
-	used when setting the breakpoint.
-
-	My new DWARF scanner decides that this "main" is the main program and
-	sets the current language to C++ at startup, causing this test to
-	fail.
-
-	This patch fixes the test in a simple way, by introducing a new
-	function that takes the place of "main" in the DWARF.  I think this
-	still exercises the original problem, but also avoids problems with my
-	branch.
-
-	It seemed safe to me to submit this separately.
-
-2021-08-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb] Fix 'not in executable format' error message
-	With trying to load a non-executable file into gdb, we run into PR26880:
-	...
-	$ gdb -q -batch test.c
-	"0x7ffc87bfc8d0s": not in executable format: \
-	  file format not recognized
-	...
-
-	The problem is caused by using %ps in combination with the error function
-	(note that confusingly, it does work in combination with the warning
-	function).
-
-	Fix this by using plain "%s" instead.
-
-	Tested on x86_64-linux.
-
-	gdb/ChangeLog:
-
-	2021-08-22  Tom de Vries  <tdevries@suse.de>
-
-		PR gdb/26880
-		* gdb/exec.c (exec_file_attach): Use %s instead of %ps in call to
-		error function.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-22  Tom de Vries  <tdevries@suse.de>
-
-		PR gdb/26880
-		* gdb.base/non-executable.exp: New file.
-
-2021-08-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Use compiler-generated instead of gas-generated stabs
-	The test-case gdb.dwarf2/dw2-ranges.exp is the only one in the gdb testsuite
-	that uses gas-generated stabs.
-
-	While the use seems natural alongside the use of gas-generated dwarf in the
-	same test-case, there are a few known issues, filed on the gdb side as:
-	- PR symtab/12497 - "stabs: PIE relocation does not work"
-	- PR symtab/28221 - "[readnow, stabs] FAIL: gdb.dwarf2/dw2-ranges.exp: \
-	  info line func"
-	and on the gas side as:
-	- PR gas/28233 - "[gas, --gstabs] Generate stabs more similar to gcc"
-
-	The test-case contains a KFAIL for PR12497, but it's outdated and fails to
-	trigger.
-
-	The intention of the test-case is to test gas-generated dwarf, and using
-	gcc-generated stabs instead of gas-generated stabs works fine.
-
-	Supporting compiler-generated stabs is already a corner-case for gdb, and
-	there's no current commitment/incentive to support/workaround gas-generated
-	stabs, which can be considered a corner-case of a corner-case.
-
-	Work around these problem by using compiler-generated stabs in the test-case.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-22  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.dwarf2/dw2-ranges.exp: Use compiler-generated stabs.
-
-2021-08-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add dummy start and end CUs in dwarf assembly
-	Say one compiles a hello.c:
-	...
-	$ gcc -g hello.c
-	...
-
-	On openSUSE Leap 15.2 and Tumbleweed, the CU for hello.c is typically not the
-	first in .debug_info, nor the last, due to presence of debug information in
-	objects for sources like:
-	- ../sysdeps/x86_64/start.S
-	- init.c
-	- ../sysdeps/x86_64/crti.S
-	- elf-init.c
-	- ../sysdeps/x86_64/crtn.S.
-
-	On other systems, say ubuntu 18.04.5, the CU for hello.c is typically the
-	first and the last in .debug_info.
-
-	This difference has caused me to find some errors in the dwarf assembly
-	using openSUSE, that didn't show up on other platforms.
-
-	Force the same situation on other platforms by adding a dummy start
-	and end CU.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-22  Tom de Vries  <tdevries@suse.de>
-
-		PR testsuite/28235
-		* lib/dwarf.exp (Dwarf::dummy_cu): New proc.
-		(Dwarf::assemble): Add dummy start and end CU.
-
-2021-08-23  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix dw2-ranges-psym.exp with -readnow
-	When running test-case gdb.dwarf2/dw2-ranges-psym.exp with target board
-	-readnow, I run into:
-	...
-	(gdb) file dw2-ranges-psym^M
-	Reading symbols from dw2-ranges-psym...^M
-	Expanding full symbols from dw2-ranges-psym...^M
-	(gdb) set complaints 0^M
-	(gdb) FAIL: gdb.dwarf2/dw2-ranges-psym.exp: No complaints
-	...
-
-	The problem is that the regexp expects a gdb prompt immediately after the
-	"Reading symbols" line.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-22  Tom de Vries  <tdevries@suse.de>
-
-		* lib/gdb.exp (gdb_load_no_complaints): Update regexp to allow
-		"Expanding full symbols" Line.
-
-2021-08-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-22  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: m32r: add __linux__ hack for non-Linux hosts
-	The m32r Linux syscall emulation logic assumes the host environment
-	directly matches -- it's being run on 32-bit little endian Linux.
-	This breaks building for non-Linux systems, so put all the code in
-	__linux__ ifdef checks.  This code needs a lot of love to make it
-	work everywhere, but let's at least unbreak it for non-Linux hosts.
-
-2021-08-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-20  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: nltvals: switch output mode to a directory
-	In preparation for this script generating more files, change the output
-	argument to specify a directory.  This drops the stdout behavior, but
-	since no one really runs this tool directly, it's not a big deal.
-
-2021-08-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-19  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use bool in notify_command_param_changed_p and do_set_command
-	Trivial patch to use bool instead of int.
-
-	Change-Id: I9e5f8ee4305272a6671cbaaaf2f0484eff0d1ea5
-
-2021-08-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Put back 3 aborts in OP_E_memory
-	Put back 3 aborts where invalid lengths should have been filtered out.
-
-	gas/
-
-		PR binutils/28247
-		* testsuite/gas/i386/bad-bcast.s: Add a comment.
-
-	opcodes/
-
-		PR binutils/28247
-		* * i386-dis.c (OP_E_memory): Put back 3 aborts.
-
-2021-08-19  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Avoid abort on invalid broadcast
-	Print "{bad}" on invalid broadcast instead of abort.
-
-	gas/
-
-		PR binutils/28247
-		* testsuite/gas/i386/bad-bcast.d: New file.
-		* testsuite/gas/i386/bad-bcast.s: Likewise.
-		* testsuite/gas/i386/i386.exp: Run bad-bcast.
-
-	opcodes/
-
-		PR binutils/28247
-		* i386-dis.c (OP_E_memory): Print "{bad}" on invalid broadcast
-		instead of abort.
-
-2021-08-19  Aaron Merey  <amerey@redhat.com>
-
-	gdb/solib: Refactor scan_dyntag
-	scan_dyntag is unnecessarily duplicated in solib-svr4.c and solib-dsbt.c.
-
-	Move this function to solib.c and rename it to gdb_bfd_scan_elf_dyntag.
-	Also add it to solib.h so it is included in both solib-svr4 and solib-dsbt.
-
-2021-08-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-18  Will Schmidt  <will_schmidt@vnet.ibm.com>
-
-	[gdb] [rs6000] Add ppc64_linux_gcc_target_options method.
-	Add a method to set the gcc target options for the ppc64 targets.
-	This change sets an empty value, which allows the gcc
-	default values (-mcmodel=medium) be used, instead of -mcmodel=large
-	which is set by the default_gcc_target_options hook.
-
-	[gdb] [rs6000] Add ppc64*_gnu_triplet_regexp methods.
-	Add methods to set the target triplet so we can
-	find the proper gcc when our gcc is named of
-	the form powerpc64{le}-<foo>-gcc or ppc64{le}-<foo>-gcc.
-
-2021-08-18  Alan Modra  <amodra@gmail.com>
-
-	Re: as: Replace the removed symbol with the versioned symbol
-	Some targets, typically embedded without shared libraries, replace the
-	relocation symbol with a section symbol (see tc_fix_adjustable).
-	Allow the test to pass for such targets.  Fixes the following.
-
-	avr-elf  +FAIL: symver symver16
-	d10v-elf  +FAIL: symver symver16
-	dlx-elf  +FAIL: symver symver16
-	ip2k-elf  +FAIL: symver symver16
-	m68k-elf  +FAIL: symver symver16
-	mcore-elf  +FAIL: symver symver16
-	pj-elf  +FAIL: symver symver16
-	s12z-elf  +FAIL: symver symver16
-	visium-elf  +FAIL: symver symver16
-	z80-elf  +FAIL: symver symver16
-
-		PR gas/28157
-		* testsuite/gas/symver/symver16.d: Relax reloc match.
-
-2021-08-18  Alan Modra  <amodra@gmail.com>
-
-	[GOLD] PowerPC64 relocation overflow for -Os register save/restore funcs
-	Fixes a silly mistake in calculating the address of -Os out-of-line
-	register save/restore function copies.  Copies of these linker defined
-	functions are added to stub sections when the original (in
-	target->savres_section) can't be reached.
-
-		* powerpc.cc (Target_powerpc::Relocate::relocate): Correct address
-		calculation of out-of-line save/restore function copies.
-
-2021-08-18  Alan Modra  <amodra@gmail.com>
-
-	Another ld script backtrack
-		* ldgram.y (length_spec): Throw away look-ahead NAME.
-
-2021-08-18  Mike Frysinger  <vapier@gentoo.org>
-
-	gdb: fix spacing on CCLD silent rules
-
-	sim: nltvals: localize TARGET_<ERRNO> defines
-	Code should not be using these directly, instead they should be
-	resolving these dynamically via cb_host_to_target_errno maps.
-	Fix the Blackfin code and remove the defines out of the header
-	so no new code can rely on them.
-
-2021-08-18  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: rename ChangeLog files to ChangeLog-2021
-	Now that ChangeLog entries are no longer used for sim patches,
-	this commit renames all relevant sim ChangeLog to ChangeLog-2021,
-	similar to what we would do in the context of the "Start of New
-	Year" procedure.
-
-	The purpose of this change is to avoid people merging ChangeLog
-	entries by mistake when applying existing commits that they are
-	currently working on.
-
-	Also throw in a .gitignore entry to keep people from adding new
-	ChangeLog files anywhere in the sim tree.
-
-2021-08-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix thread_step_over_chain_length
-	If I debug a single-thread program and look at the infrun debug logs, I
-	see:
-
-	    [infrun] start_step_over: stealing global queue of threads to step, length = 2
-
-	That makes no sense... turns out there's a buglet in
-	thread_step_over_chain_length, "num" should be initialized to 0.  I
-	think this bug is a leftover from an earlier version of the code (not
-	merged upstream) that manually walked the list, where the first item was
-	implicitly counted (hence the 1).
-
-	Change-Id: I0af03aa93509aed36528be5076894dc156a0b5ce
-
-2021-08-17  Shahab Vahedi  <shahab@synopsys.com>
-
-	opcodes: Fix the auxiliary register numbers for ARC HS
-	The numbers for the auxiliary registers "tlbindex" and
-	"tlbcommand" of ARCv2HS are incorrect.  This patch makes
-	the following changes to correct that error.
-
-	 ,------------.-----------------.---------------.
-	 | aux. reg.  | old (incorrect) | new (correct) |
-	 |------------+-----------------+---------------|
-	 | tlbindex   |      0x463      |     0x464     |
-	 | tlbcommand |      0x464      |     0x465     |
-	 `------------^-----------------^---------------'
-
-	opcodes/
-	2021-08-17  Shahab Vahedi <shahab@synopsys.com>
-
-		* arc-regs.h (DEF): Fix the register numbers.
-
-2021-08-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	gdb: Don't assume r_ldsomap when r_version > 1 on Linux
-	The r_ldsomap field is specific to Solaris (part of librtld_db), and
-	should never be accessed for Linux.  glibc is planning to add a field
-	to support multiple namespaces.  But there will be no r_ldsomap when
-	r_version is bumped to 2.  Add linux_[ilp32|lp64]_fetch_link_map_offsets
-	to set r_ldsomap_offset to -1 and use them for Linux targets.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28236
-
-2021-08-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	gdbserver: Check r_version < 1 for Linux debugger interface
-	Update gdbserver to check r_version < 1 instead of r_version != 1 so
-	that r_version can be bumped for a new field in the glibc debugger
-	interface to support multiple namespaces.  Since so far, the gdbserver
-	only reads fields defined for r_version == 1, it is compatible with
-	r_version >= 1.
-
-	All future glibc debugger interface changes will be backward compatible.
-	If there is ever the need for backward incompatible change to the glibc
-	debugger interface, a new DT_XXX element will be provided to access the
-	new incompatible interface.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11839
-
-2021-08-17  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [4/4] arm: Add Tag_PACRET_use build attribute
-	bfd/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf32-arm.c (elf32_arm_merge_eabi_attributes): Add
-		'Tag_PACRET_use' case.
-
-	binutils/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* readelf.c (arm_attr_tag_PAC_extension): Declare.
-		(arm_attr_public_tags): Add 'PAC_extension' lookup.
-
-	elfcpp/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm.h: Define 'Tag_PACRET_use' enum.
-
-	gas/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (arm_convert_symbolic_attribute): Add
-		'Tag_PACRET_use' to the attribute_table.
-
-	include/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf/arm.h (elf_arm_reloc_type): Add 'Tag_PACRET_use'.
-
-2021-08-17  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [3/4] arm: Add Tag_BTI_use build attribute
-	bfd/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf32-arm.c (elf32_arm_merge_eabi_attributes): Add
-		'Tag_BTI_use' case.
-
-	binutils/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* readelf.c (arm_attr_tag_PAC_extension): Declare.
-		(arm_attr_public_tags): Add 'PAC_extension' lookup.
-
-	elfcpp/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm.h: Define 'Tag_BTI_use' enum.
-
-	gas/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (arm_convert_symbolic_attribute): Add
-		'Tag_BTI_use' to the attribute_table.
-
-	include/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf/arm.h (elf_arm_reloc_type): Add 'Tag_BTI_use'.
-
-2021-08-17  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [2/4] arm: Add Tag_BTI_extension build attribute
-	bfd/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf32-arm.c (elf32_arm_merge_eabi_attributes): Add
-		'Tag_BTI_extension' case.
-
-	binutils/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* readelf.c (arm_attr_tag_PAC_extension): Declare.
-		(arm_attr_public_tags): Add 'PAC_extension' lookup.
-
-	elfcpp/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm.h: Define 'Tag_BTI_extension' enum.
-
-	gas/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (arm_convert_symbolic_attribute): Add
-		'Tag_BTI_extension' to the attribute_table.
-
-	include/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf/arm.h (elf_arm_reloc_type): Add 'Tag_BTI_extension'.
-
-2021-08-17  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [1/4] arm: Add Tag_PAC_extension build attribute
-	bfd/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf32-arm.c (elf32_arm_merge_eabi_attributes): Add
-		'Tag_PAC_extension' case.
-
-	binutils/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* readelf.c (arm_attr_tag_PAC_extension): Declare.
-		(arm_attr_public_tags): Add 'PAC_extension' lookup.
-
-	elfcpp/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm.h: Define 'Tag_PAC_extension' enum.
-
-	gas/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (arm_convert_symbolic_attribute): Add
-		'Tag_PAC_extension' to the attribute_table.
-
-	include/
-	2021-07-06  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* elf/arm.h (elf_arm_reloc_type): Add 'Tag_PAC_extension'.
-
-2021-08-17  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Always run fp tests
-	Always run fp tests since the size of .tfloat, .ds.x, .dc.x and .dcb.x
-	directive outputs is always 10 bytes.  There is no need for fp-elf32 nor
-	fp-elf64.
-
-		PR gas/28230
-		* testsuite/gas/i386/fp-elf32.d: Removed.
-		* testsuite/gas/i386/fp-elf64.d: Likewise.
-		* testsuite/gas/i386/fp.s: Remove NO_TFLOAT_PADDING codes.
-		* testsuite/gas/i386/i386.exp: Don't run fp-elf32 nor fp-elf64.
-		Always run fp.
-
-2021-08-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Don't pad .tfloat directive output
-	.tfloat output should always be 10 bytes without padding, independent
-	of psABIs.  In glibc, x86 assembly codes expect 10-byte .tfloat output.
-	This also reduces .ds.x output and .tfloat output with hex input from
-	12 bytes to 10 bytes to match .tfloat output.
-
-		PR gas/28230
-		* NEWS: Mention changes of .ds.x output and .tfloat output with
-		hex input.
-		* config/tc-i386.c (x86_tfloat_pad): Removed.
-		* config/tc-i386.h (X_PRECISION_PAD): Changed to 0.
-		(x86_tfloat_pad): Removed.
-		* testsuite/gas/i386/fp.s: If NO_TFLOAT_PADDING isn't defined,
-		add explicit paddings after .tfloat, .ds.x, .dc.x and .dcb.x
-		directives.
-		* testsuite/gas/i386/i386.exp (ASFLAGS): Append
-		"--defsym NO_TFLOAT_PADDING=1" when running the fp test.
-
-2021-08-16  Tom Tromey  <tromey@adacore.com>
-
-	Fix register regression in DWARF evaluator
-	On an internal test case, using an arm-elf target, commit ba5bc3e5a92
-	("Make DWARF evaluator return a single struct value") causes a
-	regression.  (It doesn't happen for any of the other cross targets
-	that I test when importing upstream gdb.)
-
-	I don't know if there's an upstream gdb test case showing the same
-	problem... I can only really run native tests with dejagnu AFAIK.
-
-	The failure manifests like this:
-
-	    Breakpoint 1, file_1.export_1 (param_1=<error reading variable: Unable to access DWARF register number 64>, str=...) at [...]/file_1.adb:5
-
-	Whereas when it works it looks like:
-
-	    Breakpoint 1, file_1.export_1 (param_1=99.0, str=...) at [...]/file_1.adb:5
-
-	The difference is that the new code uses the passed-in gdbarch,
-	whereas the old code used the frame's gdbarch, when handling
-	DWARF_VALUE_REGISTER.
-
-	This patch restores the use of the frame's arch.
-
-2021-08-16  Tom Tromey  <tromey@adacore.com>
-
-	Fix Ada regression due to DWARF expression series
-	Commit 0579205aec4 ("Simplify dwarf_expr_context class interface")
-	caused a regression in the internal AdaCore test suite.  I didn't try
-	to reproduce this with the GDB test suite, but the test is identical
-	to gdb.dwarf2/dynarr-ptr.exp.
-
-	The problem is that this change:
-
-	 	case DW_OP_push_object_address:
-	 	  /* Return the address of the object we are currently observing.  */
-	-	  if (this->data_view.data () == nullptr
-	-	      && this->obj_address == 0)
-	+	  if (this->m_addr_info == nullptr)
-
-	... slightly changes the logic here.  In particular, it's possible for
-	the caller to pass in a non-NULL m_addr_info, but one that looks like:
-
-	    (top) p *this.m_addr_info
-	    $15 = {
-	      type = 0x29b7a70,
-	      valaddr = {
-		m_array = 0x0,
-		m_size = 0
-	      },
-	      addr = 0,
-	      next = 0x0
-	    }
-
-	In this case, an additional check is needed.  With the current code,
-	what happens instead is that the computation computes an incorrect
-	address -- but one that does not fail in read_memory, due to the
-	precise memory map of the embedded target in question.
-
-	This patch restores the old logic.
-
-2021-08-16  Patrick Monnerat  <patrick@monnerat.net>
-
-	Notify observer of breakpoint auto-disabling
-	As breakpoint_modified observer is currently notified upon breakpoint stop
-	before handling auto-disabling when enable count is reached, the observer
-	is never notified of the disabling.
-
-	The problem affects:
-	- The MI interpreter enabled= value when reporting =breakpoint-modified
-	- A Python event handler for breakpoint_modified using the "enabled"
-	  member of its parameter
-	- insight: breakpoint GUI window is not properly updated upon auto-disable
-
-	This patch moves the observer notification after the auto-disabling
-	code and implements corresponding tests for the MI and Python cases.
-
-	Fixes https://sourceware.org/bugzilla/show_bug.cgi?id=23336
-
-	Change-Id: I0c50df4789334071e5390cb46b3ca0d4a7f83c61
-
-2021-08-16  H.J. Lu  <hjl.tools@gmail.com>
-
-	as: Replace the removed symbol with the versioned symbol
-	When a symbol removed by .symver is used in relocation and there is one
-	and only one versioned symbol, don't remove the symbol.  Instead, mark
-	it to be removed and replace the removed symbol used in relocation with
-	the versioned symbol before generating relocation.
-
-		PR gas/28157
-		* symbols.c (symbol_flags): Add removed.
-		(symbol_entry_find): Updated.
-		(symbol_mark_removed): New function.
-		(symbol_removed_p): Likewise.
-		* symbols.h (symbol_mark_removed): New prototype.
-		(symbol_removed_p): Likewise.
-		* write.c (write_relocs): Call obj_fixup_removed_symbol on
-		removed fixp->fx_addsy and fixp->fx_subsy if defined.
-		(set_symtab): Don't add a symbol if symbol_removed_p returns true.
-		* config/obj-elf.c (elf_frob_symbol):  Don't remove the symbol
-		if it is used on relocation.  Instead, mark it as to be removed
-		and issue an error if the symbol has more than one versioned name.
-		(elf_fixup_removed_symbol): New function.
-		* config/obj-elf.h (elf_fixup_removed_symbol): New prototype.
-		(obj_fixup_removed_symbol): New.
-		* testsuite/gas/symver/symver11.d: Updated expected error
-		message.
-		* testsuite/gas/symver/symver16.d: New file.
-		* testsuite/gas/symver/symver16.s: Likewise.
-
-2021-08-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-14  Alan Modra  <amodra@gmail.com>
-
-	ld script fill pattern expression
-	It turns out we do need to backtrack when parsing after all.  The
-	fill_opt component in the section rule swiches to EXPRESSION and back
-	to SCRIPT, and to find the end of an expression it is necessary to
-	look ahead one token.
-
-		* ldgram.y (section): Throw away lookahead NAME token.
-		(overlay_section): Likewise.
-		* testsuite/ld-elf/overlay.t: Add fill pattern on overlays.
-		Test fill pattern before stupidly named normal sections too,
-		and before /DISCARD/.
-
-2021-08-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-13  Alan Modra  <amodra@gmail.com>
-
-	ld lexer tidy, possibly break the world
-	This tidies the states in which ld lexer rules are enabled.
-	This change will quite likely trip over issues similar to those
-	mentioned in the new ldlex.l comments, so please test it out.
-
-		* ldgram.y (wildcard_name): Remove now unnecessary components.
-		* ldlex.l: Restrict many rules' states.  Remove -l expression
-		state rule.  Comment on lookahead state madness and need for
-		/DISCARD/ in expression state.
-
-2021-08-13  Alan Modra  <amodra@gmail.com>
-
-	ld script lower-case absolute and sizeof_headers
-	I think these happened by accident, so let's see what breaks if they
-	are removed.
-
-		* ldlex.l: Remove lower case "absolute" and "sizeof_headers"
-		in non-mri mode.
-		* ld.texi: Remove sizeof_headers index.
-		* testsuite/ld-mmix/mmohdr1.ld: Use SIZEOF_HEADERS.
-
-2021-08-13  Alan Modra  <amodra@gmail.com>
-
-	tidy mri script extern
-	MRI mode generally doesn't flip lexer states, so let's make MRI mode
-	"extern" not do so either.
-
-		* ldgram.y (extern_name_list): Don't change lex state here.
-		(ifile_p1): Change state here on EXTERN instead.
-
-2021-08-13  Alan Modra  <amodra@gmail.com>
-
-	Re: PR28217, Syntax error when memory region contains a hyphen
-	I discovered some more errors when tightening up the lexer rules.
-	Just because we INCLUDE a file doesn't mean we've switched states.
-
-		PR 28217
-		* ldgram.y (statement): Don't switch lexer state on INCLUDE.
-		(mri_script_command, ifile_p1, memory_spec, section): Likewise.
-
-2021-08-13  Lifang Xia  <lifang_xia@c-sky.com>
-
-	PR28168: [CSKY] Fix stack overflow in disassembler
-	PR 28168:
-	Stack overflow with a large float. %f is not a goot choice for this.
-	%f should be replaced with %.7g.
-
-	gas/
-		* testsuite/gas/csky/pr28168.d: New testcase for PR 28168.
-		* testsuite/gas/csky/pr28168.s: Likewise.
-		* testsuite/gas/csky/v2_float_part2.d: Following the new format.
-		* opcodes/csky-dis.c (csky_output_operand): %.7g replaces %f.
-
-2021-08-13  Alan Modra  <amodra@gmail.com>
-
-	PR28217, Syntax error when memory region contains a hyphen
-	The saga of commit 40726f16a8d7 continues.  This attacks the problem
-	of switching between SCRIPT and EXPRESSION state lexing by removing
-	the need to do so for phdrs like ":text".  Instead {WILDCHAR}*
-	matching, the reason why ":text" lexed as one token, is restricted to
-	within the braces of a section or overlay statement.  The new WILD
-	lexer state is switched at the non-optional brace tokens, so
-	ldlex_backup is no longer needed.  I've also removed the BOTH state,
-	which doesn't seem to be needed any more.  Besides rules involving
-	error reporting, there was just one place where SCRIPT appeared
-	without BOTH, the {WILDCHAR}* rule, three where BOTH appears without
-	SCRIPT for tokens that only need EXPRESSION state, and two where BOTH
-	appears alongside INPUT_LIST.  (Since I'm editing the wild and
-	filename rules, removing BOTH and adding WILD can also be seen as
-	renaming the old BOTH state to SCRIPT and renaming the old SCRIPT
-	state to WILD with a reduced scope.)
-
-	As a followup, I'll look at removing EXPRESSION state from some lexer
-	rules that no longer need it due to this cleanup.
-
-		PR 28217
-		* ldgram.y (exp <ORIGIN, LENGTH>): Use paren_script_name.
-		(section): Parse within braces of section in wild mode, and
-		after brace back in script mode.  Remove ldlex_backup call.
-		Similarly for OVERLAY.
-		(overlay_section): Similarly.
-		(script_file): Replace ldlex_both with ldlex_script.
-		* ldlex.h (ldlex_wild): Declare.
-		(ldlex_both): Delete.
-		* ldlex.l (BOTH): Delete.  Remove state from all rules.
-		(WILD): New state.  Enable many tokens in this state.
-		Enable filename match in SCRIPT mode.  Enable WILDCHAR match
-		in WILD state, disable in SCRIPT mode.
-		(ldlex_wild): New function.
-		* ldfile.c (ldfile_try_open_bfd): Replace ldlex_both call with
-		ldlex_script.
-
-2021-08-13  Alan Modra  <amodra@gmail.com>
-
-	ns32k configury
-	Since ns32k-netbsd is as yet not removed, just marked obsolete,
-	the target should still be accepted with --enable-obsolete.
-
-	I also enabled ns32k-openbsd in ld since there doesn't seem to be a
-	good reason why that target is not supported there but is elsewhere.
-
-	bfd/
-		* config.bfd: Allow ns32k-netbsd.
-	ld/
-		* configure.tgt: Allow ns32k-openbsd.
-
-2021-08-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-13  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: riscv_scan_prologue: handle LD and LW instructions
-	While working on the testsuite, I ended up noticing that GDB fails to
-	produce a full backtrace from a thread waiting in pthread_join.  When
-	selecting the waiting thread and using the 'bt' command, the following
-	result can be observed:
-
-		(gdb) bt
-		#0  0x0000003ff7fccd20 in __futex_abstimed_wait_common64 () from /lib/riscv64-linux-gnu/libpthread.so.0
-		#1  0x0000003ff7fc43da in __pthread_clockjoin_ex () from /lib/riscv64-linux-gnu/libpthread.so.0
-		Backtrace stopped: frame did not save the PC
-
-	On my platform, I do not have debug symbols for glibc, so I need to rely
-	on prologue analysis in order to unwind stack.
-
-	Here is what the function prologue looks like:
-
-		(gdb) disassemble __pthread_clockjoin_ex
-		Dump of assembler code for function __pthread_clockjoin_ex:
-		   0x0000003ff7fc42de <+0>:     addi    sp,sp,-144
-		   0x0000003ff7fc42e0 <+2>:     sd      s5,88(sp)
-		   0x0000003ff7fc42e2 <+4>:     auipc   s5,0xd
-		   0x0000003ff7fc42e6 <+8>:     ld      s5,-2(s5) # 0x3ff7fd12e0
-		   0x0000003ff7fc42ea <+12>:    ld      a5,0(s5)
-		   0x0000003ff7fc42ee <+16>:    sd      ra,136(sp)
-		   0x0000003ff7fc42f0 <+18>:    sd      s0,128(sp)
-		   0x0000003ff7fc42f2 <+20>:    sd      s1,120(sp)
-		   0x0000003ff7fc42f4 <+22>:    sd      s2,112(sp)
-		   0x0000003ff7fc42f6 <+24>:    sd      s3,104(sp)
-		   0x0000003ff7fc42f8 <+26>:    sd      s4,96(sp)
-		   0x0000003ff7fc42fa <+28>:    sd      s6,80(sp)
-		   0x0000003ff7fc42fc <+30>:    sd      s7,72(sp)
-		   0x0000003ff7fc42fe <+32>:    sd      s8,64(sp)
-		   0x0000003ff7fc4300 <+34>:    sd      s9,56(sp)
-		   0x0000003ff7fc4302 <+36>:    sd      a5,40(sp)
-
-	As far as prologue analysis is concerned, the most interesting part is
-	done at address 0x0000003ff7fc42ee (<+16>): 'sd ra,136(sp)'. This stores
-	the RA (return address) register on the stack, which is the information
-	we are looking for in order to identify the caller.
-
-	In the current implementation of the prologue scanner, GDB stops when
-	hitting 0x0000003ff7fc42e6 (<+8>) because it does not know what to do
-	with the 'ld' instruction.  GDB thinks it reached the end of the
-	prologue but have not yet reached the important part, which explain
-	GDB's inability to unwind past this point.
-
-	The section of the prologue starting at <+4> until <+12> is used to load
-	the stack canary[1], which will then be placed on the stack at <+36> at
-	the end of the prologue.
-
-	In order to have the prologue properly handled, this commit proposes to
-	add support for the ld instruction in the RISC-V prologue scanner.
-	I guess riscv32 would use lw in such situation so this patch also adds
-	support for this instruction.
-
-	With this patch applied, gdb is now able to unwind past pthread_join:
-
-		(gdb) bt
-		#0  0x0000003ff7fccd20 in __futex_abstimed_wait_common64 () from /lib/riscv64-linux-gnu/libpthread.so.0
-		#1  0x0000003ff7fc43da in __pthread_clockjoin_ex () from /lib/riscv64-linux-gnu/libpthread.so.0
-		#2  0x0000002aaaaaa88e in bar() ()
-		#3  0x0000002aaaaaa8c4 in foo() ()
-		#4  0x0000002aaaaaa8da in main ()
-
-	I have had a look to see if I could reproduce this easily, but in my
-	simple testcases using '-fstack-protector-all', the canary is loaded
-	after the RA register is saved.  I do not have a reliable way of
-	generating a prologue similar to the problematic one so I forged one
-	instead.
-
-	The testsuite have been run on riscv64 ubuntu 21.01 with no regression
-	observed.
-
-	[1] https://en.wikipedia.org/wiki/Buffer_overflow_protection#Canaries
-
-2021-08-12  Tom Tromey  <tromey@adacore.com>
-
-	Update documentation to mention Pygments
-	Philippe Blain pointed out that the gdb documentation does not mention
-	that Pygments may be used for source highlighting.  This patch updates
-	the docs to reflect how highlighting is actually done.
-
-2021-08-12  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make gdbarch_printable_names return a vector
-	I noticed that gdbarch_selftest::operator() leaked the value returned by
-	gdbarch_printable_names.  Make gdbarch_printable_names return an
-	std::vector and update callers.  That makes it easier for everyone
-	involved, less manual memory management.
-
-	Change-Id: Ia8fc028bdb91f787410cca34f10bf3c5a6da1498
-
-2021-08-12  Carl Love  <cel@us.ibm.com>
-
-	Improve forward progress test in python.exp
-	The test steps into func2 and than does an up to get back to the previous
-	frame. The test checks that the line number you are at after the up command
-	is greater than the line where the function was called from. The
-	assembly/codegen for the powerpc target includes a NOP after the
-	branch-link.
-
-	func2 (); /* Break at func2 call site. /
-	10000694: 59 00 00 48 bl 100006ec
-	10000698: 00 00 00 60 nop
-	return 0; / Break to end. */
-	1000069c: 00 00 20 39 li r9,0
-
-	The PC at the instruction following the branch-link is 0x10000698 which
-	GDB.find_pc_line() maps to the same line number as the bl instruction.
-	GDB did move past the branch-link location thus making forward progress.
-
-	The following proposed fix adds an additional PC check to see if forward
-	progress was made.  The line test is changed from greater than to greater
-	than or equal.
-
-2021-08-12  Jiangshuai Li  <jiangshuai_li@c-sky.com>
-
-	gdb:csky rm tdesc_has_registers in csky_register_name
-	As CSKY arch has not parsed target-description.xml in csky_gdbarch_init,
-	when a remote server, like csky-qemu or gdbserver, send a target-description.xml
-	to gdb, tdesc_has_registers will return ture, but tdesc_register_name (gdbarch, 0)
-	will return NULL, so a cmd "info registers r0" will not work.
-
-	Function of parsing target-description.xml will be add later for CSKY arch,
-	now it is temporarily removed to allow me to do other supported tests.
-
-	2021-07-15 Jiangshuai Li  <jiangshuai_li@c-sky.com>
-
-	            * csky-tdep.c : not using tdesc funtions in csky_register_name
-
-2021-08-12  Alan Modra  <amodra@gmail.com>
-
-	Re: gas: support NaN flavors
-	Fixes tic4x-coff FAIL: simple FP constants
-
-		* testsuite/gas/all/float.s: Make NaN tests conditional on hasnan.
-		* testsuite/gas/all/gas.exp: Define hasnan.
-
-2021-08-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-11  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Update the pass and fail strings of PR ld/28138 test
-		PR ld/28138
-		* testsuite/ld-plugin/lto.exp: Update the pass and fail strings
-		of PR ld/28138 test to indicate which part of the test passed
-		and failed.
-
-2021-08-11  Darius Galis  <darius.galis@cyberthorstudios.com>
-
-	Fix a typo in the RX asse,bler.  The Double-precision floating-point exception handling control register name is DECNT not DCENT.
-		* config/rx-parse.y (DECNT): Fixed typo.
-		* testsuite/gas/rx/dpopm.sm (DECNT): Fixed typo.
-		* testsuite/gas/rx/dpushm.sm (DECNT): Fixed typo.
-		* testsuite/gas/rx/macros.inc (DECNT): Fixed typo.
-
-2021-08-11  Nick Clifton  <nickc@redhat.com>
-
-	Fix an internal error in the CSKY assembler when asked to resolve an overlarge constant.
-		PR 28215
-		* config/tc-csky.c (md_apply_fix): Correctly handle a fixup that
-		involves an overlarge constant.
-
-2021-08-11  Luis Machado  <luis.machado@linaro.org>
-
-	Add 3 new PAC-related ARM note types
-	The following patch synchronizes includes/objdump/readelf with the Linux
-	Kernel in terms of ARM regset notes.
-
-	We're currently missing 3 of them:
-
-	NT_ARM_PACA_KEYS
-	NT_ARM_PACG_KEYS
-	NT_ARM_PAC_ENABLED_KEYS
-
-	We don't need GDB to bother with this at the moment, so this doesn't update
-	bfd/elf.c. If needed, we can do it in the future.
-
-	binutils/
-
-		* readelf.c (get_note_type): Handle new ARM PAC notes.
-
-	include/elf/
-
-		* common.h (NT_ARM_PACA_KEYS, NT_ARM_PACG_KEYS)
-		(NT_ARM_PAC_ENABLED_KEYS): New constants.
-
-2021-08-11  Nick Clifton  <nickc@redhat.com>
-
-	Updated Portuguese translation for the binutils sub-directory.
-
-2021-08-11  John Ericson  <git@JohnEricson.me>
-
-	Deprecate a.out support for NetBSD targets.
-	As discussed previously, a.out support is now quite deprecated, and in
-	some cases removed, in both Binutils itself and NetBSD, so this legacy
-	default makes little sense. `netbsdelf*` and `netbsdaout*` still work
-	allowing the user to be explicit about there choice. Additionally, the
-	configure script warns about the change as Nick Clifton requested.
-
-	One possible concern was the status of NetBSD on NS32K, where only a.out
-	was supported. But per [1] NetBSD has removed support, and if it were to
-	come back, it would be with ELF. The binutils implementation is
-	therefore marked obsolete, per the instructions in the last message.
-
-	With that patch and this one applied, I have confirmed the following:
-
-	--target=i686-unknown-netbsd
-	--target=i686-unknown-netbsdelf
-	  builds completely
-
-	--target=i686-unknown-netbsdaout
-	  properly fails because target is deprecated.
-
-	--target=vax-unknown-netbsdaout builds completely except for gas, where
-	the target is deprecated.
-
-	[1]: https://mail-index.netbsd.org/tech-toolchain/2021/07/19/msg004025.html
-	---
-	 bfd/config.bfd                             | 43 +++++++++++++--------
-	 bfd/configure.ac                           |  5 +--
-	 binutils/testsuite/binutils-all/nm.exp     |  2 +-
-	 binutils/testsuite/lib/binutils-common.exp |  7 +---
-	 config/picflag.m4                          |  4 +-
-	 gas/configure.tgt                          |  9 +++--
-	 gas/testsuite/gas/arm/blx-bl-convert.d     |  2 +-
-	 gas/testsuite/gas/arm/blx-local-thumb.d    |  2 +-
-	 gas/testsuite/gas/sh/basic.exp             |  2 +-
-	 gdb/configure.host                         | 34 +++++++----------
-	 gdb/configure.tgt                          |  2 +-
-	 gdb/testsuite/gdb.asm/asm-source.exp       |  6 +--
-	 intl/configure                             |  2 +-
-	 ld/configure.tgt                           | 44 +++++++++++-----------
-	 ld/testsuite/ld-arm/arm-elf.exp            |  4 +-
-	 ld/testsuite/ld-elf/elf.exp                |  2 +-
-	 ld/testsuite/ld-elf/shared.exp             |  4 +-
-	 libiberty/configure                        |  4 +-
-
-2021-08-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: don't print backtrace when dumping core after an internal error
-	Currently, when GDB hits an internal error, and the user selects to
-	dump core, the recently added feature to write a backtrace to the
-	console will kick in, and print a backtrace as well as dumping the
-	core.
-
-	This was certainly not my intention when adding the backtrace on fatal
-	signal functionality, this feature was intended to produce a backtrace
-	when GDB crashes due to some fatal signal, internal errors should have
-	continued to behave as they did before, unchanged.
-
-	In this commit I set the signal disposition of SIGABRT back to SIG_DFL
-	just prior to the call to abort() that GDB uses to trigger the core
-	dump, this prevents GDB reaching the code that writes the backtrace to
-	the console.
-
-	I've also added a test that checks we don't see a backtrace on the
-	console after an internal error.
-
-2021-08-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: register SIGBUS, SIGFPE, and SIGABRT handlers
-	Register handlers for SIGBUS, SIGFPE, and SIGABRT.  All of these
-	signals are setup as fatal signals that will cause GDB to terminate.
-	However, by passing these signals through the handle_fatal_signal
-	function, a user can arrange to see a backtrace when GDB
-	terminates (see maint set backtrace-on-fatal-signal).
-
-	In normal use of GDB there should be no user visible changes after
-	this commit.  Only if GDB terminates with one of the above signals
-	will GDB change slightly, potentially printing a backtrace before
-	aborting.
-
-	I've added new tests for SIGFPE, SIGBUS, and SIGABRT.
-
-2021-08-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: print backtrace on fatal SIGSEGV
-	This commit adds a new maintenance feature, the ability to print
-	a (limited) backtrace if GDB dies due to a fatal signal.
-
-	The backtrace is produced using the backtrace and backtrace_symbols_fd
-	functions which are declared in the execinfo.h header, and both of
-	which are async signal safe.  A configure check has been added to
-	check for these features, if they are not available then the new code
-	is not compiled into GDB and the backtrace will not be printed.
-
-	The motivation for this new feature is to aid in debugging GDB in
-	situations where GDB has crashed at a users site, but the user is
-	reluctant to share core files, possibly due to concerns about what
-	might be in the memory image within the core file.  Such a user might
-	be happy to share a simple backtrace that was written to stderr.
-
-	The production of the backtrace is on by default, but can switched off
-	using the new commands:
-
-	  maintenance set backtrace-on-fatal-signal on|off
-	  maintenance show backtrace-on-fatal-signal
-
-	Right now, I have hooked this feature in to GDB's existing handling of
-	SIGSEGV only, but this will be extended to more signals in a later
-	commit.
-
-	One additional change I have made in this commit is that, when we
-	decide GDB should terminate due to the fatal signal, we now
-	raise the same fatal signal rather than raising SIGABRT.
-
-	Currently, this is only effecting our handling of SIGSEGV.  So,
-	previously, if GDB hit a SEGV then we would terminate GDB with a
-	SIGABRT.  After this commit we will terminate GDB with a SIGSEGV.
-
-	This feels like an improvement to me, we should still get a core dump,
-	but in many shells, the user will see a more specific message once GDB
-	exits, in bash for example "Segmentation fault" rather than "Aborted".
-
-	Finally then, here is an example of the output a user would see if GDB
-	should hit an internal SIGSEGV:
-
-	  Fatal signal: Segmentation fault
-	  ----- Backtrace -----
-	  ./gdb/gdb[0x8078e6]
-	  ./gdb/gdb[0x807b20]
-	  /lib64/libpthread.so.0(+0x14b20)[0x7f6648c92b20]
-	  /lib64/libc.so.6(__poll+0x4f)[0x7f66484d3a5f]
-	  ./gdb/gdb[0x1540f4c]
-	  ./gdb/gdb[0x154034a]
-	  ./gdb/gdb[0x9b002d]
-	  ./gdb/gdb[0x9b014d]
-	  ./gdb/gdb[0x9b1aa6]
-	  ./gdb/gdb[0x9b1b0c]
-	  ./gdb/gdb[0x41756d]
-	  /lib64/libc.so.6(__libc_start_main+0xf3)[0x7f66484041a3]
-	  ./gdb/gdb[0x41746e]
-	  ---------------------
-	  A fatal error internal to GDB has been detected, further
-	  debugging is not possible.  GDB will now terminate.
-
-	  This is a bug, please report it.  For instructions, see:
-	  <https://www.gnu.org/software/gdb/bugs/>.
-
-	  Segmentation fault (core dumped)
-
-	It is disappointing that backtrace_symbols_fd does not actually map
-	the addresses back to symbols, this appears, in part, to be due to GDB
-	not being built with -rdynamic as the manual page for
-	backtrace_symbols_fd suggests, however, even when I do add -rdynamic
-	to the build of GDB I only see symbols for some addresses.
-
-	We could potentially look at alternative libraries to provide the
-	backtrace (e.g. libunwind) however, the solution presented here, which
-	is available as part of glibc is probably a good baseline from which
-	we might improve things in future.
-
-2021-08-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: rename async_init_signals to gdb_init_signals
-	The async_init_signals has, for some time, dealt with async and sync
-	signals, so removing the async prefix makes sense I think.
-
-	Additionally, as pointed out by Pedro:
-
-	  .....
-
-	The comments relating to SIGTRAP and SIGQUIT within this function are
-	out of date.
-
-	The comments for SIGTRAP talk about the signal disposition (SIG_IGN)
-	being passed to the inferior, meaning the signal disposition being
-	inherited by GDB's fork children.  However, we now call
-	restore_original_signals_state prior to forking, so the comment on
-	SIGTRAP is redundant.
-
-	The comments for SIGQUIT are similarly out of date, further, the
-	comment on SIGQUIT talks about problems with BSD4.3 and vfork,
-	however, we have not supported BSD4.3 for several years now.
-
-	Given the above, it seems that changing the disposition of SIGTRAP is
-	no longer needed, so I've deleted the signal() call for SIGTRAP.
-
-	Finally, the header comment on the function now called
-	gdb_init_signals was getting quite out of date, so I've updated it
-	to (hopefully) better reflect reality.
-
-	There should be no user visible change after this commit.
-
-2021-08-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: register signal handler after setting up event token
-	This commit fixes the smallest of small possible bug related to signal
-	handling.  If we look in async_init_signals we see code like this:
-
-	  signal (SIGQUIT, handle_sigquit);
-	  sigquit_token =
-	    create_async_signal_handler (async_do_nothing, NULL, "sigquit");
-
-	Then if we look in handle_sigquit we see code like this:
-
-	  mark_async_signal_handler (sigquit_token);
-	  signal (sig, handle_sigquit);
-
-	Finally, in mark_async_signal_handler we have:
-
-	  async_handler_ptr->ready = 1;
-
-	Where async_handler_ptr will be sigquit_token.
-
-	What this means is that if a SIGQUIT arrive in async_init_signals
-	after handle_sigquit has been registered, but before sigquit_token has
-	been initialised, then GDB will most likely crash.
-
-	The chance of this happening is tiny, but fixing this is trivial, just
-	ensure we call create_async_signal_handler before calling signal, so
-	lets do that.
-
-	There are no tests for this.  Trying to land a signal in the right
-	spot is pretty hit and miss.  I did try changing the current HEAD GDB
-	like this:
-
-	  signal (SIGQUIT, handle_sigquit);
-	  raise (SIGQUIT);
-	  sigquit_token =
-	    create_async_signal_handler (async_do_nothing, NULL, "sigquit");
-
-	And confirmed that this did result in a crash, after my change I tried
-	this:
-
-	  sigquit_token =
-	    create_async_signal_handler (async_do_nothing, NULL, "sigquit");
-	  signal (SIGQUIT, handle_sigquit);
-	  raise (SIGQUIT);
-
-	And GDB now starts up just fine.
-
-	gdb/ChangeLog:
-
-		* event-top.c (async_init_signals): For each signal, call signal
-		only after calling create_async_signal_handler.
-
-2021-08-11  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: terminate upon receipt of SIGFPE
-	GDB's SIGFPE handling is broken, this is PR gdb/16505 and
-	PR gdb/17891.
-
-	We currently try to use an async event token to process SIGFPE.  So,
-	when a SIGFPE arrives the signal handler calls
-	mark_async_signal_handler then returns, effectively ignoring the
-	signal (for now).
-
-	The intention is that later the event loop will see that the async
-	token associated with SIGFPE has been marked and will call the async
-	handler, which just throws an error.
-
-	The problem is that SIGFPE is not safe to ignore.  Ignoring a
-	SIGFPE (unless it is generated artificially, e.g. by raise()) is
-	undefined behaviour, after ignoring the signal on many targets we
-	return to the instruction that caused the SIGFPE to be raised, which
-	immediately causes another SIGFPE to be raised, we get stuck in an
-	infinite loop.  The behaviour is certainly true on x86-64.
-
-	To view this behaviour I simply added some dummy code to GDB that
-	performed an integer divide by zero, compiled this on x86-64
-	GNU/Linux, ran GDB and saw GDB hang.
-
-	In this commit, I propose to remove all special handling of SIGFPE and
-	instead just let GDB make use of the default SIGFPE action, that is,
-	to terminate the process.
-
-	The only user visible change here should be:
-
-	  - If a user sends a SIGFPE to GDB using something like kill,
-	    previously GDB would just print an error and remain alive, now GDB
-	    will terminate.  This is inline with what happens if the user
-	    sends GDB a SIGSEGV from kill though, so I don't see this as an
-	    issue.
-
-	  - If a bug in GDB causes a real SIGFPE, previously the users GDB
-	    session would hang.  Now the GDB session will terminate.  Again,
-	    this is inline with what happens if GDB receives a SIGSEGV due to
-	    an internal bug.
-
-	In bug gdb/16505 there is mention that it would be nice if GDB did
-	more than just terminate when receiving a fatal signal.  I haven't
-	done that in this commit, but later commits will move in that
-	direction.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16505
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17891
-
-2021-08-11  Alan Modra  <amodra@gmail.com>
-
-	PR28198, Support # as linker script comment marker
-		PR 28198
-		* ldlex.l: Combine rules for handling newline, whitespace and
-		comments.  Extend # comment handling to all states.
-
-2021-08-11  Alan Modra  <amodra@gmail.com>
-
-	ldgram.y tidies
-	I've been tripped up before thinking the "end" rule was the "END"
-	token.  Let's use a better name.  The formatting changes are for
-	consistency within rules, and making it a little easier to visually
-	separate tokens from mid-rule actions.
-
-		* ldgram.y (separator): Rename from "end".  Update uses.
-		(statement): Formatting.  Move ';' match to beginning.
-		(paren_script_name): Formatting.  Simplify.
-		(must_be_exp, section): Formatting.
-
-2021-08-11  Alan Modra  <amodra@gmail.com>
-
-	Mention whitespace in script expressions
-	Inside an output section statement, ld's parser can't tell whether a
-	line
-	    .+=4;
-	is an assignment to dot or a file named ".+=4".
-
-		* ld.texi (expressions): Mention need for whitespace.
-
-2021-08-11  Matt Jacobson  <mhjacobson@me.com>
-
-	Add a -mno-dollar-line-separator command line option to the AVR assembler.
-	Some frontends, like the gcc Objective-C frontend, emit symbols with $
-	characters in them.  The AVR target code in gas treats $ as a line separator,
-	so the code doesn?t assemble correctly.
-
-	Provide a machine-specific option to disable treating $ as a line separator.
-
-		* config/tc-avr.c (enum options): Add option flag.
-		(struct option): Add option -mno-dollar-line-separator.
-		(md_parse_option): Adjust treatment of $ when option is present.
-		* config/tc-avr.h: Use avr_line_separator_chars.
-
-2021-08-11  Nick Clifton  <nickc@redhat.com>
-
-	Fix typo in previous delta
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	gas: fold IEEE encoding of -Inf with that of +Inf
-	The respective results differ only by the sign bits - there's no need to
-	have basically identical (partially even arch-specific) logic twice.
-	Simply set the sign bit at the end of encoding the various formats.
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	gas: support NaN flavors
-	Like for infinity, there isn't just a single NaN. The sign bit may be
-	of interest and, going beyond infinity, whether the value is quiet or
-	signalling may be even more relevant to be able to encode.
-
-	Note that an anomaly with x86'es double extended precision NaN values
-	gets taken care of at the same time: For all other formats a positive
-	value with all mantissa bits set was used, while here a negative value
-	with all non-significant mantissa bits clear was chose for an unknown
-	reason.
-
-	For m68k, since I don't know their X_PRECISION floating point value
-	layout, a warning gets issued if any of the new flavors was attempted
-	to be encoded that way. However likely it may be that, given that the
-	code lives in a source file supposedly implementing IEEE-compliant
-	formats, the bit patterns of the individual words match x86'es, I didn't
-	want to guess so. And my very, very old paper doc doesn't even mention
-	floating point formats other than single and double.
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	Arm64: leave .bfloat16 processing to common code
-	With x86 support having been implemented by extending atof-ieee.c, avoid
-	unnecessary code duplication in md_atof(). This will then also allow to
-	take advantage of adjustments made there without needing to mirror them
-	here.
-
-	Arm32: leave more .bfloat16 processing to common code
-	With x86 support having been implemented by extending atof-ieee.c, avoid
-	unnecessary code duplication in md_atof(). This will then also allow to
-	take advantage of adjustments made there without needing to mirror them
-	here.
-
-	gas: make 2nd argument of .dcb.* consistently optional
-	Unlike the forms consuming/producing integer data, the floating point
-	ones so far required the 2nd argument to be present, contrary to
-	documentation. To avoid code duplication, split float_length() out of
-	hex_float() (taking the opportunity to adjust error message wording).
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	x86: introduce .bfloat16 directive
-	This is to be able to generate data acted upon by AVX512-BF16 and
-	AMX-BF16 insns. While not part of the IEEE standard, the format is
-	sufficiently standardized to warrant handling in config/atof-ieee.c.
-	Arm, where custom handling was implemented, may want to leverage this as
-	well. To be able to also use the hex forms supported for other floating
-	point formats, a small addition to the generic hex_float() is needed.
-
-	Extend existing x86 testcases.
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	x86: introduce .hfloat directive
-	This is to be able to generate data passed to {,V}CVTPH2PS and acted
-	upon by AVX512-FP16 insns. To be able to also use the hex forms
-	supported for other floating point formats, a small addition to the
-	generic hex_float() is needed.
-
-	Extend existing x86 testcases.
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	x86/ELF: fix .tfloat output with hex input
-	The ELF psABI-s are quite clear here: On 32-bit the data type is 12
-	bytes long (with 2 bytes of trailing padding), while on 64-bit it is 16
-	bytes long (with 6 bytes of padding). Make hex_float() capable of
-	handling such padding.
-
-	Note that this brings the emitted data size of .dc.x / .dcb.x in line
-	also for non-ELF targets; so far they were different depending on input
-	format (dec vs hex).
-
-	Extend the existing x86 testcases.
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	x86/ELF: fix .ds.x output
-	The ELF psABI-s are quite clear here: On 32-bit the underlying data type
-	is 12 bytes long (with 2 bytes of trailing padding), while on 64-bit it
-	is 16 bytes long (with 6 bytes of padding). Make s_space() capable of
-	handling 'x' (and 'p') type floating point being other than 12 bytes
-	wide (also adjusting documentation). This requires duplicating the
-	definition of X_PRECISION in the target speciifc header; the compiler
-	would complain if this was out of sync with config/atof-ieee.c.
-
-	Note that for now padding space doesn't get separated from actual
-	storage, which means that things will work correctly only for little-
-	endian cases, and which also means that by specifying large enough
-	numbers padding space can be set to non-zero. Since the logic is needed
-	for a single little-endian architecture only for now, I'm hoping that
-	this might be acceptable for the time being; otherwise the change will
-	become more intrusive.
-
-	Note also that this brings the emitted data size of .ds.x vs .tfloat in
-	line for non-ELF targets as well; the issue will be even more obvious
-	when further taking into account a subsequent patch fixing .dc.x/.dcb.x
-	(where output sizes currently differ depending on input format).
-
-	Extend existing x86 testcases.
-
-2021-08-11  Jan Beulich  <jbeulich@suse.com>
-
-	x86/ELF: fix .tfloat output
-	The ELF psABI-s are quite clear here: On 32-bit the data type is 12
-	bytes long (with 2 bytes of trailing padding), while on 64-bit it is 16
-	bytes long (with 6 bytes of padding). Make ieee_md_atof() capable of
-	handling such padding, and specify the needed padding for x86 (leaving
-	non-ELF targets alone for now). Split the existing x86 testcase.
-
-	x86: have non-PE/COFF BEOS be recognized as ELF
-	BEOS, unless explicitly requesting *-*-beospe* targets, uses standard
-	ELF. None of the newly enabled tests in the testsuite fail for me.
-
-2021-08-11  Alan Modra  <amodra@gmail.com>
-
-	PR28163, Segment fault in function rl78_special_reloc
-	Relocation offset checks were completely missing in the rl78 backend,
-	allowing a relocation to write over memory anywhere.  This was true
-	for rl78_special_reloc, a function primarily used when applying debug
-	relocations, and in rl78_elf_relocate_section used by the linker.
-
-	This patch fixes those problems by correcting inaccuracies in the
-	relocation howtos, then uses those howtos to sanity check relocation
-	offsets before applying relocations.  In addition, the patch
-	implements overflow checking using the howto information rather than
-	the ad-hoc scheme implemented in relocate_section.  I implemented the
-	overflow checking in rl78_special_reloc too.
-
-		* elf32-rl78.c (RL78REL, RL78_OP_REL): Add mask parameter.
-		(rl78_elf_howto_table): Set destination masks.  Correct size and
-		bitsize of DIR32_REV.  Correct complain_on_overflow for many relocs
-		as per tests in relocate_section.  Add RH_SFR.  Correct bitsize
-		for RH_SADDR.  Set size to 3 and bitsize to 0 for all OP relocs.
-		(check_overflow): New function.
-		(rl78_special_reloc): Check that reloc address is within section.
-		Apply relocations using reloc howto.  Check for overflow.
-		(RANGE): Delete.
-		(rl78_elf_relocate_section): Sanity check r_offset.  Perform
-		overflow checking using reloc howto.
-
-2021-08-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-10  Tom Tromey  <tom@tromey.com>
-
-	Ignore .debug_types when reading .debug_aranges
-	I noticed that the fission-reread.exp test case can cause a complaint
-	when run with --target_board=cc-with-debug-names:
-
-	warning: Section .debug_aranges in [...]/fission-reread has duplicate debug_info_offset 0x0, ignoring .debug_aranges.
-
-	The bug here is that this executable has both .debug_info and
-	.debug_types, and both have a CU at offset 0x0.  This triggers the
-	duplicate warning.
-
-	Because .debug_types doesn't provide any address ranges, these CUs can
-	be ignored.  That is, this bug turns out to be another regression from
-	the info/types merger patch.
-
-	This patch fixes the problem by having this loop igore type units.
-	fission-reread.exp is updated to test for the bug.
-
-2021-08-10  Tom Tromey  <tom@tromey.com>
-
-	Generalize addrmap dumping
-	While debugging another patch series, I wanted to dump an addrmap.  I
-	came up with this patch, which generalizes the addrmap-dumping code
-	from psymtab.c and moves it to addrmap.c.  psymtab.c is changed to use
-	the new code.
-
-2021-08-10  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: iterate only on vfork parent threads in handle_vfork_child_exec_or_exit
-	I spotted what I think is a buglet in proceed_after_vfork_done.  After a
-	vfork child exits or execs, we resume all the threads of the parent.  To
-	do so, we iterate on all threads using iterate_over_threads with the
-	proceed_after_vfork_done callback.  Each thread is resumed if the
-	following condition is true:
-
-	    if (thread->ptid.pid () == pid
-		&& thread->state == THREAD_RUNNING
-		&& !thread->executing
-		&& !thread->stop_requested
-		&& thread->stop_signal () == GDB_SIGNAL_0)
-
-	where `pid` is the pid of the vfork parent.  This is not multi-target
-	aware: since it only filters on pid, if there is an inferior with the
-	same pid in another target, we could end up resuming a thread of that
-	other inferior.  The chances of the stars aligning for this to happen
-	are tiny, but still.
-
-	Fix that by iterating only on the vfork parent's threads, instead of on
-	all threads.  This is more efficient, as we iterate on just the required
-	threads (inferiors have their own thread list), and we can drop the pid
-	check.  The resulting code is also more straightforward in my opinion,
-	so it's a win-win.
-
-	Change-Id: I14647da72e2bf65592e82fbe6efb77a413a4be3a
-
-2021-08-10  Nick Clifton  <nickc@redhat.com>
-
-	Updated Serbian and Russian translations for various sub-directories
-
-2021-08-10  George Barrett  <bob@bob131.so>
-
-	guile: fix smob exports
-	Before Guile v2.1 [1], calls to `scm_make_smob_type' implicitly added
-	the created class to the exports list of (oop goops); v2.1+ does not
-	implicitly create bindings in any modules. This means that the GDB
-	manual subsection documenting exported types is not quite right when GDB
-	is linked against Guile <v2.1 (types are exported from (oop goops))
-	instead of (gdb)) and incorrect when linked against Guile v2.1+ (types
-	are not bound to any variables at all!).
-
-	There is a range of cases in which it's necessary or convenient to be
-	able to refer to a GDB smob type, for instance:
-
-	 - Pattern matching based on the type of a value.
-	 - Defining GOOPS methods handling values from GDB (GOOPS methods
-	   typically use dynamic dispatch based on the types of the arguments).
-	 - Type-checking assertions when applying some defensive programming on
-	   an interface.
-	 - Generally any other situation one might encounter in a dynamically
-	   typed language that might need some introspection.
-
-	If you're more familiar with Python, it would be quite similar to being
-	unable to refer to the classes exported from the GDB module (which is to
-	say: not crippling for the most part, but makes certain tasks more
-	difficult than necessary).
-
-	This commit makes a small change to GDB's smob registration machinery
-	to make sure registered smobs get exported from the current
-	module. This will likely cause warnings to the user about conflicting
-	exports if they load both (gdb) and (oop goops) from a GDB linked
-	against Guile v2.0, but it shouldn't impact functionality (and seemed
-	preferable to trying to un-export bindings from (oop goops) if v2.0
-	was detected).
-
-	[1]: This changed with Guile commit
-	     28d0871b553a3959a6c59e2e4caec1c1509f8595
-
-	gdb/ChangeLog:
-
-	2021-06-07  George Barrett  <bob@bob131.so>
-
-		* guile/scm-gsmob.c (gdbscm_make_smob_type): Export registered
-		smob type from the current module.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-06-07  George Barrett  <bob@bob131.so>
-
-		* gdb.guile/scm-gsmob.exp (test exports): Add tests to make
-		sure the smob types currently listed in the GDB manual get
-		exported from the (gdb) module.
-
-	Change-Id: I7dcd791276b48dfc9edb64fc71170bbb42a6f6e7
-
-2021-08-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-09  Nick Clifton  <nickc@redhat.com>
-
-	GAS: DWARF-5: Ensure that the 0'th entry in the directory table contains the current working directory.
-		* dwarf2dbg.c (get_directory_table_entry): Ensure that dir[0]
-		contains current working directory.
-		(out_dir_and_file_list): Likewise.
-		* testsuite/gas/elf/dwarf-5-dir0.s: New test source file.
-		* testsuite/gas/elf/dwarf-5-dir0.d: New test driver.
-		* testsuite/gas/elf/elf.exp: Run the new test.
-		* testsuite/gas/elf/dwarf-5-file0.d: Adjust expected output.
-		* testsuite/gas/i386/dwarf5-line-1.d: Likewise.
-		* testsuite/gas/i386/dwarf5-line-2.d: Likewise.
-
-2021-08-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-08  Tom Tromey  <tom@tromey.com>
-
-	Include objfiles.h in a few .c files
-	I found a few .c files that rely on objfiles.h, but that only include
-	it indirectly, via dwarf2/read.h -> psympriv.h.  If that include is
-	removed (something my new DWARF indexer series does), then the build
-	will break.
-
-	It seemed harmless and correct to add these includes now, making the
-	eventual series a little smaller.
-
-2021-08-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-07  Alan Modra  <amodra@gmail.com>
-
-	PR28186, SEGV elf.c:7991:30 in _bfd_elf_fixup_group_sections
-		PR 28186
-		* elf.c (_bfd_elf_fixup_group_sections): Don't segfault on
-		objcopy/strip with NULL output_section.
-
-2021-08-07  Alan Modra  <amodra@gmail.com>
-
-	PR28176, rl78 complex reloc divide by zero
-	This is a bit more than just preventing the divide by zero.  Most of
-	the patch is tidying up error reporting, so that for example, linking
-	an object file with a reloc stack underflow produces a linker error
-	rather than just displaying a message that might be ignored.
-
-		PR 28176
-		* elf32-rl78.c (RL78_STACK_PUSH, RL78_STACK_POP): Delete.
-		(rl78_stack_push, rl78_stack_pop): New inline functions.
-		(rl78_compute_complex_reloc): Add status and error message params.
-		Use new inline stack handling functions.  Report stack overflow
-		or underflow, and divide by zero.
-		(rl78_special_reloc): Return status and error message from
-		rl78_compute_complex_reloc.
-		(rl78_elf_relocate_section): Similarly.  Modernise reloc error
-		reporting.  Delete unused bfd_reloc_other case.  Don't assume
-		DIR24S_PCREL overflow is due to undefined function.
-		(rl78_offset_for_reloc): Adjust to suit rl78_compute_complex_reloc.
-
-2021-08-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Recognize .gdb_index symbol table with empty entries as empty
-	When reading a .gdb_index that contains a non-empty symbol table with only
-	empty entries, gdb doesn't recognize it as empty.
-
-	Fix this by recognizing that the constant pool is empty, and then setting the
-	symbol table to empty.
-
-	Tested on x86_64-linux.
-
-	gdb/ChangeLog:
-
-	2021-08-01  Tom de Vries  <tdevries@suse.de>
-
-		PR symtab/28159
-		* dwarf2/read.c (read_gdb_index_from_buffer): Handle symbol table
-		filled with empty entries.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-01  Tom de Vries  <tdevries@suse.de>
-
-		PR symtab/28159
-		* gdb.dwarf2/dw2-zero-range.exp: Remove kfail.
-
-2021-08-06  Tom Tromey  <tromey@adacore.com>
-
-	Unconditionally define _initialize_addrmap
-	The way that init.c is generated does not allow for an initialization
-	function to be conditionally defined -- doing so will result in a link
-	error.
-
-	This patch fixes a build problem that arises from such a conditional
-	definition.  It can be reproduce with --disable-unit-tests.
-
-2021-08-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix zero address complaint for shlib
-	In PR28004 the following warning / Internal error is reported:
-	...
-	$ gdb -q -batch \
-	    -iex "set sysroot $(pwd -P)/repro" \
-	    ./repro/gdb \
-	    ./repro/core \
-	    -ex bt
-	  ...
-	 Program terminated with signal SIGABRT, Aborted.
-	 #0  0x00007ff8fe8e5d22 in raise () from repro/usr/lib/libc.so.6
-	 [Current thread is 1 (LWP 1762498)]
-	 #1  0x00007ff8fe8cf862 in abort () from repro/usr/lib/libc.so.6
-	 warning: (Internal error: pc 0x7ff8feb2c21d in read in psymtab, \
-	           but not in symtab.)
-	 warning: (Internal error: pc 0x7ff8feb2c218 in read in psymtab, \
-	           but not in symtab.)
-	  ...
-	 #2  0x00007ff8feb2c21e in __gnu_debug::_Error_formatter::_M_error() const \
-	   [clone .cold] (warning: (Internal error: pc 0x7ff8feb2c21d in read in \
-	   psymtab, but not in symtab.)
-
-	) from repro/usr/lib/libstdc++.so.6
-	...
-
-	The warning is about the following:
-	- in find_pc_sect_compunit_symtab we try to find the address
-	  (0x7ff8feb2c218 / 0x7ff8feb2c21d) in the symtabs.
-	- that fails, so we try again in the partial symtabs.
-	- we find a matching partial symtab
-	- however, the partial symtab has a full symtab, so
-	  we should have found a matching symtab in the first step.
-
-	The addresses are:
-	...
-	(gdb) info sym 0x7ff8feb2c218
-	__gnu_debug::_Error_formatter::_M_error() const [clone .cold] in \
-	  section .text of repro/usr/lib/libstdc++.so.6
-	(gdb) info sym 0x7ff8feb2c21d
-	__gnu_debug::_Error_formatter::_M_error() const [clone .cold] + 5 in \
-	  section .text of repro/usr/lib/libstdc++.so.6
-	...
-	which correspond to unrelocated addresses 0x9c218 and 0x9c21d:
-	...
-	$ nm -C  repro/usr/lib/libstdc++.so.6.0.29 | grep 000000000009c218
-	000000000009c218 t __gnu_debug::_Error_formatter::_M_error() const \
-	  [clone .cold]
-	...
-	which belong to function __gnu_debug::_Error_formatter::_M_error() in
-	/build/gcc/src/gcc/libstdc++-v3/src/c++11/debug.cc.
-
-	The partial symtab that is found for the addresses is instead the one for
-	/build/gcc/src/gcc/libstdc++-v3/src/c++98/bitmap_allocator.cc, which is
-	incorrect.
-
-	This happens as follows.
-
-	The bitmap_allocator.cc CU has DW_AT_ranges at .debug_rnglist offset 0x4b50:
-	...
-	    00004b50 0000000000000000 0000000000000056
-	    00004b5a 00000000000a4790 00000000000a479c
-	    00004b64 00000000000a47a0 00000000000a47ac
-	...
-
-	When reading the first range 0x0..0x56, it doesn't trigger the "start address
-	of zero" complaint here:
-	...
-	      /* A not-uncommon case of bad debug info.
-	         Don't pollute the addrmap with bad data.  */
-	      if (range_beginning + baseaddr == 0
-	          && !per_objfile->per_bfd->has_section_at_zero)
-	        {
-	          complaint (_(".debug_rnglists entry has start address of zero"
-	                       " [in module %s]"), objfile_name (objfile));
-	          continue;
-	        }
-	...
-	because baseaddr != 0, which seems incorrect given that when loading the
-	shared library individually in gdb (and consequently baseaddr == 0), we do see
-	the complaint.
-
-	Consequently, we run into this case in dwarf2_get_pc_bounds:
-	...
-	  if (low == 0 && !per_objfile->per_bfd->has_section_at_zero)
-	    return PC_BOUNDS_INVALID;
-	...
-	which then results in this code in process_psymtab_comp_unit_reader being
-	called with cu_bounds_kind == PC_BOUNDS_INVALID, which sets the set_addrmap
-	argument to 1:
-	...
-	      scan_partial_symbols (first_die, &lowpc, &highpc,
-	                            cu_bounds_kind <= PC_BOUNDS_INVALID, cu);
-	...
-	and consequently, the CU addrmap gets build using address info from the
-	functions.
-
-	During that process, addrmap_set_empty is called with a range that includes
-	0x9c218 and 0x9c21d:
-	...
-	(gdb) p /x start
-	$7 = 0x9989c
-	(gdb) p /x end_inclusive
-	$8 = 0xb200d
-	...
-	but it's called for a function at DIE 0x54153 with DW_AT_ranges at 0x40ae:
-	...
-	    000040ae 00000000000b1ee0 00000000000b200e
-	    000040b9 000000000009989c 00000000000998c4
-	    000040c3 <End of list>
-	...
-	and neither range includes 0x9c218 and 0x9c21d.
-
-	This is caused by this code in partial_die_info::read:
-	...
-	            if (dwarf2_ranges_read (ranges_offset, &lowpc, &highpc, cu,
-	                                    nullptr, tag))
-	             has_pc_info = 1;
-	...
-	which pretends that the function is located at addresses 0x9989c..0xb200d,
-	which is indeed not the case.
-
-	This patch fixes the first problem encountered: fix the "start address of
-	zero" complaint warning by removing the baseaddr part from the condition.
-	Same for dwarf2_ranges_process.
-
-	The effect is that:
-	- the complaint is triggered, and
-	- the warning / Internal error is no longer triggered.
-
-	This does not fix the observed problem in partial_die_info::read, which is
-	filed as PR28200.
-
-	Tested on x86_64-linux.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@polymtl.ca>
-
-	gdb/ChangeLog:
-
-	2021-07-29  Simon Marchi  <simon.marchi@polymtl.ca>
-		    Tom de Vries  <tdevries@suse.de>
-
-		PR symtab/28004
-		* gdb/dwarf2/read.c (dwarf2_rnglists_process, dwarf2_ranges_process):
-		Fix zero address complaint.
-		* gdb/testsuite/gdb.dwarf2/dw2-zero-range-shlib.c: New test.
-		* gdb/testsuite/gdb.dwarf2/dw2-zero-range.c: New test.
-		* gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp: New file.
-
-2021-08-06  Alan Modra  <amodra@gmail.com>
-
-	Re: Add tests for Intel AVX512_FP16 instructions
-		* testsuite/gas/i386/x86-64-avx512_fp16_pseudo_ops.d: Pass with
-		mingw section padding.
-
-2021-08-06  Alan Modra  <amodra@gmail.com>
-
-	chew ubsan warning
-	It matters not at all if pc is incremented from its initial NULL
-	value, but avoid this silly runtime ubsan error.
-
-		* doc/chew.c (perform): Avoid incrementing NULL pc.
-
-2021-08-06  Alan Modra  <amodra@gmail.com>
-
-	bfd_reloc_offset_in_range overflow
-	This patch is more about the style of bounds checking we ought to use,
-	rather than a real problem.  An overflow of "octet + reloc_size" can
-	only happen with huge sections which would certainly cause out of
-	memory errors.
-
-		* reloc.c (bfd_reloc_offset_in_range): Avoid possible overflow.
-
-2021-08-06  Alan Modra  <amodra@gmail.com>
-
-	PR28175, Segment fault in coff-tic30.c reloc_processing
-	The obj_convert table shouldn't be accessed without first checking the
-	index against the table size.
-
-		PR 28175
-		* coff-tic30.c (reloc_processing): Sanity check reloc symbol index.
-		* coff-z80.c (reloc_processing): Likewise.
-		* coff-z8k.c (reloc_processing): Likewise.
-
-2021-08-06  Alan Modra  <amodra@gmail.com>
-
-	PR28173, nds32_elf_howto_table index out of bounds
-	Indexing the howto table was seriously broken by a missing entry, and
-	use of assertions about user input rather than testing the input.
-
-		PR 28173
-		* elf32-nds32.c (nds32_elf_howto_table): Add missing empty howto.
-		(bfd_elf32_bfd_reloc_type_table_lookup): Replace assertions with
-		range checks.  Return NULL if unsupported reloc type.  Remove
-		dead code.  Take an unsigned int param.
-		(nds32_info_to_howto_rel): Test for NULL howto or howto name
-		return from lookup.  Remove assertion.
-		(nds32_info_to_howto): Remove unnecessary ATTRIBUTE_UNUSED.
-		Test for NULL howto or howto name return from lookup.
-
-2021-08-06  Alan Modra  <amodra@gmail.com>
-
-	PR28172, bfin_pcrel24_reloc heap-buffer-overflow
-	bfin pcrel24 relocs are weird, they apply to the reloc address minus
-	two.  That means reloc addresses of 0 and 1 are invalid.  Check that,
-	and fix other reloc range checking.
-
-		PR 28172
-		* elf32-bfin.c (bfin_pcrel24_reloc): Correct reloc range check.
-		(bfin_imm16_reloc, bfin_byte4_reloc, bfin_bfd_reloc): Likewise.
-		(bfin_final_link_relocate): Likewise.
-
-2021-08-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-05  Will Schmidt  <will_schmidt@vnet.ibm.com>
-
-	[PATCH] GDB Testsuite, update compile-cplus.exp
-	[PATCH] GDB Testsuite, update compile-cplus.exp
-
-	Update the gdb.compile/compile-cplus.exp test to
-	handle errors generated when passing bad arguments
-	into the gdb-compile command.
-	This matches changes made to gdb.compile/compile.exp
-	in the past as part of
-	"Migrate rest of compile commands to new options framework"
-	         e6ed716cd5514c08b9d7c469d185b1aa177dbc22
-
-2021-08-05  Will Schmidt  <will_schmidt@vnet.ibm.com>
-
-	[gdb] Handle .TOC. sections during gdb-compile for rs6000 target.
-	[gdb] Handle .TOC. sections during gdb-compile for rs6000 target.
-
-	  When we encounter a .TOC. symbol in the object we are loading,
-	we need to associate this with the .toc section in order to
-	properly resolve other symbols in the object.  IF a .toc section
-	is not found, iterate the sections until we find one with the
-	SEC_ALLOC flag.  If that also fails, fall back to using
-	the *ABS* section, pointed to by bfd_abs_section_ptr.
-
-2021-08-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: gdb.base/attach.exp: expose bug when testing with native-extended-gdbserver
-	In gdb.base/attach.exp, proc do_attach_failure_tests, we attach to a
-	process.  When then try to attach to the same process in another
-	inferior, expecting it to fail.  We then come back to the first inferior
-	and try to kill it, to clean up the test.  When using the
-	native-extended-gdbserver board, this "kill" test passes, even though it
-	didn't actually work:
-
-	    add-inferior
-	    [New inferior 2]
-	    Added inferior 2 on connection 1 (extended-remote localhost:2347)
-	    (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: add empty inferior 2
-	    inferior 2
-	    [Switching to inferior 2 [<null>] (<noexec>)]
-	    (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: switch to inferior 2
-	    attach 817032
-	    Attaching to process 817032
-	    Attaching to process 817032 failed
-	    (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: fail to attach again
-	    inferior 1
-	    [Switching to inferior 1 [process 817032] (/home/simark/build/binutils-gdb/gdb/testsuite/outputs/gdb.base/attach/attach)]
-	    [Switching to thread 1.1 (Thread 817032.817032)]
-	    #0  main () at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/attach.c:19
-	    19	  while (! should_exit)
-	    (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: switch to inferior 1
-	    kill
-	    Kill the program being debugged? (y or n) y
-	    Remote connection closed  <==== That's unexpected
-	    (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: exit after attach failures
-
-	When the second attach fails, gdbserver seems to break the connection
-	(it hangs up on the existing remote target) and start listening again
-	for incoming connections.  This is documented in PR 19558 [1].
-
-	Make the expected output regexp for the kill command tighter (it
-	currently accepts anything).  Use "set confirm off" so we don't have to
-	deal with the confirmation.  And to be really sure the extended-remote
-	target still works, try to run the inferior again after killing.  The
-	now tests are kfail'ed when the target is gdbserver.
-
-	[1] https://sourceware.org/bugzilla/show_bug.cgi?id=19558
-
-	gdb/testsuite/ChangeLog:
-
-		* gdb.base/attach.exp (do_attach_failure_tests): Make kill
-		regexp tighter, run inferior after killing it.  Kfail when
-		target is gdbserver.
-
-	Change-Id: I99c5cd3968ce2ec962ace35b016f842a243b7a0d
-
-2021-08-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: gdb.base/attach.exp: fix support check in test_command_line_attach_run
-	When running this test with the native-extended-gdbserver, we get:
-
-	    main () at /home/simark/src/binutils-gdb/gdb/testsuite/gdb.base/attach.c:19
-	    19	  while (! should_exit)
-	    The program being debugged has been started already.
-	    Start it from the beginning? (y or n) PASS: gdb.base/attach.exp: cmdline attach run: run to prompt
-	    y
-	    Don't know how to run.  Try "help target".
-	    (gdb) FAIL: gdb.base/attach.exp: cmdline attach run: run to main
-
-	This test tests using both "-p <pid>" and "-ex start" on the command line,
-	making sure that we first attach and then run.
-
-	Normally, after that "y", we should see the program running again.
-	However, a particuliarity of the native-extended-gdbserver is that it
-	uses "set auto-connect-native-target off" on the command line.  The full
-	GDB command line is:
-
-	    ./gdb -nw -nx -data-directory /home/simark/build/binutils-gdb/gdb/testsuite/../data-directory \
-	          -iex set height 0 -iex set width 0 -ex set auto-connect-native-target off \
-		  -ex set sysroot -quiet -iex set height 0 -iex set width 0 --pid=536609 -ex start
-
-	The attach succeeds.  I guess it is done before "set
-	auto-connect-native-target off", or it somehow bypasses it.  When the
-	"start" is executed, the native target is unpushed, while killing the
-	existing process, but not re-pushed, due to "set
-	auto-connect-native-target off".  So we get that "Don't know how to run"
-	message.
-
-	Really, I think it's a case of the test doing things incompatible with
-	the board, I think it should just be skipped.  And as we can see with
-	the current code, there were some attempts at doing this, just using the
-	wrong checks:
-
-	 - isnative: this is a dejagnu proc which checks if the target board has
-	   the same triplet as the build machine.  In the case of
-	   native-extended-gdbserver, it does.
-	 - is_remote target: this checks whether the target board is remote, as
-	   in executing on a different machin.  native-extended-gdbserver is not
-	   remote.
-
-	Since the --pid option specifically attaches to a process using the
-	native target, change the test to use gdb_is_target_native instead.
-
-	gdb/testsuite/ChangeLog:
-
-		* gdb.base/attach.exp (test_command_line_attach_run): Use
-		gdb_is_target_native to check if test is supported.
-
-	Change-Id: I762e127f39623889999dc9ed2185540a0951bfb0
-
-2021-08-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: target_waitstatus_to_string: print extra info for FORKED, VFORKED, EXECD
-	Print the extra information contained in target_waitstatus for these
-	events.  For TARGET_WAITKIND_{FORKED,VFORKED}, the extra information is
-	contained in related_pid, and is the ptid of the new process.  For
-	TARGET_WAITKIND_EXECD, it,s the exec'd path name in execd_pathname.
-	Print it using the same format used for TARGET_WAITKIND_STOPPED and
-	others.
-
-	Here are sample outputs for all three events:
-
-	    [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	    [infrun] print_target_wait_results:   726890.726890.0 [process 726890],
-	    [infrun] print_target_wait_results:   status->kind = vforked, related_pid = 726894.726894.0
-
-	    [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	    [infrun] print_target_wait_results:   727045.727045.0 [process 727045],
-	    [infrun] print_target_wait_results:   status->kind = forked, related_pid = 727049.727049.0
-
-	    [infrun] print_target_wait_results: target_wait (-1.0.0 [process -1], status) =
-	    [infrun] print_target_wait_results:   727119.727119.0 [process 727119],
-	    [infrun] print_target_wait_results:   status->kind = execd, execd_pathname = /usr/bin/ls
-
-	Change-Id: I4416a74e3bf792a625a68bf26c51689e170f2184
-
-2021-08-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use ptid_t::to_string in print_target_wait_results
-	The ptid_t::to_string method was introduced recently, to format a ptid_t
-	for debug purposes.  It formats the ptid exactly as is done in
-	print_target_wait_results, so make print_target_wait_results use it.
-
-	Change-Id: I0a81c8040d3e1858fb304cb28366b34d94eefe4d
-
-2021-08-05  Zoran Zaric  <Zoran.Zaric@amd.com>
-
-	Add as_lval argument to expression evaluator
-	There are cases where the result of the expression evaluation is
-	expected to be in a form of a value and not location description.
-
-	One place that has this requirement is dwarf_entry_parameter_to_value
-	function, but more are expected in the future. Until now, this
-	requirement was fulfilled by extending the evaluated expression with
-	a DW_OP_stack_value operation at the end.
-
-	New implementation, introduces a new evaluation argument instead.
-
-		* dwarf2/expr.c (dwarf_expr_context::fetch_result): Add as_lval
-		argument.
-		(dwarf_expr_context::eval_exp): Add as_lval argument.
-		* dwarf2/expr.h (struct dwarf_expr_context): Add as_lval
-		argument to fetch_result and eval_exp methods.
-		* dwarf2/frame.c (execute_stack_op): Add as_lval argument.
-		* dwarf2/loc.c (dwarf_entry_parameter_to_value): Remove
-		DWARF expression extension.
-		(dwarf2_evaluate_loc_desc_full): Add as_lval argument support.
-		(dwarf2_evaluate_loc_desc): Add as_lval argument support.
-		(dwarf2_locexpr_baton_eval): Add as_lval argument support.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Simplify dwarf_expr_context class interface
-	Idea of this patch is to get a clean and simple public interface for
-	the dwarf_expr_context class, looking like:
-
-	- constructor,
-	- destructor,
-	- push_address method and
-	- evaluate method.
-
-	Where constructor should only ever require a target architecture
-	information. This information is held in per object file
-	(dwarf2_per_objfile) structure, so it makes sense to keep that
-	structure as a constructor argument. It also makes sense to get the
-	address size from that structure, but unfortunately that interface
-	doesn't exist at the moment, so the dwarf_expr_context class user
-	needs to provide that information.
-
-	The push_address method is used to push a CORE_ADDR as a value on
-	top of the DWARF stack before the evaluation. This method can be
-	later changed to push any struct value object on the stack.
-
-	The evaluate method is the method that evaluates a DWARF expression
-	and provides the evaluation result, in a form of a single struct
-	value object that describes a location. To do this, the method requires
-	a context of the evaluation, as well as expected result type
-	information. If the type information is not provided, the DWARF generic
-	type will be used instead.
-
-	To avoid storing the gdbarch information in the evaluator object, that
-	information is now always acquired from the per_objfile object.
-
-	All data members are now private and only visible to the evaluator
-	class, so a m_ prefix was added to all of their names to reflect that.
-	To make this distinction clear, they are also accessed through objects
-	this pointer, wherever that was not the case before.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (dwarf_expr_context::dwarf_expr_context): Add
-		address size argument.
-		(dwarf_expr_context::read_mem): Change to use property_addr_info
-		structure.
-		(dwarf_expr_context::evaluate): New function.
-		(dwarf_expr_context::execute_stack_op): Change to use
-		property_addr_info structure.
-		* dwarf2/expr.h (struct dwarf_expr_context): New evaluate
-		declaration. Change eval and fetch_result method to private.
-	        (dwarf_expr_context::gdbarch): Remove member.
-	        (dwarf_expr_context::stack): Make private and add m_ prefix.
-	        (dwarf_expr_context::addr_size): Make private and add
-	        m_ prefix.
-	        (dwarf_expr_context::recursion_depth): Make private and add
-	        m_ prefix.
-	        (dwarf_expr_context::max_recursion_depth): Make private and
-	        add m_ prefix.
-	        (dwarf_expr_context::len): Make private and add m_ prefix.
-	        (dwarf_expr_context::data): Make private and add m_ prefix.
-	        (dwarf_expr_context::initialized): Make private and add
-	        m_ prefix.
-	        (dwarf_expr_context::pieces): Make private and add m_ prefix.
-	        (dwarf_expr_context::per_objfile): Make private and add
-	        m_ prefix.
-	        (dwarf_expr_context::frame): Make private and add m_ prefix.
-	        (dwarf_expr_context::per_cu): Make private and add m_ prefix.
-	        (dwarf_expr_context::addr_info): Make private and add
-	        m_ prefix.
-		* dwarf2/frame.c (execute_stack_op): Change to call evaluate
-		method.
-		* dwarf2/loc.c (dwarf2_evaluate_loc_desc_full): Change to call
-		evaluate method.
-		(dwarf2_locexpr_baton_eval): Change to call evaluate method.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Make DWARF evaluator return a single struct value
-	The patch is addressing the issue of class users writing and reading
-	the internal data of the dwarf_expr_context class.
-
-	At this point, all conditions are met for the DWARF evaluator to return
-	an evaluation result in a form of a single struct value object.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (pieced_value_funcs): Chenge to static
-		function.
-		(allocate_piece_closure): Change to static function.
-		(dwarf_expr_context::fetch_result): New function.
-		* dwarf2/expr.h (struct piece_closure): Remove declaration.
-		(struct dwarf_expr_context): fetch_result new declaration.
-		fetch, fetch_address and fetch_in_stack_memory members move
-		to private.
-		(allocate_piece_closure): Remove.
-		* dwarf2/frame.c (execute_stack_op): Change to use
-		fetch_result.
-		* dwarf2/loc.c (dwarf2_evaluate_loc_desc_full): Change to use
-		fetch_result.
-		(dwarf2_locexpr_baton_eval): Change to use fetch_result.
-	        * dwarf2/loc.h (invalid_synthetic_pointer): Expose function.
-
-2021-08-05  Zoran Zaric  <Zoran.Zaric@amd.com>
-
-	Make value_copy also copy the stack data member
-	Fixing a bug where the value_copy function did not copy the stack data
-	and initialized members of the struct value. This is needed for the
-	next patch where the DWARF expression evaluator is changed to return a
-	single struct value object.
-
-	        * value.c (value_copy): Change to also copy the stack data
-	          and initialized members.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Move piece_closure and its support to expr.c
-	Following 5 patches series is trying to clean up the interface of the
-	DWARF expression evaluator class (dwarf_expr_context).
-
-	After merging all expression evaluators into one class, the next
-	logical step is to make a clean user interface for that class. To do
-	that, we first need to address the issue of class users writing and
-	reading the internal data of the class directly.
-
-	Fixing the case of writing is simple, it makes sense for an evaluator
-	instance to be per architecture basis. Currently, the best separation
-	seems to be per object file, so having that data (dwarf2_per_objfile)
-	as a constructor argument makes sense. It also makes sense to get the
-	address size from that object file, but unfortunately that interface
-	does not exist at the moment.
-
-	Luckily, address size information is already available to the users
-	through other means. As a result, the address size also needs to be a
-	class constructor argument, at least until a better interface for
-	acquiring that information from an object file is implemented.
-
-	The rest of the user written data comes down to a context of an
-	evaluated expression (compilation unit context, frame context and
-	passed in buffer context) and a source type information that a result
-	of evaluating expression is representing. So, it makes sense for all of
-	these to be arguments of an evaluation method.
-
-	To address the problem of reading the dwarf_expr_context class
-	internal data, we first need to understand why it is implemented that
-	way?
-
-	This is actualy a question of which existing class can be used to
-	represent both values and a location descriptions and why it is not
-	used currently?
-
-	The answer is in a struct value class/structure, but the problem is
-	that before the evaluators were merged, only one evaluator had an
-	infrastructure to resolve composite and implicit pointer location
-	descriptions.
-
-	After the merge, we are now able to use the struct value to represent
-	any result of the expression evaluation. It also makes sense to move
-	all infrastructure for those location descriptions to the expr.c file
-	considering that that is the only place using that infrastructure.
-
-	What we are left with in the end is a clean public interface of the
-	dwarf_expr_context class containing:
-
-	- constructor,
-	- destructor,
-	- push_address method and
-	- eval_exp method.
-
-	The idea with this particular patch is to move piece_closure structure
-	and the interface that handles it (lval_funcs) to expr.c file.
-
-	While implicit pointer location descriptions are still not useful in
-	the CFI context (of the AMD's DWARF standard extensions), the composite
-	location descriptions are certainly necessary to describe a results of
-	specific compiler optimizations.
-
-	Considering that a piece_closure structure is used to represent both,
-	there was no benefit in splitting them.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (struct piece_closure): Add from loc.c.
-		(allocate_piece_closure): Add from loc.c.
-		(bits_to_bytes): Add from loc.c.
-		(rw_pieced_value): Add from loc.c.
-		(read_pieced_value): Add from loc.c.
-		(write_pieced_value): Add from loc.c.
-		(check_pieced_synthetic_pointer): Add from loc.c.
-		(indirect_pieced_value): Add from loc.c.
-		(coerce_pieced_ref): Add from loc.c.
-		(copy_pieced_value_closure): Add from loc.c.
-		(free_pieced_value_closure): Add from loc.c.
-		(sect_variable_value): Add from loc.c.
-		* dwarf2/loc.c (sect_variable_value): Move to expr.c.
-		(struct piece_closure): Move to expr.c.
-		(allocate_piece_closure): Move to expr.c.
-		(bits_to_bytes): Move to expr.c.
-		(rw_pieced_value): Move to expr.c.
-		(read_pieced_value): Move to expr.c.
-		(write_pieced_value): Move to expr.c.
-		(check_pieced_synthetic_pointer): Move to expr.c.
-		(indirect_pieced_value): Move to expr.c.
-		(coerce_pieced_ref): Move to expr.c.
-		(copy_pieced_value_closure): Move to expr.c.
-		(free_pieced_value_closure): Move to expr.c.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Merge evaluate_for_locexpr_baton evaluator
-	The evaluate_for_locexpr_baton is the last derived class from the
-	dwarf_expr_context class. It's purpose is to support the passed in
-	buffer functionality.
-
-	Although, it is not really necessary to merge this class with it's
-	base class, doing that simplifies new expression evaluator design.
-
-	Considering that this functionality is going around the DWARF standard,
-	it is also reasonable to expect that with a new evaluator design and
-	extending the push object address functionality to accept any location
-	description, there will be no need to support passed in buffers.
-
-	Alternatively, it would also makes sense to abstract the interaction
-	between the evaluator and a given resource in the near future. The
-	passed in buffer would then be a specialization of that abstraction.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (dwarf_expr_context::read_mem): Merge with
-		evaluate_for_locexpr_baton implementation.
-		* dwarf2/loc.c (class evaluate_for_locexpr_baton): Remove
-		class.
-		(evaluate_for_locexpr_baton::read_mem): Move to
-		dwarf_expr_context.
-		(dwarf2_locexpr_baton_eval): Instantiate dwarf_expr_context
-		instead of evaluate_for_locexpr_baton class.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Remove empty frame and full evaluators
-	There are no virtual methods that require different specialization in
-	dwarf_expr_context class. This means that derived classes
-	dwarf_expr_executor and dwarf_evaluate_loc_desc are not needed any
-	more.
-
-	As a result of this, the  evaluate_for_locexpr_baton class base class
-	is now the dwarf_expr_context class.
-
-	There might be a need for a better class hierarchy when we know more
-	about the direction of the future DWARF versions and gdb extensions,
-	but that is out of the scope of this patch series.
-
-	gdb/ChangeLog:
-
-		* dwarf2/frame.c (class dwarf_expr_executor): Remove class.
-		(execute_stack_op): Instantiate dwarf_expr_context instead of
-		dwarf_evaluate_loc_desc class.
-		* dwarf2/loc.c (class dwarf_evaluate_loc_desc): Remove class.
-		(dwarf2_evaluate_loc_desc_full): Instantiate dwarf_expr_context
-		instead of dwarf_evaluate_loc_desc class.
-		(struct evaluate_for_locexpr_baton): Derive from
-		dwarf_expr_context.
-
-2021-08-05  Zoran Zaric  <Zoran.Zaric@amd.com>
-
-	Inline get_reg_value method of dwarf_expr_context
-	The get_reg_value method is a small function that is only called once,
-	so it can be inlined to simplify the dwarf_expr_context class.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (dwarf_expr_context::get_reg_value): Remove
-		method.
-		(dwarf_expr_context::execute_stack_op): Inline get_reg_value
-		method.
-		* dwarf2/expr.h (dwarf_expr_context::get_reg_value): Remove
-		method.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Move push_dwarf_reg_entry_value to expr.c
-	Following the idea of merging the evaluators, the
-	push_dwarf_reg_entry_value method can be moved from
-	dwarf_expr_executor and dwarf_evaluate_loc_desc classes
-	to their base class dwarf_expr_context.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c
-	        (dwarf_expr_context::push_dwarf_reg_entry_value): Move from
-		dwarf_evaluate_loc_desc.
-		* dwarf2/frame.c
-		(dwarf_expr_executor::push_dwarf_reg_entry_value): Remove
-		method.
-		* dwarf2/loc.c (dwarf_expr_reg_to_entry_parameter): Expose
-		function.
-		(dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value): Move to
-		dwarf_expr_context.
-		* dwarf2/loc.h (dwarf_expr_reg_to_entry_parameter): Expose
-		function.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Move read_mem to dwarf_expr_context
-	Following the idea of merging the evaluators, the read_mem method can
-	be moved from dwarf_expr_executor and dwarf_evaluate_loc_desc classes
-	to their base class dwarf_expr_context.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (dwarf_expr_context::read_mem): Move from
-		dwarf_evaluate_loc_desc.
-		* dwarf2/frame.c (dwarf_expr_executor::read_mem): Remove
-		method.
-		* dwarf2/loc.c (dwarf_evaluate_loc_desc::read_mem): Move to
-		dwarf_expr_context.
-
-2021-08-05  Zoran Zaric  <Zoran.Zaric@amd.com>
-
-	Move get_object_address to dwarf_expr_context
-	Following the idea of merging the evaluators, the get_object_address
-	and can be moved from dwarf_expr_executor and dwarf_evaluate_loc_desc
-	classes to their base class dwarf_expr_context.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (dwarf_expr_context::get_object_address): Move
-		from dwarf_evaluate_loc_desc.
-		(class dwarf_expr_context): Add object address member to
-		dwarf_expr_context.
-		* dwarf2/expr.h (dwarf_expr_context::get_frame_pc): Remove
-		method.
-		* dwarf2/frame.c (dwarf_expr_executor::get_object_address):
-		Remove method.
-		* dwarf2/loc.c (dwarf_evaluate_loc_desc::get_object_address):
-		move to dwarf_expr_context.
-		(class dwarf_evaluate_loc_desc): Move object address member to
-		dwarf_expr_context.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Move dwarf_call to dwarf_expr_context
-	Following the idea of merging the evaluators, the dwarf_call and
-	get_frame_pc method can be moved from dwarf_expr_executor and
-	dwarf_evaluate_loc_desc classes to their base class dwarf_expr_context.
-	Once this is done, the get_frame_pc can be replace with lambda
-	function.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (dwarf_expr_context::dwarf_call): Move from
-		dwarf_evaluate_loc_desc.
-		(dwarf_expr_context::get_frame_pc): Replace with lambda.
-		* dwarf2/expr.h (dwarf_expr_context::get_frame_pc): Remove
-		method.
-		* dwarf2/frame.c (dwarf_expr_executor::dwarf_call): Remove
-		method.
-		(dwarf_expr_executor::get_frame_pc): Remove method.
-		* dwarf2/loc.c (dwarf_evaluate_loc_desc::get_frame_pc): Remove
-		method.
-		(dwarf_evaluate_loc_desc::dwarf_call): Move to
-		dwarf_expr_context.
-		(per_cu_dwarf_call): Inline function.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Move compilation unit info to dwarf_expr_context
-	This patch moves the compilation unit context information and support
-	from dwarf_expr_executor and dwarf_evaluate_loc_desc to
-	dwarf_expr_context evaluator. The idea is to report an error when a
-	given operation requires a compilation unit information to be resolved,
-	which is not available.
-
-	With this change, it also makes sense to always acquire ref_addr_size
-	information from the compilation unit context, considering that all
-	DWARF operations that refer to that information require a compilation
-	unit context to be present during their evaluation.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (ensure_have_per_cu): New function.
-		(dwarf_expr_context::dwarf_expr_context): Add compilation unit
-		context information.
-		(dwarf_expr_context::get_base_type): Move from
-		dwarf_evaluate_loc_desc.
-		(dwarf_expr_context::get_addr_index): Remove method.
-		(dwarf_expr_context::dwarf_variable_value): Remove method.
-		(dwarf_expr_context::execute_stack_op): Call compilation unit
-		context info check. Inline get_addr_index and
-		dwarf_variable_value methods.
-		* dwarf2/expr.h (struct dwarf_expr_context): Add compilation
-		context info.
-	        (dwarf_expr_context::get_addr_index): Remove method.
-	        (dwarf_expr_context::dwarf_variable_value): Remove method.
-	        (dwarf_expr_context::ref_addr_size): Remove member.
-		* dwarf2/frame.c (dwarf_expr_executor::get_addr_index): Remove
-		method.
-		(dwarf_expr_executor::dwarf_variable_value): Remove method.
-		* dwarf2/loc.c (sect_variable_value): Expose function.
-		(dwarf_evaluate_loc_desc::get_addr_index): Remove method.
-		(dwarf_evaluate_loc_desc::dwarf_variable_value): Remove method.
-		(class dwarf_evaluate_loc_desc): Move compilation unit context
-		information to dwarf_expr_context class.
-		* dwarf2/loc.h (sect_variable_value): Expose function.
-
-2021-08-05  Zoran Zaric  <Zoran.Zaric@amd.com>
-
-	Remove get_frame_cfa from dwarf_expr_context
-	Following the idea of merging the evaluators, the get_frame_cfa method
-	can be moved from dwarf_expr_executor and dwarf_evaluate_loc_desc
-	classes to their base class dwarf_expr_context. Once this is done,
-	it becomes apparent that the method is only called once and it can be
-	inlined.
-
-	It is also necessary to check if the frame context information was
-	provided before the DW_OP_call_frame_cfa operation is executed.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (dwarf_expr_context::get_frame_cfa): Remove
-		method.
-		(dwarf_expr_context::execute_stack_op): Call frame context info
-		check for DW_OP_call_frame_cfa. Remove use of get_frame_cfa.
-		* dwarf2/expr.h (dwarf_expr_context::get_frame_cfa): Remove
-		method.
-		* dwarf2/frame.c (dwarf_expr_context::get_frame_cfa): Remove
-		method.
-		* dwarf2/loc.c (dwarf_expr_context::get_frame_cfa): Remove
-		method.
-
-2021-08-05  Zoran Zaric  <zoran.zaric@amd.com>
-
-	Move frame context info to dwarf_expr_context
-	Following 15 patches in this patch series is cleaning up the design of
-	the DWARF expression evaluator (dwarf_expr_context) to make future
-	extensions of that evaluator easier and cleaner to implement.
-
-	There are three subclasses of the dwarf_expr_context class
-	(dwarf_expr_executor, dwarf_evaluate_loc_desc and
-	evaluate_for_locexpr_baton). Here is a short description of each class:
-
-	- dwarf_expr_executor is evaluating a DWARF expression in a context
-	  of a Call Frame Information. The overridden methods of this subclass
-	  report an error if a specific DWARF operation, represented by that
-	  method, is not allowed in a CFI context. The source code of this
-	  subclass lacks the support for composite as well as implicit pointer
-	  location description.
-
-	- dwarf_evaluate_loc_desc can evaluate any expression with no
-	  restrictions. All of the methods that this subclass overrides are
-	  actually doing what they are intended to do. This subclass contains
-	  a full support for all location description types.
-
-	- evaluate_for_locexpr_baton subclass is a specialization of the
-	  dwarf_evaluate_loc_desc subclass and it's function is to add
-	  support for passed in buffers. This seems to be a way to go around
-	  the fact that DWARF standard lacks a bit offset support for memory
-	  location descriptions as well as using any location description for
-	  the push object address functionality.
-
-	It all comes down to this question: what is a function of a DWARF
-	expression evaluator?
-
-	Is it to evaluate the expression in a given context or to check the
-	correctness of that expression in that context?
-
-	Currently, the only reason why there is a dwarf_expr_executor subclass
-	is to report an invalid DWARF expression in a context of a CFI, but is
-	that what the evaluator is supposed to do considering that the evaluator
-	is not tied to a given DWARF version?
-
-	There are more and more vendor and GNU extensions that are not part of
-	the DWARF standard, so is it that impossible to expect that some of the
-	extensions could actually lift the previously imposed restrictions of
-	the CFI context? Not to mention that every new DWARF version is lifting
-	some restrictions anyway.
-
-	The thing that makes more sense for an evaluator to do, is to take the
-	context of an evaluation and checks the requirements of every operation
-	evaluated against that context. With this approach, the evaluator would
-	report an error only if parts of the context, necessary for the
-	evaluation, are missing.
-
-	If this approach is taken, then the unification of the
-	dwarf_evaluate_loc_desc, dwarf_expr_executor and dwarf_expr_context
-	is the next logical step. This makes a design of the DWARF expression
-	evaluator cleaner and allows more flexibility when supporting future
-	vendor and GNU extensions.
-
-	Additional benefit here is that now all evaluators have access to all
-	location description types, which means that a vendor extended CFI
-	rules could support composite location description as well. This also
-	means that a new evaluator interface can be changed to return a single
-	struct value (that describes the result of the evaluation) instead of
-	a caller poking around the dwarf_expr_context internal data for answers
-	(like it is done currently).
-
-	This patch starts the merging process by moving the frame context
-	information and support from dwarf_expr_executor and
-	dwarf_evaluate_loc_desc to dwarf_expr_context evaluator. The idea
-	is to report an error when a given operation requires a frame
-	information to be resolved, if that information is not present.
-
-	gdb/ChangeLog:
-
-		* dwarf2/expr.c (ensure_have_frame): New function.
-		(read_addr_from_reg): Add from frame.c.
-		(dwarf_expr_context::dwarf_expr_context): Add frame info to
-		dwarf_expr_context.
-		(dwarf_expr_context::read_addr_from_reg): Remove.
-		(dwarf_expr_context::get_reg_value): Move from
-		dwarf_evaluate_loc_desc.
-		(dwarf_expr_context::get_frame_base): Move from
-		dwarf_evaluate_loc_desc.
-		(dwarf_expr_context::execute_stack_op): Call frame context info
-		check. Remove use of read_addr_from_reg method.
-		* dwarf2/expr.h (struct dwarf_expr_context): Add frame info
-		member, read_addr_from_reg, get_reg_value and get_frame_base
-		declaration.
-		(read_addr_from_reg): Move to expr.c.
-		* dwarf2/frame.c (read_addr_from_reg): Move to
-		dwarf_expr_context.
-		(dwarf_expr_executor::read_addr_from_reg): Remove.
-		(dwarf_expr_executor::get_frame_base): Remove.
-		(dwarf_expr_executor::get_reg_value): Remove.
-		(execute_stack_op): Use read_addr_from_reg function instead of
-		read_addr_from_reg method.
-		* dwarf2/loc.c (dwarf_evaluate_loc_desc::get_frame_base): Move
-		to dwarf_expr_context.
-		(dwarf_evaluate_loc_desc::get_reg_value): Move to
-		dwarf_expr_context.
-		(dwarf_evaluate_loc_desc::read_addr_from_reg): Remove.
-		(dwarf2_locexpr_baton_eval):Use read_addr_from_reg function
-		instead of read_addr_from_reg method.
-
-2021-08-05  Zoran Zaric  <Zoran.Zaric@amd.com>
-
-	Cleanup of the dwarf_expr_context constructor
-	Move the initial values for dwarf_expr_context class data members
-	to the class declaration in expr.h.
-
-	gdb/ChangeLog:
-
-	        * dwarf2/expr.c (dwarf_expr_context::dwarf_expr_context):
-	        Remove initial data members values.
-	        * dwarf2/expr.h (dwarf_expr_context): Add initial values
-	        to the class data members.
-
-2021-08-05  Zoran Zaric  <Zoran.Zaric@amd.com>
-
-	Replace the symbol needs evaluator with a parser
-	This patch addresses a design problem with the symbol_needs_eval_context
-	class. It exposes the problem by introducing two new testsuite test
-	cases.
-
-	To explain the issue, I first need to explain the dwarf_expr_context
-	class that the symbol_needs_eval_context class derives from.
-
-	The intention behind the dwarf_expr_context class is to commonize the
-	DWARF expression evaluation mechanism for different evaluation
-	contexts. Currently in gdb, the evaluation context can contain some or
-	all of the following information: architecture, object file, frame and
-	compilation unit.
-
-	Depending on the information needed to evaluate a given expression,
-	there are currently three distinct DWARF expression evaluators:
-
-	 - Frame: designed to evaluate an expression in the context of a call
-	   frame information (dwarf_expr_executor class). This evaluator doesn't
-	   need a compilation unit information.
-
-	 - Location description: designed to evaluate an expression in the
-	   context of a source level information (dwarf_evaluate_loc_desc
-	   class). This evaluator expects all information needed for the
-	   evaluation of the given expression to be present.
-
-	 - Symbol needs: designed to answer a question about the parts of the
-	   context information required to evaluate a DWARF expression behind a
-	   given symbol (symbol_needs_eval_context class). This evaluator
-	   doesn't need a frame information.
-
-	The functional difference between the symbol needs evaluator and the
-	others is that this evaluator is not meant to interact with the actual
-	target. Instead, it is supposed to check which parts of the context
-	information are needed for the given DWARF expression to be evaluated by
-	the location description evaluator.
-
-	The idea is to take advantage of the existing dwarf_expr_context
-	evaluation mechanism and to fake all required interactions with the
-	actual target, by returning back dummy values. The evaluation result is
-	returned as one of three possible values, based on operations found in a
-	given expression:
-
-	- SYMBOL_NEEDS_NONE,
-	- SYMBOL_NEEDS_REGISTERS and
-	- SYMBOL_NEEDS_FRAME.
-
-	The problem here is that faking results of target interactions can yield
-	an incorrect evaluation result.
-
-	For example, if we have a conditional DWARF expression, where the
-	condition depends on a value read from an actual target, and the true
-	branch of the condition requires a frame information to be evaluated,
-	while the false branch doesn't, fake target reads could conclude that a
-	frame information is not needed, where in fact it is. This wrong
-	information would then cause the expression to be actually evaluated (by
-	the location description evaluator) with a missing frame information.
-	This would then crash the debugger.
-
-	The gdb.dwarf2/symbol_needs_eval_fail.exp test introduces this
-	scenario, with the following DWARF expression:
-
-	                   DW_OP_addr $some_variable
-	                   DW_OP_deref
-
-	                   # conditional jump to DW_OP_bregx
-	                   DW_OP_bra 4
-	                   DW_OP_lit0
-
-	                   # jump to DW_OP_stack_value
-	                   DW_OP_skip 3
-	                   DW_OP_bregx $dwarf_regnum 0
-	                   DW_OP_stack_value
-
-	This expression describes a case where some variable dictates the
-	location of another variable. Depending on a value of some_variable, the
-	variable whose location is described by this expression is either read
-	from a register or it is defined as a constant value 0. In both cases,
-	the value will be returned as an implicit location description on the
-	DWARF stack.
-
-	Currently, when the symbol needs evaluator fakes a memory read from the
-	address behind the some_variable variable, the constant value 0 is used
-	as the value of the variable A, and the check returns the
-	SYMBOL_NEEDS_NONE result.
-
-	This is clearly a wrong result and it causes the debugger to crash.
-
-	The scenario might sound strange to some people, but it comes from a
-	SIMD/SIMT architecture where $some_variable is an execution mask.  In
-	any case, it is a valid DWARF expression, and GDB shouldn't crash while
-	evaluating it. Also, a similar example could be made based on a
-	condition of the frame base value, where if that value is concluded to
-	be 0, the variable location could be defaulted to a TLS based memory
-	address.
-
-	The gdb.dwarf2/symbol_needs_eval_timeout.exp test introduces a second
-	scenario. This scenario is a bit more abstract due to the DWARF
-	assembler lacking the CFI support, but it exposes a different
-	manifestation of the same problem. Like in the previous scenario, the
-	DWARF expression used in the test is valid:
-
-	                       DW_OP_lit1
-	                       DW_OP_addr $some_variable
-	                       DW_OP_deref
-
-	                       # jump to DW_OP_fbreg
-	                       DW_OP_skip 4
-	                       DW_OP_drop
-	                       DW_OP_fbreg 0
-	                       DW_OP_dup
-	                       DW_OP_lit0
-	                       DW_OP_eq
-
-	                       # conditional jump to DW_OP_drop
-	                       DW_OP_bra -9
-	                       DW_OP_stack_value
-
-	Similarly to the previous scenario, the location of a variable A is an
-	implicit location description with a constant value that depends on a
-	value held by a global variable. The difference from the previous case
-	is that DWARF expression contains a loop instead of just one branch. The
-	end condition of that loop depends on the expectation that a frame base
-	value is never zero. Currently, the act of faking the target reads will
-	cause the symbol needs evaluator to get stuck in an infinite loop.
-
-	Somebody could argue that we could change the fake reads to return
-	something else, but that would only hide the real problem.
-
-	The general impression seems to be that the desired design is to have
-	one class that deals with parsing of the DWARF expression, while there
-	are virtual methods that deal with specifics of some operations.
-
-	Using an evaluator mechanism here doesn't seem to be correct, because
-	the act of evaluation relies on accessing the data from the actual
-	target with the possibility of skipping the evaluation of some parts of
-	the expression.
-
-	To better explain the proposed solution for the issue, I first need to
-	explain a couple more details behind the current design:
-
-	There are multiple places in gdb that handle DWARF expression parsing
-	for different purposes. Some are in charge of converting the expression
-	to some other internal representation (decode_location_expression,
-	disassemble_dwarf_expression and dwarf2_compile_expr_to_ax), some are
-	analysing the expression for specific information
-	(compute_stack_depth_worker) and some are in charge of evaluating the
-	expression in a given context (dwarf_expr_context::execute_stack_op
-	and decode_locdesc).
-
-	The problem is that all those functions have a similar (large) switch
-	statement that handles each DWARF expression operation. The result of
-	this is a code duplication and harder maintenance.
-
-	As a step into the right direction to solve this problem (at least for
-	the purpose of a DWARF expression evaluation) the expression parsing was
-	commonized inside of an evaluator base class (dwarf_expr_context). This
-	makes sense for all derived classes, except for the symbol needs
-	evaluator (symbol_needs_eval_context) class.
-
-	As described previously the problem with this evaluator is that if the
-	evaluator is not allowed to access the actual target, it is not really
-	evaluating.
-
-	Instead, the desired function of a symbol needs evaluator seems to fall
-	more into expression analysis category. This means that a more natural
-	fit for this evaluator is to be a symbol needs analysis, similar to the
-	existing compute_stack_depth_worker analysis.
-
-	Another problem is that using a heavyweight mechanism of an evaluator
-	to do an expression analysis seems to be an unneeded overhead. It also
-	requires a more complicated design of the parent class to support fake
-	target reads.
-
-	The reality is that the whole symbol_needs_eval_context class can be
-	replaced with a lightweight recursive analysis function, that will give
-	more correct result without compromising the design of the
-	dwarf_expr_context class. The analysis treats the expression byte
-	stream as a DWARF operation graph, where each graph node can be
-	visited only once and each operation can decide if the frame context
-	is needed for their evaluation.
-
-	The downside of this approach is adding of one more similar switch
-	statement, but at least this way the new symbol needs analysis will be
-	a lightweight mechnism and it will provide a correct result for any
-	given DWARF expression.
-
-	A more desired long term design would be to have one class that deals
-	with parsing of the DWARF expression, while there would be a virtual
-	methods that deal with specifics of some DWARF operations. Then that
-	class would be used as a base for all DWARF expression parsing mentioned
-	at the beginning.
-
-	This however, requires a far bigger changes that are out of the scope
-	of this patch series.
-
-	The new analysis requires the DWARF location description for the
-	argc argument of the main function to change in the assembly file
-	gdb.python/amd64-py-framefilter-invalidarg.S. Originally, expression
-	ended with a 0 value byte, which was never reached by the symbol needs
-	evaluator, because it was detecting a stack underflow when evaluating
-	the operation before. The new approach does not simulate a DWARF
-	stack anymore, so the 0 value byte needs to be removed because it
-	makes the DWARF expression invalid.
-
-	gdb/ChangeLog:
-
-	        * dwarf2/loc.c (class symbol_needs_eval_context): Remove.
-	        (dwarf2_get_symbol_read_needs): New function.
-	        (dwarf2_loc_desc_get_symbol_read_needs): Remove.
-	        (locexpr_get_symbol_read_needs): Use
-	        dwarf2_get_symbol_read_needs.
-
-	gdb/testsuite/ChangeLog:
-
-	        * gdb.python/amd64-py-framefilter-invalidarg.S : Update argc
-	          DWARF location expression.
-	        * lib/dwarf.exp (_location): Handle DW_OP_fbreg.
-	        * gdb.dwarf2/symbol_needs_eval.c: New file.
-	        * gdb.dwarf2/symbol_needs_eval_fail.exp: New file.
-	        * gdb.dwarf2/symbol_needs_eval_timeout.exp: New file.
-
-2021-08-05  Cui,Lili  <lili.cui@intel.com>
-
-	[PATCH 2/2] Add tests for Intel AVX512_FP16 instructions
-	Intel AVX512 FP16 instructions use maps 3, 5 and 6. Maps 5 and 6 use 3 bits
-	in the EVEX.mmm field (0b101, 0b110). Map 5 is for instructions that were FP32
-	in map 1 (0Fxx). Map 6 is for instructions that were FP32 in map 2 (0F38xx).
-	There are some exceptions to this rule. Some things in map 1 (0Fxx) with imm8
-	operands predated our current conventions; those instructions moved to map 3.
-	FP32 things in map 3 (0F3Axx) found new opcodes in map3 for FP16 because map3
-	is very sparsely populated. Most of the FP16 instructions share opcodes and
-	prefix (EVEX.pp) bits with the related FP32 operations.
-
-	Intel AVX512 FP16 instructions has new displacements scaling rules, please refer
-	to the public software developer manual for detail information.
-
-	gas/
-
-	2021-08-05  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
-	            H.J. Lu  <hongjiu.lu@intel.com>
-	            Wei Xiao <wei3.xiao@intel.com>
-	            Lili Cui  <lili.cui@intel.com>
-
-		* testsuite/gas/i386/i386.exp: Run FP16 tests.
-		* testsuite/gas/i386/avx512_fp16-intel.d: New test.
-		* testsuite/gas/i386/avx512_fp16-inval-bcast.l: Ditto.
-		* testsuite/gas/i386/avx512_fp16-inval-bcast.s: Ditto.
-		* testsuite/gas/i386/avx512_fp16.d: Ditto.
-		* testsuite/gas/i386/avx512_fp16.s: Ditto.
-		* testsuite/gas/i386/avx512_fp16_pseudo_ops.d: Ditto.
-		* testsuite/gas/i386/avx512_fp16_pseudo_ops.s: Ditto.
-		* testsuite/gas/i386/avx512_fp16_vl-intel.d: Ditto.
-		* testsuite/gas/i386/avx512_fp16_vl.d: Ditto.
-		* testsuite/gas/i386/avx512_fp16_vl.s: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.l: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.s: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16.s: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16_pseudo_ops.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16_pseudo_ops.s: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16_vl-intel.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16_vl.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16_vl.s: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16-inval-register.l: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16-inval-register.s: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16-bad.d: Ditto.
-		* testsuite/gas/i386/x86-64-avx512_fp16-bad.s: Ditto.
-		* testsuite/gas/i386/x86-64-default-suffix-avx.d: Add new testcase.
-		* testsuite/gas/i386/x86-64-default-suffix.d: Ditto.
-		* testsuite/gas/i386/x86-64-default-suffix.s: Ditto.
-		* testsuite/gas/i386/xmmword.l: Ditto.
-		* testsuite/gas/i386/xmmword.s: Ditto.
-
-2021-08-05  Cui,Lili  <lili.cui@intel.com>
-
-	[PATCH 1/2] Enable Intel AVX512_FP16 instructions
-	Intel AVX512 FP16 instructions use maps 3, 5 and 6. Maps 5 and 6 use 3 bits
-	in the EVEX.mmm field (0b101, 0b110). Map 5 is for instructions that were FP32
-	in map 1 (0Fxx). Map 6 is for instructions that were FP32 in map 2 (0F38xx).
-	There are some exceptions to this rule. Some things in map 1 (0Fxx) with imm8
-	operands predated our current conventions; those instructions moved to map 3.
-	FP32 things in map 3 (0F3Axx) found new opcodes in map3 for FP16 because map3
-	is very sparsely populated. Most of the FP16 instructions share opcodes and
-	prefix (EVEX.pp) bits with the related FP32 operations.
-
-	Intel AVX512 FP16 instructions has new displacements scaling rules, please refer
-	to the public software developer manual for detail information.
-
-	gas/
-
-	2021-08-05  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
-	            H.J. Lu  <hongjiu.lu@intel.com>
-	            Wei Xiao <wei3.xiao@intel.com>
-	            Lili Cui  <lili.cui@intel.com>
-
-		* config/tc-i386.c (struct Broadcast_Operation): Adjust comment.
-		(cpu_arch): Add .avx512_fp16.
-		(cpu_noarch): Add noavx512_fp16.
-		(pte): Add evexmap5 and evexmap6.
-		(build_evex_prefix): Handle EVEXMAP5 and EVEXMAP6.
-		(check_VecOperations): Handle {1to32}.
-		(check_VecOperands): Handle CheckRegNumb.
-		(check_word_reg): Handle Toqword.
-		(i386_error): Add invalid_dest_and_src_register_set.
-		(match_template): Handle invalid_dest_and_src_register_set.
-		* doc/c-i386.texi: Document avx512_fp16, noavx512_fp16.
-
-	opcodes/
-
-	2021-08-05  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
-	            H.J. Lu  <hongjiu.lu@intel.com>
-	            Wei Xiao <wei3.xiao@intel.com>
-	            Lili Cui  <lili.cui@intel.com>
-
-		* i386-dis.c (EXwScalarS): New.
-		(EXxh): Ditto.
-		(EXxhc): Ditto.
-		(EXxmmqh): Ditto.
-		(EXxmmqdh): Ditto.
-		(EXEvexXwb): Ditto.
-		(DistinctDest_Fixup): Ditto.
-		(enum): Add xh_mode, evex_half_bcst_xmmqh_mode, evex_half_bcst_xmmqdh_mode
-		and w_swap_mode.
-		(enum): Add PREFIX_EVEX_0F3A08_W_0, PREFIX_EVEX_0F3A0A_W_0,
-		PREFIX_EVEX_0F3A26, PREFIX_EVEX_0F3A27, PREFIX_EVEX_0F3A56,
-		PREFIX_EVEX_0F3A57, PREFIX_EVEX_0F3A66, PREFIX_EVEX_0F3A67,
-		PREFIX_EVEX_0F3AC2, PREFIX_EVEX_MAP5_10, PREFIX_EVEX_MAP5_11,
-		PREFIX_EVEX_MAP5_1D, PREFIX_EVEX_MAP5_2A, PREFIX_EVEX_MAP5_2C,
-		PREFIX_EVEX_MAP5_2D, PREFIX_EVEX_MAP5_2E, PREFIX_EVEX_MAP5_2F,
-		PREFIX_EVEX_MAP5_51, PREFIX_EVEX_MAP5_58, PREFIX_EVEX_MAP5_59,
-		PREFIX_EVEX_MAP5_5A_W_0, PREFIX_EVEX_MAP5_5A_W_1,
-		PREFIX_EVEX_MAP5_5B_W_0, PREFIX_EVEX_MAP5_5B_W_1,
-		PREFIX_EVEX_MAP5_5C, PREFIX_EVEX_MAP5_5D, PREFIX_EVEX_MAP5_5E,
-		PREFIX_EVEX_MAP5_5F, PREFIX_EVEX_MAP5_78, PREFIX_EVEX_MAP5_79,
-		PREFIX_EVEX_MAP5_7A, PREFIX_EVEX_MAP5_7B, PREFIX_EVEX_MAP5_7C,
-		PREFIX_EVEX_MAP5_7D_W_0, PREFIX_EVEX_MAP6_13, PREFIX_EVEX_MAP6_56,
-		PREFIX_EVEX_MAP6_57, PREFIX_EVEX_MAP6_D6, PREFIX_EVEX_MAP6_D7
-		(enum): Add EVEX_MAP5 and EVEX_MAP6.
-		(enum): Add EVEX_W_MAP5_5A, EVEX_W_MAP5_5B,
-		EVEX_W_MAP5_78_P_0, EVEX_W_MAP5_78_P_2, EVEX_W_MAP5_79_P_0,
-		EVEX_W_MAP5_79_P_2, EVEX_W_MAP5_7A_P_2, EVEX_W_MAP5_7A_P_3,
-		EVEX_W_MAP5_7B_P_2, EVEX_W_MAP5_7C_P_0, EVEX_W_MAP5_7C_P_2,
-		EVEX_W_MAP5_7D, EVEX_W_MAP6_13_P_0, EVEX_W_MAP6_13_P_2,
-		(get_valid_dis386): Properly handle new instructions.
-		(intel_operand_size): Handle new modes.
-		(OP_E_memory): Ditto.
-		(OP_EX): Ditto.
-		* i386-dis-evex.h: Updated for AVX512_FP16.
-		* i386-dis-evex-mod.h: Updated for AVX512_FP16.
-		* i386-dis-evex-prefix.h: Updated for AVX512_FP16.
-		* i386-dis-evex-reg.h : Updated for AVX512_FP16.
-		* i386-dis-evex-w.h : Updated for AVX512_FP16.
-		* i386-gen.c (cpu_flag_init): Add CPU_AVX512_FP16_FLAGS,
-		and CPU_ANY_AVX512_FP16_FLAGS. Update CPU_ANY_AVX512F_FLAGS
-		and CPU_ANY_AVX512BW_FLAGS.
-		(cpu_flags): Add CpuAVX512_FP16.
-		(opcode_modifiers): Add DistinctDest.
-		* i386-opc.h (enum): (AVX512_FP16): New.
-		(i386_opcode_modifier): Add reqdistinctreg.
-		(i386_cpu_flags): Add cpuavx512_fp16.
-		(EVEXMAP5): Defined as a macro.
-		(EVEXMAP6): Ditto.
-		* i386-opc.tbl: Add Intel AVX512_FP16 instructions.
-		* i386-init.h: Regenerated.
-		* i386-tbl.h: Ditto.
-
-2021-08-05  Alan Modra  <amodra@gmail.com>
-
-	PR28167, vms-alpha build_module_list
-		PR 28167
-		* vms-alpha.c (build_module_list): Malloc and free section contents.
-		Don't read past end of section.
-
-2021-08-05  Alan Modra  <amodra@gmail.com>
-
-	PR28166, _bfd_elf_mips_get_relocated_section_contents
-	Some of the code paths unpacking mips relocs left arelent->sym_ptr_ptr
-	uninitialised.
-
-		PR 28166
-		* elf64-mips.c (mips_elf64_slurp_one_reloc_table): Don't leave
-		sym_ptr_ptr uninitialised.
-
-2021-08-05  Alan Modra  <amodra@gmail.com>
-
-	PR28165, buffer overflow in elf32-rx.c:rx_info_to_howto_rela
-		PR 28165
-		* elf32-rx.c (rx_elf_howto_table): Add missing empty entries.
-		(rx_info_to_howto_rela): Assert rx_elf_howto_table is correct size.
-		Use actual size when sanity checking r_type.
-
-2021-08-05  Alan Modra  <amodra@gmail.com>
-
-	Re: elf: Treat undefined version as hidden
-	Fix fallout in cris testsuite
-
-		PR binutils/28158
-		* ld-cris/libdso-1c.d: Update for version display change.
-		* ld-cris/libdso-15b.d: Likewise.
-
-2021-08-05  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/testsuite: update test gdb.base/step-over-syscall.exp
-	I was looking at PR gdb/19675 and the related test
-	gdb.base/step-over-syscall.exp.  This test includes a call to kfail
-	when we are testing a displaced step over a clone syscall.
-
-	While looking at the test I removed the call to kfail and ran the
-	test, and was surprised that the test passed.
-
-	I ran the test a few times and it does sometimes fail, but mostly it
-	passed fine.
-
-	PR gdb/19675 describes how, when we displaced step over a clone, the
-	new thread is created with a $pc in the displaced step buffer.  GDB
-	then fails to "fix" this $pc (for the new thread), and the thread will
-	be set running with its current $pc value.  This means that the new
-	thread will just start executing from whatever happens to be after the
-	displaced stepping buffer.
-
-	In the original PR gdb/19675 bug report Yao Qi was seeing the new
-	thread cause a segfault, the problem is, what actually happens is
-	totally undefined.
-
-	On my machine, I'm seeing the new thread reenter main, it then starts
-	trying to run the test again (in the new thread).  This just happens
-	to be safe enough (in this simple test) that most of the time the
-	inferior doesn't crash.
-
-	In this commit I try to make the test slightly more likely to fail by
-	doing a couple of things.
-
-	First, I added a static variable to main, this is set true when the
-	first thread enters main, if a second thread ever enters main then I
-	force an abort.
-
-	Second, when the test is finishing I want to ensure that the new
-	threads have had a chance to do "something bad" if they are going to.
-	So I added a global counter, as each thread starts successfully it
-	decrements the counter.  The main thread does not proceed to the final
-	marker function (where GDB has placed a breakpoint) until all threads
-	have started successfully.  This means that if the newly created
-	thread doesn't successfully enter clone_fn then the counter will never
-	reach zero and the test will timeout.
-
-	With these two changes my hope is that the test should fail more
-	reliably, and so, I have also changed the test to call setup_kfail
-	before the specific steps that we expect to misbehave instead of just
-	calling kfail and skipping parts of the test completely.  The benefit
-	of this is that if/when we fix GDB this test will start to KPASS and
-	we'll know to update this test to remove the setup_kfail call.
-
-2021-08-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-05  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: Use unwinder name in frame_info::to_string
-	While working on a stack unwinding issue using 'set debug frame on', I
-	noticed the frame_info::to_string method could be slightly improved.
-
-	Unwinders have been given a name in
-	a154d838a70e96d888620c072e2d6ea8bdf044ca.  Before this patch, frame_info
-	debug output prints the host address of the used unwinder, which is not
-	easy to interpret.  This patch proposes to use the unwinder name
-	instead since we now have it.
-
-	Before the patch:
-
-	    {level=1,type=NORMAL_FRAME,unwind=0x2ac1763ec0,pc=0x3ff7fc3460,id={stack=0x3ff7ea79b0,code=0x0000003ff7fc33ac,!special},func=0x3ff7fc33ac}
-
-	With the patch:
-
-	    {level=1,type=NORMAL_FRAME,unwinder="riscv prologue",pc=0x3ff7fc3460,id={stack=0x3ff7ea79b0,code=0x0000003ff7fc33ac,!special},func=0x3ff7fc33ac}
-
-	Tested on riscv64-linux-gnu.
-
-2021-08-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: fix gdb.base/info-macros.exp with clang
-	The test gdb.base/info-macros.exp says that it doesn't pass the "debug"
-	option to prepare_for_testing because that would cause -g to appear
-	after -g3 on the command line, and that would cause some gcc versions to
-	not include macro info.  I don't know what gcc versions this refers to.
-	I tested with gcc 4.8, and that works fine with -g after -g3.
-
-	The current state is problematic when testing with CC_FOR_TARGET=clang,
-	because then only -fdebug-macro is included.  No -g switch if included,
-	meaning we get a binary without any debug info, and the test fails.
-
-	One way to fix it would be to add "debug" to the options when the
-	compiler is clang.
-
-	However, the solution I chose was to specify "debug" in any case, even
-	for gcc.  Other macro tests such as gdb.base/macscp.exp do perfectly
-	fine with it.  Also, this lets the test use the debug flag specified by
-	the board file.  For example, we can test with GCC and DWARF 5, with:
-
-	    $ make check RUNTESTFLAGS="--target_board unix/gdb:debug_flags=-gdwarf-5" TESTS="gdb.base/info-macros.exp"
-
-	With the hard-coded -g3, this wouldn't actually test with DWARF 5.
-
-	Change-Id: I33fa92ee545007d3ae9c52c4bb2d5be6b5b698f1
-
-2021-08-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: avoid dereferencing empty str_offsets_base optional in dwarf_decode_macros
-	Since 4d7188abfdf2 ("gdbsupport: add debug assertions in
-	gdb::optional::get"), some macro-related tests fail on Ubuntu 20.04 with
-	the system gcc 9.3.0 compiler when building with _GLIBCXX_DEBUG.  For
-	example, gdb.base/info-macros.exp results in:
-
-	   (gdb) break -qualified main
-	   /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/gdb_optional.h:206: internal-error: T& gdb::optional<T>::get() [with T = long unsigned int]: Assertion `this->has_value ()' failed.
-
-	The binary contains DWARF 4 debug info and includes a pre-standard
-	(pre-DWARF 5) .debug_macro section.  The CU doesn't have a
-	DW_AT_str_offsets_base attribute (which doesn't exist in DWARF 4).  The
-	field dwarf2_cu::str_offsets_base is therefore empty.  At
-	dwarf2/read.c:24138, we unconditionally read the value in the optional,
-	which triggers the assertion shown above.
-
-	The same thing happens when building the test program with DWARF 5 with
-	the same gcc compiler, as that version of gcc doesn't use indirect
-	string forms, even with DWARF 5.  So it still doesn't add a
-	DW_AT_str_offsets_base attribute on the CU.
-
-	Fix that by propagating down a gdb::optional<ULONGEST> for the str
-	offsets base instead of ULONGEST.  That value is only used in
-	dwarf_decode_macro_bytes, when encountering an "strx" macro operation
-	(DW_MACRO_define_strx or DW_MACRO_undef_strx).  Add a check there that
-	we indeed have a value in the optional before reading it.  This is
-	unlikely to happen, but could happen in theory with an erroneous file
-	that uses DW_MACRO_define_strx but does not provide a
-	DW_AT_str_offsets_base (in practice, some things would probably have
-	failed before and stopped processing of debug info).  I tested the
-	complaint by inverting the condition and using a clang-compiled binary,
-	which uses the strx operators.  This is the result:
-
-	    During symbol reading: use of DW_MACRO_define_strx with unknown string offsets base [in module /home/simark/build/binutils-gdb/gdb/testsuite/outputs/gdb.base/info-macros/info-macros]
-
-	The test now passes cleanly with the setup mentioned above, and the
-	testsuite looks on par with how it was before 4d7188abfdf2.
-
-	Change-Id: I7ebd2724beb7b9b4178872374c2a177aea696e77
-
-2021-08-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix typo in complaint in dwarf2/macro.c
-	I saw this complaint when my code had some bug, and spotted the typo.
-	Fix it, and while at it mention DW_MACRO as well (it would be confusing
-	to only see DW_MACINFO with a file that uses a DWARF 5 .debug_macro
-	section).  I contemplated the idea of passing the knowledge of whether
-	we are dealing with a .debug_macro section or .debug_macinfo section, to
-	print only the right one.  But in the end, I don't think that trouble is
-	necessary for a complaint nobody is going to see.
-
-	Change-Id: I276ce8da65c3eac5304f64a1e246358ed29cdbbc
-
-2021-08-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix warnings in bsd-kvm.c
-	Building on OpenBSD, I get warnings like:
-
-	      CXX    bsd-kvm.o
-	    /home/simark/src/binutils-gdb/gdb/bsd-kvm.c:241:18: error: ISO C++11 does not allow conversion from string literal to 'char *' [-Werror,-Wwritable-strings]
-	      nl[0].n_name = "_dumppcb";
-	                     ^
-
-	Silence those by adding casts.
-
-	Change-Id: I2bef4eebcc306762a4e3e5b5c52f67ecf2820503
-
-2021-08-04  Andreas Krebbel  <krebbel@linux.ibm.com>
-
-	IBM Z: Remove lpswey parameter
-	opcodes/
-		* s390-opc.c (INSTR_SIY_RD): New instruction format.
-		(MASK_SIY_RD): New instruction mask.
-		* s390-opc.txt: Change instruction format of lpswey to SIY_RD.
-
-	gas/
-		* testsuite/gas/s390/zarch-arch14.d: Remove last operand of
-		lpswey.
-		* testsuite/gas/s390/zarch-arch14.s: Likewise.
-
-2021-08-04  Alan Modra  <amodra@gmail.com>
-
-	PR28162, segment fault in mips_elf_assign_gp
-	For the testcase in the PR, _bfd_mips_elf32_gprel16_reloc is passed a
-	NULL output_bfd.  As expected for reloc special functions if called by
-	objdump or when final linking.  The function attempts to find the
-	output by
-	  output_bfd = symbol->section->output_section->owner;
-	That makes some sense, since when handling a gp-relative reloc we need
-	the relevant gp to which the symbol is relative.  Possibly the gp
-	value can be one for a shared library?  But that doesn't seem useful
-	or supported by the various abi docs and won't work as written.
-	Symbols defined in shared libraries have section->output_section
-	NULL, and what's more the code in mips_elf_assign_gp isn't set up to
-	look at shared library symbols.
-
-	Also, if the symbol is a SHN_ABS one the owner of *ABS* section is
-	NULL, which will result in the testcase segfault.  The only gp to
-	which an absolute symbol can be relative is the linker output bfd when
-	linking, or the input bfd when not.  This patch arranges to do that
-	for all gp-relative reloc symbols.
-
-		* elf32-mips.c (_bfd_mips_elf32_gprel16_reloc): Don't use the
-		section symbol to find the output bfd, use input_section.
-		(mips_elf_gprel32_reloc, mips16_gprel_reloc): Likewise.
-		* elf64-mips.c (mips_elf64_gprel16_reloc): Likewise.
-		(mips_elf64_literal_reloc, mips_elf64_gprel32_reloc): Likewise.
-		(mips16_gprel_reloc): Likewise.
-
-2021-08-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Use lambda function instead of addrmap_foreach_check
-	Use a lambda function instead of addrmap_foreach_check,
-	which removes the need for static variables.
-
-	Also remove unnecessary static on local var temp_obstack in test_addrmap.
-
-	gdb/ChangeLog:
-
-	2021-08-04  Tom de Vries  <tdevries@suse.de>
-
-		* addrmap.c (addrmap_foreach_check): Remove.
-		(array, val1, val2): Move ...
-		(test_addrmap): ... here.  Remove static on temp_obstack.  Use lambda
-		function instead of addrmap_foreach_check.
-
-2021-08-04  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Treat undefined version as hidden
-	Since undefined version can't be used to resolve any references without
-	the original definition, treat it as hidden.
-
-	bfd/
-
-		PR binutils/28158
-		* elf.c (_bfd_elf_get_symbol_version_string): Treat undefined
-		version as hidden.
-
-	ld/
-
-		PR binutils/28158
-		* testsuite/ld-elf/linux-x86.exp: Run PR binutils/28158 tests.
-		* testsuite/ld-elf/pr28158-1.c: New file.
-		* testsuite/ld-elf/pr28158-2.S: Likewise.
-		* testsuite/ld-elf/pr28158.nd: Likewise.
-		* testsuite/ld-elf/pr28158.rd: Likewise.
-		* testsuite/ld-elf/pr28158.t: Likewise.
-		* testsuite/ld-elfvers/vers2.dsym: Updated.
-		* testsuite/ld-elfvers/vers3.dsym: Likewise.
-		* testsuite/ld-elfvers/vers6.dsym: Likewise.
-		* testsuite/ld-elfvers/vers19.dsym: Likewise.
-		* testsuite/ld-elfvers/vers22.dsym: Likewise.
-		* testsuite/ld-elfvers/vers23.dsym: Likewise.
-		* testsuite/ld-elfvers/vers23d.dsym: Likewise.
-		* testsuite/ld-elfvers/vers27d4.dsym: Likewise.
-		* testsuite/ld-elfvers/vers28c.dsym: Likewise.
-
-2021-08-04  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Implement addrmap_mutable_find
-	Currently addrmap_mutable_find is not implemented:
-	...
-	static void *
-	addrmap_mutable_find (struct addrmap *self, CORE_ADDR addr)
-	{
-	  /* Not needed yet.  */
-	  internal_error (__FILE__, __LINE__,
-	                  _("addrmap_find is not implemented yet "
-	                    "for mutable addrmaps"));
-	}
-	...
-
-	I implemented this because I needed it during debugging, to be able to do:
-	...
-	(gdb) p ((dwarf2_psymtab *)addrmap_find (map, addr))->filename
-	...
-	before and after a call to addrmap_set_empty.
-
-	Since this is not used otherwise, added addrmap unit test.
-
-	Build on x86_64-linux, tested by doing:
-	...
-	$ gdb -q -batch -ex "maint selftest addrmap"
-	Running selftest addrmap.
-	Ran 1 unit tests, 0 failed
-	...
-
-	gdb/ChangeLog:
-
-	2021-08-03  Tom de Vries  <tdevries@suse.de>
-
-	        * gdb/addrmap.c (addrmap_mutable_find): Implement
-	        [GDB_SELF_TESTS] (CHECK_ADDRMAP_FIND): New macro.
-	        [GDB_SELF_TESTS] (core_addr, addrmap_foreach_check, test_addrmap)
-		(_initialize_addrmap): New function.
-
-2021-08-04  Clément Chigot  <clement.chigot@atos.net>
-
-	gas: correctly output XCOFF tbss symbols with XTY_CM type.
-	Global tbss symbols weren't correctly handled and were generating
-	a symbol with XTY_SD instead of XTY_CM as expected.
-
-	gas/
-		* config/tc-ppc.c (ppc_frog_symbol): Generate a XTY_CM when
-		a symbol has a storage class of XMC_UL.
-
-2021-08-04  Clément Chigot  <clement.chigot@atos.net>
-
-	gas: always add dummy symbols when creating XCOFF sections.
-	Most of the algorithms for XCOFF in tc-ppc.c assume that
-	the csects field of a ppc_xcoff_section isn't NULL.
-	This was already made for most of the sections with the creation
-	of a dummy symbol.
-	This patch simply mades it default when creating a xcoff_section.
-
-	gas/
-		* config/tc-ppc.c (ppc_init_xcoff_section): Always create
-		the dummy symbol.
-		(md_begin): Adjust ppc_init_xcoff_section call.
-		(ppc_comm): Likewise.
-		(ppc_change_csect): Likewise.
-
-2021-08-04  Alan Modra  <amodra@gmail.com>
-
-	PR28156, rename.c doesn't compile with MinGW
-	Guard against lack of struct timespec definition.
-
-		PR 28156
-		* rename.c (get_stat_atime, get_stat_mtime): Don't compile
-		unless HAVE_UTIMENSAT is defined.
-
-2021-08-04  Alan Modra  <amodra@gmail.com>
-
-	PR28155, Superfluous "the" in the man page
-		PR 28155
-		* ld.texi (Options <runtime library name>): Correct grammar.
-
-	revise PE IMAGE_SCN_LNK_NRELOC_OVFL test
-		* coffcode.h (coff_set_alignment_hook): Test that the resulting
-		reloc count is not less than 0xffff.
-
-2021-08-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: follow-fork: push target and add thread in target_follow_fork
-	In the context of ROCm-gdb [1], the ROCm target sits on top of the
-	linux-nat target.  when a process forks, it needs to carry over some
-	data from the forking inferior to the fork child inferior.  Ideally, the
-	ROCm target would implement the follow_fork target_ops method, but there
-	are some small problems.  This patch fixes these, which helps the ROCm
-	target, but also makes things more consistent and a bit nicer in
-	general, I believe.
-
-	The main problem is: when follow-fork-mode is "parent",
-	target_follow_fork is called with the parent as the current inferior.
-	When it's "child", target_follow_fork is called with the child as the
-	current inferior.  This means that target_follow_fork is sometimes
-	called on the parent's target stack and sometimes on the child's target
-	stack.
-
-	The parent's target stack may contain targets above the process target,
-	such as the ROCm target.  So if follow-fork-child is "parent", the ROCm
-	target would get notified of the fork and do whatever is needed.  But
-	the child's target stack, at that moment, only contains the exec and
-	process target copied over from the parent.  The child's target stack is
-	set up by follow_fork_inferior, before calling target_follow_fork.  In
-	that case, the ROCm target wouldn't get notified of the fork.
-
-	For consistency, I think it would be good to always call
-	target_follow_fork on the parent inferior's target stack.  I think it
-	makes sense as a way to indicate "this inferior has called fork, do
-	whatever is needed".  The desired outcome of the fork (whether an
-	inferior is created for the child, do we need to detach from the child)
-	can be indicated by passed parameter.
-
-	I therefore propose these changes:
-
-	 - make follow_fork_inferior always call target_follow_fork with the
-	   parent as the current inferior.  That lets all targets present on the
-	   parent's target stack do some fork-related handling and push
-	   themselves on the fork child's target stack if needed.
-
-	   For this purpose, pass the child inferior down to target_follow_fork
-	   and follow_fork implementations.  This is nullptr if no inferior is
-	   created for the child, because we want to detach from it.
-
-	 - as a result, in follow_fork_inferior, detach from the parent inferior
-	   (if needed) only after the target_follow_fork call.  This is needed
-	   because we want to call target_follow_fork before the parent's
-	   target stack is torn down.
-
-	 - hand over to the targets in the parent's target stack (including the
-	   process target) the responsibility to push themselves, if needed, to
-	   the child's target stack.  Also hand over the responsibility to the
-	   process target, at the same time, to create the child's initial
-	   thread (just like we do for follow_exec).
-
-	 - pass the child inferior to exec_on_vfork, so we don't need to swap
-	   the current inferior between parent and child.  Nothing in
-	   exec_on_vfork depends on the current inferior, after this change.
-
-	   Although this could perhaps be replaced with just having the exec
-	   target implement follow_fork and push itself in the child's target
-	   stack, like the process target does... We would just need to make
-	   sure the process target calls beneath()->follow_fork(...).  I'm not
-	   sure about this one.
-
-	gdb/ChangeLog:
-
-		* target.h (struct target_ops) <follow_fork>: Add inferior*
-		parameter.
-		(target_follow_fork): Likewise.
-		* target.c (default_follow_fork): Likewise.
-		(target_follow_fork): Likewise.
-		* fbsd-nat.h (class fbsd_nat_target) <follow_fork>: Likewise.
-		(fbsd_nat_target::follow_fork): Likewise, and call
-		inf_ptrace_target::follow_fork.
-		* linux-nat.h (class linux_nat_target) <follow_fork>: Likewise.
-		* linux-nat.c (linux_nat_target::follow_fork): Likewise, and
-		call inf_ptrace_target::follow_fork.
-		* obsd-nat.h (obsd_nat_target) <follow_fork>: Likewise.
-		* obsd-nat.c (obsd_nat_target::follow_fork): Likewise, and call
-		inf_ptrace_target::follow_fork.
-		* remote.c (class remote_target) <follow_fork>: Likewise.
-		(remote_target::follow_fork): Likewise, and call
-		process_stratum_target::follow_fork.
-		* process-stratum-target.h (class process_stratum_target)
-		<follow_fork>: New.
-		* process-stratum-target.c
-		(process_stratum_target::follow_fork): New.
-		* target-delegates.c: Re-generate.
-
-	[1] https://github.com/ROCm-Developer-Tools/ROCgdb
-
-	Change-Id: I460bd0af850f0485e8aed4b24c6d8262a4c69929
-
-2021-08-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-03  Carl Love  <cel@us.ibm.com>
-
-	Fixes for mi-fortran-modules.exp fixes
-	Output has additional information for a given filename.
-
-	gdb/testsuite/ChangeLog
-		* gdb.mi/mi-fortran-modules.exp (system_modules_pattern,
-		system_module_symbols_pattern): Add check for additional symbols
-		on the line
-
-2021-08-03  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport: add debug assertions in gdb::optional::get
-	The libstdc++ version of optional contains some runtime checks enabled
-	when _GLIBCXX_DEBUG is defined.  I think it would be useful if our
-	version contained similar checks.
-
-	Add checks in the two `get` methods, also conditional on _GLIBCXX_DEBUG.
-	I think it's simpler to use that macro rather than introducing a new
-	GDB-specific one, as I think that if somebody is interested in enabling
-	these runtime checks, they'll also be interested in enabling the
-	libstdc++ runtime checks (and vice-versa).
-
-	I implemented these checks using gdb_assert.  Note that gdb_assert
-	throws (after querying the user), and we are in noexcept methods.  That
-	means that std::terminate / abort will immediately be called.  I think
-	this is ok, since if those were "real" _GLIBCXX_DEBUG checks, abort
-	would be called straight away.
-
-	If I add a dummy failure, it looks like so:
-
-	    $ ./gdb -q -nx --data-directory=data-directory
-	    /home/simark/src/binutils-gdb/gdb/../gdbsupport/gdb_optional.h:206: internal-error: T& gdb::optional<T>::get() [with T = int]: Assertion `this->has_value ()' failed.
-	    A problem internal to GDB has been detected,
-	    further debugging may prove unreliable.
-	    Quit this debugging session? (y or n) n
-	    [1]    658767 abort (core dumped)  ./gdb -q -nx --data-directory=data-directory
-
-	Change-Id: Iadfdcd131425bd2ca6a2de30d7b22e9b3cc67793
-
-2021-08-03  Alok Kumar Sharma  <AlokKumar.Sharma@amd.com>
-
-	[gdb/testsuite] templates.exp to accept clang++ output
-	Please consider below testcase with intended error.
-	``````````
-	    constexpr const char cstring[] = "Eta";
-	    template <const char*, typename T> class Column {};
-	    using quick = Column<cstring,double>; // cstring without '&'
-
-	    void lookup() {
-	      quick c1;
-	      c1.ls();
-	    }
-	``````````
-	It produces below error.
-	``````````
-	no member named 'ls' in 'Column<&cstring, double>'.
-	``````````
-	Please note that error message contains '&' for cstring, which is absent
-	in actual program.
-	Clang++ does not generate & in such cases and this should also be
-	accepted as correct output.
-
-	gdb/testsuite/ChangeLog:
-
-		* gdb.cp/templates.exp: Accept different but correct output
-		from the Clang++ compiled binary also.
-
-2021-08-03  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-02  Tom Tromey  <tromey@adacore.com>
-
-	Handle compiler-generated suffixes in Ada names
-	The compiler may add a suffix to a mangled name.  A typical example
-	would be splitting a function and creating a ".cold" variant.
-
-	This patch changes Ada decoding (aka demangling) to handle these
-	suffixes.  It also changes the encoding process to handle them as
-	well.
-
-	A symbol like "function.cold" will now be displayed to the user as
-	"function[cold]".  The "." is not simply preserved because that is
-	already used in Ada.
-
-2021-08-02  Tom Tromey  <tromey@adacore.com>
-
-	Remove uses of fprintf_symbol_filtered
-	I believe that many calls to fprintf_symbol_filtered are incorrect.
-	In particular, there are some that pass a symbol's print name, like:
-
-	  fprintf_symbol_filtered (gdb_stdout, sym->print_name (),
-				   current_language->la_language, DMGL_ANSI);
-
-	fprintf_symbol_filtered uses the "demangle" global to decide whether
-	or not to demangle -- but print_name does this as well.  This can lead
-	to double-demangling.  Normally this could be innocuous, except I also
-	plan to change Ada demangling in a way that causes this to fail.
-
-2021-08-02  Tom Tromey  <tromey@adacore.com>
-
-	Handle type qualifier for enumeration name
-	Pierre-Marie noticed that the Ada expression "TYPE'(NAME)" resolved
-	incorrectly when "TYPE" was an enumeration type.  Here, "NAME" should
-	be unambiguous.
-
-	This patch fixes this problem.  Note that the patch is not perfect --
-	it does not give an error if TYPE is an enumeration type but NAME is
-	not an enumerator but does have some other meaning in scope.  Fixing
-	this proved difficult, and so I've left it out.
-
-2021-08-02  Tom Tromey  <tromey@adacore.com>
-
-	Remove the type_qualifier global
-	The type_qualifier global is no longer needed in the Ada expression
-	parser, so this removes it.
-
-2021-08-02  Tom Tromey  <tromey@adacore.com>
-
-	Defer Ada character literal resolution
-	In Ada, an enumeration type can use a character literal as one of the
-	enumerators.  The Ada expression parser handles the appropriate
-	conversion.
-
-	It turns out, though, that this conversion was handled incorrectly.
-	For an expression like TYPE'(EXP), the conversion would be done for
-	any such literal appearing in EXP -- but only the outermost such
-	expression should really be affected.
-
-	This patch defers the conversion until the resolution phase, fixing
-	the bug.
-
-2021-08-02  Tom Tromey  <tromey@adacore.com>
-
-	Refactor Ada resolution
-	In a subsequent patch, it will be convenient if an Ada expression
-	operation can supply its own replacement object.  This patch refactors
-	Ada expression resolution to make this possible.
-
-	Remove add_symbols_from_enclosing_procs
-	I noticed that add_symbols_from_enclosing_procs is empty, and can be
-	removed.  The one caller, ada_add_local_symbols, can also be
-	simplified, removing some code that, I think, was an incorrect attempt
-	to handle nested functions.
-
-2021-08-02  Tom Tromey  <tromey@adacore.com>
-
-	Avoid crash in varobj deletion
-	PR varobj/28131 points out a crash in the varobj deletion code.  It
-	took a while to reproduce this, but essentially what happens is that a
-	top-level varobj deletes its root object, then deletes the "dynamic"
-	object.  However, deletion of the dynamic object may cause
-	~py_varobj_iter to run, which in turn uses gdbpy_enter_varobj:
-
-	gdbpy_enter_varobj::gdbpy_enter_varobj (const struct varobj *var)
-	: gdbpy_enter (var->root->exp->gdbarch, var->root->exp->language_defn)
-	{
-	}
-
-	However, because var->root has already been destroyed, this is
-	invalid.
-
-	I've added a new test case.  This doesn't reliably crash, but the
-	problem can easily be seen under valgrind (and, I presume, with ASAN,
-	though I did not try this).
-
-	Tested on x86-64 Fedora 32.  I also propose putting this on the GDB 11
-	branch, with a suitable ChangeLog entry of course.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28131
-
-2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-using-debug-str.exp with cc-with-dwz-m
-	When running with target board cc-with-dwz-m, we run into:
-	...
-	(gdb) file dw2-using-debug-str-no-debug-str^M
-	Reading symbols from dw2-using-debug-str-no-debug-str...^M
-	(gdb) FAIL: gdb.dwarf2/dw2-using-debug-str.exp: file dw2-using-debug-str
-	...
-
-	With native, the .debug_str section is present in the
-	dw2-using-debug-str executable, and removed from the
-	dw2-using-debug-str-no-debug-str executable.  When loading the latter, a dwarf
-	error is triggered.
-
-	With cc-with-dwz-m, the .debug_str section is not present in the
-	dw2-using-debug-str executable, because it's already moved to
-	.tmp/dw2-using-debug-str.dwz.  Consequently, the removal has no effect, and no
-	dwarf error is triggered, which causes the FAIL.
-
-	The same problem arises with target board cc-with-gnu-debuglink.
-
-	Fix this by detecting whether the .debug_str section is missing, and skipping
-	the remainder of the test-case.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.dwarf2/dw2-using-debug-str.exp: Handle missing .debug_str
-		section in dw2-using-debug-str.
-
-2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/dw2-using-debug-str.exp with cc-with-gdb-index
-	When running with target board cc-with-gdb-index, we run into:
-	...
-	(gdb) file dw2-using-debug-str-no-debug-str^M
-	Reading symbols from dw2-using-debug-str-no-debug-str...^M
-	Dwarf Error: DW_FORM_strp used without required section^M
-	(gdb) FAIL: gdb.dwarf2/dw2-using-debug-str.exp: file dw2-using-debug-str
-	...
-
-	The test expects the dwarf error, but has no matching pattern for the entire
-	output.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.dwarf2/dw2-using-debug-str.exp: Update regexp to match
-		cc-with-gdb-index output.
-
-2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/per-bfd-sharing.exp with cc-with-gdb-index
-	When running with target board cc-with-gdb-index, we run into:
-	...
-	rm: cannot remove '/tmp/tmp.JmYTeiuFjj/*.gdb-index': \
-	  No such file or directory^M
-	FAIL: gdb.dwarf2/per-bfd-sharing.exp: \
-	  couldn't remove files in temporary cache dir
-	...
-
-	Fix this, as in gdb.base/index-cache.exp, by only FAILing when
-	$expecting_index_cache_use.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.dwarf2/per-bfd-sharing.exp: Only expect index-cache files
-		when $expecting_index_cache_use.
-
-2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/gdb-index-nodebug.exp with cc-with-gdb-index
-	When running with target board cc-with-gdb-index, we run into:
-	...
-	(gdb) save gdb-index .^M
-	Error while writing index for `gdb-index-nodebug': \
-	  Cannot use an index to create the index^M
-	(gdb) FAIL: gdb.dwarf2/gdb-index-nodebug.exp: try to save gdb index
-	...
-
-	Fix this by detecting an already present index, and marking the test
-	unsupported.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.dwarf2/gdb-index-nodebug.exp: Mark unsupported when index
-		already present.
-
-2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.dwarf2/fission-relative-dwo.exp with cc-with-gdb-index
-	When running with target board cc-with-gdb-index, we run into:
-	...
-	gdb compile failed, warning: Could not find DWO CU \
-	  fission-relative-dwo.dwo(0x1234) referenced by CU at offset 0xc7 \
-	  [in module outputs/gdb.dwarf2/fission-relative-dwo/.tmp/fission-relative-dwo]
-	UNTESTED: gdb.dwarf2/fission-relative-dwo.exp: fission-relative-dwo.exp
-	ERROR: failed to compile fission-relative-dwo
-	...
-
-	The problem is that:
-	- the .dwo file is found relative to the executable, and
-	- cc-with-tweaks.sh moves the executable to a temp dir, but not
-	  the .dwo file.
-
-	Fix this by copying the .dwo file alongside the executable in the temp dir.
-
-	Verified changes using shellcheck.
-
-	Tested on x86_64-linux.
-
-	gdb/ChangeLog:
-
-	2021-08-02  Tom de Vries  <tdevries@suse.de>
-
-		* contrib/cc-with-tweaks.sh: Copy .dwo files alongside executable.
-
-2021-08-02  Shahab Vahedi  <shahab@synopsys.com>
-
-	gdb: Make the builtin "boolean" type an unsigned type
-	When printing the fields of a register that is of a custom struct type,
-	the "unpack_bits_as_long ()" function is used:
-
-	    do_val_print (...)
-	      cp_print_value_fields (...)
-	        value_field_bitfield (...)
-	          unpack_value_bitfield (...)
-	            unpack_bits_as_long (...)
-
-	This function may sign-extend the extracted field while returning it:
-
-	    val >>= lsbcount;
-
-	    if (...)
-	      {
-	        valmask = (((ULONGEST) 1) << bitsize) - 1;
-	        val &= valmask;
-	        if (!field_type->is_unsigned ())
-	  	  if (val & (valmask ^ (valmask >> 1)))
-	  	      val |= ~valmask;
-	      }
-
-	    return val;
-
-	lsbcount:   Number of lower bits to get rid of.
-	bitsize:    The bit length of the field to be extracted.
-	val:        The register value.
-	field_type: The type of field that is being handled.
-
-	While the logic here is correct, there is a problem when it is
-	handling "field_type"s of "boolean".  Those types are NOT marked
-	as "unsigned" and therefore they end up being sign extended.
-	Although this is not a problem for "false" (0), it definitely
-	causes trouble for "true".
-
-	This patch constructs the builtin boolean type as such that it is
-	marked as an "unsigned" entity.
-
-	The issue tackled here was first encountered for arc-elf32 target
-	running on an x86_64 machine.  The unit-test introduced in this change
-	has passed for all the targets (--enable-targets=all) running on the
-	same x86_64 host.
-
-	Fixes: https://sourceware.org/PR28104
-
-2021-08-02  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-08-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/maint.exp with cc-with-gdb-index
-	With target board cc-with-gdb-index we run into:
-	...
-	FAIL: gdb.base/maint.exp: maint print statistics
-	...
-
-	The output that is checked is:
-	...
-	Statistics for 'maint':^M
-	  Number of "minimal" symbols read: 53^M
-	  Number of "full" symbols read: 40^M
-	  Number of "types" defined: 60^M
-	  Number of symbol tables: 7^M
-	  Number of symbol tables with line tables: 2^M
-	  Number of symbol tables with blockvectors: 2^M
-	  Number of read CUs: 2^M
-	  Number of unread CUs: 5^M
-	  Total memory used for objfile obstack: 20320^M
-	  Total memory used for BFD obstack: 4064^M
-	  Total memory used for string cache: 4064^M
-	...
-	and the regexp doesn't match because it expects the "Number of read/unread
-	CUs" lines in a different place.
-
-	Fix this by updating the regexp.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-01  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.base/maint.exp: Update "maint print statistics" to match
-		output with target board cc-with-gdb-index.
-
-2021-08-01  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/index-cache.exp with cc-with-gdb-index
-	With target board cc-with-gdb-index we run into:
-	...
-	FAIL: gdb.base/index-cache.exp: couldn't remove files in temporary cache dir
-	...
-
-	The problem is that there are no files to remove, because the index cache
-	isn't used, as indicated by $expecting_index_cache_use.
-
-	Fix this by only FAILing when $expecting_index_cache_use.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-08-01  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.base/index-cache.exp:
-
-2021-08-01  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-31  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-30  Tom Tromey  <tom@tromey.com>
-
-	Use iterator_range in more places
-	This changes a couple of spots to replace custom iterator range
-	classes with a specialization of iterator_range.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-07-30  Tom Tromey  <tom@tromey.com>
-
-	Replace exception_print_same with operator!=
-	I noticed that exception_print_same is only used in a single spot, and
-	it seemed to be better as an operator!= method attached to
-	gdb_exception.
-
-	Regression tested on x86-64 Fedora 34.
-
-2021-07-30  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/build] Disable attribute nonnull
-	With trunk gcc (12.0) we're running into a -Werror=nonnull-compare build
-	breaker in gdb, which caused a broader review of the usage of the nonnull
-	attribute.
-
-	The current conclusion is that it's best to disable this.  This is explained
-	at length in the gdbsupport/common-defs.h comment.
-
-	Tested by building with trunk gcc.
-
-	gdb/ChangeLog:
-
-	2021-07-29  Tom de Vries  <tdevries@suse.de>
-
-		* gdbsupport/common-defs.h (ATTRIBUTE_NONNULL): Disable.
-
-2021-07-30  Clément Chigot  <clement.chigot@atos.net>
-
-	gas: ensure XCOFF DWARF subsection are initialized to 0
-	debug_abbrev doesn't use end_exp to compute its size. However, it must
-	be NULL. Otherwise, ppc_xcoff_end might try to access uninitialized
-	memory.
-
-	gas/
-		* config/tc-ppc.c (ppc_dwsect): Use XCNEW instead of XNEW when creating
-		a new subsection.
-
-2021-07-30  Clément Chigot  <clement.chigot@atos.net>
-
-	bfd: ensure that symbols targeted by DWARF relocations are kept in XCOFF
-	This patch improves XCOFF garbage collector pass, in order to keep
-	symbols being referenced only by special sections like DWARF sections.
-
-	bfd/
-		* xcofflink.c (xcoff_mark): Replace SEC_MARK by gc_mark.
-		Look through relocations even if xcoff_section_data is NULL.
-		(xcoff_sweep): Check if any sections of a file is kept before
-		adding its special sections.
-		Call xcoff_mark for special sessions being kept instead of just
-		marking them.
-		(SEC_MARK): Remove
-		(xcoff_mark_symbol): Replace SEC_MARK by gc_mark.
-		(xcoff_keep_symbol_p): Likewise.
-		(bfd_xcoff_size_dynamic_sections): Likewise.
-		(xcoff_find_tc0): Likewise.
-
-2021-07-30  Clément Chigot  <clement.chigot@atos.net>
-
-	bfd: avoid a crash when debug_section isn't created in XCOFF
-	bfd/
-		* xcofflink.c (bfd_xcoff_size_dynamic_sections):
-		Add check to know if debug_section is initialized.
-
-2021-07-30  Alan Modra  <amodra@gmail.com>
-
-	readelf: catch archive_file_size of -1
-	Fuzzers might put -1 in arhdr.ar_size.  If the size is rounded up to
-	and even number of bytes we get zero.
-
-		* readelf.c (process_archive): Don't round up archive_file_size.
-		Do round up next_arhdr_offset calculation.
-
-2021-07-30  Alan Modra  <amodra@gmail.com>
-
-	reloc_upper_bound size calculations
-	Section reloc_count is an unsigned int.  Adding one for a NULL
-	terminator to an array of arelent pointers can wrap the count to
-	zero.  Avoid that by doing the addition as longs.
-
-		* coffgen.c (coff_get_reloc_upper_bound): Don't overflow unsigned
-		int expression.
-		* elf.c (_bfd_elf_get_reloc_upper_bound): Likewise.
-		* elf64-sparc.c (elf64_sparc_get_reloc_upper_bound): Likewise.
-		* mach-o.c (bfd_mach_o_get_reloc_upper_bound): Likewise.
-		* vms-alpha.c (alpha_vms_get_reloc_upper_bound): Likewise.
-
-2021-07-30  Alan Modra  <amodra@gmail.com>
-
-	Sanity check _bfd_coff_read_string_table
-		* coffgen.c (_bfd_coff_read_string_table): Catch overflows
-		when calculating string table file location.
-
-2021-07-30  Alan Modra  <amodra@gmail.com>
-
-	IMAGE_SCN_LNK_NRELOC_OVFL
-	From microsoft docs: It is an error if IMAGE_SCN_LNK_NRELOC_OVFL is
-	set and there are fewer than 0xffff relocations in the section.
-
-		* coffcode.h (coff_set_alignment_hook): Sanity check overflow
-		reloc count.
-
-2021-07-30  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fix nr_bits gdb_assert in append_flags_type_field
-	The assertion
-
-	    gdb_assert (nr_bits >= 1 && nr_bits <= type_bitsize);
-
-	is not correct.  Well, it's correct in that we do want the number of
-	bits to be in the range [1, type_bitsize].  But we don't check anywhere
-	that the end of the specified flag is within the containing type.
-
-	The following code should generate a failed assertion, as the flag goes
-	past the 32 bits of the underlying type, but it's currently not caught:
-
-	    static void
-	    test_print_flag (gdbarch *arch)
-	    {
-	      type *flags_type = arch_flags_type (arch, "test_type", 32);
-	      type *field_type = builtin_type (arch)->builtin_uint32;
-	      append_flags_type_field (flags_type, 31, 2, field_type, "invalid");
-	    }
-
-	(You can test this by registering it as a selftest using
-	selftests::register_test_foreach_arc and running.)
-
-	Change the assertion to verify that the end bit is within the range of
-	the underlying type.  This implicitly verifies that nr_bits is not
-	too big as well, so we don't need a separate assertion for that.
-
-	Change-Id: I9be79e5fd7a5917bf25b03b598727e6274c892e8
-	Co-Authored-By: Tony Tye <Tony.Tye@amd.com>
-
-2021-07-30  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-29  John Baldwin  <jhb@FreeBSD.org>
-
-	obsd-nat: Report both thread and PID in ::pid_to_str.
-	This improves the output of info threads when debugging multiple
-	inferiors (e.g. after a fork with detach_on_fork disabled).
-
-2021-07-29  John Baldwin  <jhb@FreeBSD.org>
-
-	obsd-nat: Various fixes for fork following.
-	- Don't use #ifdef's on ptrace ops.  obsd-nat.h didn't include
-	  <sys/ptrace.h>, so the virtual methods weren't always overridden
-	  causing the fork following to not work.  In addition, the thread and
-	  fork code is intertwined in ::wait and and the lack of #ifdef's
-	  there already assumed both were present.  Finally, both of these
-	  ptrace ops have been present in OpenBSD for at least 10 years.
-
-	- Move duplicated code to enable PTRACE_FORK event reporting to a
-	  single function and invoke it on new child processes reported via
-	  PTRACE_FORK.
-
-	- Don't return early from PTRACE_FORK handling, but instead reset
-	  wptid to the correct ptid if the child reports its event before the
-	  parent.  This allows the ptid fixup code to add thread IDs if the
-	  first event for a process is a PTRACE_FORK event.  This also
-	  properly returns ptid's with thread IDs when reporting PTRACE_FORK
-	  events.
-
-	- Handle detach_fork by skipping the PT_DETACH.
-
-2021-07-29  John Baldwin  <jhb@FreeBSD.org>
-
-	obsd-nat: Various fixes to obsd_nat_target::wait.
-	- Call inf_ptrace_target::wait instead of duplicating the code.
-	  Replace a check for WIFSTOPPED on the returned status from waitpid
-	  by checking for TARGET_WAITKIND_STOPPED in the parsed status as is
-	  done in fbsd_nat_target::wait.
-
-	- Don't use inferior_ptid when deciding if a new process is a child vs
-	  parent of the fork.  Instead, use find_inferior_pid and assume that
-	  if an inferior already exists, the pid in question is the parent;
-	  otherwise, the pid is the child.
-
-	- Don't use inferior_ptid when deciding if the ptid of the process
-	  needs to be updated with an LWP ID, or if this is a new thread.
-	  Instead, use the approach from fbsd-nat which is to check if a ptid
-	  without an LWP exists and if so update the ptid of that thread
-	  instead of adding a new thread.
-
-2021-07-29  John Baldwin  <jhb@FreeBSD.org>
-
-	x86-bsd-nat: Only define gdb_ptrace when using debug registers.
-	This fixes an unused function warning on OpenBSD which does not
-	support PT_GETDBREGS.
-
-2021-07-29  John Baldwin  <jhb@FreeBSD.org>
-
-	Don't compile x86 debug register support on OpenBSD.
-	Simon Marchi tried gdb on OpenBSD, and it immediately segfaults when
-	running a program.  Simon tracked down the problem to x86_dr_low.get_status
-	being nullptr at this point:
-
-	    (lldb) print x86_dr_low.get_status
-	    (unsigned long (*)()) $0 = 0x0000000000000000
-	    (lldb) bt
-	    * thread #1, stop reason = step over
-	      * frame #0: 0x0000033b64b764aa gdb`x86_dr_stopped_data_address(state=0x0000033d7162a310, addr_p=0x00007f7ffffc5688) at x86-dregs.c:645:12
-	        frame #1: 0x0000033b64b766de gdb`x86_dr_stopped_by_watchpoint(state=0x0000033d7162a310) at x86-dregs.c:687:10
-	        frame #2: 0x0000033b64ea5f72 gdb`x86_stopped_by_watchpoint() at x86-nat.c:206:10
-	        frame #3: 0x0000033b64637fbb gdb`x86_nat_target<obsd_nat_target>::stopped_by_watchpoint(this=0x0000033b65252820) at x86-nat.h:100:12
-	        frame #4: 0x0000033b64d3ff11 gdb`target_stopped_by_watchpoint() at target.c:468:46
-	        frame #5: 0x0000033b6469b001 gdb`watchpoints_triggered(ws=0x00007f7ffffc61c8) at breakpoint.c:4790:32
-	        frame #6: 0x0000033b64a8bb8b gdb`handle_signal_stop(ecs=0x00007f7ffffc61a0) at infrun.c:6072:29
-	        frame #7: 0x0000033b64a7e3a7 gdb`handle_inferior_event(ecs=0x00007f7ffffc61a0) at infrun.c:5694:7
-	        frame #8: 0x0000033b64a7c1a0 gdb`fetch_inferior_event() at infrun.c:4090:5
-	        frame #9: 0x0000033b64a51921 gdb`inferior_event_handler(event_type=INF_REG_EVENT) at inf-loop.c:41:7
-	        frame #10: 0x0000033b64a827c9 gdb`infrun_async_inferior_event_handler(data=0x0000000000000000) at infrun.c:9384:3
-	        frame #11: 0x0000033b6465bd4f gdb`check_async_event_handlers() at async-event.c:335:4
-	        frame #12: 0x0000033b65070917 gdb`gdb_do_one_event() at event-loop.cc:216:10
-	        frame #13: 0x0000033b64af0db1 gdb`start_event_loop() at main.c:421:13
-	        frame #14: 0x0000033b64aefe9a gdb`captured_command_loop() at main.c:481:3
-	        frame #15: 0x0000033b64aed5c2 gdb`captured_main(data=0x00007f7ffffc6470) at main.c:1353:4
-	        frame #16: 0x0000033b64aed4f2 gdb`gdb_main(args=0x00007f7ffffc6470) at main.c:1368:7
-	        frame #17: 0x0000033b6459d787 gdb`main(argc=5, argv=0x00007f7ffffc6518) at gdb.c:32:10
-	        frame #18: 0x0000033b6459d521 gdb`___start + 321
-
-	On BSDs, get_status is set in _initialize_x86_bsd_nat, but only if
-	HAVE_PT_GETDBREGS is defined.  PT_GETDBREGS doesn't exist on OpenBSD, so
-	get_status (and the other fields of x86_dr_low) are left as nullptr.
-
-	OpenBSD doesn't support getting or setting the x86 debug registers, so
-	fix by omitting debug register support entirely on OpenBSD:
-
-	- Change x86bsd_nat_target to only inherit from x86_nat_target if
-	  PT_GETDBREGS is supported.
-
-	- Don't include x86-nat.o and nat/x86-dregs.o for OpenBSD/amd64.  They
-	  were already omitted for OpenBSD/i386.
-
-2021-07-29  Carl Love  <cel@us.ibm.com>
-
-	Fix for gdb.tui/tui-layout-asm.exp
-	The width of the window is too narrow to display the entire assembly line.
-	The width of the columns in the window changes as the test walks thru the
-	terminal window output.  The column change results in the first and second
-	reads of the same line to differ thus causing the test to fail.  Increasing
-	the width of the window keeps the column width consistent thru the test.
-
-	If the test fails, the added check prints an message to the log file if
-	the failure may be due to the window being too narrow.
-
-	gdb/testsuite/ChangeLog
-
-		* gdb.tui/tui-layout-asm.exp: Replace window width of 80 with the
-		tui_asm_window_width variable for the width. Add if
-		count_whitespace check.
-		(count_whitespace): New proc
-
-2021-07-29  George Barrett  <bob@bob131.so>
-
-	guile/scm-math: indentation fixes
-	Changes the indenting of a few expressions in
-	vlscm_convert_typed_number to be better in line with the prevailing
-	code style.
-
-	gdb/ChangeLog:
-
-	2021-07-30  George Barrett  <bob@bob131.so>
-
-		* guile/scm-math.c (vlscm_convert_typed_number): Fix the
-		indentation of calls to gdbscm_make_out_of_range_error.
-
-	Change-Id: I7463998b77c17a00e88058e89b52fa029ee40e03
-
-2021-07-29  George Barrett  <bob@bob131.so>
-
-	guile: fix make-value with pointer type
-	Calling the `make-value' procedure with an integer value and a pointer
-	type for the #:type argument triggers a failed assertion in
-	`get_unsigned_type_max', as that function doesn't consider pointers to
-	be an unsigned type. This commit fixes the issue by adding a separate
-	code path for pointers.
-
-	As previously suggested, range checking is done using a new helper
-	function in gdbtypes.
-
-	gdb/ChangeLog:
-
-	2021-07-30  George Barrett  <bob@bob131.so>
-
-		* gdbtypes.h (get_pointer_type_max): Add declaration.
-		* gdbtypes.c (get_pointer_type_max): Add definition for new
-		helper function.
-		* guile/scm-math.c (vlscm_convert_typed_number): Add code path
-		for handling conversions to pointer types without failing an
-		assert.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-30  George Barrett  <bob@bob131.so>
-
-		* gdb.guile/scm-math.exp (test_value_numeric_ops): Add test
-		for creating pointers with make-value.
-		(test_make_pointer_value, test_pointer_numeric_range): Add
-		test procedures containing checks for integer-to-pointer
-		validation.
-
-	Change-Id: I9994dd1c848840a3d995f745e6d72867732049f0
-
-2021-07-29  George Barrett  <bob@bob131.so>
-
-	gdbtypes: return value from get_unsigned_type_max
-	Changes the signature of get_unsigned_type_max to return the computed
-	value rather than returning void and writing the value into a pointer
-	passed by the caller.
-
-	gdb/ChangeLog:
-
-	2021-07-30  George Barrett  <bob@bob131.so>
-
-		* gdbtypes.h (get_unsigned_type_max): Change signature to
-		return the result instead of accepting a pointer argument in
-		which to store the result.
-		* gdbtypes.c (get_unsigned_type_max): Likewise.
-		* guile/scm-math.c (vlscm_convert_typed_number): Update caller
-		of get_unsigned_type_max.
-		(vlscm_integer_fits_p): Likewise.
-
-	Change-Id: Ibb1bf0c0fa181fac7853147dfde082a7d1ae2323
-
-2021-07-29  Clément Chigot  <clement.chigot@atos.net>
-
-	gas: improve C_BSTAT and C_STSYM symbols handling on XCOFF
-	A C_BSTAT debug symbol specifies the beginning of a static block.
-	Its n_value is the index of the csect containing static symbols.
-	A C_STSYM debug symbol represents the stabstring of a statically
-	allocated symbol. Its n_value is the offset in the csect pointed
-	by the containing C_BSTAT.
-
-	These two special n_value were not correctly handled both when
-	generating object files with gas or when reading them with objdump.
-	This patch tries to improve that and, above all, to allow gas-generated
-	object files with such symbols to be accepted by AIX ld.
-
-	bfd/
-		* coff-bfd.c (bfd_coff_get_syment): Adjust n_value of symbols
-		having fix_value = 1 in order to be an index and not a memory
-		offset.
-		* coffgen.c (coff_get_symbol_info): Likewize.
-		(coff_print_symbol): Likewize.
-
-	gas/
-		* config/tc-ppc.c (ppc_frob_label): Don't change within if
-		already set.
-		(ppc_stabx): Remove workaround changing exp.X_add_symbol's
-		within.
-		* config/tc-ppc.h (struct ppc_tc_sy): Update comments.
-		* symbols.c (resolve_symbol_value): Remove symbol update
-		when final_val is 0 and it's an AIX debug symbol.
-		* testsuite/gas/ppc/aix.exp: Add new tests.
-		* testsuite/gas/ppc/xcoff-stsym-32.d: New test.
-		* testsuite/gas/ppc/xcoff-stsym-64.d: New test.
-		* testsuite/gas/ppc/xcoff-stsym.s: New test.
-
-2021-07-29  George Barrett  <bob@bob131.so>
-
-	Guile: temporary breakpoints
-	Adds API to the Guile bindings for creating temporary breakpoints and
-	querying whether an existing breakpoint object is temporary. This is
-	effectively a transliteration of the Python implementation.
-
-	It's worth noting that the added `is_temporary' flag is ignored in the
-	watchpoint registration path. This replicates the behaviour of the
-	Python implementation, but might be a bit surprising for users.
-
-	gdb/ChangeLog:
-
-	2021-06-09  George Barrett  <bob@bob131.so>
-
-		* guile/scm-breakpoint.c (gdbscm_breakpoint_object::spec): Add
-		is_temporary field.
-		(temporary_keyword): Add keyword object for make-breakpoint
-		argument parsing.
-		(gdbscm_make_breakpoint): Accept #:temporary keyword argument
-		and store the value in the allocated object's
-		spec.is_temporary.
-		(gdbscm_register_breakpoint_x): Pass the breakpoint's
-		spec.is_temporary value to create_breakpoint.
-		(gdbscm_breakpoint_temporary): Add breakpoint-temporary?
-		procedure implementation.
-		(breakpoint_functions::make-breakpoint): Update documentation
-		string and fix a typo.
-		(breakpoint_functions::breakpoint-temporary?): Add
-		breakpoint-temporary? procedure.
-		(gdbscm_initialize_breakpoints): Initialise temporary_keyword
-		variable.
-		NEWS (Guile API): Mention new temporary breakpoints API.
-
-	gdb/doc/ChangeLog:
-
-	2021-06-09  George Barrett  <bob@bob131.so>
-
-		* guile.texi (Breakpoints In Guile): Update make-breakpoint
-		documentation to reflect new #:temporary argument.
-		Add documentation for new breakpoint-temporary? procedure.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-06-09  George Barrett  <bob@bob131.so>
-
-		* gdb.guile/scm-breakpoint.exp: Add additional tests for
-		temporary breakpoints.
-
-	Change-Id: I2de332ee7c256f5591d7141ab3ad50d31b871d17
-
-2021-07-29  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-28  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: clean up some things in features/Makefile
-	Clean up some things I noticed:
-
-	 - we generate a regformats/microblaze-with-stack-protect.dat file.  I
-	   don't think this is used.  It could be used by a GDBserver built for
-	   Microblaze, but GDBserver isn't ported to Microblaze.  So I don't
-	   think that's used at all.  Remove the entry in features/Makefile and
-	   the file itself.
-
-	 - There are a bunch of *-expedite values in features/Makefile for
-	   architectures for which we don't generate dat files.  AFAIK, these
-	   *-expedite values are only used when generating dat files.  Remove
-	   those that are not necessary.
-
-	 - 32bit-segments.xml is not listed in the Makfile, but it's used.  This
-	   means that it wouldn't get re-generated if we were to change how C
-	   files are generated from the XML.  It looks like it was simply
-	   forgotten, add it.
-
-	Change-Id: I112d00db317102270e1df924473c37122ccb6c3a
-
-2021-07-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Simplify check for distinct TMM register operands
-	If any pair of operands in AMX instructions with 3 TMM register operands
-	are the same, the instruction will UD.  Don't call register_number to
-	check for distinct TMM register operands since all TMM register operands
-	have the same size.
-
-		* config/tc-i386.c (check_VecOperands): Remove register_number
-		call when checking for distinct TMM register operands.
-
-2021-07-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Run tmpdir/pr28138 only for native build
-		* PR ld/28138
-		* testsuite/ld-plugin/lto.exp: Run tmpdir/pr28138 only for
-		native build.
-
-2021-07-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Close the file descriptor if there is no archive fd
-	Close the file descriptor if there is no archive plugin file descriptor
-	to avoid running out of file descriptors on thin archives with many
-	archive members.
-
-	bfd/
-
-		PR ld/28138
-		* plugin.c (bfd_plugin_close_file_descriptor): Close the file
-		descriptor there is no archive plugin file descriptor.
-
-	ld/
-
-		PR ld/28138
-		* testsuite/ld-plugin/lto.exp: Run ld/28138 tests.
-		* testsuite/ld-plugin/pr28138.c: New file.
-		* testsuite/ld-plugin/pr28138-1.c: Likewise.
-		* testsuite/ld-plugin/pr28138-2.c: Likewise.
-		* testsuite/ld-plugin/pr28138-3.c: Likewise.
-		* testsuite/ld-plugin/pr28138-4.c: Likewise.
-		* testsuite/ld-plugin/pr28138-5.c: Likewise.
-		* testsuite/ld-plugin/pr28138-6.c: Likewise.
-		* testsuite/ld-plugin/pr28138-7.c: Likewise.
-
-2021-07-28  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Report error reason when a library cannot be found
-	With "ulimit -n 20", report:
-
-	ld: cannot find -lgcc: Too many open files
-
-	instead of
-
-	ld: cannot find -lgcc
-
-		* ldfile.c (ldfile_open_file): Rport error reason when a library
-		cannot be found.
-
-2021-07-28  Sergei Trofimovich  <siarheit@google.com>
-
-	texi2pod.pl: add no-op --no-split option support [PR28144]
-	Change 2faf902da ("generate single html manual page by default")
-	added use of --no-split option to makeinfo. binutils reuses
-	makeinfo options for texi2pod.pl wrapper. Unsupported option
-	led to silent manpage truncation.
-
-	The change adds no-op option support.
-
-	etc/
-
-		* texi2pod.pl: Handle no-op --no-split option.
-
-2021-07-28  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: fix missing space in some info variables output
-	Fixes PR gdb/28121.  When a user declares an array like this:
-
-	  int * const foo_1[3];
-
-	And in GDB the user does this:
-
-	  (gdb) info variables foo
-	  All variables matching regular expression "foo":
-
-	  File test.c:
-	  1:	int * constfoo_1[3];
-
-	Notice the missing space between 'const' and 'foo_1'.  This is fixed
-	in c_type_print_varspec_prefix (c-typeprint.c) by passing through the
-	flag that indicates if a trailing space is needed, rather than hard
-	coding the flag to false as we currently do.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28121
-
-2021-07-28  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix unhandled dwarf expression opcode with gcc-11 -gdwarf-5
-	[ I've confused things by forgetting to add -gdwarf-4 in $subject of
-	commit 0057a7ee0d9 "[gdb/testsuite] Add KFAILs for gdb.ada FAILs with
-	gcc-11".  So I'm adding here -gdwarf-5 in $subject, even though -gdwarf-5 is
-	the default for gcc-11.  I keep getting confused because of working with a
-	system gcc-11 compiler that was patched to switch the default back to
-	-gdwarf-4. ]
-
-	When running test-case gdb.ada/arrayptr.exp with gcc-11 (and default
-	-gdwarf-5), I run into:
-	...
-	(gdb) print pa_ptr.all^M
-	Unhandled dwarf expression opcode 0xff^M
-	(gdb) FAIL: gdb.ada/arrayptr.exp: scenario=all: print pa_ptr.all
-	...
-
-	What happens is that pa_ptr:
-	...
-	 <2><1523>: Abbrev Number: 3 (DW_TAG_variable)
-	    <1524>   DW_AT_name        : pa_ptr
-	    <1529>   DW_AT_type        : <0x14fa>
-	...
-	has type:
-	...
-	 <2><14fa>: Abbrev Number: 2 (DW_TAG_typedef)
-	    <14fb>   DW_AT_name        : foo__packed_array_ptr
-	    <1500>   DW_AT_type        : <0x1504>
-	 <2><1504>: Abbrev Number: 4 (DW_TAG_pointer_type)
-	    <1505>   DW_AT_byte_size   : 8
-	    <1505>   DW_AT_type        : <0x1509>
-	...
-	which is a pointer to a subrange:
-	...
-	 <2><1509>: Abbrev Number: 12 (DW_TAG_subrange_type)
-	    <150a>   DW_AT_lower_bound : 0
-	    <150b>   DW_AT_upper_bound : 0x3fffffffffffffffff
-	    <151b>   DW_AT_name        : foo__packed_array
-	    <151f>   DW_AT_type        : <0x15cc>
-	    <1523>   DW_AT_artificial  : 1
-	 <1><15cc>: Abbrev Number: 5 (DW_TAG_base_type)
-	    <15cd>   DW_AT_byte_size   : 16
-	    <15ce>   DW_AT_encoding    : 7      (unsigned)
-	    <15cf>   DW_AT_name        : long_long_long_unsigned
-	    <15d3>   DW_AT_artificial  : 1
-	...
-	with upper bound of form DW_FORM_data16.
-
-	In gdb/dwarf/attribute.h we have:
-	...
-	  /* Return non-zero if ATTR's value falls in the 'constant' class, or
-	     zero otherwise.  When this function returns true, you can apply
-	     the constant_value method to it.
-	     ...
-	     DW_FORM_data16 is not considered as constant_value cannot handle
-	     that.  */
-	  bool form_is_constant () const;
-	...
-	so instead we have attribute::form_is_block (DW_FORM_data16) == true.
-
-	Then in attr_to_dynamic_prop for the upper bound, we get a PROC_LOCEXPR
-	instead of a PROP_CONST and end up trying to evaluate the constant
-	0x3fffffffffffffffff as if it were a locexpr, which causes the
-	"Unhandled dwarf expression opcode 0xff".
-
-	In contrast, with -gdwarf-4 we have:
-	...
-	    <164c>   DW_AT_upper_bound : 18 byte block: \
-	      9e 10 ff ff ff ff ff ff ff ff 3f 0 0 0 0 0 0 0 \
-	      (DW_OP_implicit_value 16 byte block: \
-	        ff ff ff ff ff ff ff ff 3f 0 0 0 0 0 0 0 )
-	...
-
-	Fix the dwarf error by translating the DW_FORM_data16 constant into a
-	PROC_LOCEXPR, effectively by prepending 0x9e 0x10, such that we have same
-	result as with -gdwarf-4:
-	...
-	(gdb) print pa_ptr.all^M
-	That operation is not available on integers of more than 8 bytes.^M
-	(gdb) KFAIL: gdb.ada/arrayptr.exp: scenario=all: print pa_ptr.all \
-	  (PRMS: gdb/20991)
-	...
-
-	Tested on x86_64-linux, with gcc-11 and target board
-	unix/gdb:debug_flags=-gdwarf-5.
-
-	gdb/ChangeLog:
-
-	2021-07-25  Tom de Vries  <tdevries@suse.de>
-
-		* dwarf2/read.c (attr_to_dynamic_prop): Handle DW_FORM_data16.
-
-2021-07-28  will schmidt  <will_schmidt@vnet.ibm.com>
-
-	Externalize the _bfd_set_gp_value function
-	This change adds an external-visible wrapper for the _bfd_set_gp_value
-	function.  This is a prerequisite for some gdb patches that better
-	handle powerpc64le relocations against ".TOC.".
-
-		* bfd.c (bfd_set_gp_value): New externally visible wrapper
-		for _bfd_set_gp_value.
-		* bfd-in2.h: Regenerate.
-
-2021-07-28  Alan Modra  <amodra@gmail.com>
-
-	PowerPC: ignore sticky options for .machine
-	PowerPC gas and objdump for a long time have allowed certain -m/-M
-	options that extend a base cpu with extra functional units to be
-	specified before the base cpu.  For example, "-maltivec -mpower4" is
-	the same as "-mpower4 -maltivec".  See
-	https://sourceware.org/pipermail/binutils/2008-January/054935.html
-
-	It doesn't make as much sense that .machine keep any of these
-	"sticky" flags when handling a new base cpu.  See gcc PR101393.  I
-	think that instead .machine ought to override the command line.
-	That's what this patch does.  It is still possible to extend cpu
-	functionality with .machine.  For example the following can be
-	assembled when selecting a basic -mppc on the command line:
-		.machine power5
-		.machine altivec
-		frin 1,2
-		lvsr 3,4,5
-	Here, ".machine altivec" extends the ".machine power5" so that both
-	the power5 "frin" instruction and the altivec "lvsr" instruction are
-	enabled.  Swapping the two ".machine" directives would result in
-	failure to assemble "lvsr".
-
-	This change will expose some assembly errors, such as the one in
-	glibc/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c, a file
-	compiled with -maltivec but containing
-	  asm volatile (".machine push;\n"
-			".machine \"power5\";\n"
-			"vspltisb %0,0;\n"
-			"vspltisb %1,-1;\n"
-			"vpkuwus %0,%0,%1;\n"
-			"mfvscr %0;\n"
-			"stvx %0,0,%2;\n"
-			".machine pop;"
-			: "=v" (v0), "=v" (v1)
-			: "r" (vscr_ptr)
-			: "memory");
-	It's just wrong to choose power5 for a bunch of altivec instructions
-	and in fact all of those .machine directives are unnecessary.
-
-		* config/tc-ppc.c (ppc_machine): Don't use command line
-		sticky options.
-
-2021-07-28  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add xfail for PR gcc/101643
-	With gcc 8.5.0 I run into:
-	...
-	(gdb) print bad^M
-	$2 = (0 => 0 <repeats 25 times>)^M
-	(gdb) FAIL: gdb.ada/big_packed_array.exp: scenario=minimal: print bad
-	...
-	while with gcc 9.3.1 we have instead:
-	...
-	(gdb) print bad^M
-	$2 = (false <repeats 196 times>)^M
-	(gdb) PASS: gdb.ada/big_packed_array.exp: scenario=minimal: print bad
-	...
-
-	This is caused by gcc PR, which I've filed at
-	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101643 "[debug, ada] packed array
-	not described as packed".
-
-	Fix by marking this as XFAIL.
-
-	Tested on x86_64-linux.
-
-	gdb/ChangeLog:
-
-	2021-07-27  Tom de Vries  <tdevries@suse.de>
-
-		PR testsuite/26904
-		* gdb/testsuite/gdb.ada/big_packed_array.exp: Add xfail.
-
-2021-07-27  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add xfail for PR gcc/101633
-	With gcc 7.5.0, I run into:
-	...
-	(gdb) print objects^M
-	$1 = ((tag => object, values => ()), (tag => unused))^M
-	(gdb) FAIL: gdb.ada/array_of_variant.exp: scenario=minimal: print entire array
-	...
-	while with gcc 8.5.0 we have:
-	...
-	(gdb) print objects^M
-	$1 = ((tag => object, values => (2, 2, 2, 2, 2)), (tag => unused))^M
-	(gdb) PASS: gdb.ada/array_of_variant.exp: scenario=minimal: print entire array
-	...
-
-	This is due to a gcc PR, which I've filed at
-	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101633 "Bug 101633 - [debug]
-	DW_TAG_subrange_type missing DW_AT_upper_bound".
-
-	Fix by marking this and related FAILs as XFAIL.
-
-	Tested on x86_64-linux.
-
-	gdb/ChangeLog:
-
-	2021-07-27  Tom de Vries  <tdevries@suse.de>
-
-		PR testsuite/26903
-		* gdb/testsuite/gdb.ada/array_of_variant.exp: Add xfails.
-
-2021-07-27  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: remove VALUE_FRAME_ID and fix another frame debug issue
-	This commit was originally part of this patch series:
-
-	  (v1): https://sourceware.org/pipermail/gdb-patches/2021-May/179357.html
-	  (v2): https://sourceware.org/pipermail/gdb-patches/2021-June/180208.html
-	  (v3): https://sourceware.org/pipermail/gdb-patches/2021-July/181028.html
-
-	However, that series is being held up in review, so I wanted to break
-	out some of the non-related fixes in order to get these merged.
-
-	This commit addresses two semi-related issues, both of which are
-	problems exposed by using 'set debug frame on'.
-
-	The first issue is in frame.c in get_prev_frame_always_1, and was
-	introduced by this commit:
-
-	  commit a05a883fbaba69d0f80806e46a9457727fcbe74c
-	  Date:   Tue Jun 29 12:03:50 2021 -0400
-
-	      gdb: introduce frame_debug_printf
-
-	This commit replaced fprint_frame with frame_info::to_string.
-	However, the former could handle taking a nullptr while the later, a
-	member function, obviously requires a non-nullptr in order to make the
-	function call.  In one place we are not-guaranteed to have a
-	non-nullptr, and so, there is the possibility of triggering undefined
-	behaviour.
-
-	The second issue addressed in this commit has existed for a while in
-	GDB, and would cause this assertion:
-
-	  gdb/frame.c:622: internal-error: frame_id get_frame_id(frame_info*): Assertion `fi->this_id.p != frame_id_status::COMPUTING' failed.
-
-	We attempt to get the frame_id for a frame while we are computing the
-	frame_id for that same frame.
-
-	What happens is that when GDB stops we create a frame_info object for
-	the sentinel frame (frame #-1) and then we attempt to unwind this
-	frame to create a frame_info object for frame #0.
-
-	In the test case used here to expose the issue we have created a
-	Python frame unwinder.  In the Python unwinder we attemt to read the
-	program counter register.
-
-	Reading this register will initially create a lazy register value.
-	The frame-id stored in the lazy register value will be for the
-	sentinel frame (lazy register values hold the frame-id for the frame
-	from which the register will be unwound).
-
-	However, the Python unwinder does actually want to examine the value
-	of the program counter, and so the lazy register value is resolved
-	into a non-lazy value.  This sends GDB into value_fetch_lazy_register
-	in value.c.
-
-	Now, inside this function, if 'set debug frame on' is in effect, then
-	we want to print something like:
-
-	  frame=%d, regnum=%d(%s), ....
-
-	Where 'frame=%d' will be the relative frame level of the frame for
-	which the register is being fetched, so, in this case we would expect
-	to see 'frame=0', i.e. we are reading a register as it would be in
-	frame #0.  But, remember, the lazy register value actually holds the
-	frame-id for frame #-1 (the sentinel frame).
-
-	So, to get the frame_info for frame #0 we used to call:
-
-	  frame = frame_find_by_id (VALUE_FRAME_ID (val));
-
-	Where VALUE_FRAME_ID is:
-
-	  #define VALUE_FRAME_ID(val) (get_prev_frame_id_by_id (VALUE_NEXT_FRAME_ID (val)))
-
-	That is, we start with the frame-id for the next frame as obtained by
-	VALUE_NEXT_FRAME_ID, then call get_prev_frame_id_by_id to get the
-	frame-id of the previous frame.
-
-	The get_prev_frame_id_by_id function finds the frame_info for the
-	given frame-id (in this case frame #-1), calls get_prev_frame to get
-	the previous frame, and then calls get_frame_id.
-
-	The problem here is that calling get_frame_id requires that we know
-	the frame unwinder, so then have to try each frame unwinder in turn,
-	which would include the Python unwinder.... which is where we started,
-	and thus we have a loop!
-
-	To prevent this loop GDB has an assertion in place, which is what
-	actually triggers.
-
-	Solving the assertion failure is pretty easy, if we consider the code
-	in value_fetch_lazy_register and get_prev_frame_id_by_id then what we
-	do is:
-
-	  1. Start with a frame_id taken from a value,
-	  2. Lookup the corresponding frame,
-	  3. Find the previous frame,
-	  4. Get the frame_id for that frame, and
-	  5. Lookup the corresponding frame
-	  6. Print the frame's level
-
-	Notice that steps 3 and 5 give us the exact same result, step 4 is
-	just wasted effort.  We could shorten this process such that we drop
-	steps 4 and 5, thus:
-
-	  1. Start with a frame_id taken from a value,
-	  2. Lookup the corresponding frame,
-	  3. Find the previous frame,
-	  6. Print the frame's level
-
-	This will give the exact same frame as a result, and this is what I
-	have done in this patch by removing the use of VALUE_FRAME_ID from
-	value_fetch_lazy_register.
-
-	Out of curiosity I looked to see how widely VALUE_FRAME_ID was used,
-	and saw it was only used in one other place in valops.c:value_assign,
-	where, once again, we take the result of VALUE_FRAME_ID and pass it to
-	frame_find_by_id, thus introducing a redundant frame_id lookup.
-
-	I don't think the value_assign case risks triggering the assertion
-	though, as we are unlikely to call value_assign while computing the
-	frame_id for a frame, however, we could make value_assign slightly
-	more efficient, with no real additional complexity, by removing the
-	use of VALUE_FRAME_ID.
-
-	So, in this commit, I completely remove VALUE_FRAME_ID, and replace it
-	with a use of VALUE_NEXT_FRAME_ID, followed by a direct call to
-	get_prev_frame_always, this should make no difference in either case,
-	and resolves the assertion issue from value.c.
-
-	As I said, this patch was originally part of another series, the
-	original test relied on the fixes in that original series.  However, I
-	was able to create an alternative test for this issue by enabling
-	frame debug within an existing test script.
-
-	This commit probably fixes bug PR gdb/27938, though the bug doesn't
-	have a reproducer attached so it is not possible to know for sure.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27938
-
-2021-07-27  Chenghua Xu  <xuchenghua@loongson.cn>
-
-	Correct gs264e bfd_mach in mips_arch_choices.
-	opcodes/
-	    * mips-dis.c (mips_arch_choices): Correct gs264e bfd_mach.
-
-2021-07-27  Roland McGrath  <mcgrathr@google.com>
-
-	Fix ld test case that assumes --enable-textrel-check
-	ld/
-		* testsuite/ld-x86-64/x86-64.exp (Build textrel-1): Use --warn-textrel.
-
-2021-07-27  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-27  H.J. Lu  <hjl.tools@gmail.com>
-
-	bfd: Set error to bfd_error_malformed_archive only if unset
-	When reading an archive member, set error to bfd_error_malformed_archive
-	on open_nested_file failure only if the error is unset.
-
-		PR ld/28138
-		* archive.c (_bfd_get_elt_at_filepos): Don't set error to
-		bfd_error_malformed_archive if it has been set.
-
-2021-07-26  Carl Love  <cel@us.ibm.com>
-
-	Fix for mi-reverse.exp
-	This test fails on PPC64 because PPC64 prints the value of 3.5 with
-	more significant digits than on Intel. The patch updates the regular
-	expression to allow for more significant digits on the constant.
-
-	gdb/testsuite/ChangeLog
-
-		* gdb.mi/mi-reverse.exp: mi_execute_to exec-step reverse add check
-		for additional digits.
-
-2021-07-26  Tom Tromey  <tromey@adacore.com>
-
-	Fix the Windows build
-	The gdb build was broken on Windows after the patch to change
-	get_inferior_cwd.  This patch fixes the build.
-
-2021-07-26  Shahab Vahedi  <shahab@synopsys.com>
-
-	gdb: Fix numerical field extraction for target description "flags"
-	The "val_print_type_code_flags ()" function is responsible for
-	extraction of fields for "flags" data type.  These data types are
-	used when describing a custom register type in a target description
-	XML.  The logic used for the extraction though is not sound:
-
-	    unsigned field_len = TYPE_FIELD_BITSIZE (type, field);
-	    ULONGEST field_val
-	      = val >> (TYPE_FIELD_BITPOS (type, field) - field_len + 1);
-
-	TYPE_FIELD_BITSIZE: The bit length of the field to be extracted.
-	TYPE_FIELD_BITPOS:  The starting position of the field; 0 is LSB.
-	val:                The register value.
-
-	Imagine you have a field that starts at position 1 and its length
-	is 4 bits.  According to the third line of the code snippet the
-	shifting right would become "val >> -2", or "val >> 0xfff...fe"
-	to be precise.  That will result in a "field_val" of 0.
-
-	The correct extraction should be:
-
-	    ULONGEST field_val = val >> TYPE_FIELD_BITPOS (type, field);
-
-	The rest of the algorithm that masks out the higher bits is OK.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [10/10] arm: Alias 'ra_auth_code' to r12 for pacbti.
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (reg_names): Alias 'ra_auth_code' to r12.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [9/10] arm: add 'pacg' instruction for Armv8.1-M pacbti extension
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (T16_32_TAB): Add '_pacg'.
-		(do_t_pacbti_pacg): New function.
-		(insns): Define 'pacg' insn.
-		* testsuite/gas/arm/armv8_1-m-pacbti.d: Add 'pacg' test.
-		* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
-
-	opcodes/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm-dis.c (thumb32_opcodes): Add 'pacg'.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [8/10] arm: add 'autg' instruction for Armv8.1-M pacbti extension
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (T16_32_TAB): Add '_autg'.
-		(insns): Define 'autg' insn.
-		* testsuite/gas/arm/armv8_1-m-pacbti.d: Add autg test.
-		* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
-
-	opcodes/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm-dis.c (thumb32_opcodes): Add 'autg'.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [7/10] arm: add 'bxaut' instruction for Armv8.1-M pacbti extension
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (T16_32_TAB): Add '_bxaut'.
-		(do_t_pacbti_nonop): New function.
-		(insns): Define 'bxaut' insn.
-		* testsuite/gas/arm/armv8_1-m-pacbti.d: Add 'bxaut' test.
-		* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
-
-	opcodes/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm-dis.c (thumb32_opcodes): Add 'bxaut'.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [6/10] arm: Add -march=armv8.1-m.main+pacbti flag
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (pacbti_ext): Define.
-		(BAD_PACBTI): New macro.
-		(armv8_1m_main_ext_table): Add 'pacbti' extension.
-
-	include/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* opcode/arm.h (ARM_EXT3_PACBTI, ARM_AEXT3_V8_1M_MAIN_PACBTI): New
-		macro.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [5/10] arm: Extend again arm_feature_set struct to provide more bits
-	include/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* opcode/arm.h (arm_feature_set): Extend 'core' field.
-		(ARM_CPU_HAS_FEATURE, ARM_FSET_CPU_SUBSET, ARM_CPU_IS_ANY)
-		(ARM_MERGE_FEATURE_SETS, ARM_CLEAR_FEATURE, ARM_FEATURE_EQUAL)
-		(ARM_FEATURE_ZERO, ARM_FEATURE_CORE_EQUAL): Account for
-		'core[2]'.
-		(ARM_FEATURE_CORE_HIGH_HIGH): New macro.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [4/10] arm: add 'pac' instruction for Armv8.1-M pacbti extension
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (T16_32_TAB): Add '_pac'.
-		(insns): Add 'pac' insn.
-		* testsuite/gas/arm/armv8_1-m-pacbti-bad.l: Add pac tests.
-		* testsuite/gas/arm/armv8_1-m-pacbti-bad.s: Likewise.
-		* testsuite/gas/arm/armv8_1-m-pacbti.d: Likewise.
-		* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
-
-	opcodes/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm-dis.c (thumb32_opcodes): Add 'pac'.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [3/10] arm: add 'aut' instruction for Armv8.1-M pacbti extension
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (insns): Add 'aut.'
-		(T16_32_TAB): Add '_aut'.
-		* testsuite/gas/arm/armv8_1-m-pacbti-bad.l: Add 'aut' tests.
-		* testsuite/gas/arm/armv8_1-m-pacbti-bad.s: Likewise.
-		* testsuite/gas/arm/armv8_1-m-pacbti.d: Likewise.
-		* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
-
-	opcodes/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm-dis.c (thumb32_opcodes): Add 'aut'.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [2/10] arm: add 'pacbti' instruction for Armv8.1-M pacbti extension
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c
-		(enum operand_parse_code): Add OP_SP and OP_R12.
-		(parse_operands): Add switch cases for OP_SP and OP_R12.
-		(T16_32_TAB): Add '_pacbti'.
-		(do_t_pacbti): New function.
-		(insns): Add 'pacbti'.
-		* testsuite/gas/arm/armv8_1-m-pacbti-bad.d: New file.
-		* testsuite/gas/arm/armv8_1-m-pacbti-bad.l: Likewise.
-		* testsuite/gas/arm/armv8_1-m-pacbti-bad.s: Likewise.
-		* testsuite/gas/arm/armv8_1-m-pacbti.d: Add 'pacbti' to testcase.
-		* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
-
-	opcodes/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm-dis.c (thumb32_opcodes): Add 'pacbti' instruction.
-
-2021-07-26  Andrea Corallo  <andrea.corallo@arm.com>
-
-	PATCH [1/10] arm: add 'bti' instruction for Armv8.1-M pacbti extension
-	gas/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* config/tc-arm.c (insns): Add 'bti' insn.
-		* testsuite/gas/arm/armv8_1-m-pacbti.d: New file.
-		* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
-
-	opcodes/
-	2021-06-11  Andrea Corallo  <andrea.corallo@arm.com>
-
-		* arm-dis.c (thumb32_opcodes): Add bti instruction.
-
-2021-07-26  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb: move remaining ChangeLogs to legacy files
-	In commit:
-
-	  commit f069ea46a03ae868581d1c852da28e979ea1245a
-	  Date:   Sat Jul 3 16:29:08 2021 -0700
-
-	      Rename gdb/ChangeLog to gdb/ChangeLog-2021
-
-	The gdb/ChangeLog file was renamed, but all of the other ChangeLog
-	files relating to gdb were left in place.
-
-	As I understand things, the no ChangeLogs policy applies to all the
-	GDB related directories, so this commit renames all of the remaining
-	GDB related ChangeLog files.
-
-	As with the original commit, the intention behind this commit is to
-	hopefully stop people merging ChangeLog entries by mistake.
-
-	The renames carried out in this commit are:
-
-	    gdb/doc/ChangeLog -> gdb/doc/ChangeLog-1991-2021
-	    gdb/stubs/ChangeLog -> gdb/stubs/ChangeLog-2012-2020
-	    gdb/testsuite/ChangeLog -> gdb/testsuite/ChangeLog-2014-2021
-	    gdbserver/ChangeLog -> gdbserver/ChangeLog-2002-2021
-	    gdbsupport/ChangeLog -> gdbsupport/ChangeLog-2020-2021
-
-2021-07-26  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	gdb/mi: handle no condition argument case for -break-condition
-	As reported in PR gdb/28076 [1], passing no condition argument to the
-	-break-condition command (e.g.: "-break-condition 2") should clear the
-	condition for breakpoint 2, just like CLI's "condition 2", but instead
-	an error message is returned:
-
-	  ^error,msg="-break-condition: Missing the <number> and/or <expr> argument"
-
-	The current implementation of the -break-condition command's argument
-	handling (79aabb7308c "gdb/mi: add a '--force' flag to the
-	'-break-condition' command") was done according to the documentation,
-	where the condition argument seemed mandatory.  However, the
-	-break-condition command originally (i.e. before the 79aabb7308c
-	patch) used the CLI's "cond" command, and back then not passing a
-	condition argument was clearing out the condition.  So, this is a
-	regression in terms of the behavior.
-
-	Fix the argument handling of the -break-condition command to allow not
-	having a condition argument, and also update the document to make the
-	behavior clear.  Also add test cases to test the scenarios which were
-	previously not covered.
-
-	[1] https://sourceware.org/bugzilla/show_bug.cgi?id=28076
-
-2021-07-26  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-25  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-24  Alan Modra  <amodra@gmail.com>
-
-	Revert: PowerPC: Don't generate unused section symbols
-	Blindly following x86 broke linux kernel builds.
-
-	bfd/
-		* elf32-ppc.c (TARGET_KEEP_UNUSED_SECTION_SYMBOLS): Define as true.
-		* elf64-ppc.c (TARGET_KEEP_UNUSED_SECTION_SYMBOLS): Likewise.
-	gas/
-		* testsuite/gas/ppc/power4.d: Adjust for section sym change.
-		* testsuite/gas/ppc/test1elf32.d: Likewise.
-		* testsuite/gas/ppc/test1elf64.d: Likewise.
-	ld/
-		* testsuite/ld-powerpc/tlsexe.r: Adjust for section sym change.
-		* testsuite/ld-powerpc/tlsexe32.r: Likewise.
-		* testsuite/ld-powerpc/tlsexe32no.r: Likewise.
-		* testsuite/ld-powerpc/tlsexeno.r: Likewise.
-		* testsuite/ld-powerpc/tlsexenors.r: Likewise.
-		* testsuite/ld-powerpc/tlsexers.r: Likewise.
-		* testsuite/ld-powerpc/tlsexetoc.r: Likewise.
-		* testsuite/ld-powerpc/tlsexetocrs.r: Likewise.
-		* testsuite/ld-powerpc/tlsget.d: Likewise.
-		* testsuite/ld-powerpc/tlsget.wf: Likewise.
-		* testsuite/ld-powerpc/tlsget2.d: Likewise.
-		* testsuite/ld-powerpc/tlsget2.wf: Likewise.
-		* testsuite/ld-powerpc/tlsso.r: Likewise.
-		* testsuite/ld-powerpc/tlsso32.r: Likewise.
-		* testsuite/ld-powerpc/tlstocso.r: Likewise.
-
-2021-07-24  Alan Modra  <amodra@gmail.com>
-
-	Re: ld script expression parsing
-	Commit 40726f16a8d7 broke references to sections within ADDR(), and
-	overlays with weird section names.
-
-		* ldgram.y (paren_script_name): New rule.
-		(exp): Use it for ALIGNOF, SIZEOF, ADDR, and LOADADDR.  Similarly
-		ensure script mode parsing for section name in SEGMENT_START.
-		(overlay_section): Delete unnecessary ldlex_script call.  Backup
-		on a lookahead NAME parsed in expression mode.
-		* testsuite/ld-elf/overlay.s: Add more sections.
-		* testsuite/ld-elf/overlay.t: Test '-' in section names.
-
-2021-07-24  Frederic Cambus  <fred@statdns.com>
-
-	Update the NetBSD system call table to match NetBSD-current.
-	Generated from sys/sys/syscall.h revision 1.319.
-
-	We can safely remove the _lwp_gettid syscall, which was never exposed
-	in libc and never made it into a release.
-
-	gdb/ChangeLog:
-
-	2021-07-23  Frederic Cambus  <fred@statdns.com>
-
-		* syscalls/netbsd.xml: Regenerate.
-
-2021-07-24  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: test get/set value of unregistered Guile parameter
-	When creating a parameter in Guile, you have to create it using
-	make-parameter and then register it with GDB with register-parameter!.
-	In between, it's still possible (though not documented) to set the
-	parameter's value.  I broke this use case by mistake while writing this
-	series, so thought it would be good to have a test for it.
-
-	I suppose that people could use this "feature" to give their parameter
-	an initial value, even though make-parameter has an initial-value
-	parameter for this.  Nevertheless, changing this behavior could break
-	some scripts, which is why I think it's important for it to be tested.
-
-	Change-Id: I5b2103e3cec0cfdcccf7ffb00eb05fed8626e66d
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove cmd_list_element::function::sfunc
-	I don't understand what the sfunc function type in
-	cmd_list_element::function is for.  Compared to cmd_simple_func_ftype,
-	it has an extra cmd_list_element parameter, giving the callback access
-	to the cmd_list_element for the command being invoked.  This allows
-	registering the same callback with many commands, and alter the behavior
-	using the cmd_list_element's context.
-
-	From the comment in cmd_list_element, it sounds like at some point it
-	was the callback function type for set and show functions, hence the
-	"s".  But nowadays, it's used for many more commands that need to access
-	the cmd_list_element object (see add_catch_command for example).
-
-	I don't really see the point of having sfunc at all, since do_sfunc is
-	just a trivial shim that changes the order of the arguments.  All
-	commands using sfunc could just as well set cmd_list_element::func to
-	their callback directly.
-
-	Therefore, remove the sfunc field in cmd_list_element and everything
-	that goes with it.  Rename cmd_const_sfunc_ftype to cmd_func_ftype and
-	use it for cmd_list_element::func, as well as for the add_setshow
-	commands.
-
-	Change-Id: I1eb96326c9b511c293c76996cea0ebc51c70fac0
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: rename cfunc to simple_func
-	After browsing the CLI code for quite a while and trying really hard, I
-	reached the conclusion that I can't give a meaningful explanation of
-	what "sfunc" and "cfunc" functions are, in cmd_list_element.  I don't
-	see a logic at all.  That makes it very difficult to do any kind of
-	change.  Unless somebody can make sense out of all that, I'd like to try
-	to retro-fit some logic in the cmd_list_element callback function code
-	so that we can understand what is going on, do some cleanups and add new
-	features.
-
-	The first change is about "cfunc".  I can't figure out what the "c" in
-	cfunc means.  It's not const, because there's already "const" in
-	"cmd_const_cfunc_ftype", and the previous "cmd_cfunc_ftype" had nothing
-	const..  It's not "cmd" or "command", because there's already "cmd" in
-	"cmd_const_cfunc_ftype".
-
-	The "main" command callback, cmd_list_element::func, has three
-	parameters, whereas cfunc has two.  It is missing the cmd_list_element
-	parameter.  So the only reason I see for cfunc to exist is to be a shim
-	between the three and two parameter versions.  Most commands don't need
-	to receive the cmd_list_element object, so adding it everywhere would be
-	long and would just add more unnecessary boilerplate.  So since this is
-	the "simple" version of the callback, compared to the "full", I suggest
-	renaming cmd_const_cfunc_ftype into cmd_simple_func_ftype, as well as
-	everything (like the utility functions) that goes with it.
-
-	Change-Id: I4e46cacfd77a66bc1cbf683f6a362072504b7868
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make inferior::m_terminal an std::string
-	Same idea as the previous patch, but for m_terminal.
-
-	Change-Id: If9367d5db8c976a4336680adca4ea5bc31ab64d2
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make inferior::m_cwd an std::string
-	Same idea as the previous patch, but for m_cwd.
-
-	To keep things consistent across the board, change get_inferior_cwd as
-	well, which is shared with GDBserver.  So update the related GDBserver
-	code too.
-
-	Change-Id: Ia2c047fda738d45f3d18bc999eb67ceb8400ce4e
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make inferior::m_args an std::string
-	With the current code, both a NULL pointer and an empty string can mean
-	"no arguments".  We don't need this distinction.  Changing to a string
-	has the advantage that there is now a single state for that (an empty
-	string), which makes the code a bit simpler in my opinion.
-
-	Change-Id: Icdc622820f7869478791dbaa84b4a1c7fec21ced
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add setter/getter for inferior cwd
-	Add cwd/set_cwd to the inferior class, remove set_inferior_args.
-	Keep get_inferior_args, because it is used from fork_inferior, in shared
-	code.  The cwd could eventually be passed as a parameter eventually,
-	though, I think that would be cleaner.
-
-	Change-Id: Ifb72ea865d7e6f9a491308f0d5c1595579d8427e
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add setter/getter for inferior arguments
-	Add args/set_args to the inferior class, remove the set_inferior_args
-	and get_inferior_args functions, that would just be wrappers around
-	them.
-
-	Change-Id: If87d52f3402ce08be26c32897ae8915d9f6d1ea3
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: remove inferior::{argc,argv}
-	There are currently two states that the inferior args can be stored.
-	The main one is the `args` field, where they are stored as a single
-	string.  The other one is the `argc`/`argv` fields.
-
-	This last one is only used for arguments passed in GDB's
-	command line.  And the only outcome is that when get_inferior_args is
-	called, `argc`/`argv` are serialized into `args`.  So really,
-	`argc`/`argv` is just a staging area before moving the arguments in
-	`args`.
-
-	Simplify this by only keeping the `args` field.  Change
-	set_inferior_args_vector to immediately serialize the arguments into
-	`args`, work that would be done in get_inferior_args later anyway.
-
-	The only time where this work would be "wasted" is when the user passes
-	some arguments on the command line, but does not end up running the
-	program.  But that just seems unlikely.  And it's not that much work.
-
-	Change-Id: Ica0b9859397c095f6530350c8fb3c36905f2044a
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: un-share set_inferior_cwd declaration
-	The declaration of set_inferior_cwd is currently shared between gdb and
-	gdbserver, in gdbsupport/common-inferior.h.  It doesn't need to be, as
-	set_inferior_cwd is not called from common code.  Only get_inferior_cwd
-	needs to.
-
-	The motivation for this is that a future patch will change the prototype
-	of set_inferior_cwd in gdb, and I don't want to change it for gdbserver
-	unnecessarily.  I see this as a good cleanup in any case, to reduce to
-	just the essential what is shared between GDB and GDBserver.
-
-	Change-Id: I3127d27d078f0503ebf5ccc6fddf14f212426a73
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb.base/setshow.exp: fix duplicate test name
-	Fix:
-
-	    DUPLICATE: gdb.base/setshow.exp: test_setshow_args: show args
-
-	by giving some explicit test names.
-
-	Change-Id: I2a738d3d3675ab9b45929e71f5aee0ea6bf92072
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb.base/setshow.exp: split in procs
-	Split in multiple procs, one per topic, and start with a fresh GDB in
-	each.  I find it easier to work on a test with multiple smaller
-	independent test procedures.  For example, it's possible to comment all
-	but one when working on one.  It's also easier to add things without
-	having to think about the impact on existing tests, and vice-versa.
-
-	Change-Id: I19691eed8f9bcb975b2eeff7577cac66251bcbe2
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb.base/setshow.exp: use save_vars to save/restore gdb_prompt
-	Using save_vars is a bit better than what we have now, as it ensures the
-	variable gets restored if the code within it throws an error.
-
-	Change-Id: I3bd6836e5b7efb61b078acadff1a1c8182c19a27
-
-2021-07-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: split gdb.python/py-parameter.exp in procs
-	Split the file into multiple independent test procs, where each proc
-	starts with a fresh GDB.  I find it easier to understand what a test is
-	doing when each part of the test is isolated and self-contained.  It
-	makes it easier to comment out some parts of the test while working /
-	debugging a specific part.  It also makes it easier to add new things
-	(which a subsequent patch will do) without fear of impacting another part
-	of the test.
-
-	Change-Id: I8b4d52ac82b1492d79b679e13914ed177d8a836d
-
-2021-07-23  Carl Love  <cel@us.ibm.com>
-
-	Fix for gdb.python/py-breakpoint.exp
-	Not all systems have hardware breakpoint support.  Add a check
-	to see if the system supports hardware breakpoints.
-
-	gdb/testsuite/ChangeLog
-
-		* gdb.python/py-breakpoint.exp (test_hardware_breakpoints): Add
-		check for hardware breakpoint support.
-
-2021-07-23  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	gdb/testsuite: don't error when trying to unset last_spawn_tty_name
-	In spawn_capture_tty_name (lib/gdb.exp) we either set or unset
-	last_spawn_tty_name depending on whether spawn_out(slave,name) exists
-	or not.
-
-	One situation that might cause spawn_out(slave,name) to not exists is
-	if the spawn function is called with the argument -leaveopen, which is
-	how it is called when processes are created as part of a pipeline, the
-	created process has no tty, instead its output is written to a file
-	descriptor.
-
-	If a pipeline is created consisting of multiple processes then there
-	will be multiple sequential calls to spawn, all using -leaveopen.  The
-	first of these calls is fine, spawn_out(slave,name) is not set, and so
-	in spawn_capture_tty_name we unset last_spawn_tty_name.  However, on
-	the second call to spawn, spawn_out(slave,name) is still not set and
-	so in spawn_capture_tty_name we again try to unset
-	last_spawn_tty_name, this now throws an error (as last_spawn_tty_name
-	is already unset).
-
-	Fix this issue by using -nocomplain with the call to unset in
-	spawn_capture_tty_name.
-
-	Before this commit I was seeing gdb.base/gnu-debugdata.exp report 1
-	pass, and 1 unsupported test.  After this commit I now see 16 passes
-	from this test script.
-
-	I have also improved the code that used to do this:
-
-	    if { [info exists spawn_out] } {
-		set ::last_spawn_tty_name $spawn_out(slave,name)
-	    } else {
-	        ...
-	    }
-
-	The problem here is that we check for the existence of spawn_out, and
-	then unconditionally read spawn_out(slave,name).  A situation could
-	arise where some other element of spawn_out is set,
-	e.g. spawn_out(foo), in which case we would enter the if block and try
-	to read a non-existent variable.  After this commit we now check
-	specifically for spawn_out(slave,name).
-
-	Finally, it is worth noting that before this issue was fixed runtest
-	itself, or rather the expect process behind runtest, would segfault
-	while exiting.  I haven't looked at all into what the problem is here
-	that caused expect to crash, as fixing the bug in GDB's testing
-	scripts made the segfault go away.
-
-2021-07-23  Jan Beulich  <jbeulich@suse.com>
-
-	x86: express unduly set rounding control bits in disassembly
-	While EVEX.L'L are indeed ignored when EVEX.b stands for just SAE,
-	EVEX.b itself is not ignored when an insn permits neither rounding
-	control nor SAE.
-
-	While changing this aspect of EVEX.b handling, also alter unduly set
-	embedded broadcast: Don't call BadOp(), screwing up subsequent
-	disassembly, but emit "{bad}" instead.
-
-2021-07-23  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-22  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAILs due to PR gcc/101575
-	When running test-case gdb.ada/formatted_ref.exp with gcc-11 and target board
-	unix/gdb:debug_flags=-gdwarf-4 we run into:
-	...
-	(gdb) print/x s^M
-	No definition of "s" in current context.^M
-	(gdb) FAIL: gdb.ada/formatted_ref.exp: print/x s
-	...
-	which is caused by "runto defs.adb:20" taking us to defs__struct1IP:
-	...
-	(gdb) break defs.adb:20^M
-	Breakpoint 1 at 0x402cfd: defs.adb:20. (2 locations)^M
-	(gdb) run ^M
-	Starting program: formatted_ref ^M
-	^M
-	Breakpoint 1, defs__struct1IP () at defs.adb:20^M
-	20            return s.x;                   -- Set breakpoint marker here.^M
-	(gdb) print s1'access^M
-	...
-	instead of the expected defs.f1:
-	...
-	(gdb) break defs.adb:20^M
-	Breakpoint 1 at 0x402d0e: file defs.adb, line 20.^M
-	(gdb) run ^M
-	Starting program: formatted_ref ^M
-	^M
-	Breakpoint 1, defs.f1 (s=...) at defs.adb:20^M
-	20            return s.x;                   -- Set breakpoint marker here.^M
-	...
-
-	This is caused by incorrect line info due to gcc PR 101575 - "[gcc-11,
-	-gdwarf-4] Missing .file <n> directive causes invalid line info".
-
-	Fix this by when landing in defs__struct1IP:
-	- xfailing the runto, and
-	- issuing a continue to land in defs.f1.
-
-	Likewise in a few other test-cases.
-
-	Tested on x86_64-linux, with:
-	- system gcc.
-	- gcc-11 and target boards unix/gdb:debug_flags=-gdwarf-4 and
-	  unix/gdb:debug_flags=-gdwarf-5.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-22  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.ada/formatted_ref.exp: Add xfail for PR gcc/101575.
-		* gdb.ada/iwide.exp: Same.
-		* gdb.ada/pkd_arr_elem.exp: Same.
-
-2021-07-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop dq{b,d}_mode
-	Their sole use is for {,V}EXTRACTPS / {,V}P{EXT,INS}RB respectively; for
-	consistency also limit use of dqw_mode to Jdqw. 64-bit disassembly
-	reflecting REX.W / VEX.W is not in line with the assembler's opcode
-	table having NoRex64 / VexWIG in all respective templates, i.e. assembly
-	input isn't being honored there either. Obviously the 0FC5 encodings of
-	{,V}PEXTRW then also need adjustment for consistency reasons.
-
-	x86: drop vex_scalar_w_dq_mode
-	It has only a single use and can easily be represented by dq_mode
-	instead. Plus its handling in intel_operand_size() was duplicating
-	that of vex_vsib_{d,q}_w_dq_mode anyway.
-
-	x86: drop xmm_m{b,w,d,q}_mode
-	They're effectively redundant with {b,w,d,q}_mode.
-
-	x86: fold duplicate vector register printing code
-	The bulk of OP_XMM() can be easily reused also for OP_EX(). Break the
-	shared logic out of the function, and invoke the new helper from both
-	places.
-
-	x86: drop vex_mode and vex_scalar_mode
-	These are fully redundant with, respectively, x_mode and scalar_mode.
-
-	x86: correct EVEX.V' handling outside of 64-bit mode
-	Unlike the high bit of VEX.vvvv / EVEX.vvvv, EVEX.V' is not ignored
-	outside of 64-bit mode. Oddly enough there already are tests for these
-	cases, but their expectations were wrong. (This may have been based on
-	an old SDM version, where the restriction wasn't properly spelled out.)
-
-	x86: fold duplicate code in MOVSXD_Fixup()
-	There's no need to have two paths printing the "xd" mnemonic suffix.
-
-	x86: fold duplicate register printing code
-	What so far was OP_E_register() can be easily reused also for OP_G().
-	Add suitable parameters to the function and move the invocation of
-	swap_operand() to OP_E(). Adjust MOVSXD's first operand: There never was
-	a need to use movsxd_mode there, and its use gets in the way of the code
-	folding.
-
-	x86-64: properly bounds-check %bnd<N> in OP_G()
-	The restriction to %bnd0-%bnd3 requires to also check REX.R is clear,
-	just like OP_E_Register() also includes REX.B in its check.
-
-	x86-64: generalize OP_G()'s EVEX.R' handling
-	EVEX.R' is invalid to be clear not only for mask registers, but also for
-	GPRs - IOW everything handled in this function.
-
-2021-07-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: correct VCVT{,U}SI2SD rounding mode handling
-	With EVEX.W clear the instruction doesn't ignore the rounding mode, but
-	(like for other insns without rounding semantics) EVEX.b set causes #UD.
-	Hence the handling of EVEX.W needs to be done when processing
-	evex_rounding_64_mode, not at the decode stages.
-
-	Derive a new 64-bit testcase from the 32-bit one to cover the different
-	EVEX.W treatment in both cases.
-
-2021-07-22  Jan Beulich  <jbeulich@suse.com>
-
-	x86: drop OP_Mask()
-	By moving its vex.r check there it becomes fully redundant with OP_G().
-
-2021-07-22  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.cp/step-and-next-inline.exp with gcc-11
-	When running test-case gdb.cp/step-and-next-inline.exp with gcc-11, I run
-	into:
-	...
-	KPASS: gdb.cp/step-and-next-inline.exp: no_header: next step 1 \
-	  (PRMS symtab/25507)
-	FAIL: gdb.cp/step-and-next-inline.exp: no_header: next step 2
-	KPASS: gdb.cp/step-and-next-inline.exp: no_header: next step 3 \
-	  (PRMS symtab/25507)
-	...
-
-	[ Note that I get the same result with gcc-11 and target board
-	unix/gdb:debug_flags=-gdwarf-4, so this is not a dwarf 4 vs 5 issue. ]
-
-	With gcc-10, I have this trace:
-	...
-	64        get_alias_set (&xx);
-	get_alias_set (t=0x601038 <xx>) at step-and-next-inline.cc:51
-	51        if (t != NULL
-	40        if (t->x != i)
-	52            && TREE_TYPE (t).z != 1
-	43        return x;
-	53            && TREE_TYPE (t).z != 2
-	43        return x;
-	54            && TREE_TYPE (t).z != 3)
-	43        return x;
-	main () at step-and-next-inline.cc:65
-	65        return 0;
-	...
-	and with gcc-11, I have instead:
-	...
-	64        get_alias_set (&xx);
-	get_alias_set (t=0x601038 <xx>) at step-and-next-inline.cc:51
-	51        if (t != NULL
-	52            && TREE_TYPE (t).z != 1
-	43        return x;
-	53            && TREE_TYPE (t).z != 2
-	43        return x;
-	54            && TREE_TYPE (t).z != 3)
-	43        return x;
-	main () at step-and-next-inline.cc:65
-	65        return 0;
-	...
-	and with clang-10, I have instead:
-	...
-	64        get_alias_set (&xx);
-	get_alias_set (t=0x601034 <xx>) at step-and-next-inline.cc:51
-	51        if (t != NULL
-	52            && TREE_TYPE (t).z != 1
-	53            && TREE_TYPE (t).z != 2
-	54            && TREE_TYPE (t).z != 3)
-	51        if (t != NULL
-	57      }
-	main () at step-and-next-inline.cc:65
-	65        return 0;
-	...
-
-	The test-case tries to verify that we don't step into inlined function
-	tree_check (lines 40-43) (so, with the clang trace we get that right).
-
-	The test-case then tries to kfail the problems when using gcc, but this is
-	done in such a way that the testing still gets out of sync after a failure.
-	That is: the "next step 2" check that is supposed to match
-	"TREE_TYPE (t).z != 2" is actually matching "TREE_TYPE (t).z != 1":
-	...
-	(gdb) next^M
-	52            && TREE_TYPE (t).z != 1^M
-	(gdb) PASS: gdb.cp/step-and-next-inline.exp: no_header: next step 2
-	...
-
-	Fix this by issuing extra nexts to arrive at the required lines.
-
-	Tested on x86_64-linux, with gcc-8, gcc-9, gcc-10, gcc-11, clang-8, clang-10
-	and clang-12.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-20  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.cp/step-and-next-inline.cc (tree_check, get_alias_set, main):
-		Tag closing brace with comment.
-		* gdb.cp/step-and-next-inline.h: Update to keep identical with
-		step-and-next-inline.cc.
-		* gdb.cp/step-and-next-inline.exp: Issue extra next when required.
-
-2021-07-21  Nick Clifton  <nickc@redhat.com>
-
-	Updated Russian translation for the bfd library
-
-2021-07-21  Luca Boccassi  <luca.boccassi@microsoft.com>
-
-	Allows linker scripts to set the SEC_READONLY flag.
-	* ld.texi: Document new output section type.
-	* ldgram.y: Add new token.
-	* ldlang.c: Handle the new flag.
-	* ldlang.h: Add readonly_section to list of section types.
-	* ldlex.l: Add a new identifier.
-	* testsuite/ld-scripts/output-section-types.t: New example linker script.
-	* testsuite/ld-scripts/output-section-types.d: Test driver.
-	* testsyute/ld-scripts/script.exp: Run the new test.
-
-2021-07-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix FAILs due to PR gcc/101452
-	When running test-case gdb.base/ptype-offsets.exp with gcc-11 (with -gdwarf-5
-	default) or gcc-10 with target board unix/gdb:debug_flags=-gdwarf-5 we run
-	into this regression:
-	...
-	 (gdb) ptype/o static_member^M
-	 /* offset      |    size */  type = struct static_member {^M
-	-                               static static_member Empty;^M
-	 /*      0      |       4 */    int abc;^M
-	 ^M
-	                                /* total size (bytes):    4 */^M
-	                              }^M
-	-(gdb) PASS: gdb.base/ptype-offsets.exp: ptype/o static_member
-	+(gdb) FAIL: gdb.base/ptype-offsets.exp: ptype/o static_member
-	...
-
-	This is caused by missing debug info, which I filed as gcc PR101452 - "[debug,
-	dwarf-5] undefined static member removed by
-	-feliminate-unused-debug-symbols".
-
-	It's not clear yet whether this is a bug or a feature, but work around this in
-	the test-cases by:
-	- defining the static member
-	- adding additional_flags=-fno-eliminate-unused-debug-types.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-20  Tom de Vries  <tdevries@suse.de>
-
-		* lib/gdb.exp (gcc_major_version): New proc.
-		* gdb.base/ptype-offsets.cc: Define static member static_member::Empty.
-		* gdb.cp/templates.exp: Define static member using -DGCC_BUG.
-		* gdb.cp/m-static.exp: Add
-		additional_flags=-fno-eliminate-unused-debug-types.
-		* gdb.cp/pr-574.exp: Same.
-		* gdb.cp/pr9167.exp: Same.
-
-2021-07-21  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add KFAILs for gdb.ada FAILs with gcc-11
-	With gcc-11 we run into:
-	...
-	(gdb) print pa_ptr.all^M
-	That operation is not available on integers of more than 8 bytes.^M
-	(gdb) KFAIL: gdb.ada/arrayptr.exp: scenario=all: print pa_ptr.all (PRMS: gdb/20991)
-	...
-
-	This is due to PR exp/20991 - "__int128 type support".  Mark this and similar
-	FAILs as KFAIL.
-
-	Also mark this FAIL:
-	....
-	(gdb) print pa_ptr(3)^M
-	cannot subscript or call something of type `foo__packed_array_ptr'^M
-	(gdb) FAIL: gdb.ada/arrayptr.exp: scenario=minimal: print pa_ptr(3)
-	...
-	as a KFAIL for PR ada/28115 - "Support packed array encoded as
-	DW_TAG_subrange_type".
-
-	Tested on x86_64-linux, with gcc-10 and gcc-11.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-21  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.ada/arrayptr.exp: Add KFAILs for PR20991 and PR28115.
-		* gdb.ada/exprs.exp: Add KFAILs for PR20991.
-		* gdb.ada/packed_array_assign.exp: Same.
-
-2021-07-21  Alan Modra  <amodra@gmail.com>
-
-	as_bad_subtract
-	Many places report errors of the nature "can't resolve a - b".
-	This provides a utility function to report such errors consistently.
-	I removed the section reporting and quotes around symbol names while I
-	was at it.  Compare
-	ifunc-2.s:4: Error: can't resolve `bar1' {.text.1 section} - `foo1' {.text.1 section}
-	with
-	ifunc-2.s:4: Error: can't resolve bar1 - foo1
-
-	In many cases the section names don't help the user very much in
-	figuring out what went wrong, and the quotes if present arguably ought
-	to be placed around the entire expression:
-	can't resolve `bar1 - foo1'
-
-	The patch also tidies some tc_get_reloc functions that leak memory on
-	error paths.
-
-		* write.h (as_bad_subtract): Declare.
-		* write.c (as_bad_subtract): New function.
-		(fixup_segment): Use as_bad_subtract.
-		* config/tc-arc.c (md_apply_fix): Likewise.
-		* config/tc-avr.c (md_apply_fix, tc_gen_reloc): Likewise.
-		* config/tc-cris.c (md_apply_fix): Likewise.
-		* config/tc-d10v.c (md_apply_fix): Likewise.
-		* config/tc-d30v.c (md_apply_fix): Likewise.
-		* config/tc-ft32.c (md_apply_fix): Likewise.
-		* config/tc-h8300.c (tc_gen_reloc): Likewise.
-		* config/tc-m68hc11.c (md_apply_fix): Likewise.
-		* config/tc-mmix.c (mmix_frob_file): Likewise.
-		* config/tc-mn10200.c (tc_gen_reloc): Likewise.
-		* config/tc-nds32.c (nds32_apply_fix): Likewise.
-		* config/tc-pru.c (md_apply_fix): Likewise.
-		* config/tc-riscv.c (md_apply_fix): Likewise.
-		* config/tc-s12z.c (md_apply_fix): Likewise.
-		* config/tc-s390.c (md_apply_fix): Likewise.
-		* config/tc-tilegx.c (md_apply_fix): Likewise.
-		* config/tc-tilepro.c (md_apply_fix): Likewise.
-		* config/tc-v850.c (md_apply_fix): Likewise.
-		* config/tc-vax.c (md_apply_fix): Likewise.
-		* config/tc-xc16x.c (tc_gen_reloc): Likewise.
-		* config/tc-xgate.c (md_apply_fix): Likewise.
-		* config/tc-xstormy16.c (xstormy16_md_apply_fix): Likewise.
-		* config/tc-xtensa.c (md_apply_fix): Likewise.
-		* config/tc-z80.c (tc_gen_reloc): Likewise.
-		* config/tc-spu.c (md_apply_fix): Likewise.
-		(tc_gen_reloc): Delete dead code.  Free memory on error.
-		* config/tc-cr16.c (tc_gen_reloc): Use as_bad_subtract.  Free
-		on error.
-		* config/tc-crx.c (tc_gen_reloc): Likewise.
-		* config/tc-ppc.c (tc_gen_reloc): Likewise.
-		* testsuite/gas/i386/ifunc-2.l: Adjust to suit changed error message.
-		* testsuite/gas/mips/lui-2.l: Likewise.
-		* testsuite/gas/tic6x/reloc-bad-1.l: Likewise.
-
-2021-07-21  John Ericson  <git@JohnEricson.me>
-
-	Remove `netbsdpe` support
-	netbsdpe was deprecated in c2ce831330e10dab4703094491f80b6b9a5c2289.
-	Since then, a release has passed (2.37), and it was marked obselete in
-	5c9cbf07f3f972ecffe13d858010b3179df17b32. Unless I am mistaken, that
-	means we can now remove support altogether.
-
-	All branches in the "active" code are remove, and the target is
-	additionally marked as obsolete next to the other removed ones for
-	libbfd and gdb.
-
-	Per [1] from the NetBSD toolchain list, PE/COFF support was removed a
-	decade ago. Furthermore, the sole mention of this target in the binutils
-	commit history was in 2002. Together, I'm led to believe this target
-	hasn't seen much attention in quite a while.
-
-	[1]: https://mail-index.netbsd.org/tech-toolchain/2021/06/16/msg003996.html
-
-	bfd/
-		* config.bfd: Remove netbsdpe entry.
-	binutils/
-		* configure.ac: Remove netbsdpe entry.
-		* testsuite/lib/binutils-common.exp (is_pecoff_format): Likewise.
-		* configure: Regenerate.
-	gas/
-		* configure.tgt: Remove netbsdpe entry.
-	gdb/
-		* configure.tgt: Add netbsdpe to removed targets.
-	ld/
-		* configure.tgt: Remove netbsdpe entry.
-		* testsuite/ld-bootstrap/bootstrap.exp: Likewise.
-
-2021-07-21  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-20  Alan Modra  <amodra@gmail.com>
-
-	PR28106, build of 2.37 fails on FreeBSD and Clang
-	https://en.cppreference.com/w/cpp/types/NULL says NULL might be
-	defined as nullptr.
-	https://en.cppreference.com/w/cpp/language/reinterpret_cast says
-	reinterpret_cast can't be used on nullptr.
-
-		PR gold/28106
-		PR gold/27815
-		* gc.h (gc_process_relocs): Use static_cast in Section_id constructor.
-
-2021-07-20  Luis Machado  <luis.machado@linaro.org>
-
-	Fix printing of non-address types when memory tagging is enabled
-	When the architecture supports memory tagging, we handle
-	pointer/reference types in a special way, so we can validate tags and
-	show mismatches.
-
-	Unfortunately, the currently implementation errors out when the user
-	prints non-address values: composite types, floats, references, member
-	functions and other things.
-
-	Vector registers:
-
-	 (gdb) p $v0
-	 Value can't be converted to integer.
-
-	Non-existent internal variables:
-
-	 (gdb) p $foo
-	 Value can't be converted to integer.
-
-	The same happens for complex types and printing struct/union types.
-
-	There are a few problems here.
-
-	The first one is that after print_command_1 evaluates the expression
-	to print, the tag validation code call value_as_address
-	unconditionally, without making sure we have have a suitable type
-	where it makes to sense to call it.  That results in value_as_address
-	(if it isn't given a pointer-like type) trying to treat the value as
-	an integer and convert it to an address, which #1 - doesn't make sense
-	(i.e., no sense in validating tags after "print 1"), and throws for
-	non-integer-convertible types.  We fix this by making sure we have a
-	pointer or reference type first, and only if so then proceed to check
-	if the address-like value has tags.
-
-	The second is that we're calling value_as_address even if we have an
-	optimized out or unavailable value, which throws, because the value's
-	contents aren't fully accessible/readable.  This error currently
-	escapes out and aborts the print.  This case is fixed by checking for
-	optimized out / unavailable explicitly.
-
-	Third, the tag checking process does not gracefully handle exceptions.
-	If any exception is thrown from the tag validation code, we abort the
-	print.  E.g., the target may fail to access tags via a running thread.
-	Or the needed /proc files aren't available.  Or some other untold
-	reason.  This is a bit too rigid.  This commit changes print_command_1
-	to catch errors, print them, and still continue with the normal
-	expression printing path instead of erroring out and printing nothing
-	useful.
-
-	With this patch, printing works correctly again:
-
-	 (gdb) p $v0
-	 $1 = {d = {f = {2.0546950501119882e-81, 2.0546950501119882e-81}, u = {3399988123389603631, 3399988123389603631}, s = {
-	       3399988123389603631, 3399988123389603631}}, s = {f = {1.59329203e-10, 1.59329203e-10, 1.59329203e-10, 1.59329203e-10}, u = {
-	       791621423, 791621423, 791621423, 791621423}, s = {791621423, 791621423, 791621423, 791621423}}, h = {bf = {1.592e-10,
-	       1.592e-10, 1.592e-10, 1.592e-10, 1.592e-10, 1.592e-10, 1.592e-10, 1.592e-10}, f = {0.11224, 0.11224, 0.11224, 0.11224, 0.11224,
-	       0.11224, 0.11224, 0.11224}, u = {12079, 12079, 12079, 12079, 12079, 12079, 12079, 12079}, s = {12079, 12079, 12079, 12079,
-	       12079, 12079, 12079, 12079}}, b = {u = {47 <repeats 16 times>}, s = {47 <repeats 16 times>}}, q = {u = {
-	       62718710765820030520700417840365121327}, s = {62718710765820030520700417840365121327}}}
-	 (gdb) p $foo
-	 $2 = void
-	 (gdb) p 2 + 2i
-	 $3 = 2 + 2i
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28110
-
-2021-07-20  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Minor updates for architecture parser.
-	* Two add subset functions is redundant.  Keep the riscv_add_implicit_subset,
-	and renamed it to riscv_add_subset.  Besides, if the subset is added in order,
-	then we just add it at the tail of the subset list.
-
-	* Removed the "-march:" prefix from the error messages.  Since not only the
-	-march= option will use the parser, but also the architecture elf attributes,
-	the default architecture setting and linker will use the same parser.
-
-	* Use a function, riscv_parse_check_conflicts, to check the conflicts
-	of extensions, including the rv64e and rv32q.
-
-	The rv32emc-elf/rv32i-elf/rv32gc-linux/rv64gc-elf/rv64gc-linux regressions
-	are tested and passed.
-
-	bfd/
-		* elfxx-riscv.c (riscv_lookup_subset): Check the subset tail list
-		first.  If the subset is added in order, then we can just add it to
-		the tail without searching the whole list.
-		(riscv_add_subset): Replaced by riscv_add_implicit_subset.
-		(riscv_add_implicit_subset): Renamed to riscv_add_subset.
-		(riscv_parse_add_subset): Updated.
-		(riscv_parsing_subset_version): Removed the "-march:" prefix from
-		the error message.
-		(riscv_parse_prefixed_ext): Likewise.
-		(riscv_parse_std_ext): Likewise.  And move the rv<xlen>e check
-		to riscv_parse_check_conflicts.
-		(riscv_parse_check_conflicts): New function used to check conflicts.
-		(riscv_parse_subset): Updated.
-	gas/
-		* testsuite/gas/riscv/march-fail-base-02.l: Updated.
-		* testsuite/gas/riscv/march-fail-unknown-std.l: Likewise.
-
-2021-07-20  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-19  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: set current thread in btrace_compute_ftrace_{bts,pt}
-	As documented in bug 28086, test gdb.btrace/enable-new-thread.exp
-	started failing with commit 0618ae414979 ("gdb: optimize
-	all_matching_threads_iterator"):
-
-	    (gdb) record btrace^M
-	    (gdb) PASS: gdb.btrace/enable-new-thread.exp: record btrace
-	    break 24^M
-	    Breakpoint 2 at 0x555555555175: file /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.btrace/enable-new-thread.c, line 24.^M
-	    (gdb) continue^M
-	    Continuing.^M
-	    /home/smarchi/src/binutils-gdb/gdb/inferior.c:303: internal-error: inferior* find_inferior_pid(process_stratum_target*, int): Assertion `pid != 0' failed.^M
-	    A problem internal to GDB has been detected,^M
-	    further debugging may prove unreliable.^M
-	    Quit this debugging session? (y or n) FAIL: gdb.btrace/enable-new-thread.exp: continue to breakpoint: cont to bp.1 (GDB internal error)
-
-	Note that I only see the failure if GDB is compiled without libipt
-	support.  This is because GDB then makes use BTS instead of PT, so
-	exercises different code paths.
-
-	I think that the commit above just exposed an existing problem.  The
-	stack trace of the internal error is:
-
-	    #8  0x0000561cb81e404e in internal_error (file=0x561cb83aa2f8 "/home/smarchi/src/binutils-gdb/gdb/inferior.c", line=303, fmt=0x561cb83aa099 "%s: Assertion `%s' failed.") at /home/smarchi/src/binutils-gdb/gdbsupport/errors.cc:55
-	    #9  0x0000561cb7b5c031 in find_inferior_pid (targ=0x561cb8aafb60 <the_amd64_linux_nat_target>, pid=0) at /home/smarchi/src/binutils-gdb/gdb/inferior.c:303
-	    #10 0x0000561cb7b5c102 in find_inferior_ptid (targ=0x561cb8aafb60 <the_amd64_linux_nat_target>, ptid=...) at /home/smarchi/src/binutils-gdb/gdb/inferior.c:317
-	    #11 0x0000561cb7f1d1c3 in find_thread_ptid (targ=0x561cb8aafb60 <the_amd64_linux_nat_target>, ptid=...) at /home/smarchi/src/binutils-gdb/gdb/thread.c:487
-	    #12 0x0000561cb7f1b921 in all_matching_threads_iterator::all_matching_threads_iterator (this=0x7ffc4ee34678, filter_target=0x561cb8aafb60 <the_amd64_linux_nat_target>, filter_ptid=...) at /home/smarchi/src/binutils-gdb/gdb/thread-iter.c:125
-	    #13 0x0000561cb77bc462 in filtered_iterator<all_matching_threads_iterator, non_exited_thread_filter>::filtered_iterator<process_stratum_target* const&, ptid_t const&> (this=0x7ffc4ee34670) at /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/filtered-iterator.h:42
-	    #14 0x0000561cb77b97cb in all_non_exited_threads_range::begin (this=0x7ffc4ee34650) at /home/smarchi/src/binutils-gdb/gdb/thread-iter.h:243
-	    #15 0x0000561cb7d8ba30 in record_btrace_target::record_is_replaying (this=0x561cb8aa6250 <record_btrace_ops>, ptid=...) at /home/smarchi/src/binutils-gdb/gdb/record-btrace.c:1411
-	    #16 0x0000561cb7d8bb83 in record_btrace_target::xfer_partial (this=0x561cb8aa6250 <record_btrace_ops>, object=TARGET_OBJECT_MEMORY, annex=0x0, readbuf=0x7ffc4ee34c58 "\260g\343N\374\177", writebuf=0x0, offset=140737352774277, len=1, xfered_len=0x7ffc4ee34ad8) at /home/smarchi/src/binutils-gdb/gdb/record-btrace.c:1437
-	    #17 0x0000561cb7ef73a9 in raw_memory_xfer_partial (ops=0x561cb8aa6250 <record_btrace_ops>, readbuf=0x7ffc4ee34c58 "\260g\343N\374\177", writebuf=0x0, memaddr=140737352774277, len=1, xfered_len=0x7ffc4ee34ad8) at /home/smarchi/src/binutils-gdb/gdb/target.c:1504
-	    #18 0x0000561cb7ef77da in memory_xfer_partial_1 (ops=0x561cb8aa6250 <record_btrace_ops>, object=TARGET_OBJECT_CODE_MEMORY, readbuf=0x7ffc4ee34c58 "\260g\343N\374\177", writebuf=0x0, memaddr=140737352774277, len=1, xfered_len=0x7ffc4ee34ad8) at /home/smarchi/src/binutils-gdb/gdb/target.c:1635
-	    #19 0x0000561cb7ef78b5 in memory_xfer_partial (ops=0x561cb8aa6250 <record_btrace_ops>, object=TARGET_OBJECT_CODE_MEMORY, readbuf=0x7ffc4ee34c58 "\260g\343N\374\177", writebuf=0x0, memaddr=140737352774277, len=1, xfered_len=0x7ffc4ee34ad8) at /home/smarchi/src/binutils-gdb/gdb/target.c:1664
-	    #20 0x0000561cb7ef7ba4 in target_xfer_partial (ops=0x561cb8aa6250 <record_btrace_ops>, object=TARGET_OBJECT_CODE_MEMORY, annex=0x0, readbuf=0x7ffc4ee34c58 "\260g\343N\374\177", writebuf=0x0, offset=140737352774277, len=1, xfered_len=0x7ffc4ee34ad8) at /home/smarchi/src/binutils-gdb/gdb/target.c:1721
-	    #21 0x0000561cb7ef8503 in target_read_partial (ops=0x561cb8aa6250 <record_btrace_ops>, object=TARGET_OBJECT_CODE_MEMORY, annex=0x0, buf=0x7ffc4ee34c58 "\260g\343N\374\177", offset=140737352774277, len=1, xfered_len=0x7ffc4ee34ad8) at /home/smarchi/src/binutils-gdb/gdb/target.c:1974
-	    #22 0x0000561cb7ef861f in target_read (ops=0x561cb8aa6250 <record_btrace_ops>, object=TARGET_OBJECT_CODE_MEMORY, annex=0x0, buf=0x7ffc4ee34c58 "\260g\343N\374\177", offset=140737352774277, len=1) at /home/smarchi/src/binutils-gdb/gdb/target.c:2014
-	    #23 0x0000561cb7ef809f in target_read_code (memaddr=140737352774277, myaddr=0x7ffc4ee34c58 "\260g\343N\374\177", len=1) at /home/smarchi/src/binutils-gdb/gdb/target.c:1869
-	    #24 0x0000561cb7937f4d in gdb_disassembler::dis_asm_read_memory (memaddr=140737352774277, myaddr=0x7ffc4ee34c58 "\260g\343N\374\177", len=1, info=0x7ffc4ee34e88) at /home/smarchi/src/binutils-gdb/gdb/disasm.c:139
-	    #25 0x0000561cb80ab66d in fetch_data (info=0x7ffc4ee34e88, addr=0x7ffc4ee34c59 "g\343N\374\177") at /home/smarchi/src/binutils-gdb/opcodes/i386-dis.c:194
-	    #26 0x0000561cb80ab7e2 in ckprefix () at /home/smarchi/src/binutils-gdb/opcodes/i386-dis.c:8628
-	    #27 0x0000561cb80adbd8 in print_insn (pc=140737352774277, info=0x7ffc4ee34e88) at /home/smarchi/src/binutils-gdb/opcodes/i386-dis.c:9587
-	    #28 0x0000561cb80abe4f in print_insn_i386 (pc=140737352774277, info=0x7ffc4ee34e88) at /home/smarchi/src/binutils-gdb/opcodes/i386-dis.c:8894
-	    #29 0x0000561cb7744a19 in default_print_insn (memaddr=140737352774277, info=0x7ffc4ee34e88) at /home/smarchi/src/binutils-gdb/gdb/arch-utils.c:1029
-	    #30 0x0000561cb7b33067 in i386_print_insn (pc=140737352774277, info=0x7ffc4ee34e88) at /home/smarchi/src/binutils-gdb/gdb/i386-tdep.c:4013
-	    #31 0x0000561cb7acd8f4 in gdbarch_print_insn (gdbarch=0x561cbae2fb60, vma=140737352774277, info=0x7ffc4ee34e88) at /home/smarchi/src/binutils-gdb/gdb/gdbarch.c:3478
-	    #32 0x0000561cb793a32d in gdb_disassembler::print_insn (this=0x7ffc4ee34e80, memaddr=140737352774277, branch_delay_insns=0x0) at /home/smarchi/src/binutils-gdb/gdb/disasm.c:795
-	    #33 0x0000561cb793a5b0 in gdb_print_insn (gdbarch=0x561cbae2fb60, memaddr=140737352774277, stream=0x561cb8ac99f8 <null_stream>, branch_delay_insns=0x0) at /home/smarchi/src/binutils-gdb/gdb/disasm.c:850
-	    #34 0x0000561cb793a631 in gdb_insn_length (gdbarch=0x561cbae2fb60, addr=140737352774277) at /home/smarchi/src/binutils-gdb/gdb/disasm.c:859
-	    #35 0x0000561cb77f53f4 in btrace_compute_ftrace_bts (tp=0x561cbba11210, btrace=0x7ffc4ee35188, gaps=...) at /home/smarchi/src/binutils-gdb/gdb/btrace.c:1107
-	    #36 0x0000561cb77f55f5 in btrace_compute_ftrace_1 (tp=0x561cbba11210, btrace=0x7ffc4ee35180, cpu=0x0, gaps=...) at /home/smarchi/src/binutils-gdb/gdb/btrace.c:1527
-	    #37 0x0000561cb77f5705 in btrace_compute_ftrace (tp=0x561cbba11210, btrace=0x7ffc4ee35180, cpu=0x0) at /home/smarchi/src/binutils-gdb/gdb/btrace.c:1560
-	    #38 0x0000561cb77f583b in btrace_add_pc (tp=0x561cbba11210) at /home/smarchi/src/binutils-gdb/gdb/btrace.c:1589
-	    #39 0x0000561cb77f5a86 in btrace_enable (tp=0x561cbba11210, conf=0x561cb8ac6878 <record_btrace_conf>) at /home/smarchi/src/binutils-gdb/gdb/btrace.c:1629
-	    #40 0x0000561cb7d88d26 in record_btrace_enable_warn (tp=0x561cbba11210) at /home/smarchi/src/binutils-gdb/gdb/record-btrace.c:294
-	    #41 0x0000561cb7c603dc in std::__invoke_impl<void, void (*&)(thread_info*), thread_info*> (__f=@0x561cbb6c4878: 0x561cb7d88cdc <record_btrace_enable_warn(thread_info*)>) at /usr/include/c++/10/bits/invoke.h:60
-	    #42 0x0000561cb7c5e5a6 in std::__invoke_r<void, void (*&)(thread_info*), thread_info*> (__fn=@0x561cbb6c4878: 0x561cb7d88cdc <record_btrace_enable_warn(thread_info*)>) at /usr/include/c++/10/bits/invoke.h:153
-	    #43 0x0000561cb7c5dc92 in std::_Function_handler<void (thread_info*), void (*)(thread_info*)>::_M_invoke(std::_Any_data const&, thread_info*&&) (__functor=..., __args#0=@0x7ffc4ee35310: 0x561cbba11210) at /usr/include/c++/10/bits/std_function.h:291
-	    #44 0x0000561cb7f2600f in std::function<void (thread_info*)>::operator()(thread_info*) const (this=0x561cbb6c4878, __args#0=0x561cbba11210) at /usr/include/c++/10/bits/std_function.h:622
-	    #45 0x0000561cb7f23dc8 in gdb::observers::observable<thread_info*>::notify (this=0x561cb8ac5aa0 <gdb::observers::new_thread>, args#0=0x561cbba11210) at /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/observable.h:150
-	    #46 0x0000561cb7f1c436 in add_thread_silent (targ=0x561cb8aafb60 <the_amd64_linux_nat_target>, ptid=...) at /home/smarchi/src/binutils-gdb/gdb/thread.c:263
-	    #47 0x0000561cb7f1c479 in add_thread_with_info (targ=0x561cb8aafb60 <the_amd64_linux_nat_target>, ptid=..., priv=0x561cbb3f7ab0) at /home/smarchi/src/binutils-gdb/gdb/thread.c:272
-	    #48 0x0000561cb7bfa1d0 in record_thread (info=0x561cbb0413a0, tp=0x0, ptid=..., th_p=0x7ffc4ee35610, ti_p=0x7ffc4ee35620) at /home/smarchi/src/binutils-gdb/gdb/linux-thread-db.c:1380
-	    #49 0x0000561cb7bf7a2a in thread_from_lwp (stopped=0x561cba81db20, ptid=...) at /home/smarchi/src/binutils-gdb/gdb/linux-thread-db.c:429
-	    #50 0x0000561cb7bf7ac5 in thread_db_notice_clone (parent=..., child=...) at /home/smarchi/src/binutils-gdb/gdb/linux-thread-db.c:447
-	    #51 0x0000561cb7bdc9a2 in linux_handle_extended_wait (lp=0x561cbae25720, status=4991) at /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:1981
-	    #52 0x0000561cb7bdf0f3 in linux_nat_filter_event (lwpid=435403, status=198015) at /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:2920
-	    #53 0x0000561cb7bdfed6 in linux_nat_wait_1 (ptid=..., ourstatus=0x7ffc4ee36398, target_options=...) at /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:3202
-	    #54 0x0000561cb7be0b68 in linux_nat_target::wait (this=0x561cb8aafb60 <the_amd64_linux_nat_target>, ptid=..., ourstatus=0x7ffc4ee36398, target_options=...) at /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:3440
-	    #55 0x0000561cb7bfa2fc in thread_db_target::wait (this=0x561cb8a9acd0 <the_thread_db_target>, ptid=..., ourstatus=0x7ffc4ee36398, options=...) at /home/smarchi/src/binutils-gdb/gdb/linux-thread-db.c:1412
-	    #56 0x0000561cb7d8e356 in record_btrace_target::wait (this=0x561cb8aa6250 <record_btrace_ops>, ptid=..., status=0x7ffc4ee36398, options=...) at /home/smarchi/src/binutils-gdb/gdb/record-btrace.c:2547
-	    #57 0x0000561cb7ef996d in target_wait (ptid=..., status=0x7ffc4ee36398, options=...) at /home/smarchi/src/binutils-gdb/gdb/target.c:2608
-	    #58 0x0000561cb7b6d297 in do_target_wait_1 (inf=0x561cba6d8780, ptid=..., status=0x7ffc4ee36398, options=...) at /home/smarchi/src/binutils-gdb/gdb/infrun.c:3640
-	    #59 0x0000561cb7b6d43e in operator() (__closure=0x7ffc4ee36190, inf=0x561cba6d8780) at /home/smarchi/src/binutils-gdb/gdb/infrun.c:3701
-	    #60 0x0000561cb7b6d7b2 in do_target_wait (ecs=0x7ffc4ee36370, options=...) at /home/smarchi/src/binutils-gdb/gdb/infrun.c:3720
-	    #61 0x0000561cb7b6e67d in fetch_inferior_event () at /home/smarchi/src/binutils-gdb/gdb/infrun.c:4069
-	    #62 0x0000561cb7b4659b in inferior_event_handler (event_type=INF_REG_EVENT) at /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:41
-	    #63 0x0000561cb7be25f7 in handle_target_event (error=0, client_data=0x0) at /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:4227
-	    #64 0x0000561cb81e4ee2 in handle_file_event (file_ptr=0x561cbae24e10, ready_mask=1) at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:575
-	    #65 0x0000561cb81e5490 in gdb_wait_for_event (block=0) at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:701
-	    #66 0x0000561cb81e41be in gdb_do_one_event () at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:212
-	    #67 0x0000561cb7c18096 in start_event_loop () at /home/smarchi/src/binutils-gdb/gdb/main.c:421
-	    #68 0x0000561cb7c181e0 in captured_command_loop () at /home/smarchi/src/binutils-gdb/gdb/main.c:481
-	    #69 0x0000561cb7c19d7e in captured_main (data=0x7ffc4ee366a0) at /home/smarchi/src/binutils-gdb/gdb/main.c:1353
-	    #70 0x0000561cb7c19df0 in gdb_main (args=0x7ffc4ee366a0) at /home/smarchi/src/binutils-gdb/gdb/main.c:1368
-	    #71 0x0000561cb7693186 in main (argc=11, argv=0x7ffc4ee367b8) at /home/smarchi/src/binutils-gdb/gdb/gdb.c:32
-
-	At frame 45, the new_thread observable is fired.  At this moment, the
-	new thread isn't the current thread, inferior_ptid is null_ptid.  I
-	think this is ok: the new_thread observable doesn't give any guarantee
-	on the global context when observers are invoked.  Frame 35,
-	btrace_compute_ftrace_bts, calls gdb_insn_length.  gdb_insn_length
-	doesn't have a thread_info or other parameter what could indicate where
-	to read memory from, it implicitly uses the global context
-	(inferior_ptid).
-
-	So we reach the all_non_exited_threads_range in
-	record_btrace_target::record_is_replaying with a null inferior_ptid.
-	The previous implemention of all_non_exited_threads_range didn't care,
-	but the new one does.  The problem of calling gdb_insn_length and
-	ultimately trying to read memory with a null inferior_ptid already
-	existed, but the commit mentioned above made it visible.
-
-	Something between frames 40 (record_btrace_enable_warn) and 35
-	(btrace_compute_ftrace_bts) needs to be switching the global context to
-	make TP the current thread.  Since btrace_compute_ftrace_bts takes the
-	thread_info to work with as a parameter, that typically means that it
-	doesn't require its caller to also set the global current context
-	(current thread) when calling.  If it needs to call other functions
-	that do require the global current thread to be set, then it needs to
-	temporarily change the current thread while calling these other
-	functions.  Therefore, switch and restore the current thread in
-	btrace_compute_ftrace_bts.
-
-	By inspection, it looks like btrace_compute_ftrace_pt may also call
-	functions sensitive to the global context: it installs the
-	btrace_pt_readmem_callback callback in the PT instruction decoder.  When
-	this function gets called, inferior_ptid must be set appropriately.  Add
-	a switch and restore in there too.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28086
-	Change-Id: I407fbfe41aab990068bd102491aa3709b0a034b3
-
-2021-07-19  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-18  Nick Clifton  <nickc@redhat.com>
-
-	Move pending-obsolesence targets onto the obsolete list.
-		* config.bfd: Move pending obsoletion targets to obsolete list.
-
-	Update how-to-make-a-release checklist with latest changes from 2.37 release
-
-2021-07-18  Michael Krasnyk  <mkrasnyk@argo.ai>
-
-	PR28098 Skip R_*_NONE relocation entries with zero r_sym without counting
-		PR gold/28098
-		* reloc.cc (Track_relocs::advance): Skip R_*_NONE relocation entries
-		with r_sym of zero without counting in advance method.
-
-2021-07-18  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: convert nat/x86-dregs.c macros to functions
-	I'm debugging why GDB crashes on OpenBSD/amd64, turns out it's because
-	x86_dr_low.get_status is nullptr.  It would have been useful to be able
-	to break on x86_dr_low_get_status, so I thought it would be a good
-	reason to convert these function-like macros into functions.
-
-	Change-Id: Ic200b50ef8455b4697bc518da0fa2bb704cf4721
-
-2021-07-18  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-17  Tom Tromey  <tom@tromey.com>
-
-	Fix file-name handling regression with DWARF index
-	When run with the gdb-index or debug-names target boards, dup-psym.exp
-	fails.  This came up for me because my new DWARF scanner reuses this
-	part of the existing index code, and so it registers as a regression.
-	This is PR symtab/25834.
-
-	Looking into this, I found that the DWARF index code here is fairly
-	different from the psymtab code.  I don't think there's a deep reason
-	for this, and in fact, it seemed to me that the index code could
-	simply mimic what the psymtab code already does.
-
-	That is what this patch implements.  The DW_AT_name and DW_AT_comp_dir
-	are now stored in the quick file names table.  This may require
-	allocating a quick file names table even when DW_AT_stmt_list does not
-	exist.  Then, the functions that work with this data are changed to
-	use find_source_or_rewrite, just as the psymbol code does.  Finally,
-	line_header::file_full_name is removed, as it is no longer needed.
-
-	Currently, the index maintains a hash table of "quick file names".
-	The hash table uses a deletion function to free the "real name"
-	components when necessary.  There's also a second such function to
-	implement the forget_cached_source_info method.
-
-	This bug fix patch will create a quick file name object even when
-	there is no DW_AT_stmt_list, meaning that the object won't be entered
-	in the hash table.  So, this patch changes the memory management
-	approach so that the entries are cleared when the per-BFD object is
-	destroyed.  (A dwarf2_per_cu_data destructor is not introduced,
-	because we have been avoiding adding a vtable to that class.)
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=25834
-
-2021-07-17  Tom Tromey  <tom@tromey.com>
-
-	Check for debug-types in map_symbol_filenames
-	map_symbol_filenames can skip type units -- in fact I think it has to,
-	due to the assertion at the top of dw2_get_file_names.  This may be a
-	regression due to the TU/CU unification patch, I did not check.
-
-	Simplify DWARF file name caching
-	The DWARF index file name caching code only records when a line table
-	has been read and the reading failed.  However, the code would be
-	simpler if it recorded any attempt, which is what this patch
-	implements.
-
-	Introduce find_source_or_rewrite
-	The final bug fix in this series would duplicate the logic in
-	psymtab_to_fullname, so this patch extracts the body of this function
-	into a new function.
-
-	Simplify file_and_directory storage management
-	file_and_directory carries a std::string in case the compilation
-	directory is computed, but a subsequent patch wants to preserve this
-	string without also having to maintain the storage for it.  So, this
-	patch arranges for the compilation directory string to be stored in
-	the per-BFD string bcache instead.
-
-	Pass file_and_directory through DWARF line-decoding code
-	This patch removes the redundant "comp_unit" parameter from
-	compute_include_file_name, and arranges to pass a file_and_directory
-	object from the readers down to this function.  It also changes the
-	partial symtab reader to use find_file_and_directory, rather than
-	reimplement this functionality by hand.
-
-	Rename and refactor psymtab_include_file_name
-	In order to fix an index-related regression, I want to use
-	psymtab_include_file_name in the DWARF index file-handling code.  This
-	patch renames this function and changes it to no longer require a
-	partial symtab to be passed in.  A subsequent patch will further
-	refactor this code to remove the redundant parameter (which was always
-	there but is now more obvious).
-
-2021-07-17  Sergey Belyashov  <Sergey.Belyashov@gmail.com>
-
-	Add basic Z80 CPU support
-	Supported ISAs:
-	- Z80 (all undocumented instructions)
-	- Z180
-	- eZ80 (Z80 mode only)
-
-	Datasheets:
-	Z80: https://www.zilog.com/manage_directlink.php?filepath=docs/z80/um0080&extn=.pdf
-	Z180: https://www.zilog.com/manage_directlink.php?filepath=docs/z180/ps0140&extn=.pdf
-	eZ80: http://www.zilog.com/force_download.php?filepath=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTlWVFRBd056Y3VjR1Jt
-
-	To debug Z80 programs using GDB you must configure and embed
-	z80-stub.c to your program (SDCC compiler is required). Or
-	you may use some simulator with GDB support.
-
-	gdb/ChangeLog:
-
-		* Makefile.in (ALL_TARGET_OBS): Add z80-tdep.c.
-		* NEWS: Mention z80 support.
-		* configure.tgt: Handle z80*.
-		* features/Makefile (XMLTOC): Add z80.xml.
-		* features/z80-cpu.xml: New.
-		* features/z80.c: Generate.
-		* features/z80.xml: New.
-		* z80-tdep.c: New file.
-		* z80-tdep.h: New file.
-
-	gdb/stubs/ChangeLog:
-
-		* z80-stub.c: New file.
-
-	Change-Id: Id0b7a6e210c3f93c6853c5e3031b7bcee47d0db9
-
-2021-07-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make all_inferiors_safe actually work
-	The test gdb.threads/fork-plus-threads.exp fails since 08bdefb58b78
-	("gdb: make inferior_list use intrusive_list"):
-
-	    FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: only inferior 1 left
-
-	Looking at the log, we see that we are left with a bunch of inferiors in
-	the detach-on-fork=off case:
-
-	    info inferiors^M
-	      Num  Description       Connection           Executable        ^M
-	    * 1    <null>                                 <snip>/fork-plus-threads ^M
-	      2    <null>                                 <snip>/fork-plus-threads ^M
-	      3    <null>                                 <snip>/fork-plus-threads ^M
-	      4    <null>                                 <snip>/fork-plus-threads ^M
-	      5    <null>                                 <snip>/fork-plus-threads ^M
-	      6    <null>                                 <snip>/fork-plus-threads ^M
-	      7    <null>                                 <snip>/fork-plus-threads ^M
-	      8    <null>                                 <snip>/fork-plus-threads ^M
-	      9    <null>                                 <snip>/fork-plus-threads ^M
-	      10   <null>                                 <snip>/fork-plus-threads ^M
-	      11   <null>                                 <snip>/fork-plus-threads ^M
-	    (gdb) FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: only inferior 1 left
-
-	when we expect to have just one.  The problem is prune_inferiors not
-	pruning inferiors.  And this is caused by all_inferiors_safe not
-	actually iterating on inferiors.  The current implementation:
-
-	  inline all_inferiors_safe_range
-	  all_inferiors_safe ()
-	  {
-	    return {};
-	  }
-
-	default-constructs an all_inferiors_safe_range, which default-constructs
-	an all_inferiors_safe_iterator as its m_begin field, which
-	default-constructs a all_inferiors_iterator.  A default-constructed
-	all_inferiors_iterator is an end iterator, which means we have
-	constructed an (end,end) all_inferiors_safe_range.
-
-	We actually need to pass down the list on which we want to iterator
-	(that is the inferior_list global), so that all_inferiors_iterator's
-	first constructor is chosen.  We also pass nullptr as the proc_target
-	filter.  In this case, we don't do any filtering, but if in the future
-	all_inferiors_safe needed to allow filtering on process target (like
-	all_inferiors does), we could pass down a process target pointer.
-
-	basic_safe_iterator's constructor needs to be changed to allow
-	constructing the wrapped iterator with multiple arguments, not just one.
-
-	With this, gdb.threads/fork-plus-threads.exp is passing once again for
-	me.
-
-	Change-Id: I650552ede596e3590c4b7606ce403690a0278a01
-
-2021-07-17  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-16  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb: Support stepping out from signal handler on riscv*-linux
-	Currently, gdb cannot step outside of a signal handler on RISC-V
-	platforms.  This causes multiple failures in gdb.base/sigstep.exp:
-
-		FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, step from handler: leave handler (timeout)
-		FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: leave handler (timeout)
-		FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, next from handler: leave handler (timeout)
-		FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, next from handler: leave handler (timeout)
-		FAIL: gdb.base/sigstep.exp: stepi from handleri: leave signal trampoline
-		FAIL: gdb.base/sigstep.exp: nexti from handleri: leave signal trampoline
-
-		                === gdb Summary ===
-
-		# of expected passes            587
-		# of unexpected failures        6
-
-	This patch adds support for stepping outside of a signal handler on
-	riscv*-*-linux*.
-
-	Implementation is heavily inspired from mips_linux_syscall_next_pc and
-	surroundings as advised by Pedro Alves.
-
-	After this patch, all tests in gdb.base/sigstep.exp pass.
-
-	Build and tested on riscv64-linux-gnu.
-
-2021-07-16  Lancelot SIX  <lsix@lancelotsix.com>
-
-	gdb/testsuite: Declare that riscv*-*-linux* cannot hardware_single_step
-	Many tests fail in gdb/testsuite/gdb.base/sigstep.exp on
-	riscv64-linux-gnu.  Those tests check that when stepping, if the
-	debuggee received a signal it should step inside the signal handler.
-
-	This feature requires hardware support for single stepping (or at least
-	kernel support), but none are available on riscv*-linux-gnu hosts, at
-	the moment at least.
-
-	This patch adds RISC-V to the list of configurations that does not
-	have hardware single step capability, disabling tests relying on such
-	feature.
-
-	Tested on riscv64-linux-gnu.
-
-2021-07-16  Tom Tromey  <tom@tromey.com>
-
-	Document quick_symbol_functions::expand_symtabs_matching invariant
-	While working on my series to replace the DWARF psymbol reader, I
-	noticed that the expand_symtabs_matching has an undocumented
-	invariant.  I think that, if this invariant is not followed, then GDB
-	will crash.  So, this patch documents this in the relevant spots and
-	introduces some asserts to make it clear.
-
-	Regression tested on x86-64 Fedora 32.
-
-2021-07-16  Tom Tromey  <tromey@adacore.com>
-
-	Fix array stride bug
-	Investigation of using the Python API with an Ada program showed that
-	an array of dynamic types was not being handled properly.  I tracked
-	this down to an oddity of how array strides are handled.
-
-	In gdb, an array stride can be attached to the range type, via the
-	range_bounds object.  However, the stride can also be put into the
-	array's first field.  From create_range_type_with_stride:
-
-	  else if (bit_stride > 0)
-	    TYPE_FIELD_BITSIZE (result_type, 0) = bit_stride;
-
-	It's hard to be sure why this is done, but I would guess a combination
-	of historical reasons plus a desire (mentioned in a comment somewhere)
-	to avoid modifying the range type.
-
-	This patch fixes the problem by changing type::bit_stride to
-	understand this convention.  It also fixes one spot that reproduces
-	this logic.
-
-	Regression tested on x86-64 Fedora 32.
-
-2021-07-16  Giulio Benetti  <giulio.benetti@benettiengineering.com>
-
-	or1k: fix pc-relative relocation against dynamic on PC relative 26 bit relocation.
-	bfd	* elf32-or1k.c (or1k_elf_relocate_section): Use a separate entry
-		in switch case R_OR1K_INSN_REL_26 where we need to check for
-		!SYMBOL_CALLS_LOCAL() instead of !SYMBOL_REFERENCES_LOCAL().
-
-2021-07-16  Nick Clifton  <nickc@redhat.com>
-
-	Updated Swedish translation for the binutils sub-directory
-
-2021-07-16  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-15  Tom Tromey  <tromey@adacore.com>
-
-	Avoid expression parsing crash with unknown language
-	PR gdb/28093 points out that gdb crashes when language is set to
-	"unknown" and expression parsing is attempted.  At first I thought
-	this was a regression due to the expression rewrite, but it turns out
-	that older versions crash as well.
-
-	This patch avoids the crash by changing the default expression parser
-	to throw an exception.  I think this is preferable -- the current
-	behavior of silently doing nothing does not really make sense.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28093
-
-2021-07-15  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: pass child_ptid and fork kind to target_ops::follow_fork
-	This is a small cleanup I think would be nice, that I spotted while
-	doing the following patch.
-
-	gdb/ChangeLog:
-
-		* target.h (struct target_ops) <follow_fork>: Add ptid and
-		target_waitkind parameters.
-		(target_follow_fork): Likewise.
-		* target.c (default_follow_fork): Likewise.
-		(target_follow_fork): Likewise.
-		* fbsd-nat.h (class fbsd_nat_target) <follow_fork>: Likewise.
-		* fbsd-nat.c (fbsd_nat_target::follow_fork): Likewise.
-		* linux-nat.h (class linux_nat_target) <follow_fork>: Likewise.
-		* linux-nat.c (linux_nat_target::follow_fork): Likewise.
-		* obsd-nat.h (class obsd_nat_target) <follow_fork>: Likewise.
-		* obsd-nat.c (obsd_nat_target::follow_fork): Likewise.
-		* remote.c (class remote_target) <follow_fork>: Likewise.
-		* target-debug.h (target_debug_print_target_waitkind): New.
-		* target-delegates.c: Re-generate.
-
-	Change-Id: I5421a542f2e19100a22b74cc333d2b235d0de3c8
-
-2021-07-15  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: call post_create_inferior at end of follow_fork_inferior
-	GDB doesn't handle well the case of an inferior using the JIT interface
-	to register JIT-ed objfiles and forking.  If an inferior registers a
-	code object using the JIT interface and then forks, the child process
-	conceptually has the same code object loaded, so GDB should look it up
-	and learn about it (it currently doesn't).
-
-	To achieve this, I think it would make sense to have the
-	inferior_created observable called when an inferior is created due to a
-	fork in follow_fork_inferior.  The inferior_created observable is
-	currently called both after starting a new inferior and after attaching
-	to an inferior, allowing various sub-components to learn about that new
-	executing inferior.  We can see handling a fork child just like
-	attaching to it, so any work done when attaching should also be done in
-	the case of a fork child.
-
-	Instead of just calling the inferior_created observable, this patch
-	makes follow_fork_inferior call the whole post_create_inferior function.
-	This way, the attach and follow-fork code code paths are more alike.
-
-	Given that post_create_inferior calls solib_create_inferior_hook,
-	follow_fork_inferior doesn't need to do it itself, so those calls to
-	solib_create_inferior_hook are removed.
-
-	One question you may have: why not just call post_create_inferior at the
-	places where solib_create_inferior_hook is currently called, instead of
-	after target_follow_fork?
-
-	 - there's something fishy for the second solib_create_inferior_hook
-	   call site: at this point we have switched the current program space
-	   to the child's, but not the current inferior nor the current thread.
-	   So solib_create_inferior_hook (and everything under, including
-	   check_for_thread_db, for example) is called with inferior 1 as the
-	   current inferior and inferior 2's program space as the current
-	   program space.  I think that's wrong, because at this point we are
-	   setting up inferior 2, and all that code relies on the current
-	   inferior.  We could just add a switch_to_thread call before it to
-	   make inferior 2 the current one, but there are other problems (see
-	   below).
-
-	 - solib_create_inferior_hook is currently not called on the
-	   `follow_child && detach_fork` path.  I think we need to call it,
-	   because we still get a new inferior in that case (even though we
-	   detach the parent).  If we only call post_create_inferior where
-	   solib_create_inferior_hook used to be called, then the JIT
-	   subcomponent doesn't get informed about the new inferior, and that
-	   introduces a failure in the new gdb.base/jit-elf-fork.exp test.
-
-	 - if we try to put the post_create_inferior just after the
-	   switch_to_thread that was originally at line 662, or just before the
-	   call to target_follow_fork, we introduce a subtle failure in
-	   gdb.threads/fork-thread-pending.exp.  What happens then is that
-	   libthread_db gets loaded (somewhere under post_create_inferior)
-	   before the linux-nat target learns about the LWPs (which happens in
-	   linux_nat_target::follow_fork).  As a result, the ALL_LWPS loop in
-	   try_thread_db_load_1 doesn't see the child LWP, and the thread-db
-	   target doesn't have the chance to fill in thread_info::priv.  A bit
-	   later, when the test does "info threads", and
-	   thread_db_target::pid_to_str is called, the thread-db target doesn't
-	   recognize the thread as one of its own, and delegates the request to
-	   the target below.  Because the pid_to_str output is not the expected
-	   one, the test fails.
-
-	   This tells me that we need to call the process target's follow_fork
-	   first, to make the process target create the necessary LWP and thread
-	   structures.  Then, we can call post_create_inferior to let the other
-	   components of GDB do their thing.
-
-	   But then you may ask: check_for_thread_db is already called today,
-	   somewhere under solib_create_inferior_hook, and that is before
-	   target_follow_fork, why don't we see this ordering problem!?  Well,
-	   because of the first bullet point: when check_for_thread_db /
-	   thread_db_load are called, the current inferior is (erroneously)
-	   inferior 1, the parent.  Because libthread_db is already loaded for
-	   the parent, thread_db_load early returns.  check_for_thread_db later
-	   gets called by linux_nat_target::follow_fork.  At this point, the
-	   current inferior is the correct one and the child's LWP exists, so
-	   all is well.
-
-	Since we now call post_create_inferior after target_follow_fork, which
-	calls the inferior_created observable, which calls check_for_thread_db,
-	I don't think linux_nat_target needs to explicitly call
-	check_for_thread_db itself, so that is removed.
-
-	In terms of testing, this patch adds a new gdb.base/jit-elf-fork.exp
-	test.  It makes an inferior register a JIT code object and then fork.
-	It then verifies that whatever the detach-on-fork and follow-fork-child
-	parameters are, GDB knows about the JIT code object in all the inferiors
-	that survive the fork.  It verifies that the inferiors can unload that
-	code object.
-
-	There isn't currently a way to get visibility into GDB's idea of the JIT
-	code objects for each inferior.  For the purpose of this test, add the
-	"maintenance info jit" command.  There isn't much we can print about the
-	JIT code objects except their load address.  So the output looks a bit
-	bare, but it's good enough for the test.
-
-	gdb/ChangeLog:
-
-		* NEWS: Mention "maint info jit" command.
-		* infrun.c (follow_fork_inferior): Don't call
-		solib_create_inferior_hook, call post_create_inferior if a new
-		inferior was created.
-		* jit.c (maint_info_jit_cmd): New.
-		(_initialize_jit): Register new command.
-		* linux-nat.c (linux_nat_target::follow_fork): Don't call
-		check_for_thread_db.
-		* linux-nat.h (check_for_thread_db): Remove declaration.
-		* linux-thread-db.c (check_thread_signals): Make static.
-
-	gdb/doc/ChangeLog:
-
-		* gdb.texinfo (Maintenance Commands): Mention "maint info jit".
-
-	gdb/testsuite/ChangeLog:
-
-		* gdb.base/jit-elf-fork-main.c: New test.
-		* gdb.base/jit-elf-fork-solib.c: New test.
-		* gdb.base/jit-elf-fork.exp: New test.
-
-	Change-Id: I9a192e55b8a451c00e88100669283fc9ca60de5c
-
-2021-07-15  Libor Bukata  <libor.bukata@oracle.com>
-
-	[gdb/procfs.c] Fix build failure in find_stop_signal
-	It fixes a regression caused by commit
-	1edb66d856c82c389edfd7610143236a68c76846 where thread_info::suspend was
-	made private.
-
-	The public thread_info API has to be used to get stop signal and avoid
-	build failures.
-
-	gdb/ChangeLog:
-
-	2021-07-14  Libor Bukata <libor.bukata@oracle.com>
-
-	  * gdb/procfs.c (find_stop_signal): Use thread_info API.
-
-	Change-Id: I53bc57a05cd0eca5f28ef0726d6faeeb306e7904
-
-2021-07-15  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-14  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86: Add int1 as one byte opcode 0xf1
-	Also change the x86 disassembler to disassemble 0xf1 as int1, instead of
-	icebp.
-
-	gas/
-
-		PR gas/28088
-		* testsuite/gas/i386/opcode.s: Add int1.
-		* testsuite/gas/i386/x86-64-opcode.s: Add int1, int3 and int.
-		* testsuite/gas/i386/opcode-intel.d: Updated.
-		* testsuite/gas/i386/opcode-suffix.d: Likewise.
-		* testsuite/gas/i386/opcode.d: Likewise.
-		* testsuite/gas/i386/x86-64-opcode.d: Likewise.
-
-	opcodes/
-
-		PR gas/28088
-		* i386-dis.c (dis386): Replace icebp with int1.
-		* i386-opc.tbl: Add int1.
-		* i386-tbl.h: Regenerate.
-
-2021-07-14  Alan Modra  <amodra@gmail.com>
-
-	gas: default TC_VALIDATE_FIX_SUB to 0
-	gas/write.c provides a fallback TC_VALIDATE_FIX_SUB define that can be
-	a problem for some targets, the problem being that a non-zero
-	definition of TC_VALIDATE_FIX_SUB says that some uses of fx_subsy are
-	OK, in effect that the target will handle fx_subsy in md_apply_fix
-	and/or tc_gen_reloc.  A lot of targets don't have the necessary
-	md_apply_fix and tc_gen_reloc support.  So a safer default is to
-	disallow fx_subsy by default.
-
-	I've had a good look over target usage of fx_subsy, and think I've
-	caught all the cases where targets need TC_VALIDATE_FIX_SUB.  Possible
-	failures would be limited to alpha, microblaze, ppc and s390 (the
-	targets that define UNDEFINED_DIFFERENCE_OK), or targets that generate
-	fixups with BFD_RELOC_GPREL32/16 and use a syntax explicitly showing
-	a difference expression.
-
-		* write.c (TC_VALIDATE_FIX_SUB): Default to 0.
-		* config/tc-hppa.h (TC_VALIDATE_FIX_SUB): Define.
-		* config/tc-microblaze.h (TC_VALIDATE_FIX_SUB): Define.
-		* config/tc-alpha.h (TC_VALIDATE_FIX_SUB): Define for ECOFF.
-		* config/tc-ppc.h (TC_VALIDATE_FIX_SUB): Don't define for ELF.
-		Do define for XCOFF.
-
-2021-07-14  Clément Chigot  <clement.chigot@atos.net>
-
-	objdump: add DWARF support for AIX
-	DWARF sections have special names on AIX which need be handled
-	by objdump in order to correctly print them.
-	This patch also adds the correlation in bfd for future uses.
-
-	bfd/
-		* libxcoff.h (struct xcoff_dwsect_name): Add DWARF name.
-		* coff-rs6000.c (xcoff_dwsect_names): Update.
-		* coffcode.h (sec_to_styp_flags): Likewise.
-		(coff_new_section_hook): Likewise.
-	binutils/
-		* dwarf.h (struct dwarf_section): Add XCOFF name.
-		* dwarf.c (struct dwarf_section_display): Update.
-		* objdump.c (load_debug_section): Add XCOFF name handler.
-		(dump_dwarf_section): Likewise.
-	gas/
-		* config/tc-ppc.c (ppc_change_debug_section): Update to
-		match new name's field.
-
-2021-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.base/gold-gdb-index.exp
-	When running test-case gdb.base/gold-gdb-index.exp on openSUSE Tumbleweed,
-	I run into:
-	...
-	FAIL: gdb.base/gold-gdb-index.exp: maint info symtabs
-	...
-
-	This is due to a dummy .gdb_index:
-	...
-	Contents of the .gdb_index section:
-
-	Version 7
-
-	CU table:
-
-	TU table:
-
-	Address table:
-
-	Symbol table:
-	...
-
-	The dummy .gdb_index is ignored when loading the symbols, and instead partial
-	symbols are used.  Consequently, we get the same result as if we'd removed
-	-Wl,--gdb-index from the compilation.
-
-	Presumably, gold fails to generate a proper .gdb_index because it lacks
-	DWARF5 support.
-
-	Anyway, without a proper .gdb_index we can't test the gdb behaviour we're
-	trying to excercise.  Fix this by detecting whether we actually used a
-	.gdb_index for symbol loading.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-14  Tom de Vries  <tdevries@suse.de>
-
-		* lib/gdb.exp (have_index): New proc.
-		* gdb.base/gold-gdb-index.exp: Use have_index.
-
-2021-07-14  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Add missing skip_tui_tests
-	When building gdb with --disable-tui, we run into:
-	...
-	(gdb) frame apply all -- -^M
-	Undefined command: "-".  Try "help".^M
-	(gdb) ERROR: Undefined command "frame apply all -- -".
-	UNRESOLVED: gdb.base/options.exp: test-frame-apply: frame apply all -- -
-	...
-
-	Fix this by detecting whether tui is supported, and skipping the tui-related
-	tests otherwise.  Same in some gdb.tui test-cases.
-
-	Tested on x86_64-linux.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-13  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.base/options.exp: Skip tui-related tests when tui is not
-		supported.
-		* gdb.python/tui-window-disabled.exp: Same.
-		* gdb.python/tui-window.exp: Same.
-
-2021-07-14  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-13  Lancelot SIX  <lsix@lancelotsix.com>
-
-	Use /bin/sh as shebang in gdb/make-init-c
-	While testing the NixOS[1] packaging for gdb-11.0.90.tar.xz, I got the
-	following error:
-
-	  [...]
-	  CXX    aarch32-tdep.o
-	  CXX    gdb.o
-	  GEN    init.c
-	  /nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin/bash: ./make-init-c: /usr/bin/env: bad interpreter: No such file or directory
-	  make[2]: *** [Makefile:1866: stamp-init] Error 126
-	  make[2]: *** Waiting for unfinished jobs....
-	  make[2]: Leaving directory '/build/gdb-11.0.90/gdb'
-	  make[1]: *** [Makefile:9814: all-gdb] Error 2
-	  make[1]: Leaving directory '/build/gdb-11.0.90'
-	  make: *** [Makefile:903: all] Error 2
-	  builder for '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed with exit code 2
-	  error: build of '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed
-
-	In the nix build environment, /usr/bin/env is not present, only /bin/sh
-	is.  This patch makes sure that gdb/make-init-c uses '/bin/sh' as
-	interpreter as this is the only one available on this platform.
-
-	I do not think this change will cause regressions on any other
-	configuration.
-
-	[1] https://nixos.org/
-
-	gdb/Changelog
-
-		* make-init-c: Use /bin/sh as shebang.
-
-2021-07-13  John Baldwin  <jhb@FreeBSD.org>
-
-	arm-fbsd-nat: Use fetch_register_set and store_register_set.
-
-	aarch64-fbsd-nat: Use fetch_register_set and store_register_set.
-
-	riscv-fbsd-nat: Use fetch_register_set and store_register_set.
-
-	fbsd-nat: Add helper functions to fetch and store register sets.
-	In particular, this supports register sets described by a regcache_map
-	which are fetched and stored with dedicated ptrace operations.  These
-	functions are intended to be used in architecture-specific
-	fetch_registers and store_registers target methods.
-
-	Add regcache_map_supplies helper routine.
-	This helper can be used in the fetch_registers and store_registers
-	target methods to determine if a register set includes a specific
-	register.
-
-2021-07-13  Pedro Alves  <pedro@palves.net>
-
-	Avoid letting exceptions escape gdb_bfd_iovec_fileio_close (PR gdb/28080)
-	Before PR gdb/28080 was fixed by the previous patch, GDB was crashing
-	like this:
-
-	 (gdb) detach
-	 Detaching from program: target:/any/program, process 3671843
-	 Detaching from process 3671843
-	 Ending remote debugging.
-	 [Inferior 1 (process 3671843) detached]
-	 In main
-	 terminate called after throwing an instance of 'gdb_exception_error'
-	 Aborted (core dumped)
-
-	Here's the exception above being thrown:
-
-	 (top-gdb) bt
-	 #0  throw_error (error=TARGET_CLOSE_ERROR, fmt=0x555556035588 "Remote connection closed") at src/gdbsupport/common-exceptions.cc:222
-	 #1  0x0000555555bbaa46 in remote_target::readchar (this=0x555556a11040, timeout=10000) at src/gdb/remote.c:9440
-	 #2  0x0000555555bbb9e5 in remote_target::getpkt_or_notif_sane_1 (this=0x555556a11040, buf=0x555556a11058, forever=0, expecting_notif=0, is_notif=0x0) at src/gdb/remote.c:9928
-	 #3  0x0000555555bbbda9 in remote_target::getpkt_sane (this=0x555556a11040, buf=0x555556a11058, forever=0) at src/gdb/remote.c:10030
-	 #4  0x0000555555bc0e75 in remote_target::remote_hostio_send_command (this=0x555556a11040, command_bytes=13, which_packet=14, remote_errno=0x7fffffffcfd0, attachment=0x0, attachment_len=0x0) at src/gdb/remote.c:12137
-	 #5  0x0000555555bc1b6c in remote_target::remote_hostio_close (this=0x555556a11040, fd=8, remote_errno=0x7fffffffcfd0) at src/gdb/remote.c:12455
-	 #6  0x0000555555bc1bb4 in remote_target::fileio_close (During symbol reading: .debug_line address at offset 0x64f417 is 0 [in module build/gdb/gdb]
-	 this=0x555556a11040, fd=8, remote_errno=0x7fffffffcfd0) at src/gdb/remote.c:12462
-	 #7  0x0000555555c9274c in target_fileio_close (fd=3, target_errno=0x7fffffffcfd0) at src/gdb/target.c:3365
-	 #8  0x000055555595a19d in gdb_bfd_iovec_fileio_close (abfd=0x555556b9f8a0, stream=0x555556b11530) at src/gdb/gdb_bfd.c:439
-	 #9  0x0000555555e09e3f in opncls_bclose (abfd=0x555556b9f8a0) at src/bfd/opncls.c:599
-	 #10 0x0000555555e0a2c7 in bfd_close_all_done (abfd=0x555556b9f8a0) at src/bfd/opncls.c:847
-	 #11 0x0000555555e0a27a in bfd_close (abfd=0x555556b9f8a0) at src/bfd/opncls.c:814
-	 #12 0x000055555595a9d3 in gdb_bfd_close_or_warn (abfd=0x555556b9f8a0) at src/gdb/gdb_bfd.c:626
-	 #13 0x000055555595ad29 in gdb_bfd_unref (abfd=0x555556b9f8a0) at src/gdb/gdb_bfd.c:715
-	 #14 0x0000555555ae4730 in objfile::~objfile (this=0x555556515540, __in_chrg=<optimized out>) at src/gdb/objfiles.c:573
-	 #15 0x0000555555ae955a in std::_Sp_counted_ptr<objfile*, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x555556c20db0) at /usr/include/c++/9/bits/shared_ptr_base.h:377
-	 #16 0x000055555572b7c8 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x555556c20db0) at /usr/include/c++/9/bits/shared_ptr_base.h:155
-	 #17 0x00005555557263c3 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x555556bf0588, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:730
-	 #18 0x0000555555ae745e in std::__shared_ptr<objfile, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x555556bf0580, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1169
-	 #19 0x0000555555ae747e in std::shared_ptr<objfile>::~shared_ptr (this=0x555556bf0580, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr.h:103
-	 #20 0x0000555555b1c1dc in __gnu_cxx::new_allocator<std::_List_node<std::shared_ptr<objfile> > >::destroy<std::shared_ptr<objfile> > (this=0x5555564cdd60, __p=0x555556bf0580) at /usr/include/c++/9/ext/new_allocator.h:153
-	 #21 0x0000555555b1bb1d in std::allocator_traits<std::allocator<std::_List_node<std::shared_ptr<objfile> > > >::destroy<std::shared_ptr<objfile> > (__a=..., __p=0x555556bf0580) at /usr/include/c++/9/bits/alloc_traits.h:497
-	 #22 0x0000555555b1b73e in std::__cxx11::list<std::shared_ptr<objfile>, std::allocator<std::shared_ptr<objfile> > >::_M_erase (this=0x5555564cdd60, __position=std::shared_ptr<objfile> (expired, weak count 1) = {get() = 0x555556515540}) at /usr/include/c++/9/bits/stl_list.h:1921
-	 #23 0x0000555555b1afeb in std::__cxx11::list<std::shared_ptr<objfile>, std::allocator<std::shared_ptr<objfile> > >::erase (this=0x5555564cdd60, __position=std::shared_ptr<objfile> (expired, weak count 1) = {get() = 0x555556515540}) at /usr/include/c++/9/bits/list.tcc:158
-	 #24 0x0000555555b19576 in program_space::remove_objfile (this=0x5555564cdd20, objfile=0x555556515540) at src/gdb/progspace.c:210
-	 #25 0x0000555555ae4502 in objfile::unlink (this=0x555556515540) at src/gdb/objfiles.c:487
-	 #26 0x0000555555ae5a12 in objfile_purge_solibs () at src/gdb/objfiles.c:875
-	 #27 0x0000555555c09686 in no_shared_libraries (ignored=0x0, from_tty=1) at src/gdb/solib.c:1236
-	 #28 0x00005555559e3f5f in detach_command (args=0x0, from_tty=1) at src/gdb/infcmd.c:2769
-
-	Note frame #14:
-
-	 #14 0x0000555555ae4730 in objfile::~objfile (this=0x555556515540, __in_chrg=<optimized out>) at src/gdb/objfiles.c:573
-
-	That's a dtor, thus noexcept.  That's the reason for the
-	std::terminate.
-
-	The previous patch fixed things such that the exception above isn't
-	thrown anymore.  However, it's possible that e.g., the remote
-	connection drops just while a user types "nosharedlibrary", or some
-	other reason that leads to objfile::~objfile, and then we end up the
-	same std::terminate problem.
-
-	Also notice that frames #9-#11 are BFD frames:
-
-	 #9  0x0000555555e09e3f in opncls_bclose (abfd=0x555556bc27e0) at src/bfd/opncls.c:599
-	 #10 0x0000555555e0a2c7 in bfd_close_all_done (abfd=0x555556bc27e0) at src/bfd/opncls.c:847
-	 #11 0x0000555555e0a27a in bfd_close (abfd=0x555556bc27e0) at src/bfd/opncls.c:814
-
-	BFD is written in C and thus throwing exceptions over such frames may
-	either not clean up properly, or, may abort if bfd is not compiled
-	with -fasynchronous-unwind-tables (x86-64 defaults that on, but not
-	all GCC ports do).
-
-	Thus frame #8 seems like a good place to swallow exceptions.  More so
-	since in this spot we already ignore target_fileio_close return
-	errors.  That's what this commit does.  Without the previous fix, we'd
-	see:
-
-	 (gdb) detach
-	 Detaching from program: target:/any/program, process 2197701
-	 Ending remote debugging.
-	 [Inferior 1 (process 2197701) detached]
-	 warning: cannot close "target:/lib64/ld-linux-x86-64.so.2": Remote connection closed
-
-	Note it prints a warning, which would still be a regression compared
-	to GDB 10, if it weren't for the previous fix.
-
-	gdb/ChangeLog:
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		PR gdb/28080
-		* gdb_bfd.c (gdb_bfd_close_warning): New.
-		(gdb_bfd_iovec_fileio_close): Wrap target_fileio_close in
-		try/catch and print warning on exception.
-		(gdb_bfd_close_or_warn): Use gdb_bfd_close_warning.
-
-	Change-Id: Ic7a26ddba0a4444e3377b0e7c1c89934a84545d7
-
-2021-07-13  Pedro Alves  <pedro@palves.net>
-
-	Fix detach with target remote (PR gdb/28080)
-	Commit 408f66864a1a823591b26420410c982174c239a2 ("detach in all-stop
-	with threads running") regressed "detach" with "target remote":
-
-	 (gdb) detach
-	 Detaching from program: target:/any/program, process 3671843
-	 Detaching from process 3671843
-	 Ending remote debugging.
-	 [Inferior 1 (process 3671843) detached]
-	 In main
-	 terminate called after throwing an instance of 'gdb_exception_error'
-	 Aborted (core dumped)
-
-	Here's the exception above being thrown:
-
-	 (top-gdb) bt
-	 #0  throw_error (error=TARGET_CLOSE_ERROR, fmt=0x555556035588 "Remote connection closed") at src/gdbsupport/common-exceptions.cc:222
-	 #1  0x0000555555bbaa46 in remote_target::readchar (this=0x555556a11040, timeout=10000) at src/gdb/remote.c:9440
-	 #2  0x0000555555bbb9e5 in remote_target::getpkt_or_notif_sane_1 (this=0x555556a11040, buf=0x555556a11058, forever=0, expecting_notif=0, is_notif=0x0) at src/gdb/remote.c:9928
-	 #3  0x0000555555bbbda9 in remote_target::getpkt_sane (this=0x555556a11040, buf=0x555556a11058, forever=0) at src/gdb/remote.c:10030
-	 #4  0x0000555555bc0e75 in remote_target::remote_hostio_send_command (this=0x555556a11040, command_bytes=13, which_packet=14, remote_errno=0x7fffffffcfd0, attachment=0x0, attachment_len=0x0) at src/gdb/remote.c:12137
-	 #5  0x0000555555bc1b6c in remote_target::remote_hostio_close (this=0x555556a11040, fd=8, remote_errno=0x7fffffffcfd0) at src/gdb/remote.c:12455
-	 #6  0x0000555555bc1bb4 in remote_target::fileio_close (During symbol reading: .debug_line address at offset 0x64f417 is 0 [in module build/gdb/gdb]
-	 this=0x555556a11040, fd=8, remote_errno=0x7fffffffcfd0) at src/gdb/remote.c:12462
-	 #7  0x0000555555c9274c in target_fileio_close (fd=3, target_errno=0x7fffffffcfd0) at src/gdb/target.c:3365
-	 #8  0x000055555595a19d in gdb_bfd_iovec_fileio_close (abfd=0x555556b9f8a0, stream=0x555556b11530) at src/gdb/gdb_bfd.c:439
-	 #9  0x0000555555e09e3f in opncls_bclose (abfd=0x555556b9f8a0) at src/bfd/opncls.c:599
-	 #10 0x0000555555e0a2c7 in bfd_close_all_done (abfd=0x555556b9f8a0) at src/bfd/opncls.c:847
-	 #11 0x0000555555e0a27a in bfd_close (abfd=0x555556b9f8a0) at src/bfd/opncls.c:814
-	 #12 0x000055555595a9d3 in gdb_bfd_close_or_warn (abfd=0x555556b9f8a0) at src/gdb/gdb_bfd.c:626
-	 #13 0x000055555595ad29 in gdb_bfd_unref (abfd=0x555556b9f8a0) at src/gdb/gdb_bfd.c:715
-	 #14 0x0000555555ae4730 in objfile::~objfile (this=0x555556515540, __in_chrg=<optimized out>) at src/gdb/objfiles.c:573
-	 #15 0x0000555555ae955a in std::_Sp_counted_ptr<objfile*, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x555556c20db0) at /usr/include/c++/9/bits/shared_ptr_base.h:377
-	 #16 0x000055555572b7c8 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x555556c20db0) at /usr/include/c++/9/bits/shared_ptr_base.h:155
-	 #17 0x00005555557263c3 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x555556bf0588, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:730
-	 #18 0x0000555555ae745e in std::__shared_ptr<objfile, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x555556bf0580, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1169
-	 #19 0x0000555555ae747e in std::shared_ptr<objfile>::~shared_ptr (this=0x555556bf0580, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr.h:103
-	 #20 0x0000555555b1c1dc in __gnu_cxx::new_allocator<std::_List_node<std::shared_ptr<objfile> > >::destroy<std::shared_ptr<objfile> > (this=0x5555564cdd60, __p=0x555556bf0580) at /usr/include/c++/9/ext/new_allocator.h:153
-	 #21 0x0000555555b1bb1d in std::allocator_traits<std::allocator<std::_List_node<std::shared_ptr<objfile> > > >::destroy<std::shared_ptr<objfile> > (__a=..., __p=0x555556bf0580) at /usr/include/c++/9/bits/alloc_traits.h:497
-	 #22 0x0000555555b1b73e in std::__cxx11::list<std::shared_ptr<objfile>, std::allocator<std::shared_ptr<objfile> > >::_M_erase (this=0x5555564cdd60, __position=std::shared_ptr<objfile> (expired, weak count 1) = {get() = 0x555556515540}) at /usr/include/c++/9/bits/stl_list.h:1921
-	 #23 0x0000555555b1afeb in std::__cxx11::list<std::shared_ptr<objfile>, std::allocator<std::shared_ptr<objfile> > >::erase (this=0x5555564cdd60, __position=std::shared_ptr<objfile> (expired, weak count 1) = {get() = 0x555556515540}) at /usr/include/c++/9/bits/list.tcc:158
-	 #24 0x0000555555b19576 in program_space::remove_objfile (this=0x5555564cdd20, objfile=0x555556515540) at src/gdb/progspace.c:210
-	 #25 0x0000555555ae4502 in objfile::unlink (this=0x555556515540) at src/gdb/objfiles.c:487
-	 #26 0x0000555555ae5a12 in objfile_purge_solibs () at src/gdb/objfiles.c:875
-	 #27 0x0000555555c09686 in no_shared_libraries (ignored=0x0, from_tty=1) at src/gdb/solib.c:1236
-	 #28 0x00005555559e3f5f in detach_command (args=0x0, from_tty=1) at src/gdb/infcmd.c:2769
-
-	So frame #28 already detached the remote process, and then we're
-	purging the shared libraries.  GDB had opened remote shared libraries
-	via the target: sysroot, so it tries closing them.  GDBserver is
-	tearing down already, so remote communication breaks down and we close
-	the remote target and throw TARGET_CLOSE_ERROR.
-
-	Note frame #14:
-
-	 #14 0x0000555555ae4730 in objfile::~objfile (this=0x555556515540, __in_chrg=<optimized out>) at src/gdb/objfiles.c:573
-
-	That's a dtor, thus noexcept.  That's the reason for the
-	std::terminate.
-
-	Stepping back a bit, why do we still have open remote files if we've
-	managed to detach already, and, we're debugging with "target remote"?
-	The reason is that commit 408f66864a1a823591b26420410c982174c239a2
-	makes detach_command hold a reference to the target, so the remote
-	target won't be finally closed until frame #28 returns.  It's closing
-	the target that invalidates target file I/O handles.
-
-	This commit fixes the issue by not relying on target_close to
-	invalidate the target file I/O handles, instead invalidate them
-	immediately in remote_unpush_target.  So when GDB purges the solibs,
-	and we end up in target_fileio_close (frame #7 above), there's nothing
-	to do, and we don't try to talk with the remote target anymore.
-
-	The regression isn't seen when testing with
-	--target_board=native-gdbserver, because that does "set sysroot" to
-	disable the "target:" sysroot, for test run speed reasons.  So this
-	commit adds a testcase that explicitly tests detach with "set sysroot
-	target:".
-
-	gdb/ChangeLog:
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		PR gdb/28080
-		* remote.c (remote_unpush_target): Invalidate file I/O target
-		handles.
-		* target.c (fileio_handles_invalidate_target): Make extern.
-		* target.h (fileio_handles_invalidate_target): Declare.
-
-	gdb/testsuite/ChangeLog:
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		PR gdb/28080
-		* gdb.base/detach-sysroot-target.exp: New.
-		* gdb.base/detach-sysroot-target.c: New.
-
-	Reported-By: Jonah Graham <jonah@kichwacoders.com>
-
-	Change-Id: I851234910172f42a1b30e731161376c344d2727d
-
-2021-07-13  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix check-libthread-db.exp FAILs with glibc 2.33
-	When running test-case gdb.threads/check-libthread-db.exp on openSUSE
-	Tumbleweed with glibc 2.33, I get:
-	...
-	(gdb) maint check libthread-db^M
-	Running libthread_db integrity checks:^M
-	  Got thread 0x7ffff7c79b80 => 9354 => 0x7ffff7c79b80; errno = 0 ... OK^M
-	libthread_db integrity checks passed.^M
-	(gdb) FAIL: gdb.threads/check-libthread-db.exp: user-initiated check: \
-	  libpthread.so not initialized (pattern 2)
-	...
-
-	The test-case expects instead:
-	...
-	  Got thread 0x0 => 9354 => 0x0 ... OK^M
-	...
-	which is what I get on openSUSE Leap 15.2 with glibc 2.26, and what is
-	described in the test-case like this:
-	...
-	    # libthread_db should fake a single thread with th_unique == NULL.
-	...
-
-	Using a breakpoint on check_thread_db_callback we can compare the two
-	scenarios, and find that in the latter case we hit this code in glibc function
-	iterate_thread_list in nptl_db/td_ta_thr_iter.c:
-	...
-	  if (next == 0 && fake_empty)
-	    {
-	      /* __pthread_initialize_minimal has not run.  There is just the main
-	         thread to return.  We cannot rely on its thread register.  They
-	         sometimes contain garbage that would confuse us, left by the
-	         kernel at exec.  So if it looks like initialization is incomplete,
-	         we only fake a special descriptor for the initial thread.  */
-	      td_thrhandle_t th = { ta, 0 };
-	      return callback (&th, cbdata_p) != 0 ? TD_DBERR : TD_OK;
-	    }
-	...
-	while in the former case we don't because this preceding statement doesn't
-	result in next == 0:
-	...
-	  err = DB_GET_FIELD (next, ta, head, list_t, next, 0);
-	...
-
-	Note that the comment mentions __pthread_initialize_minimal, but in both cases
-	it has already run before we hit the callback, so it's possible the comment is
-	no longer accurate.
-
-	The change in behaviour bisect to glibc commit 1daccf403b "nptl: Move stack
-	list variables into _rtld_global", which moves the initialization of stack
-	list variables such as __stack_user to an earlier moment, which explains well
-	enough the observed difference.
-
-	Fix this by updating the regexp patterns to agree with what libthread-db is
-	telling us.
-
-	Tested on x86_64-linux, both with glibc 2.33 and 2.26.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-07  Tom de Vries  <tdevries@suse.de>
-
-		PR testsuite/27690
-		* gdb.threads/check-libthread-db.exp: Update patterns for glibc 2.33.
-
-2021-07-13  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-	gdb, dwarf: Don't follow the parent of a subprogram to get a prefix.
-	During prefix resolution, if the parent is a subprogram, there is no need
-	to go to the parent of the subprogram.  The DIE will be local.
-
-	For a program like:
-	~~~
-	  class F1
-	  {
-	  public:
-	    int a;
-	    int
-	    vvv ()
-	    {
-	      class F2
-	      {
-		int f;
-	      };
-	      F2 abcd;
-	      return 1;
-	    }
-	  };
-	~~~
-
-	The class F2 should not be seen as a member of F1.
-
-	Before:
-	~~~
-	(gdb) ptype abcd
-	type = class F1::F2 {
-	  private:
-	    int f;
-	}
-	~~~
-
-	After:
-	~~~
-	(gdb) ptype abcd
-	type = class F2 {
-	  private:
-	    int f;
-	}
-	~~~
-
-	gdb/ChangeLog:
-	2021-06-23  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-		* dwarf2/read.c (determine_prefix): Return an empty prefix if the
-		parent is a subprogram.
-
-	gdb/testsuite/ChangeLog:
-	2021-06-23  Felix Willgerodt  <felix.willgerodt@intel.com>
-
-		* gdb.cp/nested-class-func-class.cc: New file.
-		* gdb.cp/nested-class-func-class.exp: New file.
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: disable commit-resumed on -exec-interrupt --thread-group
-	As reported in PR gdb/28077, we hit an internal error when using
-	-exec-interrupt with --thread-group:
-
-	    info threads
-	    &"info threads\n"
-	    ~"  Id   Target Id             Frame \n"
-	    ~"* 1    process 403312 \"loop\" (running)\n"
-	    ^done
-	    (gdb)
-	    -exec-interrupt --thread-group i1
-	    ~"/home/simark/src/binutils-gdb/gdb/target.c:3768: internal-error: void target_stop(ptid_t): Assertion `!proc_target->commit_resumed_state' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nQuit this debugging session? (y or n) "
-
-	This is because this code path never disables commit-resumed (a
-	requirement for calling target_stop, as documented in
-	process_stratum_target::»commit_resumed_state) before calling
-	target_stop.
-
-	The other 3 code paths in mi_cmd_exec_interrupt use interrupt_target_1,
-	which does it.  But the --thread-group code path uses its own thing
-	which doesn't do it.  Fix this by adding a scoped_disable_commit_resumed
-	in this code path.
-
-	Calling -exec-interrupt with --thread-group is apparently not tested at
-	the moment (which is why this bug could creep in).  Add a new test for
-	that.  The test runs two inferiors and tries to interrupt them with
-	"-exec-interrupt --thread-group X".
-
-	This will need to be merged in the gdb-11-branch, so here are ChangeLog
-	entries:
-
-	gdb/ChangeLog:
-
-		* mi/mi-main.c (mi_cmd_exec_interrupt): Use
-		scoped_disable_commit_resumed in the --thread-group case.
-
-	gdb/testsuite/ChangeLog:
-
-		* gdb.mi/interrupt-thread-group.c: New.
-		* gdb.mi/interrupt-thread-group.exp: New.
-
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28077
-	Change-Id: I615efefcbcaf2c15d47caf5e4b9d82854b2a2fcb
-
-2021-07-13  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Enable elf attributes when default configure option isn't set.
-	Since gcc commit, 3c70b3ca1ef58f302bf8c16d9e7c7bb8626408bf, we now enable
-	elf attributes for all riscv targets by default in gcc.  Therefore, I
-	think binutils should have the same behavior, in case users are writing
-	assembly files.  If --enable-default-riscv-attribute isn't set, then we
-	enable the elf attributes for all riscv targets by default.
-
-	ChangLog:
-
-	binutils/
-
-		* testsuite/binutils-all/readelf.s: Add comments for riscv.
-		* testsuite/binutils-all/readelf.s-64: Likewise.
-		* testsuite/binutils-all/readelf.s-64-unused: Likewise.
-		* testsuite/binutils-all/readelf.ss: Likewise.
-		* testsuite/binutils-all/readelf.ss-64: Likewise.
-		* testsuite/binutils-all/readelf.ss-64-unused: Likewise.
-
-	gas/
-
-		* configure.ac: If --enable-default-riscv-attribute isn't set,
-		then we enable the elf attributes for all riscv targets by
-		default.
-		* configure: Regenerated.
-
-2021-07-13  John Ericson  <git@JohnEricson.me>
-
-	Fix some dangling references to `netbsd-tdep`
-	These files were renamed in 1b71cfcfdc3e13a655fefa6566b5564cec044c10,
-	but evidentially a few dangling references were left behind. This causes
-	builds to fail:
-
-	    $ ./configure --target i686-netbsdelf
-	    $ make
-	    make: *** No rule to make target 'nbsd-tdep.c', needed by 'nbsd-tdep.o'.  Stop.
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: optimize all_matching_threads_iterator
-	all_matching_threads_iterator is used extensively in some pretty fast
-	paths, often under the all_non_exited_threads function.
-
-	If a filter target and thread-specific ptid are given, it iterates on
-	all threads of all inferiors of that target, to ultimately yield exactly
-	on thread.  And this happens quite often, which means we unnecessarily
-	spend time iterating on threads to find the one we are looking for.  The
-	same thing happens if an inferior-specific ptid is given, although there
-	the iterator yields all the threads of that inferior.
-
-	In those cases, the callers of all_non_exited_threads could have
-	different behaviors depending on the kind of ptid, to avoid this
-	inefficiency, but that would be very tedious.  Using
-	all_non_exited_threads has the advantage that one simple implementation
-	can work seamlessly on multiple threads or on one specific thread, just
-	by playing with the ptid.
-
-	Instead, optimize all_matching_threads_iterator directly to detect these
-	different cases and limiting what we iterate on to just what we need.
-
-	 - if filter_ptid is minus_one_ptid, do as we do now: filter inferiors
-	   based on filter_target, iterate on all of the matching inferiors'
-	   threads
-	 - if filter_ptid is a pid-only ptid (then a filter_target must
-	   necessarily be given), look up that inferior and iterate on all its
-	   threads
-	 - otherwise, filter_ptid is a thread-specific ptid, so look up that
-	   specific thread and "iterate" only on it
-
-	For the last case, what was an iteration on all threads of the filter
-	target now becomes a call to find_thread_ptid, which is quite efficient
-	now thanks to inferior::ptid_thread_map.
-
-	gdb/ChangeLog:
-
-		* thread-iter.h (class all_matching_threads_iterator)
-		<all_matching_threads_iterator>: Use default.
-		<enum class mode>: New.
-		<m_inf, m_thr>: Initialize.
-		<m_filter_ptid>: Remove.
-		* thread-iter.c (all_matching_threads_iterator::m_inf_matches):
-		Don't filter on m_filter_ptid.
-		(all_matching_threads_iterator::all_matching_threads_iterator):
-		Choose path based on filter_ptid (all threads, all threads of
-		inferior, single thread).
-		(all_matching_threads_iterator::advance): Likewise.
-
-	Change-Id: Ic6a19845f5f760fa1b8eac8145793c0ff431bbc9
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: maintain ptid -> thread map, optimize find_thread_ptid
-	When debugging a large number of threads (thousands), looking up a
-	thread by ptid_t using the inferior::thread_list linked list can add up.
-
-	Add inferior::thread_map, an std::unordered_map indexed by ptid_t, and
-	change the find_thread_ptid function to look up a thread using
-	std::unordered_map::find, instead of iterating on all of the
-	inferior's threads.  This should make it faster to look up a thread
-	from its ptid.
-
-	Change-Id: I3a8da0a839e18dee5bb98b8b7dbeb7f3dfa8ae1c
-	Co-Authored-By: Pedro Alves <pedro@palves.net>
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: optimize selection of resumed thread with pending event
-	Consider a case where many threads (thousands) keep hitting a breakpoint
-	whose condition evaluates to false.  random_pending_event_thread is
-	responsible for selecting a thread from an inferior among all that are
-	resumed with a pending wait status.  It is currently implemented by
-	walking the inferior's thread list twice: once to count the number of
-	candidates and once to select a random one.
-
-	Since we now maintain a per target list of resumed threads with pending
-	event, we can implement this more efficiently by walking that list and
-	selecting the first thread that matches the criteria
-	(random_pending_event_thread looks for an thread from a specific
-	inferior, and possibly a filter ptid).  It will be faster especially in
-	the common case where there isn't any resumed thread with pending
-	event.  Currently, we have to iterate the thread list to figure this
-	out.  With this patch, the list of resumed threads with pending event
-	will be empty, so it's quick to figure out.
-
-	The random selection is kept, but is moved to
-	process_stratum_target::random_resumed_with_pending_wait_status.  The
-	same technique is used: do a first pass to count the number of
-	candidates, and do a second pass to select a random one.  But given that
-	the list of resumed threads with pending wait statuses will generally be
-	short, or at least shorter than the full thread list, it should be
-	quicker.
-
-	Note that this isn't completely true, in case there are multiple
-	inferiors on the same target.  Imagine that inferior A has 10k resumed
-	threads with pending wait statuses, and random_pending_event_thread is
-	called with inferior B.  We'll need to go through the list that contains
-	inferior A's threads to realize that inferior B has no resumed threads
-	with pending wait status.  But I think that this is a corner /
-	pathological case.  And a possible fix for this situation would be to
-	make random_pending_event_thread work per-process-target, rather than
-	per-inferior.
-
-	Change-Id: I1b71d01beaa500a148b5b9797745103e13917325
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: optimize check for resumed threads with pending wait status in maybe_set_commit_resumed_all_targets
-	Consider a test case where many threads (thousands) keep hitting a
-	breakpoint whose condition evaluates to false.
-	maybe_set_commit_resumed_all_targets is called at each handled event,
-	when the scoped_disable_commit_resumed object in fetch_inferior_event is
-	reset_and_commit-ed.  One particularly expensive check in there is
-	whether the target has at least one resumed thread with a pending wait
-	status (in which case, we don't want to commit the resumed threads, as
-	we want to consume this status first).  It is currently implemented as
-	walking all threads of the target.
-
-	Since we now maintain a per-target list of resumed threads with pending
-	status, we can do this check efficiently, by checking whether that list
-	is empty or not.
-
-	Add the process_stratum_target::has_resumed_with_pending_wait_status
-	method for this, and use it in maybe_set_commit_resumed_all_targets.
-
-	Change-Id: Ia1595baa1b358338f94fc3cb3af7f27092dad5b6
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: maintain per-process-target list of resumed threads with pending wait status
-	Looking up threads that are both resumed and have a pending wait
-	status to report is something that we do quite often in the fast path
-	and is expensive if there are many threads, since it currently requires
-	walking whole thread lists.
-
-	The first instance is in maybe_set_commit_resumed_all_targets.  This is
-	called after handling each event in fetch_inferior_event, to see if we
-	should ask targets to commit their resumed threads or not.  If at least
-	one thread is resumed but has a pending wait status, we don't ask the
-	targets to commit their resumed threads, because we want to consume and
-	handle the pending wait status first.
-
-	The second instance is in random_pending_event_thread, where we want to
-	select a random thread among all those that are resumed and have a
-	pending wait status.  This is called every time we try to consume
-	events, to see if there are any pending events that we we want to
-	consume, before asking the targets for more events.
-
-	To allow optimizing these cases, maintain a per-process-target list of
-	threads that are resumed and have a pending wait status.
-
-	In maybe_set_commit_resumed_all_targets, we'll be able to check in O(1)
-	if there are any such threads simply by checking whether the list is
-	empty.
-
-	In random_pending_event_thread, we'll be able to use that list, which
-	will be quicker than iterating the list of threads, especially when
-	there are no resumed with pending wait status threads.
-
-	About implementation details: using the new setters on class
-	thread_info, it's relatively easy to maintain that list.  Any time the
-	"resumed" or "pending wait status" property is changed, we check whether
-	that should cause the thread to be added or removed from the list.
-
-	In set_thread_exited, we try to remove the thread from the list, because
-	keeping an exited thread in that list would make no sense (especially if
-	the thread is freed).  My first implementation assumed that a process
-	stratum target was always present when set_thread_exited is called.
-	That's however, not the case: in some cases, targets unpush themselves
-	from an inferior and then call "exit_inferior", which exits all the
-	threads.  If the target is unpushed before set_thread_exited is called
-	on the threads, it means we could mistakenly leave some threads in the
-	list.  I tried to see how hard it would be to make it such that targets
-	have to exit all threads before unpushing themselves from the inferior
-	(that would seem logical to me, we don't want threads belonging to an
-	inferior that has no process target).  That seemed quite difficult and
-	not worth the time at the moment.  Instead, I changed
-	inferior::unpush_target to remove all threads of that inferior from the
-	list.
-
-	As of this patch, the list is not used, this is done in the subsequent
-	patches.
-
-	The debug messages in process-stratum-target.c need to print some ptids.
-	However, they can't use target_pid_to_str to print them without
-	introducing a dependency on the current inferior (the current inferior
-	is used to get the current target stack).  For debug messages, I find it
-	clearer to print the spelled out ptid anyway (the pid, lwp and tid
-	values).  Add a ptid_t::to_string method that returns a string
-	representation of the ptid that is meant for debug messages, a bit like
-	we already have frame_id::to_string.
-
-	Change-Id: Iad8f93db2d13984dd5aa5867db940ed1169dbb67
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: make thread_info::suspend private, add getters / setters
-	A following patch will want to take some action when a pending wait
-	status is set on or removed from a thread.  Add a getter and a setter on
-	thread_info for the pending waitstatus, so that we can add some code in
-	the setter later.
-
-	The thing is, the pending wait status field is in the
-	thread_suspend_state, along with other fields that we need to backup
-	before and restore after the thread does an inferior function call.
-	Therefore, make the thread_suspend_state member private
-	(thread_info::suspend becomes thread_info::m_suspend), and add getters /
-	setters for all of its fields:
-
-	 - pending wait status
-	 - stop signal
-	 - stop reason
-	 - stop pc
-
-	For the pending wait status, add the additional has_pending_waitstatus
-	and clear_pending_waitstatus methods.
-
-	I think this makes the thread_info interface a bit nicer, because we
-	now access the fields as:
-
-	  thread->stop_pc ()
-
-	rather than
-
-	  thread->suspend.stop_pc
-
-	The stop_pc field being in the `suspend` structure is an implementation
-	detail of thread_info that callers don't need to be aware of.
-
-	For the backup / restore of the thread_suspend_state structure, add
-	save_suspend_to and restore_suspend_from methods.  You might wonder why
-	`save_suspend_to`, as opposed to a simple getter like
-
-	  thread_suspend_state &suspend ();
-
-	I want to make it clear that this is to be used only for backing up and
-	restoring the suspend state, _not_ to access fields like:
-
-	  thread->suspend ()->stop_pc
-
-	Adding some getters / setters allows adding some assertions.  I find
-	that this helps understand how things are supposed to work.  Add:
-
-	 - When getting the pending status (pending_waitstatus method), ensure
-	   that there is a pending status.
-	 - When setting a pending status (set_pending_waitstatus method), ensure
-	   there is no pending status.
-
-	There is one case I found where this wasn't true - in
-	remote_target::process_initial_stop_replies - which needed adjustments
-	to respect that contract.  I think it's because
-	process_initial_stop_replies is kind of (ab)using the
-	thread_info::suspend::waitstatus to store some statuses temporarily, for
-	its internal use (statuses it doesn't intent on leaving pending).
-
-	process_initial_stop_replies pulls out stop replies received during the
-	initial connection using target_wait.  It always stores the received
-	event in `evthread->suspend.waitstatus`.  But it only sets
-	waitstatus_pending_p, if it deems the event interesting enough to leave
-	pending, to be reported to the core:
-
-	      if (ws.kind != TARGET_WAITKIND_STOPPED
-		  || ws.value.sig != GDB_SIGNAL_0)
-		evthread->suspend.waitstatus_pending_p = 1;
-
-	It later uses this flag a bit below, to choose which thread to make the
-	"selected" one:
-
-	      if (selected == NULL
-		  && thread->suspend.waitstatus_pending_p)
-		selected = thread;
-
-	And ultimately that's used if the user-visible mode is all-stop, so that
-	we print the stop for that interesting thread:
-
-	  /* In all-stop, we only print the status of one thread, and leave
-	     others with their status pending.  */
-	  if (!non_stop)
-	    {
-	      thread_info *thread = selected;
-	      if (thread == NULL)
-		thread = lowest_stopped;
-	      if (thread == NULL)
-		thread = first;
-
-	      print_one_stopped_thread (thread);
-	    }
-
-	But in any case (all-stop or non-stop), print_one_stopped_thread needs
-	to access the waitstatus value of these threads that don't have a
-	pending waitstatus (those that had TARGET_WAITKIND_STOPPED +
-	GDB_SIGNAL_0).  This doesn't work with the assertions I've
-	put.
-
-	So, change the code to only set the thread's wait status if it is an
-	interesting one that we are going to leave pending.  If the thread
-	stopped due to a non-interesting event (TARGET_WAITKIND_STOPPED +
-	GDB_SIGNAL_0), don't store it.  Adjust print_one_stopped_thread to
-	understand that if a thread has no pending waitstatus, it's because it
-	stopped with TARGET_WAITKIND_STOPPED + GDB_SIGNAL_0.
-
-	The call to set_last_target_status also uses the pending waitstatus.
-	However, given that the pending waitstatus for the thread may have been
-	cleared in print_one_stopped_thread (and that there might not even be a
-	pending waitstatus in the first place, as explained above), it is no
-	longer possible to do it at this point.  To fix that, move the call to
-	set_last_target_status in print_one_stopped_thread.  I think this will
-	preserve the existing behavior, because set_last_target_status is
-	currently using the current thread's wait status.  And the current
-	thread is the last one for which print_one_stopped_thread is called.  So
-	by calling set_last_target_status in print_one_stopped_thread, we'll get
-	the same result.  set_last_target_status will possibly be called
-	multiple times, but only the last call will matter.  It just means
-	possibly more calls to set_last_target_status, but those are cheap.
-
-	Change-Id: Iedab9653238eaf8231abcf0baa20145acc8b77a7
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: add setter / getter for thread_info resumed state
-	A following patch will want to do things when a thread's resumed state
-	changes.  Make the `resumed` field private (renamed to `m_resumed`) and
-	add a getter and a setter for it.  The following patch in question will
-	therefore be able to add some code to the setter.
-
-	Change-Id: I360c48cc55a036503174313261ce4e757d795319
-
-2021-07-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: use intrusive list for step-over chain
-	The threads that need a step-over are currently linked using an
-	hand-written intrusive doubly-linked list, so that seems a very good
-	candidate for intrusive_list, convert it.
-
-	For this, we have a use case of appending a list to another one (in
-	start_step_over).  Based on the std::list and Boost APIs, add a splice
-	method.  However, only support splicing the other list at the end of the
-	`this` list, since that's all we need.
-
-	Add explicit default assignment operators to
-	reference_to_pointer_iterator, which are otherwise implicitly deleted.
-	This is needed because to define thread_step_over_list_safe_iterator, we
-	wrap reference_to_pointer_iterator inside a basic_safe_iterator, and
-	basic_safe_iterator needs to be able to copy-assign the wrapped
-	iterator.  The move-assignment operator is therefore not needed, only
-	the copy-assignment operator is.  But for completeness, add both.
-
-	Change-Id: I31b2ff67c7b78251314646b31887ef1dfebe510c
-
-2021-07-13  Pedro Alves  <pedro@palves.net>
-
-	gdb: make inferior_list use intrusive_list
-	Change inferior_list, the global list of inferiors, to use
-	intrusive_list.  I think most other changes are somewhat obvious
-	fallouts from this change.
-
-	There is a small change in behavior in scoped_mock_context.  Before this
-	patch, constructing a scoped_mock_context would replace the whole
-	inferior list with only the new mock inferior.  Tests using two
-	scoped_mock_contexts therefore needed to manually link the two inferiors
-	together, as the second scoped_mock_context would bump the first mock
-	inferior from the thread list.  With this patch, a scoped_mock_context
-	adds its mock inferior to the inferior list on construction, and removes
-	it on destruction.  This means that tests run with mock inferiors in the
-	inferior list in addition to any pre-existing inferiors (there is always
-	at least one).  There is no possible pid clash problem, since each
-	scoped mock inferior uses its own process target, and pids are per
-	process target.
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: I7eb6a8f867d4dcf8b8cd2dcffd118f7270756018
-
-2021-07-13  Pedro Alves  <pedro@palves.net>
-
-	gdb: introduce intrusive_list, make thread_info use it
-	GDB currently has several objects that are put in a singly linked list,
-	by having the object's type have a "next" pointer directly.  For
-	example, struct thread_info and struct inferior.  Because these are
-	simply-linked lists, and we don't keep track of a "tail" pointer, when
-	we want to append a new element on the list, we need to walk the whole
-	list to find the current tail.  It would be nice to get rid of that
-	walk.  Removing elements from such lists also requires a walk, to find
-	the "previous" position relative to the element being removed.  To
-	eliminate the need for that walk, we could make those lists
-	doubly-linked, by adding a "prev" pointer alongside "next".  It would be
-	nice to avoid the boilerplate associated with maintaining such a list
-	manually, though.  That is what the new intrusive_list type addresses.
-
-	With an intrusive list, it's also possible to move items out of the
-	list without destroying them, which is interesting in our case for
-	example for threads, when we exit them, but can't destroy them
-	immediately.  We currently keep exited threads on the thread list, but
-	we could change that which would simplify some things.
-
-	Note that with std::list, element removal is O(N).  I.e., with
-	std::list, we need to walk the list to find the iterator pointing to
-	the position to remove.  However, we could store a list iterator
-	inside the object as soon as we put the object in the list, to address
-	it, because std::list iterators are not invalidated when other
-	elements are added/removed.  However, if you need to put the same
-	object in more than one list, then std::list<object> doesn't work.
-	You need to instead use std::list<object *>, which is less efficient
-	for requiring extra memory allocations.  For an example of an object
-	in multiple lists, see the step_over_next/step_over_prev fields in
-	thread_info:
-
-	  /* Step-over chain.  A thread is in the step-over queue if these are
-	     non-NULL.  If only a single thread is in the chain, then these
-	     fields point to self.  */
-	  struct thread_info *step_over_prev = NULL;
-	  struct thread_info *step_over_next = NULL;
-
-	The new intrusive_list type gives us the advantages of an intrusive
-	linked list, while avoiding the boilerplate associated with manually
-	maintaining it.
-
-	intrusive_list's API follows the standard container interface, and thus
-	std::list's interface.  It is based the API of Boost's intrusive list,
-	here:
-
-	 https://www.boost.org/doc/libs/1_73_0/doc/html/boost/intrusive/list.html
-
-	Our implementation is relatively simple, while Boost's is complicated
-	and intertwined due to a lot of customization options, which our version
-	doesn't have.
-
-	The easiest way to use an intrusive_list is to make the list's element
-	type inherit from intrusive_node.  This adds a prev/next pointers to
-	the element type.  However, to support putting the same object in more
-	than one list, intrusive_list supports putting the "node" info as a
-	field member, so you can have more than one such nodes, one per list.
-
-	As a first guinea pig, this patch makes the per-inferior thread list use
-	intrusive_list using the base class method.
-
-	Unlike Boost's implementation, ours is not a circular list.  An earlier
-	version of the patch was circular: the intrusive_list type included an
-	intrusive_list_node "head".  In this design, a node contained pointers
-	to the previous and next nodes, not the previous and next elements.
-	This wasn't great for when debugging GDB with GDB, as it was difficult
-	to get from a pointer to the node to a pointer to the element.  With the
-	design proposed in this patch, nodes contain pointers to the previous
-	and next elements, making it easy to traverse the list by hand and
-	inspect each element.
-
-	The intrusive_list object contains pointers to the first and last
-	elements of the list.  They are nullptr if the list is empty.
-	Each element's node contains a pointer to the previous and next
-	elements.  The first element's previous pointer is nullptr and the last
-	element's next pointer is nullptr.  Therefore, if there's a single
-	element in the list, both its previous and next pointers are nullptr.
-	To differentiate such an element from an element that is not linked into
-	a list, the previous and next pointers contain a special value (-1) when
-	the node is not linked.  This is necessary to be able to reliably tell
-	if a given node is currently linked or not.
-
-	A begin() iterator points to the first item in the list.  An end()
-	iterator contains nullptr.  This makes iteration until end naturally
-	work, as advancing past the last element will make the iterator contain
-	nullptr, making it equal to the end iterator.  If the list is empty,
-	a begin() iterator will contain nullptr from the start, and therefore be
-	immediately equal to the end.
-
-	Iterating on an intrusive_list yields references to objects (e.g.
-	`thread_info&`).  The rest of GDB currently expects iterators and ranges
-	to yield pointers (e.g. `thread_info*`).  To bridge the gap, add the
-	reference_to_pointer_iterator type.  It is used to define
-	inf_threads_iterator.
-
-	Add a Python pretty-printer, to help inspecting intrusive lists when
-	debugging GDB with GDB.  Here's an example of the output:
-
-	    (top-gdb) p current_inferior_.m_obj.thread_list
-	    $1 = intrusive list of thread_info = {0x61700002c000, 0x617000069080, 0x617000069400, 0x61700006d680, 0x61700006eb80}
-
-	It's not possible with current master, but with this patch [1] that I
-	hope will be merged eventually, it's possible to index the list and
-	access the pretty-printed value's children:
-
-	    (top-gdb) p current_inferior_.m_obj.thread_list[1]
-	    $2 = (thread_info *) 0x617000069080
-	    (top-gdb) p current_inferior_.m_obj.thread_list[1].ptid
-	    $3 = {
-	      m_pid = 406499,
-	      m_lwp = 406503,
-	      m_tid = 0
-	    }
-
-	Even though iterating the list in C++ yields references, the Python
-	pretty-printer yields pointers.  The reason for this is that the output
-	of printing the thread list above would be unreadable, IMO, if each
-	thread_info object was printed in-line, since they contain so much
-	information.  I think it's more useful to print pointers, and let the
-	user drill down as needed.
-
-	[1] https://sourceware.org/pipermail/gdb-patches/2021-April/178050.html
-
-	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
-	Change-Id: I3412a14dc77f25876d742dab8f44e0ba7c7586c0
-
-2021-07-13  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-12  Tucker  <tuckkern@sourceware@gmail.com>
-
-	Add the SEC_ELF_OCTETS flag to debug sections created by the assembler.
-		PR 28054
-	gas	* config/obj-elf.c (obj_elf_change_section): Set the
-		SEF_ELF_OCTETS flag on debug sections.
-
-2021-07-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.btrace/tsx.exp on system with tsx disabled in microcode
-	Recently I started to see this fail with trunk:
-	...
-	(gdb) record instruction-history^M
-	1          0x00000000004004ab <main+4>: call   0x4004b7 <test>^M
-	2          0x00000000004004c6 <test+15>:        mov    $0x1,%eax^M
-	3          0x00000000004004cb <test+20>:        ret    ^M
-	(gdb) FAIL: gdb.btrace/tsx.exp: speculation indication
-	...
-
-	This is due to an intel microcode update (1) that disables Intel TSX by default.
-
-	Fix this by updating the pattern.
-
-	Tested on x86_64-linux, with both gcc 7.5.0 and clang 12.0.1.
-
-	[1] https://www.intel.com/content/www/us/en/support/articles/000059422/processors.html
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-12  Tom de Vries  <tdevries@suse.de>
-
-		PR testsuite/28057
-		* gdb.btrace/tsx.exp: Add pattern for system with tsx disabled in
-		microcode.
-
-2021-07-12  Nick Clifton  <nickc@redhat.com>
-
-	Updated French translation for the binutils sub-directory
-
-	Fix a translation problem for the text generated by readelf at the start of a dump of a dynamic section.
-		PR 28072
-	binutils * readelf.c (process_dynamic_section): Use ngettext to help with translation of header text.
-
-2021-07-12  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.mi/mi-info-sources.exp for extra debug info
-	When running test-case gdb.mi/mi-info-sources.exp, I run into:
-	...
-	Running src/gdb/testsuite/gdb.mi/mi-info-sources.exp ...
-	ERROR: internal buffer is full.
-	...
-	due to extra debug info from the shared libraries.
-
-	Fix this by using "nosharedlibrary".
-
-	Then I run into these FAILs:
-	...
-	FAIL: gdb.mi/mi-info-sources.exp: debug_read=false: \
-	  -file-list-exec-source-files (unexpected output)
-	FAIL: gdb.mi/mi-info-sources.exp: debug_read=true: \
-	  -file-list-exec-source-files (unexpected output)
-	FAIL: gdb.mi/mi-info-sources.exp: debug_read=true: \
-	  -file-list-exec-source-files --group-by-objfile, look for \
-	  mi-info-sources.c (unexpected output)
-	FAIL: gdb.mi/mi-info-sources.exp: debug_read=true: \
-	  -file-list-exec-source-files --group-by-objfile, look for \
-	  mi-info-sources-base.c (unexpected output)
-	...
-	due to openSUSE executables which have debug info for objects from sources
-	like sysdeps/x86_64/crtn.S.
-
-	Fix these by updating the patterns, and adding "maint expand-symtabs" to
-	reliably get fully-read objfiles.
-
-	Then I run into FAILs when using the readnow target board.  Fix these by
-	skipping the relevant tests.
-
-	Then I run into FAILs when using the cc-with-gnu-debuglink board.  Fix these
-	by updating the patterns.
-
-	Tested on x86_64-linux, with native, check-read1, readnow, cc-with-gdb-index,
-	cc-with-debug-names, cc-with-gnu-debuglink, cc-with-dwz, cc-with-dwz-m.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-05  Tom de Vries  <tdevries@suse.de>
-
-		* lib/mi-support.exp (mi_readnow): New proc.
-		* gdb.mi/mi-info-sources.exp: Use nosharedlibrary.  Update patterns.
-		Skip tests for readnow.  Use "maint expand-symtabs".
-
-2021-07-12  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
-
-	testsuite: fix whitespace problems in gdb.mi/mi-break.exp
-	Replace leading 8-spaces with tab and remove trailing space in
-	gdb.mi/mi-break.exp.
-
-2021-07-12  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-11  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-10  Alan Modra  <amodra@gmail.com>
-
-	Tidy commit 49910fd88dcd
-	Pointer range checking is UB if the values compared are outside the
-	underlying array elements (plus one).
-
-		* dwarf2.c (read_address): Remove accidental commit.
-		(read_ranges): Compare offset rather than pointers.
-
-2021-07-10  Alan Modra  <amodra@gmail.com>
-
-	PR28069, assertion fail in dwarf.c:display_discr_list
-	We shouldn't be asserting on anything to do with leb128 values, or
-	reporting file and line numbers when something unexpected happens.
-	leb128 data is of indeterminate length, perfect for fuzzer mayhem.
-	It would only make sense to assert or report dwarf.c/readelf.c source
-	lines if the code had already sized and sanity checked the leb128
-	values.
-
-	After removing the assertions, the testcase then gave:
-
-	    <37>   DW_AT_discr_list  : 5 byte block: 0 0 0 0 0 	(label 0, label 0, label 0, label 0, <corrupt>
-	readelf: Warning: corrupt discr_list - unrecognized discriminant byte 0x5
-
-	    <3d>   DW_AT_encoding    : 0	(void)
-	    <3e>   DW_AT_identifier_case: 0	(case_sensitive)
-	    <3f>   DW_AT_virtuality  : 0	(none)
-	    <40>   DW_AT_decimal_sign: 5	(trailing separate)
-
-	So the DW_AT_discr_list was showing more data than just the 5 byte
-	block.  That happened due to "end" pointing a long way past the end of
-	block, and uvalue decrementing past zero on one of the leb128 bytes.
-
-		PR 28069
-		* dwarf.c (display_discr_list): Remove assertions.  Delete "end"
-		parameter, use initial "data" pointer as the end.  Formatting.
-		Don't count down bytes as they are read.
-		(read_and_display_attr_value): Adjust display_discr_list call.
-		(read_and_print_leb128): Don't pass __FILE__ and __LINE__ to
-		report_leb_status.
-		* dwarf.h (report_leb_status): Don't report file and line
-		numbers.  Delete file and lnum parameters,
-		(READ_ULEB, READ_SLEB): Adjust.
-
-2021-07-10  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-09  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld/NEWS: Clarify -z [no]indirect-extern-access
-	-z [no]indirect-extern-access are only for x86 ELF linker.
-
-2021-07-09  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Limits 2 GNU_PROPERTY_1_NEEDED tests to Linux/x86
-	Run property-1_needed-1b.d and property-1_needed-1c.d, which pass
-	-z [no]indirect-extern-access to linker, only run for Linux/x86 targets.
-
-		* testsuite/ld-elf/property-1_needed-1b.d: Only run for
-		Linux/x86 targets.
-		* testsuite/ld-elf/property-1_needed-1c.d: Likewise.
-
-2021-07-09  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Add GNU_PROPERTY_1_NEEDED check
-	If GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS is set on any input
-	relocatable files:
-
-	1. Don't generate copy relocations.
-	2. Turn off extern_protected_data since it implies
-	GNU_PROPERTY_NO_COPY_ON_PROTECTED.
-	3. Treate reference to protected symbols with indirect external access
-	as local.
-	4. Set GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS on output.
-	5. When generating executable, clear this bit when there are non-GOT or
-	non-PLT relocations in input relocatable files without the bit set.
-	6. Add -z [no]indirect-extern-access to control indirect external access.
-
-	bfd/
-
-		* elf-bfd (elf_obj_tdata): Add has_indirect_extern_access.
-		(elf_has_indirect_extern_access): New.
-		* elf-properties.c (_bfd_elf_parse_gnu_properties): Set
-		elf_has_indirect_extern_access and elf_has_no_copy_on_protected
-		when seeing GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS.
-		(elf_write_gnu_propertie): Add an argument to pass link_info.
-		Set needed_1_p for GNU_PROPERTY_1_NEEDED in memory.
-		(_bfd_elf_link_setup_gnu_properties): Handle
-		GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS for
-		-z indirect-extern-access.  Set nocopyreloc to true and
-		extern_protected_data to false for indirect external access.
-		(_bfd_elf_convert_gnu_properties): Updated.
-		* elf32-i386.c (elf_i386_check_relocs): Set
-		non_got_ref_without_indirect_extern_access on legacy non-GOT or
-		non-PLT references.
-		* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
-		* elflink.c (_bfd_elf_symbol_refs_local_p): Return true for
-		STV_PROTECTED symbols with indirect external access.
-		* elfxx-x86.c (_bfd_x86_elf_adjust_dynamic_symbol): Clear
-		indirect_extern_access for legacy non-GOT/non-PLT references.
-		* elfxx-x86.h (elf_x86_link_hash_entry): Add
-		non_got_ref_without_indirect_extern_access.
-
-	include/
-
-		* bfdlink.h (bfd_link_info): Add indirect_extern_access and
-		needed_1_p.  Change nocopyreloc to int.
-
-	ld/
-
-		* NEWS: Mention -z [no]indirect-extern-access
-		* ld.texi: Document -z [no]indirect-extern-access
-		* ldmain.c (main): Initialize link_info.indirect_extern_access
-		to -1.
-		* emulparams/extern_protected_data.sh: Support
-		-z [no]indirect-extern-access.
-		* testsuite/ld-elf/indirect-extern-access-1.rd: New file
-		* testsuite/ld-elf/indirect-extern-access-1a.c: Likewise.
-		* testsuite/ld-elf/indirect-extern-access-1b.c: Likewise.
-		* testsuite/ld-elf/indirect-extern-access-2.rd: Likewise.
-		* testsuite/ld-elf/indirect-extern-access-2a.c: Likewise.
-		* testsuite/ld-elf/indirect-extern-access-2b.c: Likewise.
-		* testsuite/ld-elf/indirect-extern-access-3.rd: Likewise.
-		* testsuite/ld-elf/indirect-extern-access.S: Likewise.
-		* testsuite/ld-elf/property-1_needed-1b.d: Likewise.
-		* testsuite/ld-elf/property-1_needed-1c.d: Likewise.
-		* testsuite/ld-x86-64/indirect-extern-access.rd: Likewise.
-		* testsuite/ld-x86-64/protected-data-1.h: Likewise.
-		* testsuite/ld-x86-64/protected-data-1a.c: Likewise.
-		* testsuite/ld-x86-64/protected-data-1b.c: Likewise.
-		* testsuite/ld-x86-64/protected-data-2a.S: Likewise.
-		* testsuite/ld-x86-64/protected-data-2b.S: Likewise.
-		* testsuite/ld-x86-64/protected-func-2a.S: Likewise.
-		* testsuite/ld-x86-64/protected-func-2b.S: Likewise.
-		* testsuite/ld-x86-64/protected-func-2c.c: Likewise.
-		* testsuite/ld-elf/linux-x86.exp: Run test with
-		GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS.
-		* testsuite/ld-x86-64/x86-64.exp: Run tests for protected
-		function and data with indirect external access.
-
-2021-07-09  H.J. Lu  <hjl.tools@gmail.com>
-
-	elf: Add GNU_PROPERTY_1_NEEDED
-	Add GNU_PROPERTY_1_NEEDED:
-
-	 #define GNU_PROPERTY_1_NEEDED      GNU_PROPERTY_UINT32_OR_LO
-
-	to indicate the needed properties by the object file.
-
-	Add GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS:
-
-	 #define GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS  (1U << 0)
-
-	to indicate that the object file requires canonical function pointers and
-	cannot be used with copy relocation.
-
-	binutils/
-
-		* readelf.c (decode_1_needed): New.
-		(print_gnu_property_note): Handle GNU_PROPERTY_1_NEEDED.
-
-	include/
-
-		* elf/common.h (GNU_PROPERTY_1_NEEDED): New.
-		(GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS): Likewise.
-
-	ld/
-
-		* testsuite/ld-elf/property-1_needed-1a.d: New file.
-		* testsuite/ld-elf/property-1_needed-1.s: Likewise.
-
-2021-07-09  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-09  Lancelot SIX  <lsix@lancelotsix.com>
-
-	Remove unused parameter in maybe_software_singlestep
-	While working around, I noticed that the last parameter of
-	maybe_software_singlestep is never used.  This path removes
-	it.
-
-	Built on x86_64-linux-gnu and riscv64-linux-gnu.
-
-	gdb/ChangeLog:
-
-		* infrun.c (maybe_software_singlestep): Remove unused PC
-		parameter.
-		(resume_1): Update calls to maybe_software_singlestep.
-
-2021-07-08  H.J. Lu  <hjl.tools@gmail.com>
-
-	x86-64: Disallow PC reloc against weak undefined symbols in PIE
-	Disallow PC relocations against weak undefined symbols in PIE since they
-	can lead to non-zero address at run-time.
-
-	bfd/
-
-		PR ld/21782
-		* elf64-x86-64.c (elf_x86_64_relocate_section): Disallow PC
-		relocations against weak undefined symbols in PIE.
-
-	ld/
-
-		PR ld/21782
-		* testsuite/ld-x86-64/pie3.d: Expect linker error.
-
-2021-07-08  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Limit cache size and add --max-cache-size=SIZE
-	When link_info.keep_memory is true, linker caches the relocation
-	information and symbol tables of input files in memory.  When there
-	are many input files with many relocations, we may run out of memory.
-	Add --max-cache-size=SIZE to set the maximum cache size.
-
-	bfd/
-
-		PR ld/18028
-		* bfd.c (bfd): Add alloc_size.
-		* elf-bfd.h (_bfd_elf_link_info_read_relocs): New.
-		* elf32-i386.c (elf_i386_check_relocs): Use _bfd_link_keep_memory.
-		Update cache_size.
-		* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
-		* elflink.c (_bfd_elf_link_read_relocs): Renamed to ...
-		(_bfd_elf_link_info_read_relocs): This.  Update cache_size.
-		(_bfd_elf_link_read_relocs): New.
-		(_bfd_elf_link_check_relocs): Call _bfd_elf_link_info_read_relocs
-		instead of _bfd_elf_link_read_relocs.
-		(elf_link_add_object_symbols): Likewise.
-		(elf_link_input_bfd): Likewise.
-		(init_reloc_cookie_rels): Likewise.
-		(init_reloc_cookie): Update cache_size.  Call
-		_bfd_elf_link_info_read_relocs instead of
-		_bfd_elf_link_read_relocs.
-		(link_info_ok): New.
-		(elf_gc_smash_unused_vtentry_relocs): Updated.  Call
-		_bfd_elf_link_info_read_relocs instead of
-		_bfd_elf_link_read_relocs.
-		(bfd_elf_gc_sections): Use link_info_ok.  Pass &link_info_ok
-		to elf_gc_smash_unused_vtentry_relocs.
-		* libbfd-in.h (_bfd_link_keep_memory): New.
-		* linker.c (_bfd_link_keep_memory): New.
-		* opncls.c (bfd_alloc): Update alloc_size.
-		* bfd-in2.h: Regenerated.
-		* libbfd.h: Likewise.
-
-	include/
-
-		PR ld/18028
-		* bfdlink.h (bfd_link_info): Add cache_size and max_cache_size.
-
-	ld/
-
-		PR ld/18028
-		* NEWS: Mention --max-cache-size=SIZE.
-		* ld.texi: Document --max-cache-size=SIZE.
-		* ldlex.h (option_values): Add OPTION_MAX_CACHE_SIZE.
-		* ldmain.c: (main): Set link_info.max_cache_size to -1.
-		* lexsup.c (ld_options): Add --max-cache-size=SIZE.
-		(parse_args): Support OPTION_MAX_CACHE_SIZE.
-		* testsuite/ld-bootstrap/bootstrap.exp: Add test for
-		--max-cache-size=-1.
-
-2021-07-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: don't set Linux-specific displaced stepping methods in s390_gdbarch_init
-	According to bug 28056, running an s390x binary gives:
-
-	    (gdb) run
-	    Starting program: /usr/bin/ls
-	    /home/ubuntu/tmp/gdb-11.0.90.20210705/gdb/linux-tdep.c:2550: internal-error: displaced_step_prepare_status linux_displaced_step_prepare(gdbarch*, thread_info*, CORE_ADDR&): Assertion `gdbarch_data->num_disp_step_buffers > 0' failed.
-
-	This is because the s390 architecture registers some Linux-specific
-	displaced stepping callbacks in the OS-agnostic s390_gdbarch_init:
-
-	    set_gdbarch_displaced_step_prepare (gdbarch, linux_displaced_step_prepare);
-	    set_gdbarch_displaced_step_finish (gdbarch, linux_displaced_step_finish);
-	    set_gdbarch_displaced_step_restore_all_in_ptid
-	      (gdbarch, linux_displaced_step_restore_all_in_ptid);
-
-	But then the Linux-specific s390_linux_init_abi_any passes
-	num_disp_step_buffers=0 to linux_init_abi:
-
-	    linux_init_abi (info, gdbarch, 0);
-
-	The problem happens when linux_displaced_step_prepare is called for the
-	first time.  It tries to allocate the displaced stepping buffers, but
-	sees that the number of displaced stepping buffers for that architecture
-	is 0, which is unexpected / invalid.
-
-	s390_gdbarch_init should not register the linux_* callbacks, that is
-	expected to be done by linux_init_abi.  If debugging a bare-metal s390
-	program, or an s390 program on another OS GDB doesn't know about, we
-	wouldn't want to use them.  We would either register no callbacks, if
-	displaced stepping isn't supported, or register a different set of
-	callbacks if we wanted to support displaced stepping in those cases.
-
-	The commit that refactored the displaced stepping machinery and
-	introduced these set_gdbarch_displaced_step_* calls is 187b041e2514
-	("gdb: move displaced stepping logic to gdbarch, allow starting
-	concurrent displaced steps").  However, even before that,
-	s390_gdbarch_init did:
-
-	  set_gdbarch_displaced_step_location (gdbarch, linux_displaced_step_location);
-
-	... which already seemed wrong.  The Linux-specific callback was used
-	even for non-Linux system.  Maybe that was on purpose, because it would
-	also happen to work in some other non-Linux case, or maybe it was simply
-	a mistake.  I'll assume that this was a small mistake when
-	s390-tdep.{h,c} where factored out of s390-linux-tdep.c, in d6e589456475
-	("s390: Split up s390-linux-tdep.c into two files").
-
-	Fix this by removing the setting of these displaced step callbacks from
-	s390_gdbarch_init.  Instead, pass num_disp_step_buffers=1 to
-	linux_init_abi, in s390_linux_init_abi_any.  Doing so will cause
-	linux_init_abi to register these same callbacks.  It will also mean that
-	when debugging a bare-metal s390 executable or an executable on another
-	OS that GDB doesn't know about, gdbarch_displaced_step_prepare won't be
-	set, so displaced stepping won't be used.
-
-	This patch will need to be merged in the gdb-11-branch, since this is a
-	GDB 11 regression, so here's the ChangeLog entry:
-
-	gdb/ChangeLog:
-
-		* s390-linux-tdep.c (s390_linux_init_abi_any): Pass 1 (number
-		of displaced stepping buffers to linux_init_abi.
-		* s390-tdep.c (s390_gdbarch_init): Don't set the Linux-specific
-		displaced-stepping gdbarch callbacks.
-
-	Change-Id: Ieab2f8990c78fde845ce7378d6fd4ee2833800d5
-	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28056
-
-2021-07-08  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/Makefile.in: remove testsuite from SUBDIRS
-	When distclean-ing a configured / built gdb directory, like so:
-
-	    $ ./configure && make all-gdb && make distclean
-
-	The distclean operation fails with:
-
-	    Missing testsuite/Makefile
-
-	If we look at the SUBDIRS variable in the generated gdb/Makefile,
-	testsuite is there twice:
-
-	    SUBDIRS = doc  testsuite data-directory testsuite
-
-	So we try distclean-ing the testsuite directory twice.  The second time,
-	gdb/testsuite/Makefile doesn't exist, so it fails.
-
-	The first "testsuite" comes from the @subdirs@ replacement, because of
-	the `AC_CONFIG_SUBDIRS` macro in gdb/configure.ac.  The second one is
-	hard-coded in gdb/Makefile.in:
-
-	    SUBDIRS = doc @subdirs@ data-directory testsuite
-
-	The hard-coded was added by:
-
-	    bdbbcd577460 ("Always build 'all' in gdb/testsuite")
-
-	which came after `testsuite` was removed from @subdirs@ by:
-
-	    f99d1d37496f ("Remove gdb/testsuite/configure")
-
-	My commit a100a94530eb ("gdb/testsuite: restore configure script")
-	should have removed the hard-coded `testsuite`, since it added it back
-	as a "subdir", but I missed it because I only looked f99d1d37496f to
-	write my patch.
-
-	Fix this by removing the hard-coded one.
-
-	This patch should be pushed to both master and gdb-11-branch, hence the
-	ChangeLog entry:
-
-	gdb/ChangeLog:
-
-		* Makefile.in (SUBDIRS): Remove testsuite.
-
-	Change-Id: I63e5590b1a08673c646510b3ecc74600eae9f92d
-
-2021-07-08  Nick Clifton  <nickc@redhat.com>
-
-	Updated Portuguese translation for the BFD sub-directory
-
-2021-07-08  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix gdb.guile/scm-breakpoint.exp with guile 3.0
-	When running test-case gdb.guile/scm-breakpoint.exp on openSUSE Tumbleweed
-	with guile 3.0, I run into:
-	...
-	(gdb) guile (define cp (make-breakpoint "syscall" #:type BP_CATCHPOINT))^M
-	ERROR: In procedure make-breakpoint:^M
-	In procedure gdbscm_make_breakpoint: unsupported breakpoint type in \
-	  position 3: "BP_CATCHPOINT"^M
-	Error while executing Scheme code.^M
-	(gdb) FAIL: gdb.guile/scm-breakpoint.exp: test_catchpoints: \
-	  create a catchpoint via the api
-	...
-
-	The same test passes on openSUSE Leap 15.2 with guile 2.0, where the second
-	line of the error message starts with the same prefix as the first:
-	...
-	ERROR: In procedure gdbscm_make_breakpoint: unsupported breakpoint type in \
-	  position 3: "BP_CATCHPOINT"^M
-	...
-
-	I observe the same difference in many other tests, f.i.:
-	...
-	(gdb) gu (print (value-add i '()))^M
-	ERROR: In procedure value-add:^M
-	In procedure gdbscm_value_add: Wrong type argument in position 2: ()^M
-	Error while executing Scheme code.^M
-	(gdb) PASS: gdb.guile/scm-math.exp: catch error in guile type conversion
-	...
-	but it doesn't cause FAILs anywhere else.
-
-	Fix this by updating the regexp to make the "ERROR: " prefix optional.
-
-	Tested on x86_64-linux, with both guile 2.0 and 3.0.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-07  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.guile/scm-breakpoint.exp: Make additional "ERROR: " prefix in
-		exception printing optional.
-
-2021-07-08  Mike Frysinger  <vapier@gentoo.org>
-
-	sim: erc32: use libsim.a for common objects
-	We're starting to move more objects to the common build that sis did
-	not need before, so linking them is causing problems (when common
-	objects end up needing symbols from non-common objects).  Switch it
-	to the libsim.a archive which will allow the link to pull out only
-	what it needs.
-
-2021-07-08  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-07  Nick Clifton  <nickc@redhat.com>
-
-	Remove an accidental change to elfcode.h included as part of commit 6e0dfbf420.
-		PR 27659
-		* elfcode.h (elf_swap_symbol_out): Revert accidental change that
-		removed an abort if the shndx pointer is NULL.
-
-2021-07-07  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Check archive only for archive member
-	Since plugin_maybe_claim calls bfd_close on the original input BFD if it
-	isn't an archive member, pass NULL to bfd_plugin_close_file_descriptor
-	to indicate that the BFD isn't an archive member.
-
-	bfd/
-
-		PR ld/18028
-		* plugin.c (bfd_plugin_close_file_descriptor): Check archive
-		only of abfd != NULL.
-		(try_claim): Pass NULL to bfd_plugin_close_file_descriptor if
-		it isn't an archive member.
-
-	ld/
-
-		PR ld/18028
-		* plugin.c (plugin_input_file): Add comments for abfd and ibfd.
-		(plugin_object_p): Set input->ibfd to NULL if it isn't an
-		archive member.
-
-2021-07-07  Andreas Krebbel  <krebbel@linux.ibm.com>
-
-	Add changelog entries for last commit
-
-2021-07-07  Andreas Krebbel  <krebbel@linux.ibm.com>
-
-	IBM Z: Add another arch14 instruction
-	opcodes/
-
-		* opcodes/s390-opc.txt: Add qpaci.
-
-	gas/
-
-		* testsuite/gas/s390/zarch-arch14.d: Add qpaci.
-		* testsuite/gas/s390/zarch-arch14.s: Add qpaci.
-
-2021-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	Fix Solaris gprof build with --disable-nls
-	gprof fails to compile on Solaris 10 and 11.3 with --disable-nls:
-
-	In file included from /vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/gprof.h:33,
-	                 from /vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/basic_blocks.c:24:
-	/usr/include/libintl.h:45:14: error: expected identifier or '(' before 'const'
-	   45 | extern char *dcgettext(const char *, const char *, const int);
-	      |              ^~~~~~~~~
-	/usr/include/libintl.h:46:14: error: expected identifier or '(' before 'const'
-	   46 | extern char *dgettext(const char *, const char *);
-	      |              ^~~~~~~~
-	/usr/include/libintl.h:47:14: error: expected identifier or '(' before 'const'
-	   47 | extern char *gettext(const char *);
-	      |              ^~~~~~~
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:165:33:
-	error: expected identifier or '(' before 'do'
-	  165 | # define textdomain(Domainname) do {} while (0)
-	      |                                 ^~
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:165:39:
-	error: expected identifier or '(' before 'while'
-	  165 | # define textdomain(Domainname) do {} while (0)
-	      |                                       ^~~~~
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:166:46:
-	error: expected identifier or '(' before 'do'
-	  166 | # define bindtextdomain(Domainname, Dirname) do {} while (0)
-	      |                                              ^~
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/gprof/../bfd/sysdep.h:166:52:
-	error: expected identifier or '(' before 'while'
-	  166 | # define bindtextdomain(Domainname, Dirname) do {} while (0)
-	      |                                                    ^~~~~
-	/usr/include/libintl.h:55:14: error: expected identifier or '(' before 'unsigned'
-	   55 | extern char *dcngettext(const char *, const char *,
-	      |              ^~~~~~~~~~
-	/usr/include/libintl.h:57:14: error: expected identifier or '(' before 'unsigned'
-	   57 | extern char *dngettext(const char *, const char *,
-	      |              ^~~~~~~~~
-	/usr/include/libintl.h:59:14: error: expected identifier or '(' before 'unsigned'
-	   59 | extern char *ngettext(const char *, const char *, unsigned long int);
-	      |              ^~~~~~~~
-
-	This is a known issue already partially fixed in binutils/sysdep.h.  For
-	gprof, the same fix needs to be applied in bfd/sysdep.h, as the
-	following patch does.  Tested on i386-pc-solaris2.10 and
-	i386-pc-solaris2.11.
-
-	2021-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-		bfd:
-		* sysdep.h [!ENABLE_NLS]: Prevent inclusion of <libintl.h> on
-		Solaris.
-
-2021-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	Check for strnlen declaration to fix Solaris 10 build
-	binutils currently fails to compile on Solaris 10:
-
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/bfd/opncls.c: In function 'bfd_get_debug_link_info_1':
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/bfd/opncls.c:1231:16: error: implicit declaration of function 'strnlen' [-Werror=implicit-function-declaration]
-	 1231 |	  crc_offset = strnlen (name, size) + 1;
-	      |		       ^~~~~~~
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/bfd/opncls.c:1231:16: error: incompatible implicit declaration of built-in function 'strnlen' [-Werror]
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/bfd/opncls.c: In function 'bfd_get_alt_debug_link_info':
-	/vol/src/gnu/binutils/hg/binutils-2.37-branch/git/bfd/opncls.c:1319:20: error: incompatible implicit declaration of built-in function 'strnlen' [-Werror]
-	 1319 |	  buildid_offset = strnlen (name, size) + 1;
-	      |			   ^~~~~~~
-
-	and in a couple of other places.  The platform lacks strnlen, and while
-	libiberty.h can provide a fallback declaration, the necessary configure
-	test isn't run.
-
-	Fixed with the following patch.  Tested on i386-pc-solaris2.10.
-
-	2021-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-		bfd:
-		* configure.ac: Check for strnlen declaration.
-		* configure, config.in: Regenerate.
-
-		binutils:
-		* configure.ac: Check for strnlen declaration.
-		* configure, config.in: Regenerate.
-
-2021-07-07  Nick Clifton  <nickc@redhat.com>
-
-	Fix problems translating messages when a percentage sign appears at the end of a string.
-		PR 28051
-	gas	* config/tc-i386.c (offset_in_range): Reformat error messages in
-		order to fix problems when translating.
-		(md_assemble): Likewise.
-		* messages.c (as_internal_value_out_of_range): Likewise.
-		* read.c (emit_expr_with_reloc): Likewise.
-		* testsuite/gas/all/overflow.l Change expected output format.
-		* po/gas.pot: Regenerate.
-
-	bfd	* coff-rs6000.c (xcoff_reloc_type_tls): Reformat error messages in
-		order to fix problems when translating.
-		* cofflink.c (_bfd_coff_write_global_sym): Likewise.
-		* elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub):
-		Likewise.
-		* po/bfd.pot: Regenerate.
-
-2021-07-07  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-06  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: introduce iterator_range, remove next_adapter
-	I was always a bit confused by next_adapter, because it kind of mixes
-	the element type and the iterator type.  In reality, it is not much more
-	than a class that wraps two iterators (begin and end).  However, it
-	assumes that:
-
-	 - you can construct the begin iterator by passing a pointer to the
-	   first element of the iterable
-	 - you can default-construct iterator to make the end iterator
-
-	I think that by generalizing it a little bit, we can re-use it at more
-	places.
-
-	Rename it to "iterator_range".  I think it describes a bit better: it's
-	a range made by wrapping a begin and end iterator.  Move it to its own
-	file, since it's not related to next_iterator anymore.
-
-	iterator_range has two constructors.  The variadic one, where arguments
-	are forwarded to construct the underlying begin iterator.  The end
-	iterator is constructed through default construction.  This is a
-	generalization of what we have today.
-
-	There is another constructor which receives already constructed begin
-	and end iterators, useful if the end iterator can't be obtained by
-	default-construction.  Or, if you wanted to make a range that does not
-	end at the end of the container, you could pass any iterator as the
-	"end".
-
-	This generalization allows removing some "range" classes, like
-	all_inferiors_range.  These classes existed only to pass some arguments
-	when constructing the begin iterator.  With iterator_range, those same
-	arguments are passed to the iterator_range constructed and then
-	forwarded to the constructed begin iterator.
-
-	There is a small functional difference in how iterator_range works
-	compared to next_adapter.  next_adapter stored the pointer it received
-	as argument and constructeur an iterator in the `begin` method.
-	iterator_range constructs the begin iterator and stores it as a member.
-	Its `begin` method returns a copy of that iterator.
-
-	With just iterator_range, uses of next_adapter<foo> would be replaced
-	with:
-
-	  using foo_iterator = next_iterator<foo>;
-	  using foo_range = iterator_range<foo_iterator>;
-
-	However, I added a `next_range` wrapper as a direct replacement for
-	next_adapter<foo>.  IMO, next_range is a slightly better name than
-	next_adapter.
-
-	The rest of the changes are applications of this new class.
-
-	gdbsupport/ChangeLog:
-
-		* next-iterator.h (class next_adapter): Remove.
-		* iterator-range.h: New.
-
-	gdb/ChangeLog:
-
-		* breakpoint.h (bp_locations_range): Remove.
-		(bp_location_range): New.
-		(struct breakpoint) <locations>: Adjust type.
-		(breakpoint_range): Use iterator_range.
-		(tracepoint_range): Use iterator_range.
-		* breakpoint.c (breakpoint::locations): Adjust return type.
-		* gdb_bfd.h (gdb_bfd_section_range): Use iterator_range.
-		* gdbthread.h (all_threads_safe): Pass argument to
-		all_threads_safe_range.
-		* inferior-iter.h (all_inferiors_range): Use iterator_range.
-		(all_inferiors_safe_range): Use iterator_range.
-		(all_non_exited_inferiors_range): Use iterator_range.
-		* inferior.h (all_inferiors, all_non_exited_inferiors): Pass
-		inferior_list as argument.
-		* objfiles.h (struct objfile) <compunits_range>: Remove.
-		<compunits>: Return compunit_symtab_range.
-		* progspace.h (unwrapping_objfile_iterator)
-		<unwrapping_objfile_iterator>: Take parameter by value.
-		(unwrapping_objfile_range): Use iterator_range.
-		(struct program_space) <objfiles_range>: Define with "using".
-		<objfiles>: Adjust.
-		<objfiles_safe_range>: Define with "using".
-		<objfiles_safe>: Adjust.
-		<solibs>: Return so_list_range, define here.
-		* progspace.c (program_space::solibs): Remove.
-		* psymtab.h (class psymtab_storage) <partial_symtab_iterator>:
-		New.
-		<partial_symtab_range>: Use iterator_range.
-		* solist.h (so_list_range): New.
-		* symtab.h (compunit_symtab_range):
-		New.
-		(symtab_range): New.
-		(compunit_filetabs): Change to a function.
-		* thread-iter.h (inf_threads_range,
-		inf_non_exited_threads_range, safe_inf_threads_range,
-		all_threads_safe_range): Use iterator_range.
-		* top.h (ui_range): New.
-		(all_uis): Use ui_range.
-
-	Change-Id: Ib7a9d2a3547f45f01aa1c6b24536ba159db9b854
-
-2021-07-06  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb/testsuite: restore configure script
-	Commit f99d1d37496f ("Remove gdb/testsuite/configure") removed
-	gdb/testsuite/configure, as anything gdb/testsuite/configure did could
-	be done by gdb/configure.
-
-	There is however one use case that popped up when this changed
-	propagated to downstream consumers, to run the testsuite on an already
-	built GDB.  In the workflow of ROCm-GDB at AMD, a GDB package is built
-	in a CI job.  This GDB package is then tested on different machines /
-	hardware configurations as part of other CI jobs.  To achieve this,
-	those CI jobs only configure the testsuite directory and run "make
-	check" with an appropriate board file.
-
-	In light of this use case, the way I see it is that gdb/testsuite could
-	be considered its own project.  It could be stored in a completely
-	different repo if we want to, it just happens to be stored inside gdb/.
-
-	Since the only downside of having gdb/testsuite/configure is that it
-	takes a few more seconds to run, but on the other hand it's quite useful
-	for some people, I propose re-adding it.
-
-	In a sense, this is revert of f99d1d37496f, but it's not a direct
-	git-revert, as some things have changed since.
-
-	gdb/ChangeLog:
-
-		* configure.ac: Remove things that were moved from
-		testsuite/configure.ac.
-		* configure: Re-generate.
-
-	gdb/testsuite/ChangeLog:
-
-		* configure.ac: Restore.
-		* configure: Re-generate.
-		* aclocal.m4: Re-generate.
-		* Makefile.in (distclean): Add config.status.
-		(Makefile): Adjust paths.
-		(lib/pdtrace): Adjust paths.
-		(config.status): Add.
-
-	Change-Id: Ic38c79485e1835712d9c99649c9dfb59667254f1
-
-2021-07-06  Joel Brobecker  <brobecker@adacore.com>
-
-	Rename gdb/ChangeLog to gdb/ChangeLog-2021
-	Now that ChangeLog entries are no longer used for GDB patches,
-	this commit renames the file gdb/ChangeLog to gdb/ChangeLog-2021,
-	similar to what we would do in the context of the "Start of New
-	Year" procedure.
-
-	The purpose of this change is to avoid people merging ChangeLog
-	entries by mistake when applying existing commits that they are
-	currently working on.
-
-2021-07-06  Dan Streetman  <ddstreet@canonical.com>
-
-	sim: ppc: add missing empty targets
-	These are copied from sim/common/Make-common.in.
-
-	On ppc the build fails without at least the 'info' target, e.g.:
-
-	Making info in ppc
-	make[4]: Entering directory '/<<BUILDDIR>>/gdb-10.2.2974.g5b45e89f56d+21.10.20210510155809/build/default/sim/ppc'
-	make[4]: *** No rule to make target 'info'.  Stop.
-
-2021-07-06  Yuri Chornoivan  <yurchor@ukr.net>
-
-	PR 28053: Fix spelling mistakes: usupported -> unsupported and relocatation -> relocation.
-
-2021-07-06  Michael Matz  <matz@suse.de>
-
-	elf/riscv: Fix relaxation with aliases [PR28021]
-	the fix for PR22756 only changed behaviour for hidden aliases,
-	but the same situation exists for non-hidden aliases: sym_hashes[]
-	can contain multiple entries pointing to the same symbol structure
-	leading to relaxation adjustment to be applied twice.
-
-	Fix this by testing for duplicates for everything that looks like it
-	has a version.
-
-	PR ld/28021
-
-	bfd/
-		* elfnn-riscv.c (riscv_relax_delete_bytes): Check for any
-		versioning.
-
-	ld/
-		* testsuite/ld-riscv-elf/relax-twice.ver: New.
-		* testsuite/ld-riscv-elf/relax-twice-1.s: New.
-		* testsuite/ld-riscv-elf/relax-twice-2.s: New.
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp
-		(run_relax_twice_test): New, and call it.
-
-2021-07-06  Pedro Alves  <pedro@palves.net>
-	    Qingchuan Shi  <qingchuan.shi@amd.com>
-
-	Update gdb performance testsuite to be compatible with Python 3.8
-	Running "make check-perf" on a system with Python 3.8 (e.g., Ubuntu
-	20.04) runs into this Python problem:
-
-	  Traceback (most recent call last):
-	    File "<string>", line 1, in <module>
-	    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 65, in run
-	      self.execute_test()
-	    File "<string>", line 35, in execute_test
-	    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 45, in measure
-	      m.start(id)
-	    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 102, in start
-	      self.start_time = time.clock()
-	  AttributeError: module 'time' has no attribute 'clock'
-	  Error while executing Python code.
-	  (gdb) FAIL: gdb.perf/single-step.exp: python SingleStep(1000).run()
-
-	... many times over.
-
-	The problem is that the testsuite is using time.clock(), deprecated in
-	Python 3.3 and finaly removed in Python 3.8.  The guidelines say to
-	use time.perf_counter() or time.process_time() instead depending on
-	requirements.  Looking at the current description of those functions,
-	at:
-
-	   https://docs.python.org/3.10/library/time.html
-
-	we have:
-
-	   time.perf_counter() -> float
-
-	       Return the value (in fractional seconds) of a performance
-	       counter, i.e. a clock with the highest available resolution to
-	       measure a short duration. It does include time elapsed during
-	       sleep and is system-wide. (...)
-
-	   time.process_time() -> float
-
-	       Return the value (in fractional seconds) of the sum of the
-	       system and user CPU time of the current process. It does not
-	       include time elapsed during sleep. It is process-wide by
-	       definition. (...)
-
-	I'm thinking that it's just best to record both instead of picking
-	one.  So this patch replaces the MeasurementCpuTime measurement class
-	with two new classes -- MeasurementPerfCounter and
-	MeasurementProcessTime.  Correspondingly, this changes the reports in
-	testsuite/perftest.log -- we have two new "perf_counter" and
-	"process_time" measurements and the "cpu_time" measurement is gone.  I
-	don't suppose breaking backward compatibility here is a big problem.
-	I suspect no one is really tracking long term performance using the
-	perf testsuite today.  And if they are, it shouldn't be hard to adjust.
-
-	For backward compatility, with Python < 3.3, both perf_counter and
-	process_time use the old time.clock.
-
-	gdb/testsuite/ChangeLog:
-	yyyy-mm-dd  Qingchuan Shi  <qingchuan.shi@amd.com>
-		    Pedro Alves  <pedro@palves.net>
-
-		* gdb.perf/lib/perftest/perftest.py: Import sys.
-		(time.perf_counter, time.process_time): Map to time.clock on
-		Python < 3.3.
-		(MeasurementCpuTime): Delete, replaced by...
-		(MeasurementPerfCounter, MeasurementProcessTime): .. these two new
-		classes.
-		* gdb.perf/lib/perftest/perftest.py: Import MeasurementPerfCounter
-		and MeasurementProcessTime instead of MeasurementCpuTime.
-		(TestCaseWithBasicMeasurements): Use MeasurementPerfCounter and
-		MeasurementProcessTime instead of MeasurementCpuTime.
-
-
-	Change-Id: Ia850c05d5ce57d2dada70ba5b0061f566444aa2b
-
-2021-07-06  Pedro Alves  <pedro@palves.net>
-
-	gdb.perf/: FAIL on Python errors, avoid "ERROR: internal buffer is full"
-	Currently, if you run make check-perf on a system with Python 3.8,
-	tests seen to PASS, but they actually test a lot less than intended,
-	due to:
-
-	 PerfTest::assemble, run ...
-	 python BackTrace(64).run()
-	 Traceback (most recent call last):
-	   File "<string>", line 1, in <module>
-	   File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 65, in run
-	     self.execute_test()
-	   File "<string>", line 49, in execute_test
-	   File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 45, in measure
-	     m.start(id)
-	   File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/measure.py", line 102, in start
-	     self.start_time = time.clock()
-	 AttributeError: module 'time' has no attribute 'clock'
-	 Error while executing Python code.
-	 (gdb) PASS: gdb.perf/backtrace.exp: python BackTrace(64).run()
-
-	And then, after fixing the above Python compatibility issues (which
-	will be a separate patch), I get 86 instances of overflowing expect's
-	buffer, like:
-
-	  ERROR: internal buffer is full.
-	  UNRESOLVED: gdb.perf/single-step.exp: python SingleStep(1000).run()
-
-	This patch fixes both problems by adding & using a gdb_test_python_run
-	routine that:
-
-	 - checks for Python errors
-	 - consumes output line by line
-
-	gdb/testsuite/ChangeLog:
-	yyyy-mm-dd  Pedro Alves  <pedro@palves.net>
-
-		* gdb.perf/backtrace.exp: Use gdb_test_python_run.
-		* gdb.perf/disassemble.exp: Use gdb_test_python_run.
-		* gdb.perf/single-step.exp: Use gdb_test_python_run.
-		* gdb.perf/skip-command.exp: Use gdb_test_python_run.
-		* gdb.perf/skip-prologue.exp: Use gdb_test_python_run.
-		* gdb.perf/solib.exp: Use gdb_test_python_run.
-		* gdb.perf/template-breakpoints.exp: Use gdb_test_python_run.
-		* lib/perftest.exp (gdb_test_python_run): New.
-
-	Change-Id: I007af36f164b3f4cda41033616eaaa4e268dfd2f
-
-2021-07-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Remove read1 timeout factor from gdb.base/info-macros.exp
-	At the moment some check-read1 timeouts are handled like this in
-	gdb.base/info-macros.exp:
-	...
-	gdb_test_multiple_with_read1_timeout_factor 10 "$test" $testname {
-	  -re "$r1$r2$r3" {
-	     pass $testname
-	  }
-	  -re ".*#define TWO.*\r\n$gdb_prompt" {
-	     fail $testname
-	  }
-	  -re ".*#define THREE.*\r\n$gdb_prompt" {
-	     fail $testname
-	  }
-	  -re ".*#define FOUR.*\r\n$gdb_prompt" {
-	     fail $testname
-	  }
-	}
-	...
-	which is not ideal.
-
-	We could use gdb_test_lines, but it currently doesn't support verifying
-	the absence of regexps, which is done using the clauses above calling fail.
-
-	Fix this by using gdb_test_lines and adding a -re-not syntax to
-	gdb_test_lines, such that we can do:
-	...
-	gdb_test_lines $test $testname $r1.*$r2 \
-	    -re-not "#define TWO" \
-	    -re-not "#define THREE" \
-	    -re-not "#define FOUR"
-	...
-
-	Tested on x86_64-linux, whith make targets check and check-read1.
-
-	Also observed that check-read1 execution time is reduced from 6m35s to 13s.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-06  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.base/info-macros.exp: Replace use of
-		gdb_test_multiple_with_read1_timeout_factor with gdb_test_lines.
-		(gdb_test_multiple_with_read1_timeout_factor): Remove.
-		* lib/gdb.exp (gdb_test_lines): Add handling or -re-not <regexp>.
-
-2021-07-06  Nelson Chu  <nelson.chu@sifive.com>
-
-	RISC-V: Fix the build broken with -Werror.
-	ChangeLog:
-
-	bfd/
-
-		* elfnn-riscv.c(riscv_elf_additional_program_headers): Removed the
-		unused variable s.
-		(riscv_elf_modify_segment_map): Added ATTRIBUTE_UNUSED for the
-		unused parameter info.
-
-2021-07-06  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/symtab] Fix skipping of import of C++ CU
-	Tom Tromey observed that when changing the language in
-	gdb.dwarf2/imported-unit-bp.exp from c to c++, the test failed.
-
-	This is due to this code in process_imported_unit_die:
-	...
-	      /* We're importing a C++ compilation unit with tag DW_TAG_compile_unit
-	         into another compilation unit, at root level.  Regard this as a hint,
-	         and ignore it.  */
-	      if (die->parent && die->parent->parent == NULL
-	          && per_cu->unit_type == DW_UT_compile
-	          && per_cu->lang == language_cplus)
-	        return;
-	...
-	which should have a partial symtabs counterpart.
-
-	Add the missing counterpart in process_psymtab_comp_unit.
-
-	Tested on x86_64-linux (openSUSE Leap 15.2), no regressions for config:
-	- using default gcc version 7.5.0
-	  (with 5 unexpected FAILs)
-	- gcc 10.3.0 and target board
-	  unix/-flto/-O0/-flto-partition=none/-ffat-lto-objects
-	  (with 1000 unexpected FAILs)
-
-	gdb/ChangeLog:
-
-	2021-07-06  Tom de Vries  <tdevries@suse.de>
-
-		* dwarf2/read.c (scan_partial_symbols): Skip top-level imports of
-		c++ CU.
-		* testsuite/gdb.dwarf2/imported-unit-bp.exp: Moved to ...
-		* testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl: ... here.
-		* testsuite/gdb.dwarf2/imported-unit-bp-c++.exp: New test.
-		* testsuite/gdb.dwarf2/imported-unit-bp-c.exp: New test.
-		* testsuite/gdb.dwarf2/imported-unit.exp: Update.
-
-2021-07-06  Kito Cheng  <kito.cheng@sifive.com>
-
-	RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR.
-	We added PT_RISCV_ATTRIBUTES to program header to make
-	.riscv.attribute easier to find in dynamic loader or kernel.
-
-	Ref:
-	https://github.com/riscv/riscv-elf-psabi-doc/pull/71
-
-	ChangeLog:
-
-	bfd/
-
-		* elfnn-riscv.c(RISCV_ATTRIBUTES_SECTION_NAME): New.
-		(riscv_elf_additional_program_headers): Ditto.
-		(riscv_elf_modify_segment_map): Ditto.
-		(elf_backend_additional_program_headers): Ditto.
-		(elf_backend_modify_segment_map): Ditto.
-		(elf_backend_obj_attrs_section): Use RISCV_ATTRIBUTES_SECTION_NAME
-		rather than string literal.
-
-	binutils/
-
-		* readelf.c(get_riscv_segment_type): New.
-		(get_segment_type): Handle EM_RISCV.
-
-	include/
-
-		* elf/riscv.h (PT_RISCV_ATTRIBUTES): New.
-		* testsuite/ld-elf/orphan-region.ld: Discard .riscv.attributes
-		section for simplify testcase.
-		* testsuite/ld-riscv-elf/attr-phdr.d: New.
-		* testsuite/ld-riscv-elf/attr-phdr.s: Ditto.
-		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Add attr-phdr to
-		testcase.
-
-2021-07-06  Alan Modra  <amodra@gmail.com>
-
-	Re: PR28055, segfault in bpf special reloc function
-		PR 28055
-		* elf64-bpf.c (bpf_elf_generic_reloc): Add missing ATTRIBUTE_UNUSED.
-
-2021-07-06  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-05  Tom Tromey  <tom@tromey.com>
-
-	Simplify debug_names index writing
-	This changes the .debug_names writer to find the TU indices in the
-	main loop over all CUs and TUs.  (An earlier patch applied this same
-	treatment to the .gdb_index writer.)
-
-	Simplify gdb_index writing
-	write_gdbindex writes the CUs first, then walks the signatured type
-	hash table to write out the TUs.  However, now that CUs and TUs are
-	unified in the DWARF reader, it's simpler to handle both of these in
-	the same loop.
-
-	Minor cleanup to addrmap_index_data::previous_valid
-	This changes addrmap_index_data::previous_valid to a bool, and
-	initializes it inline.
-
-2021-07-05  Tom Tromey  <tom@tromey.com>
-
-	Fix oddity in write_gdbindex
-	My recent patch to unify CUs and TUs introduced an oddity in
-	write_gdbindex.  Here, we pass 'i' to recursively_write_psymbols, but
-	we must instead pass 'counter', to handle the situation where a TU is
-	mixed in with the CUs.
-
-	I am not sure a test case for this is possible.  I think it can only
-	happen when using DWARF 5, where a TU appears in .debug_info.
-	However, this situation is already not handled correctly by
-	.gdb_index.  I filed a bug about this.
-
-2021-07-05  Tom Tromey  <tom@tromey.com>
-
-	Fix warning in symtab.c
-	The compiler gives this warning when building symtab.c:
-
-	../../binutils-gdb/gdb/symtab.c:4247:28: warning: 'to_match' may be used uninitialized in this function [-Wmaybe-uninitialized]
-
-	This patch fixes the warning by adding a gdb_assert_not_reached.
-
-2021-07-05  H.J. Lu  <hjl.tools@gmail.com>
-
-	ld: Cache and reuse the IR archive file descriptor
-	Linker plugin_object_p opens the IR archive for each IR archive member.
-	For GCC plugin, plugin_object_p closes the archive file descriptor.  But
-	for LLVM plugin, the archive file descriptor remains open.  If there are
-	3000 IR archive members, there are 3000 file descriptors for them.  We
-	can run out of file descriptors petty easily.
-
-	1. Add archive_plugin_fd and archive_plugin_fd_open_count to bfd so that
-	we can cache and reuse the IR archive file descriptor for all IR archive
-	members in the archive.
-	2. Add bfd_plugin_close_file_descriptor to properly close the IR archive
-	file descriptor.
-
-	bfd/
-
-		PR ld/28040
-		* archive.c (_bfd_archive_close_and_cleanup): Close the archive
-		plugin file descriptor if needed.
-		* bfd.c (bfd): Add archive_plugin_fd and
-		archive_plugin_fd_open_count.
-		* opncls.c (_bfd_new_bfd): Initialize to -1.
-		* plugin.c (bfd_plugin_open_input): Cache and reuse the archive
-		plugin file descriptor.
-		(bfd_plugin_close_file_descriptor): New function.
-		(try_claim): Call bfd_plugin_close_file_descriptor.
-		* plugin.h (bfd_plugin_close_file_descriptor): New.
-		* bfd-in2.h: Regenerated.
-
-	ld/
-
-		PR ld/28040
-		* plugin.c (plugin_input_file): Add ibfd.
-		(release_plugin_file_descriptor): New function.
-		(release_input_file): Call release_plugin_file_descriptor to
-		close input->fd.
-		(plugin_object_p): Call release_plugin_file_descriptor to close
-		input->fd.  Also call release_plugin_file_descriptor if not
-		claimed.
-		* testsuite/config/default.exp (RANLIB): New.
-		* testsuite/ld-plugin/lto.exp: Run ranlib test.
-
-2021-07-05  Nick Clifton  <nickc@redhat.com>
-
-	Restore the libiberty component of commit 50ad1254d5030d0804cbf89c758359ae202e8d55.
-	This commit has not yet been applied to the master sources in the gcc repository.
-	It was submitted here: https://gcc.gnu.org/pipermail/gcc-patches/2021-July/574405.html
-	The commit allows options to be set for the AR and RANLIB programs used when building libiberty, which in turn allows building with LTO enabled.
-
-	Updated translations (mainly Ukranian and French) triggered by creation of 2.37 branch.
-
-2021-07-05  Tom de Vries  <tdevries@suse.de>
-
-	[gdb/testsuite] Fix fail in gdb.fortran/ptype-on-functions.exp with gcc-7
-	Since commit 05b85772061 "gdb/fortran: Add type info of formal parameter for
-	clang" I see:
-	...
-	(gdb) ptype say_string^M
-	type = void (character*(*), integer(kind=4))^M
-	(gdb) FAIL: gdb.fortran/ptype-on-functions.exp: ptype say_string
-	...
-
-	The part of the commit causing the fail is:
-	...
-	 gdb_test "ptype say_string" \
-	-    "type = void \\(character\\*\\(\\*\\), integer\\(kind=\\d+\\)\\)"
-	+    "type = void \\(character\[^,\]+, $integer8\\)"
-	...
-	which fails to take into account that for gcc-7 and before, the type for
-	string length of a string argument is int, not size_t.
-
-	Fix this by allowing both $integer8 and $integer4.
-
-	Tested on x86_64-linux, with gcc-7 and gcc-10.
-
-	gdb/testsuite/ChangeLog:
-
-	2021-07-05  Tom de Vries  <tdevries@suse.de>
-
-		* gdb.fortran/ptype-on-functions.exp: Allow both $integer8 and
-		$integer4 for size of string length.
-
-2021-07-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: fall back on sigpending + sigwait if sigtimedwait is not available
-	The macOS platform does not provide sigtimedwait, so we get:
-
-	      CXX    compile/compile.o
-	    In file included from /Users/smarchi/src/binutils-gdb/gdb/compile/compile.c:46:
-	    /Users/smarchi/src/binutils-gdb/gdb/../gdbsupport/scoped_ignore_signal.h:69:4: error: use of undeclared identifier 'sigtimedwait'
-	              sigtimedwait (&set, nullptr, &zero_timeout);
-	              ^
-
-	An alternative to sigtimedwait with a timeout of 0 is to use sigpending,
-	to first check which signals are pending, and then sigwait, to consume
-	them.  Since that's slightly more expensive (2 syscalls instead of 1),
-	keep using sigtimedwait for the platforms that provide it, and fall back
-	to sigpending + sigwait for the others.
-
-	gdbsupport/ChangeLog:
-
-		* scoped_ignore_signal.h (struct scoped_ignore_signal)
-		<~scoped_ignore_signal>: Use sigtimedwait if HAVE_SIGTIMEDWAIT
-		is defined, else use sigpending + sigwait.
-
-	Change-Id: I2a72798337e81dd1bbd21214736a139dd350af87
-	Co-Authored-By: John Baldwin <jhb@FreeBSD.org>
-
-2021-07-05  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdbsupport/common.m4: check for sigtimedwait
-	The next patch will make the use of sigtimedwait conditional to whether
-	the platform provides it.  Start by adding a configure check for it.
-
-	gdbsupport/ChangeLog:
-
-		* common.m4 (GDB_AC_COMMON): Check for sigtimedwait.
-		* config.in, configure: Re-generate.
-
-	gdb/ChangeLog:
-
-		* config.in, configure: Re-generate.
-
-	gdbserver/ChangeLog:
-
-		* config.in, configure: Re-generate.
-
-	Change-Id: Ic7613fe14521b966b4d991bbcd0933ab14629c05
-
-2021-07-05  Alan Modra  <amodra@gmail.com>
-
-	Re: opcodes: constify & local meps macros
-	Commit f375d32b35ce changed a generated file.  Edit the source instead.
-
-		* mep.opc (macros): Make static and const.
-		(lookup_macro): Return and use const pointer.
-		(expand_macro): Make mac param const.
-		(expand_string): Make pmacro const.
-
-2021-07-05  Alan Modra  <amodra@gmail.com>
-
-	PR28055, segfault in bpf special reloc function
-	The testcase in this PR tickled two bugs fixed here.  output_bfd is
-	NULL when a reloc special_function is called for final linking and
-	when called from bfd_generic_get_relocated_section_contents.  Clearly
-	using output_bfd is wrong as it results in segfaults.  Not only that,
-	the endianness of the reloc field really should be that of the input.
-	The second bug was not checking that the entire reloc field was
-	contained in the section contents.
-
-		PR 28055
-		* elf64-bpf.c (bpf_elf_generic_reloc): Use correct bfd for bfd_put
-		and bfd_put_32 calls.  Correct section limit checks.
-
-2021-07-05  Alan Modra  <amodra@gmail.com>
-
-	PR28047, readelf crash due to assertion failure
-	DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_ref1, and
-	DW_FORM_ref_udata are all supposed to be within the containing unit.
-
-		PR 28047
-		* dwarf.c (get_type_abbrev_from_form): Add cu_end parameter.
-		Check DW_FORM_ref1 etc. arg against cu_end rather than end of
-		section.  Adjust all callers.
-
-2021-07-05  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-04  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	gdb: return early if no execution in darwin_solib_create_inferior_hook
-	When loading a file using the file command on macOS, we get:
-
-	    $ ./gdb -nx --data-directory=data-directory -q -ex "file ./test"
-	    Reading symbols from ./test...
-	    Reading symbols from /Users/smarchi/build/binutils-gdb/gdb/test.dSYM/Contents/Resources/DWARF/test...
-	    /Users/smarchi/src/binutils-gdb/gdb/thread.c:72: internal-error: struct thread_info *inferior_thread(): Assertion `current_thread_ != nullptr' failed.
-	    A problem internal to GDB has been detected,
-	    further debugging may prove unreliable.
-	    Quit this debugging session? (y or n)
-
-	The backtrace is:
-
-	    * frame #0: 0x0000000101fcb826 gdb`internal_error(file="/Users/smarchi/src/binutils-gdb/gdb/thread.c", line=72, fmt="%s: Assertion `%s' failed.") at errors.cc:52:3
-	      frame #1: 0x00000001018a2584 gdb`inferior_thread() at thread.c:72:3
-	      frame #2: 0x0000000101469c09 gdb`get_current_regcache() at regcache.c:421:31
-	      frame #3: 0x00000001015f9812 gdb`darwin_solib_get_all_image_info_addr_at_init(info=0x0000603000006d00) at solib-darwin.c:464:34
-	      frame #4: 0x00000001015f7a04 gdb`darwin_solib_create_inferior_hook(from_tty=1) at solib-darwin.c:515:5
-	      frame #5: 0x000000010161205e gdb`solib_create_inferior_hook(from_tty=1) at solib.c:1200:3
-	      frame #6: 0x00000001016d8f76 gdb`symbol_file_command(args="./test", from_tty=1) at symfile.c:1650:7
-	      frame #7: 0x0000000100abab17 gdb`file_command(arg="./test", from_tty=1) at exec.c:555:3
-	      frame #8: 0x00000001004dc799 gdb`do_const_cfunc(c=0x000061100000c340, args="./test", from_tty=1) at cli-decode.c:102:3
-	      frame #9: 0x00000001004ea042 gdb`cmd_func(cmd=0x000061100000c340, args="./test", from_tty=1) at cli-decode.c:2160:7
-	      frame #10: 0x00000001018d4f59 gdb`execute_command(p="t", from_tty=1) at top.c:674:2
-	      frame #11: 0x0000000100eee430 gdb`catch_command_errors(command=(gdb`execute_command(char const*, int) at top.c:561), arg="file ./test", from_tty=1, do_bp_actions=true)(char const*, int), char const*, int, bool) at main.c:523:7
-	      frame #12: 0x0000000100eee902 gdb`execute_cmdargs(cmdarg_vec=0x00007ffeefbfeba0 size=1, file_type=CMDARG_FILE, cmd_type=CMDARG_COMMAND, ret=0x00007ffeefbfec20) at main.c:618:9
-	      frame #13: 0x0000000100eed3a4 gdb`captured_main_1(context=0x00007ffeefbff780) at main.c:1322:3
-	      frame #14: 0x0000000100ee810d gdb`captured_main(data=0x00007ffeefbff780) at main.c:1343:3
-	      frame #15: 0x0000000100ee8025 gdb`gdb_main(args=0x00007ffeefbff780) at main.c:1368:7
-	      frame #16: 0x00000001000044f1 gdb`main(argc=6, argv=0x00007ffeefbff8a0) at gdb.c:32:10
-	      frame #17: 0x00007fff20558f5d libdyld.dylib`start + 1
-
-	The solib_create_inferior_hook call in symbol_file_command was added by
-	commit ea142fbfc9c1 ("Fix breakpoints on file reloads for PIE
-	binaries").  It causes solib_create_inferior_hook to be called while
-	the inferior is not running, which darwin_solib_create_inferior_hook
-	does not expect.  darwin_solib_get_all_image_info_addr_at_init, in
-	particular, assumes that there is a current thread, as it tries to get
-	the current thread's regcache.
-
-	Fix it by adding a target_has_execution check and returning early.  Note
-	that there is a similar check in svr4_solib_create_inferior_hook.
-
-	gdb/ChangeLog:
-
-		* solib-darwin.c (darwin_solib_create_inferior_hook): Return
-		early if no execution.
-
-	Change-Id: Ia11dd983a1e29786e5ce663d0fcaa6846dc611bb
-
-2021-07-04  GDB Administrator  <gdbadmin@sourceware.org>
-
-	Automatic date update in version.in
-
-2021-07-03  H.J. Lu  <hjl.tools@gmail.com>
-
-	gprof: Regenerate configure
-		* configure: Regenerated.
-
-2021-07-03  Joel Brobecker  <brobecker@adacore.com>
-
-	Update NEWS post GDB 11 branch creation.
-	gdb/ChangeLog:
-
-		* NEWS: Create a new section for the next release branch.
-		Rename the section of the current branch, now that it has
-		been cut.
-
-2021-07-03  Joel Brobecker  <brobecker@adacore.com>
-
-	Bump version to 12.0.50.DATE-git.
-	Now that the GDB 11 branch has been created, we can
-	bump the version number.
-
-	gdb/ChangeLog:
-
-		GDB 11 branch created (4b51505e33441c6165e7789fa2b6d21930242927):
-		* version.in: Bump version to 12.0.50.DATE-git.
-
-	gdb/testsuite/ChangeLog:
-
-		* gdb.base/default.exp: Change $_gdb_major to 12.
-
-2021-07-03  Tom Tromey  <tom@tromey.com>
-
-	Use 'bool' more idiomatically in dwarf_decode_lines
-	I noticed a couple of spots related to dwarf_decode_lines where the
-	'include_p' field was not being used idiomatically -- it is of type
-	bool now, so treat it as such.
-
-	gdb/ChangeLog
-	2021-07-03  Tom Tromey  <tom@tromey.com>
-
-		* dwarf2/read.c (lnp_state_machine::record_line): Use 'true'.
-		(dwarf_decode_lines): Remove '=='.
-
-2021-07-03  Nick Clifton  <nickc@redhat.com>
-
-	More minor updates to the how-to-make-a-release documentation
-
-	Update version number and regenerate files
-
-	Add markers for 2.37 branch
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3e5d8411c13..56c858e6ce4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,26 +1,26 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
+2023-07-24  Johannes Schauer Marin Rodrigues  <josch@debian.org>
 
-	This is the 2.41 release.
-	* configure: Regenerate.
-	* development.sh: Set variables to false.
-	* po/bfd.pot: Regenerate.
-	* version.m4: Set version number to 2.41.
+	* peXXigen.c (_bfd_XXi_only_swap_filehdr_out): If inserting a
+	timestamp, use the value held in the SOURCE_DATE_EPOCH environment
+	variable, if it is defined.
 
-2023-07-24  Nick Clifton  <nickc@redhat.com>
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
-	Import from mainline:
-	* elfnn-loongarch.c (RELOCATE_CALC_PC32_HI20): Redefined.
-	(RELOCATE_CALC_PC64_HI32): Redefined.
+	* reloc.c: New reloc BFD_RELOC_BPF_DISPCALL32.
+	* elf64-bpf.c (bpf_reloc_type_lookup): Handle the new reloc.
+	* libbfd.h (bfd_reloc_code_real_names): Regenerate.
 
-	* elfxx-loongarch.c (reloc_bits_pcrel20_s2): Delete.
-	(reloc_bits_b16): Delete.
-	(reloc_bits_b21): Delete.
-	(reloc_bits_b26): Delete.
-	(reloc_sign_bits): New.
+2023-07-09  Fangrui Song  <maskray@google.com>
+
+	PR 30592
+	* section.c: Define SEC_ELF_LARGE.
+	* bfd-in2.h: Regenerate.
+	* elf64-x86-64.c (elf_x86_64_section_flags, elf_x86_64_fake_sections,
+	elf_x86_64_copy_private_section_data): New.
 
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
-	* version.m4: Update version number to 2.40.90.
+	* version.m4: Update version number to 2.41.50.
 	* configure: Regenerate.
 	* bfd/po/bfd.pot: Regenerate.
 
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index b34c8ef9fc9..5f49807d7f2 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -625,6 +625,9 @@ typedef struct bfd_section
      TMS320C54X only.  */
 #define SEC_TIC54X_BLOCK           0x10000000
 
+  /* This section has the SHF_X86_64_LARGE flag.  This is ELF x86-64 only.  */
+#define SEC_ELF_LARGE              0x10000000
+
   /* Conditionally link this section; do not link if there are no
      references found to any symbol in the section.  This is for TI
      TMS320C54X only.  */
@@ -7145,6 +7148,8 @@ assembler and not (currently) written to any object files.  */
 /* Linux eBPF relocations.  */
   BFD_RELOC_BPF_64,
   BFD_RELOC_BPF_DISP32,
+  BFD_RELOC_BPF_DISPCALL32,
+  BFD_RELOC_BPF_DISP16,
 
 /* Adapteva EPIPHANY - 8 bit signed pc-relative displacement  */
   BFD_RELOC_EPIPHANY_SIMM8,
diff --git a/bfd/bpf-reloc.def b/bfd/bpf-reloc.def
index b1be2eb66f6..31f761d291d 100644
--- a/bfd/bpf-reloc.def
+++ b/bfd/bpf-reloc.def
@@ -72,3 +72,18 @@
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
         true)                  /* pcrel_offset */
+
+  /* 16-bit PC-relative address in load instructions.  */
+  BPF_HOWTO (R_BPF_GNU_64_16,      /* type */
+        0,                     /* rightshift */
+        2,                     /* size */
+        16,                    /* bitsize */
+        true,                  /* pc_relative */
+        16,                    /* bitpos */
+        complain_overflow_signed, /* complain_on_overflow */
+        bpf_elf_generic_reloc, /* special_function */
+        "R_BPF_GNU_64_16",     /* name */
+        true,                  /* partial_inplace */
+        0xffff,                /* src_mask */
+        0xffff,                /* dst_mask */
+        true)                  /* pcrel_offset */
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 62720255b7f..6c8080c841e 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -3176,8 +3176,9 @@ coff_compute_section_file_positions (bfd * abfd)
 	     created and not just improve performances with gdb.
 	  */
 
-	  if ((!strcmp (current->name, _TEXT)
-	       || !strcmp (current->name, _DATA))
+	  if ((current->flags & SEC_LOAD) != 0
+	      && (!strcmp (current->name, _TEXT)
+		  || !strcmp (current->name, _DATA))
 	      && (previous == NULL || strcmp(previous->name, _TDATA)))
 	    {
 	      bfd_vma align = 4096;
@@ -3190,7 +3191,8 @@ coff_compute_section_file_positions (bfd * abfd)
 		sofar += align + vma_off - sofar_off;
 	    }
 #endif
-	  if (previous != NULL)
+	  if (previous != NULL
+	      && (previous->flags & SEC_LOAD) != 0)
 	    previous->size += sofar - old_sofar;
 	}
 
@@ -4695,7 +4697,7 @@ coff_slurp_symbol_table (bfd * abfd)
 #endif
 #ifdef RS6000COFF_C
 	    case C_HIDEXT:
-#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
+#ifndef AIX_WEAK_SUPPORT
 	    case C_AIX_WEAKEXT:
 #endif
 #endif
@@ -5021,7 +5023,7 @@ coff_classify_symbol (bfd *abfd,
 #endif
 #ifdef RS6000COFF_C
     case C_HIDEXT:
-#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
+#ifndef AIX_WEAK_SUPPORT
     case C_AIX_WEAKEXT:
 #endif
 #endif
diff --git a/bfd/config.bfd b/bfd/config.bfd
index bdee53957c0..3b39ff36c00 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1098,18 +1098,6 @@ case "${targ}" in
     targ_selvecs="rs6000_xcoff64_aix_vec"
     want64=true
     ;;
-  powerpc-*-haiku*)
-    targ_defvec=powerpc_elf32_vec
-    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
-    targ_cflags=-D__HAIKU_TARGET__
-    ;;
-#ifdef BFD64
-  powerpc64-*-aix5.[01])
-    targ_defvec=rs6000_xcoff64_aix_vec
-    targ_selvecs="rs6000_xcoff_vec"
-    want64=true
-    ;;
-#endif
   powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
     targ_cflags=-DAIX_WEAK_SUPPORT
     targ_defvec=rs6000_xcoff_vec
@@ -1117,6 +1105,11 @@ case "${targ}" in
     want64=true
     ;;
 #ifdef BFD64
+  powerpc64-*-aix5.[01])
+    targ_defvec=rs6000_xcoff64_aix_vec
+    targ_selvecs="rs6000_xcoff_vec"
+    want64=true
+    ;;
   powerpc64-*-aix[5-9]*)
     targ_cflags=-DAIX_WEAK_SUPPORT
     targ_defvec=rs6000_xcoff64_aix_vec
@@ -1176,6 +1169,11 @@ case "${targ}" in
     targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
     targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
     ;;
+  powerpc-*-haiku*)
+    targ_defvec=powerpc_elf32_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
+    targ_cflags=-D__HAIKU_TARGET__
+    ;;
   powerpc-*-kaos*)
     targ_defvec=powerpc_elf32_vec
     targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
diff --git a/bfd/configure b/bfd/configure
index 910af3ce6d8..3d6ec5721f1 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for bfd 2.41.
+# Generated by GNU Autoconf 2.69 for bfd 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='bfd'
 PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='bfd 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='bfd 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1400,7 +1400,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures bfd 2.41 to adapt to many kinds of systems.
+\`configure' configures bfd 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1471,7 +1471,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bfd 2.41:";;
+     short | recursive ) echo "Configuration of bfd 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1608,7 +1608,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-bfd configure 2.41
+bfd configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2202,7 +2202,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by bfd $as_me 2.41, which was
+It was created by bfd $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3184,7 +3184,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='bfd'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -16103,7 +16103,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by bfd $as_me 2.41, which was
+This file was extended by bfd $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16169,7 +16169,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-bfd config.status 2.41
+bfd config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/bfd/development.sh b/bfd/development.sh
index c0da031ca3c..f638a577c28 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
+experimental=true
diff --git a/bfd/elf64-bpf.c b/bfd/elf64-bpf.c
index 65418d1d740..aefad7da5ac 100644
--- a/bfd/elf64-bpf.c
+++ b/bfd/elf64-bpf.c
@@ -88,7 +88,10 @@ bpf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
     case BFD_RELOC_BPF_64:
       return &bpf_elf_howto_table[ (int) R_BPF_64_64_IDX];
     case BFD_RELOC_BPF_DISP32:
+    case BFD_RELOC_BPF_DISPCALL32:
       return &bpf_elf_howto_table[ (int) R_BPF_64_32_IDX];
+    case BFD_RELOC_BPF_DISP16:
+      return &bpf_elf_howto_table[ (int) R_BPF_GNU_64_16_IDX];
 
     default:
       /* Pacify gcc -Wall.  */
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index f926464d812..e7a0a9166f5 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -5281,6 +5281,39 @@ elf_x86_64_merge_symbol (struct elf_link_hash_entry *h,
   return true;
 }
 
+static bool
+elf_x86_64_section_flags (const Elf_Internal_Shdr *hdr)
+{
+  if ((hdr->sh_flags & SHF_X86_64_LARGE) != 0)
+    hdr->bfd_section->flags |= SEC_ELF_LARGE;
+
+  return true;
+}
+
+static bool
+elf_x86_64_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
+			  Elf_Internal_Shdr *hdr, asection *sec)
+{
+  if (sec->flags & SEC_ELF_LARGE)
+    hdr->sh_flags |= SHF_X86_64_LARGE;
+
+  return true;
+}
+
+static bool
+elf_x86_64_copy_private_section_data (bfd *ibfd, asection *isec,
+				      bfd *obfd, asection *osec)
+{
+  if (!_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec))
+    return false;
+
+  /* objcopy --set-section-flags without "large" drops SHF_X86_64_LARGE.  */
+  if (ibfd != obfd)
+    elf_section_flags (osec) &= ~SHF_X86_64_LARGE;
+
+  return true;
+}
+
 static int
 elf_x86_64_additional_program_headers (bfd *abfd,
 				       struct bfd_link_info *info ATTRIBUTE_UNUSED)
@@ -5408,6 +5441,8 @@ elf_x86_64_special_sections[]=
 
 #define elf_info_to_howto		    elf_x86_64_info_to_howto
 
+#define bfd_elf64_bfd_copy_private_section_data \
+  elf_x86_64_copy_private_section_data
 #define bfd_elf64_bfd_reloc_type_lookup	    elf_x86_64_reloc_type_lookup
 #define bfd_elf64_bfd_reloc_name_lookup \
   elf_x86_64_reloc_name_lookup
@@ -5448,6 +5483,8 @@ elf_x86_64_special_sections[]=
   elf_x86_64_merge_symbol
 #define elf_backend_special_sections \
   elf_x86_64_special_sections
+#define elf_backend_section_flags	    elf_x86_64_section_flags
+#define elf_backend_fake_sections	    elf_x86_64_fake_sections
 #define elf_backend_additional_program_headers \
   elf_x86_64_additional_program_headers
 #define elf_backend_setup_gnu_properties \
@@ -5564,6 +5601,8 @@ elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUS
 #undef	ELF_TARGET_OS
 #undef	ELF_OSABI
 
+#define bfd_elf32_bfd_copy_private_section_data \
+  elf_x86_64_copy_private_section_data
 #define bfd_elf32_bfd_reloc_type_lookup	\
   elf_x86_64_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup \
diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index e9c408b2dff..70a666283af 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -1538,7 +1538,7 @@ elfNN_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 /* Allocate space in .plt, .got and associated reloc sections for
    ifunc dynamic relocs.  */
 
-static bool
+static int
 elfNN_allocate_local_ifunc_dynrelocs (void **slot, void *inf)
 {
   struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) *slot;
@@ -1700,7 +1700,7 @@ loongarch_elf_size_dynamic_sections (bfd *output_bfd,
 
   /* Allocate .plt and .got entries, and space for local ifunc symbols.  */
   htab_traverse (htab->loc_hash_table,
-		 (void *) elfNN_allocate_local_ifunc_dynrelocs, info);
+		 elfNN_allocate_local_ifunc_dynrelocs, info);
 
   /* Don't allocate .got.plt section if there are no PLT.  */
   if (htab->elf.sgotplt && htab->elf.sgotplt->size == GOTPLT_HEADER_SIZE
@@ -4040,12 +4040,6 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
 {
   struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
   const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
-  asection *rela_dyn = bfd_get_section_by_name (output_bfd, ".rela.dyn");
-  struct bfd_link_order *lo = NULL;
-  Elf_Internal_Rela *slot = NULL, *last_slot = NULL;
-
-  if (rela_dyn)
-    lo = rela_dyn->map_head.link_order;
 
   if (h->plt.offset != MINUS_ONE)
     {
@@ -4055,7 +4049,6 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
       uint32_t plt_entry[PLT_ENTRY_INSNS];
       bfd_byte *loc;
       Elf_Internal_Rela rela;
-      asection *rela_sec = NULL;
 
       if (htab->elf.splt)
 	{
@@ -4113,26 +4106,7 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
 			       + h->root.u.def.section->output_section->vma
 			       + h->root.u.def.section->output_offset);
 
-	  /* Find the space after dyn sort.  */
-	  while (slot == last_slot || slot->r_offset != 0)
-	    {
-	      if (slot != last_slot)
-		{
-		  slot++;
-		  continue;
-		}
-
-	      BFD_ASSERT (lo != NULL);
-	      rela_sec = lo->u.indirect.section;
-	      lo = lo->next;
-
-	      slot = (Elf_Internal_Rela *)rela_sec->contents;
-	      last_slot = (Elf_Internal_Rela *)(rela_sec->contents +
-						rela_sec->size);
-	    }
-
-	  bed->s->swap_reloca_out (output_bfd, &rela, (bfd_byte *)slot);
-	  rela_sec->reloc_count++;
+	  loongarch_elf_append_rela (output_bfd, relplt, &rela);
 	}
       else
 	{
@@ -4299,7 +4273,7 @@ loongarch_finish_dyn (bfd *output_bfd, struct bfd_link_info *info, bfd *dynobj,
 /* Finish up local dynamic symbol handling.  We set the contents of
    various dynamic sections here.  */
 
-static bool
+static int
 elfNN_loongarch_finish_local_dynamic_symbol (void **slot, void *inf)
 {
   struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) *slot;
@@ -4308,6 +4282,33 @@ elfNN_loongarch_finish_local_dynamic_symbol (void **slot, void *inf)
   return loongarch_elf_finish_dynamic_symbol (info->output_bfd, info, h, NULL);
 }
 
+/* Value of struct elf_backend_data->elf_backend_output_arch_local_syms,
+   this function is called before elf_link_sort_relocs.
+   So relocation R_LARCH_IRELATIVE for local ifunc can be append to
+   .rela.dyn (.rela.got) by loongarch_elf_append_rela.  */
+
+static bool
+elf_loongarch_output_arch_local_syms
+  (bfd *output_bfd ATTRIBUTE_UNUSED,
+   struct bfd_link_info *info,
+   void *flaginfo ATTRIBUTE_UNUSED,
+   int (*func) (void *, const char *,
+		Elf_Internal_Sym *,
+		asection *,
+		struct elf_link_hash_entry *) ATTRIBUTE_UNUSED)
+{
+  struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
+  if (htab == NULL)
+    return false;
+
+  /* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols.  */
+  htab_traverse (htab->loc_hash_table,
+		 elfNN_loongarch_finish_local_dynamic_symbol,
+		 info);
+
+  return true;
+}
+
 static bool
 loongarch_elf_finish_dynamic_sections (bfd *output_bfd,
 				       struct bfd_link_info *info)
@@ -4386,10 +4387,6 @@ loongarch_elf_finish_dynamic_sections (bfd *output_bfd,
       elf_section_data (output_section)->this_hdr.sh_entsize = GOT_ENTRY_SIZE;
     }
 
-  /* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols.  */
-  htab_traverse (htab->loc_hash_table,
-		 (void *) elfNN_loongarch_finish_local_dynamic_symbol, info);
-
   return true;
 }
 
@@ -4654,6 +4651,8 @@ elf_loongarch64_hash_symbol (struct elf_link_hash_entry *h)
 #define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections
 #define elf_backend_relocate_section loongarch_elf_relocate_section
 #define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol
+#define elf_backend_output_arch_local_syms \
+  elf_loongarch_output_arch_local_syms
 #define elf_backend_finish_dynamic_sections				   \
   loongarch_elf_finish_dynamic_sections
 #define elf_backend_object_p loongarch_elf_object_p
diff --git a/bfd/elfxx-loongarch.c b/bfd/elfxx-loongarch.c
index 2d299050c12..f27c9fdba6a 100644
--- a/bfd/elfxx-loongarch.c
+++ b/bfd/elfxx-loongarch.c
@@ -1711,10 +1711,12 @@ reloc_sign_bits (bfd *abfd, reloc_howto_type *howto, bfd_vma *fix_val)
     {
     case R_LARCH_SOP_POP_32_S_0_10_10_16_S2:
     case R_LARCH_B26:
-      /* Perform insn bits field.  25:16>>16, 15:0<<10.  */
+      /* Perform insn bits field. 15:0<<10, 25:16>>16.  */
       val = ((val & 0xffff) << 10) | ((val >> 16) & 0x3ff);
       break;
+    case R_LARCH_SOP_POP_32_S_0_5_10_16_S2:
     case R_LARCH_B21:
+      /* Perform insn bits field. 15:0<<10, 20:16>>16.  */
       val = ((val & 0xffff) << 10) | ((val >> 16) & 0x1f);
       break;
     default:
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index b34898af8c9..ba5165766b2 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1132,6 +1132,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
   {"zvl256b", "zvl128b",	check_implicit_always},
   {"zvl128b", "zvl64b",		check_implicit_always},
   {"zvl64b", "zvl32b",		check_implicit_always},
+  {"zcd", "d",		check_implicit_always},
+  {"zcf", "f",		check_implicit_always},
   {"zfa", "f",		check_implicit_always},
   {"d", "f",		check_implicit_always},
   {"zfh", "zfhmin",	check_implicit_always},
@@ -1173,6 +1175,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
   {"zvksg", "zvkg",	check_implicit_always},
   {"zvksc", "zvks",	check_implicit_always},
   {"zvksc", "zvbc",	check_implicit_always},
+  {"zcf", "zca",	check_implicit_always},
+  {"zcd", "zca",	check_implicit_always},
+  {"zcb", "zca",	check_implicit_always},
   {"smaia", "ssaia",		check_implicit_always},
   {"smstateen", "ssstateen",	check_implicit_always},
   {"smepmp", "zicsr",		check_implicit_always},
@@ -1307,6 +1312,10 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
   {"zvl32768b",		ISA_SPEC_CLASS_DRAFT,		1, 0,  0 },
   {"zvl65536b",		ISA_SPEC_CLASS_DRAFT,		1, 0,  0 },
   {"ztso",		ISA_SPEC_CLASS_DRAFT,		0, 1,  0 },
+  {"zca",		ISA_SPEC_CLASS_DRAFT,		1, 0,  0 },
+  {"zcb",		ISA_SPEC_CLASS_DRAFT,		1, 0,  0 },
+  {"zcf",		ISA_SPEC_CLASS_DRAFT,		1, 0,  0 },
+  {"zcd",		ISA_SPEC_CLASS_DRAFT,		1, 0,  0 },
   {NULL, 0, 0, 0, 0}
 };
 
@@ -1942,6 +1951,13 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps)
       rps->error_handler (_("rv%d does not support the `q' extension"), xlen);
       no_conflict = false;
     }
+  if (riscv_lookup_subset (rps->subset_list, "zcf", &subset)
+      && xlen > 32)
+    {
+      rps->error_handler
+	(_("rv%d does not support the `zcf' extension"), xlen);
+      no_conflict = false;
+    }
   if (riscv_lookup_subset (rps->subset_list, "zfinx", &subset)
       && riscv_lookup_subset (rps->subset_list, "f", &subset))
     {
@@ -2387,13 +2403,16 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
     case INSN_CLASS_Q:
       return riscv_subset_supports (rps, "q");
     case INSN_CLASS_C:
-      return riscv_subset_supports (rps, "c");
+      return (riscv_subset_supports (rps, "c")
+	      || riscv_subset_supports (rps, "zca"));
     case INSN_CLASS_F_AND_C:
       return (riscv_subset_supports (rps, "f")
-	      && riscv_subset_supports (rps, "c"));
+	      && (riscv_subset_supports (rps, "c")
+		  || riscv_subset_supports (rps, "zcf")));
     case INSN_CLASS_D_AND_C:
       return (riscv_subset_supports (rps, "d")
-	      && riscv_subset_supports (rps, "c"));
+	      && (riscv_subset_supports (rps, "c")
+		  || riscv_subset_supports (rps, "zcd")));
     case INSN_CLASS_F_INX:
       return (riscv_subset_supports (rps, "f")
 	      || riscv_subset_supports (rps, "zfinx"));
@@ -2482,10 +2501,6 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
       return riscv_subset_supports (rps, "zvkg");
     case INSN_CLASS_ZVKNED:
       return riscv_subset_supports (rps, "zvkned");
-    case INSN_CLASS_ZVKNHA:
-      return riscv_subset_supports (rps, "zvknha");
-    case INSN_CLASS_ZVKNHB:
-      return riscv_subset_supports (rps, "zvknhb");
     case INSN_CLASS_ZVKNHA_OR_ZVKNHB:
       return (riscv_subset_supports (rps, "zvknha")
 	      || riscv_subset_supports (rps, "zvknhb"));
@@ -2493,6 +2508,17 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
       return riscv_subset_supports (rps, "zvksed");
     case INSN_CLASS_ZVKSH:
       return riscv_subset_supports (rps, "zvksh");
+    case INSN_CLASS_ZCB:
+      return riscv_subset_supports (rps, "zcb");
+    case INSN_CLASS_ZCB_AND_ZBB:
+      return (riscv_subset_supports (rps, "zcb")
+	      && riscv_subset_supports (rps, "zbb"));
+    case INSN_CLASS_ZCB_AND_ZBA:
+      return (riscv_subset_supports (rps, "zcb")
+	      && riscv_subset_supports (rps, "zba"));
+    case INSN_CLASS_ZCB_AND_ZMMUL:
+      return (riscv_subset_supports (rps, "zcb")
+	      && riscv_subset_supports (rps, "zmmul"));
     case INSN_CLASS_SVINVAL:
       return riscv_subset_supports (rps, "svinval");
     case INSN_CLASS_H:
@@ -2572,21 +2598,27 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
     case INSN_CLASS_C:
       return "c";
     case INSN_CLASS_F_AND_C:
-      if (!riscv_subset_supports (rps, "f")
-	  && !riscv_subset_supports (rps, "c"))
-	return _("f' and `c");
-      else if (!riscv_subset_supports (rps, "f"))
-	return "f";
+      if (!riscv_subset_supports (rps, "f"))
+	{
+	  if (!riscv_subset_supports (rps, "c")
+	      && !riscv_subset_supports (rps, "zcf"))
+	    return _("f' and `c', or `f' and `zcf"); 
+	  else
+	    return "f";
+	}
       else
-	return "c";
+	return _("c' or `zcf");
     case INSN_CLASS_D_AND_C:
-      if (!riscv_subset_supports (rps, "d")
-	  && !riscv_subset_supports (rps, "c"))
-	return _("d' and `c");
-      else if (!riscv_subset_supports (rps, "d"))
-	return "d";
+      if (!riscv_subset_supports (rps, "d"))
+	{
+	  if (!riscv_subset_supports (rps, "c")
+	      && !riscv_subset_supports (rps, "zcd"))
+	    return _("d' and `c', or `d' and `zcd");
+	  else
+	    return "d";
+	}
       else
-	return "c";
+	return _("c' or `zcd");
     case INSN_CLASS_F_INX:
       return _("f' or `zfinx");
     case INSN_CLASS_D_INX:
@@ -2689,14 +2721,20 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
       return _("zvkg");
     case INSN_CLASS_ZVKNED:
       return _("zvkned");
-    case INSN_CLASS_ZVKNHA:
-      return _("zvknha");
-    case INSN_CLASS_ZVKNHB:
-      return _("zvknhb");
+    case INSN_CLASS_ZVKNHA_OR_ZVKNHB:
+      return _("zvknha' or `zvknhb");
     case INSN_CLASS_ZVKSED:
       return _("zvksed");
     case INSN_CLASS_ZVKSH:
       return _("zvksh");
+    case INSN_CLASS_ZCB:
+      return "zcb";
+    case INSN_CLASS_ZCB_AND_ZBA:
+      return _("zcb' and `zba");
+    case INSN_CLASS_ZCB_AND_ZBB:
+      return _("zcb' and `zbb");
+    case INSN_CLASS_ZCB_AND_ZMMUL:
+      return _("zcb' and `zmmul', or `zcb' and `m");
     case INSN_CLASS_SVINVAL:
       return "svinval";
     case INSN_CLASS_H:
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index d4fb3107597..1fc88a88861 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -3346,6 +3346,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD",
   "BFD_RELOC_BPF_64",
   "BFD_RELOC_BPF_DISP32",
+  "BFD_RELOC_BPF_DISPCALL32",
+  "BFD_RELOC_BPF_DISP16",
   "BFD_RELOC_EPIPHANY_SIMM8",
   "BFD_RELOC_EPIPHANY_SIMM24",
   "BFD_RELOC_EPIPHANY_HIGH",
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index da53f349dd0..cdd89f80330 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -838,7 +838,20 @@ _bfd_XXi_only_swap_filehdr_out (bfd * abfd, void * in, void * out)
   /* Use a real timestamp by default, unless the no-insert-timestamp
      option was chosen.  */
   if ((pe_data (abfd)->timestamp) == -1)
-    H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
+    {
+      time_t now;
+      char *source_date_epoch;
+
+      /* If the SOURCE_DATE_EPOCH environment variable is
+	 defined then use that as the time, otherwise use
+	 the current time.  */
+      source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
+      if (source_date_epoch)
+	now = (time_t) strtoll (source_date_epoch, NULL, 10);
+      else
+	now = time (NULL);
+      H_PUT_32 (abfd, now, filehdr_out->f_timdat);
+    }
   else
     H_PUT_32 (abfd, pe_data (abfd)->timestamp, filehdr_out->f_timdat);
 
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index 7c09d657b91..d324c0617e9 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-30 14:35+0100\n"
+"POT-Creation-Date: 2023-07-03 11:38+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -69,7 +69,7 @@ msgstr ""
 
 #. Unknown relocation.
 #: aoutx.h:4400 coff-alpha.c:601 coff-alpha.c:1521 coff-mips.c:356
-#: coff-rs6000.c:3048 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
+#: coff-rs6000.c:3029 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
 #: elf-hppa.h:798 elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813
 #: elf32-arc.c:532 elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1063
 #: elf32-bfin.c:4686 elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467
@@ -95,7 +95,7 @@ msgstr ""
 #: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1264
 #: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
 #: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:269 elfn32-mips.c:3799
-#: elfxx-ia64.c:324 elfxx-loongarch.c:1568 elfxx-riscv.c:980 elfxx-sparc.c:589
+#: elfxx-ia64.c:324 elfxx-loongarch.c:1574 elfxx-riscv.c:980 elfxx-sparc.c:589
 #: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947
 #: elfnn-aarch64.c:2215 elfnn-aarch64.c:2313 elfnn-ia64.c:214
 #: elfnn-ia64.c:3821
@@ -307,32 +307,32 @@ msgstr ""
 msgid "%pB: unsupported swap_aux_out for storage class %#x"
 msgstr ""
 
-#: coff-rs6000.c:3138
+#: coff-rs6000.c:3119
 #, c-format
 msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
 msgstr ""
 
-#: coff-rs6000.c:3262 coff64-rs6000.c:848
+#: coff-rs6000.c:3243 coff64-rs6000.c:848
 #, c-format
 msgid "Unable to find the stub entry targeting %s"
 msgstr ""
 
-#: coff-rs6000.c:3377
+#: coff-rs6000.c:3358
 #, c-format
 msgid "%pB: TLS relocation at 0x%<PRIx64> over non-TLS symbol %s (0x%x)\n"
 msgstr ""
 
-#: coff-rs6000.c:3390
+#: coff-rs6000.c:3371
 #, c-format
 msgid "%pB: TLS local relocation at 0x%<PRIx64> over imported symbol %s\n"
 msgstr ""
 
-#: coff-rs6000.c:3796
+#: coff-rs6000.c:3777
 #, c-format
 msgid "%pB: relocation (%d) at 0x%<PRIx64> has wrong r_rsize (0x%x)\n"
 msgstr ""
 
-#: coff-rs6000.c:4058 coff64-rs6000.c:2031
+#: coff-rs6000.c:4039 coff64-rs6000.c:2031
 #, c-format
 msgid "%pB: symbol `%s' has unrecognized smclas %d"
 msgstr ""
@@ -397,13 +397,13 @@ msgstr ""
 msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
 msgstr ""
 
-#: coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189 elfxx-mips.c:13515
+#: coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189 elfxx-mips.c:13513
 #: reloc.c:8495 reloc16.c:314
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
 msgstr ""
 
-#: coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13525 reloc.c:8505
+#: coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13523 reloc.c:8505
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
 msgstr ""
@@ -938,7 +938,7 @@ msgstr ""
 #: elf32-moxie.c:292 elf32-msp430.c:1510 elf32-nds32.c:6097 elf32-or1k.c:1901
 #: elf32-score.c:2738 elf32-score7.c:2549 elf32-spu.c:5089
 #: elf32-tilepro.c:3376 elf32-v850.c:2298 elf32-visium.c:684
-#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10653
+#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10651
 #: elfxx-tilegx.c:3746
 msgid "internal error: unsupported relocation error"
 msgstr ""
@@ -1111,7 +1111,7 @@ msgstr ""
 msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
 msgstr ""
 
-#: elf.c:517 elf32-arm.c:17730 elfnn-aarch64.c:8291 elfnn-loongarch.c:4430
+#: elf.c:517 elf32-arm.c:17730 elfnn-aarch64.c:8291 elfnn-loongarch.c:4391
 #, c-format
 msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr ""
@@ -1558,7 +1558,7 @@ msgid ""
 msgstr ""
 
 #: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1390
-#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15687
+#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15685
 #, c-format
 msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
 msgstr ""
@@ -2356,7 +2356,7 @@ msgstr ""
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
 #: elf32-bfin.c:4728 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1265
 #: elf32-score.c:3987 elf32-score7.c:3794 elf32-vax.c:536 elf32-xgate.c:494
-#: elfxx-mips.c:16373
+#: elfxx-mips.c:16371
 #, c-format
 msgid "private flags = %lx:"
 msgstr ""
@@ -3774,12 +3774,12 @@ msgstr ""
 
 #: elf32-sh.c:5013
 #, c-format
-msgid "%X%H: relocation to \"%s\" references a different segment\n"
+msgid "%X%C: relocation to \"%s\" references a different segment\n"
 msgstr ""
 
 #: elf32-sh.c:5020
 #, c-format
-msgid "%H: warning: relocation to \"%s\" references a different segment\n"
+msgid "%C: warning: relocation to \"%s\" references a different segment\n"
 msgstr ""
 
 #: elf32-sh.c:5488 elf32-sh.c:5570
@@ -4036,7 +4036,7 @@ msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
 msgstr ""
 
 #: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:2710
-#: elfnn-aarch64.c:9999 elfnn-loongarch.c:4356 elfnn-riscv.c:3458
+#: elfnn-aarch64.c:9999 elfnn-loongarch.c:4317 elfnn-riscv.c:3458
 #, c-format
 msgid "discarded output section: `%pA'"
 msgstr ""
@@ -4893,7 +4893,7 @@ msgid ""
 "%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
 msgstr ""
 
-#: elf64-sparc.c:134 elfcode.h:1593
+#: elf64-sparc.c:134 elfcode.h:1582
 #, c-format
 msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
 msgstr ""
@@ -5041,17 +5041,17 @@ msgstr ""
 msgid "warning: %pB has a corrupt string table index"
 msgstr ""
 
-#: elfcode.h:838
+#: elfcode.h:837
 #, c-format
 msgid "warning: %pB has a program header with invalid alignment"
 msgstr ""
 
-#: elfcode.h:1050
+#: elfcode.h:1039
 #, c-format
 msgid "%pB: %pA+%<PRIx64>: relocation addend %<PRIx64> too large"
 msgstr ""
 
-#: elfcode.h:1313
+#: elfcode.h:1302
 #, c-format
 msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
 msgstr ""
@@ -5418,27 +5418,28 @@ msgstr ""
 msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
 msgstr ""
 
-#: elfxx-loongarch.c:1584
+#: elfxx-loongarch.c:1590
 #, c-format
 msgid "%pB: unsupported relocation type %s"
 msgstr ""
 
-#: elfxx-loongarch.c:1613
+#: elfxx-loongarch.c:1619
 #, c-format
 msgid "%pB: unsupported bfd relocation type %#x"
 msgstr ""
 
-#: elfxx-loongarch.c:1632
+#: elfxx-loongarch.c:1638
 #, c-format
 msgid "%pB: unsupported relocation type name %s"
 msgstr ""
 
-#: elfxx-loongarch.c:1685
+#: elfxx-loongarch.c:1689
 #, c-format
 msgid "%pB: relocation %s right shift %d error 0x%lx"
 msgstr ""
 
-#: elfxx-loongarch.c:1699
+#: elfxx-loongarch.c:1699 elfxx-loongarch.c:1735 elfxx-loongarch.c:1770
+#: elfxx-loongarch.c:1807
 #, c-format
 msgid "%pB: relocation %s overflow 0x%lx"
 msgstr ""
@@ -5471,533 +5472,533 @@ msgstr ""
 msgid "%X%H: unsupported branch between ISA modes\n"
 msgstr ""
 
-#: elfxx-mips.c:7345
+#: elfxx-mips.c:7344
 #, c-format
 msgid ""
 "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
 msgstr ""
 
-#: elfxx-mips.c:7389
+#: elfxx-mips.c:7388
 #, c-format
 msgid "%pB: warning: bad `%s' option size %u smaller than its header"
 msgstr ""
 
-#: elfxx-mips.c:7625
+#: elfxx-mips.c:7624
 #, c-format
 msgid "%pB: warning: truncated `%s' option"
 msgstr ""
 
-#: elfxx-mips.c:8449 elfxx-mips.c:8575
+#: elfxx-mips.c:8447 elfxx-mips.c:8573
 #, c-format
 msgid ""
 "%pB: warning: cannot determine the target function for stub section `%s'"
 msgstr ""
 
-#: elfxx-mips.c:8707
+#: elfxx-mips.c:8705
 #, c-format
 msgid "%pB: malformed reloc detected for section %s"
 msgstr ""
 
-#: elfxx-mips.c:8807
+#: elfxx-mips.c:8805
 #, c-format
 msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
 msgstr ""
 
-#: elfxx-mips.c:8947
+#: elfxx-mips.c:8945
 #, c-format
 msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
 msgstr ""
 
-#: elfxx-mips.c:9250
+#: elfxx-mips.c:9248
 #, c-format
 msgid ""
 "%X%H: relocation %s against `%s' cannot be used when making a shared object; "
 "recompile with -fPIC\n"
 msgstr ""
 
-#: elfxx-mips.c:9376
+#: elfxx-mips.c:9374
 #, c-format
 msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
 msgstr ""
 
-#: elfxx-mips.c:9379
+#: elfxx-mips.c:9377
 #, c-format
 msgid "non-dynamic symbol %s in dynamic symbol table"
 msgstr ""
 
-#: elfxx-mips.c:9599
+#: elfxx-mips.c:9597
 #, c-format
 msgid "non-dynamic relocations refer to dynamic symbol %s"
 msgstr ""
 
-#: elfxx-mips.c:10534
+#: elfxx-mips.c:10532
 #, c-format
 msgid ""
 "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in "
 "section `%pA'"
 msgstr ""
 
-#: elfxx-mips.c:10674
+#: elfxx-mips.c:10672
 msgid ""
 "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
 msgstr ""
 
-#: elfxx-mips.c:10693
+#: elfxx-mips.c:10691
 msgid "cannot convert a jump to JALX for a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10696
+#: elfxx-mips.c:10694
 msgid "jump to a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10697
+#: elfxx-mips.c:10695
 msgid "jump to a non-instruction-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10700
+#: elfxx-mips.c:10698
 msgid "cannot convert a branch to JALX for a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10702
+#: elfxx-mips.c:10700
 msgid "branch to a non-instruction-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10704
+#: elfxx-mips.c:10702
 msgid "PC-relative load from unaligned address"
 msgstr ""
 
-#: elfxx-mips.c:11004
+#: elfxx-mips.c:11002
 #, c-format
 msgid ""
 "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; "
 "consider using `-Ttext-segment=...'"
 msgstr ""
 
-#: elfxx-mips.c:11119 elfxx-mips.c:11706
+#: elfxx-mips.c:11117 elfxx-mips.c:11704
 #, c-format
 msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
 msgstr ""
 
-#: elfxx-mips.c:11678
+#: elfxx-mips.c:11676
 #, c-format
 msgid ""
 "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; "
 "consider using `-Ttext-segment=...'"
 msgstr ""
 
-#: elfxx-mips.c:13424 reloc.c:8417
+#: elfxx-mips.c:13422 reloc.c:8417
 #, c-format
 msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
 msgstr ""
 
-#: elfxx-mips.c:13534 reloc.c:8514
+#: elfxx-mips.c:13532 reloc.c:8514
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
 msgstr ""
 
-#: elfxx-mips.c:14736
+#: elfxx-mips.c:14734
 #, c-format
 msgid "%pB: unknown architecture %s"
 msgstr ""
 
-#: elfxx-mips.c:15264
+#: elfxx-mips.c:15262
 #, c-format
 msgid "%pB: illegal section name `%pA'"
 msgstr ""
 
-#: elfxx-mips.c:15541
+#: elfxx-mips.c:15539
 #, c-format
 msgid "%pB: warning: linking abicalls files with non-abicalls files"
 msgstr ""
 
-#: elfxx-mips.c:15558
+#: elfxx-mips.c:15556
 #, c-format
 msgid "%pB: linking 32-bit code with 64-bit code"
 msgstr ""
 
-#: elfxx-mips.c:15590 elfxx-mips.c:15656 elfxx-mips.c:15671
+#: elfxx-mips.c:15588 elfxx-mips.c:15654 elfxx-mips.c:15669
 #, c-format
 msgid "%pB: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15614
+#: elfxx-mips.c:15612
 #, c-format
 msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15639
+#: elfxx-mips.c:15637
 #, c-format
 msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15773
+#: elfxx-mips.c:15771
 #, c-format
 msgid ""
 "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses "
 "unknown floating point ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15779
+#: elfxx-mips.c:15777
 #, c-format
 msgid ""
 "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15785
+#: elfxx-mips.c:15783
 #, c-format
 msgid ""
 "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15799
+#: elfxx-mips.c:15797
 #, c-format
 msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15818
+#: elfxx-mips.c:15816
 #, c-format
 msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15830
+#: elfxx-mips.c:15828
 #, c-format
 msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15839
+#: elfxx-mips.c:15837
 #, c-format
 msgid ""
 "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %"
 "d"
 msgstr ""
 
-#: elfxx-mips.c:15901
+#: elfxx-mips.c:15899
 #, c-format
 msgid "%pB: endianness incompatible with that of the selected emulation"
 msgstr ""
 
-#: elfxx-mips.c:15915
+#: elfxx-mips.c:15913
 #, c-format
 msgid "%pB: ABI is incompatible with that of the selected emulation"
 msgstr ""
 
-#: elfxx-mips.c:15968
+#: elfxx-mips.c:15966
 #, c-format
 msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15973
+#: elfxx-mips.c:15971
 #, c-format
 msgid ""
 "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15977
+#: elfxx-mips.c:15975
 #, c-format
 msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15984
+#: elfxx-mips.c:15982
 #, c-format
 msgid ""
 "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15988
+#: elfxx-mips.c:15986
 #, c-format
 msgid ""
 "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
 msgstr ""
 
-#: elfxx-mips.c:16179
+#: elfxx-mips.c:16177
 msgid "-mips32r2 -mfp64 (12 callee-saved)"
 msgstr ""
 
-#: elfxx-mips.c:16241 elfxx-mips.c:16252
+#: elfxx-mips.c:16239 elfxx-mips.c:16250
 msgid "None"
 msgstr ""
 
-#: elfxx-mips.c:16243 elfxx-mips.c:16312
+#: elfxx-mips.c:16241 elfxx-mips.c:16310
 msgid "Unknown"
 msgstr ""
 
-#: elfxx-mips.c:16323
+#: elfxx-mips.c:16321
 #, c-format
 msgid "Hard or soft float\n"
 msgstr ""
 
-#: elfxx-mips.c:16326
+#: elfxx-mips.c:16324
 #, c-format
 msgid "Hard float (double precision)\n"
 msgstr ""
 
-#: elfxx-mips.c:16329
+#: elfxx-mips.c:16327
 #, c-format
 msgid "Hard float (single precision)\n"
 msgstr ""
 
-#: elfxx-mips.c:16332
+#: elfxx-mips.c:16330
 #, c-format
 msgid "Soft float\n"
 msgstr ""
 
-#: elfxx-mips.c:16335
+#: elfxx-mips.c:16333
 #, c-format
 msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
 msgstr ""
 
-#: elfxx-mips.c:16338
+#: elfxx-mips.c:16336
 #, c-format
 msgid "Hard float (32-bit CPU, Any FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:16341
+#: elfxx-mips.c:16339
 #, c-format
 msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:16344
+#: elfxx-mips.c:16342
 #, c-format
 msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:16376
+#: elfxx-mips.c:16374
 #, c-format
 msgid " [abi=O32]"
 msgstr ""
 
-#: elfxx-mips.c:16378
+#: elfxx-mips.c:16376
 #, c-format
 msgid " [abi=O64]"
 msgstr ""
 
-#: elfxx-mips.c:16380
+#: elfxx-mips.c:16378
 #, c-format
 msgid " [abi=EABI32]"
 msgstr ""
 
-#: elfxx-mips.c:16382
+#: elfxx-mips.c:16380
 #, c-format
 msgid " [abi=EABI64]"
 msgstr ""
 
-#: elfxx-mips.c:16384
+#: elfxx-mips.c:16382
 #, c-format
 msgid " [abi unknown]"
 msgstr ""
 
-#: elfxx-mips.c:16386
+#: elfxx-mips.c:16384
 #, c-format
 msgid " [abi=N32]"
 msgstr ""
 
-#: elfxx-mips.c:16388
+#: elfxx-mips.c:16386
 #, c-format
 msgid " [abi=64]"
 msgstr ""
 
-#: elfxx-mips.c:16390
+#: elfxx-mips.c:16388
 #, c-format
 msgid " [no abi set]"
 msgstr ""
 
-#: elfxx-mips.c:16415
+#: elfxx-mips.c:16413
 #, c-format
 msgid " [unknown ISA]"
 msgstr ""
 
-#: elfxx-mips.c:16435
+#: elfxx-mips.c:16433
 #, c-format
 msgid " [not 32bitmode]"
 msgstr ""
 
-#: elfxx-riscv.c:1660
+#: elfxx-riscv.c:1657
 #, c-format
 msgid "x ISA extension `%s' must be set with the versions"
 msgstr ""
 
-#: elfxx-riscv.c:1666
+#: elfxx-riscv.c:1663
 #, c-format
 msgid "cannot find default versions of the ISA extension `%s'"
 msgstr ""
 
-#: elfxx-riscv.c:1772
+#: elfxx-riscv.c:1769
 #, c-format
 msgid "%s: first ISA extension must be `e', `i' or `g'"
 msgstr ""
 
-#: elfxx-riscv.c:1796
+#: elfxx-riscv.c:1793
 #, c-format
 msgid "%s: unknown standard ISA extension or prefix class `%c'"
 msgstr ""
 
-#: elfxx-riscv.c:1832
+#: elfxx-riscv.c:1829
 #, c-format
 msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
 msgstr ""
 
-#: elfxx-riscv.c:1856
+#: elfxx-riscv.c:1853
 #, c-format
 msgid "%s: unknown prefixed ISA extension `%s'"
 msgstr ""
 
-#: elfxx-riscv.c:1880
+#: elfxx-riscv.c:1877
 #, c-format
 msgid "%s: prefixed ISA extension must separate with _"
 msgstr ""
 
-#: elfxx-riscv.c:1934
+#: elfxx-riscv.c:1931
 #, c-format
 msgid "rv%d does not support the `e' extension"
 msgstr ""
 
-#: elfxx-riscv.c:1942
+#: elfxx-riscv.c:1939
 #, c-format
 msgid "rv%d does not support the `q' extension"
 msgstr ""
 
-#: elfxx-riscv.c:1949
+#: elfxx-riscv.c:1946
 msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
 msgstr ""
 
-#: elfxx-riscv.c:1970
+#: elfxx-riscv.c:1967
 msgid "zvl*b extensions need to enable either `v' or `zve' extension"
 msgstr ""
 
-#: elfxx-riscv.c:2032
+#: elfxx-riscv.c:2029
 #, c-format
 msgid "%s: ISA string cannot contain uppercase letters"
 msgstr ""
 
-#: elfxx-riscv.c:2060
+#: elfxx-riscv.c:2057
 #, c-format
 msgid "%s: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: elfxx-riscv.c:2286
+#: elfxx-riscv.c:2283
 #, c-format
 msgid "invalid ISA extension ends with <number>p in .option arch `%s'"
 msgstr ""
 
-#: elfxx-riscv.c:2309
+#: elfxx-riscv.c:2306
 #, c-format
 msgid "unknown ISA extension `%s' in .option arch `%s'"
 msgstr ""
 
-#: elfxx-riscv.c:2320
+#: elfxx-riscv.c:2317
 #, c-format
 msgid "cannot + or - base extension `%s' in .option arch `%s'"
 msgstr ""
 
-#: elfxx-riscv.c:2528 elfxx-riscv.c:2730
+#: elfxx-riscv.c:2525 elfxx-riscv.c:2727
 msgid "internal: unreachable INSN_CLASS_*"
 msgstr ""
 
-#: elfxx-riscv.c:2561
+#: elfxx-riscv.c:2558
 msgid "m' or `zmmul"
 msgstr ""
 
-#: elfxx-riscv.c:2577
+#: elfxx-riscv.c:2574
 msgid "f' and `c"
 msgstr ""
 
-#: elfxx-riscv.c:2585
+#: elfxx-riscv.c:2582
 msgid "d' and `c"
 msgstr ""
 
-#: elfxx-riscv.c:2591
+#: elfxx-riscv.c:2588
 msgid "f' or `zfinx"
 msgstr ""
 
-#: elfxx-riscv.c:2593
+#: elfxx-riscv.c:2590
 msgid "d' or `zdinx"
 msgstr ""
 
-#: elfxx-riscv.c:2595
+#: elfxx-riscv.c:2592
 msgid "q' or `zqinx"
 msgstr ""
 
-#: elfxx-riscv.c:2597
+#: elfxx-riscv.c:2594
 msgid "zfh' or `zhinx"
 msgstr ""
 
-#: elfxx-riscv.c:2601
+#: elfxx-riscv.c:2598
 msgid "zfhmin' or `zhinxmin"
 msgstr ""
 
-#: elfxx-riscv.c:2612
+#: elfxx-riscv.c:2609
 msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
 msgstr ""
 
-#: elfxx-riscv.c:2623
+#: elfxx-riscv.c:2620
 msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
 msgstr ""
 
-#: elfxx-riscv.c:2629
+#: elfxx-riscv.c:2626
 msgid "d' and `zfa"
 msgstr ""
 
-#: elfxx-riscv.c:2637
+#: elfxx-riscv.c:2634
 msgid "q' and `zfa"
 msgstr ""
 
-#: elfxx-riscv.c:2645
+#: elfxx-riscv.c:2642
 msgid "zfh' and `zfa"
 msgstr ""
 
-#: elfxx-riscv.c:2665
+#: elfxx-riscv.c:2662
 msgid "zbb' or `zbkb"
 msgstr ""
 
-#: elfxx-riscv.c:2667
+#: elfxx-riscv.c:2664
 msgid "zbc' or `zbkc"
 msgstr ""
 
-#: elfxx-riscv.c:2675
+#: elfxx-riscv.c:2672
 msgid "zknd' or `zkne"
 msgstr ""
 
-#: elfxx-riscv.c:2681
+#: elfxx-riscv.c:2678
 msgid "v' or `zve64x' or `zve32x"
 msgstr ""
 
-#: elfxx-riscv.c:2683
+#: elfxx-riscv.c:2680
 msgid "v' or `zve64d' or `zve64f' or `zve32f"
 msgstr ""
 
-#: elfxx-riscv.c:2685
+#: elfxx-riscv.c:2682
 msgid "zvbb"
 msgstr ""
 
-#: elfxx-riscv.c:2687
+#: elfxx-riscv.c:2684
 msgid "zvbc"
 msgstr ""
 
-#: elfxx-riscv.c:2689
+#: elfxx-riscv.c:2686
 msgid "zvkg"
 msgstr ""
 
-#: elfxx-riscv.c:2691
+#: elfxx-riscv.c:2688
 msgid "zvkned"
 msgstr ""
 
-#: elfxx-riscv.c:2693
+#: elfxx-riscv.c:2690
 msgid "zvknha"
 msgstr ""
 
-#: elfxx-riscv.c:2695
+#: elfxx-riscv.c:2692
 msgid "zvknhb"
 msgstr ""
 
-#: elfxx-riscv.c:2697
+#: elfxx-riscv.c:2694
 msgid "zvksed"
 msgstr ""
 
-#: elfxx-riscv.c:2699
+#: elfxx-riscv.c:2696
 msgid "zvksh"
 msgstr ""
 
-#: elfxx-riscv.c:2703
+#: elfxx-riscv.c:2700
 msgid "h"
 msgstr ""
 
@@ -9100,7 +9101,7 @@ msgstr ""
 msgid "Internal error: unreachable."
 msgstr ""
 
-#: elfnn-loongarch.c:3848 elfnn-riscv.c:4766
+#: elfnn-loongarch.c:3809 elfnn-riscv.c:4766
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-"
diff --git a/bfd/reloc.c b/bfd/reloc.c
index fbc67ac7280..07d35e45c8b 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -7753,6 +7753,10 @@ ENUM
   BFD_RELOC_BPF_64
 ENUMX
   BFD_RELOC_BPF_DISP32
+ENUMX
+  BFD_RELOC_BPF_DISPCALL32
+ENUMX
+  BFD_RELOC_BPF_DISP16
 ENUMDOC
   Linux eBPF relocations.
 
diff --git a/bfd/section.c b/bfd/section.c
index 73770294e56..e9af59dfd15 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -359,6 +359,9 @@ CODE_FRAGMENT
 .     TMS320C54X only.  *}
 .#define SEC_TIC54X_BLOCK           0x10000000
 .
+.  {* This section has the SHF_X86_64_LARGE flag.  This is ELF x86-64 only.  *}
+.#define SEC_ELF_LARGE              0x10000000
+.
 .  {* Conditionally link this section; do not link if there are no
 .     references found to any symbol in the section.  This is for TI
 .     TMS320C54X only.  *}
diff --git a/bfd/version.h b/bfd/version.h
index 352e6813bbf..bf956a9dfef 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 20230730
+#define BFD_VERSION_DATE 20230802
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff --git a/bfd/version.m4 b/bfd/version.m4
index d8dfc1ce1ca..435efecb1cd 100644
--- a/bfd/version.m4
+++ b/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.41])
+m4_define([BFD_VERSION], [2.41.50])
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 01406cfa2a5..65cff807bec 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,7 +1,26 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
+2023-07-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
-	This is the 2.41 release.
-	* configure: Regenerate.
+	* readelf.c (get_machine_flags): Recognize and pretty print BPF
+	machine flags.
+
+2023-07-24  Johannes Schauer Marin Rodrigues  <josch@debian.org>
+
+	* doc/binutils.texi (objcopy): Document change in behaviour of
+	objcopy's --preserve-dates command line option.
+
+2023-07-09  Fangrui Song  <maskray@google.com>
+
+	PR 30592
+	* NEWS: Mention the new feature for objcopy.
+	* doc/binutils.texi: Mention "large".
+	* objcopy.c (parse_flags): Parse "large".
+	(check_new_section_flags): Error if "large" is used with a
+	non-x86-64 ELF target.
+	* testsuite/binutils-all/x86-64/large-sections.d: New.
+	* testsuite/binutils-all/x86-64/large-sections.s: New.
+	* testsuite/binutils-all/x86-64/large-sections-i386.d: New.
+	* testsuite/binutils-all/x86-64/large-sections-2.d: New.
+	* testsuite/binutils-all/x86-64/large-sections-2-x32.d: New.
 
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
diff --git a/binutils/NEWS b/binutils/NEWS
index 563062c6904..d64cae009eb 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,8 @@
 -*- text -*-
 
+* objcopy --set-section-flags now supports "large" to set SHF_X86_64_LARGE
+  for ELF x86-64 objects.
+
 Changes in 2.41:
 
 * The MIPS port now supports the Sony Interactive Entertainment Allegrex
diff --git a/binutils/README-how-to-make-a-release b/binutils/README-how-to-make-a-release
index a9917927d02..aaf770418ae 100644
--- a/binutils/README-how-to-make-a-release
+++ b/binutils/README-how-to-make-a-release
@@ -34,6 +34,10 @@ How to perform a release.
      directories and the top level Makefile and configure files.  Also
      consider updating the toplevel libtool files.
 
+-------------------------------------------------
+How to create the release branch.
+-------------------------------------------------
+
 Approx time to complete from here: 2 hours ....
 
   2.5 If you have not built from the sources recently then now is the
@@ -52,8 +56,8 @@ Approx time to complete from here: 2 hours ....
 
   4. Create the release branch using:
 
-	git branch binutils-2_41-branch
-        git push origin binutils-2_41-branch
+	git branch binutils-2_42-branch
+        git push origin binutils-2_42-branch
 
      If you get a message like:
      
@@ -85,8 +89,8 @@ Approx time to complete from here: 2 hours ....
      ask Joel Brobecker <brobecker AT adacore DOT com>.
 
   7. Rename the current HEAD version entry in Bugzilla, and create a
-     new one.  E.g. rename "2.41 (HEAD)" to 2.41, and create
-     "2.42 (HEAD)":
+     new one.  E.g. rename "2.42 (HEAD)" to 2.42, and create
+     "2.43 (HEAD)":
      
         https://sourceware.org/bugzilla/editversions.cgi?product=binutils
 
@@ -99,13 +103,13 @@ Approx time to complete from here: 2 hours ....
      and the version number on the MAINLINE should be set to 2.41.50 -
      ie half way to 2.42 release.
 
-     So the branch bfd/version.m4 has:
+     So the BRANCH bfd/version.m4 has:
      
-       m4_define([BFD_VERSION], [2.40.90])
+       m4_define([BFD_VERSION], [2.41.90])
        
-     and the mainline has:
+     and the MAINLINE has:
 
-       m4_define([BFD_VERSION], [2.41.50])
+       m4_define([BFD_VERSION], [2.42.50])
 
      Regenerate various files on both branch and HEAD by configuring
      with "--enable-maintainer-mode --enable-gold --enable-shared" and then building
@@ -137,21 +141,21 @@ Approx time to complete from here: 2 hours ....
           xz -9 binutils-<release>.tar
 
           eg:
-	    touch -d 2023-06-01 binutils-2.40.90/gas/doc/.dirstamp
-	    tar rvf binutils-2.40.90.tar binutils-2.40.90/gas/doc/.ditstamp
-            rm binutils-2.40.90.tar.xz
-            xz -9 binutils-2.40.90.tar
+	    touch -d 2024-01-01 binutils-2.41.90/gas/doc/.dirstamp
+	    tar rvf binutils-2.41.90.tar binutils-2.41.90/gas/doc/.dirstamp
+            rm binutils-2.41.90.tar.xz
+            xz -9 binutils-2.41.90.tar
 	    
 	 ...END OF FIXME   
 
      c. Build a test target using this tarball.
 
-           cp binutils-2.40.90.tar.xz /dev/shm
+           cp binutils-2.41.90.tar.xz /dev/shm
 	   pushd /dev/shm
-	   tar xvf binutils-2.40.90.tar.xz
+	   tar xvf binutils-2.41.90.tar.xz
 	   mkdir build
 	   cd build
-	   ../binutils-2.40.90/configure --quiet --enable-gold
+	   ../binutils-2.41.90/configure --quiet --enable-gold
 	   make
 	   popd
 
@@ -173,11 +177,11 @@ Approx time to complete from here: 2 hours ....
 ------------------------------------------------------------------------
 Dear Translation Project
 
-  The 2.40 release branch has been created for the GNU Binutils project.
+  The 2.42 release branch has been created for the GNU Binutils project.
 
   A snapshot of the branch sources can be found here:
 
-    https://sourceware.org/pub/binutils/snapshots/binutils-2.39.90.tar.xz
+    https://sourceware.org/pub/binutils/snapshots/binutils-2.41.90.tar.xz
 
   We hope to make the official release of the sources on the <DATE>
   although that could change if there are important bugs that need to
@@ -188,7 +192,7 @@ Dear Translation Project
       binutils mailing list.  Set a date for when the release will
       actually happen.  Something like:
       
-------------------------------------------------------------------------
+
 Hi Everyone, 
 
   The <NEW_VERSION> branch has now been created:
@@ -219,25 +223,39 @@ Hi Everyone,
       architectures...
 
 ==============================================================================
+==============================================================================
 
-When the time comes to actually make the release....
+For the next few weeks, monitor the mailing list for new translations
+and respond to any requests to have patches applied to the branch.
 
+==============================================================================
+==============================================================================
+
+Then, a couple of weeks later ...
+
+-------------------------------------------------
+How to create the release.
+-------------------------------------------------
 
   20. Make sure that the branch sources still build, test and install 
       correctly.  Make sure that the sources are clean, without any
       patch files (.reg .orig *~) left over.
 
          cd <branch>
+         git pull	 
 	 git clean -fdx
+	 cd <builds>
+	 make
 
   21. a. Update the release number in bfd/version.m4 on the release
          branch to a whole new minor version number, without a point
-         value.  Eg "2.40.90" becomes "2.41".  NB/ Not: "2.41.00"
+         value.  Eg "2.41.90" becomes "2.42".  NB/ Not: "2.42.00"
 
       b. Change bfd/development.sh to set all values to "false".
 
       c. Regenerate the configure and makefiles.  And *info* files.
 
+            cd <build-configured-with-enable-maintainer-mode>
             make all-gas all-ld all-binutils all-gprof all-gold all-gprofng all-libctf
 	    make info
 
@@ -259,7 +277,7 @@ When the time comes to actually make the release....
 	 need to agree to have it there.
 	
       e. Add ChangeLog entries for all of the updates and add a
-         "this-is-the-2.41-release" comment and commit.
+         "this-is-the-2.42-release" comment and commit.
 
 	   git add .
            git commit
@@ -281,7 +299,11 @@ When the time comes to actually make the release....
       DEVO_SUPPORT variable in the src-release.sh script.  If they are
       needed then add them.
 
-      Create the release tarballs:
+      PARANOIA: Check that there are no pending commits:
+
+             git status
+	   
+      Then create the release tarballs:
   
             ./src-release.sh -b -g -l -x binutils
 
@@ -326,14 +348,15 @@ When the time comes to actually make the release....
 	[optional: add "-u XXXXX" to sign with a gpg key]
 	enter a tag message such as: "Official GNU Binutils 2.4x release"
 
-	    git tag -a binutils-2_41 -u DD9E3C4F      <=== Be careful to get the tag right
+	    git tag -a <TAG>         -u <Your Key>
+	    git tag -a binutils-2_42 -u DD9E3C4F      <=== Be careful to get the tag right
 
         NB/ If you do sign the binaries make sure to use a key
 	that has been published with the FSF.
 
         Then push the release:
 	
-	    git push origin binutils-2_41
+	    git push origin binutils-2_42
 
         If you get an error message along the lines of:
 	  "Invalid revision range ..."
@@ -341,7 +364,7 @@ When the time comes to actually make the release....
 
   27.  Upload the tarballs to ftp.gnu.org.
 
-          for A in bz2 gz lz xz ; do gnupload --to ftp.gnu.org:binutils binutils-2.41.tar.$A ; done
+          gnupload --to ftp.gnu.org:binutils binutils-2.42.tar.*
 
         Be prepared to provide the password for the key, if you
 	signed the binaries.
@@ -369,7 +392,7 @@ When the time comes to actually make the release....
   29. Update web pages.  For sourceware.org:
 
       Create a new documentation folder on the sourceware.org web
-      pages as /sourceware/www/sourceware/htdocs/binutils/docs-2.3x.
+      pages as /sourceware/www/sourceware/htdocs/binutils/docs-2.4x.
 
        sftp sourceware.org
          cd /sourceware/www/sourceware/htdocs/binutils
@@ -378,9 +401,9 @@ When the time comes to actually make the release....
 	 mkdir as
 	 mkdir bfd
 	 mkdir binutils
-	 mkdir gprof
+	 mkdir gprof      [NB/ gprofng is not needed]
 	 mkdir ld
-	 cd ../docs-2.3(x-1)
+	 cd ../docs-2.4(x-1)
 	 get index.html
 
       Update the (local copy of the) index.html file to point to the
@@ -412,7 +435,7 @@ When the time comes to actually make the release....
 	 put bfd.pdf
 	 
 	 cd binutils
-	 lcd ../../binutils/binutils      <=== NB/ Path not like others
+	 lcd ../../binutils/binutils_html      <=== NB/ Path not like others
 	 put *
 	 cd ..
 	 lcd ../doc                       <=== Also not like the others
@@ -473,7 +496,7 @@ Hi FSF Webmasters,
 https://www.gnu.org/software/binutils/binutils.html
 
   be updated to indicate that there is now a newer version available
-  (2.3x).  I have already updated the related page on the sourceware
+  (2.4x).  I have already updated the related page on the sourceware
   website so this might be useful as a template:
 
 https://sourceware.org/binutils/
@@ -536,7 +559,7 @@ Cheers
       date suffix keeps the version lower than the trunk version.
       Regenerate files.  Commit these changes.
 
-  33. Email the binutils list telling everyone that the 2.34 branch
+  33. Email the binutils list telling everyone that the 2.4x branch
       is now open for business as usual and that patches no longer
       need special approval.
 
@@ -544,7 +567,7 @@ Cheers
       any pending obsolete targets into the definitely obsolete
       section.  Create a changelog entry and commit.
 
-
+  Sit back and relax, you are all done.
 --------------------------------------------------------------------------
 How to perform a POINT release.
 --------------------------------------------------------------------------
diff --git a/binutils/bucomm.h b/binutils/bucomm.h
index 0c11c0b868d..b70879078ee 100644
--- a/binutils/bucomm.h
+++ b/binutils/bucomm.h
@@ -76,12 +76,6 @@ extern void set_times (const char *, const struct stat *);
 extern int smart_rename (const char *, const char *, int,
 			 struct stat *, bool);
 
-
-/* In libiberty.  */
-void *xmalloc (size_t);
-
-void *xrealloc (void *, size_t);
-
 #if __GNUC__ >= 7
 #define _mul_overflow(a, b, res) __builtin_mul_overflow (a, b, res)
 #else
diff --git a/binutils/configure b/binutils/configure
index e0bf7f1e887..2b7462b4022 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for binutils 2.41.
+# Generated by GNU Autoconf 2.69 for binutils 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='binutils'
 PACKAGE_TARNAME='binutils'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='binutils 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='binutils 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1401,7 +1401,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures binutils 2.41 to adapt to many kinds of systems.
+\`configure' configures binutils 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1472,7 +1472,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of binutils 2.41:";;
+     short | recursive ) echo "Configuration of binutils 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1631,7 +1631,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-binutils configure 2.41
+binutils configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2099,7 +2099,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by binutils $as_me 2.41, which was
+It was created by binutils $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3081,7 +3081,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='binutils'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14542,7 +14542,6 @@ _ACEOF
   fi
 
 
-all_targets=false
 BUILD_SRCONV=
 BUILD_DLLTOOL=
 DLLTOOL_DEFS=
@@ -14559,140 +14558,137 @@ od_vectors=
 
 for targ in $target $canon_targets
 do
-    if test "x$targ" = "xall"; then
-        all_targets=true
+    case $targ in
+    all | *-*-hms*)
 	BUILD_SRCONV='$(SRCONV_PROG)'
-	BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
-	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    esac
+
+    case $targ in
+    all | spu-*-*)
+	BUILD_MISC='bin2c$(EXEEXT_FOR_BUILD)'
+	;;
+    esac
+
+    case $targ in
+    powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
+	BUILD_INSTALL_MISC=embedspu
+	;;
+    esac
+
+    case $targ in
+    mep-*)
+	OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
+	;;
+    powerpc*-aix5.[01])
+	;;
+    powerpc*-aix[5-9].*)
+	OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
+	;;
+    esac
+
+    case $targ in
+    aarch64-*-mingw*)
 	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
 	if test -z "$DLLTOOL_DEFAULT"; then
-	  DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+	;;
+    arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    arm-*-pe*)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | all)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
 	fi
 	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
 	BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	od_vectors="$od_vectors objdump_private_desc_xcoff objdump_private_desc_pe"
-    else
-	case $targ in
-	*-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;;
-	esac
-
-	case $targ in
-	aarch64-*-mingw*)
-	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	  ;;
-	arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	arm-*-pe*)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	x86_64-*-mingw* | x86_64-*-cygwin*)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	  ;;
-	i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32**)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
+	;;
+    i[3-7]86-*-interix)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)'
+	if test -z "$DLLTOOL_DEFAULT"; then
 	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	  ;;
-	i[3-7]86-*-interix)
-	  BUILD_DLLTOOL='$(DLLTOOL_PROG)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
-	  ;;
-	powerpc*-aix5.[01])
-	  ;;
-	powerpc*-aix[5-9].*)
-	  OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
-	  ;;
-	powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
-	  case "$BUILD_INSTALL_MISC" in
-	    *embedspu*) ;;
-	    *) BUILD_INSTALL_MISC="${BUILD_INSTALL_MISC} embedspu"
-	  esac
-	  ;;
-	sh*-*-pe)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	spu-*-*)
-	  BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
-	  ;;
-	mcore-*-pe)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
+	;;
+    mcore-*-pe)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
 	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	mcore-*-elf)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    mcore-*-elf)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
 	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE_ELF"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
-	  ;;
-  	mep-*)
-	  OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
-	  ;;
-	esac
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
+	;;
+    sh*-*-pe)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    x86_64-*-mingw* | x86_64-*-cygwin*)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+	;;
+    esac
 
-	# Add objdump private vectors.
-	case $targ in
-	avr-*-*)
-	  od_vectors="$od_vectors objdump_private_desc_elf32_avr"
-	  ;;
-	powerpc*-*-aix* | rs6000-*-aix*)
-	  od_vectors="$od_vectors objdump_private_desc_xcoff"
-	  ;;
-	*-*-pe* | *-*-cygwin* | *-*-mingw*)
-	  od_vectors="$od_vectors objdump_private_desc_pe"
-	  ;;
-        *-*-darwin*)
-	  od_vectors="$od_vectors objdump_private_desc_mach_o"
-	  ;;
-	esac
-    fi
+    # Add objdump private vectors.
+    case $targ in
+    all)
+	od_vectors="objdump_private_desc_elf32_avr objdump_private_desc_xcoff\
+		    objdump_private_desc_pe objdump_private_desc_mach_o"
+	;;
+    avr-*-*)
+	od_vectors="$od_vectors objdump_private_desc_elf32_avr"
+	;;
+    powerpc*-*-aix* | rs6000-*-aix*)
+	od_vectors="$od_vectors objdump_private_desc_xcoff"
+	;;
+    *-*-pe* | *-*-cygwin* | *-*-mingw*)
+	 od_vectors="$od_vectors objdump_private_desc_pe"
+	 ;;
+    *-*-darwin*)
+	od_vectors="$od_vectors objdump_private_desc_mach_o"
+	;;
+    esac
 done
 
 # Uniq objdump private vector, build objdump target ofiles.
@@ -15332,7 +15328,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by binutils $as_me 2.41, which was
+This file was extended by binutils $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15398,7 +15394,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-binutils config.status 2.41
+binutils config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/binutils/configure.ac b/binutils/configure.ac
index b5798bf755f..30cd7b9ed1e 100644
--- a/binutils/configure.ac
+++ b/binutils/configure.ac
@@ -319,7 +319,6 @@ fi
 AC_CHECK_HEADER(iconv.h)
 AM_ICONV
 
-all_targets=false
 BUILD_SRCONV=
 BUILD_DLLTOOL=
 DLLTOOL_DEFS=
@@ -336,148 +335,143 @@ od_vectors=
 
 for targ in $target $canon_targets
 do
-    if test "x$targ" = "xall"; then
-        all_targets=true
+    case $targ in
+    all | *-*-hms*)
 	BUILD_SRCONV='$(SRCONV_PROG)'
-	BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
-	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    esac
+
+    case $targ in
+    all | spu-*-*)
+	BUILD_MISC='bin2c$(EXEEXT_FOR_BUILD)'
+	;;
+    esac
+
+    case $targ in
+    powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
+	BUILD_INSTALL_MISC=embedspu
+	;;
+    esac
+
+    case $targ in
+    mep-*)
+	OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
+	;;
+changequote(,)dnl
+    powerpc*-aix5.[01])
+	;;
+    powerpc*-aix[5-9].*)
+changequote([,])dnl
+	OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
+	;;
+    esac
+
+    case $targ in
+    aarch64-*-mingw*)
 	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
 	if test -z "$DLLTOOL_DEFAULT"; then
-	  DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+	;;
+    arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    arm-*-pe*)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+changequote(,)dnl
+    i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | all)
+changequote([,])dnl
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
 	fi
 	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
 	BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	od_vectors="$od_vectors objdump_private_desc_xcoff objdump_private_desc_pe"
-    else
-	case $targ in
-	*-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;;
-	esac
-
-	case $targ in
-	aarch64-*-mingw*)
-	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	  ;;
-	arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	arm-*-pe*)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	x86_64-*-mingw* | x86_64-*-cygwin*)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	  ;;
+	;;
 changequote(,)dnl
-	i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32**)
+    i[3-7]86-*-interix)
 changequote([,])dnl
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)'
+	if test -z "$DLLTOOL_DEFAULT"; then
 	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
-	  ;;
-changequote(,)dnl
-	i[3-7]86-*-interix)
-changequote([,])dnl
-	  BUILD_DLLTOOL='$(DLLTOOL_PROG)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
-	  ;;
-changequote(,)dnl
-	powerpc*-aix5.[01])
-changequote([,])dnl
-	  ;;
-changequote(,)dnl
-	powerpc*-aix[5-9].*)
-changequote([,])dnl
-	  OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
-	  ;;
-	powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
-	  case "$BUILD_INSTALL_MISC" in
-	    *embedspu*) ;;
-	    *) BUILD_INSTALL_MISC="${BUILD_INSTALL_MISC} embedspu"
-	  esac
-	  ;;
-	sh*-*-pe)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
-	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	spu-*-*)
-	  BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
-	  ;;
-	mcore-*-pe)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
+	;;
+    mcore-*-pe)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
 	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
-	  BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-	  BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
-	  ;;
-	mcore-*-elf)
-  	  BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
-	  if test -z "$DLLTOOL_DEFAULT"; then
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    mcore-*-elf)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
 	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE_ELF"
-	  fi
-	  DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
-	  ;;
-  	mep-*)
-	  OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
-	  ;;
-	esac
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
+	;;
+    sh*-*-pe)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	;;
+    x86_64-*-mingw* | x86_64-*-cygwin*)
+	BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+	if test -z "$DLLTOOL_DEFAULT"; then
+	    DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
+	fi
+	DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
+	BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
+	BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+	BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+	;;
+    esac
 
-	# Add objdump private vectors.
-	case $targ in
-	avr-*-*)
-	  od_vectors="$od_vectors objdump_private_desc_elf32_avr"
-	  ;;
-	powerpc*-*-aix* | rs6000-*-aix*)
-	  od_vectors="$od_vectors objdump_private_desc_xcoff"
-	  ;;
-	*-*-pe* | *-*-cygwin* | *-*-mingw*)
-	  od_vectors="$od_vectors objdump_private_desc_pe"
-	  ;;
-        *-*-darwin*)
-	  od_vectors="$od_vectors objdump_private_desc_mach_o"
-	  ;;
-	esac
-    fi
+    # Add objdump private vectors.
+    case $targ in
+    all)
+	od_vectors="objdump_private_desc_elf32_avr objdump_private_desc_xcoff\
+		    objdump_private_desc_pe objdump_private_desc_mach_o"
+	;;
+    avr-*-*)
+	od_vectors="$od_vectors objdump_private_desc_elf32_avr"
+	;;
+    powerpc*-*-aix* | rs6000-*-aix*)
+	od_vectors="$od_vectors objdump_private_desc_xcoff"
+	;;
+    *-*-pe* | *-*-cygwin* | *-*-mingw*)
+	 od_vectors="$od_vectors objdump_private_desc_pe"
+	 ;;
+    *-*-darwin*)
+	od_vectors="$od_vectors objdump_private_desc_mach_o"
+	;;
+    esac
 done
 
 # Uniq objdump private vector, build objdump target ofiles.
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 8314cb57562..9f80f398c9d 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -1626,6 +1626,11 @@ commands.  If the input was '12345678' then the outputs would be
 Set the access and modification dates of the output file to be the same
 as those of the input file.
 
+This option also copies the date stored in a PE format file's header,
+unless the SOURCE_DATE_EPOCH environment variable is defined.  If it
+is defined then this variable will be used as the date stored in the
+header, interpreted as the number of seconds since the Unix epoch.
+
 @item -D
 @itemx --enable-deterministic-archives
 @cindex deterministic archives
@@ -1745,13 +1750,14 @@ Set the flags for any sections matching @var{sectionpattern}.  The
 @var{flags} argument is a comma separated string of flag names.  The
 recognized names are @samp{alloc}, @samp{contents}, @samp{load},
 @samp{noload}, @samp{readonly}, @samp{code}, @samp{data}, @samp{rom},
-@samp{exclude}, @samp{share}, and @samp{debug}.  You can set the
-@samp{contents} flag for a section which does not have contents, but it
-is not meaningful to clear the @samp{contents} flag of a section which
-does have contents--just remove the section instead.  Not all flags are
-meaningful for all object file formats.  In particular the
-@samp{share} flag is only meaningful for COFF format files and not for
-ELF format files.
+@samp{exclude}, @samp{share}, @samp{debug}, and @samp{large}.
+You can set the @samp{contents} flag for a section which does not have
+contents, but it is not meaningful to clear the @samp{contents} flag of a
+section which does have contents--just remove the section instead.  Not all
+flags are meaningful for all object file formats.  In particular the
+@samp{share} flag is only meaningful for COFF format files and not for ELF
+format files.  The ELF x86-64 specific flag @samp{large} corresponds to
+SHF_X86_64_LARGE.
 
 @item --set-section-alignment @var{sectionpattern}=@var{align}
 Set the alignment for any sections matching @var{sectionpattern}.
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 3569b890c7d..b2b7ab6ab7e 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -803,6 +803,7 @@ parse_flags (const char *s)
       PARSE_FLAG ("contents", SEC_HAS_CONTENTS);
       PARSE_FLAG ("merge", SEC_MERGE);
       PARSE_FLAG ("strings", SEC_STRINGS);
+      PARSE_FLAG ("large", SEC_ELF_LARGE);
 #undef PARSE_FLAG
       else
 	{
@@ -812,8 +813,10 @@ parse_flags (const char *s)
 	  strncpy (copy, s, len);
 	  copy[len] = '\0';
 	  non_fatal (_("unrecognized section flag `%s'"), copy);
-	  fatal (_("supported flags: %s"),
-		 "alloc, load, noload, readonly, debug, code, data, rom, exclude, share, contents, merge, strings");
+	  fatal (_ ("supported flags: %s"),
+		 "alloc, load, noload, readonly, debug, code, data, rom, "
+		 "exclude, contents, merge, strings, (COFF specific) share, "
+		 "(ELF x86-64 specific) large");
 	}
 
       s = snext;
@@ -2618,7 +2621,7 @@ merge_gnu_build_notes (bfd *          abfd,
 }
 
 static flagword
-check_new_section_flags (flagword flags, bfd * abfd, const char * secname)
+check_new_section_flags (flagword flags, bfd *abfd, const char * secname)
 {
   /* Only set the SEC_COFF_SHARED flag on COFF files.
      The same bit value is used by ELF targets to indicate
@@ -2631,6 +2634,19 @@ check_new_section_flags (flagword flags, bfd * abfd, const char * secname)
 		 bfd_get_filename (abfd), secname);
       flags &= ~ SEC_COFF_SHARED;
     }
+
+  /* Report a fatal error if 'large' is used with a non-x86-64 ELF target.
+     Suppress the error for non-ELF targets to allow -O binary and formats that
+     use the bit value SEC_ELF_LARGE for other purposes.  */
+  if ((flags & SEC_ELF_LARGE) != 0
+      && bfd_get_flavour (abfd) == bfd_target_elf_flavour
+      && get_elf_backend_data (abfd)->elf_machine_code != EM_X86_64)
+    {
+      fatal (_ ("%s[%s]: 'large' flag is ELF x86-64 specific"),
+	     bfd_get_filename (abfd), secname);
+      flags &= ~SEC_ELF_LARGE;
+    }
+
   return flags;
 }
 
@@ -3599,9 +3615,11 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
     } *list, *l;
   bfd **ptr = &obfd->archive_head;
   bfd *this_element;
-  char *dir;
+  char *dir = NULL;
   char *filename;
 
+  list = NULL;
+
   /* PR 24281: It is not clear what should happen when copying a thin archive.
      One part is straight forward - if the output archive is in a different
      directory from the input archive then any relative paths in the library
@@ -3620,7 +3638,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
       bfd_set_error (bfd_error_invalid_operation);
       bfd_nonfatal_message (NULL, ibfd, NULL,
 			    _("sorry: copying thin archives is not currently supported"));
-      return;
+      goto cleanup_and_exit;
     }
 
   /* Make a temp directory to hold the contents.  */
@@ -3638,8 +3656,6 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
   if (deterministic)
     obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
 
-  list = NULL;
-
   this_element = bfd_openr_next_archived_file (ibfd, NULL);
 
   if (!bfd_set_format (obfd, bfd_get_format (ibfd)))
@@ -3781,44 +3797,46 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
     }
   *ptr = NULL;
 
+ cleanup_and_exit:
   filename = xstrdup (bfd_get_filename (obfd));
   if (!(status == 0 ? bfd_close : bfd_close_all_done) (obfd))
     {
+      if (!status)
+	bfd_nonfatal_message (filename, NULL, NULL, NULL);
       status = 1;
-      bfd_nonfatal_message (filename, NULL, NULL, NULL);
     }
   free (filename);
 
   filename = xstrdup (bfd_get_filename (ibfd));
   if (!bfd_close (ibfd))
     {
+      if (!status)
+	bfd_nonfatal_message (filename, NULL, NULL, NULL);
       status = 1;
-      bfd_nonfatal_message (filename, NULL, NULL, NULL);
     }
   free (filename);
 
- cleanup_and_exit:
   /* Delete all the files that we opened.  */
-  {
-    struct name_list * next;
+  struct name_list *next;
+  for (l = list; l != NULL; l = next)
+    {
+      if (l->obfd == NULL)
+	rmdir (l->name);
+      else
+	{
+	  bfd_close (l->obfd);
+	  unlink (l->name);
+	}
+      free ((char *) l->name);
+      next = l->next;
+      free (l);
+    }
 
-    for (l = list; l != NULL; l = next)
-      {
-	if (l->obfd == NULL)
-	  rmdir (l->name);
-	else
-	  {
-	    bfd_close (l->obfd);
-	    unlink (l->name);
-	  }
-	free ((char *) l->name);
-	next = l->next;
-	free (l);
-      }
-  }
-
-  rmdir (dir);
-  free (dir);
+  if (dir)
+    {
+      rmdir (dir);
+      free (dir);
+    }
 }
 
 /* The top-level control.  */
@@ -3917,7 +3935,8 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
 
       if (obfd == NULL)
 	{
-	  close (ofd);
+	  if (ofd >= 0)
+	    close (ofd);
 	  bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
 	  bfd_close (ibfd);
 	  status = 1;
@@ -3950,7 +3969,8 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
 
       if (obfd == NULL)
  	{
-	  close (ofd);
+	  if (ofd >= 0)
+	    close (ofd);
  	  bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
 	  bfd_close (ibfd);
  	  status = 1;
@@ -4141,13 +4161,25 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
       flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
       flags = check_new_section_flags (flags, obfd, bfd_section_name (isection));
     }
-  else if (strip_symbols == STRIP_NONDEBUG
-	   && (flags & (SEC_ALLOC | SEC_GROUP)) != 0
-	   && !is_nondebug_keep_contents_section (ibfd, isection))
+  else
     {
-      flagword clr = SEC_HAS_CONTENTS | SEC_LOAD | SEC_GROUP;
+      flagword clr = 0;
 
-      if (bfd_get_flavour (obfd) == bfd_target_elf_flavour)
+      /* For --extract-symbols where section sizes are zeroed, clear
+	 SEC_LOAD to indicate to coff_compute_section_file_positions that
+	 section sizes should not be adjusted for ALIGN_SECTIONS_IN_FILE.
+	 We don't want to clear SEC_HAS_CONTENTS as that will result
+	 in symbols being classified as 'B' by nm.  */
+      if (extract_symbol)
+	clr = SEC_LOAD;
+      /* If only keeping debug sections then we'll be keeping section
+	 sizes in headers but making the sections have no contents.  */
+      else if (strip_symbols == STRIP_NONDEBUG
+	       && (flags & (SEC_ALLOC | SEC_GROUP)) != 0
+	       && !is_nondebug_keep_contents_section (ibfd, isection))
+	clr = SEC_HAS_CONTENTS | SEC_LOAD | SEC_GROUP;
+
+      if (clr && bfd_get_flavour (obfd) == bfd_target_elf_flavour)
 	{
 	  /* PR 29532: Copy group sections intact as otherwise we end up with
 	     empty groups.  This prevents separate debug info files from
@@ -4155,7 +4187,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
 	     originally contained groups.  */
 	  if (flags & SEC_GROUP)
 	    clr = SEC_LOAD;
-	  else
+	  if ((clr & SEC_HAS_CONTENTS) != 0)
 	    make_nobits = true;
 
 	  /* Twiddle the input section flags so that it seems to
diff --git a/binutils/od-elf32_avr.c b/binutils/od-elf32_avr.c
index cc24919160f..19da74a7c65 100644
--- a/binutils/od-elf32_avr.c
+++ b/binutils/od-elf32_avr.c
@@ -270,25 +270,26 @@ elf32_avr_dump_mem_usage (bfd *abfd)
           "Device: %s\n\n", device.name);
 
   /* Text size */
-  printf ("Program:%8lu bytes", text_usage);
+  printf ("Program:%8" PRIu64 " bytes", (uint64_t) text_usage);
   if (device.flash_size > 0)
-    printf (" (%2.1f%% Full)", ((float) text_usage / device.flash_size) * 100);
+    printf (" (%2.1f%% Full)", (double) text_usage / device.flash_size * 100);
 
   printf ("\n(.text + .data + .bootloader)\n\n");
 
   /* Data size */
-  printf ("Data:   %8lu bytes", data_usage);
+  printf ("Data:   %8" PRIu64 " bytes", (uint64_t) data_usage);
   if (device.ram_size > 0)
-    printf (" (%2.1f%% Full)", ((float) data_usage / device.ram_size) * 100);
+    printf (" (%2.1f%% Full)", (double) data_usage / device.ram_size * 100);
 
   printf ("\n(.data + .bss + .noinit)\n\n");
 
   /* EEPROM size */
   if (eeprom_usage > 0)
     {
-      printf ("EEPROM: %8lu bytes", eeprom_usage);
+      printf ("EEPROM: %8" PRIu64 " bytes", (uint64_t) eeprom_usage);
       if (device.eeprom_size > 0)
-        printf (" (%2.1f%% Full)", ((float) eeprom_usage / device.eeprom_size) * 100);
+	printf (" (%2.1f%% Full)",
+		(double) eeprom_usage / device.eeprom_size * 100);
 
       printf ("\n(.eeprom)\n\n");
     }
@@ -315,12 +316,12 @@ elf32_avr_dump_avr_prop (bfd *abfd)
 
   for (i = 0; i < r_list->record_count; ++i)
     {
-      printf ("   %d %s @ %s + %#08lx (%#08lx)\n",
+      printf ("   %d %s @ %s + %#08" PRIx64" (%#08" PRIx64 ")\n",
 	      i,
 	      avr_elf32_property_record_name (&r_list->records [i]),
 	      r_list->records [i].section->name,
-	      r_list->records [i].offset,
-	      (bfd_section_vma (r_list->records [i].section)
+	      (uint64_t) r_list->records [i].offset,
+	      ((uint64_t) bfd_section_vma (r_list->records [i].section)
 	       + r_list->records [i].offset));
       switch (r_list->records [i].type)
         {
diff --git a/binutils/od-macho.c b/binutils/od-macho.c
index 17253d4f70b..c2bd7d38a89 100644
--- a/binutils/od-macho.c
+++ b/binutils/od-macho.c
@@ -23,6 +23,7 @@
 #include <stddef.h>
 #include <time.h>
 #include "safe-ctype.h"
+#include "libiberty.h"
 #include "bfd.h"
 #include "objdump.h"
 #include "bucomm.h"
diff --git a/binutils/od-xcoff.c b/binutils/od-xcoff.c
index 92d17e99fbf..e6b2f08c245 100644
--- a/binutils/od-xcoff.c
+++ b/binutils/od-xcoff.c
@@ -23,6 +23,7 @@
 #include <stddef.h>
 #include <time.h>
 #include "safe-ctype.h"
+#include "libiberty.h"
 #include "bfd.h"
 #include "objdump.h"
 #include "bucomm.h"
diff --git a/binutils/po/binutils.pot b/binutils/po/binutils.pot
index d1550ec657f..2c333449534 100644
--- a/binutils/po/binutils.pot
+++ b/binutils/po/binutils.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-03 11:32+0100\n"
+"POT-Creation-Date: 2023-07-03 11:41+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 97d72d0b95f..4ecff4c3933 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -168,6 +168,7 @@
 #include "elf/xtensa.h"
 #include "elf/z80.h"
 #include "elf/loongarch.h"
+#include "elf/bpf.h"
 
 #include "getopt.h"
 #include "libiberty.h"
@@ -1061,6 +1062,8 @@ guess_is_rela (unsigned int e_machine)
     case EM_ARC:
     case EM_ARC_COMPACT:
     case EM_ARC_COMPACT2:
+    case EM_ARC_COMPACT3:
+    case EM_ARC_COMPACT3_64:
     case EM_AVR:
     case EM_AVR_OLD:
     case EM_BLACKFIN:
@@ -1738,6 +1741,8 @@ dump_relocations (Filedata *filedata,
 	case EM_ARC:
 	case EM_ARC_COMPACT:
 	case EM_ARC_COMPACT2:
+	case EM_ARC_COMPACT3:
+	case EM_ARC_COMPACT3_64:
 	  rtype = elf_arc_reloc_type (type);
 	  break;
 
@@ -2968,9 +2973,9 @@ get_machine_name (unsigned e_machine)
     case EM_NFP:		return "Netronome Flow Processor";
     case EM_VE:			return "NEC Vector Engine";
     case EM_CSKY:		return "C-SKY";
-    case EM_ARC_COMPACT3_64:	return "Synopsys ARCv2.3 64-bit";
+    case EM_ARC_COMPACT3_64:	return "Synopsys ARCv3 64-bit processor";
     case EM_MCS6502:		return "MOS Technology MCS 6502 processor";
-    case EM_ARC_COMPACT3:	return "Synopsys ARCv2.3 32-bit";
+    case EM_ARC_COMPACT3:	return "Synopsys ARCv3 32-bit processor";
     case EM_KVX:		return "Kalray VLIW core of the MPPA processor family";
     case EM_65816:		return "WDC 65816/65C816";
     case EM_LOONGARCH:		return "LoongArch";
@@ -3715,6 +3720,14 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
 	default:
 	  break;
 
+	case EM_ARC_COMPACT3:
+	  strcat (buf, ", HS5x");
+	  break;
+
+	case EM_ARC_COMPACT3_64:
+	  strcat (buf, ", HS6x");
+	  break;
+
 	case EM_ARC_COMPACT2:
 	case EM_ARC_COMPACT:
           decode_ARC_machine_flags (e_flags, e_machine, buf);
@@ -4179,6 +4192,11 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
             strcat (buf, ", no delay");
           break;
 
+        case EM_BPF:
+          sprintf (buf + strlen (buf), ", CPU Version: %u",
+                   e_flags & EF_BPF_CPUVER);
+          break;
+
 	case EM_SPARCV9:
 	  if (e_flags & EF_SPARC_32PLUS)
 	    strcat (buf, ", v8+");
@@ -4983,6 +5001,8 @@ get_section_type_name (Filedata * filedata, unsigned int sh_type)
 	    case EM_ARC:
 	    case EM_ARC_COMPACT:
 	    case EM_ARC_COMPACT2:
+	    case EM_ARC_COMPACT3:
+	    case EM_ARC_COMPACT3_64:
 	      result = get_arc_section_type_name (sh_type);
 	      break;
 	    case EM_MIPS:
@@ -14324,6 +14344,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
       return reloc_type == 1; /* R_ARC_32.  */
     case EM_ARC_COMPACT:
     case EM_ARC_COMPACT2:
+    case EM_ARC_COMPACT3:
+    case EM_ARC_COMPACT3_64:
       return reloc_type == 4; /* R_ARC_32.  */
     case EM_ARM:
       return reloc_type == 2; /* R_ARM_ABS32 */
@@ -14518,6 +14540,8 @@ is_32bit_pcrel_reloc (Filedata * filedata, unsigned int reloc_type)
       return reloc_type == 10; /* R_ALPHA_SREL32.  */
     case EM_ARC_COMPACT:
     case EM_ARC_COMPACT2:
+    case EM_ARC_COMPACT3:
+    case EM_ARC_COMPACT3_64:
       return reloc_type == 49; /* R_ARC_32_PCREL.  */
     case EM_ARM:
       return reloc_type == 3;  /* R_ARM_REL32 */
@@ -14584,6 +14608,8 @@ is_64bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
     {
     case EM_AARCH64:
       return reloc_type == 257;	/* R_AARCH64_ABS64.  */
+    case EM_ARC_COMPACT3_64:
+      return reloc_type == 5; /* R_ARC_64.  */
     case EM_ALPHA:
       return reloc_type == 2; /* R_ALPHA_REFQUAD.  */
     case EM_IA_64:
@@ -14687,6 +14713,8 @@ is_16bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
     case EM_ARC:
     case EM_ARC_COMPACT:
     case EM_ARC_COMPACT2:
+    case EM_ARC_COMPACT3:
+    case EM_ARC_COMPACT3_64:
       return reloc_type == 2; /* R_ARC_16.  */
     case EM_ADAPTEVA_EPIPHANY:
       return reloc_type == 5;
@@ -14969,6 +14997,8 @@ is_none_reloc (Filedata * filedata, unsigned int reloc_type)
     case EM_ARC:     /* R_ARC_NONE.  */
     case EM_ARC_COMPACT2: /* R_ARC_NONE.  */
     case EM_ARC_COMPACT: /* R_ARC_NONE.  */
+    case EM_ARC_COMPACT3: /* R_ARC_NONE.  */
+    case EM_ARC_COMPACT3_64: /* R_ARC_NONE.  */
     case EM_ARM:     /* R_ARM_NONE.  */
     case EM_CRIS:    /* R_CRIS_NONE.  */
     case EM_FT32:    /* R_FT32_NONE.  */
@@ -22302,6 +22332,8 @@ process_arch_specific (Filedata * filedata)
     case EM_ARC:
     case EM_ARC_COMPACT:
     case EM_ARC_COMPACT2:
+    case EM_ARC_COMPACT3:
+    case EM_ARC_COMPACT3_64:
       return process_attributes (filedata, "ARC", SHT_ARC_ATTRIBUTES,
 				 display_arc_attribute,
 				 display_generic_attribute);
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 1145835d8b7..41070c3e0de 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -1028,7 +1028,11 @@ proc keep_debug_symbols_for_elf_relocatable { prog flags test } {
 	    {[^a-zA-Z]+([a-zA-Z0-9_\.]+)[ \t]+([A-Z]+)[ \t]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9]+[ \t]+([A-Z]*)[ \t]+[0-9]+(.*)} \
 	    $got all name type flag rest] } {
 	if { $type != "NOTE" && [regexp {[AG]} $flag] } {
-	    lappend non_debug_sections $name
+	    # PR 30699: Some debug sections can be in a group, so
+	    # exclude sections whose name includes "debug_"
+	    if { ! [regexp {debug_} $name] } {
+		lappend non_debug_sections $name
+	    }
 	}
 	set got $rest
     }
@@ -1086,6 +1090,7 @@ switch [copy_setup] {
 	untested $test5
 	if [is_elf_format] {
 	    untested $test6
+	    untested $test7
 	}
     }
     "3" {
diff --git a/configure.ac b/configure.ac
index 2f74092671d..e95a9ed116e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -141,7 +141,7 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktr
 # binutils, gas and ld appear in that order because it makes sense to run
 # "make check" in that particular order.
 # If --enable-gold is used, "gold" may replace "ld".
-host_tools="flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools"
+host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools"
 
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 597650d322a..26d7dc1623b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,20 +1,168 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
+2023-07-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
-	This is the 2.41 release.
-	* configure: Regenerate.
-	* po/gas.pot: Regenerate.
+	* config/tc-bpf.h (elf_tc_final_processing): Define.
+	* config/tc-bpf.c (bpf_elf_final_processing): New function.
 
-	modified:   gold/po/gold.pot
-	modified:   gprof/configure
-	modified:   gprofng/configure
-	modified:   gprofng/doc/version.texi
-	modified:   gprofng/libcollector/configure
-	modified:   ld/configure
-	modified:   ld/po/ld.pot
-	modified:   libiberty/functions.texi
-	modified:   opcodes/configure
-	modified:   opcodes/po/opcodes.pot
-	modified:   src-release.sh
+2023-07-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* config/tc-bpf.c (signed_overflow): Copy function from
+	tc-aarch64.c.
+	(encode_insn): Check for overflow in constant immediates.
+	(add_relaxed_insn): Pass relax argument to encode_insn.
+	(add_fixed_insn): Likewise.
+	* testsuite/gas/bpf/disp16-overflow.d: New file.
+	* testsuite/gas/bpf/disp16-overflow.s: Likewise.
+	* testsuite/gas/bpf/disp16-overflow.l: Likewise.
+	* testsuite/gas/bpf/disp32-overflow.d: Likewise.
+	* testsuite/gas/bpf/disp32-overflow.s: Likewise.
+	* testsuite/gas/bpf/disp32-overflow.l: Likewise.
+	* testsuite/gas/bpf/imm32-overflow.d: Likewise.
+	* testsuite/gas/bpf/imm32-overflow.s: Likewise.
+	* testsuite/gas/bpf/imm32-overflow.l: Likewise.
+	* testsuite/gas/bpf/offset16-overflow.d: Likewise.
+	* testsuite/gas/bpf/offset16-overflow.s: Likewise.
+	* testsuite/gas/bpf/offset16-overflow.l: Likewise.
+	* testsuite/gas/bpf/disp16-overflow-relax.d: Likewise.
+	* testsuite/gas/bpf/disp16-overflow-relax.l: Likewise.
+	* testsuite/gas/bpf/disp16-overflow-relax.s: Likewise.
+	* testsuite/gas/bpf/jump-relax-jump-be.d: New file.
+	* testsuite/gas/bpf/bpf.exp: Run new tests.
+
+2023-07-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	PR gas/30690
+	* config/tc-bpf.c (struct bpf_insn): Add fields is_relaxable and
+	relaxed_exp.
+	(enum options): Add OPTION_NO_RELAX.
+	(md_longopts): Likewise for -mno-relax.
+	(do_relax): New global.
+	(md_parse_option): Handle OPTION_NO_RELAX.
+	(RELAX_BRANCH_ENCODE): Define.
+	(RELAX_BRANCH_P): Likewise.
+	(RELAX_BRANCH_LENGTH): Likewise.
+	(RELAX_BRANCH_CONST): Likewise.
+	(RELAX_BRANCH_UNCOND): Likewise.
+	(relaxed_branch_length): New function.
+	(md_estimate_size_before_relax): Likewise.
+	(read_insn_word): Likewise.
+	(encode_int16): Likewise.
+	(encode_int32): Likewise.
+	(write_insn_bytes): Likewise.
+	(md_convert_frag): Likewise.
+	(encode_insn): Likewise.
+	(install_insn_fixups): Likewise.
+	(add_fixed_insn): Likewise.
+	(add_relaxed_insn): Likewise.
+	(md_assemble): Move instruction encoding logic to the above
+	new functions.
+	* testsuite/gas/bpf/jump-relax-ja.d: New test.
+	* testsuite/gas/bpf/jump-relax-ja-be.d: Likewise.
+	* testsuite/gas/bpf/jump-relax-ja.s: And corresponding source.
+	* testsuite/gas/bpf/jump-relax-jump.d: New test.
+	* testsuite/gas/bpf/jump-relax-jump-be.d: Likewise.
+	* testsuite/gas/bpf/jump-relax-jump.s: And corresponding source.
+	* testsuite/gas/bpf/bpf.exp: Run new tests.
+	* doc/c-bpf.texi (BPF Options): Document -mno-relax.
+
+2023-07-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* testsuite/gas/bpf/alu.s: Add test for NEGI and NEG32I.
+	* testsuite/gas/bpf/alu32.s: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu.d: Add expected results.
+	* testsuite/gas/bpf/alu-be.d: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu32.d: Likewise.
+	* testsuite/gas/bpf/alu32-be.d: Likewise.
+	* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
+
+2023-07-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* testsuite/gas/bpf/alu.s: The register neg instruction gets only
+	one argument.
+	* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu-be.d: Likewise.
+	* testsuite/gas/bpf/alu.d: Likewise.
+	* testsuite/gas/bpf/alu32-be.d: Likewise.
+	* testsuite/gas/bpf/alu32.d: Likewise.
+	* testsuite/gas/bpf/alu32.s: Likewise.
+	* doc/c-bpf.texi (BPF Instructions): Update accordingly.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* doc/c-bpf.texi (BPF Instructions): Document BSWAP* instructions.
+	* testsuite/gas/bpf/alu.s: Test BSWAP{16,32,64} instructions.
+	* testsuite/gas/bpf/alu.d: Likewise.
+	* testsuite/gas/bpf/alu-be.d: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* doc/c-bpf.texi (BPF Instructions): The pseudoc syntax for MOVS*
+	doesn't use `s=' but `='.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* doc/c-bpf.texi (BPF Instructions): Fix pseudoc syntax for MOVS*
+	and LDXS* instructions.
+	* testsuite/gas/bpf/mem-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/mem-be-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/mem-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* config/tc-bpf.c (struct bpf_insn): New field `id'.
+	(md_assemble): Save the ids of successfully parsed instructions
+	and use the new BFD_RELOC_BPF_DISPCALL32 whenever appropriate.
+	(md_apply_fix): Adapt to the new BFD reloc.
+	* testsuite/gas/bpf/jump.s: Test JAL.
+	* testsuite/gas/bpf/jump.d: Likewise.
+	* testsuite/gas/bpf/jump-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/jump-be.d: Likewise.
+	* testsuite/gas/bpf/jump-be-pseudoc.d: Likewise.
+	* doc/c-bpf.texi (BPF Instructions): Document new instruction
+	jal/gotol.
+	Document new operand type disp32.
+
+2023-07-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* testsuite/gas/bpf/mem.s: Add signed load instructions.
+	* testsuite/gas/bpf/mem-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/mem.d: Likewise.
+	* testsuite/gas/bpf/mem-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/mem-be.d: Likewise.
+	* doc/c-bpf.texi (BPF Instructions): Document the signed load
+	instructions.
+
+2023-07-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* testsuite/gas/bpf/alu.s: Test movs instructions.
+	* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu32.s: Likewise for movs32 instruction.
+	* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
+	* testsuite/gas/bpf/alu.d: Add expected results.
+	* testsuite/gas/bpf/alu32.d: Likewise.
+	* testsuite/gas/bpf/alu-be.d: Likewise.
+	* testsuite/gas/bpf/alu32-be.d: Likewise.
+	* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
+	* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
 
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 427f42dfa3a..b56cd9a29a9 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -2230,7 +2230,7 @@ de-stage3:
 
 doc/asconfig.texi: doc/$(CONFIG).texi doc/$(am__dirstamp)
 	$(AM_V_at)rm -f doc/asconfig.texi
-	$(AM_V_GEN)cp -p $(srcdir)/doc/$(CONFIG).texi doc/asconfig.texi
+	$(AM_V_GEN)cp $(srcdir)/doc/$(CONFIG).texi doc/asconfig.texi && touch -m -r $(srcdir)/doc/$(CONFIG).texi doc/asconfig.texi
 	$(AM_V_at)chmod u+w doc/asconfig.texi
 
 # Maintenance
diff --git a/gas/NEWS b/gas/NEWS
index 59bdd30aaaa..1ed043511eb 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,5 +1,15 @@
 -*- text -*-
 
+* Add support for Intel PBNDKB instructions.
+
+* Add support for Intel SM4 instructions.
+
+* Add support for Intel SM3 instructions.
+
+* Add support for Intel SHA512 instructions.
+
+* Add support for Intel AVX-VNNI-INT16 instructions.
+
 Changes in 2.41:
 
 * Add support for Intel FRED instructions.
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 753a929fb14..dc05b35ee99 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -1088,8 +1088,9 @@ obj_elf_attach_to_group (int dummy ATTRIBUTE_UNUSED)
 
   if (elf_group_name (now_seg))
     {
-      as_warn (_("section %s already has a group (%s)"),
-	       bfd_section_name (now_seg), elf_group_name (now_seg));
+      if (strcmp (elf_group_name (now_seg), gname) != 0)
+	as_warn (_("section %s already has a group (%s)"),
+		 bfd_section_name (now_seg), elf_group_name (now_seg));
       return;
     }
 
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index 8d16cb57088..d9b13a0388e 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -49,7 +49,7 @@
 			  && (SUB_OPCODE (x) == 0x28))
 
 #ifndef TARGET_WITH_CPU
-#define TARGET_WITH_CPU "arc700"
+#define TARGET_WITH_CPU "hs38_linux"
 #endif /* TARGET_WITH_CPU */
 
 #define ARC_GET_FLAG(s)   	(*symbol_get_tc (s))
diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c
index 3b86f9c89cb..b4566d89ddf 100644
--- a/gas/config/tc-bpf.c
+++ b/gas/config/tc-bpf.c
@@ -22,42 +22,46 @@
 #include "as.h"
 #include "subsegs.h"
 #include "symcat.h"
-#include "opcodes/bpf-desc.h"
-#include "opcodes/bpf-opc.h"
-#include "cgen.h"
+#include "opcode/bpf.h"
 #include "elf/common.h"
 #include "elf/bpf.h"
 #include "dwarf2dbg.h"
+#include "libiberty.h"
 #include <ctype.h>
 
-const char comment_chars[]        = ";";
+/* Data structure representing a parsed BPF instruction.  */
+
+struct bpf_insn
+{
+  enum bpf_insn_id id;
+  int size; /* Instruction size in bytes.  */
+  bpf_insn_word opcode;
+  uint8_t dst;
+  uint8_t src;
+  expressionS offset16;
+  expressionS imm32;
+  expressionS imm64;
+  expressionS disp16;
+  expressionS disp32;
+
+  unsigned int has_dst : 1;
+  unsigned int has_src : 1;
+  unsigned int has_offset16 : 1;
+  unsigned int has_disp16 : 1;
+  unsigned int has_disp32 : 1;
+  unsigned int has_imm32 : 1;
+  unsigned int has_imm64 : 1;
+
+  unsigned int is_relaxable : 1;
+  expressionS *relaxed_exp;
+};
+
+const char comment_chars[]        = ";#";
 const char line_comment_chars[]   = "#";
 const char line_separator_chars[] = "`";
 const char EXP_CHARS[]            = "eE";
 const char FLT_CHARS[]            = "fFdD";
 
-static const char *invalid_expression;
-static char pseudoc_lex[256];
-static const char symbol_chars[] =
-"_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
-
-static const char arithm_op[] = "+-/<>%&|^";
-
-static void init_pseudoc_lex (void);
-
-#define LEX_IS_SYMBOL_COMPONENT  1
-#define LEX_IS_WHITESPACE        2
-#define LEX_IS_NEWLINE           3
-#define LEX_IS_ARITHM_OP         4
-#define LEX_IS_STAR              6
-#define LEX_IS_CLSE_BR           7
-#define LEX_IS_OPEN_BR           8
-#define LEX_IS_EQUAL             9
-#define LEX_IS_EXCLA             10
-
-#define ST_EOI        100
-#define MAX_TOKEN_SZ  100
-
 /* Like s_lcomm_internal in gas/read.c but the alignment string
    is allowed to be optional.  */
 
@@ -110,18 +114,16 @@ const pseudo_typeS md_pseudo_table[] =
 
 
 
-/* ISA handling.  */
-static CGEN_BITSET *bpf_isa;
-
-
-
 /* Command-line options processing.  */
 
 enum options
 {
   OPTION_LITTLE_ENDIAN = OPTION_MD_BASE,
   OPTION_BIG_ENDIAN,
-  OPTION_XBPF
+  OPTION_XBPF,
+  OPTION_DIALECT,
+  OPTION_ISA_SPEC,
+  OPTION_NO_RELAX,
 };
 
 struct option md_longopts[] =
@@ -129,6 +131,9 @@ struct option md_longopts[] =
   { "EL", no_argument, NULL, OPTION_LITTLE_ENDIAN },
   { "EB", no_argument, NULL, OPTION_BIG_ENDIAN },
   { "mxbpf", no_argument, NULL, OPTION_XBPF },
+  { "mdialect", required_argument, NULL, OPTION_DIALECT},
+  { "misa-spec", required_argument, NULL, OPTION_ISA_SPEC},
+  { "mno-relax", no_argument, NULL, OPTION_NO_RELAX},
   { NULL,          no_argument, NULL, 0 },
 };
 
@@ -136,18 +141,39 @@ size_t md_longopts_size = sizeof (md_longopts);
 
 const char * md_shortopts = "";
 
+/* BPF supports little-endian and big-endian variants.  The following
+   global records what endianness to use.  It can be configured using
+   command-line options.  It defaults to the host endianness
+   initialized in md_begin.  */
+
+static int set_target_endian = 0;
 extern int target_big_endian;
 
-/* Whether target_big_endian has been set while parsing command-line
-   arguments.  */
-static int set_target_endian = 0;
+/* Whether to relax branch instructions.  Default is yes.  Can be
+   changed using the -mno-relax command line option.  */
 
-static int target_xbpf = 0;
+static int do_relax = 1;
 
-static int set_xbpf = 0;
+/* The ISA specification can be one of BPF_V1, BPF_V2, BPF_V3, BPF_V4
+   or BPF_XPBF.  The ISA spec to use can be configured using
+   command-line options.  It defaults to the latest BPF spec.  */
+
+static int isa_spec = BPF_V4;
+
+/* The assembler supports two different dialects: "normal" syntax and
+   "pseudoc" syntax.  The dialect to use can be configured using
+   command-line options.  */
+
+enum target_asm_dialect
+{
+  DIALECT_NORMAL,
+  DIALECT_PSEUDOC
+};
+
+static int asm_dialect = DIALECT_NORMAL;
 
 int
-md_parse_option (int c, const char * arg ATTRIBUTE_UNUSED)
+md_parse_option (int c, const char * arg)
 {
   switch (c)
     {
@@ -156,12 +182,39 @@ md_parse_option (int c, const char * arg ATTRIBUTE_UNUSED)
       target_big_endian = 1;
       break;
     case OPTION_LITTLE_ENDIAN:
-      set_target_endian = 1;
+      set_target_endian = 0;
       target_big_endian = 0;
       break;
+    case OPTION_DIALECT:
+      if (strcmp (arg, "normal") == 0)
+        asm_dialect = DIALECT_NORMAL;
+      else if (strcmp (arg, "pseudoc") == 0)
+        asm_dialect = DIALECT_PSEUDOC;
+      else
+        as_fatal (_("-mdialect=%s is not valid.  Expected normal or pseudoc"),
+                  arg);
+      break;
+    case OPTION_ISA_SPEC:
+      if (strcmp (arg, "v1") == 0)
+        isa_spec = BPF_V1;
+      else if (strcmp (arg, "v2") == 0)
+        isa_spec = BPF_V2;
+      else if (strcmp (arg, "v3") == 0)
+        isa_spec = BPF_V3;
+      else if (strcmp (arg, "v4") == 0)
+        isa_spec = BPF_V4;
+      else if (strcmp (arg, "xbpf") == 0)
+        isa_spec = BPF_XBPF;
+      else
+        as_fatal (_("-misa-spec=%s is not valid.  Expected v1, v2, v3, v4 o xbpf"),
+                  arg);
+      break;
     case OPTION_XBPF:
-      set_xbpf = 1;
-      target_xbpf = 1;
+      /* This is an alias for -misa-spec=xbpf.  */
+      isa_spec = BPF_XBPF;
+      break;
+    case OPTION_NO_RELAX:
+      do_relax = 0;
       break;
     default:
       return 0;
@@ -175,43 +228,22 @@ md_show_usage (FILE * stream)
 {
   fprintf (stream, _("\nBPF options:\n"));
   fprintf (stream, _("\
-  --EL			generate code for a little endian machine\n\
-  --EB			generate code for a big endian machine\n\
-  -mxbpf                generate xBPF instructions\n"));
+BPF options:\n\
+  -EL                         generate code for a little endian machine\n\
+  -EB                         generate code for a big endian machine\n\
+  -mdialect=DIALECT           set the assembly dialect (normal, pseudoc)\n\
+  -misa-spec                  set the BPF ISA spec (v1, v2, v3, v4, xbpf)\n\
+  -mxbpf                      alias for -misa-spec=xbpf\n"));
 }
 
 
-
-static void
-init_pseudoc_lex (void)
-{
-  const char *p;
-
-  for (p = symbol_chars; *p; ++p)
-    pseudoc_lex[(unsigned char) *p] = LEX_IS_SYMBOL_COMPONENT;
-
-  pseudoc_lex[' '] = LEX_IS_WHITESPACE;
-  pseudoc_lex['\t'] = LEX_IS_WHITESPACE;
-  pseudoc_lex['\r'] = LEX_IS_WHITESPACE;
-  pseudoc_lex['\n'] = LEX_IS_NEWLINE;
-  pseudoc_lex['*'] = LEX_IS_STAR;
-  pseudoc_lex[')'] = LEX_IS_CLSE_BR;
-  pseudoc_lex['('] = LEX_IS_OPEN_BR;
-  pseudoc_lex[']'] = LEX_IS_CLSE_BR;
-  pseudoc_lex['['] = LEX_IS_OPEN_BR;
-
-  for (p = arithm_op; *p; ++p)
-    pseudoc_lex[(unsigned char) *p] = LEX_IS_ARITHM_OP;
-
-  pseudoc_lex['='] = LEX_IS_EQUAL;
-  pseudoc_lex['!'] = LEX_IS_EXCLA;
-}
+/* This function is called once, at assembler startup time.  This
+   should set up all the tables, etc that the MD part of the assembler
+   needs.  */
 
 void
 md_begin (void)
 {
-  /* Initialize the `cgen' interface.  */
-
   /* If not specified in the command line, use the host
      endianness.  */
   if (!set_target_endian)
@@ -223,50 +255,15 @@ md_begin (void)
 #endif
     }
 
-  /* If not specified in the command line, use eBPF rather
-     than xBPF.  */
-  if (!set_xbpf)
-      target_xbpf = 0;
-
-  /* Set the ISA, which depends on the target endianness. */
-  bpf_isa = cgen_bitset_create (ISA_MAX);
-  if (target_big_endian)
-    {
-      if (target_xbpf)
-	cgen_bitset_set (bpf_isa, ISA_XBPFBE);
-      else
-	cgen_bitset_set (bpf_isa, ISA_EBPFBE);
-    }
-  else
-    {
-      if (target_xbpf)
-	cgen_bitset_set (bpf_isa, ISA_XBPFLE);
-      else
-	cgen_bitset_set (bpf_isa, ISA_EBPFLE);
-    }
-
   /* Ensure that lines can begin with '*' in BPF store pseudoc instruction.  */
   lex_type['*'] |= LEX_BEGIN_NAME;
 
-  /* Set the machine number and endian.  */
-  gas_cgen_cpu_desc = bpf_cgen_cpu_open (CGEN_CPU_OPEN_ENDIAN,
-                                         target_big_endian ?
-                                         CGEN_ENDIAN_BIG : CGEN_ENDIAN_LITTLE,
-                                         CGEN_CPU_OPEN_INSN_ENDIAN,
-                                         CGEN_ENDIAN_LITTLE,
-                                         CGEN_CPU_OPEN_ISAS,
-                                         bpf_isa,
-                                         CGEN_CPU_OPEN_END);
-  bpf_cgen_init_asm (gas_cgen_cpu_desc);
-
-  /* This is a callback from cgen to gas to parse operands.  */
-  cgen_set_parse_operand_fn (gas_cgen_cpu_desc, gas_cgen_parse_operand);
-
   /* Set the machine type. */
   bfd_default_set_arch_mach (stdoutput, bfd_arch_bpf, bfd_mach_bpf);
-  init_pseudoc_lex();
 }
 
+/* Round up a section size to the appropriate boundary.  */
+
 valueT
 md_section_align (segT segment, valueT size)
 {
@@ -275,6 +272,20 @@ md_section_align (segT segment, valueT size)
   return ((size + (1 << align) - 1) & -(1 << align));
 }
 
+/* Return non-zero if the indicated VALUE has overflowed the maximum
+   range expressible by an signed number with the indicated number of
+   BITS.  */
+
+static bool
+signed_overflow (offsetT value, unsigned bits)
+{
+  offsetT lim;
+  if (bits >= sizeof (offsetT) * 8)
+    return false;
+  lim = (offsetT) 1 << (bits - 1);
+  return (value < -lim || value >= lim);
+}
+
 
 /* Functions concerning relocs.  */
 
@@ -310,34 +321,194 @@ md_number_to_chars (char * buf, valueT val, int n)
 }
 
 arelent *
-tc_gen_reloc (asection *sec, fixS *fix)
+tc_gen_reloc (asection *sec ATTRIBUTE_UNUSED, fixS *fixP)
 {
-  return gas_cgen_tc_gen_reloc (sec, fix);
-}
+  bfd_reloc_code_real_type r_type = fixP->fx_r_type;
+  arelent *reloc;
 
-/* Return the bfd reloc type for OPERAND of INSN at fixup FIXP.  This
-   is called when the operand is an expression that couldn't be fully
-   resolved.  Returns BFD_RELOC_NONE if no reloc type can be found.
-   *FIXP may be modified if desired.  */
+  reloc = XNEW (arelent);
 
-bfd_reloc_code_real_type
-md_cgen_lookup_reloc (const CGEN_INSN *insn ATTRIBUTE_UNUSED,
-		      const CGEN_OPERAND *operand,
-		      fixS *fixP)
-{
-  switch (operand->type)
+  if (fixP->fx_pcrel)
+   {
+      r_type = (r_type == BFD_RELOC_8 ? BFD_RELOC_8_PCREL
+                : r_type == BFD_RELOC_16 ? BFD_RELOC_16_PCREL
+                : r_type == BFD_RELOC_24 ? BFD_RELOC_24_PCREL
+                : r_type == BFD_RELOC_32 ? BFD_RELOC_32_PCREL
+                : r_type == BFD_RELOC_64 ? BFD_RELOC_64_PCREL
+                : r_type);
+   }
+
+  reloc->howto = bfd_reloc_type_lookup (stdoutput, r_type);
+
+  if (reloc->howto == (reloc_howto_type *) NULL)
     {
-    case BPF_OPERAND_IMM64:
-      return BFD_RELOC_BPF_64;
-    case BPF_OPERAND_DISP32:
-      fixP->fx_pcrel = 1;
-      return BFD_RELOC_BPF_DISP32;
-    default:
-      break;
+      as_bad_where (fixP->fx_file, fixP->fx_line,
+		    _("relocation is not supported"));
+      return NULL;
     }
-  return BFD_RELOC_NONE;
+
+  //XXX  gas_assert (!fixP->fx_pcrel == !reloc->howto->pc_relative);
+
+  reloc->sym_ptr_ptr = XNEW (asymbol *);
+  *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy);
+
+  /* Use fx_offset for these cases.  */
+  if (fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY
+      || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT)
+    reloc->addend = fixP->fx_offset;
+  else
+    reloc->addend = fixP->fx_addnumber;
+
+  reloc->address = fixP->fx_frag->fr_address + fixP->fx_where;
+  return reloc;
 }
+
 
+/* Relaxations supported by this assembler.  */
+
+#define RELAX_BRANCH_ENCODE(uncond, constant, length)    \
+  ((relax_substateT)                                     \
+   (0xc0000000                                           \
+    | ((uncond) ? 1 : 0)                                 \
+    | ((constant) ? 2 : 0)                               \
+    | ((length) << 2)))
+
+#define RELAX_BRANCH_P(i) (((i) & 0xf0000000) == 0xc0000000)
+#define RELAX_BRANCH_LENGTH(i) (((i) >> 2) & 0xff)
+#define RELAX_BRANCH_CONST(i) (((i) & 2) != 0)
+#define RELAX_BRANCH_UNCOND(i) (((i) & 1) != 0)
+
+
+/* Compute the length of a branch seuqence, and adjust the stored
+   length accordingly.  If FRAG is NULL, the worst-case length is
+   returned.  */
+
+static unsigned
+relaxed_branch_length (fragS *fragp, asection *sec, int update)
+{
+  int length, uncond;
+
+  if (!fragp)
+    return 8 * 3;
+
+  uncond = RELAX_BRANCH_UNCOND (fragp->fr_subtype);
+  length = RELAX_BRANCH_LENGTH (fragp->fr_subtype);
+
+  if (uncond)
+    /* Length is the same for both JA and JAL.  */
+    length = 8;
+  else
+    {
+      if (RELAX_BRANCH_CONST (fragp->fr_subtype))
+        {
+          int64_t val = fragp->fr_offset;
+
+          if (val < -32768 || val > 32767)
+            length =  8 * 3;
+          else
+            length = 8;
+        }
+      else if (fragp->fr_symbol != NULL
+          && S_IS_DEFINED (fragp->fr_symbol)
+          && !S_IS_WEAK (fragp->fr_symbol)
+          && sec == S_GET_SEGMENT (fragp->fr_symbol))
+        {
+          offsetT val = S_GET_VALUE (fragp->fr_symbol) + fragp->fr_offset;
+
+          /* Convert to 64-bit words, minus one.  */
+          val = (val - 8) / 8;
+
+          /* See if it fits in the signed 16-bits field.  */
+          if (val < -32768 || val > 32767)
+            length = 8 * 3;
+          else
+            length = 8;
+        }
+      else
+        /* Use short version, and let the linker relax instead, if
+           appropriate and if supported.  */
+        length = 8;
+    }
+
+  if (update)
+    fragp->fr_subtype = RELAX_BRANCH_ENCODE (uncond,
+                                             RELAX_BRANCH_CONST (fragp->fr_subtype),
+                                             length);
+
+  return length;
+}
+
+/* Estimate the size of a variant frag before relaxing.  */
+
+int
+md_estimate_size_before_relax (fragS *fragp, asection *sec)
+{
+  return (fragp->fr_var = relaxed_branch_length (fragp, sec, true));
+}
+
+/* Read a BPF instruction word from BUF.  */
+
+static uint64_t
+read_insn_word (bfd_byte *buf)
+{
+  return bfd_getb64 (buf);
+}
+
+/* Write the given signed 16-bit value in the given BUFFER using the
+   target endianness.  */
+
+static void
+encode_int16 (int16_t value, char *buffer)
+{
+  uint16_t val = value;
+
+  if (target_big_endian)
+    {
+      buffer[0] = (val >> 8) & 0xff;
+      buffer[1] = val & 0xff;
+    }
+  else
+    {
+      buffer[1] = (val >> 8) & 0xff;
+      buffer[0] = val & 0xff;
+    }
+}
+
+/* Write the given signed 32-bit value in the given BUFFER using the
+   target endianness.  */
+
+static void
+encode_int32 (int32_t value, char *buffer)
+{
+  uint32_t val = value;
+
+  if (target_big_endian)
+    {
+      buffer[0] = (val >> 24) & 0xff;
+      buffer[1] = (val >> 16) & 0xff;
+      buffer[2] = (val >> 8) & 0xff;
+      buffer[3] = val & 0xff;
+    }
+  else
+    {
+      buffer[3] = (val >> 24) & 0xff;
+      buffer[2] = (val >> 16) & 0xff;
+      buffer[1] = (val >> 8) & 0xff;
+      buffer[0] = value & 0xff;
+    }
+}
+
+/* Write a BPF instruction to BUF.  */
+
+static void
+write_insn_bytes (bfd_byte *buf, char *bytes)
+{
+  int i;
+
+  for (i = 0; i < 8; ++i)
+    md_number_to_chars ((char *) buf + i, (valueT) bytes[i], 1);
+}
+
 /* *FRAGP has been relaxed to its final size, and now needs to have
    the bytes inside it modified to conform to the new size.
 
@@ -348,35 +519,258 @@ md_cgen_lookup_reloc (const CGEN_INSN *insn ATTRIBUTE_UNUSED,
 void
 md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 		 segT sec ATTRIBUTE_UNUSED,
-		 fragS *fragP ATTRIBUTE_UNUSED)
+		 fragS *fragp ATTRIBUTE_UNUSED)
 {
-  as_fatal (_("convert_frag called"));
-}
+  bfd_byte *buf = (bfd_byte *) fragp->fr_literal + fragp->fr_fix;
+  expressionS exp;
+  fixS *fixp;
+  bpf_insn_word word;
+  int disp_is_known = 0;
+  int64_t disp_to_target = 0;
 
-int
-md_estimate_size_before_relax (fragS *fragP ATTRIBUTE_UNUSED,
-                               segT segment ATTRIBUTE_UNUSED)
-{
-  as_fatal (_("estimate_size_before_relax called"));
-  return 0;
+  uint64_t code;
+
+  gas_assert (RELAX_BRANCH_P (fragp->fr_subtype));
+
+  /* Expression to be used in any resulting relocation in the relaxed
+     instructions.  */
+  exp.X_op = O_symbol;
+  exp.X_add_symbol = fragp->fr_symbol;
+  exp.X_add_number = fragp->fr_offset;
+
+  gas_assert (fragp->fr_var == RELAX_BRANCH_LENGTH (fragp->fr_subtype));
+
+  /* Read an instruction word from the instruction to be relaxed, and
+     get the code.  */
+  word = read_insn_word (buf);
+  code = (word >> 60) & 0xf;
+
+  /* Determine whether the 16-bit displacement to the target is known
+     at this point.  */
+  if (RELAX_BRANCH_CONST (fragp->fr_subtype))
+    {
+      disp_to_target = fragp->fr_offset;
+      disp_is_known = 1;
+    }
+  else if (fragp->fr_symbol != NULL
+           && S_IS_DEFINED (fragp->fr_symbol)
+           && !S_IS_WEAK (fragp->fr_symbol)
+           && sec == S_GET_SEGMENT (fragp->fr_symbol))
+    {
+      offsetT val = S_GET_VALUE (fragp->fr_symbol) + fragp->fr_offset;
+      /* Convert to 64-bit blocks minus one.  */
+      disp_to_target = (val - 8) / 8;
+      disp_is_known = 1;
+    }
+
+  /* The displacement should fit in a signed 32-bit number.  */
+  if (disp_is_known && signed_overflow (disp_to_target, 32))
+    as_bad_where (fragp->fr_file, fragp->fr_line,
+                  _("signed instruction operand out of range, shall fit in 32 bits"));
+
+  /* Now relax particular jump instructions.  */
+  if (code == BPF_CODE_JA)
+    {
+      /* Unconditional jump.
+         JA d16 -> JAL d32  */
+
+      gas_assert (RELAX_BRANCH_UNCOND (fragp->fr_subtype));
+
+      if (disp_is_known)
+        {
+          if (disp_to_target >= -32768 && disp_to_target <= 32767)
+            {
+              /* 16-bit disp is known and in range.  Install a fixup
+                 for the disp16 if the branch value is not constant.
+                 This will be resolved by the assembler and units
+                 converted.  */
+
+              if (!RELAX_BRANCH_CONST (fragp->fr_subtype))
+                {
+                  /* Install fixup for the JA.  */
+                  reloc_howto_type *reloc_howto
+                    = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_BPF_DISP16);
+                  if (!reloc_howto)
+                    abort();
+
+                  fixp = fix_new_exp (fragp, buf - (bfd_byte *) fragp->fr_literal,
+                                      bfd_get_reloc_size (reloc_howto),
+                                      &exp,
+                                      reloc_howto->pc_relative,
+                                      BFD_RELOC_BPF_DISP16);
+                  fixp->fx_file = fragp->fr_file;
+                  fixp->fx_line = fragp->fr_line;
+                }
+            }
+          else
+            {
+              /* 16-bit disp is known and not in range.  Turn the JA
+                 into a JAL with a 32-bit displacement.  */
+              char bytes[8];
+
+              bytes[0] = ((BPF_CLASS_JMP32|BPF_CODE_JA|BPF_SRC_K) >> 56) & 0xff;
+              bytes[1] = (word >> 48) & 0xff;
+              bytes[2] = 0; /* disp16 high */
+              bytes[3] = 0; /* disp16 lo */
+              encode_int32 ((int32_t) disp_to_target, bytes + 4);
+
+              write_insn_bytes (buf, bytes);
+            }
+        }
+      else
+        {
+          /* The displacement to the target is not known.  Do not
+             relax.  The linker will maybe do it if it chooses to.  */
+
+          reloc_howto_type *reloc_howto = NULL;
+
+          gas_assert (!RELAX_BRANCH_CONST (fragp->fr_subtype));
+
+          /* Install fixup for the JA.  */
+          reloc_howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_BPF_DISP16);
+          if (!reloc_howto)
+            abort ();
+
+          fixp = fix_new_exp (fragp, buf - (bfd_byte *) fragp->fr_literal,
+                              bfd_get_reloc_size (reloc_howto),
+                              &exp,
+                              reloc_howto->pc_relative,
+                              BFD_RELOC_BPF_DISP16);
+          fixp->fx_file = fragp->fr_file;
+          fixp->fx_line = fragp->fr_line;
+        }
+
+      buf += 8;
+    }
+  else
+    {
+      /* Conditional jump.
+         JXX d16 -> JXX +1; JA +1; JAL d32 */
+
+      gas_assert (!RELAX_BRANCH_UNCOND (fragp->fr_subtype));
+
+      if (disp_is_known)
+        {
+          if (disp_to_target >= -32768 && disp_to_target <= 32767)
+            {
+              /* 16-bit disp is known and in range.  Install a fixup
+                 for the disp16 if the branch value is not constant.
+                 This will be resolved by the assembler and units
+                 converted.  */
+
+              if (!RELAX_BRANCH_CONST (fragp->fr_subtype))
+                {
+                  /* Install fixup for the branch.  */
+                  reloc_howto_type *reloc_howto
+                    = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_BPF_DISP16);
+                  if (!reloc_howto)
+                    abort();
+
+                  fixp = fix_new_exp (fragp, buf - (bfd_byte *) fragp->fr_literal,
+                                      bfd_get_reloc_size (reloc_howto),
+                                      &exp,
+                                      reloc_howto->pc_relative,
+                                      BFD_RELOC_BPF_DISP16);
+                  fixp->fx_file = fragp->fr_file;
+                  fixp->fx_line = fragp->fr_line;
+                }
+
+              buf += 8;
+            }
+          else
+            {
+              /* 16-bit disp is known and not in range.  Turn the JXX
+                 into a sequence JXX +1; JA +1; JAL d32.  */
+
+              char bytes[8];
+
+              /* First, set the 16-bit offset in the current
+                 instruction to 1.  */
+
+              if (target_big_endian)
+                bfd_putb16 (1, buf + 2);
+              else
+                bfd_putl16 (1, buf + 2);
+              buf += 8;
+
+              /* Then, write the JA + 1  */
+
+              bytes[0] = 0x05; /* JA */
+              bytes[1] = 0x0;
+              encode_int16 (1, bytes + 2);
+              bytes[4] = 0x0;
+              bytes[5] = 0x0;
+              bytes[6] = 0x0;
+              bytes[7] = 0x0;
+              write_insn_bytes (buf, bytes);
+              buf += 8;
+
+              /* Finally, write the JAL to the target. */
+
+              bytes[0] = ((BPF_CLASS_JMP32|BPF_CODE_JA|BPF_SRC_K) >> 56) & 0xff;
+              bytes[1] = 0;
+              bytes[2] = 0;
+              bytes[3] = 0;
+              encode_int32 ((int32_t) disp_to_target, bytes + 4);
+              write_insn_bytes (buf, bytes);
+              buf += 8;
+            }
+        }
+      else
+        {
+          /* The displacement to the target is not known.  Do not
+             relax.  The linker will maybe do it if it chooses to.  */
+
+          reloc_howto_type *reloc_howto = NULL;
+
+          gas_assert (!RELAX_BRANCH_CONST (fragp->fr_subtype));
+
+          /* Install fixup for the conditional jump.  */
+          reloc_howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_BPF_DISP16);
+          if (!reloc_howto)
+            abort ();
+
+          fixp = fix_new_exp (fragp, buf - (bfd_byte *) fragp->fr_literal,
+                              bfd_get_reloc_size (reloc_howto),
+                              &exp,
+                              reloc_howto->pc_relative,
+                              BFD_RELOC_BPF_DISP16);
+          fixp->fx_file = fragp->fr_file;
+          fixp->fx_line = fragp->fr_line;
+          buf += 8;
+        }
+    }
+
+  gas_assert (buf == (bfd_byte *)fragp->fr_literal
+              + fragp->fr_fix + fragp->fr_var);
+
+  fragp->fr_fix += fragp->fr_var;
 }
 
 
-void
-md_apply_fix (fixS *fixP, valueT *valP, segT seg)
-{
-  /* Some fixups for instructions require special attention.  This is
-     handled in the code block below.  */
-  if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED)
-    {
-      int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED;
-      const CGEN_OPERAND *operand = cgen_operand_lookup_by_num (gas_cgen_cpu_desc,
-                                                                opindex);
-      char *where;
+/* Apply a fixS (fixup of an instruction or data that we didn't have
+   enough info to complete immediately) to the data in a frag.  */
 
-      switch (operand->type)
+void
+md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
+{
+  char *where = fixP->fx_frag->fr_literal + fixP->fx_where;
+
+  switch (fixP->fx_r_type)
+    {
+    case BFD_RELOC_BPF_DISP16:
+      /* Convert from bytes to number of 64-bit words to the target,
+         minus one.  */
+      *valP = (((long) (*valP)) - 8) / 8;
+      break;
+    case BFD_RELOC_BPF_DISPCALL32:
+    case BFD_RELOC_BPF_DISP32:
+      /* Convert from bytes to number of 64-bit words to the target,
+         minus one.  */
+      *valP = (((long) (*valP)) - 8) / 8;
+
+      if (fixP->fx_r_type == BFD_RELOC_BPF_DISPCALL32)
         {
-        case BPF_OPERAND_DISP32:
           /* eBPF supports two kind of CALL instructions: the so
              called pseudo calls ("bpf to bpf") and external calls
              ("bpf to kernel").
@@ -396,1522 +790,852 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
 
              Note that the CALL instruction has only one operand, so
              this code is executed only once per instruction.  */
-          where = fixP->fx_frag->fr_literal + fixP->fx_where + 1;
-          where[0] = target_big_endian ? 0x01 : 0x10;
-          /* Fallthrough.  */
-        case BPF_OPERAND_DISP16:
-          /* The PC-relative displacement fields in jump instructions
-             shouldn't be in bytes.  Instead, they hold the number of
-             64-bit words to the target, _minus one_.  */ 
-          *valP = (((long) (*valP)) - 8) / 8;
+          md_number_to_chars (where + 1, target_big_endian ? 0x01 : 0x10, 1);
+        }
+      break;
+    case BFD_RELOC_16_PCREL:
+      /* Convert from bytes to number of 64-bit words to the target,
+         minus one.  */
+      *valP = (((long) (*valP)) - 8) / 8;
+      break;
+    default:
+      break;
+    }
+
+  if (fixP->fx_addsy == (symbolS *) NULL)
+    fixP->fx_done = 1;
+
+  if (fixP->fx_done)
+    {
+      /* We're finished with this fixup.  Install it because
+	 bfd_install_relocation won't be called to do it.  */
+      switch (fixP->fx_r_type)
+	{
+	case BFD_RELOC_8:
+	  md_number_to_chars (where, *valP, 1);
+	  break;
+	case BFD_RELOC_16:
+	  md_number_to_chars (where, *valP, 2);
+	  break;
+	case BFD_RELOC_32:
+	  md_number_to_chars (where, *valP, 4);
+	  break;
+	case BFD_RELOC_64:
+	  md_number_to_chars (where, *valP, 8);
+	  break;
+        case BFD_RELOC_BPF_DISP16:
+          md_number_to_chars (where + 2, (uint16_t) *valP, 2);
+          break;
+        case BFD_RELOC_BPF_DISP32:
+        case BFD_RELOC_BPF_DISPCALL32:
+          md_number_to_chars (where + 4, (uint32_t) *valP, 4);
+          break;
+        case BFD_RELOC_16_PCREL:
+          md_number_to_chars (where + 2, (uint32_t) *valP, 2);
+          break;
+	default:
+	  as_bad_where (fixP->fx_file, fixP->fx_line,
+			_("internal error: can't install fix for reloc type %d (`%s')"),
+			fixP->fx_r_type, bfd_get_reloc_code_name (fixP->fx_r_type));
+	  break;
+	}
+    }
+
+  /* Tuck `value' away for use by tc_gen_reloc.
+     See the comment describing fx_addnumber in write.h.
+     This field is misnamed (or misused :-).  */
+  fixP->fx_addnumber = *valP;
+}
+
+
+/* Instruction writing routines.  */
+
+/* Encode a BPF instruction in the given buffer BYTES.  Non-constant
+   immediates are encoded as zeroes.  */
+
+static void
+encode_insn (struct bpf_insn *insn, char *bytes, int relaxed)
+{
+  uint8_t src, dst;
+
+  /* Zero all the bytes.  */
+  memset (bytes, 0, 16);
+
+  /* First encode the opcodes.  Note that we have to handle the
+     endianness groups of the BPF instructions: 8 | 4 | 4 | 16 |
+     32. */
+  if (target_big_endian)
+    {
+      /* code */
+      bytes[0] = (insn->opcode >> 56) & 0xff;
+      /* regs */
+      bytes[1] = (insn->opcode >> 48) & 0xff;
+      /* offset16 */
+      bytes[2] = (insn->opcode >> 40) & 0xff;
+      bytes[3] = (insn->opcode >> 32) & 0xff;
+      /* imm32 */
+      bytes[4] = (insn->opcode >> 24) & 0xff;
+      bytes[5] = (insn->opcode >> 16) & 0xff;
+      bytes[6] = (insn->opcode >> 8) & 0xff;
+      bytes[7] = insn->opcode & 0xff;
+    }
+  else
+    {
+      /* code */
+      bytes[0] = (insn->opcode >> 56) & 0xff;
+      /* regs */
+      bytes[1] = (((((insn->opcode >> 48) & 0xff) & 0xf) << 4)
+                  | (((insn->opcode >> 48) & 0xff) & 0xf));
+      /* offset16 */
+      bytes[3] = (insn->opcode >> 40) & 0xff;
+      bytes[2] = (insn->opcode >> 32) & 0xff;
+      /* imm32 */
+      bytes[7] = (insn->opcode >> 24) & 0xff;
+      bytes[6] = (insn->opcode >> 16) & 0xff;
+      bytes[5] = (insn->opcode >> 8) & 0xff;
+      bytes[4] = insn->opcode & 0xff;
+    }
+
+  /* Now the registers.  */
+  src = insn->has_src ? insn->src : 0;
+  dst = insn->has_dst ? insn->dst : 0;
+
+  if (target_big_endian)
+    bytes[1] = ((dst & 0xf) << 4) | (src & 0xf);
+  else
+    bytes[1] = ((src & 0xf) << 4) | (dst & 0xf);
+
+  /* Now the immediates that are known to be constant.  */
+
+  if (insn->has_imm32 && insn->imm32.X_op == O_constant)
+    {
+      int64_t imm = insn->imm32.X_add_number;
+
+      if (signed_overflow (imm, 32))
+        as_bad (_("signed immediate out of range, shall fit in 32 bits"));
+      else
+        encode_int32 (insn->imm32.X_add_number, bytes + 4);        
+    }
+
+  if (insn->has_disp32 && insn->disp32.X_op == O_constant)
+    {
+      int64_t disp = insn->disp32.X_add_number;
+
+      if (signed_overflow (disp, 32))
+        as_bad (_("signed pc-relative offset out of range, shall fit in 32 bits"));
+      else
+        encode_int32 (insn->disp32.X_add_number, bytes + 4);
+    }
+
+  if (insn->has_offset16 && insn->offset16.X_op == O_constant)
+    {
+      int64_t offset = insn->offset16.X_add_number;
+
+      if (signed_overflow (offset, 16))
+        as_bad (_("signed pc-relative offset out of range, shall fit in 16 bits"));
+      else
+        encode_int16 (insn->offset16.X_add_number, bytes + 2);
+    }
+
+  if (insn->has_disp16 && insn->disp16.X_op == O_constant)
+    {
+      int64_t disp = insn->disp16.X_add_number;
+
+      if (!relaxed && signed_overflow (disp, 16))
+        as_bad (_("signed pc-relative offset out of range, shall fit in 16 bits"));
+      else
+        encode_int16 (insn->disp16.X_add_number, bytes + 2);
+    }
+
+  if (insn->has_imm64 && insn->imm64.X_op == O_constant)
+    {
+      uint64_t imm64 = insn->imm64.X_add_number;
+
+      if (target_big_endian)
+        {
+          bytes[12] = (imm64 >> 56) & 0xff;
+          bytes[13] = (imm64 >> 48) & 0xff;
+          bytes[14] = (imm64 >> 40) & 0xff;
+          bytes[15] = (imm64 >> 32) & 0xff;
+          bytes[4] = (imm64 >> 24) & 0xff;
+          bytes[5] = (imm64 >> 16) & 0xff;
+          bytes[6] = (imm64 >> 8) & 0xff;
+          bytes[7] = imm64 & 0xff;
+        }
+      else
+        {
+          bytes[15] = (imm64 >> 56) & 0xff;
+          bytes[14] = (imm64 >> 48) & 0xff;
+          bytes[13] = (imm64 >> 40) & 0xff;
+          bytes[12] = (imm64 >> 32) & 0xff;
+          bytes[7] = (imm64 >> 24) & 0xff;
+          bytes[6] = (imm64 >> 16) & 0xff;
+          bytes[5] = (imm64 >> 8) & 0xff;
+          bytes[4] = imm64 & 0xff;
+        }
+    }
+}
+
+/* Install the fixups in INSN in their proper location in the
+   specified FRAG at the location pointed by WHERE.  */
+
+static void
+install_insn_fixups (struct bpf_insn *insn, fragS *frag, long where)
+{
+  if (insn->has_imm64)
+    {
+      switch (insn->imm64.X_op)
+        {
+        case O_symbol:
+        case O_subtract:
+        case O_add:
+          {
+            reloc_howto_type *reloc_howto;
+            int size;
+
+            reloc_howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_BPF_64);
+            if (!reloc_howto)
+              abort ();
+
+            size = bfd_get_reloc_size (reloc_howto);
+
+            fix_new_exp (frag, where,
+                         size, &insn->imm64, reloc_howto->pc_relative,
+                         BFD_RELOC_BPF_64);
+            break;
+          }
+        case O_constant:
+          /* Already handled in encode_insn.  */
           break;
         default:
-          break;
+          abort ();
         }
     }
 
-  /* And now invoke CGEN's handler, which will eventually install
-     *valP into the corresponding operand.  */
-  gas_cgen_md_apply_fix (fixP, valP, seg);
-}
-
-/*
-  The BPF pseudo grammar:
-
-	instruction  : bpf_alu_insn
-		     | bpf_alu32_insn
-		     | bpf_jump_insn
-		     | bpf_load_store_insn
-		     | bpf_load_store32_insn
-		     | bpf_non_generic_load
-		     | bpf_endianness_conv_insn
-		     | bpf_64_imm_load_insn
-		     | bpf_atomic_insn
-		     ;
-
-	bpf_alu_insn : BPF_REG bpf_alu_operator register_or_imm32
-		     ;
-
-	bpf_alu32_insn : BPF_REG32 bpf_alu_operator register32_or_imm32
-		       ;
-
-	bpf_jump_insn  : BPF_JA offset
-		       | IF BPF_REG bpf_jump_operator register_or_imm32 BPF_JA offset
-		       | IF BPF_REG32 bpf_jump_operator register_or_imm32 BPF_JA offset
-		       | BPF_CALL offset
-		       | BPF_EXIT
-		       ;
-
-	bpf_load_store_insn  : BPF_REG CHR_EQUAL bpf_size_cast BPF_CHR_OPEN_BR \
-			       register_and_offset BPF_CHR_CLSE_BR
-			     | bpf_size_cast register_and_offset CHR_EQUAL BPF_REG
-			     ;
-
-	bpf_load_store32_insn  : BPF_REG CHR_EQUAL bpf_size_cast BPF_CHR_OPEN_BR \
-				 register32_and_offset BPF_CHR_CLSE_BR
-			       | bpf_size_cast register_and_offset CHR_EQUAL BPF_REG32
-			     ;
-
-	bpf_non_generic_load : BPF_REG_R0 CHR_EQUAL bpf_size_cast BPF_LD BPF_CHR_OPEN_BR \
-			       imm32 BPF_CHR_CLSE_BR
-			     ;
-
-	bpf_endianness_conv_insn : BPF_REG_N bpf_endianness_mnem BPF_REG_N
-				 ;
-
-	bpf_64_imm_load_insn : BPF_REG imm64 BPF_LL
-			     ;
-
-	bpf_atomic_insn : BPF_LOCK bpf_size_cast_32_64 register_and_offset BPF_ADD BPF_REG
-
-	register_and_offset : BPF_CHR_OPEN_BR BPF_REG offset BPF_CHR_CLSE_BR
-			    ;
-
-	register32_and_offset : BPF_CHR_OPEN_BR BPF_REG32 offset BPF_CHR_CLSE_BR
-			      ;
-
-	bpf_size_cast : CHR_START BPF_CHR_OPEN_BR bpf_size CHR_START BPF_CHR_CLSE_BR
-		      ;
-
-	bpf_size_cast_32_64 : CHR_START BPF_CHR_OPEN_BR bpf_size_cast_32_64 CHR_STAR BPF_CHR_CLSE_BR
-			    ;
-
-	bpf_size_32_64 : BPF_CAST_U32
-		       | BPF_CAST_U64
-		       ;
-
-	bpf_size  : BPF_CAST_U8
-		  | BPF_CAST_U16
-		  | BPF_CAST_U32
-		  | BPF_CAST_U64
-		  ;
-
-	bpf_jump_operator : BPF_JEQ
-			  | BPF_JGT
-			  | BPF_JGE
-			  | BPF_JNE
-			  | BPF_JSGT
-			  | BPF_JSGE
-			  | BPF_JLT
-			  | BPF_JLE
-			  | BPF_JSLT
-			  | BPF_JSLE
-			  ;
-
-	bpf_alu_operator : BPF_ADD
-			 | BPF_SUB
-			 | BPF_MUL
-			 | BPF_DIV
-			 | BPF_OR
-			 | BPF_AND
-			 | BPF_LSH
-			 | BPF_RSH
-			 | BPF_NEG
-			 | BPF_MOD
-			 | BPF_XOR
-			 | BPF_ARSH
-			 | CHR_EQUAL
-			 ;
-
-	bpf_endianness_mnem : BPF_LE16
-			    | BPF_LE32
-			    | BPF_LE64
-			    | BPF_BE16
-			    | BPF_BE32
-			    | BPF_BE64
-			    ;
-
-	offset : BPF_EXPR
-	       | BPF_SYMBOL
-	       ;
-
-	register_or_imm32 : BPF_REG
-			  | expression
-			  ;
-
-	register32_or_imm32 : BPF_REG32
-			    | expression
-			    ;
-
-	imm32 : BPF_EXPR
-	      | BPF_SYMBOL
-	      ;
-
-	imm64 : BPF_EXPR
-	      | BPF_SYMBOL
-	      ;
-
-	register_or_expression : BPF_EXPR
-			       | BPF_REG
-			       ;
-
-	BPF_EXPR : GAS_EXPR
-
-*/
-
-enum bpf_token_type
-  {
-    /* Keep grouped to quickly access. */
-    BPF_ADD,
-    BPF_SUB,
-    BPF_MUL,
-    BPF_DIV,
-    BPF_OR,
-    BPF_AND,
-    BPF_LSH,
-    BPF_RSH,
-    BPF_MOD,
-    BPF_XOR,
-    BPF_MOV,
-    BPF_ARSH,
-    BPF_NEG,
-
-    BPF_REG,
-
-    BPF_IF,
-    BPF_GOTO,
-
-    /* Keep grouped to quickly access.  */
-    BPF_JEQ,
-    BPF_JGT,
-    BPF_JGE,
-    BPF_JLT,
-    BPF_JLE,
-    BPF_JSET,
-    BPF_JNE,
-    BPF_JSGT,
-    BPF_JSGE,
-    BPF_JSLT,
-    BPF_JSLE,
-
-    BPF_SYMBOL,
-    BPF_CHR_CLSE_BR,
-    BPF_CHR_OPEN_BR,
-
-    /* Keep grouped to quickly access.  */
-    BPF_CAST_U8,
-    BPF_CAST_U16,
-    BPF_CAST_U32,
-    BPF_CAST_U64,
-
-    /* Keep grouped to quickly access.  */
-    BPF_LE16,
-    BPF_LE32,
-    BPF_LE64,
-    BPF_BE16,
-    BPF_BE32,
-    BPF_BE64,
-
-    BPF_LOCK,
-
-    BPF_IND_CALL,
-    BPF_LD,
-    BPF_LL,
-    BPF_EXPR,
-    BPF_UNKNOWN,
-  };
-
-static int
-valid_expr (const char *e, const char **end_expr)
-{
-  invalid_expression = NULL;
-  char *hold = input_line_pointer;
-  expressionS exp;
-
-  input_line_pointer = (char *) e;
-  deferred_expression  (&exp);
-  *end_expr = input_line_pointer;
-  input_line_pointer = hold;
-
-  return invalid_expression == NULL;
-}
-
-static char *
-build_bpf_non_generic_load (char *src, enum bpf_token_type cast,
-			    const char *imm32)
-{
-  char *bpf_insn;
-  static const char *cast_rw[] = {"b", "h", "w", "dw"};
-
-  bpf_insn = xasprintf ("%s%s%s %s%s%s%s",
-			"ld",
-			src ? "ind" : "abs",
-			cast_rw[cast - BPF_CAST_U8],
-			src ? "%" : "",
-			src ? src : "",
-			src ? "," : "",
-			imm32);
-  return bpf_insn;
-}
-
-static char *
-build_bpf_atomic_insn (char *dst, char *src,
-		       enum bpf_token_type atomic_insn,
-		       enum bpf_token_type cast,
-		       const char *offset)
-{
-  char *bpf_insn;
-  static const char *cast_rw[] = {"w", "dw"};
-  static const char *mnem[] = {"xadd"};
-
-  bpf_insn = xasprintf ("%s%s [%%%s%s%s],%%%s", mnem[atomic_insn - BPF_ADD],
-			cast_rw[cast - BPF_CAST_U32], dst,
-			*offset != '+' ? "+" : "",
-			offset, src);
-  return bpf_insn;
-}
-
-static char *
-build_bpf_jmp_insn (char *dst, char *src,
-		    char *imm32, enum bpf_token_type op,
-		    const char *sym, const char *offset)
-{
-  char *bpf_insn;
-  static const char *mnem[] =
+  if (insn->has_imm32)
     {
-      "jeq", "jgt", "jge", "jlt",
-      "jle", "jset", "jne", "jsgt",
-      "jsge", "jslt", "jsle"
-    };
+      switch (insn->imm32.X_op)
+        {
+        case O_symbol:
+        case O_subtract:
+        case O_add:
+        case O_uminus:
+          {
+            reloc_howto_type *reloc_howto;
+            int size;
 
-  const char *in32 = (*dst == 'w' ? "32" : "");
+            reloc_howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_32);
+            if (!reloc_howto)
+              abort ();
 
-  *dst = 'r';
-  if (src)
-    *src = 'r';
+            size = bfd_get_reloc_size (reloc_howto);
 
-  bpf_insn = xasprintf ("%s%s %%%s,%s%s,%s",
-			mnem[op - BPF_JEQ], in32, dst,
-			src ? "%" : "",
-			src ? src : imm32,
-			offset ? offset : sym);
-  return bpf_insn;
-}
+            fix_new_exp (frag, where + 4,
+                         size, &insn->imm32, reloc_howto->pc_relative,
+                         BFD_RELOC_32);
+            break;
+          }
+        case O_constant:
+          /* Already handled in encode_insn.  */
+          break;
+        default:
+          abort ();
+        }
+    }
 
-static char *
-build_bpf_arithm_insn (char *dst, char *src,
-		       int load64, const char *imm32,
-		       enum bpf_token_type type)
-{
-  char *bpf_insn;
-  static const char *mnem[] =
+  if (insn->has_disp32)
     {
-      "add", "sub", "mul", "div",
-      "or", "and", "lsh", "rsh",
-      "mod", "xor", "mov", "arsh",
-      "neg",
-    };
-  const char *in32 = (*dst == 'w' ? "32" : "");
+      switch (insn->disp32.X_op)
+        {
+        case O_symbol:
+        case O_subtract:
+        case O_add:
+          {
+            reloc_howto_type *reloc_howto;
+            int size;
+            unsigned int bfd_reloc
+              = (insn->id == BPF_INSN_CALL
+                 ? BFD_RELOC_BPF_DISPCALL32
+                 : BFD_RELOC_BPF_DISP32);
 
-  *dst = 'r';
-  if (src)
-    *src = 'r';
+            reloc_howto = bfd_reloc_type_lookup (stdoutput, bfd_reloc);
+            if (!reloc_howto)
+              abort ();
+
+            size = bfd_get_reloc_size (reloc_howto);
+
+            fix_new_exp (frag, where,
+                         size, &insn->disp32, reloc_howto->pc_relative,
+                         bfd_reloc);
+            break;
+          }
+        case O_constant:
+          /* Already handled in encode_insn.  */
+          break;
+        default:
+          abort ();
+        }
+    }
+
+  if (insn->has_offset16)
+    {
+      switch (insn->offset16.X_op)
+        {
+        case O_symbol:
+        case O_subtract:
+        case O_add:
+          {
+            reloc_howto_type *reloc_howto;
+            int size;
+
+            /* XXX we really need a new pc-rel offset in bytes
+               relocation for this.  */
+            reloc_howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_BPF_DISP16);
+            if (!reloc_howto)
+              abort ();
+
+            size = bfd_get_reloc_size (reloc_howto);
+
+            fix_new_exp (frag, where,
+                         size, &insn->offset16, reloc_howto->pc_relative,
+                         BFD_RELOC_BPF_DISP16);
+            break;
+          }
+        case O_constant:
+          /* Already handled in encode_insn.  */
+          break;
+        default:
+          abort ();
+        }
+    }
+
+  if (insn->has_disp16)
+    {
+      switch (insn->disp16.X_op)
+        {
+        case O_symbol:
+        case O_subtract:
+        case O_add:
+          {
+            reloc_howto_type *reloc_howto;
+            int size;
+
+            reloc_howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_BPF_DISP16);
+            if (!reloc_howto)
+              abort ();
+
+            size = bfd_get_reloc_size (reloc_howto);
+
+            fix_new_exp (frag, where,
+                         size, &insn->disp16, reloc_howto->pc_relative,
+                         BFD_RELOC_BPF_DISP16);
+            break;
+          }
+        case O_constant:
+          /* Already handled in encode_insn.  */
+          break;
+        default:
+          abort ();
+        }
+    }
 
-  if (type == BPF_NEG)
-    bpf_insn = xasprintf ("%s%s %%%s", mnem[type - BPF_ADD], in32, dst);
-  else if (load64)
-    bpf_insn = xasprintf ("%s %%%s,%s", "lddw", dst, imm32);
-  else
-    bpf_insn = xasprintf ("%s%s %%%s,%s%s", mnem[type - BPF_ADD],
-			  in32, dst,
-			  src ? "%" : "",
-			  src ? src: imm32);
-  return bpf_insn;
 }
 
-static char *
-build_bpf_endianness (char *dst, enum bpf_token_type endianness)
-{
-  char *bpf_insn;
-  static const char *size[] = {"16", "32", "64"};
-  int be = 1;
-
-  if (endianness == BPF_LE16
-      || endianness == BPF_LE32
-      || endianness == BPF_LE64)
-    be = 0;
-  else
-    gas_assert (endianness == BPF_BE16 || endianness == BPF_BE32 || endianness == BPF_BE64);
-
-  bpf_insn = xasprintf ("%s %%%s,%s", be ? "endbe" : "endle",
-			dst, be ? size[endianness - BPF_BE16] : size[endianness - BPF_LE16]);
-  return bpf_insn;
-}
-
-static char *
-build_bpf_load_store_insn (char *dst, char *src,
-			   enum bpf_token_type cast,
-			   const char *offset, int isload)
-{
-  char *bpf_insn;
-  static const char *cast_rw[] = {"b", "h", "w", "dw"};
-
-  *dst = *src = 'r';
-  if (isload)
-    bpf_insn = xasprintf ("%s%s %%%s,[%%%s%s%s]", "ldx",
-			  cast_rw[cast - BPF_CAST_U8], dst, src,
-			  *offset != '+' ? "+" : "",
-			  offset);
-  else
-    bpf_insn = xasprintf ("%s%s [%%%s%s%s],%%%s", "stx",
-			  cast_rw[cast - BPF_CAST_U8], dst,
-			  *offset != '+' ? "+" : "",
-			  offset, src);
-  return bpf_insn;
-}
-
-static int
-look_for_reserved_word (const char *token, enum bpf_token_type *type)
+/* Add a new insn to the list of instructions.  */
+
+static void
+add_fixed_insn (struct bpf_insn *insn)
 {
+  char *this_frag = frag_more (insn->size);
+  char bytes[16];
   int i;
-  static struct
-  {
-    const char *name;
-    enum bpf_token_type type;
-  } reserved_words[] =
-    {
-      {
-	.name = "if",
-	.type = BPF_IF
-      },
-      {
-	.name = "goto",
-	.type = BPF_GOTO
-      },
-      {
-	.name = "le16",
-	.type = BPF_LE16
-      },
-      {
-	.name = "le32",
-	.type = BPF_LE32
-      },
-      {
-	.name = "le64",
-	.type = BPF_LE64
-      },
-      {
-	.name = "be16",
-	.type = BPF_BE16
-      },
-      {
-	.name = "be32",
-	.type = BPF_BE32
-      },
-      {
-	.name = "be64",
-	.type = BPF_BE64
-	},
-      {
-	.name = "lock",
-	.type = BPF_LOCK
-      },
-      {
-	.name = "callx",
-	.type = BPF_IND_CALL
-      },
-      {
-	.name = "skb",
-	.type = BPF_LD
-      },
-      {
-	.name = "ll",
-	.type = BPF_LL
-      },
-      {
-	.name = NULL,
-      }
-    };
 
-  for (i = 0; reserved_words[i].name; ++i)
-    if (*reserved_words[i].name == *token
-	&& !strcmp (reserved_words[i].name, token))
-      {
-	*type = reserved_words[i].type;
-	return 1;
-      }
+  /* First encode the known parts of the instruction, including
+     opcodes and constant immediates, and write them to the frag.  */
+  encode_insn (insn, bytes, 0 /* relax */);
+  for (i = 0; i < insn->size; ++i)
+    md_number_to_chars (this_frag + i, (valueT) bytes[i], 1);
 
-  return 0;
+  /* Now install the instruction fixups.  */
+  install_insn_fixups (insn, frag_now,
+                       this_frag - frag_now->fr_literal);
 }
 
-static int
-is_register (const char *token, int len)
+/* Add a new relaxable to the list of instructions.  */
+
+static void
+add_relaxed_insn (struct bpf_insn *insn, expressionS *exp)
 {
-  if (token[0] == 'r' || token[0] == 'w')
-    if ((len == 2 && isdigit (token[1]))
-	|| (len == 3 && token[1] == '1' && token[2] == '0'))
-      return 1;
+  char bytes[16];
+  int i;
+  char *this_frag;
+  unsigned worst_case = relaxed_branch_length (NULL, NULL, 0);
+  unsigned best_case = insn->size;
 
-  return 0;
+  /* We only support relaxing branches, for the moment.  */
+  relax_substateT subtype
+    = RELAX_BRANCH_ENCODE (insn->id == BPF_INSN_JAR,
+                           exp->X_op == O_constant,
+                           worst_case);
+
+  frag_grow (worst_case);
+  this_frag = frag_more (0);
+
+  /* First encode the known parts of the instruction, including
+     opcodes and constant immediates, and write them to the frag.  */
+  encode_insn (insn, bytes, 1 /* relax */);
+  for (i = 0; i < insn->size; ++i)
+    md_number_to_chars (this_frag + i, (valueT) bytes[i], 1);
+
+  /* Note that instruction fixups will be applied once the frag is
+     relaxed, in md_convert_frag.  */
+  frag_var (rs_machine_dependent,
+            worst_case, best_case,
+            subtype, exp->X_add_symbol, exp->X_add_number /* offset */,
+            NULL);
 }
 
-static enum bpf_token_type
-is_cast (const char *token)
-{
-  static const char *cast_rw[] = {"u8", "u16", "u32", "u64"};
-  unsigned int i;
+
+/* Parse an operand expression.  Returns the first character that is
+   not part of the expression, or NULL in case of parse error.
 
-  for (i = 0; i < ARRAY_SIZE (cast_rw); ++i)
-    if (!strcmp (token, cast_rw[i]))
-      return BPF_CAST_U8 + i;
+   See md_operand below to see how exp_parse_failed is used.  */
 
-  return BPF_UNKNOWN;
-}
-
-static enum bpf_token_type
-get_token (const char **insn, char *token, size_t *tlen)
-{
-#define GET()					\
-  (*str == '\0'					\
-   ? EOF					\
-   : *(unsigned char *)(str++))
-
-#define UNGET() (--str)
-
-#define START_EXPR()			       \
-  do					       \
-    {					       \
-      if (expr == NULL)			       \
-	expr = str - 1;			       \
-    } while (0)
-
-#define SCANNER_SKIP_WHITESPACE()		\
-  do						\
-    {						\
-      do					\
-	ch = GET ();				\
-      while (ch != EOF				\
-	     && ((ch) == ' ' || (ch) == '\t'));	\
-      if (ch != EOF)				\
-	UNGET ();				\
-    } while (0)
-
-  const char *str = *insn;
-  int ch, ch2 = 0;
-  enum bpf_token_type ttype = BPF_UNKNOWN;
-  size_t len = 0;
-  const char *expr = NULL;
-  const char *end_expr = NULL;
-  int state = 0;
-  int return_token = 0;
-
-  while (1)
-    {
-      ch = GET ();
-
-      if (ch == EOF || len > MAX_TOKEN_SZ)
-	break;
-
-      switch (pseudoc_lex[(unsigned char) ch])
-	{
-	case LEX_IS_WHITESPACE:
-	  SCANNER_SKIP_WHITESPACE ();
-	  return_token = 1;
-
-	  switch (state)
-	    {
-	    case 12: /* >' ' */
-	      ttype = BPF_JGT;
-	      break;
-
-	    case 17: /* ==' ' */
-	      ttype = BPF_JEQ;
-	      break;
-
-	    case 18: /* <' ' */
-	      ttype = BPF_JLT;
-	      break;
-
-	    case 20: /* &' ' */
-	      ttype = BPF_JSET;
-	      break;
-
-	    case 22:  /* s<' '*/
-	      ttype = BPF_JSLT;
-	      break;
-
-	    case 14: /* s> ' ' */
-	      ttype = BPF_JSGT;
-	      break;
-
-	    case 16: /* =' ' */
-	      ttype = BPF_MOV;
-	      break;
-
-	    default:
-	      return_token = 0;
-	    }
-	  break;
-
-	case LEX_IS_EXCLA:
-	  token[len++] = ch;
-	  state = 21;
-	  break;
-
-	case LEX_IS_ARITHM_OP:
-	  if (state == 16)
-	    {
-	      /* ='-' is handle as '=' */
-	      UNGET ();
-	      ttype = BPF_MOV;
-	      return_token = 1;
-	      break;
-	    }
-
-	  START_EXPR();
-	  token[len++] = ch;
-	  switch (ch)
-	    {
-#define BPF_ARITHM_OP(op, type)			\
-	      case (op):			\
-		state = 6;			\
-		ttype = (type);			\
-		break;
-
-	      BPF_ARITHM_OP('+', BPF_ADD);
-	      BPF_ARITHM_OP('-', BPF_SUB);
-	      BPF_ARITHM_OP('*', BPF_MUL);
-	      BPF_ARITHM_OP('/', BPF_DIV);
-	      BPF_ARITHM_OP('|', BPF_OR);
-	      BPF_ARITHM_OP('%', BPF_MOD);
-	      BPF_ARITHM_OP('^', BPF_XOR);
-
-	    case '&':
-	      state = 20; /* '&' */
-	      break;
-
-	    case '<':
-	      switch (state)
-		{
-		case 0:
-		  state = 18; /* '<' */
-		  break;
-
-		case 18:
-		  state = 19; /* <'<' */
-		  break;
-
-		case 8:
-		  state = 22; /* s'<' */
-		  break;
-		}
-	      break;
-
-	    case '>':
-	      switch (state)
-		{
-		case 0:
-		  state = 12; /* '>' */
-		  break;
-
-		case 12:
-		  state = 13; /* >'>' */
-		  break;
-
-		case 8:
-		  state = 14; /* s'>' */
-		  break;
-
-		case 14:
-		  state = 15; /* s>'>' */
-		  break;
-		}
-	      break;
-	    }
-	  break;
-
-	case LEX_IS_STAR:
-	  switch (state)
-	    {
-	    case 0:
-	      token[len++] = ch;
-	      START_EXPR ();
-	      state = 2; /* '*', It could be the fist cast char.  */
-	      break;
-
-	    case 16: /* ='*' Not valid token.  */
-	      ttype = BPF_MOV;
-	      return_token = 1;
-	      UNGET ();
-	      break;
-
-	    case 4: /* *(uXX'*' */
-	      token[len++] = ch;
-	      state = 5;
-	      break;
-	    }
-	  break;
-
-	case LEX_IS_OPEN_BR:
-	  START_EXPR ();
-	  token[len++] = ch;
-	  return_token = 1;
-
-	  switch (state)
-	    {
-	    case 2:
-	      state = 3; /* *'(' second char of a cast or expr.  */
-	      return_token = 0;
-	      break;
-
-	    case 6:
-	      if (valid_expr (expr, &end_expr))
-		{
-		  len = end_expr - expr;
-		  memcpy (token, expr, len);
-		  ttype = BPF_EXPR;
-		  str = end_expr;
-		}
-	      else
-		{
-		  len = 0;
-		  while (*invalid_expression)
-		    token[len++] = *invalid_expression++;
-
-		  token[len] = 0;
-		  ttype = BPF_UNKNOWN;
-		}
-	      break;
-
-	    default:
-	      ttype = BPF_CHR_OPEN_BR;
-	      SCANNER_SKIP_WHITESPACE ();
-	      ch2 = GET ();
-
-	      if ((isdigit (ch2) || ch2 == '(')
-		  && valid_expr (expr, &end_expr))
-		{
-		  len = end_expr - expr;
-		  memcpy (token, expr, len);
-		  ttype = BPF_EXPR;
-		  str = end_expr;
-		}
-	      else
-		UNGET ();
-	    }
-	  break;
-
-	case LEX_IS_CLSE_BR:
-	  token[len++] = ch;
-
-	  if (state == 0)
-	    {
-	      ttype = BPF_CHR_CLSE_BR;
-	      return_token = 1;
-	    }
-	  else if (state == 5) /* *(uXX*')'  */
-	    return_token = 1;
-	  break;
-
-	case LEX_IS_EQUAL:
-	  token[len++] = ch;
-	  return_token = 1;
-
-	  switch (state)
-	    {
-	    case 0:
-	      state = 16; /* '=' */
-	      return_token = 0;
-	      break;
-
-	    case 16:
-	      state = 17; /* ='=' */
-	      return_token = 0;
-	      break;
-
-	    case 2: /* *'=' */
-	      ttype = BPF_MUL;
-	      break;
-
-	    case 10: /* s>>'=' */
-	      ttype = BPF_ARSH;
-	      break;
-
-	    case 12: /* >'=' */
-	      ttype = BPF_JGE;
-	      break;
-
-	    case 13: /* >>'=' */
-	      ttype = BPF_RSH;
-	      break;
-
-	    case 14: /* s>'=' */
-	      ttype = BPF_JSGE;
-	      break;
-
-	    case 15: /* s>>'=' */
-	      ttype = BPF_ARSH;
-	      break;
-
-	    case 18: /* <'=' */
-	      ttype = BPF_JLE;
-	      break;
-
-	    case 19: /* <<'=' */
-	      ttype = BPF_LSH;
-	      break;
-
-	    case 20: /* &'=' */
-	      ttype = BPF_AND;
-	      break;
-
-	    case 21: /* !'=' */
-	      ttype = BPF_JNE;
-	      break;
-
-	    case 22: /* s<'=' */
-	      ttype = BPF_JSLE;
-	      break;
-	    }
-	  break;
-
-	case LEX_IS_SYMBOL_COMPONENT:
-	  return_token = 1;
-
-	  switch (state)
-	    {
-	    case 17: /* =='sym' */
-	      ttype = BPF_JEQ;
-	      break;
-
-	    case 12: /* >'sym' */
-	      ttype = BPF_JGT;
-	      break;
-
-	    case 18: /* <'sym' */
-	      ttype = BPF_JLT;
-	      break;
-
-	    case 20: /* &'sym' */
-	      ttype = BPF_JSET;
-	      break;
-
-	    case 14: /*s>'sym' */
-	      ttype = BPF_JSGT;
-	      break;
-
-	    case 22:  /* s<'sym' */
-	      ttype = BPF_JSLT;
-	      break;
-
-	    case 16: /* ='sym' */
-	      ttype = BPF_MOV;
-	      break;
-
-	    default:
-	      return_token = 0;
-	    }
-
-	  if (return_token)
-	    {
-	      UNGET ();
-	      break;
-	    }
-
-	  START_EXPR ();
-	  token[len++] = ch;
-
-	  while ((ch2 = GET ()) != EOF)
-	    {
-	      int type;
-
-	      type = pseudoc_lex[(unsigned char) ch2];
-	      if (type != LEX_IS_SYMBOL_COMPONENT)
-		break;
-	      token[len++] = ch2;
-	    }
-
-	  if (ch2 != EOF)
-	    UNGET ();
-
-	  if (state == 0)
-	    {
-	      if (len == 1 && ch == 's')
-		state = 8; /* signed instructions: 's' */
-	      else
-		{
-		  ttype = BPF_SYMBOL;
-		  if (is_register (token, len))
-		    ttype = BPF_REG;
-		  else if (look_for_reserved_word (token, &ttype))
-		    ;
-		  else if ((pseudoc_lex[(unsigned char) *token] == LEX_IS_ARITHM_OP
-			    || *token == '(' || isdigit(*token))
-			   && valid_expr (expr, &end_expr))
-		    {
-		      len = end_expr - expr;
-		      token[len] = '\0';
-		      ttype = BPF_EXPR;
-		      str = end_expr;
-		    }
-
-		  return_token = 1;
-		}
-	    }
-	  else if (state == 3) /* *('sym' */
-	    {
-	      if ((ttype = is_cast (&token[2])) != BPF_UNKNOWN)
-		state = 4; /* *('uXX' */
-	      else
-		{
-		  ttype = BPF_EXPR;
-		  return_token = 1;
-		}
-	    }
-	  else if (state == 6)
-	    {
-	      if (ttype == BPF_SUB) /* neg */
-		{
-		  if (is_register (&token[1], len - 1))
-		    ttype =  BPF_NEG;
-		  else if (valid_expr(expr, &end_expr))
-		    {
-		      len = end_expr - expr;
-		      memcpy(token, expr, len);
-		      ttype = BPF_EXPR;
-		      str = end_expr;
-		    }
-		  else
-		    {
-		      len = 0;
-		      while (*invalid_expression)
-			token[len++] = *invalid_expression++;
-		      token[len] = 0;
-		      ttype = BPF_UNKNOWN;
-		    }
-		}
-	      else if (valid_expr (expr, &end_expr))
-		{
-		  len = end_expr - expr;
-		  memcpy(token, expr, len);
-		  ttype = BPF_EXPR;
-		  str = end_expr;
-		}
-	      else
-		ttype = BPF_UNKNOWN;
-
-	      return_token = 1;
-	    }
-	  break;
-	}
-
-      if (return_token)
-	{
-	  *tlen = len;
-	  *insn = str;
-	  break;
-	}
-    }
-
-  return ttype;
-
-#undef GET
-#undef UNGET
-#undef START_EXPR
-#undef SCANNER_SKIP_WHITESPACE
-#undef BPF_ARITHM_OP
-}
-
-/*
-  The parser represent a FSM for the grammar described above. So for example
-  the following rule:
-
-     ` bpf_alu_insn : BPF_REG bpf_alu_operator register_or_imm32'
-
-  Is parser as follows:
-
-      1. It starts in state 0.
-
-      2. Consumes next token, e.g: `BPF_REG' and set `state' variable to a
-      particular state to helps to identify, in this case, that a register
-      token has been read, a comment surrounded by a single quote in the
-      pseudo-c token is added along with the new `state' value to indicate
-      what the scanner has read, e.g.:
-
-          state = 6; // dst_reg = str_cast ( 'src_reg'
-
-      So, in `state 6' the scanner has consumed: a destination register
-      (BPF_REG), an equal character (BPF_MOV), a cast token (BPF_CAST), an
-      open parenthesis (BPF_CHR_OPEN_BR) and the source register (BPF_REG).
-
-      3. If the accumulated tokens represent a complete BPF pseudo-c syntax
-      instruction then, a validation of the terms is made, for example: if
-      the registers have the same sizes (32/64 bits), if a specific
-      destination register must be used, etc., after that, a builder:
-      build_bfp_{non_generic_load,atomic_insn,jmp_insn,arithm_insn,endianness,load_store_insn}
-      is invoked, internally, it translates the BPF pseudo-c instruction to
-      a BPF GAS instruction using the previous terms recollected by the
-      scanner.
-
-      4. If a successful build of BPF GAS instruction was done, a final
-      state is set to `ST_EOI' (End Of Instruction) meaning that is not
-      expecting for more tokens in such instruction.  Otherwise if the
-      conditions to calling builder are not satisfied an error is emitted
-      and `parse_err' is set.
-*/
+static int exp_parse_failed = 0;
 
 static char *
-bpf_pseudoc_to_normal_syntax (const char *str, char **errmsg)
+parse_expression (char *s, expressionS *exp)
 {
-#define syntax_err(format, ...)						\
-  do									\
-    {									\
-      if (! parse_err)							\
-	{								\
-	  parse_err = 1;						\
-	  errbuf = xasprintf (format, ##__VA_ARGS__);			\
-	}								\
-    } while (0)
+  char *saved_input_line_pointer = input_line_pointer;
+  char *saved_s = s;
 
-  enum bpf_token_type ttype;
-  enum bpf_token_type bpf_endianness = BPF_UNKNOWN,
-		      bpf_atomic_insn;
-  enum bpf_token_type bpf_jmp_op = BPF_JEQ; /* Arbitrary.  */
-  enum bpf_token_type bpf_cast = BPF_CAST_U8; /* Arbitrary.  */
-  enum bpf_token_type bpf_arithm_op = BPF_ADD; /* Arbitrary.  */
-  char *bpf_insn = NULL;
-  char *errbuf = NULL;
-  char src_reg[3] = {0};
-  char dst_reg[3] = {0};
-  char str_imm32[40] = {0};
-  char str_offset[40] = {0};
-  char str_symbol[MAX_TOKEN_SZ] = {0};
-  char token[MAX_TOKEN_SZ] = {0};
-  int state = 0;
-  int parse_err = 0;
-  size_t tlen;
+  exp_parse_failed = 0;
+  input_line_pointer = s;
+  expression (exp);
+  s = input_line_pointer;
+  input_line_pointer = saved_input_line_pointer;
 
-  while (*str)
+  switch (exp->X_op == O_absent || exp_parse_failed)
+    return NULL;
+
+  /* The expression parser may consume trailing whitespaces.  We have
+     to undo that since the instruction templates may be expecting
+     these whitespaces.  */
+  {
+    char *p;
+    for (p = s - 1; p >= saved_s && *p == ' '; --p)
+      --s;
+  }
+
+  return s;
+}
+
+/* Parse a BPF register name and return the corresponding register
+   number.  Return NULL in case of parse error, or a pointer to the
+   first character in S that is not part of the register name.  */
+
+static char *
+parse_bpf_register (char *s, char rw, uint8_t *regno)
+{
+  if (asm_dialect == DIALECT_NORMAL)
     {
-      ttype = get_token (&str, token, &tlen);
-      if (ttype == BPF_UNKNOWN || state == ST_EOI)
+      rw = 'r';
+      if (*s != '%')
+	return NULL;
+      s += 1;
+
+      if (*s == 'f' && *(s + 1) == 'p')
 	{
-	  syntax_err ("unexpected token: '%s'", token);
-	  break;
+	  *regno = 10;
+	  s += 2;
+	  return s;
 	}
-
-      switch (ttype)
-	{
-	case BPF_UNKNOWN:
-	case BPF_LL:
-	  break;
-
-	case BPF_REG:
-	  switch (state)
-	    {
-	    case 0:
-	      memcpy (dst_reg, token, tlen);
-	      state = 1; /* 'dst_reg' */
-	      break;
-
-	    case 3:
-	      /* dst_reg bpf_op 'src_reg' */
-	      memcpy (src_reg, token, tlen);
-	      if (*dst_reg == *src_reg)
-		bpf_insn = build_bpf_arithm_insn (dst_reg, src_reg, 0,
-						  NULL, bpf_arithm_op);
-	      else
-		{
-		  syntax_err ("different register sizes: '%s', '%s'",
-			      dst_reg, src_reg);
-		  break;
-		}
-	      state = ST_EOI;
-	      break;
-
-	    case 5:
-	      memcpy (src_reg, token, tlen);
-	      state = 6; /* dst_reg = str_cast ( 'src_reg' */
-	      break;
-
-	    case 9:
-	      memcpy (dst_reg, token, tlen);
-	      state = 10; /* str_cast ( 'dst_reg' */
-	      break;
-
-	    case 11:
-	      /* str_cast ( dst_reg offset ) = 'src_reg' */
-	      memcpy (src_reg, token, tlen);
-	      bpf_insn = build_bpf_load_store_insn (dst_reg, src_reg,
-						    bpf_cast, str_offset, 0);
-	      state = ST_EOI;
-	      break;
-
-	    case 14:
-	      memcpy (dst_reg, token, tlen);
-	      state = 15; /* if 'dst_reg' */
-	      break;
-
-	    case 16:
-	      memcpy (src_reg, token, tlen);
-	      state = 17; /* if dst_reg jmp_op 'src_reg' */
-	      break;
-
-	    case 24:
-	      /* dst_reg = endianness src_reg */
-	      memcpy (src_reg, token, tlen);
-	      if (*dst_reg == 'r' && !strcmp (dst_reg, src_reg))
-		bpf_insn = build_bpf_endianness (dst_reg, bpf_endianness);
-	      else
-		syntax_err ("invalid operand for instruction: '%s'", token);
-
-	      state = ST_EOI;
-	      break;
-
-	    case 28:
-	      memcpy (dst_reg, token, tlen);
-	      state = 29; /* lock str_cast ( 'dst_reg'  */
-	      break;
-
-	    case 32:
-	      {
-		/* lock str_cast ( dst_reg offset ) atomic_insn 'src_reg' */
-		int with_offset = *str_offset != '\0';
-
-		memcpy (src_reg, token, tlen);
-		if ((bpf_cast != BPF_CAST_U32
-		     && bpf_cast != BPF_CAST_U64)
-		    || *dst_reg != 'r'
-		    || *src_reg != 'r')
-		  syntax_err ("invalid wide atomic instruction");
-		else
-		  bpf_insn = build_bpf_atomic_insn (dst_reg, src_reg, bpf_atomic_insn,
-						    bpf_cast, with_offset ? str_offset : str_symbol);
-	      }
-
-	      state = ST_EOI;
-	      break;
-
-	    case 33:
-	      /* callx 'dst_reg' */
-	      bpf_insn = xasprintf ("%s %%%s", "call", token);
-	      state = ST_EOI;
-	      break;
-
-	    case 35:
-	      memcpy (src_reg, token, tlen);
-	      state = 36; /* dst_reg = str_cast skb [ 'src_reg' */
-	      break;
-	    }
-	  break;
-
-	case BPF_MOV:
-	case BPF_ADD:
-	case BPF_SUB:
-	case BPF_MUL:
-	case BPF_DIV:
-	case BPF_OR:
-	case BPF_AND:
-	case BPF_LSH:
-	case BPF_RSH:
-	case BPF_MOD:
-	case BPF_XOR:
-	case BPF_ARSH:
-	case BPF_NEG:
-	  switch (state)
-	    {
-	    case 1:
-	      state = 3;  /* dst_reg 'arith_op' */
-	      bpf_arithm_op = ttype;
-	      break;
-
-	    case 3:
-	      if (ttype == BPF_NEG)
-		{
-		  /* reg = -reg */
-		  bpf_arithm_op = ttype;
-		  memcpy (src_reg, token + 1, tlen - 1);
-		  if (strcmp (dst_reg, src_reg))
-		    {
-		      syntax_err ("found: '%s', expected: -%s", token, dst_reg);
-		      break;
-		    }
-
-		  bpf_insn = build_bpf_arithm_insn (dst_reg, src_reg, 0,
-						    NULL, bpf_arithm_op);
-		  state = ST_EOI;
-		}
-	      break;
-
-	    case 23:
-	      memcpy (src_reg, token, tlen);
-	      state = 11; /* str_cast ( dst_reg offset ) '=' */
-	      break;
-
-	    case 12:
-	      if (ttype == BPF_MOV)
-		state = 13; /* str_cast ( dst_reg offset ) '=' */
-	      break;
-
-	    case 31:
-	      bpf_atomic_insn = ttype;
-	      state = 32; /* lock str_cast ( dst_reg offset ) 'atomic_insn' */
-	      break;
-
-	    default:
-	      syntax_err ("unexpected '%s'", token);
-	      state = ST_EOI;
-	    }
-	  break;
-
-	case BPF_CAST_U8:
-	case BPF_CAST_U16:
-	case BPF_CAST_U32:
-	case BPF_CAST_U64:
-	  bpf_cast = ttype;
-	  switch (state)
-	    {
-	    case 3:
-	      state = 4; /* dst_reg = 'str_cast' */
-	      break;
-
-	    case 0:
-	      state = 8;  /* 'str_cast' */
-	      break;
-
-	    case 26:
-	      state = 27; /* lock 'str_cast' */
-	      break;
-	    }
-	  break;
-
-	case BPF_CHR_OPEN_BR:
-	  switch (state)
-	    {
-	    case 4:
-	      state = 5; /* dst_reg = str_cast '(' */
-	      break;
-
-	    case 8:
-	      state = 9; /* str_cast '(' */
-	      break;
-
-	    case 27:
-	      state = 28; /* lock str_cast '(' */
-	      break;
-
-	    case 34:
-	      state = 35; /* dst_reg = str_cast skb '[' */
-	      break;
-	    }
-	  break;
-
-	case BPF_CHR_CLSE_BR:
-	  switch (state)
-	    {
-	    case 7:
-	      /* dst_reg = str_cast ( imm32 ')' */
-	      bpf_insn = build_bpf_load_store_insn (dst_reg, src_reg,
-						    bpf_cast, str_imm32, 1);
-	      state = ST_EOI;
-	      break;
-
-	    case 11:
-	      state = 12; /* str_cast ( dst_reg imm32 ')' */
-	      break;
-
-	    case 21:
-	      /* dst_reg = str_cast ( src_reg  offset ')' */
-	      bpf_insn = build_bpf_load_store_insn (dst_reg, src_reg,
-						    bpf_cast, str_offset, 1);
-	      state = ST_EOI;
-	      break;
-
-	    case 22:
-	      state = 23; /* str_cast ( dst_reg offset ')' */
-	      break;
-
-	    case 30:
-	      state = 31; /* lock str_cast ( dst_reg offset ')' */
-	      break;
-
-	    case 37:
-	      /* dst_reg = str_cast skb [ src_reg imm32 ']' */
-	      if (*dst_reg != 'w' && !strcmp ("r0", dst_reg))
-		bpf_insn = build_bpf_non_generic_load (*src_reg != '\0' ? src_reg : NULL,
-						       bpf_cast, str_imm32);
-	      else
-		syntax_err ("invalid register operand: '%s'", dst_reg);
-
-	      state = ST_EOI;
-	      break;
-	    }
-	  break;
-
-	case BPF_EXPR:
-	  switch (state)
-	    {
-	    case 3:
-	      {
-		/* dst_reg bpf_arithm_op 'imm32' */
-		int load64 = 0;
-
-		memcpy (str_imm32, token, tlen);
-		memset (token, 0, tlen);
-
-		if ((ttype = get_token (&str, token, &tlen)) == BPF_LL
-		    && bpf_arithm_op == BPF_MOV)
-		  load64 = 1;
-		else if (ttype != BPF_UNKNOWN)
-		  syntax_err ("unexpected token: '%s'", token);
-
-		if (load64 && *dst_reg == 'w')
-		  syntax_err ("unexpected register size: '%s'", dst_reg);
-
-		if (! parse_err)
-		  bpf_insn = build_bpf_arithm_insn (dst_reg, NULL, load64,
-						    str_imm32, bpf_arithm_op);
-		state = ST_EOI;
-	      }
-	      break;
-
-	    case 18:
-	      {
-		/* if dst_reg jmp_op src_reg goto 'offset' */
-		int with_src = *src_reg != '\0';
-
-		memcpy (str_offset, token, tlen);
-		if (with_src && *dst_reg != *src_reg)
-		  syntax_err ("different register size: '%s', '%s'",
-			      dst_reg, src_reg);
-		else
-		  bpf_insn = build_bpf_jmp_insn (dst_reg, with_src ? src_reg : NULL,
-						 with_src ? NULL: str_imm32,
-						 bpf_jmp_op, NULL, str_offset);
-		state = ST_EOI;
-	      }
-	      break;
-
-	    case 19:
-	      /* goto 'offset' */
-	      memcpy (str_offset, token, tlen);
-	      bpf_insn = xasprintf ("%s %s", "ja", str_offset);
-	      state = ST_EOI;
-	      break;
-
-	    case 6:
-	      memcpy (str_offset, token, tlen);
-	      state = 21; /* dst_reg = str_cast ( src_reg  'offset' */
-	      break;
-
-	    case 10:
-	      memcpy (str_offset, token, tlen);
-	      state = 22; /* str_cast ( dst_reg 'offset' */
-	      break;
-
-	    case 16:
-	      memcpy (str_imm32, token, tlen);
-	      state = 25; /* if dst_reg jmp_op 'imm32' */
-	      break;
-
-	    case 29:
-	      memcpy (str_offset, token, tlen);
-	      state = 30; /* lock str_cast ( dst_reg 'offset' */
-	      break;
-
-	    case 34:
-	      /* dst_reg = str_cast skb 'imm32' */
-	      if (*dst_reg != 'w' && !strcmp ("r0", dst_reg))
-		{
-		  memcpy (str_imm32, token, tlen);
-		  bpf_insn = build_bpf_non_generic_load (*src_reg != '\0' ? src_reg : NULL,
-							 bpf_cast, str_imm32);
-		}
-	      else
-		syntax_err ("invalid register operand: '%s'", dst_reg);
-
-	      state = ST_EOI;
-	      break;
-
-	    case 36:
-	      memcpy (str_imm32, token, tlen);
-	      state = 37; /* dst_reg = str_cast skb [ src_reg 'imm32' */
-	      break;
-	    }
-	  break;
-
-	case BPF_IF:
-	  if (state == 0)
-	    state = 14;
-	  break;
-
-	case BPF_JSGT:
-	case BPF_JSLT:
-	case BPF_JSLE:
-	case BPF_JSGE:
-	case BPF_JGT:
-	case BPF_JGE:
-	case BPF_JLE:
-	case BPF_JSET:
-	case BPF_JNE:
-	case BPF_JLT:
-	case BPF_JEQ:
-	  if (state == 15)
-	    {
-	      bpf_jmp_op = ttype;
-	      state = 16; /* if dst_reg 'jmp_op' */
-	    }
-	  break;
-
-	case BPF_GOTO:
-	  switch (state)
-	    {
-	    case 17:
-	    case 25:
-	      state = 18; /* if dst_reg jmp_op src_reg|imm32 'goto' */
-	      break;
-
-	    case 0:
-	      state = 19;
-	      break;
-	    }
-	  break;
-
-	case BPF_SYMBOL:
-	  switch (state)
-	    {
-	    case 18:
-	      {
-		/* if dst_reg jmp_op src_reg goto 'sym' */
-		int with_src = *src_reg != '\0';
-
-		memcpy (str_symbol, token, tlen);
-		if (with_src && *dst_reg != *src_reg)
-		  syntax_err ("different register size: '%s', '%s'",
-			      dst_reg, src_reg);
-		else
-		  bpf_insn = build_bpf_jmp_insn (dst_reg, with_src ? src_reg : NULL,
-						 with_src ? NULL: str_imm32,
-						 bpf_jmp_op, str_symbol, NULL);
-		state = ST_EOI;
-	      }
-	      break;
-
-	    case 19:
-	      /* goto 'sym' */
-	      memcpy (str_symbol, token, tlen);
-	      bpf_insn = xasprintf ("%s %s", "ja", str_symbol);
-	      state = ST_EOI;
-	      break;
-
-	    case 0:
-	      state = ST_EOI;
-	      break;
-
-	    case 3:
-	      {
-		/* dst_reg arithm_op 'sym' */
-		int load64 = 0;
-		
-		memcpy (str_symbol, token, tlen);
-		memset (token, 0, tlen);
-
-		if ((ttype = get_token (&str, token, &tlen)) == BPF_LL
-		    && bpf_arithm_op == BPF_MOV)
-		  load64 = 1;
-		else if (ttype != BPF_UNKNOWN)
-		  syntax_err ("unexpected token: '%s'", token);
-
-		if (load64 && *dst_reg == 'w')
-		  syntax_err ("unexpected register size: '%s'", dst_reg);
-
-		if (! parse_err)
-		  bpf_insn = build_bpf_arithm_insn (dst_reg, NULL, load64,
-						    str_symbol, bpf_arithm_op);
-		state = ST_EOI;
-	      }
-	      break;
-	    }
-	  break;
-
-	case BPF_LE16:
-	case BPF_LE32:
-	case BPF_LE64:
-	case BPF_BE16:
-	case BPF_BE32:
-	case BPF_BE64:
-	  bpf_endianness = ttype;
-	  state = 24; /* dst_reg = 'endianness' */
-	  break;
-
-	case BPF_LOCK:
-	  state = 26;
-	  break;
-
-	case BPF_IND_CALL:
-	  state = 33;
-	  break;
-
-	case BPF_LD:
-	  state = 34; /* dst_reg = str_cast 'skb' */
-	  break;
-	}
-
-      memset (token, 0, tlen);
     }
 
-  if (state != ST_EOI)
-    syntax_err ("incomplete instruction");
+  if (*s != rw)
+    return NULL;
+  s += 1;
 
-  *errmsg = errbuf;
-  return bpf_insn;
+  if (*s == '1')
+    {
+      if (*(s + 1) == '0')
+        {
+          *regno = 10;
+          s += 2;
+        }
+      else
+        {
+          *regno = 1;
+          s += 1;
+        }
+    }
+  else if (*s >= '0' && *s <= '9')
+    {
+      *regno = *s - '0';
+      s += 1;
+    }
 
-#undef syntax_err
+  return s;
 }
 
+/* Collect a parse error message.  */
+
+static int partial_match_length = 0;
+static char *errmsg = NULL;
+
+static void
+parse_error (int length, const char *fmt, ...)
+{
+  if (length > partial_match_length)
+    {
+      va_list args;
+
+      free (errmsg);
+      va_start (args, fmt);
+      errmsg = xvasprintf (fmt, args);
+      va_end (args);
+      partial_match_length = length;
+    }
+}
+
+/* Assemble a machine instruction in STR and emit the frags/bytes it
+   assembles to.  */
+
 void
-md_assemble (char *str)
+md_assemble (char *str ATTRIBUTE_UNUSED)
 {
-  const CGEN_INSN *insn;
-  char *errmsg;
-  char *a_errmsg;
-  CGEN_FIELDS fields;
-  char *normal;
+  /* There are two different syntaxes that can be used to write BPF
+     instructions.  One is very conventional and like any other
+     assembly language where each instruction is conformed by an
+     instruction mnemonic followed by its operands.  This is what we
+     call the "normal" syntax.  The other syntax tries to look like C
+     statements. We have to support both syntaxes in this assembler.
 
-#if CGEN_INT_INSN_P
-  CGEN_INSN_INT buffer[CGEN_MAX_INSN_SIZE / sizeof (CGEN_INT_INSN_P)];
-#else
-  unsigned char buffer[CGEN_MAX_INSN_SIZE];
-#endif
+     One of the many nuisances introduced by this eccentricity is that
+     in the pseudo-c syntax it is not possible to hash the opcodes
+     table by instruction mnemonic, because there is none.  So we have
+     no other choice than to try to parse all instruction opcodes
+     until one matches.  This is slow.
 
-  gas_cgen_init_parse ();
-  insn = bpf_cgen_assemble_insn (gas_cgen_cpu_desc, str, &fields,
-                                  buffer, &errmsg);
-  if (insn == NULL)
+     Another problem is that emitting detailed diagnostics becomes
+     tricky, since the lack of mnemonic means it is not clear what
+     instruction was intended by the user, and we cannot emit
+     diagnostics for every attempted template.  So if an instruction
+     is not parsed, we report the diagnostic corresponding to the
+     partially parsed instruction that was matched further.  */
+
+  unsigned int idx = 0;
+  struct bpf_insn insn;
+  const struct bpf_opcode *opcode;
+
+  /* Initialize the global diagnostic variables.  See the parse_error
+     function above.  */
+  partial_match_length = 0;
+  errmsg = NULL;
+
+#define PARSE_ERROR(...) parse_error (s - str, __VA_ARGS__)
+
+  while ((opcode = bpf_get_opcode (idx++)) != NULL)
     {
-      normal = bpf_pseudoc_to_normal_syntax (str, &a_errmsg);
-      if (normal)
-	{
-	  insn = bpf_cgen_assemble_insn (gas_cgen_cpu_desc, normal, &fields,
-					 buffer, &a_errmsg);
-	  xfree (normal);
-	}
+      const char *p;
+      char *s;
+      const char *template
+        = (asm_dialect == DIALECT_PSEUDOC ? opcode->pseudoc : opcode->normal);
 
-      if (insn == NULL)
-	{
-	  as_bad ("%s", errmsg);
-	  if (a_errmsg)
-	    {
-	      as_bad ("%s", a_errmsg);
-	      xfree (a_errmsg);
-	    }
-	  return;
-	}
+      /* Do not try to match opcodes with a higher version than the
+         selected ISA spec.  */
+      if (opcode->version > isa_spec)
+        continue;
+
+      memset (&insn, 0, sizeof (struct bpf_insn));
+      insn.size = 8;
+      for (s = str, p = template; *p != '\0';)
+        {
+          if (*p == ' ')
+            {
+              /* Expect zero or more spaces.  */
+              while (*s != '\0' && (*s == ' ' || *s == '\t'))
+                s += 1;
+              p += 1;
+            }
+          else if (*p == '%')
+            {
+              if (*(p + 1) == '%')
+                {
+                  if (*s != '%')
+                    {
+                      PARSE_ERROR ("expected '%%'");
+                      break;
+                    }
+                  p += 2;
+                  s += 1;
+                }
+              else if (*(p + 1) == 'w')
+                {
+                  /* Expect zero or more spaces.  */
+                  while (*s != '\0' && (*s == ' ' || *s == '\t'))
+                    s += 1;
+                  p += 2;
+                }
+              else if (*(p + 1) == 'W')
+                {
+                  /* Expect one or more spaces.  */
+                  if (*s != ' ' && *s != '\t')
+                    {
+                      PARSE_ERROR ("expected white space, got '%s'",
+                                   s);
+                      break;
+                    }
+                  while (*s != '\0' && (*s == ' ' || *s == '\t'))
+                    s += 1;
+                  p += 2;
+                }
+              else if (strncmp (p, "%dr", 3) == 0)
+                {
+                  uint8_t regno;
+                  char *news = parse_bpf_register (s, 'r', &regno);
+
+                  if (news == NULL || (insn.has_dst && regno != insn.dst))
+                    {
+                      if (news != NULL)
+                        PARSE_ERROR ("expected register r%d, got r%d",
+                                     insn.dst, regno);
+                      else
+                        PARSE_ERROR ("expected register name, got '%s'", s);
+                      break;
+                    }
+                  s = news;
+                  insn.dst = regno;
+                  insn.has_dst = 1;
+                  p += 3;
+                }
+              else if (strncmp (p, "%sr", 3) == 0)
+                {
+                  uint8_t regno;
+                  char *news = parse_bpf_register (s, 'r', &regno);
+
+                  if (news == NULL || (insn.has_src && regno != insn.src))
+                    {
+                      if (news != NULL)
+                        PARSE_ERROR ("expected register r%d, got r%d",
+                                     insn.dst, regno);
+                      else
+                        PARSE_ERROR ("expected register name, got '%s'", s);
+                      break;
+                    }
+                  s = news;
+                  insn.src = regno;
+                  insn.has_src = 1;
+                  p += 3;
+                }
+              else if (strncmp (p, "%dw", 3) == 0)
+                {
+                  uint8_t regno;
+                  char *news = parse_bpf_register (s, 'w', &regno);
+
+                  if (news == NULL || (insn.has_dst && regno != insn.dst))
+                    {
+                      if (news != NULL)
+                        PARSE_ERROR ("expected register r%d, got r%d",
+                                     insn.dst, regno);
+                      else
+                        PARSE_ERROR ("expected register name, got '%s'", s);
+                      break;
+                    }
+                  s = news;
+                  insn.dst = regno;
+                  insn.has_dst = 1;
+                  p += 3;
+                }
+              else if (strncmp (p, "%sw", 3) == 0)
+                {
+                  uint8_t regno;
+                  char *news = parse_bpf_register (s, 'w', &regno);
+
+                  if (news == NULL || (insn.has_src && regno != insn.src))
+                    {
+                      if (news != NULL)
+                        PARSE_ERROR ("expected register r%d, got r%d",
+                                     insn.dst, regno);
+                      else
+                        PARSE_ERROR ("expected register name, got '%s'", s);
+                      break;
+                    }
+                  s = news;
+                  insn.src = regno;
+                  insn.has_src = 1;
+                  p += 3;
+                }
+              else if (strncmp (p, "%i32", 4) == 0
+                       || strncmp (p, "%I32", 4) == 0)
+                {
+                  if (p[1] == 'I')
+                    {
+                      while (*s == ' ' || *s == '\t')
+                        s += 1;
+                      if (*s != '+' && *s != '-')
+                        {
+                          PARSE_ERROR ("expected `+' or `-', got `%c'", *s);
+                          break;
+                        }
+                    }
+
+                  s = parse_expression (s, &insn.imm32);
+                  if (s == NULL)
+                    {
+                      PARSE_ERROR ("expected signed 32-bit immediate");
+                      break;
+                    }
+                  insn.has_imm32 = 1;
+                  p += 4;
+                }
+              else if (strncmp (p, "%o16", 4) == 0)
+                {
+                  while (*s == ' ' || *s == '\t')
+                    s += 1;
+                  if (*s != '+' && *s != '-')
+                    {
+                      PARSE_ERROR ("expected `+' or `-', got `%c'", *s);
+                      break;
+                    }
+
+                  s = parse_expression (s, &insn.offset16);
+                  if (s == NULL)
+                    {
+                      PARSE_ERROR ("expected signed 16-bit offset");
+                      break;
+                    }
+                  insn.has_offset16 = 1;
+                  p += 4;
+                }
+              else if (strncmp (p, "%d16", 4) == 0)
+                {
+                  s = parse_expression (s, &insn.disp16);
+                  if (s == NULL)
+                    {
+                      PARSE_ERROR ("expected signed 16-bit displacement");
+                      break;
+                    }
+                  insn.has_disp16 = 1;
+                  insn.is_relaxable = 1;
+                  p += 4;
+                }
+              else if (strncmp (p, "%d32", 4) == 0)
+                {
+                  s = parse_expression (s, &insn.disp32);
+                  if (s == NULL)
+                    {
+                      PARSE_ERROR ("expected signed 32-bit displacement");
+                      break;
+                    }
+                  insn.has_disp32 = 1;
+                  p += 4;
+                }
+              else if (strncmp (p, "%i64", 4) == 0)
+                {
+                  s = parse_expression (s, &insn.imm64);
+                  if (s == NULL)
+                    {
+                      PARSE_ERROR ("expected signed 64-bit immediate");
+                      break;
+                    }
+                  insn.has_imm64 = 1;
+                  insn.size = 16;
+                  p += 4;
+                }
+              else
+                as_fatal (_("invalid %%-tag in BPF opcode '%s'\n"), template);
+            }
+          else
+            {
+              /* Match a literal character.  */
+              if (*s != *p)
+                {
+                  if (*s == '\0')
+                    PARSE_ERROR ("expected '%c'", *p);
+                  else if (*s == '%')
+                    {
+                      /* This is to workaround a bug in as_bad. */
+                      char tmp[3];
+
+                      tmp[0] = '%';
+                      tmp[1] = '%';
+                      tmp[2] = '\0';
+
+                      PARSE_ERROR ("expected '%c', got '%s'", *p, tmp);
+                    }
+                  else
+                    PARSE_ERROR ("expected '%c', got '%c'", *p, *s);
+                  break;
+                }
+              p += 1;
+              s += 1;
+            }
+        }
+
+      if (*p == '\0')
+        {
+          /* Allow white spaces at the end of the line.  */
+          while (*s != '\0' && (*s == ' ' || *s == '\t'))
+            s += 1;
+          if (*s == '\0')
+            /* We parsed an instruction successfully.  */
+            break;
+          PARSE_ERROR ("extra junk at end of line");
+        }
     }
 
-  gas_cgen_finish_insn (insn, buffer, CGEN_FIELDS_BITSIZE (&fields),
-                        0, /* zero to ban relaxable insns.  */
-                        NULL); /* NULL so results not returned here.  */
+  if (opcode == NULL)
+    {
+      as_bad (_("unrecognized instruction `%s'"), str);
+      if (errmsg != NULL)
+        {
+          as_bad ("%s", errmsg);
+          free (errmsg);
+        }
+
+      return;
+    }
+  insn.id = opcode->id;
+  insn.opcode = opcode->opcode;
+
+#undef PARSE_ERROR
+
+  /* Generate the frags and fixups for the parsed instruction.  */
+  if (do_relax && isa_spec >= BPF_V4 && insn.is_relaxable)
+    {
+      expressionS *relaxable_exp = NULL;
+
+      if (insn.has_disp16)
+        relaxable_exp = &insn.disp16;
+      else
+        abort ();
+
+      add_relaxed_insn (&insn, relaxable_exp);
+    }
+  else
+    add_fixed_insn (&insn);
+
+  /* Emit DWARF2 debugging information.  */
+  dwarf2_emit_insn (insn.size);
 }
 
+/* Parse an operand that is machine-specific.  */
+
 void
 md_operand (expressionS *expressionP)
 {
-  invalid_expression = input_line_pointer - 1;
-  gas_cgen_md_operand (expressionP);
+  /* If this hook is invoked it means GAS failed to parse a generic
+  expression.  We should inhibit the as_bad in expr.c, so we can fail
+  while parsing instruction alternatives.  To do that, we change the
+  expression to not have an O_absent.  But then we also need to set
+  exp_parse_failed to parse_expression above does the right thing.  */
+  ++input_line_pointer;
+  expressionP->X_op = O_constant;
+  expressionP->X_add_number = 0;
+  exp_parse_failed = 1;
 }
 
-
 symbolS *
 md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
 {
@@ -1929,3 +1653,38 @@ md_atof (int type, char *litP, int *sizeP)
 {
   return ieee_md_atof (type, litP, sizeP, false);
 }
+
+
+/* Determine whether the equal sign in the given string corresponds to
+   a BPF instruction, i.e. when it is not to be considered a symbol
+   assignment.  */
+
+bool
+bpf_tc_equal_in_insn (int c ATTRIBUTE_UNUSED, char *str ATTRIBUTE_UNUSED)
+{
+  uint8_t regno;
+
+  /* Only pseudo-c instructions can have equal signs, and of these,
+     all that could be confused with a symbol assignment all start
+     with a register name.  */
+  if (asm_dialect == DIALECT_PSEUDOC)
+    {
+      char *w = parse_bpf_register (str, 'w', &regno);
+      char *r = parse_bpf_register (str, 'r', &regno);
+
+      if ((w != NULL && *w == '\0')
+          || (r != NULL && *r == '\0'))
+        return 1;
+    }
+
+  return 0;
+}
+
+/* Some special processing for a BPF ELF file.  */
+
+void
+bpf_elf_final_processing (void)
+{
+  /* Annotate the BPF ISA version in the ELF flag bits.  */
+  elf_elfheader (stdoutput)->e_flags |= (isa_spec & EF_BPF_CPUVER);
+}
diff --git a/gas/config/tc-bpf.h b/gas/config/tc-bpf.h
index db604dbe8bc..9fb71eddd14 100644
--- a/gas/config/tc-bpf.h
+++ b/gas/config/tc-bpf.h
@@ -37,7 +37,6 @@
 
 /* .-foo gets turned into PC relative relocs.  */
 #define DIFF_EXPR_OK    1
-#define GAS_CGEN_PCREL_R_TYPE(R_TYPE) gas_cgen_pcrel_r_type (R_TYPE)
 
 /* Call md_pcrel_from_section(), not md_pcrel_from().  */
 #define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
@@ -52,4 +51,8 @@
    a jump to offset 0 means jump to the next instruction.  */
 #define md_single_noop_insn "ja 0"
 
-#define TC_EQUAL_IN_INSN(c, s) 1
+#define TC_EQUAL_IN_INSN(c, s) bpf_tc_equal_in_insn ((c), (s))
+extern bool bpf_tc_equal_in_insn (int, char *);
+
+#define elf_tc_final_processing bpf_elf_final_processing
+extern void bpf_elf_final_processing (void);
diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
index b09bbe156b6..7ca3b2c85cf 100644
--- a/gas/config/tc-d10v.c
+++ b/gas/config/tc-d10v.c
@@ -1391,8 +1391,8 @@ find_opcode (struct d10v_opcode *opcode, expressionS myops[])
 	      || myops[i].X_add_number == OPERAND_CONTROL + 12
 	      || myops[i].X_add_number == OPERAND_CONTROL + 13
 	      || myops[i].X_add_number == OPERAND_CONTROL + 15))
-	as_warn (_("cr%ld is a reserved control register"),
-		 myops[i].X_add_number - OPERAND_CONTROL);
+	as_warn (_("cr%d is a reserved control register"),
+		 (int) myops[i].X_add_number - OPERAND_CONTROL);
     }
   return opcode;
 }
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index de35ee2a2c6..e35e2660ed5 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1151,6 +1151,11 @@ static const arch_entry cpu_arch[] =
   SUBARCH (rmpquery, RMPQUERY, ANY_RMPQUERY, false),
   SUBARCH (fred, FRED, ANY_FRED, false),
   SUBARCH (lkgs, LKGS, ANY_LKGS, false),
+  SUBARCH (avx_vnni_int16, AVX_VNNI_INT16, ANY_AVX_VNNI_INT16, false),
+  SUBARCH (sha512, SHA512, ANY_SHA512, false),
+  SUBARCH (sm3, SM3, ANY_SM3, false),
+  SUBARCH (sm4, SM4, ANY_SM4, false),
+  SUBARCH (pbndkb, PBNDKB, PBNDKB, false),
 };
 
 #undef SUBARCH
@@ -4563,6 +4568,90 @@ optimize_encoding (void)
 	i.types[j].bitfield.disp8
 	  = fits_in_disp8 (i.op[j].disps->X_add_number);
     }
+  else if (optimize_for_space
+	   && i.tm.base_opcode == 0x29
+	   && i.tm.opcode_space == SPACE_0F38
+	   && i.operands == i.reg_operands
+	   && i.op[0].regs == i.op[1].regs
+	   && (!i.tm.opcode_modifier.vex
+	       || !(i.op[0].regs->reg_flags & RegRex))
+	   && !is_evex_encoding (&i.tm))
+    {
+      /* Optimize: -Os:
+         pcmpeqq %xmmN, %xmmN          -> pcmpeqd %xmmN, %xmmN
+         vpcmpeqq %xmmN, %xmmN, %xmmM  -> vpcmpeqd %xmmN, %xmmN, %xmmM (N < 8)
+         vpcmpeqq %ymmN, %ymmN, %ymmM  -> vpcmpeqd %ymmN, %ymmN, %ymmM (N < 8)
+       */
+      i.tm.opcode_space = SPACE_0F;
+      i.tm.base_opcode = 0x76;
+    }
+  else if (((i.tm.base_opcode >= 0x64
+	     && i.tm.base_opcode <= 0x66
+	     && i.tm.opcode_space == SPACE_0F)
+	    || (i.tm.base_opcode == 0x37
+		&& i.tm.opcode_space == SPACE_0F38))
+	   && i.operands == i.reg_operands
+	   && i.op[0].regs == i.op[1].regs
+	   && !is_evex_encoding (&i.tm))
+    {
+      /* Optimize: -O:
+         pcmpgt[bwd] %mmN, %mmN             -> pxor %mmN, %mmN
+         pcmpgt[bwdq] %xmmN, %xmmN          -> pxor %xmmN, %xmmN
+         vpcmpgt[bwdq] %xmmN, %xmmN, %xmmM  -> vpxor %xmmN, %xmmN, %xmmM (N < 8)
+         vpcmpgt[bwdq] %xmmN, %xmmN, %xmmM  -> vpxor %xmm0, %xmm0, %xmmM (N > 7)
+         vpcmpgt[bwdq] %ymmN, %ymmN, %ymmM  -> vpxor %ymmN, %ymmN, %ymmM (N < 8)
+         vpcmpgt[bwdq] %ymmN, %ymmN, %ymmM  -> vpxor %ymm0, %ymm0, %ymmM (N > 7)
+       */
+      i.tm.opcode_space = SPACE_0F;
+      i.tm.base_opcode = 0xef;
+      if (i.tm.opcode_modifier.vex && (i.op[0].regs->reg_flags & RegRex))
+	{
+	  if (i.operands == 2)
+	    {
+	      gas_assert (i.tm.opcode_modifier.sse2avx);
+
+	      i.operands = 3;
+	      i.reg_operands = 3;
+	      i.tm.operands = 3;
+
+	      i.op[2].regs = i.op[0].regs;
+	      i.types[2] = i.types[0];
+	      i.flags[2] = i.flags[0];
+	      i.tm.operand_types[2] = i.tm.operand_types[0];
+
+	      i.tm.opcode_modifier.sse2avx = 0;
+	    }
+	  i.op[0].regs -= i.op[0].regs->reg_num + 8;
+	  i.op[1].regs = i.op[0].regs;
+	}
+    }
+  else if (optimize_for_space
+	   && i.tm.base_opcode == 0x59
+	   && i.tm.opcode_space == SPACE_0F38
+	   && i.operands == i.reg_operands
+	   && i.tm.opcode_modifier.vex
+	   && !(i.op[0].regs->reg_flags & RegRex)
+	   && i.op[0].regs->reg_type.bitfield.xmmword
+	   && i.vec_encoding != vex_encoding_vex3)
+    {
+      /* Optimize: -Os:
+         vpbroadcastq %xmmN, %xmmM  -> vpunpcklqdq %xmmN, %xmmN, %xmmM (N < 8)
+       */
+      i.tm.opcode_space = SPACE_0F;
+      i.tm.base_opcode = 0x6c;
+      i.tm.opcode_modifier.vexvvvv = 1;
+
+      ++i.operands;
+      ++i.reg_operands;
+      ++i.tm.operands;
+
+      i.op[2].regs = i.op[0].regs;
+      i.types[2] = i.types[0];
+      i.flags[2] = i.flags[0];
+      i.tm.operand_types[2] = i.tm.operand_types[0];
+
+      swap_2_operands (1, 2);
+    }
 }
 
 /* Return non-zero for load instruction.  */
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index 270ddf999ce..e1872310bd8 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -1574,7 +1574,8 @@ fixup8 (expressionS *oper, int mode, int opmode)
 	{
 	  static char trap_id_warn_once = 0;
 
-	  as_bad (_("Trap id `%ld' is out of range."), oper->X_add_number);
+	  as_bad (_("Trap id `%" PRId64 "' is out of range."),
+		  (int64_t) oper->X_add_number);
 	  if (trap_id_warn_once == 0)
 	    {
 	      trap_id_warn_once = 1;
@@ -1585,7 +1586,8 @@ fixup8 (expressionS *oper, int mode, int opmode)
       if (!(mode & M6812_OP_TRAP_ID)
 	  && !check_range (oper->X_add_number, mode))
 	{
-	  as_bad (_("Operand out of 8-bit range: `%ld'."), oper->X_add_number);
+	  as_bad (_("Operand out of 8-bit range: `%" PRId64 "'."),
+		  (int64_t) oper->X_add_number);
 	}
       number_to_chars_bigendian (f, oper->X_add_number & 0x0FF, 1);
     }
@@ -1641,8 +1643,8 @@ fixup16 (expressionS *oper, int mode, int opmode ATTRIBUTE_UNUSED)
     {
       if (!check_range (oper->X_add_number, mode))
 	{
-	  as_bad (_("Operand out of 16-bit range: `%ld'."),
-		  oper->X_add_number);
+	  as_bad (_("Operand out of 16-bit range: `%" PRId64 "'."),
+		  (int64_t) oper->X_add_number);
 	}
       number_to_chars_bigendian (f, oper->X_add_number & 0x0FFFF, 2);
     }
@@ -1689,8 +1691,8 @@ fixup24 (expressionS *oper, int mode, int opmode ATTRIBUTE_UNUSED)
     {
       if (!check_range (oper->X_add_number, mode))
 	{
-	  as_bad (_("Operand out of 16-bit range: `%ld'."),
-		  oper->X_add_number);
+	  as_bad (_("Operand out of 16-bit range: `%" PRId64 "'."),
+		  (int64_t) oper->X_add_number);
 	}
       number_to_chars_bigendian (f, oper->X_add_number & 0x0FFFFFF, 3);
     }
@@ -1736,8 +1738,8 @@ fixup8_xg (expressionS *oper, int mode, int opmode)
      else
         {
 	  if (!(check_range (oper->X_add_number, mode)))
-	    as_bad (_("Operand out of 8-bit range: `%ld'."),
-		    oper->X_add_number);
+	    as_bad (_("Operand out of 8-bit range: `%" PRId64 "'."),
+		    (int64_t) oper->X_add_number);
           number_to_chars_bigendian (f, oper->X_add_number & 0x0FF, 1);
         }
     }
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 297bb9b2a81..aaf8b9be64f 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -337,7 +337,8 @@ riscv_set_arch (const char *s)
   riscv_reset_subsets_list_arch_str ();
 
   riscv_set_rvc (false);
-  if (riscv_subset_supports (&riscv_rps_as, "c"))
+  if (riscv_subset_supports (&riscv_rps_as, "c")
+      || riscv_subset_supports (&riscv_rps_as, "zca"))
     riscv_set_rvc (true);
 
   if (riscv_subset_supports (&riscv_rps_as, "ztso"))
@@ -1425,6 +1426,18 @@ validate_riscv_insn (const struct riscv_opcode *opc, int length)
 		  goto unknown_validate_operand;
 		}
 	      break;
+	    case 'c':
+	      switch (*++oparg)
+		{
+		/* byte immediate operators, load/store byte insns.  */
+		case 'h': used_bits |= ENCODE_ZCB_HALFWORD_UIMM (-1U); break;
+		/* halfword immediate operators, load/store halfword insns.  */
+		case 'b': used_bits |= ENCODE_ZCB_BYTE_UIMM (-1U); break;
+		case 'f': break;
+		default:
+		  goto unknown_validate_operand;
+		}
+	      break;
 	    default:
 	      goto unknown_validate_operand;
 	    }
@@ -3558,6 +3571,47 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
 		      goto unknown_riscv_ip_operand;
 		    }
 		  break;
+
+		case 'c':
+		  switch (*++oparg)
+		    {
+		    case 'h': /* Immediate field for c.lh/c.lhu/c.sh.  */
+		      /* Handle cases, such as c.sh rs2', (rs1').  */
+		      if (riscv_handle_implicit_zero_offset (imm_expr, asarg))
+			continue;
+		      if (my_getSmallExpression (imm_expr, imm_reloc, asarg, p)
+			  || imm_expr->X_op != O_constant
+			  || !VALID_ZCB_HALFWORD_UIMM ((valueT) imm_expr->X_add_number))
+			break;
+		      ip->insn_opcode |= ENCODE_ZCB_HALFWORD_UIMM (imm_expr->X_add_number);
+		      goto rvc_imm_done;
+
+		    case 'b': /* Immediate field for c.lbu/c.sb.  */
+		      /* Handle cases, such as c.lbu rd', (rs1').  */
+		      if (riscv_handle_implicit_zero_offset (imm_expr, asarg))
+			continue;
+		      if (my_getSmallExpression (imm_expr, imm_reloc, asarg, p)
+			  || imm_expr->X_op != O_constant
+			  || !VALID_ZCB_BYTE_UIMM ((valueT) imm_expr->X_add_number))
+			break;
+		      ip->insn_opcode |= ENCODE_ZCB_BYTE_UIMM (imm_expr->X_add_number);
+		      goto rvc_imm_done;
+
+		    case 'f': /* Operand for matching immediate 255.  */
+		      if (my_getSmallExpression (imm_expr, imm_reloc, asarg, p)
+			  || imm_expr->X_op != O_constant
+			  || imm_expr->X_add_number != 255)
+			break;
+		      /* This operand is used for matching immediate 255, and
+			 we do not write anything to encoding by this operand.  */
+		      asarg = expr_parse_end;
+		      imm_expr->X_op = O_absent;
+		      continue;
+
+		    default:
+		      goto unknown_riscv_ip_operand;
+		    }
+		  break;
 		default:
 		  goto unknown_riscv_ip_operand;
 		}
@@ -4322,7 +4376,8 @@ s_riscv_option (int x ATTRIBUTE_UNUSED)
       riscv_reset_subsets_list_arch_str ();
 
       riscv_set_rvc (false);
-      if (riscv_subset_supports (&riscv_rps_as, "c"))
+      if (riscv_subset_supports (&riscv_rps_as, "c")
+	  || riscv_subset_supports (&riscv_rps_as, "zca"))
 	riscv_set_rvc (true);
 
       if (riscv_subset_supports (&riscv_rps_as, "ztso"))
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 955851946f9..765a9a2e6bd 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -2291,25 +2291,25 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
 	 We are only prepared to turn a few of the operands into
 	 relocs.  */
       fixP->fx_offset = value;
-      if (operand->bits == 12 && operand->shift == 20)
+      if (operand->bits == 12 && operand->shift == 20 && !fixP->fx_pcrel)
 	{
 	  fixP->fx_size = 2;
 	  fixP->fx_where += 2;
 	  fixP->fx_r_type = BFD_RELOC_390_12;
 	}
-      else if (operand->bits == 12 && operand->shift == 36)
+      else if (operand->bits == 12 && operand->shift == 36 && !fixP->fx_pcrel)
 	{
 	  fixP->fx_size = 2;
 	  fixP->fx_where += 4;
 	  fixP->fx_r_type = BFD_RELOC_390_12;
 	}
-      else if (operand->bits == 20 && operand->shift == 20)
+      else if (operand->bits == 20 && operand->shift == 20 && !fixP->fx_pcrel)
 	{
 	  fixP->fx_size = 4;
 	  fixP->fx_where += 2;
 	  fixP->fx_r_type = BFD_RELOC_390_20;
 	}
-      else if (operand->bits == 8 && operand->shift == 8)
+      else if (operand->bits == 8 && operand->shift == 8 && !fixP->fx_pcrel)
 	{
 	  fixP->fx_size = 1;
 	  fixP->fx_where += 1;
@@ -2334,6 +2334,12 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
 	      fixP->fx_offset += 2;
 	      fixP->fx_pcrel_adjust = 2;
 	    }
+	  else if (fixP->fx_pcrel)
+	    {
+	      fixP->fx_r_type = BFD_RELOC_16_PCREL;
+	      fixP->fx_offset += 2;
+	      fixP->fx_pcrel_adjust = 2;
+	    }
 	  else
 	    fixP->fx_r_type = BFD_RELOC_16;
 	}
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index bc0380a4961..634d5dcde41 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -1222,6 +1222,10 @@ static char *
 get_operands (sh_opcode_info *info, char *args, sh_operand_info *operand)
 {
   char *ptr = args;
+
+  operand[0].type = 0;
+  operand[1].type = 0;
+  operand[2].type = 0;
   if (info->arg[0])
     {
       /* The pre-processor will eliminate whitespace in front of '@'
@@ -1234,9 +1238,7 @@ get_operands (sh_opcode_info *info, char *args, sh_operand_info *operand)
       if (info->arg[1])
 	{
 	  if (*ptr == ',')
-	    {
-	      ptr++;
-	    }
+	    ptr++;
 	  get_operand (&ptr, operand + 1);
 	  /* ??? Hack: psha/pshl have a varying operand number depending on
 	     the type of the first operand.  We handle this by having the
@@ -1247,27 +1249,10 @@ get_operands (sh_opcode_info *info, char *args, sh_operand_info *operand)
 	  if (info->arg[2] && operand[0].type != A_IMM)
 	    {
 	      if (*ptr == ',')
-		{
-		  ptr++;
-		}
+		ptr++;
 	      get_operand (&ptr, operand + 2);
 	    }
-	  else
-	    {
-	      operand[2].type = 0;
-	    }
 	}
-      else
-	{
-	  operand[1].type = 0;
-	  operand[2].type = 0;
-	}
-    }
-  else
-    {
-      operand[0].type = 0;
-      operand[1].type = 0;
-      operand[2].type = 0;
     }
   return ptr;
 }
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index eada5e5a0da..c273bd75c08 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -4992,3 +4992,4 @@ sparc_cfi_emit_pcrel_expr (expressionS *exp, unsigned int nbytes)
   emit_expr_with_reloc (exp, nbytes, "disp");
   sparc_no_align_cons = 0;
 }
+
diff --git a/gas/config/tc-vax.c b/gas/config/tc-vax.c
index 36defe4765c..50adf532a15 100644
--- a/gas/config/tc-vax.c
+++ b/gas/config/tc-vax.c
@@ -2683,8 +2683,9 @@ md_assemble (char *instruction_string)
 		}
 	      else
 		{
-		  as_warn (_("A bignum/flonum may not be a displacement: 0x%lx used"),
-			   (expP->X_add_number = 0x80000000L));
+		  as_warn (_("A bignum/flonum may not be a displacement: 0x%"
+			     PRIx64 " used"),
+			   (uint64_t) (expP->X_add_number = 0x80000000L));
 		  /* Chosen so luser gets the most offset bits to patch later.  */
 		}
 	      expP->X_add_number = floatP->low[0]
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index 550c8256e3f..fd3ed067659 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -7869,8 +7869,9 @@ dump_litpools (void)
 		count++;
 	      litfrag = litfrag->fr_next;
 	    }
-	  printf("   %ld <%d:%d> (%d) [%d]: ",
-		 lpf->addr, lpf->priority, lpf->original_priority,
+	  printf("   %" PRId64 " <%d:%d> (%d) [%d]: ",
+		 (int64_t) lpf->addr,
+		 lpf->priority, lpf->original_priority,
 		 lpf->fragP->fr_line, count);
 	  /* dump_frag(lpf->fragP);  */
 	}
diff --git a/gas/config/tc-z80.c b/gas/config/tc-z80.c
index 577c58479da..398c7f31c57 100644
--- a/gas/config/tc-z80.c
+++ b/gas/config/tc-z80.c
@@ -1143,10 +1143,11 @@ emit_data_val (expressionS * val, int size)
 	  but it does help to maintain compatibility with earlier versions
 	  of the assembler.  */
       if (! val->X_extrabit
-	  && is_overflow (val->X_add_number, size*8))
-	as_warn ( _("%d-bit overflow (%+ld)"), size*8, val->X_add_number);
+	  && is_overflow (val->X_add_number, size * 8))
+	as_warn ( _("%d-bit overflow (%+" PRId64 ")"), size * 8,
+		  (int64_t) val->X_add_number);
       for (i = 0; i < size; ++i)
-	p[i] = (char)(val->X_add_number >> (i*8));
+	p[i] = (val->X_add_number >> (i * 8)) & 0xff;
       return;
     }
 
@@ -1250,9 +1251,11 @@ emit_byte (expressionS * val, bfd_reloc_code_real_type r_type)
       if ((val->X_add_number < -128) || (val->X_add_number >= 128))
 	{
 	  if (r_type == BFD_RELOC_Z80_DISP8)
-	    as_bad (_("index overflow (%+ld)"), val->X_add_number);
+	    as_bad (_("index overflow (%+" PRId64 ")"),
+		    (int64_t) val->X_add_number);
 	  else
-	    as_bad (_("offset overflow (%+ld)"), val->X_add_number);
+	    as_bad (_("offset overflow (%+" PRId64 ")"),
+		    (int64_t) val->X_add_number);
 	}
     }
   else
diff --git a/gas/configure b/gas/configure
index 1fc3a54b21f..aff5aec4625 100755
--- a/gas/configure
+++ b/gas/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gas 2.41.
+# Generated by GNU Autoconf 2.69 for gas 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gas'
 PACKAGE_TARNAME='gas'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='gas 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='gas 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1381,7 +1381,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gas 2.41 to adapt to many kinds of systems.
+\`configure' configures gas 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1452,7 +1452,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gas 2.41:";;
+     short | recursive ) echo "Configuration of gas 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1600,7 +1600,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gas configure 2.41
+gas configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2011,7 +2011,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gas $as_me 2.41, which was
+It was created by gas $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2990,7 +2990,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gas'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12107,6 +12107,8 @@ $as_echo "#define STRICTCOFF 1" >>confdefs.h
       microblaze*)
         ;;
 
+      ppc-*-aix5.[01]*)
+	;;
       ppc-*-aix[5-9].*)
 
 $as_echo "#define AIX_WEAK_SUPPORT 1" >>confdefs.h
@@ -12296,7 +12298,6 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 	fi
-        using_cgen=yes
         ;;
       epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
 	using_cgen=yes
@@ -14909,7 +14910,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gas $as_me 2.41, which was
+This file was extended by gas $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14975,7 +14976,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gas config.status 2.41
+gas config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/gas/configure.ac b/gas/configure.ac
index b79586d6390..c3bd1178d41 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -272,6 +272,8 @@ for this_target in $target $canon_targets ; do
         ;;
 
 changequote(,)dnl
+      ppc-*-aix5.[01]*)
+	;;
       ppc-*-aix[5-9].*)
 changequote([,])dnl
 	AC_DEFINE(AIX_WEAK_SUPPORT, 1,
@@ -449,7 +451,6 @@ changequote([,])dnl
       	if test $this_target = $target ; then
 	  AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
 	fi
-        using_cgen=yes
         ;;
       epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
 	using_cgen=yes
diff --git a/gas/doc/c-bpf.texi b/gas/doc/c-bpf.texi
index 0756796adc9..6b43c77d5a0 100644
--- a/gas/doc/c-bpf.texi
+++ b/gas/doc/c-bpf.texi
@@ -15,15 +15,15 @@
 
 @cindex BPF support
 @menu
-* BPF Options::                 Options
-* BPF Syntax::		        Syntax
-* BPF Directives::		Machine Directives
-* BPF Opcodes::			Opcodes
-* BPF Pseudo-C Syntax::         Alternative Pseudo-C Assembly Syntax
+* BPF Options::                 BPF specific command-line options.
+* BPF Special Characters::      Comments and statements.
+* BPF Registers::               Register names.
+* BPF Directives::		Machine directives.
+* BPF Instructions::            Machine instructions.
 @end menu
 
 @node BPF Options
-@section Options
+@section BPF Options
 @cindex BPF options (none)
 @cindex options for BPF (none)
 
@@ -38,76 +38,85 @@ This option specifies that the assembler should emit big-endian eBPF.
 @item -EL
 This option specifies that the assembler should emit little-endian
 eBPF.
+
+@cindex @option{-mdialect} command-line options, BPF
+@item -mdialect=@var{dialect}
+This option specifies the assembly language dialect to recognize while
+assembling.  The assembler supports @option{normal} and
+@option{pseudoc}.
+
+@cindex @option{-misa-spec} command-line options, BPF
+@item -misa-spec=@var{spec}
+This option specifies the version of the BPF instruction set to use
+when assembling.  The BPF ISA versions supported are @option{v1} @option{v2}, @option{v3} and @option{v4}.
+
+The value @option{xbpf} can be specified to recognize extra
+instructions that are used by GCC for testing purposes.  But beware
+this is not valid BPF.
+
+@cindex @option{-mno-relax} command-line options, BPF
+@item -mno-relax
+This option tells the assembler to not relax instructions.
 @end table
 
 Note that if no endianness option is specified in the command line,
 the host endianness is used.
 @c man end
 
-@node BPF Syntax
-@section Syntax
-@menu
-* BPF-Chars::                Special Characters
-* BPF-Regs::                 Register Names
-* BPF-Pseudo-Maps::	     Pseudo map fds
-@end menu
-
-@node BPF-Chars
-@subsection Special Characters
+@node BPF Special Characters
+@section BPF Special Characters
 
 @cindex line comment character, BPF
 @cindex BPF line comment character
-The presence of a @samp{;} on a line indicates the start of a comment
-that extends to the end of the current line.  If a @samp{#} appears as
-the first character of a line, the whole line is treated as a comment.
+The presence of a @samp{;} or a @samp{#} on a line indicates the start
+of a comment that extends to the end of the current line.
 
 @cindex statement separator, BPF
 Statements and assembly directives are separated by newlines.
 
-@node BPF-Regs
-@subsection Register Names
+@node BPF Registers
+@section BPF Registers
 
 @cindex BPF register names
 @cindex register names, BPF
 The eBPF processor provides ten general-purpose 64-bit registers,
 which are read-write, and a read-only frame pointer register:
 
+@noindent
+In normal syntax:
+
 @table @samp
 @item %r0 .. %r9
 General-purpose registers.
 @item %r10
-Frame pointer register.
+@itemx %fp
+Read-only frame pointer register.
 @end table
 
-Some registers have additional names, to reflect their role in the
-eBPF ABI:
+All BPF registers are 64-bit long.  However, in the Pseudo-C syntax
+registers can be referred using different names, which actually
+reflect the kind of instruction they appear on:
+
+@noindent
+In pseudoc syntax:
 
 @table @samp
-@item %a
-This is @samp{%r0}.
-@item %ctx
-This is @samp{%r6}.
-@item %fp
-This is @samp{%r10}.
+@item r0..r9
+General-purpose register in an instruction that operates on its value
+as if it was a 64-bit value.
+@item w0..w9
+General-purpose register in an instruction that operates on its value
+as if it was a 32-bit value.
+@item r10
+Read-only frame pointer register.
 @end table
 
-@node BPF-Pseudo-Maps
-@subsection Pseudo Maps
-
-@cindex pseudo map fd, BPF
-The @samp{LDDW} instruction can take a literal pseudo map file
-descriptor as its second argument.  This uses the syntax
-@samp{%map_fd(N)} where @samp{N} is a signed number.
-
-For example, to load the address of the pseudo map with file
-descriptor @samp{2} in register @samp{r1} we would do:
-
-@smallexample
-        lddw %r1, %map_fd(2)
-@end smallexample
+@noindent
+Note that in the Pseudo-C syntax register names are not preceded by
+@code{%} characters.
 
 @node BPF Directives
-@section Machine Directives
+@section BPF Directives
 
 @cindex machine directives, BPF
 
@@ -128,8 +137,8 @@ The @code{.word} directive produces a 32 bit value.
 The @code{.dword} directive produces a 64 bit value.
 @end table
 
-@node BPF Opcodes
-@section Opcodes
+@node BPF Instructions
+@section BPF Instructions
 
 @cindex BPF opcodes
 @cindex opcodes for BPF
@@ -137,10 +146,10 @@ In the instruction descriptions below the following field descriptors
 are used:
 
 @table @code
-@item %d
-Destination general-purpose register whose role is to be destination
-of an operation.
-@item %s
+@item rd
+Destination general-purpose register whose role is to be the
+destination of an operation.
+@item rs
 Source general-purpose register whose role is to be the source of an
 operation.
 @item disp16
@@ -150,104 +159,284 @@ minus one.
 32-bit signed PC-relative offset, measured in number of 64-bit words,
 minus one.
 @item offset16
-Signed 16-bit immediate.
+Signed 16-bit immediate representing an offset in bytes.
+@item disp16
+Signed 16-bit immediate representing a displacement to a target,
+measured in number of 64-bit words @emph{minus one}.
+@item disp32
+Signed 32-bit immediate representing a displacement to a target,
+measured in number of 64-bit words @emph{minus one}.
 @item imm32
 Signed 32-bit immediate.
 @item imm64
 Signed 64-bit immediate.
 @end table
 
-@subsubsection Arithmetic instructions
+@subsection Arithmetic instructions
 
 The destination register in these instructions act like an
 accumulator.
 
+Note that in pseudoc syntax these instructions should use @code{r}
+registers.
+
 @table @code
-@item add %d, (%s|imm32)
+@item add rd, rs
+@itemx add rd, imm32
+@itemx rd += rs
+@itemx rd += imm32
 64-bit arithmetic addition.
-@item sub %d, (%s|imm32)
+
+@item sub rd, rs
+@itemx sub rd, rs
+@itemx rd -= rs
+@itemx rd -= imm32
 64-bit arithmetic subtraction.
-@item mul %d, (%s|imm32)
+
+@item mul rd, rs
+@itemx mul rd, imm32
+@itemx rd *= rs
+@itemx rd *= imm32
 64-bit arithmetic multiplication.
-@item div %d, (%s|imm32)
+
+@item div rd, rs
+@itemx div rd, imm32
+@itemx rd /= rs
+@itemx rd /= imm32
 64-bit arithmetic integer division.
-@item mod %d, (%s|imm32)
+
+@item mod rd, rs
+@itemx mod rd, imm32
+@itemx rd %= rs
+@itemx rd %= imm32
 64-bit integer remainder.
-@item and %d, (%s|imm32)
+
+@item and rd, rs
+@itemx and rd, imm32
+@itemx rd &= rs
+@itemx rd &= imm32
 64-bit bit-wise ``and'' operation.
-@item or %d, (%s|imm32)
+
+@item or rd, rs
+@itemx or rd, imm32
+@itemx rd |= rs
+@itemx rd |= imm32
 64-bit bit-wise ``or'' operation.
-@item xor %d, (%s|imm32)
+
+@item xor rd, imm32
+@itemx xor rd, rs
+@itemx rd ^= rs
+@itemx rd ^= imm32
 64-bit bit-wise exclusive-or operation.
-@item lsh %d, (%s|imm32)
-64-bit left shift, by @code{%s} or @code{imm32} bits.
-@item rsh %d, (%s|imm32)
-64-bit right logical shift, by @code{%s} or @code{imm32} bits.
-@item arsh %d, (%s|imm32)
-64-bit right arithmetic shift, by @code{%s} or @code{imm32} bits.
-@item neg %d
+
+@item lsh rd, rs
+@itemx ldh rd, imm32
+@itemx rd <<= rs
+@itemx rd <<= imm32
+64-bit left shift, by @code{rs} or @code{imm32} bits.
+
+@item rsh %d, %s
+@itemx rsh rd, imm32
+@itemx rd >>= rs
+@itemx rd >>= imm32
+64-bit right logical shift, by @code{rs} or @code{imm32} bits.
+
+@item arsh rd, rs
+@itemx arsh rd, imm32
+@itemx rd s>>= rs
+@itemx rd s>>= imm32
+64-bit right arithmetic shift, by @code{rs} or @code{imm32} bits.
+
+@item neg rd
+@itemx neg rd, imm32
+@itemx rd = - rd
+@itemx rd = - imm32
 64-bit arithmetic negation.
-@item mov %d, (%s|imm32)
-Move the 64-bit value of @code{%s} in @code{%d}, or load @code{imm32}
-in @code{%d}.
+
+Note that in the @code{rd = - imm32} syntax there must be at least
+one white space between @code{-} and @code{imm32}.  Otherwise the
+instruction is parsed as a @code{mov rd, imm32} instruction with a
+negative 32-bit immediate.  This is a consequence of a syntactic
+ambiguity in the pseudoc syntax.
+
+@item mov rd, rs
+@itemx mov rd, imm32
+@itemx rd = rs
+@itemx rd = imm32
+Move the 64-bit value of @code{rs} in @code{rd}, or load @code{imm32}
+in @code{rd}.
+
+@item movs rd, rs, 8
+@itemx rd = (s8) rs
+Move the sign-extended 8-bit value in @code{rs} to @code{rd}.
+
+@item movs rd, rs, 16
+@itemx rd = (s16) rs
+Move the sign-extended 16-bit value in @code{rs} to @code{rd}.
+
+@item movs rd, rs, 32
+@itemx rd = (s32) rs
+Move the sign-extended 32-bit value in @code{rs} to @code{rd}.
 @end table
 
-@subsubsection 32-bit arithmetic instructions
+@subsection 32-bit arithmetic instructions
 
 The destination register in these instructions act as an accumulator.
 
+Note that in pseudoc syntax these instructions should use @code{w}
+registers.  It is not allowed to mix @code{w} and @code{r} registers
+in the same instruction.
+
 @table @code
-@item add32 %d, (%s|imm32)
+@item add32 rd, rs
+@itemx add32 rd, imm32
+@itemx rd += rs
+@itemx rd += imm32
 32-bit arithmetic addition.
-@item sub32 %d, (%s|imm32)
+
+@item sub32 rd, rs
+@itemx sub32 rd, imm32
+@itemx rd -= rs
+@itemx rd += imm32
 32-bit arithmetic subtraction.
-@item mul32 %d, (%s|imm32)
+
+@item mul32 rd, rs
+@itemx mul32 rd, imm32
+@itemx rd *= rs
+@itemx rd *= imm32
 32-bit arithmetic multiplication.
-@item div32 %d, (%s|imm32)
+
+@item div32 rd, rs
+@itemx div32 rd, imm32
+@itemx rd /= rs
+@itemx rd /= imm32
 32-bit arithmetic integer division.
-@item mod32 %d, (%s|imm32)
+
+@item mod32 rd, rs
+@itemx mod32 rd, imm32
+@itemx rd %= rs
+@itemx rd %= imm32
 32-bit integer remainder.
-@item and32 %d, (%s|imm32)
+
+@item and32 rd, rs
+@itemx and32 rd, imm32
+@itemx rd &= rs
+@itemx rd &= imm32
 32-bit bit-wise ``and'' operation.
-@item or32 %d, (%s|imm32)
+
+@item or32 rd, rs
+@itemx or32 rd, imm32
+@itemx rd |= rs
+@itemx rd |= imm32
 32-bit bit-wise ``or'' operation.
-@item xor32 %d, (%s|imm32)
+
+@item xor32 rd, rs
+@itemx xor32 rd, imm32
+@itemx rd ^= rs
+@itemx rd ^= imm32
 32-bit bit-wise exclusive-or operation.
-@item lsh32 %d, (%s|imm32)
-32-bit left shift, by @code{%s} or @code{imm32} bits.
-@item rsh32 %d, (%s|imm32)
-32-bit right logical shift, by @code{%s} or @code{imm32} bits.
-@item arsh32 %d, (%s|imm32)
-32-bit right arithmetic shift, by @code{%s} or @code{imm32} bits.
-@item neg32 %d
+
+@item lsh32 rd, rs
+@itemx lsh32 rd, imm32
+@itemx rd <<= rs
+@itemx rd <<= imm32
+32-bit left shift, by @code{rs} or @code{imm32} bits.
+
+@item rsh32 rd, rs
+@itemx rsh32 rd, imm32
+@itemx rd >>= rs
+@itemx rd >>= imm32
+32-bit right logical shift, by @code{rs} or @code{imm32} bits.
+
+@item arsh32 rd, rs
+@itemx arsh32 rd, imm32
+@itemx rd s>>= rs
+@itemx rd s>>= imm32
+32-bit right arithmetic shift, by @code{rs} or @code{imm32} bits.
+
+@item neg32 rd
+@itemx neg32 rd, imm32
+@itemx rd = - rd
+@itemx rd = - imm32
 32-bit arithmetic negation.
-@item mov32 %d, (%s|imm32)
-Move the 32-bit value of @code{%s} in @code{%d}, or load @code{imm32}
-in @code{%d}.
+
+Note that in the @code{rd = - imm32} syntax there must be at least
+one white space between @code{-} and @code{imm32}.  Otherwise the
+instruction is parsed as a @code{mov32 rd, imm32} instruction with a
+negative 32-bit immediate.  This is a consequence of a syntactic
+ambiguity in the pseudoc syntax.
+
+@item mov32 rd, rs
+@itemx mov32 rd, imm32
+@itemx rd = rs
+@itemx rd = imm32
+Move the 32-bit value of @code{rs} in @code{rd}, or load @code{imm32}
+in @code{rd}.
+
+@item mov32s rd, rs, 8
+@itemx rd = (s8) rs
+Move the sign-extended 8-bit value in @code{rs} to @code{rd}.
+
+@item mov32s rd, rs, 16
+@itemx rd = (s16) rs
+Move the sign-extended 16-bit value in @code{rs} to @code{rd}.
+
+@item mov32s rd, rs, 32
+@itemx rd = (s32) rs
+Move the sign-extended 32-bit value in @code{rs} to @code{rd}.
 @end table
 
-@subsubsection Endianness conversion instructions
+@subsection Endianness conversion instructions
 
 @table @code
-@item endle %d, (16|32|64)
-Convert the 16-bit, 32-bit or 64-bit value in @code{%d} to
-little-endian.
-@item endbe %d, (16|32|64)
-Convert the 16-bit, 32-bit or 64-bit value in @code{%d} to big-endian.
+@item endle rd, 16
+@itemx endle rd, 32
+@itemx endle rd, 64
+@itemx rd = le16 rd
+@itemx rd = le32 rd
+@itemx rd = le64 rd
+Convert the 16-bit, 32-bit or 64-bit value in @code{rd} to
+little-endian and store it back in @code{rd}.
+@item endbe %d, 16
+@itemx endbe %d, 32
+@itemx endbe %d, 64
+@itemx rd = be16 rd
+@itemx rd = be32 rd
+@itemx rd = be64 rd
+Convert the 16-bit, 32-bit or 64-bit value in @code{rd} to big-endian
+and store it back in @code{rd}.
 @end table
 
-@subsubsection 64-bit load and pseudo maps
+@subsection Byte swap instructions
 
 @table @code
-@item lddw %d, imm64
-Load the given signed 64-bit immediate, or pseudo map descriptor, to
-the destination register @code{%d}.
-@item lddw %d, %map_fd(N)
-Load the address of the given pseudo map fd @emph{N} to the
-destination register @code{%d}.
+@item bswap rd, 16
+@itemx rd = bswap16 rd
+Swap the least-significant 16-bit word in @code{rd} with the
+most-significant 16-bit word.
+
+@item bswap rd, 32
+@itemx rd = bswap32 rd
+Swap the least-significant 32-bit word in @code{rd} with the
+most-significant 32-bit word.
+
+@item bswap rd, 64
+@itemx rd = bswap64 rd
+Swap the least-significant 64-bit word in @code{rd} with the
+most-significant 64-bit word.
 @end table
 
-@subsubsection Load instructions for socket filters
+
+@subsection 64-bit load and pseudo maps
+
+@table @code
+@item lddw rd, imm64
+@itemx rd = imm64 ll
+Load the given signed 64-bit immediate to the destination register
+@code{rd}.
+@end table
+
+@subsection Load instructions for socket filters
 
 The following instructions are intended to be used in socket filters,
 and are therefore not general-purpose: they make assumptions on the
@@ -259,29 +448,43 @@ Absolute loads:
 
 @table @code
 @item ldabsdw imm32
+@itemx r0 = *(u64 *) skb[imm32]
 Absolute 64-bit load.
+
 @item ldabsw imm32
+@itemx r0 = *(u32 *) skb[imm32]
 Absolute 32-bit load.
+
 @item ldabsh imm32
+@itemx r0 = *(u16 *) skb[imm32]
 Absolute 16-bit load.
+
 @item ldabsb imm32
+@itemx r0 = *(u8 *) skb[imm32]
 Absolute 8-bit load.
 @end table
 
 Indirect loads:
 
 @table @code
-@item ldinddw %s, imm32
+@item ldinddw rs, imm32
+@itemx r0 = *(u64 *) skb[rs + imm32]
 Indirect 64-bit load.
-@item ldindw %s, imm32
+
+@item ldindw rs, imm32
+@itemx r0 = *(u32 *) skb[rs + imm32]
 Indirect 32-bit load.
-@item ldindh %s, imm32
+
+@item ldindh rs, imm32
+@itemx r0 = *(u16 *) skb[rs + imm32]
 Indirect 16-bit load.
+
 @item ldindb %s, imm32
+@itemx r0 = *(u8 *) skb[rs + imm32]
 Indirect 8-bit load.
 @end table
 
-@subsubsection Generic load/store instructions
+@subsection Generic load/store instructions
 
 General-purpose load and store instructions are provided for several
 word sizes.
@@ -289,43 +492,84 @@ word sizes.
 Load to register instructions:
 
 @table @code
-@item ldxdw %d, [%s+offset16]
+@item ldxdw rd, [rs + offset16]
+@itemx rd = *(u64 *) (rs + offset16)
 Generic 64-bit load.
-@item ldxw %d, [%s+offset16]
+
+@item ldxw rd, [rs + offset16]
+@itemx rd = *(u32 *) (rs + offset16)
 Generic 32-bit load.
-@item ldxh %d, [%s+offset16]
+
+@item ldxh rd, [rs + offset16]
+@itemx rd = *(u16 *) (rs + offset16)
 Generic 16-bit load.
-@item ldxb %d, [%s+offset16]
+
+@item ldxb rd, [rs + offset16]
+@itemx rd = *(u8 *) (rs + offset16)
 Generic 8-bit load.
 @end table
 
+Signed load to register instructions:
+
+@table @code
+@item ldxsdw rd, [rs + offset16]
+@itemx rd = *(s64 *) (rs + offset16)
+Generic 64-bit signed load.
+
+@item ldxsw rd, [rs + offset16]
+@itemx rd = *(s32 *) (rs + offset16)
+Generic 32-bit signed load.
+
+@item ldxsh rd, [rs + offset16]
+@itemx rd = *(s16 *) (rs + offset16)
+Generic 16-bit signed load.
+
+@item ldxsb rd, [rs + offset16]
+@itemx rd = *(s8 *) (rs + offset16)
+Generic 8-bit signed load.
+@end table
+
 Store from register instructions:
 
 @table @code
-@item stxdw [%d+offset16], %s
+@item stxdw [rd + offset16], %s
+@itemx *(u64 *) (rd + offset16)
 Generic 64-bit store.
-@item stxw [%d+offset16], %s
+
+@item stxw [rd + offset16], %s
+@itemx *(u32 *) (rd + offset16)
 Generic 32-bit store.
-@item stxh [%d+offset16], %s
+
+@item stxh [rd + offset16], %s
+@itemx *(u16 *) (rd + offset16)
 Generic 16-bit store.
-@item stxb [%d+offset16], %s
+
+@item stxb [rd + offset16], %s
+@itemx *(u8 *) (rd + offset16)
 Generic 8-bit store.
 @end table
 
 Store from immediates instructions:
 
 @table @code
-@item stddw [%d+offset16], imm32
+@item stdw [rd + offset16], imm32
+@itemx *(u64 *) (rd + offset16) = imm32
 Store immediate as 64-bit.
-@item stdw [%d+offset16], imm32
+
+@item stw [rd + offset16], imm32
+@itemx *(u32 *) (rd + offset16) = imm32
 Store immediate as 32-bit.
-@item stdh [%d+offset16], imm32
+
+@item sth [rd + offset16], imm32
+@itemx *(u16 *) (rd + offset16) = imm32
 Store immediate as 16-bit.
-@item stdb [%d+offset16], imm32
+
+@item stb [rd + offset16], imm32
+@itemx *(u8 *) (rd + offset16) = imm32
 Store immediate as 8-bit.
 @end table
 
-@subsubsection Jump instructions
+@subsection Jump instructions
 
 eBPF provides the following compare-and-jump instructions, which
 compare the values of the two given registers, or the values of a
@@ -333,29 +577,78 @@ register and an immediate, and perform a branch in case the comparison
 holds true.
 
 @table @code
-@item ja %d,(%s|imm32),disp16
+@item ja disp16
+@itemx goto disp16
 Jump-always.
-@item jeq %d,(%s|imm32),disp16
+
+@item jal disp32
+@itemx gotol disp32
+Jump-always, long range.
+
+@item jeq rd, rs, disp16
+@itemx jeq rd, imm32, disp16
+@itemx if rd == rs goto disp16
+@itemx if rd == imm32 goto disp16
 Jump if equal, unsigned.
-@item jgt %d,(%s|imm32),disp16
+
+@item jgt rd, rs, disp16
+@itemx jgt rd, imm32, disp16
+@itemx if rd > rs goto disp16
+@itemx if rd > imm32 goto disp16
 Jump if greater, unsigned.
-@item jge %d,(%s|imm32),disp16
+
+@item jge rd, rs, disp16
+@itemx jge rd, imm32, disp16
+@itemx if rd >= rs goto disp16
+@itemx if rd >= imm32 goto disp16
 Jump if greater or equal.
-@item jlt %d,(%s|imm32),disp16
+
+@item jlt rd, rs, disp16
+@itemx jlt rd, imm32, disp16
+@itemx if rd < rs goto disp16
+@itemx if rd < imm32 goto disp16
 Jump if lesser.
-@item jle %d,(%s|imm32),disp16
+
+@item jle rd , rs, disp16
+@itemx jle rd, imm32, disp16
+@itemx if rd <= rs goto disp16
+@itemx if rd <= imm32 goto disp16
 Jump if lesser or equal.
-@item jset %d,(%s|imm32),disp16
+
+@item jset rd, rs, disp16
+@itemx jset rd, imm32, disp16
+@itemx if rd & rs goto disp16
+@itemx if rd & imm32 goto disp16
 Jump if signed equal.
-@item jne %d,(%s|imm32),disp16
+
+@item jne rd, rs, disp16
+@itemx jne rd, imm32, disp16
+@itemx if rd != rs goto disp16
+@itemx if rd != imm32 goto disp16
 Jump if not equal.
-@item jsgt %d,(%s|imm32),disp16
+
+@item jsgt rd, rs, disp16
+@itemx jsgt rd, imm32, disp16
+@itemx if rd s> rs goto disp16
+@itemx if rd s> imm32 goto disp16
 Jump if signed greater.
-@item jsge %d,(%s|imm32),disp16
+
+@item jsge rd, rs, disp16
+@itemx jsge rd, imm32, disp16
+@itemx if rd s>= rd goto disp16
+@itemx if rd s>= imm32 goto disp16
 Jump if signed greater or equal.
-@item jslt %d,(%s|imm32),disp16
+
+@item jslt rd, rs, disp16
+@itemx jslt rd, imm32, disp16
+@itemx if rd s< rs goto disp16
+@itemx if rd s< imm32 goto disp16
 Jump if signed lesser.
-@item jsle %d,(%s|imm32),disp16
+
+@item jsle rd, rs, disp16
+@itemx jsle rd, imm32, disp16
+@itemx if rd s<= rs goto disp16
+@itemx if rd s<= imm32 goto disp16
 Jump if signed lesser or equal.
 @end table
 
@@ -363,7 +656,8 @@ A call instruction is provided in order to perform calls to other eBPF
 functions, or to external kernel helpers:
 
 @table @code
-@item call (disp32|imm32)
+@item call disp32
+@item call imm32
 Jump and link to the offset @emph{disp32}, or to the kernel helper
 function identified by @emph{imm32}.
 @end table
@@ -375,203 +669,221 @@ Finally:
 Terminate the eBPF program.
 @end table
 
-@subsubsection Atomic instructions
+@subsection 32-bit jump instructions
 
-Atomic exchange-and-add instructions are provided in two flavors: one
-for swapping 64-bit quantities and another for 32-bit quantities.
+eBPF provides the following compare-and-jump instructions, which
+compare the 32-bit values of the two given registers, or the values of
+a register and an immediate, and perform a branch in case the
+comparison holds true.
+
+These instructions are only available in BPF v3 or later.
 
 @table @code
-@item xadddw [%d+offset16],%s
-Exchange-and-add a 64-bit value at the specified location.
-@item xaddw [%d+offset16],%s
-Exchange-and-add a 32-bit value at the specified location.
+@item jeq32 rd, rs, disp16
+@itemx jeq32 rd, imm32, disp16
+@itemx if rd == rs goto disp16
+@itemx if rd == imm32 goto disp16
+Jump if equal, unsigned.
+
+@item jgt32 rd, rs, disp16
+@itemx jgt32 rd, imm32, disp16
+@itemx if rd > rs goto disp16
+@itemx if rd > imm32 goto disp16
+Jump if greater, unsigned.
+
+@item jge32 rd, rs, disp16
+@itemx jge32 rd, imm32, disp16
+@itemx if rd >= rs goto disp16
+@itemx if rd >= imm32 goto disp16
+Jump if greater or equal.
+
+@item jlt32 rd, rs, disp16
+@itemx jlt32 rd, imm32, disp16
+@itemx if rd < rs goto disp16
+@itemx if rd < imm32 goto disp16
+Jump if lesser.
+
+@item jle32 rd , rs, disp16
+@itemx jle32 rd, imm32, disp16
+@itemx if rd <= rs goto disp16
+@itemx if rd <= imm32 goto disp16
+Jump if lesser or equal.
+
+@item jset32 rd, rs, disp16
+@itemx jset32 rd, imm32, disp16
+@itemx if rd & rs goto disp16
+@itemx if rd & imm32 goto disp16
+Jump if signed equal.
+
+@item jne32 rd, rs, disp16
+@itemx jne32 rd, imm32, disp16
+@itemx if rd != rs goto disp16
+@itemx if rd != imm32 goto disp16
+Jump if not equal.
+
+@item jsgt32 rd, rs, disp16
+@itemx jsgt32 rd, imm32, disp16
+@itemx if rd s> rs goto disp16
+@itemx if rd s> imm32 goto disp16
+Jump if signed greater.
+
+@item jsge32 rd, rs, disp16
+@itemx jsge32 rd, imm32, disp16
+@itemx if rd s>= rd goto disp16
+@itemx if rd s>= imm32 goto disp16
+Jump if signed greater or equal.
+
+@item jslt32 rd, rs, disp16
+@itemx jslt32 rd, imm32, disp16
+@itemx if rd s< rs goto disp16
+@itemx if rd s< imm32 goto disp16
+Jump if signed lesser.
+
+@item jsle32 rd, rs, disp16
+@itemx jsle32 rd, imm32, disp16
+@itemx if rd s<= rs goto disp16
+@itemx if rd s<= imm32 goto disp16
+Jump if signed lesser or equal.
 @end table
 
-@node BPF Pseudo-C Syntax
-@section BPF Pseudo-C Syntax
+@subsection Atomic instructions
 
-This assembler supports another syntax to denote BPF instructions,
-which is an alternative to the normal looking syntax documented above.
-This alternatative syntax, which we call @dfn{pseudo-C syntax}, is
-supported by the LLVM/clang integrated assembler.
+Atomic exchange instructions are provided in two flavors: one for
+compare-and-swap, one for unconditional exchange.
 
-This syntax is very unconventional, but we need to support it in order
-to support inline assembly in existing BPF programs.
+@table @code
+@item acmp [rd + offset16], rs
+@itemx r0 = cmpxchg_64 (rd + offset16, r0, rs)
+Atomic compare-and-swap.  Compares value in @code{r0} to value
+addressed by @code{rd + offset16}.  On match, the value addressed by
+@code{rd + offset16} is replaced with the value in @code{rs}.
+Regardless, the value that was at @code{rd + offset16} is
+zero-extended and loaded into @code{r0}.
 
-Note that the assembler is able to parse sources in which both
-syntaxes coexist: some instructions can use the usual assembly like
-syntax, whereas some other instructions in the same file can use the
-pseudo-C syntax.
-
-@subsubsection Pseudo-C Register Names
-
-All BPF registers are 64-bit long.  However, in the Pseudo-C syntax
-registers can be referred using different names, which actually
-reflect the kind of instruction they appear on:
-
-@table @samp
-@item r0..r9
-General-purpose register in an instruction that operates on its value
-as if it was a 64-bit value.
-@item w0..w9
-General-purpose register in an instruction that operates on its value
-as if it was a 32-bit value.
+@item axchg [rd + offset16], rs
+@itemx rs = xchg_64 (rd + offset16, rs)
+Atomic exchange.  Atomically exchanges the value in @code{rs} with
+the value addressed by @code{rd + offset16}.
 @end table
 
 @noindent
-Note that in the Pseudo-C syntax register names are not preceded by
-@code{%} characters.
-
-@subsubsection Arithmetic instructions
-
-In all the instructions below, the operations are 64-bit or 32-bit
-depending on the names used to refer to the registers.  For example
-@code{r3 += r2} will perform 64-bit addition, whereas @code{w3 += w2}
-will perform 32-bit addition.  Mixing register prefixes is an error,
-for example @code{r3 += w2}.
+The following instructions provide atomic arithmetic operations.
 
 @table @code
-@item dst_reg += (imm32|src_reg)
-Arithmetic addition.
-@item dst_reg -= (imm32|src_reg)
-Arithmetic subtraction.
-@item dst_reg *= (imm32|src_reg)
-Arithmetic multiplication.
-@item dst_reg /= (imm32|src_reg)
-Arithmetic integer unsigned division.
-@item dst_reg %= (imm32|src_reg)
-Arithmetic integer unsigned remainder.
-@item dst_reg &= (imm32|src_reg)
-Bit-wise ``and'' operation.
-@item dst_reg |= (imm32|src_reg)
-Bit-wise ``or'' operation.
-@item dst_reg ^= (imm32|src_reg)
-Bit-wise exclusive-or operation.
-@item dst_reg <<= (imm32|src_reg)
-Left shift, by whatever specified number of bits.
-@item dst_reg >>= (imm32|src_reg)
-Right logical shift, by whatever specified number of bits.
-@item dst_reg s>>= (imm32|src_reg)
-Right arithmetic shift, by whatever specified number of bits.
-@item dst_reg = (imm32|src_reg)
-Move the value in @code{imm32} or @code{src_reg} in @code{dst_reg}.
-@item dst_reg = -dst_reg
-Arithmetic negation.
+@item aadd [rd + offset16], rs
+@itemx lock *(u64 *)(rd + offset16) = rs
+Atomic add instruction.
+
+@item aor [rd + offset16], rs
+@itemx lock *(u64 *) (rd + offset16) |= rs
+Atomic or instruction.
+
+@item aand [rd + offset16], rs
+@itemx lock *(u64 *) (rd + offset16) &= rs
+Atomic and instruction.
+
+@item axor [rd + offset16], rs
+@itemx lock *(u64 *) (rd + offset16) ^= rs
+Atomic xor instruction.
 @end table
 
-@subsubsection Endianness conversion instructions
+@noindent
+The following variants perform fetching before the atomic operation.
 
 @table @code
-@item dst_reg = le16 src_reg
-Convert the 16-bit value in @code{src_reg} to little-endian.
-@item dst_reg = le32 src_reg
-Convert the 32-bit value in @code{src_reg} to little-endian.
-@item dst_reg = le64 src_reg
-Convert the 64-bit value in @code{src_reg} to little-endian.
-@item dst_reg = be16 src_reg
-Convert the 16-bit value in @code{src_reg} to big-endian.
-@item dst_reg = be32 src_reg
-Convert the 32-bit value in @code{src_reg} to big-endian.
-@item dst_reg = be64 src_reg
-Convert the 64-bit value in @code{src_reg} to big-endian.
+@item afadd [rd + offset16], rs
+@itemx rs = atomic_fetch_add ((u64 *)(rd + offset16), rs)
+Atomic fetch-and-add instruction.
+
+@item afor [rd + offset16], rs
+@itemx rs = atomic_fetch_or ((u64 *)(rd + offset16), rs)
+Atomic fetch-and-or instruction.
+
+@item afand [rd + offset16], rs
+@itemx rs = atomic_fetch_and ((u64 *)(rd + offset16), rs)
+Atomic fetch-and-and instruction.
+
+@item afxor [rd + offset16], rs
+@itemx rs = atomic_fetch_xor ((u64 *)(rd + offset16), rs)
+Atomic fetch-and-or instruction.
 @end table
 
-@subsubsection 64-bit load and pseudo maps
+The above instructions were introduced in the V3 of the BPF
+instruction set.  The following instruction is supported for backwards
+compatibility:
 
 @table @code
-@item dst_reg = imm64 ll
-Load the given signed 64-bit immediate, or pseudo map descriptor, to
-the destination register @code{dst_reg}.
+@item xadddw [rd + offset16], rs
+Alias to @code{aadd}.
 @end table
 
-@subsubsection Load instructions for socket filters
+@subsection 32-bit atomic instructions
+
+32-bit atomic exchange instructions are provided in two flavors: one
+for compare-and-swap, one for unconditional exchange.
 
 @table @code
-@item r0 = *(u8 *)skb[imm32]
-Absolute 8-bit load.
-@item r0 = *(u16 *)skb[imm32]
-Absolute 16-bit load.
-@item r0 = *(u32 *)skb[imm32]
-Absolute 32-bit load.
-@item r0 = *(u64 *)skb[imm32]
-Absolute 64-bit load.
-@item r0 = *(u8 *)skb[src_reg + imm32]
-Indirect 8-bit load.
-@item r0 = *(u16 *)skb[src_reg + imm32]
-Indirect 16-bit load.
-@item r0 = *(u32 *)skb[src_reg + imm32]
-Indirect 32-bit load.
-@item r0 = *(u64 *)skb[src_reg + imm32]
-Indirect 64-bit load.
+@item acmp32 [rd + offset16], rs
+@itemx w0 = cmpxchg32_32 (rd + offset16, w0, ws)
+Atomic compare-and-swap.  Compares value in @code{w0} to value
+addressed by @code{rd + offset16}.  On match, the value addressed by
+@code{rd + offset16} is replaced with the value in @code{ws}.
+Regardless, the value that was at @code{rd + offset16} is
+zero-extended and loaded into @code{w0}.
+
+@item axchg [rd + offset16], rs
+@itemx ws = xchg32_32 (rd + offset16, ws)
+Atomic exchange.  Atomically exchanges the value in @code{ws} with
+the value addressed by @code{rd + offset16}.
 @end table
 
-@subsubsection Generic load/store instructions
+@noindent
+The following instructions provide 32-bit atomic arithmetic operations.
 
 @table @code
-@item dst_reg = *(u8 *)(src_reg + offset16)
-Generic 8-bit load.
-@item dst_reg = *(u16 *)(src_reg + offset16)
-Generic 16-bit load.
-@item dst_reg = *(u32 *)(src_reg + offset16)
-Generic 32-bit load.
-@item dst_reg = *(u64 *)(src_reg + offset16)
-Generic 64-bit load.
-@c XXX stb
-@c NO PSEUDOC-SYNTAX
-@c XXX sth
-@c NO PSEUDOC-SYNTAX
-@c XXX stw
-@c NO PSEUDOC-SYNTAX
-@c XXX stdw
-@c NO PSEUDOC-SYNTAX
-@item *(u8 *)(dst_reg + offset16) = src_reg
-Generic 8-bit store.
-@item *(u16 *)(dst_reg + offset16) = src_reg
-Generic 16-bit store.
-@item *(u32 *)(dst_reg + offset16) = src_reg
-Generic 32-bit store.
-@item *(u64 *)(dst_reg + offset16) = src_reg
-Generic 64-bit store.
+@item aadd32 [rd + offset16], rs
+@itemx lock *(u32 *)(rd + offset16) = rs
+Atomic add instruction.
+
+@item aor32 [rd + offset16], rs
+@itemx lock *(u32 *) (rd + offset16) |= rs
+Atomic or instruction.
+
+@item aand32 [rd + offset16], rs
+@itemx lock *(u32 *) (rd + offset16) &= rs
+Atomic and instruction.
+
+@item axor32 [rd + offset16], rs
+@itemx lock *(u32 *) (rd + offset16) ^= rs
+Atomic xor instruction
 @end table
 
-@subsubsection Jump instructions
+@noindent
+The following variants perform fetching before the atomic operation.
 
 @table @code
-@item goto disp16
-Jump-always.
-@item if dst_reg == (imm32|src_reg) goto disp16
-Jump if equal.
-@item if dst_reg & (imm32|src_reg) goto disp16
-Jump if signed equal.
-@item if dst_reg != (imm32|src_reg) goto disp16
-Jump if not equal.
-@item if dst_reg > (imm32|src_reg) goto disp16
-Jump if bigger, unsigned.
-@item if dst_reg < (imm32|src_reg) goto disp16
-Jump if smaller, unsigned.
-@item if dst_reg >= (imm32|src_reg) goto disp16
-Jump if bigger or equal, unsigned.
-@item if dst_reg <= (imm32|src_reg) goto disp16
-Jump if smaller or equal, unsigned.
-@item if dst_reg s> (imm32|src_reg) goto disp16
-Jump if bigger, signed.
-@item if dst_reg s< (imm32|src_reg) goto disp16
-Jump if smaller, signed.
-@item if dst_reg s>= (imm32|src_reg) goto disp16
-Jump if bigger or equal, signed.
-@item if dst_reg s<= (imm32|src_reg) goto disp16
-Jump if smaller or equal, signed.
-@item call imm32
-Jump and link.
-@item exit
-Terminate the eBPF program.
+@item afadd32 [dr + offset16], rs
+@itemx ws = atomic_fetch_add ((u32 *)(rd + offset16), ws)
+Atomic fetch-and-add instruction.
+
+@item afor32 [dr + offset16], rs
+@itemx ws = atomic_fetch_or ((u32 *)(rd + offset16), ws)
+Atomic fetch-and-or instruction.
+
+@item afand32 [dr + offset16], rs
+@itemx ws = atomic_fetch_and ((u32 *)(rd + offset16), ws)
+Atomic fetch-and-and instruction.
+
+@item afxor32 [dr + offset16], rs
+@itemx ws = atomic_fetch_xor ((u32 *)(rd + offset16), ws)
+Atomic fetch-and-or instruction
 @end table
 
-@subsubsection Atomic instructions
+The above instructions were introduced in the V3 of the BPF
+instruction set.  The following instruction is supported for backwards
+compatibility:
 
 @table @code
-@item lock *(u64 *)(dst_reg + offset16) += src_reg
-Exchange-and-add a 64-bit value at the specified location.
-@item lock *(u32 *)(dst_reg + offset16) += src_reg
-Exchange-and-add a 32-bit value at the specified location.
+@item xaddw [rd + offset16], rs
+Alias to @code{aadd32}.
 @end table
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index 49b6e3b1abb..dd06282a5a3 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -207,6 +207,11 @@ accept various extension mnemonics.  For example,
 @code{rao_int},
 @code{fred},
 @code{lkgs},
+@code{avx_vnni_int16},
+@code{sha512},
+@code{sm3},
+@code{sm4},
+@code{pbndkb},
 @code{amx_int8},
 @code{amx_bf16},
 @code{amx_fp16},
@@ -1635,8 +1640,9 @@ supported on the CPU specified.  The choices for @var{cpu_type} are:
 @item @samp{.clwb} @tab @samp{.rdpid} @tab @samp{.ptwrite} @tab @samp{.ibt}
 @item @samp{.prefetchi} @tab @samp{.avx_ifma} @tab @samp{.avx_vnni_int8}
 @item @samp{.cmpccxadd} @tab @samp{.wrmsrns} @tab @samp{.msrlist}
-@item @samp{.avx_ne_convert} @tab @samp{.rao_int}
-@item @samp{.fred} @tab @samp{.lkgs}
+@item @samp{.avx_ne_convert} @tab @samp{.rao_int} @tab @samp{.fred} @tab @samp{.lkgs}
+@item @samp{.avx_vnni_int16} @tab @samp{.sha512} @tab @samp{.sm3} @tab @samp{.sm4}
+@item @samp{.pbndkb}
 @item @samp{.wbnoinvd} @tab @samp{.pconfig} @tab @samp{.waitpkg} @tab @samp{.cldemote}
 @item @samp{.shstk} @tab @samp{.gfni} @tab @samp{.vaes} @tab @samp{.vpclmulqdq}
 @item @samp{.movdiri} @tab @samp{.movdir64b} @tab @samp{.enqcmd} @tab @samp{.tsxldtrk}
diff --git a/gas/doc/local.mk b/gas/doc/local.mk
index de13e3ca8b8..c48c71115be 100644
--- a/gas/doc/local.mk
+++ b/gas/doc/local.mk
@@ -41,7 +41,7 @@ TEXI2DVI = texi2dvi -I "$(srcdir)/%D%" -I %D% -I "$(srcdir)/../libiberty" \
 
 %D%/asconfig.texi: %D%/$(CONFIG).texi %D%/$(am__dirstamp)
 	$(AM_V_at)rm -f %D%/asconfig.texi
-	$(AM_V_GEN)cp -p $(srcdir)/%D%/$(CONFIG).texi %D%/asconfig.texi
+	$(AM_V_GEN)cp $(srcdir)/%D%/$(CONFIG).texi %D%/asconfig.texi && touch -m -r $(srcdir)/%D%/$(CONFIG).texi %D%/asconfig.texi
 	$(AM_V_at)chmod u+w %D%/asconfig.texi
 
 CPU_DOCS = \
diff --git a/gas/po/gas.pot b/gas/po/gas.pot
index bf47483ba87..b10ed521e4c 100644
--- a/gas/po/gas.pot
+++ b/gas/po/gas.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-30 14:35+0100\n"
+"POT-Creation-Date: 2023-07-03 11:41+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/gas/symbols.c b/gas/symbols.c
index a335c316903..ea05801e356 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -3103,7 +3103,7 @@ symbol_begin (void)
 {
   symbol_lastP = NULL;
   symbol_rootP = NULL;		/* In case we have 0 symbols (!!)  */
-  sy_hash = htab_create_alloc (16, hash_symbol_entry, eq_symbol_entry,
+  sy_hash = htab_create_alloc (1024, hash_symbol_entry, eq_symbol_entry,
 			       NULL, xcalloc, free);
 
 #if defined (EMIT_SECTION_SYMBOLS) || !defined (RELOC_REQUIRES_SYMBOL)
diff --git a/gas/testsuite/gas/all/assign-bad-recursive.d b/gas/testsuite/gas/all/assign-bad-recursive.d
index 678be3e7c9f..aeec5d55f8a 100644
--- a/gas/testsuite/gas/all/assign-bad-recursive.d
+++ b/gas/testsuite/gas/all/assign-bad-recursive.d
@@ -1,5 +1,4 @@
 #name: bad recursive assignments
 #source: assign-bad-recursive.s
 #xfail: bfin-*-*
-#notarget: *bpf-*-*
 #error_output: assign-bad-recursive.l
diff --git a/gas/testsuite/gas/all/eqv-dot.d b/gas/testsuite/gas/all/eqv-dot.d
index d97db14995e..fc40b09f217 100644
--- a/gas/testsuite/gas/all/eqv-dot.d
+++ b/gas/testsuite/gas/all/eqv-dot.d
@@ -2,7 +2,7 @@
 #name: eqv involving dot
 # bfin doesn't support 'symbol = expression'
 # tic30 and tic4x have 4 octets per byte, tic54x has 2 octets per byte
-#notarget: bfin-*-* *c30-*-* *c4x-*-* *c54x-*-* *bpf-*-*
+#notarget: bfin-*-* *c30-*-* *c4x-*-* *c54x-*-*
 # linkrelax targets don't handle equivalence expressions well (nor any
 # other forward expression).  mep uses complex relocs
 #xfail: am33_2.0-*-* crx-*-* h8300-*-* mn10200-*-* mn10300-*-* mep-*-*
diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp
index bab5a6c7ba5..007408f03d8 100644
--- a/gas/testsuite/gas/all/gas.exp
+++ b/gas/testsuite/gas/all/gas.exp
@@ -105,7 +105,7 @@ if { [istarget "pdp11-*-*"] } then {
     run_dump_test eqv-dot
 }
 
-if { ![istarget "bfin-*-*"] && ![istarget "bpf-*-*"]  } then {
+if { ![istarget "bfin-*-*"] } then {
     gas_test "assign-ok.s" "" "" "== assignment support"
 }
 gas_test_error "assign-bad.s" "" "== assignment for symbol already set"
@@ -403,8 +403,7 @@ if {  ([istarget "i*86-*-*pe*"] && ![istarget "i*86-*-openbsd*"]) \
   gas_test "fastcall.s" ""   "" "fastcall labels"
 }
 
-if { ![istarget "bfin-*-*"] && ![istarget "nds32*-*-*"] \
-    && ![istarget "bpf-*-*"] } then {
+if { ![istarget "bfin-*-*"] && ![istarget "nds32*-*-*"] } then {
     run_dump_test assign
 }
 run_dump_test sleb128
diff --git a/gas/testsuite/gas/bpf/alu-be-pseudoc.d b/gas/testsuite/gas/bpf/alu-be-pseudoc.d
index 0355d196d77..0e9df07eb15 100644
--- a/gas/testsuite/gas/bpf/alu-be-pseudoc.d
+++ b/gas/testsuite/gas/bpf/alu-be-pseudoc.d
@@ -1,5 +1,72 @@
-#as: --EB
+#as: -EB -mdialect=pseudoc
 #source: alu-pseudoc.s
-#objdump: -dr
-#dump: alu-be.dump
+#objdump: -dr -M hex,pseudoc
 #name: eBPF ALU64 instructions, big endian, pseudoc syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	07 20 00 00 00 00 02 9a 	r2\+=0x29a
+   8:	07 30 00 00 ff ff fd 66 	r3\+=0xfffffd66
+  10:	07 40 00 00 7e ad be ef 	r4\+=0x7eadbeef
+  18:	0f 56 00 00 00 00 00 00 	r5\+=r6
+  20:	17 20 00 00 00 00 02 9a 	r2-=0x29a
+  28:	17 30 00 00 ff ff fd 66 	r3-=0xfffffd66
+  30:	17 40 00 00 7e ad be ef 	r4-=0x7eadbeef
+  38:	1f 56 00 00 00 00 00 00 	r5-=r6
+  40:	27 20 00 00 00 00 02 9a 	r2\*=0x29a
+  48:	27 30 00 00 ff ff fd 66 	r3\*=0xfffffd66
+  50:	27 40 00 00 7e ad be ef 	r4\*=0x7eadbeef
+  58:	2f 56 00 00 00 00 00 00 	r5\*=r6
+  60:	37 20 00 00 00 00 02 9a 	r2/=0x29a
+  68:	37 30 00 00 ff ff fd 66 	r3/=0xfffffd66
+  70:	37 40 00 00 7e ad be ef 	r4/=0x7eadbeef
+  78:	3f 56 00 00 00 00 00 00 	r5/=r6
+  80:	47 20 00 00 00 00 02 9a 	r2|=0x29a
+  88:	47 30 00 00 ff ff fd 66 	r3|=0xfffffd66
+  90:	47 40 00 00 7e ad be ef 	r4|=0x7eadbeef
+  98:	4f 56 00 00 00 00 00 00 	r5|=r6
+  a0:	57 20 00 00 00 00 02 9a 	r2&=0x29a
+  a8:	57 30 00 00 ff ff fd 66 	r3&=0xfffffd66
+  b0:	57 40 00 00 7e ad be ef 	r4&=0x7eadbeef
+  b8:	5f 56 00 00 00 00 00 00 	r5&=r6
+  c0:	67 20 00 00 00 00 02 9a 	r2<<=0x29a
+  c8:	67 30 00 00 ff ff fd 66 	r3<<=0xfffffd66
+  d0:	67 40 00 00 7e ad be ef 	r4<<=0x7eadbeef
+  d8:	6f 56 00 00 00 00 00 00 	r5<<=r6
+  e0:	77 20 00 00 00 00 02 9a 	r2>>=0x29a
+  e8:	77 30 00 00 ff ff fd 66 	r3>>=0xfffffd66
+  f0:	77 40 00 00 7e ad be ef 	r4>>=0x7eadbeef
+  f8:	7f 56 00 00 00 00 00 00 	r5>>=r6
+ 100:	97 20 00 00 00 00 02 9a 	r2%=0x29a
+ 108:	97 30 00 00 ff ff fd 66 	r3%=0xfffffd66
+ 110:	97 40 00 00 7e ad be ef 	r4%=0x7eadbeef
+ 118:	9f 56 00 00 00 00 00 00 	r5%=r6
+ 120:	a7 20 00 00 00 00 02 9a 	r2\^=0x29a
+ 128:	a7 30 00 00 ff ff fd 66 	r3\^=0xfffffd66
+ 130:	a7 40 00 00 7e ad be ef 	r4\^=0x7eadbeef
+ 138:	af 56 00 00 00 00 00 00 	r5\^=r6
+ 140:	b7 20 00 00 00 00 02 9a 	r2=0x29a
+ 148:	b7 30 00 00 ff ff fd 66 	r3=0xfffffd66
+ 150:	b7 40 00 00 7e ad be ef 	r4=0x7eadbeef
+ 158:	bf 56 00 00 00 00 00 00 	r5=r6
+ 160:	c7 20 00 00 00 00 02 9a 	r2 s>>=0x29a
+ 168:	c7 30 00 00 ff ff fd 66 	r3 s>>=0xfffffd66
+ 170:	c7 40 00 00 7e ad be ef 	r4 s>>=0x7eadbeef
+ 178:	cf 56 00 00 00 00 00 00 	r5 s>>=r6
+ 180:	8f 20 00 00 00 00 00 00 	r2=-r2
+ 188:	d4 90 00 00 00 00 00 10 	r9=le16 r9
+ 190:	d4 80 00 00 00 00 00 20 	r8=le32 r8
+ 198:	d4 70 00 00 00 00 00 40 	r7=le64 r7
+ 1a0:	dc 60 00 00 00 00 00 10 	r6=be16 r6
+ 1a8:	dc 50 00 00 00 00 00 20 	r5=be32 r5
+ 1b0:	dc 40 00 00 00 00 00 40 	r4=be64 r4
+ 1b8:	bf 12 00 08 00 00 00 00 	r1 = \(s8\) r2
+ 1c0:	bf 12 00 10 00 00 00 00 	r1 = \(s16\) r2
+ 1c8:	bf 12 00 20 00 00 00 00 	r1 = \(s32\) r2
+ 1d0:	d7 10 00 00 00 00 00 10 	r1 = bswap16 r1
+ 1d8:	d7 20 00 00 00 00 00 20 	r2 = bswap32 r2
+ 1e0:	d7 30 00 00 00 00 00 40 	r3 = bswap64 r3
+ 1e8:	b7 10 00 00 ff ff f1 00 	r1=0xfffff100
\ No newline at end of file
diff --git a/gas/testsuite/gas/bpf/alu-be.d b/gas/testsuite/gas/bpf/alu-be.d
index afd2a6cfd6d..b961f3fe474 100644
--- a/gas/testsuite/gas/bpf/alu-be.d
+++ b/gas/testsuite/gas/bpf/alu-be.d
@@ -1,5 +1,72 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: alu.s
-#objdump: -dr
-#dump: alu-be.dump
-#name: eBPF ALU64 instructions, big endian, normal syntax
+#objdump: -dr -M hex
+#name: eBPF ALU instructions, big endian, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	07 20 00 00 00 00 02 9a 	add %r2,0x29a
+   8:	07 30 00 00 ff ff fd 66 	add %r3,0xfffffd66
+  10:	07 40 00 00 7e ad be ef 	add %r4,0x7eadbeef
+  18:	0f 56 00 00 00 00 00 00 	add %r5,%r6
+  20:	17 20 00 00 00 00 02 9a 	sub %r2,0x29a
+  28:	17 30 00 00 ff ff fd 66 	sub %r3,0xfffffd66
+  30:	17 40 00 00 7e ad be ef 	sub %r4,0x7eadbeef
+  38:	1f 56 00 00 00 00 00 00 	sub %r5,%r6
+  40:	27 20 00 00 00 00 02 9a 	mul %r2,0x29a
+  48:	27 30 00 00 ff ff fd 66 	mul %r3,0xfffffd66
+  50:	27 40 00 00 7e ad be ef 	mul %r4,0x7eadbeef
+  58:	2f 56 00 00 00 00 00 00 	mul %r5,%r6
+  60:	37 20 00 00 00 00 02 9a 	div %r2,0x29a
+  68:	37 30 00 00 ff ff fd 66 	div %r3,0xfffffd66
+  70:	37 40 00 00 7e ad be ef 	div %r4,0x7eadbeef
+  78:	3f 56 00 00 00 00 00 00 	div %r5,%r6
+  80:	47 20 00 00 00 00 02 9a 	or %r2,0x29a
+  88:	47 30 00 00 ff ff fd 66 	or %r3,0xfffffd66
+  90:	47 40 00 00 7e ad be ef 	or %r4,0x7eadbeef
+  98:	4f 56 00 00 00 00 00 00 	or %r5,%r6
+  a0:	57 20 00 00 00 00 02 9a 	and %r2,0x29a
+  a8:	57 30 00 00 ff ff fd 66 	and %r3,0xfffffd66
+  b0:	57 40 00 00 7e ad be ef 	and %r4,0x7eadbeef
+  b8:	5f 56 00 00 00 00 00 00 	and %r5,%r6
+  c0:	67 20 00 00 00 00 02 9a 	lsh %r2,0x29a
+  c8:	67 30 00 00 ff ff fd 66 	lsh %r3,0xfffffd66
+  d0:	67 40 00 00 7e ad be ef 	lsh %r4,0x7eadbeef
+  d8:	6f 56 00 00 00 00 00 00 	lsh %r5,%r6
+  e0:	77 20 00 00 00 00 02 9a 	rsh %r2,0x29a
+  e8:	77 30 00 00 ff ff fd 66 	rsh %r3,0xfffffd66
+  f0:	77 40 00 00 7e ad be ef 	rsh %r4,0x7eadbeef
+  f8:	7f 56 00 00 00 00 00 00 	rsh %r5,%r6
+ 100:	97 20 00 00 00 00 02 9a 	mod %r2,0x29a
+ 108:	97 30 00 00 ff ff fd 66 	mod %r3,0xfffffd66
+ 110:	97 40 00 00 7e ad be ef 	mod %r4,0x7eadbeef
+ 118:	9f 56 00 00 00 00 00 00 	mod %r5,%r6
+ 120:	a7 20 00 00 00 00 02 9a 	xor %r2,0x29a
+ 128:	a7 30 00 00 ff ff fd 66 	xor %r3,0xfffffd66
+ 130:	a7 40 00 00 7e ad be ef 	xor %r4,0x7eadbeef
+ 138:	af 56 00 00 00 00 00 00 	xor %r5,%r6
+ 140:	b7 20 00 00 00 00 02 9a 	mov %r2,0x29a
+ 148:	b7 30 00 00 ff ff fd 66 	mov %r3,0xfffffd66
+ 150:	b7 40 00 00 7e ad be ef 	mov %r4,0x7eadbeef
+ 158:	bf 56 00 00 00 00 00 00 	mov %r5,%r6
+ 160:	c7 20 00 00 00 00 02 9a 	arsh %r2,0x29a
+ 168:	c7 30 00 00 ff ff fd 66 	arsh %r3,0xfffffd66
+ 170:	c7 40 00 00 7e ad be ef 	arsh %r4,0x7eadbeef
+ 178:	cf 56 00 00 00 00 00 00 	arsh %r5,%r6
+ 180:	8f 20 00 00 00 00 00 00 	neg %r2
+ 188:	d4 90 00 00 00 00 00 10 	endle %r9,16
+ 190:	d4 80 00 00 00 00 00 20 	endle %r8,32
+ 198:	d4 70 00 00 00 00 00 40 	endle %r7,64
+ 1a0:	dc 60 00 00 00 00 00 10 	endbe %r6,16
+ 1a8:	dc 50 00 00 00 00 00 20 	endbe %r5,32
+ 1b0:	dc 40 00 00 00 00 00 40 	endbe %r4,64
+ 1b8:	bf 12 00 08 00 00 00 00 	movs %r1,%r2,8
+ 1c0:	bf 12 00 10 00 00 00 00 	movs %r1,%r2,16
+ 1c8:	bf 12 00 20 00 00 00 00 	movs %r1,%r2,32
+ 1d0:	d7 10 00 00 00 00 00 10 	bswap %r1,16
+ 1d8:	d7 20 00 00 00 00 00 20 	bswap %r2,32
+ 1e0:	d7 30 00 00 00 00 00 40 	bswap %r3,64
+ 1e8:	87 10 00 00 00 00 0f 00 	neg %r1,0xf00
\ No newline at end of file
diff --git a/gas/testsuite/gas/bpf/alu-pseudoc.d b/gas/testsuite/gas/bpf/alu-pseudoc.d
index df130699b4f..bbd222c83ae 100644
--- a/gas/testsuite/gas/bpf/alu-pseudoc.d
+++ b/gas/testsuite/gas/bpf/alu-pseudoc.d
@@ -1,5 +1,72 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M hex,pseudoc
 #source: alu-pseudoc.s
-#dump: alu.dump
-#name: eBPF ALU64 instructions, pseudo-c syntax
+#name: eBPF ALU instructions, pseudo-c syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	07 02 00 00 9a 02 00 00 	r2\+=0x29a
+   8:	07 03 00 00 66 fd ff ff 	r3\+=0xfffffd66
+  10:	07 04 00 00 ef be ad 7e 	r4\+=0x7eadbeef
+  18:	0f 65 00 00 00 00 00 00 	r5\+=r6
+  20:	17 02 00 00 9a 02 00 00 	r2-=0x29a
+  28:	17 03 00 00 66 fd ff ff 	r3-=0xfffffd66
+  30:	17 04 00 00 ef be ad 7e 	r4-=0x7eadbeef
+  38:	1f 65 00 00 00 00 00 00 	r5-=r6
+  40:	27 02 00 00 9a 02 00 00 	r2\*=0x29a
+  48:	27 03 00 00 66 fd ff ff 	r3\*=0xfffffd66
+  50:	27 04 00 00 ef be ad 7e 	r4\*=0x7eadbeef
+  58:	2f 65 00 00 00 00 00 00 	r5\*=r6
+  60:	37 02 00 00 9a 02 00 00 	r2/=0x29a
+  68:	37 03 00 00 66 fd ff ff 	r3/=0xfffffd66
+  70:	37 04 00 00 ef be ad 7e 	r4/=0x7eadbeef
+  78:	3f 65 00 00 00 00 00 00 	r5/=r6
+  80:	47 02 00 00 9a 02 00 00 	r2|=0x29a
+  88:	47 03 00 00 66 fd ff ff 	r3|=0xfffffd66
+  90:	47 04 00 00 ef be ad 7e 	r4|=0x7eadbeef
+  98:	4f 65 00 00 00 00 00 00 	r5|=r6
+  a0:	57 02 00 00 9a 02 00 00 	r2&=0x29a
+  a8:	57 03 00 00 66 fd ff ff 	r3&=0xfffffd66
+  b0:	57 04 00 00 ef be ad 7e 	r4&=0x7eadbeef
+  b8:	5f 65 00 00 00 00 00 00 	r5&=r6
+  c0:	67 02 00 00 9a 02 00 00 	r2<<=0x29a
+  c8:	67 03 00 00 66 fd ff ff 	r3<<=0xfffffd66
+  d0:	67 04 00 00 ef be ad 7e 	r4<<=0x7eadbeef
+  d8:	6f 65 00 00 00 00 00 00 	r5<<=r6
+  e0:	77 02 00 00 9a 02 00 00 	r2>>=0x29a
+  e8:	77 03 00 00 66 fd ff ff 	r3>>=0xfffffd66
+  f0:	77 04 00 00 ef be ad 7e 	r4>>=0x7eadbeef
+  f8:	7f 65 00 00 00 00 00 00 	r5>>=r6
+ 100:	97 02 00 00 9a 02 00 00 	r2%=0x29a
+ 108:	97 03 00 00 66 fd ff ff 	r3%=0xfffffd66
+ 110:	97 04 00 00 ef be ad 7e 	r4%=0x7eadbeef
+ 118:	9f 65 00 00 00 00 00 00 	r5%=r6
+ 120:	a7 02 00 00 9a 02 00 00 	r2\^=0x29a
+ 128:	a7 03 00 00 66 fd ff ff 	r3\^=0xfffffd66
+ 130:	a7 04 00 00 ef be ad 7e 	r4\^=0x7eadbeef
+ 138:	af 65 00 00 00 00 00 00 	r5\^=r6
+ 140:	b7 02 00 00 9a 02 00 00 	r2=0x29a
+ 148:	b7 03 00 00 66 fd ff ff 	r3=0xfffffd66
+ 150:	b7 04 00 00 ef be ad 7e 	r4=0x7eadbeef
+ 158:	bf 65 00 00 00 00 00 00 	r5=r6
+ 160:	c7 02 00 00 9a 02 00 00 	r2 s>>=0x29a
+ 168:	c7 03 00 00 66 fd ff ff 	r3 s>>=0xfffffd66
+ 170:	c7 04 00 00 ef be ad 7e 	r4 s>>=0x7eadbeef
+ 178:	cf 65 00 00 00 00 00 00 	r5 s>>=r6
+ 180:	8f 02 00 00 00 00 00 00 	r2=-r2
+ 188:	d4 09 00 00 10 00 00 00 	r9=le16 r9
+ 190:	d4 08 00 00 20 00 00 00 	r8=le32 r8
+ 198:	d4 07 00 00 40 00 00 00 	r7=le64 r7
+ 1a0:	dc 06 00 00 10 00 00 00 	r6=be16 r6
+ 1a8:	dc 05 00 00 20 00 00 00 	r5=be32 r5
+ 1b0:	dc 04 00 00 40 00 00 00 	r4=be64 r4
+ 1b8:	bf 21 08 00 00 00 00 00 	r1 = \(s8\) r2
+ 1c0:	bf 21 10 00 00 00 00 00 	r1 = \(s16\) r2
+ 1c8:	bf 21 20 00 00 00 00 00 	r1 = \(s32\) r2
+ 1d0:	d7 01 00 00 10 00 00 00 	r1 = bswap16 r1
+ 1d8:	d7 02 00 00 20 00 00 00 	r2 = bswap32 r2
+ 1e0:	d7 03 00 00 40 00 00 00 	r3 = bswap64 r3
+ 1e8:	b7 01 00 00 00 f1 ff ff 	r1=0xfffff100
diff --git a/gas/testsuite/gas/bpf/alu-pseudoc.s b/gas/testsuite/gas/bpf/alu-pseudoc.s
index 0f79929ea0d..abd8ddcc38e 100644
--- a/gas/testsuite/gas/bpf/alu-pseudoc.s
+++ b/gas/testsuite/gas/bpf/alu-pseudoc.s
@@ -48,4 +48,20 @@
 	r3 s>>= -666
 	r4 s>>= 2125315823
 	r5 s>>= r6
-	r2 = -r2
+	r2 = - r2
+	r9 = le16 r9
+	r8 = le32 r8
+	r7 = le64 r7
+	r6 = be16 r6
+	r5 = be32 r5
+	r4 = be64 r4
+        r1 = (s8) r2
+        r1 = (s16) r2
+        r1 = (s32) r2
+        r1 = bswap16 r1
+        r2 = bswap32 r2
+        r3 = bswap64 r3
+        ;; Note that the next instruction gets processed by the GAS
+        ;; preprocessor into r1 =-0xf00, which parses into a %dr = %i32
+        ;; instruction instead of a neg :/
+	r1 = - 0xf00
diff --git a/gas/testsuite/gas/bpf/alu.d b/gas/testsuite/gas/bpf/alu.d
index 764ae440d8f..e4afdab0d50 100644
--- a/gas/testsuite/gas/bpf/alu.d
+++ b/gas/testsuite/gas/bpf/alu.d
@@ -1,5 +1,72 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M hex
 #source: alu.s
-#dump: alu.dump
-#name: eBPF ALU64 instructions, normal syntax
+#name: eBPF ALU instructions, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	07 02 00 00 9a 02 00 00 	add %r2,0x29a
+   8:	07 03 00 00 66 fd ff ff 	add %r3,0xfffffd66
+  10:	07 04 00 00 ef be ad 7e 	add %r4,0x7eadbeef
+  18:	0f 65 00 00 00 00 00 00 	add %r5,%r6
+  20:	17 02 00 00 9a 02 00 00 	sub %r2,0x29a
+  28:	17 03 00 00 66 fd ff ff 	sub %r3,0xfffffd66
+  30:	17 04 00 00 ef be ad 7e 	sub %r4,0x7eadbeef
+  38:	1f 65 00 00 00 00 00 00 	sub %r5,%r6
+  40:	27 02 00 00 9a 02 00 00 	mul %r2,0x29a
+  48:	27 03 00 00 66 fd ff ff 	mul %r3,0xfffffd66
+  50:	27 04 00 00 ef be ad 7e 	mul %r4,0x7eadbeef
+  58:	2f 65 00 00 00 00 00 00 	mul %r5,%r6
+  60:	37 02 00 00 9a 02 00 00 	div %r2,0x29a
+  68:	37 03 00 00 66 fd ff ff 	div %r3,0xfffffd66
+  70:	37 04 00 00 ef be ad 7e 	div %r4,0x7eadbeef
+  78:	3f 65 00 00 00 00 00 00 	div %r5,%r6
+  80:	47 02 00 00 9a 02 00 00 	or %r2,0x29a
+  88:	47 03 00 00 66 fd ff ff 	or %r3,0xfffffd66
+  90:	47 04 00 00 ef be ad 7e 	or %r4,0x7eadbeef
+  98:	4f 65 00 00 00 00 00 00 	or %r5,%r6
+  a0:	57 02 00 00 9a 02 00 00 	and %r2,0x29a
+  a8:	57 03 00 00 66 fd ff ff 	and %r3,0xfffffd66
+  b0:	57 04 00 00 ef be ad 7e 	and %r4,0x7eadbeef
+  b8:	5f 65 00 00 00 00 00 00 	and %r5,%r6
+  c0:	67 02 00 00 9a 02 00 00 	lsh %r2,0x29a
+  c8:	67 03 00 00 66 fd ff ff 	lsh %r3,0xfffffd66
+  d0:	67 04 00 00 ef be ad 7e 	lsh %r4,0x7eadbeef
+  d8:	6f 65 00 00 00 00 00 00 	lsh %r5,%r6
+  e0:	77 02 00 00 9a 02 00 00 	rsh %r2,0x29a
+  e8:	77 03 00 00 66 fd ff ff 	rsh %r3,0xfffffd66
+  f0:	77 04 00 00 ef be ad 7e 	rsh %r4,0x7eadbeef
+  f8:	7f 65 00 00 00 00 00 00 	rsh %r5,%r6
+ 100:	97 02 00 00 9a 02 00 00 	mod %r2,0x29a
+ 108:	97 03 00 00 66 fd ff ff 	mod %r3,0xfffffd66
+ 110:	97 04 00 00 ef be ad 7e 	mod %r4,0x7eadbeef
+ 118:	9f 65 00 00 00 00 00 00 	mod %r5,%r6
+ 120:	a7 02 00 00 9a 02 00 00 	xor %r2,0x29a
+ 128:	a7 03 00 00 66 fd ff ff 	xor %r3,0xfffffd66
+ 130:	a7 04 00 00 ef be ad 7e 	xor %r4,0x7eadbeef
+ 138:	af 65 00 00 00 00 00 00 	xor %r5,%r6
+ 140:	b7 02 00 00 9a 02 00 00 	mov %r2,0x29a
+ 148:	b7 03 00 00 66 fd ff ff 	mov %r3,0xfffffd66
+ 150:	b7 04 00 00 ef be ad 7e 	mov %r4,0x7eadbeef
+ 158:	bf 65 00 00 00 00 00 00 	mov %r5,%r6
+ 160:	c7 02 00 00 9a 02 00 00 	arsh %r2,0x29a
+ 168:	c7 03 00 00 66 fd ff ff 	arsh %r3,0xfffffd66
+ 170:	c7 04 00 00 ef be ad 7e 	arsh %r4,0x7eadbeef
+ 178:	cf 65 00 00 00 00 00 00 	arsh %r5,%r6
+ 180:	8f 02 00 00 00 00 00 00 	neg %r2
+ 188:	d4 09 00 00 10 00 00 00 	endle %r9,16
+ 190:	d4 08 00 00 20 00 00 00 	endle %r8,32
+ 198:	d4 07 00 00 40 00 00 00 	endle %r7,64
+ 1a0:	dc 06 00 00 10 00 00 00 	endbe %r6,16
+ 1a8:	dc 05 00 00 20 00 00 00 	endbe %r5,32
+ 1b0:	dc 04 00 00 40 00 00 00 	endbe %r4,64
+ 1b8:	bf 21 08 00 00 00 00 00 	movs %r1,%r2,8
+ 1c0:	bf 21 10 00 00 00 00 00 	movs %r1,%r2,16
+ 1c8:	bf 21 20 00 00 00 00 00 	movs %r1,%r2,32
+ 1d0:	d7 01 00 00 10 00 00 00 	bswap %r1,16
+ 1d8:	d7 02 00 00 20 00 00 00 	bswap %r2,32
+ 1e0:	d7 03 00 00 40 00 00 00 	bswap %r3,64
+ 1e8:	87 01 00 00 00 0f 00 00 	neg %r1,0xf00
\ No newline at end of file
diff --git a/gas/testsuite/gas/bpf/alu.s b/gas/testsuite/gas/bpf/alu.s
index 18e60d5eaed..d0bf5600209 100644
--- a/gas/testsuite/gas/bpf/alu.s
+++ b/gas/testsuite/gas/bpf/alu.s
@@ -49,3 +49,16 @@
         arsh	%r4, 0x7eadbeef
         arsh	%r5, %r6
         neg     %r2
+	endle	%r9,16
+        endle	%r8,32
+        endle	%r7,64
+        endbe	%r6,16
+        endbe	%r5,32
+        endbe	%r4,64
+        movs    %r1,%r2,8
+        movs    %r1,%r2,16
+        movs    %r1,%r2,32
+        bswap   %r1, 16
+        bswap   %r2, 32
+        bswap   %r3, 64
+        neg     %r1, 0xf00
diff --git a/gas/testsuite/gas/bpf/alu32-be-pseudoc.d b/gas/testsuite/gas/bpf/alu32-be-pseudoc.d
index 396d7d40603..7f5e70071fc 100644
--- a/gas/testsuite/gas/bpf/alu32-be-pseudoc.d
+++ b/gas/testsuite/gas/bpf/alu32-be-pseudoc.d
@@ -1,5 +1,63 @@
-#as: --EB
-#objdump: -dr
+#as: -EB -mdialect=pseudoc
+#objdump: -dr -M hex,pseudoc
 #source: alu32-pseudoc.s
-#dump: alu32-be.dump
-#name: eBPF ALU instructions, big-endian, pseudo-c syntax
+#name: eBPF ALU32 instructions, big-endian, pseudo-c syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	04 20 00 00 00 00 02 9a 	w2\+=0x29a
+   8:	04 30 00 00 ff ff fd 66 	w3\+=0xfffffd66
+  10:	04 40 00 00 7e ad be ef 	w4\+=0x7eadbeef
+  18:	0c 56 00 00 00 00 00 00 	w5\+=w6
+  20:	14 20 00 00 00 00 02 9a 	w2-=0x29a
+  28:	14 30 00 00 ff ff fd 66 	w3-=0xfffffd66
+  30:	14 40 00 00 7e ad be ef 	w4-=0x7eadbeef
+  38:	1c 56 00 00 00 00 00 00 	w5-=w6
+  40:	24 20 00 00 00 00 02 9a 	w2\*=0x29a
+  48:	24 30 00 00 ff ff fd 66 	w3\*=0xfffffd66
+  50:	24 40 00 00 7e ad be ef 	w4\*=0x7eadbeef
+  58:	2c 56 00 00 00 00 00 00 	w5\*=w6
+  60:	34 20 00 00 00 00 02 9a 	w2/=0x29a
+  68:	34 30 00 00 ff ff fd 66 	w3/=0xfffffd66
+  70:	34 40 00 00 7e ad be ef 	w4/=0x7eadbeef
+  78:	3c 56 00 00 00 00 00 00 	w5/=w6
+  80:	44 20 00 00 00 00 02 9a 	w2|=0x29a
+  88:	44 30 00 00 ff ff fd 66 	w3|=0xfffffd66
+  90:	44 40 00 00 7e ad be ef 	w4|=0x7eadbeef
+  98:	4c 56 00 00 00 00 00 00 	w5|=w6
+  a0:	54 20 00 00 00 00 02 9a 	w2&=0x29a
+  a8:	54 30 00 00 ff ff fd 66 	w3&=0xfffffd66
+  b0:	54 40 00 00 7e ad be ef 	w4&=0x7eadbeef
+  b8:	5c 56 00 00 00 00 00 00 	w5&=w6
+  c0:	64 20 00 00 00 00 02 9a 	w2<<=0x29a
+  c8:	64 30 00 00 ff ff fd 66 	w3<<=0xfffffd66
+  d0:	64 40 00 00 7e ad be ef 	w4<<=0x7eadbeef
+  d8:	6c 56 00 00 00 00 00 00 	w5<<=w6
+  e0:	74 20 00 00 00 00 02 9a 	w2>>=0x29a
+  e8:	74 30 00 00 ff ff fd 66 	w3>>=0xfffffd66
+  f0:	74 40 00 00 7e ad be ef 	w4>>=0x7eadbeef
+  f8:	7c 56 00 00 00 00 00 00 	w5>>=w6
+ 100:	94 20 00 00 00 00 02 9a 	w2%=0x29a
+ 108:	94 30 00 00 ff ff fd 66 	w3%=0xfffffd66
+ 110:	94 40 00 00 7e ad be ef 	w4%=0x7eadbeef
+ 118:	9c 56 00 00 00 00 00 00 	w5%=w6
+ 120:	a4 20 00 00 00 00 02 9a 	w2\^=0x29a
+ 128:	a4 30 00 00 ff ff fd 66 	w3\^=0xfffffd66
+ 130:	a4 40 00 00 7e ad be ef 	w4\^=0x7eadbeef
+ 138:	ac 56 00 00 00 00 00 00 	w5\^=w6
+ 140:	b4 20 00 00 00 00 02 9a 	w2=0x29a
+ 148:	b4 30 00 00 ff ff fd 66 	w3=0xfffffd66
+ 150:	b4 40 00 00 7e ad be ef 	w4=0x7eadbeef
+ 158:	bc 56 00 00 00 00 00 00 	w5=w6
+ 160:	c4 20 00 00 00 00 02 9a 	w2 s>>=0x29a
+ 168:	c4 30 00 00 ff ff fd 66 	w3 s>>=0xfffffd66
+ 170:	c4 40 00 00 7e ad be ef 	w4 s>>=0x7eadbeef
+ 178:	cc 56 00 00 00 00 00 00 	w5 s>>=w6
+ 180:	8c 20 00 00 00 00 00 00 	w2=-w2
+ 188:	bc 12 00 08 00 00 00 00 	w1 = \(s8\) w2
+ 190:	bc 12 00 10 00 00 00 00 	w1 = \(s16\) w2
+ 198:	bc 12 00 20 00 00 00 00 	w1 = \(s32\) w2
+ 1a0:	b4 10 00 00 ff ff f1 00 	w1=0xfffff100
\ No newline at end of file
diff --git a/gas/testsuite/gas/bpf/alu32-be.d b/gas/testsuite/gas/bpf/alu32-be.d
index 6ed9e556bf4..9799664b27a 100644
--- a/gas/testsuite/gas/bpf/alu32-be.d
+++ b/gas/testsuite/gas/bpf/alu32-be.d
@@ -1,5 +1,63 @@
-#as: --EB
-#objdump: -dr
-#source: alu32-pseudoc.s
-#dump: alu32-be.dump
-#name: eBPF ALU instructions, big-endian, normal syntax
+#as: -EB -mdialect=normal
+#objdump: -dr -M hex
+#source: alu32.s
+#name: eBPF ALU32 instructions, big-endian, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	04 20 00 00 00 00 02 9a 	add32 %r2,0x29a
+   8:	04 30 00 00 ff ff fd 66 	add32 %r3,0xfffffd66
+  10:	04 40 00 00 7e ad be ef 	add32 %r4,0x7eadbeef
+  18:	0c 56 00 00 00 00 00 00 	add32 %r5,%r6
+  20:	14 20 00 00 00 00 02 9a 	sub32 %r2,0x29a
+  28:	14 30 00 00 ff ff fd 66 	sub32 %r3,0xfffffd66
+  30:	14 40 00 00 7e ad be ef 	sub32 %r4,0x7eadbeef
+  38:	1c 56 00 00 00 00 00 00 	sub32 %r5,%r6
+  40:	24 20 00 00 00 00 02 9a 	mul32 %r2,0x29a
+  48:	24 30 00 00 ff ff fd 66 	mul32 %r3,0xfffffd66
+  50:	24 40 00 00 7e ad be ef 	mul32 %r4,0x7eadbeef
+  58:	2c 56 00 00 00 00 00 00 	mul32 %r5,%r6
+  60:	34 20 00 00 00 00 02 9a 	div32 %r2,0x29a
+  68:	34 30 00 00 ff ff fd 66 	div32 %r3,0xfffffd66
+  70:	34 40 00 00 7e ad be ef 	div32 %r4,0x7eadbeef
+  78:	3c 56 00 00 00 00 00 00 	div32 %r5,%r6
+  80:	44 20 00 00 00 00 02 9a 	or32 %r2,0x29a
+  88:	44 30 00 00 ff ff fd 66 	or32 %r3,0xfffffd66
+  90:	44 40 00 00 7e ad be ef 	or32 %r4,0x7eadbeef
+  98:	4c 56 00 00 00 00 00 00 	or32 %r5,%r6
+  a0:	54 20 00 00 00 00 02 9a 	and32 %r2,0x29a
+  a8:	54 30 00 00 ff ff fd 66 	and32 %r3,0xfffffd66
+  b0:	54 40 00 00 7e ad be ef 	and32 %r4,0x7eadbeef
+  b8:	5c 56 00 00 00 00 00 00 	and32 %r5,%r6
+  c0:	64 20 00 00 00 00 02 9a 	lsh32 %r2,0x29a
+  c8:	64 30 00 00 ff ff fd 66 	lsh32 %r3,0xfffffd66
+  d0:	64 40 00 00 7e ad be ef 	lsh32 %r4,0x7eadbeef
+  d8:	6c 56 00 00 00 00 00 00 	lsh32 %r5,%r6
+  e0:	74 20 00 00 00 00 02 9a 	rsh32 %r2,0x29a
+  e8:	74 30 00 00 ff ff fd 66 	rsh32 %r3,0xfffffd66
+  f0:	74 40 00 00 7e ad be ef 	rsh32 %r4,0x7eadbeef
+  f8:	7c 56 00 00 00 00 00 00 	rsh32 %r5,%r6
+ 100:	94 20 00 00 00 00 02 9a 	mod32 %r2,0x29a
+ 108:	94 30 00 00 ff ff fd 66 	mod32 %r3,0xfffffd66
+ 110:	94 40 00 00 7e ad be ef 	mod32 %r4,0x7eadbeef
+ 118:	9c 56 00 00 00 00 00 00 	mod32 %r5,%r6
+ 120:	a4 20 00 00 00 00 02 9a 	xor32 %r2,0x29a
+ 128:	a4 30 00 00 ff ff fd 66 	xor32 %r3,0xfffffd66
+ 130:	a4 40 00 00 7e ad be ef 	xor32 %r4,0x7eadbeef
+ 138:	ac 56 00 00 00 00 00 00 	xor32 %r5,%r6
+ 140:	b4 20 00 00 00 00 02 9a 	mov32 %r2,0x29a
+ 148:	b4 30 00 00 ff ff fd 66 	mov32 %r3,0xfffffd66
+ 150:	b4 40 00 00 7e ad be ef 	mov32 %r4,0x7eadbeef
+ 158:	bc 56 00 00 00 00 00 00 	mov32 %r5,%r6
+ 160:	c4 20 00 00 00 00 02 9a 	arsh32 %r2,0x29a
+ 168:	c4 30 00 00 ff ff fd 66 	arsh32 %r3,0xfffffd66
+ 170:	c4 40 00 00 7e ad be ef 	arsh32 %r4,0x7eadbeef
+ 178:	cc 56 00 00 00 00 00 00 	arsh32 %r5,%r6
+ 180:	8c 20 00 00 00 00 00 00 	neg32 %r2
+ 188:	bc 12 00 08 00 00 00 00 	movs32 %r1,%r2,8
+ 190:	bc 12 00 10 00 00 00 00 	movs32 %r1,%r2,16
+ 198:	bc 12 00 20 00 00 00 00 	movs32 %r1,%r2,32
+ 1a0:	84 10 00 00 00 00 0f 00 	neg32 %r1,0xf00
diff --git a/gas/testsuite/gas/bpf/alu32-pseudoc.d b/gas/testsuite/gas/bpf/alu32-pseudoc.d
index 98b99215b27..cc4e010b201 100644
--- a/gas/testsuite/gas/bpf/alu32-pseudoc.d
+++ b/gas/testsuite/gas/bpf/alu32-pseudoc.d
@@ -1,5 +1,63 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M hex,pseudoc
 #source: alu32-pseudoc.s
-#dump: alu32.dump
-#name: eBPF ALU instructions, pseudo-c syntax
+#name: eBPF ALU32 instructions, pseudo-c syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	04 02 00 00 9a 02 00 00 	w2\+=0x29a
+   8:	04 03 00 00 66 fd ff ff 	w3\+=0xfffffd66
+  10:	04 04 00 00 ef be ad 7e 	w4\+=0x7eadbeef
+  18:	0c 65 00 00 00 00 00 00 	w5\+=w6
+  20:	14 02 00 00 9a 02 00 00 	w2-=0x29a
+  28:	14 03 00 00 66 fd ff ff 	w3-=0xfffffd66
+  30:	14 04 00 00 ef be ad 7e 	w4-=0x7eadbeef
+  38:	1c 65 00 00 00 00 00 00 	w5-=w6
+  40:	24 02 00 00 9a 02 00 00 	w2\*=0x29a
+  48:	24 03 00 00 66 fd ff ff 	w3\*=0xfffffd66
+  50:	24 04 00 00 ef be ad 7e 	w4\*=0x7eadbeef
+  58:	2c 65 00 00 00 00 00 00 	w5\*=w6
+  60:	34 02 00 00 9a 02 00 00 	w2/=0x29a
+  68:	34 03 00 00 66 fd ff ff 	w3/=0xfffffd66
+  70:	34 04 00 00 ef be ad 7e 	w4/=0x7eadbeef
+  78:	3c 65 00 00 00 00 00 00 	w5/=w6
+  80:	44 02 00 00 9a 02 00 00 	w2|=0x29a
+  88:	44 03 00 00 66 fd ff ff 	w3|=0xfffffd66
+  90:	44 04 00 00 ef be ad 7e 	w4|=0x7eadbeef
+  98:	4c 65 00 00 00 00 00 00 	w5|=w6
+  a0:	54 02 00 00 9a 02 00 00 	w2&=0x29a
+  a8:	54 03 00 00 66 fd ff ff 	w3&=0xfffffd66
+  b0:	54 04 00 00 ef be ad 7e 	w4&=0x7eadbeef
+  b8:	5c 65 00 00 00 00 00 00 	w5&=w6
+  c0:	64 02 00 00 9a 02 00 00 	w2<<=0x29a
+  c8:	64 03 00 00 66 fd ff ff 	w3<<=0xfffffd66
+  d0:	64 04 00 00 ef be ad 7e 	w4<<=0x7eadbeef
+  d8:	6c 65 00 00 00 00 00 00 	w5<<=w6
+  e0:	74 02 00 00 9a 02 00 00 	w2>>=0x29a
+  e8:	74 03 00 00 66 fd ff ff 	w3>>=0xfffffd66
+  f0:	74 04 00 00 ef be ad 7e 	w4>>=0x7eadbeef
+  f8:	7c 65 00 00 00 00 00 00 	w5>>=w6
+ 100:	94 02 00 00 9a 02 00 00 	w2%=0x29a
+ 108:	94 03 00 00 66 fd ff ff 	w3%=0xfffffd66
+ 110:	94 04 00 00 ef be ad 7e 	w4%=0x7eadbeef
+ 118:	9c 65 00 00 00 00 00 00 	w5%=w6
+ 120:	a4 02 00 00 9a 02 00 00 	w2\^=0x29a
+ 128:	a4 03 00 00 66 fd ff ff 	w3\^=0xfffffd66
+ 130:	a4 04 00 00 ef be ad 7e 	w4\^=0x7eadbeef
+ 138:	ac 65 00 00 00 00 00 00 	w5\^=w6
+ 140:	b4 02 00 00 9a 02 00 00 	w2=0x29a
+ 148:	b4 03 00 00 66 fd ff ff 	w3=0xfffffd66
+ 150:	b4 04 00 00 ef be ad 7e 	w4=0x7eadbeef
+ 158:	bc 65 00 00 00 00 00 00 	w5=w6
+ 160:	c4 02 00 00 9a 02 00 00 	w2 s>>=0x29a
+ 168:	c4 03 00 00 66 fd ff ff 	w3 s>>=0xfffffd66
+ 170:	c4 04 00 00 ef be ad 7e 	w4 s>>=0x7eadbeef
+ 178:	cc 65 00 00 00 00 00 00 	w5 s>>=w6
+ 180:	8c 02 00 00 00 00 00 00 	w2=-w2
+ 188:	bc 21 08 00 00 00 00 00 	w1 = \(s8\) w2
+ 190:	bc 21 10 00 00 00 00 00 	w1 = \(s16\) w2
+ 198:	bc 21 20 00 00 00 00 00 	w1 = \(s32\) w2
+ 1a0:	b4 01 00 00 00 f1 ff ff 	w1=0xfffff100
diff --git a/gas/testsuite/gas/bpf/alu32-pseudoc.s b/gas/testsuite/gas/bpf/alu32-pseudoc.s
index a29f6ea0336..98d586a48e6 100644
--- a/gas/testsuite/gas/bpf/alu32-pseudoc.s
+++ b/gas/testsuite/gas/bpf/alu32-pseudoc.s
@@ -1,16 +1,16 @@
 # Tests for the ALU eBPF pseudo-C instructions
         .text
-	W2 += 666
-	W3 += -666
-	W4 += 2125315823
-	W5 += w6
-	W2 -= 666
-	W3 -= -666
-	W4 -= 2125315823
-	W5 -= w6
-	W2 *= 666
-	W3 *= -666
-	W4 *= 2125315823
+	w2 += 666
+	w3 += -666
+	w4 += 2125315823
+	w5 += w6
+	w2 -= 666
+	w3 -= -666
+	w4 -= 2125315823
+	w5 -= w6
+	w2 *= 666
+	w3 *= -666
+	w4 *= 2125315823
 	w5 *= w6
 	w2 /= 666
 	w3 /= -666
@@ -48,10 +48,11 @@
 	w3 s>>= -666
 	w4 s>>= 2125315823
 	w5 s>>= w6
-	w2 = -w2
-	r9 = le16 r9
-	r8 = le32 r8
-	r7 = le64 r7
-	r6 = be16 r6
-	r5 = be32 r5
-	r4 = be64 r4
+	w2 = - w2
+        w1 = (s8) w2
+        w1 = (s16) w2
+        w1 = (s32) w2
+        ;; Note that the next instruction gets processed by the GAS
+        ;; preprocessor into w1 =-0xf00, which parses into a %dw = %i32
+        ;; instruction instead of a neg :/
+	w1 = - 0xf00
diff --git a/gas/testsuite/gas/bpf/alu32.d b/gas/testsuite/gas/bpf/alu32.d
index 87efc20ba30..25484381aeb 100644
--- a/gas/testsuite/gas/bpf/alu32.d
+++ b/gas/testsuite/gas/bpf/alu32.d
@@ -1,5 +1,63 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M hex
 #source: alu32.s
-#dump: alu32.dump
-#name: eBPF ALU instructions, normal syntax
+#name: eBPF ALU32 instructions, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	04 02 00 00 9a 02 00 00 	add32 %r2,0x29a
+   8:	04 03 00 00 66 fd ff ff 	add32 %r3,0xfffffd66
+  10:	04 04 00 00 ef be ad 7e 	add32 %r4,0x7eadbeef
+  18:	0c 65 00 00 00 00 00 00 	add32 %r5,%r6
+  20:	14 02 00 00 9a 02 00 00 	sub32 %r2,0x29a
+  28:	14 03 00 00 66 fd ff ff 	sub32 %r3,0xfffffd66
+  30:	14 04 00 00 ef be ad 7e 	sub32 %r4,0x7eadbeef
+  38:	1c 65 00 00 00 00 00 00 	sub32 %r5,%r6
+  40:	24 02 00 00 9a 02 00 00 	mul32 %r2,0x29a
+  48:	24 03 00 00 66 fd ff ff 	mul32 %r3,0xfffffd66
+  50:	24 04 00 00 ef be ad 7e 	mul32 %r4,0x7eadbeef
+  58:	2c 65 00 00 00 00 00 00 	mul32 %r5,%r6
+  60:	34 02 00 00 9a 02 00 00 	div32 %r2,0x29a
+  68:	34 03 00 00 66 fd ff ff 	div32 %r3,0xfffffd66
+  70:	34 04 00 00 ef be ad 7e 	div32 %r4,0x7eadbeef
+  78:	3c 65 00 00 00 00 00 00 	div32 %r5,%r6
+  80:	44 02 00 00 9a 02 00 00 	or32 %r2,0x29a
+  88:	44 03 00 00 66 fd ff ff 	or32 %r3,0xfffffd66
+  90:	44 04 00 00 ef be ad 7e 	or32 %r4,0x7eadbeef
+  98:	4c 65 00 00 00 00 00 00 	or32 %r5,%r6
+  a0:	54 02 00 00 9a 02 00 00 	and32 %r2,0x29a
+  a8:	54 03 00 00 66 fd ff ff 	and32 %r3,0xfffffd66
+  b0:	54 04 00 00 ef be ad 7e 	and32 %r4,0x7eadbeef
+  b8:	5c 65 00 00 00 00 00 00 	and32 %r5,%r6
+  c0:	64 02 00 00 9a 02 00 00 	lsh32 %r2,0x29a
+  c8:	64 03 00 00 66 fd ff ff 	lsh32 %r3,0xfffffd66
+  d0:	64 04 00 00 ef be ad 7e 	lsh32 %r4,0x7eadbeef
+  d8:	6c 65 00 00 00 00 00 00 	lsh32 %r5,%r6
+  e0:	74 02 00 00 9a 02 00 00 	rsh32 %r2,0x29a
+  e8:	74 03 00 00 66 fd ff ff 	rsh32 %r3,0xfffffd66
+  f0:	74 04 00 00 ef be ad 7e 	rsh32 %r4,0x7eadbeef
+  f8:	7c 65 00 00 00 00 00 00 	rsh32 %r5,%r6
+ 100:	94 02 00 00 9a 02 00 00 	mod32 %r2,0x29a
+ 108:	94 03 00 00 66 fd ff ff 	mod32 %r3,0xfffffd66
+ 110:	94 04 00 00 ef be ad 7e 	mod32 %r4,0x7eadbeef
+ 118:	9c 65 00 00 00 00 00 00 	mod32 %r5,%r6
+ 120:	a4 02 00 00 9a 02 00 00 	xor32 %r2,0x29a
+ 128:	a4 03 00 00 66 fd ff ff 	xor32 %r3,0xfffffd66
+ 130:	a4 04 00 00 ef be ad 7e 	xor32 %r4,0x7eadbeef
+ 138:	ac 65 00 00 00 00 00 00 	xor32 %r5,%r6
+ 140:	b4 02 00 00 9a 02 00 00 	mov32 %r2,0x29a
+ 148:	b4 03 00 00 66 fd ff ff 	mov32 %r3,0xfffffd66
+ 150:	b4 04 00 00 ef be ad 7e 	mov32 %r4,0x7eadbeef
+ 158:	bc 65 00 00 00 00 00 00 	mov32 %r5,%r6
+ 160:	c4 02 00 00 9a 02 00 00 	arsh32 %r2,0x29a
+ 168:	c4 03 00 00 66 fd ff ff 	arsh32 %r3,0xfffffd66
+ 170:	c4 04 00 00 ef be ad 7e 	arsh32 %r4,0x7eadbeef
+ 178:	cc 65 00 00 00 00 00 00 	arsh32 %r5,%r6
+ 180:	8c 02 00 00 00 00 00 00 	neg32 %r2
+ 188:	bc 21 08 00 00 00 00 00 	movs32 %r1,%r2,8
+ 190:	bc 21 10 00 00 00 00 00 	movs32 %r1,%r2,16
+ 198:	bc 21 20 00 00 00 00 00 	movs32 %r1,%r2,32
+ 1a0:	84 01 00 00 00 0f 00 00 	neg32 %r1,0xf00
\ No newline at end of file
diff --git a/gas/testsuite/gas/bpf/alu32.s b/gas/testsuite/gas/bpf/alu32.s
index 7b6f014e8be..fd1d528ba21 100644
--- a/gas/testsuite/gas/bpf/alu32.s
+++ b/gas/testsuite/gas/bpf/alu32.s
@@ -49,9 +49,7 @@
         arsh32	%r4, 0x7eadbeef
         arsh32	%r5, %r6
         neg32	%r2
-	endle	%r9,16
-        endle	%r8,32
-        endle	%r7,64
-        endbe	%r6,16
-        endbe	%r5,32
-        endbe	%r4,64
+        movs32  %r1,%r2,8
+        movs32  %r1,%r2,16
+        movs32  %r1,%r2,32
+        neg32   %r1, 0xf00
diff --git a/gas/testsuite/gas/bpf/atomic-be.d b/gas/testsuite/gas/bpf/atomic-be.d
index b252571e5fd..7a04753da63 100644
--- a/gas/testsuite/gas/bpf/atomic-be.d
+++ b/gas/testsuite/gas/bpf/atomic-be.d
@@ -1,7 +1,6 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: atomic.s
-#source: atomic-pseudoc.s
-#objdump: -dr
+#objdump: -dr -M hex
 #name: eBPF atomic instructions, big endian
 
 .*: +file format .*bpf.*
@@ -9,5 +8,23 @@
 Disassembly of section .text:
 
 0+ <.text>:
-   0:	db 12 1e ef 00 00 00 00 	xadddw \[%r1\+0x1eef\],%r2
-   8:	c3 12 1e ef 00 00 00 00 	xaddw \[%r1\+0x1eef\],%r2
+   0:	db 12 1e ef 00 00 00 00 	aadd \[%r1\+0x1eef\],%r2
+   8:	c3 12 1e ef 00 00 00 00 	aadd32 \[%r1\+0x1eef\],%r2
+  10:	db 12 1e ef 00 00 00 50 	aand \[%r1\+0x1eef\],%r2
+  18:	c3 12 1e ef 00 00 00 50 	aand32 \[%r1\+0x1eef\],%r2
+  20:	db 12 1e ef 00 00 00 40 	aor \[%r1\+0x1eef\],%r2
+  28:	c3 12 1e ef 00 00 00 40 	aor32 \[%r1\+0x1eef\],%r2
+  30:	db 12 1e ef 00 00 00 a0 	axor \[%r1\+0x1eef\],%r2
+  38:	c3 12 1e ef 00 00 00 a0 	axor32 \[%r1\+0x1eef\],%r2
+  40:	db 12 1e ef 00 00 00 01 	afadd \[%r1\+0x1eef\],%r2
+  48:	c3 12 1e ef 00 00 00 01 	afadd32 \[%r1\+0x1eef\],%r2
+  50:	db 12 1e ef 00 00 00 51 	afand \[%r1\+0x1eef\],%r2
+  58:	c3 12 1e ef 00 00 00 51 	afand32 \[%r1\+0x1eef\],%r2
+  60:	db 12 1e ef 00 00 00 41 	afor \[%r1\+0x1eef\],%r2
+  68:	c3 12 1e ef 00 00 00 41 	afor32 \[%r1\+0x1eef\],%r2
+  70:	db 12 1e ef 00 00 00 a1 	afxor \[%r1\+0x1eef\],%r2
+  78:	c3 12 1e ef 00 00 00 a1 	afxor32 \[%r1\+0x1eef\],%r2
+  80:	db 12 00 04 00 00 00 f1 	acmp \[%r1\+0x4\],%r2
+  88:	c3 23 00 04 00 00 00 f1 	acmp32 \[%r2\+0x4\],%r3
+  90:	db 12 00 08 00 00 00 e1 	axchg \[%r1\+0x8\],%r2
+  98:	c3 13 00 08 00 00 00 e1 	axchg32 \[%r1\+0x8\],%r3
diff --git a/gas/testsuite/gas/bpf/atomic-pseudoc.d b/gas/testsuite/gas/bpf/atomic-pseudoc.d
index 3b0e5c567be..2b3739ee47e 100644
--- a/gas/testsuite/gas/bpf/atomic-pseudoc.d
+++ b/gas/testsuite/gas/bpf/atomic-pseudoc.d
@@ -1,5 +1,32 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M hex,pseudoc
 #source: atomic-pseudoc.s
-#dump: atomic.dump
-#name: eBPF atomic instructions, normal syntax
+#name: eBPF atomic instructions, pseudoc syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	db 21 ef 1e 00 00 00 00 	lock \*\(u64\*\)\(r1\+0x1eef\)\+=r2
+   8:	c3 21 ef 1e 00 00 00 00 	lock \*\(u32\*\)\(r1\+0x1eef\)\+=r2
+  10:	db 21 ef 1e 00 00 00 00 	lock \*\(u64\*\)\(r1\+0x1eef\)\+=r2
+  18:	c3 21 ef 1e 00 00 00 00 	lock \*\(u32\*\)\(r1\+0x1eef\)\+=r2
+  20:	db 21 ef 1e 50 00 00 00 	lock \*\(u64\*\)\(r1\+0x1eef\)\&=r2
+  28:	c3 21 ef 1e 50 00 00 00 	lock \*\(u32\*\)\(r1\+0x1eef\)\&=r2
+  30:	db 21 ef 1e 40 00 00 00 	lock \*\(u64\*\)\(r1\+0x1eef\)\|=r2
+  38:	c3 21 ef 1e 40 00 00 00 	lock \*\(u32\*\)\(r1\+0x1eef\)\|=r2
+  40:	db 21 ef 1e a0 00 00 00 	lock \*\(u64\*\)\(r1\+0x1eef\)\^=r2
+  48:	c3 21 ef 1e a0 00 00 00 	lock \*\(u32\*\)\(r1\+0x1eef\)\^=r2
+  50:	db 21 ef 1e 01 00 00 00 	r2=atomic_fetch_add\(\(u64\*\)\(r1\+0x1eef\),r2\)
+  58:	c3 21 ef 1e 01 00 00 00 	w2=atomic_fetch_add\(\(u32\*\)\(r1\+0x1eef\),w2\)
+  60:	db 21 ef 1e 51 00 00 00 	r2=atomic_fetch_and\(\(u64\*\)\(r1\+0x1eef\),r2\)
+  68:	c3 21 ef 1e 51 00 00 00 	w2=atomic_fetch_and\(\(u32\*\)\(r1\+0x1eef\),w2\)
+  70:	db 21 ef 1e 41 00 00 00 	r2=atomic_fetch_or\(\(u64\*\)\(r1\+0x1eef\),r2\)
+  78:	c3 21 ef 1e 41 00 00 00 	w2=atomic_fetch_or\(\(u32\*\)\(r1\+0x1eef\),w2\)
+  80:	db 21 ef 1e a1 00 00 00 	r2=atomic_fetch_xor\(\(u64\*\)\(r1\+0x1eef\),r2\)
+  88:	c3 21 ef 1e a1 00 00 00 	w2=atomic_fetch_xor\(\(u32\*\)\(r1\+0x1eef\),w2\)
+  90:	db 21 04 00 f1 00 00 00 	r0=cmpxchg_64\(r1\+0x4,r0,r2\)
+  98:	c3 32 04 00 f1 00 00 00 	w0=cmpxchg32_32\(r2\+0x4,w0,w3\)
+  a0:	db 21 08 00 e1 00 00 00 	r2=xchg_64\(r1\+0x8,r2\)
+  a8:	c3 31 08 00 e1 00 00 00 	w3=xchg32_32\(r1\+0x8,w3\)
diff --git a/gas/testsuite/gas/bpf/atomic-pseudoc.s b/gas/testsuite/gas/bpf/atomic-pseudoc.s
index 1a4f218ccb7..6994fd10367 100644
--- a/gas/testsuite/gas/bpf/atomic-pseudoc.s
+++ b/gas/testsuite/gas/bpf/atomic-pseudoc.s
@@ -1,4 +1,24 @@
-        # Test for eBPF ADDW and ADDDW pseudo-C instructions
+        # Test for eBPF atomic pseudo-C instructions.
         .text
-	lock *(u64 *)(r1 + 7919) += r2
-	lock *(u32 *)(r1 + 7919) += r2
+	lock *(u64 *)(r1 + 0x1eef) += r2
+	lock *(u32 *)(r1 + 0x1eef) += r2
+	lock *(u64*)(r1+0x1eef)+=r2
+	lock *(u32*)(r1+0x1eef)+=r2
+	lock *(u64*)(r1+0x1eef)&=r2
+	lock *(u32*)(r1+0x1eef)&=r2
+	lock *(u64*)(r1+0x1eef)|=r2
+	lock *(u32*)(r1+0x1eef)|=r2
+	lock *(u64*)(r1+0x1eef)^=r2
+	lock *(u32*)(r1+0x1eef)^=r2
+	r2 = atomic_fetch_add((u64*)(r1+0x1eef),r2)
+	w2 = atomic_fetch_add((u32*)(r1+0x1eef),w2)
+	r2 = atomic_fetch_and((u64*)(r1+0x1eef),r2)
+	w2 = atomic_fetch_and((u32*)(r1+0x1eef),w2)
+	r2 = atomic_fetch_or((u64*)(r1+0x1eef),r2)
+	w2 = atomic_fetch_or((u32*)(r1+0x1eef),w2)
+	r2 = atomic_fetch_xor((u64*)(r1+0x1eef),r2)
+	w2 = atomic_fetch_xor((u32*)(r1+0x1eef),w2)
+	r0 = cmpxchg_64(r1+0x4,r0,r2)
+	w0 = cmpxchg32_32(r2+0x4,w0,w3)
+	r2 = xchg_64(r1+0x8,r2)
+	w3 = xchg32_32(r1+0x8,w3)
diff --git a/gas/testsuite/gas/bpf/atomic.d b/gas/testsuite/gas/bpf/atomic.d
index c48ba9aabda..121ab35a92b 100644
--- a/gas/testsuite/gas/bpf/atomic.d
+++ b/gas/testsuite/gas/bpf/atomic.d
@@ -1,5 +1,30 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M hex
 #source: atomic.s
-#dump: atomic.dump
 #name: eBPF atomic instructions, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	db 21 ef 1e 00 00 00 00 	aadd \[%r1\+0x1eef\],%r2
+   8:	c3 21 ef 1e 00 00 00 00 	aadd32 \[%r1\+0x1eef\],%r2
+  10:	db 21 ef 1e 50 00 00 00 	aand \[%r1\+0x1eef\],%r2
+  18:	c3 21 ef 1e 50 00 00 00 	aand32 \[%r1\+0x1eef\],%r2
+  20:	db 21 ef 1e 40 00 00 00 	aor \[%r1\+0x1eef\],%r2
+  28:	c3 21 ef 1e 40 00 00 00 	aor32 \[%r1\+0x1eef\],%r2
+  30:	db 21 ef 1e a0 00 00 00 	axor \[%r1\+0x1eef\],%r2
+  38:	c3 21 ef 1e a0 00 00 00 	axor32 \[%r1\+0x1eef\],%r2
+  40:	db 21 ef 1e 01 00 00 00 	afadd \[%r1\+0x1eef\],%r2
+  48:	c3 21 ef 1e 01 00 00 00 	afadd32 \[%r1\+0x1eef\],%r2
+  50:	db 21 ef 1e 51 00 00 00 	afand \[%r1\+0x1eef\],%r2
+  58:	c3 21 ef 1e 51 00 00 00 	afand32 \[%r1\+0x1eef\],%r2
+  60:	db 21 ef 1e 41 00 00 00 	afor \[%r1\+0x1eef\],%r2
+  68:	c3 21 ef 1e 41 00 00 00 	afor32 \[%r1\+0x1eef\],%r2
+  70:	db 21 ef 1e a1 00 00 00 	afxor \[%r1\+0x1eef\],%r2
+  78:	c3 21 ef 1e a1 00 00 00 	afxor32 \[%r1\+0x1eef\],%r2
+  80:	db 21 04 00 f1 00 00 00 	acmp \[%r1\+0x4\],%r2
+  88:	c3 32 04 00 f1 00 00 00 	acmp32 \[%r2\+0x4\],%r3
+  90:	db 21 08 00 e1 00 00 00 	axchg \[%r1\+0x8\],%r2
+  98:	c3 31 08 00 e1 00 00 00 	axchg32 \[%r1\+0x8\],%r3
diff --git a/gas/testsuite/gas/bpf/atomic.s b/gas/testsuite/gas/bpf/atomic.s
index 0119b24c8bb..39ad5ce42f0 100644
--- a/gas/testsuite/gas/bpf/atomic.s
+++ b/gas/testsuite/gas/bpf/atomic.s
@@ -1,5 +1,24 @@
-        # Test for eBPF ADDW and ADDDW instructions
+        # Test for eBPF atomic instructions
         .text
-        xadddw	[%r1+0x1eef], %r2
-        xaddw	[%r1+0x1eef], %r2
-        
+        aadd	[%r1+0x1eef], %r2
+        aadd32	[%r1+0x1eef], %r2
+        aand	[%r1+0x1eef], %r2
+        aand32	[%r1+0x1eef], %r2
+        aor	[%r1+0x1eef], %r2
+        aor32	[%r1+0x1eef], %r2
+        axor	[%r1+0x1eef], %r2
+        axor32	[%r1+0x1eef], %r2
+
+        afadd	[%r1+0x1eef], %r2
+        afadd32	[%r1+0x1eef], %r2
+        afand	[%r1+0x1eef], %r2
+        afand32	[%r1+0x1eef], %r2
+        afor	[%r1+0x1eef], %r2
+        afor32	[%r1+0x1eef], %r2
+        afxor	[%r1+0x1eef], %r2
+        afxor32	[%r1+0x1eef], %r2
+
+        acmp	[%r1+4], %r2
+        acmp32	[%r2+4], %r3
+        axchg	[%r1+8], %r2
+        axchg32	[%r1+8], %r3
diff --git a/gas/testsuite/gas/bpf/bpf.exp b/gas/testsuite/gas/bpf/bpf.exp
index 5d91805f478..80f5a1dbc2d 100644
--- a/gas/testsuite/gas/bpf/bpf.exp
+++ b/gas/testsuite/gas/bpf/bpf.exp
@@ -18,6 +18,10 @@
 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  
 
 if {[istarget bpf*-*-*]} {
+    # Little-endian BPF tests
+    run_dump_test call
+    run_dump_test exit
+    run_dump_test data
     run_dump_test lddw
     run_dump_test lddw-pseudoc
     run_dump_test alu
@@ -30,13 +34,19 @@ if {[istarget bpf*-*-*]} {
     run_dump_test jump-pseudoc
     run_dump_test jump32
     run_dump_test jump32-pseudoc
-    run_dump_test call
-    run_dump_test exit
+    run_dump_test atomic-v1
     run_dump_test atomic
     run_dump_test atomic-pseudoc
-    run_dump_test data
-    run_dump_test pseudoc-normal
+    run_dump_test indcall-1
+    run_dump_test indcall-1-pseudoc
 
+    run_dump_test jump-relax-ja
+    run_dump_test jump-relax-jump
+
+    # Big-endian BPF tests
+    run_dump_test call-be
+    run_dump_test exit-be
+    run_dump_test data-be
     run_dump_test lddw-be
     run_dump_test lddw-be-pseudoc
     run_dump_test alu-be
@@ -44,17 +54,22 @@ if {[istarget bpf*-*-*]} {
     run_dump_test alu32-be
     run_dump_test alu32-be-pseudoc
     run_dump_test mem-be
+    run_dump_test mem-be-pseudoc
     run_dump_test jump-be
-    run_dump_test call-be
-    run_dump_test exit-be
+    run_dump_test jump-be-pseudoc
+    run_dump_test jump32-be
+    run_dump_test jump32-be-pseudoc
+    run_dump_test atomic-v1-be
     run_dump_test atomic-be
-    run_dump_test data-be
-    run_dump_test pseudoc-normal-be
+    run_dump_test atomic-be-pseudoc
 
-    run_dump_test indcall-1
-    run_dump_test indcall-1-pseudoc
-    run_list_test indcall-bad-1
+    run_dump_test jump-relax-ja-be
+    run_dump_test jump-relax-jump-be
 
-    run_dump_test alu-xbpf
-    run_dump_test alu32-xbpf
+    # Overflow tests
+    run_dump_test offset16-overflow
+    run_dump_test disp16-overflow
+    run_dump_test disp16-overflow-relax
+    run_dump_test disp32-overflow
+    run_dump_test imm32-overflow
 }
diff --git a/gas/testsuite/gas/bpf/call-be.d b/gas/testsuite/gas/bpf/call-be.d
index bd3b50f36b2..55e4e700ab4 100644
--- a/gas/testsuite/gas/bpf/call-be.d
+++ b/gas/testsuite/gas/bpf/call-be.d
@@ -1,6 +1,6 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: call.s
-#objdump: -dr
+#objdump: -dr -M dec
 #name: eBPF CALL instruction, big endian
 
 .*: +file format .*bpf.*
diff --git a/gas/testsuite/gas/bpf/call.d b/gas/testsuite/gas/bpf/call.d
index daefbd08022..a85cb7f58ab 100644
--- a/gas/testsuite/gas/bpf/call.d
+++ b/gas/testsuite/gas/bpf/call.d
@@ -1,5 +1,5 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M dec
 #name: eBPF CALL instruction
 
 .*: +file format .*bpf.*
diff --git a/gas/testsuite/gas/bpf/data-be.d b/gas/testsuite/gas/bpf/data-be.d
index 010f08f2508..3a8b68bd1d2 100644
--- a/gas/testsuite/gas/bpf/data-be.d
+++ b/gas/testsuite/gas/bpf/data-be.d
@@ -1,4 +1,4 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: data.s
 #objdump: -s -j .data
 #name: eBPF data directives, big endian
diff --git a/gas/testsuite/gas/bpf/data.d b/gas/testsuite/gas/bpf/data.d
index 6824e8b8b5a..9fa108b6542 100644
--- a/gas/testsuite/gas/bpf/data.d
+++ b/gas/testsuite/gas/bpf/data.d
@@ -1,4 +1,4 @@
-#as: --EL
+#as: -EL -mdialect=normal
 #objdump: -s -j .data
 #name: eBPF data directives
 
diff --git a/gas/testsuite/gas/bpf/exit-be.d b/gas/testsuite/gas/bpf/exit-be.d
index d3b88c7373a..b83af3eacab 100644
--- a/gas/testsuite/gas/bpf/exit-be.d
+++ b/gas/testsuite/gas/bpf/exit-be.d
@@ -1,6 +1,6 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: exit.s
-#objdump: -dr
+#objdump: -dr -M hex
 #name: eBPF EXIT instruction, big endian
 
 .*: +file format .*bpf.*
diff --git a/gas/testsuite/gas/bpf/exit.d b/gas/testsuite/gas/bpf/exit.d
index 87bc91b2d2e..68ef9020185 100644
--- a/gas/testsuite/gas/bpf/exit.d
+++ b/gas/testsuite/gas/bpf/exit.d
@@ -1,5 +1,5 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M hex
 #name: eBPF EXIT instruction
 
 .*: +file format .*bpf.*
diff --git a/gas/testsuite/gas/bpf/indcall-1-pseudoc.d b/gas/testsuite/gas/bpf/indcall-1-pseudoc.d
index b04e656bd82..7a95bad8e65 100644
--- a/gas/testsuite/gas/bpf/indcall-1-pseudoc.d
+++ b/gas/testsuite/gas/bpf/indcall-1-pseudoc.d
@@ -1,5 +1,23 @@
-#as: -mxbpf --EL
-#objdump: -mxbpf -dr
+#as: -EL -mdialect=pseudoc -misa-spec=xbpf
+#objdump: -M xbpf,pseudoc,dec -dr
 #source: indcall-1-pseudoc.s
-#dump: indcall-1.dump
 #name: BPF indirect call 1, pseudoc syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section \.text:
+
+0000000000000000 <main>:
+   0:	b7 00 00 00 01 00 00 00 	r0=1
+   8:	b7 01 00 00 01 00 00 00 	r1=1
+  10:	b7 02 00 00 02 00 00 00 	r2=2
+  18:	18 06 00 00 38 00 00 00 	r6=56 ll
+  20:	00 00 00 00 00 00 00 00[    ]*
+			18: R_BPF_64_64	.text
+  28:	8d 06 00 00 00 00 00 00 	callx r6
+  30:	95 00 00 00 00 00 00 00 	exit
+
+0000000000000038 <bar>:
+  38:	b7 00 00 00 00 00 00 00 	r0=0
+  40:	95 00 00 00 00 00 00 00 	exit
+#pass
diff --git a/gas/testsuite/gas/bpf/indcall-1.d b/gas/testsuite/gas/bpf/indcall-1.d
index e04b98b175b..51103bba2a1 100644
--- a/gas/testsuite/gas/bpf/indcall-1.d
+++ b/gas/testsuite/gas/bpf/indcall-1.d
@@ -1,5 +1,23 @@
-#as: -mxbpf --EL
-#objdump: -mxbpf -dr
+#as: -EL -misa-spec=xbpf
+#objdump: -dr -M xbpf,dec
 #source: indcall-1.s
-#dump: indcall-1.dump
 #name: BPF indirect call 1, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section \.text:
+
+0000000000000000 <main>:
+   0:	b7 00 00 00 01 00 00 00 	mov %r0,1
+   8:	b7 01 00 00 01 00 00 00 	mov %r1,1
+  10:	b7 02 00 00 02 00 00 00 	mov %r2,2
+  18:	18 06 00 00 38 00 00 00 	lddw %r6,56
+  20:	00 00 00 00 00 00 00 00[    ]*
+			18: R_BPF_64_64	.text
+  28:	8d 06 00 00 00 00 00 00 	call %r6
+  30:	95 00 00 00 00 00 00 00 	exit
+
+0000000000000038 <bar>:
+  38:	b7 00 00 00 00 00 00 00 	mov %r0,0
+  40:	95 00 00 00 00 00 00 00 	exit
+#pass
diff --git a/gas/testsuite/gas/bpf/jump-be.d b/gas/testsuite/gas/bpf/jump-be.d
index 7e235e69551..fffe1e952d7 100644
--- a/gas/testsuite/gas/bpf/jump-be.d
+++ b/gas/testsuite/gas/bpf/jump-be.d
@@ -1,7 +1,6 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: jump.s
-#source: jump-pseudoc.s
-#objdump: -dr
+#objdump: -dr -M dec
 #name: eBPF JUMP instructions, big endian
 
 .*: +file format .*bpf.*
@@ -31,3 +30,5 @@ Disassembly of section .text:
   98:	cd 34 00 00 00 00 00 00 	jslt %r3,%r4,0
   a0:	d5 30 00 01 00 00 00 03 	jsle %r3,3,1
   a8:	dd 34 00 00 00 00 00 00 	jsle %r3,%r4,0
+  b0:	06 00 00 00 00 00 00 01 	jal 1
+  b8:	06 00 00 00 00 00 00 00 	jal 0
diff --git a/gas/testsuite/gas/bpf/jump-pseudoc.d b/gas/testsuite/gas/bpf/jump-pseudoc.d
index bc172665af8..9b68108d9ee 100644
--- a/gas/testsuite/gas/bpf/jump-pseudoc.d
+++ b/gas/testsuite/gas/bpf/jump-pseudoc.d
@@ -1,5 +1,34 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M dec,pseudoc
 #source: jump-pseudoc.s
-#dump: jump.dump
 #name: eBPF JUMP instructions, pseudoc syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	05 00 03 00 00 00 00 00 	goto 3
+   8:	0f 11 00 00 00 00 00 00 	r1\+=r1
+  10:	15 03 01 00 03 00 00 00 	if r3==3 goto 1
+  18:	1d 43 00 00 00 00 00 00 	if r3==r4 goto 0
+  20:	35 03 fd ff 03 00 00 00 	if r3>=3 goto -3
+  28:	3d 43 fc ff 00 00 00 00 	if r3>=r4 goto -4
+  30:	a5 03 01 00 03 00 00 00 	if r3<3 goto 1
+  38:	ad 43 00 00 00 00 00 00 	if r3<r4 goto 0
+  40:	b5 03 01 00 03 00 00 00 	if r3<=3 goto 1
+  48:	bd 43 00 00 00 00 00 00 	if r3<=r4 goto 0
+  50:	45 03 01 00 03 00 00 00 	if r3&3 goto 1
+  58:	4d 43 00 00 00 00 00 00 	if r3&r4 goto 0
+  60:	55 03 01 00 03 00 00 00 	if r3!=3 goto 1
+  68:	5d 43 00 00 00 00 00 00 	if r3!=r4 goto 0
+  70:	65 03 01 00 03 00 00 00 	if r3s>3 goto 1
+  78:	6d 43 00 00 00 00 00 00 	if r3s>r4 goto 0
+  80:	75 03 01 00 03 00 00 00 	if r3s>=3 goto 1
+  88:	7d 43 00 00 00 00 00 00 	if r3s>=r4 goto 0
+  90:	c5 03 01 00 03 00 00 00 	if r3s<3 goto 1
+  98:	cd 43 00 00 00 00 00 00 	if r3s<r4 goto 0
+  a0:	d5 03 01 00 03 00 00 00 	if r3s<=3 goto 1
+  a8:	dd 43 00 00 00 00 00 00 	if r3s<=r4 goto 0
+  b0:	06 00 00 00 01 00 00 00 	gotol 1
+  b8:	06 00 00 00 00 00 00 00 	gotol 0
\ No newline at end of file
diff --git a/gas/testsuite/gas/bpf/jump-pseudoc.s b/gas/testsuite/gas/bpf/jump-pseudoc.s
index 1331bdad307..9f860807a3e 100644
--- a/gas/testsuite/gas/bpf/jump-pseudoc.s
+++ b/gas/testsuite/gas/bpf/jump-pseudoc.s
@@ -22,4 +22,6 @@
         if r3 s< r4 goto 1f
 1:      if r3 s<= 3 goto 1f
         if r3 s<= r4 goto 1f
+1:      gotol 1f
+        gotol 1f
 1:
diff --git a/gas/testsuite/gas/bpf/jump.d b/gas/testsuite/gas/bpf/jump.d
index 082b3c3018e..4da37278cf8 100644
--- a/gas/testsuite/gas/bpf/jump.d
+++ b/gas/testsuite/gas/bpf/jump.d
@@ -1,5 +1,34 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M dec
 #source: jump.s
-#dump: jump.dump
 #name: eBPF JUMP instructions, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	05 00 03 00 00 00 00 00 	ja 3
+   8:	0f 11 00 00 00 00 00 00 	add %r1,%r1
+  10:	15 03 01 00 03 00 00 00 	jeq %r3,3,1
+  18:	1d 43 00 00 00 00 00 00 	jeq %r3,%r4,0
+  20:	35 03 fd ff 03 00 00 00 	jge %r3,3,-3
+  28:	3d 43 fc ff 00 00 00 00 	jge %r3,%r4,-4
+  30:	a5 03 01 00 03 00 00 00 	jlt %r3,3,1
+  38:	ad 43 00 00 00 00 00 00 	jlt %r3,%r4,0
+  40:	b5 03 01 00 03 00 00 00 	jle %r3,3,1
+  48:	bd 43 00 00 00 00 00 00 	jle %r3,%r4,0
+  50:	45 03 01 00 03 00 00 00 	jset %r3,3,1
+  58:	4d 43 00 00 00 00 00 00 	jset %r3,%r4,0
+  60:	55 03 01 00 03 00 00 00 	jne %r3,3,1
+  68:	5d 43 00 00 00 00 00 00 	jne %r3,%r4,0
+  70:	65 03 01 00 03 00 00 00 	jsgt %r3,3,1
+  78:	6d 43 00 00 00 00 00 00 	jsgt %r3,%r4,0
+  80:	75 03 01 00 03 00 00 00 	jsge %r3,3,1
+  88:	7d 43 00 00 00 00 00 00 	jsge %r3,%r4,0
+  90:	c5 03 01 00 03 00 00 00 	jslt %r3,3,1
+  98:	cd 43 00 00 00 00 00 00 	jslt %r3,%r4,0
+  a0:	d5 03 01 00 03 00 00 00 	jsle %r3,3,1
+  a8:	dd 43 00 00 00 00 00 00 	jsle %r3,%r4,0
+  b0:	06 00 00 00 01 00 00 00 	jal 1
+  b8:	06 00 00 00 00 00 00 00 	jal 0
\ No newline at end of file
diff --git a/gas/testsuite/gas/bpf/jump.s b/gas/testsuite/gas/bpf/jump.s
index aae4295e160..c3d36bddeec 100644
--- a/gas/testsuite/gas/bpf/jump.s
+++ b/gas/testsuite/gas/bpf/jump.s
@@ -22,4 +22,6 @@
         jslt %r3,%r4,1f
 1:      jsle %r3,3,1f
         jsle %r3,%r4,1f
-1:      
+1:      jal 1f
+        jal 1f
+1:
diff --git a/gas/testsuite/gas/bpf/jump32-pseudoc.d b/gas/testsuite/gas/bpf/jump32-pseudoc.d
index 55fb97b82db..27367d36594 100644
--- a/gas/testsuite/gas/bpf/jump32-pseudoc.d
+++ b/gas/testsuite/gas/bpf/jump32-pseudoc.d
@@ -1,5 +1,32 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M dec,pseudoc
 #source: jump32-pseudoc.s
-#dump: jump32.dump
 #name: eBPF JUMP32 instructions, pseudoc syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	05 00 03 00 00 00 00 00 	goto 3
+   8:	0f 11 00 00 00 00 00 00 	r1\+=r1
+  10:	16 03 01 00 03 00 00 00 	if w3==3 goto 1
+  18:	1e 43 00 00 00 00 00 00 	if w3==w4 goto 0
+  20:	36 03 fd ff 03 00 00 00 	if w3>=3 goto -3
+  28:	3e 43 fc ff 00 00 00 00 	if w3>=w4 goto -4
+  30:	a6 03 01 00 03 00 00 00 	if w3<3 goto 1
+  38:	ae 43 00 00 00 00 00 00 	if w3<w4 goto 0
+  40:	b6 03 01 00 03 00 00 00 	if w3<=3 goto 1
+  48:	be 43 00 00 00 00 00 00 	if w3<=w4 goto 0
+  50:	46 03 01 00 03 00 00 00 	if w3&3 goto 1
+  58:	4e 43 00 00 00 00 00 00 	if w3&w4 goto 0
+  60:	56 03 01 00 03 00 00 00 	if w3!=3 goto 1
+  68:	5e 43 00 00 00 00 00 00 	if w3!=w4 goto 0
+  70:	66 03 01 00 03 00 00 00 	if w3s>3 goto 1
+  78:	6e 43 00 00 00 00 00 00 	if w3s>w4 goto 0
+  80:	76 03 01 00 03 00 00 00 	if w3s>=3 goto 1
+  88:	7e 43 00 00 00 00 00 00 	if w3s>=w4 goto 0
+  90:	c6 03 01 00 03 00 00 00 	if w3s<3 goto 1
+  98:	ce 43 00 00 00 00 00 00 	if w3s<w4 goto 0
+  a0:	d6 03 01 00 03 00 00 00 	if w3s<=3 goto 1
+  a8:	de 43 00 00 00 00 00 00 	if w3s<=w4 goto 0
diff --git a/gas/testsuite/gas/bpf/jump32.d b/gas/testsuite/gas/bpf/jump32.d
index c5efb41cc08..e39dc381384 100644
--- a/gas/testsuite/gas/bpf/jump32.d
+++ b/gas/testsuite/gas/bpf/jump32.d
@@ -1,5 +1,32 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M dec
 #source: jump32.s
-#dump: jump32.dump
 #name: eBPF JUMP32 instructions, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	05 00 03 00 00 00 00 00 	ja 3
+   8:	0f 11 00 00 00 00 00 00 	add %r1,%r1
+  10:	16 03 01 00 03 00 00 00 	jeq32 %r3,3,1
+  18:	1e 43 00 00 00 00 00 00 	jeq32 %r3,%r4,0
+  20:	36 03 fd ff 03 00 00 00 	jge32 %r3,3,-3
+  28:	3e 43 fc ff 00 00 00 00 	jge32 %r3,%r4,-4
+  30:	a6 03 01 00 03 00 00 00 	jlt32 %r3,3,1
+  38:	ae 43 00 00 00 00 00 00 	jlt32 %r3,%r4,0
+  40:	b6 03 01 00 03 00 00 00 	jle32 %r3,3,1
+  48:	be 43 00 00 00 00 00 00 	jle32 %r3,%r4,0
+  50:	46 03 01 00 03 00 00 00 	jset32 %r3,3,1
+  58:	4e 43 00 00 00 00 00 00 	jset32 %r3,%r4,0
+  60:	56 03 01 00 03 00 00 00 	jne32 %r3,3,1
+  68:	5e 43 00 00 00 00 00 00 	jne32 %r3,%r4,0
+  70:	66 03 01 00 03 00 00 00 	jsgt32 %r3,3,1
+  78:	6e 43 00 00 00 00 00 00 	jsgt32 %r3,%r4,0
+  80:	76 03 01 00 03 00 00 00 	jsge32 %r3,3,1
+  88:	7e 43 00 00 00 00 00 00 	jsge32 %r3,%r4,0
+  90:	c6 03 01 00 03 00 00 00 	jslt32 %r3,3,1
+  98:	ce 43 00 00 00 00 00 00 	jslt32 %r3,%r4,0
+  a0:	d6 03 01 00 03 00 00 00 	jsle32 %r3,3,1
+  a8:	de 43 00 00 00 00 00 00 	jsle32 %r3,%r4,0
diff --git a/gas/testsuite/gas/bpf/lddw-be-pseudoc.d b/gas/testsuite/gas/bpf/lddw-be-pseudoc.d
index e7b477ac4ca..940780b81a2 100644
--- a/gas/testsuite/gas/bpf/lddw-be-pseudoc.d
+++ b/gas/testsuite/gas/bpf/lddw-be-pseudoc.d
@@ -1,5 +1,18 @@
-#as: --EB
+#as: -EB -mdialect=pseudoc
 #source: lddw-pseudoc.s
-#objdump: -dr
-#dump: lddw-be.dump
+#objdump: -dr -M hex,pseudoc
 #name: eBPF LDDW, big-endian, pseudoc syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	18 30 00 00 00 00 00 01 	r3=0x1 ll
+   8:	00 00 00 00 00 00 00 00 
+  10:	18 40 00 00 de ad be ef 	r4=0xdeadbeef ll
+  18:	00 00 00 00 00 00 00 00 
+  20:	18 50 00 00 55 66 77 88 	r5=0x1122334455667788 ll
+  28:	00 00 00 00 11 22 33 44 
+  30:	18 60 00 00 ff ff ff fe 	r6=0xfffffffffffffffe ll
+  38:	00 00 00 00 ff ff ff ff 
diff --git a/gas/testsuite/gas/bpf/lddw-be.d b/gas/testsuite/gas/bpf/lddw-be.d
index cf1bfba9b3d..c1043787dcd 100644
--- a/gas/testsuite/gas/bpf/lddw-be.d
+++ b/gas/testsuite/gas/bpf/lddw-be.d
@@ -1,5 +1,18 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: lddw.s
-#objdump: -dr
-#dump: lddw-be.dump
+#objdump: -dr -M hex
 #name: eBPF LDDW, big-endian, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	18 30 00 00 00 00 00 01 	lddw %r3,0x1
+   8:	00 00 00 00 00 00 00 00 
+  10:	18 40 00 00 de ad be ef 	lddw %r4,0xdeadbeef
+  18:	00 00 00 00 00 00 00 00 
+  20:	18 50 00 00 55 66 77 88 	lddw %r5,0x1122334455667788
+  28:	00 00 00 00 11 22 33 44 
+  30:	18 60 00 00 ff ff ff fe 	lddw %r6,0xfffffffffffffffe
+  38:	00 00 00 00 ff ff ff ff 
diff --git a/gas/testsuite/gas/bpf/lddw-pseudoc.d b/gas/testsuite/gas/bpf/lddw-pseudoc.d
index 838e012be0b..3a5ce86ff95 100644
--- a/gas/testsuite/gas/bpf/lddw-pseudoc.d
+++ b/gas/testsuite/gas/bpf/lddw-pseudoc.d
@@ -1,5 +1,18 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M hex,pseudoc
 #source: lddw-pseudoc.s
-#dump: lddw.dump
 #name: eBPF LDDW, pseudoc syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	18 03 00 00 01 00 00 00 	r3=0x1 ll
+   8:	00 00 00 00 00 00 00 00 
+  10:	18 04 00 00 ef be ad de 	r4=0xdeadbeef ll
+  18:	00 00 00 00 00 00 00 00 
+  20:	18 05 00 00 88 77 66 55 	r5=0x1122334455667788 ll
+  28:	00 00 00 00 44 33 22 11 
+  30:	18 06 00 00 fe ff ff ff 	r6=0xfffffffffffffffe ll
+  38:	00 00 00 00 ff ff ff ff 
diff --git a/gas/testsuite/gas/bpf/lddw.d b/gas/testsuite/gas/bpf/lddw.d
index 82ff1b47bc4..c7a08098fb8 100644
--- a/gas/testsuite/gas/bpf/lddw.d
+++ b/gas/testsuite/gas/bpf/lddw.d
@@ -1,5 +1,18 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M hex
 #source: lddw.s
-#dump: lddw.dump
 #name: eBPF LDDW, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	18 03 00 00 01 00 00 00 	lddw %r3,0x1
+   8:	00 00 00 00 00 00 00 00 
+  10:	18 04 00 00 ef be ad de 	lddw %r4,0xdeadbeef
+  18:	00 00 00 00 00 00 00 00 
+  20:	18 05 00 00 88 77 66 55 	lddw %r5,0x1122334455667788
+  28:	00 00 00 00 44 33 22 11 
+  30:	18 06 00 00 fe ff ff ff 	lddw %r6,0xfffffffffffffffe
+  38:	00 00 00 00 ff ff ff ff 
diff --git a/gas/testsuite/gas/bpf/mem-be.d b/gas/testsuite/gas/bpf/mem-be.d
index 148c55a3491..cd7b35c60a3 100644
--- a/gas/testsuite/gas/bpf/mem-be.d
+++ b/gas/testsuite/gas/bpf/mem-be.d
@@ -1,7 +1,6 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: mem.s
-#source: mem-pseudoc.s
-#objdump: -dr
+#objdump: -dr -M hex
 #name: eBPF MEM instructions, modulus lddw, big endian
 
 .*: +file format .*bpf.*
@@ -20,12 +19,18 @@ Disassembly of section .text:
   40:	61 21 7e ef 00 00 00 00 	ldxw %r2,\[%r1\+0x7eef\]
   48:	69 21 7e ef 00 00 00 00 	ldxh %r2,\[%r1\+0x7eef\]
   50:	71 21 7e ef 00 00 00 00 	ldxb %r2,\[%r1\+0x7eef\]
-  58:	79 21 ff fe 00 00 00 00 	ldxdw %r2,\[%r1\+-2\]
+  58:	79 21 ff fe 00 00 00 00 	ldxdw %r2,\[%r1\+0xfffe\]
   60:	63 12 7e ef 00 00 00 00 	stxw \[%r1\+0x7eef\],%r2
   68:	6b 12 7e ef 00 00 00 00 	stxh \[%r1\+0x7eef\],%r2
   70:	73 12 7e ef 00 00 00 00 	stxb \[%r1\+0x7eef\],%r2
-  78:	7b 12 ff fe 00 00 00 00 	stxdw \[%r1\+-2\],%r2
+  78:	7b 12 ff fe 00 00 00 00 	stxdw \[%r1\+0xfffe\],%r2
   80:	72 10 7e ef 11 22 33 44 	stb \[%r1\+0x7eef\],0x11223344
   88:	6a 10 7e ef 11 22 33 44 	sth \[%r1\+0x7eef\],0x11223344
   90:	62 10 7e ef 11 22 33 44 	stw \[%r1\+0x7eef\],0x11223344
-  98:	7a 10 ff fe 11 22 33 44 	stdw \[%r1\+-2\],0x11223344
+  98:	7a 10 ff fe 11 22 33 44 	stdw \[%r1\+0xfffe\],0x11223344
+  a0:	81 21 7e ef 00 00 00 00 	ldxsw %r2,\[%r1\+0x7eef\]
+  a8:	89 21 7e ef 00 00 00 00 	ldxsh %r2,\[%r1\+0x7eef\]
+  b0:	91 21 7e ef 00 00 00 00 	ldxsb %r2,\[%r1\+0x7eef\]
+  b8:	99 21 7e ef 00 00 00 00 	ldxsdw %r2,\[%r1\+0x7eef\]
+  c0:	79 21 00 00 00 00 00 00 	ldxdw %r2,\[%r1\+0x0\]
+  c8:	40 03 00 00 00 00 00 00 	ldindw %r3,0x0
diff --git a/gas/testsuite/gas/bpf/mem-pseudoc.d b/gas/testsuite/gas/bpf/mem-pseudoc.d
index ef5b8957d64..7c37c16b6b8 100644
--- a/gas/testsuite/gas/bpf/mem-pseudoc.d
+++ b/gas/testsuite/gas/bpf/mem-pseudoc.d
@@ -1,5 +1,36 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M hex,pseudoc
 #source: mem-pseudoc.s
-#dump: mem.dump
 #name: eBPF MEM instructions, modulus lddw, pseudo-c syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	20 00 00 00 ef be 00 00 	r0=\*\(u32\*\)skb\[0xbeef\]
+   8:	28 00 00 00 ef be 00 00 	r0=\*\(u16\*\)skb\[0xbeef\]
+  10:	30 00 00 00 ef be 00 00 	r0=\*\(u8\*\)skb\[0xbeef\]
+  18:	38 00 00 00 ef be 00 00 	r0=\*\(u64\*\)skb\[0xbeef\]
+  20:	40 30 00 00 ef be 00 00 	r0=\*\(u32\*\)skb\[r3\+0xbeef\]
+  28:	48 50 00 00 ef be 00 00 	r0=\*\(u16\*\)skb\[r5\+0xbeef\]
+  30:	50 70 00 00 ef be 00 00 	r0=\*\(u8\*\)skb\[r7\+0xbeef\]
+  38:	58 90 00 00 ef be 00 00 	r0=\*\(u64\*\)skb\[r9\+0xbeef\]
+  40:	61 12 ef 7e 00 00 00 00 	r2=\*\(u32\*\)\(r1\+0x7eef\)
+  48:	69 12 ef 7e 00 00 00 00 	r2=\*\(u16\*\)\(r1\+0x7eef\)
+  50:	71 12 ef 7e 00 00 00 00 	r2=\*\(u8\*\)\(r1\+0x7eef\)
+  58:	79 12 fe ff 00 00 00 00 	r2=\*\(u64\*\)\(r1\+0xfffe\)
+  60:	63 21 ef 7e 00 00 00 00 	\*\(u32\*\)\(r1\+0x7eef\)=r2
+  68:	6b 21 ef 7e 00 00 00 00 	\*\(u16\*\)\(r1\+0x7eef\)=r2
+  70:	73 21 ef 7e 00 00 00 00 	\*\(u8\*\)\(r1\+0x7eef\)=r2
+  78:	7b 21 fe ff 00 00 00 00 	\*\(u64\*\)\(r1\+0xfffe\)=r2
+  80:	72 01 ef 7e 44 33 22 11 	\*\(u8\*\)\(r1\+0x7eef\)=0x11223344
+  88:	6a 01 ef 7e 44 33 22 11 	\*\(u16\*\)\(r1\+0x7eef\)=0x11223344
+  90:	62 01 ef 7e 44 33 22 11 	\*\(u32\*\)\(r1\+0x7eef\)=0x11223344
+  98:	7a 01 fe ff 44 33 22 11 	\*\(u64\*\)\(r1\+0xfffe\)=0x11223344
+  a0:	81 12 ef 7e 00 00 00 00 	r2=\*\(s32\*\)\(r1\+0x7eef\)
+  a8:	89 12 ef 7e 00 00 00 00 	r2=\*\(s16\*\)\(r1\+0x7eef\)
+  b0:	91 12 ef 7e 00 00 00 00 	r2=\*\(s8\*\)\(r1\+0x7eef\)
+  b8:	99 12 ef 7e 00 00 00 00 	r2=\*\(s64\*\)\(r1\+0x7eef\)
+  c0:	58 50 00 00 00 00 00 00 	r0=\*\(u64\*\)skb\[r5\+0x0\]
+  c8:	61 12 00 00 00 00 00 00 	r2=\*\(u32\*\)\(r1\+0x0\)
diff --git a/gas/testsuite/gas/bpf/mem-pseudoc.s b/gas/testsuite/gas/bpf/mem-pseudoc.s
index 06c2cfcdde9..823083d498a 100644
--- a/gas/testsuite/gas/bpf/mem-pseudoc.s
+++ b/gas/testsuite/gas/bpf/mem-pseudoc.s
@@ -17,7 +17,13 @@
 	*(u16 *)(r1 + 32495) = r2
 	*(u8 *)(r1 + 32495) = r2
 	*(u64 *)(r1 - 2) = r2
-	stb [%r1+0x7eef], 0x11223344
-	sth [%r1+0x7eef], 0x11223344
-	stw [%r1+0x7eef], 0x11223344
-	stdw [%r1+-2], 0x11223344
+        *(u8 *)(r1 + 0x7eef) = 0x11223344
+	*(u16 *)(r1 + 0x7eef) = 0x11223344
+	*(u32 *)(r1 + 0x7eef) = 0x11223344
+	*(u64 *)(r1 + -2) = 0x11223344
+        r2 = *(s32*)(r1+0x7eef)
+        r2 = *(s16*)(r1+0x7eef)
+        r2 = *(s8*)(r1+0x7eef)
+        r2 = *(s64*)(r1+0x7eef)
+	r0 = *(u64 *)skb[r5 + 0]
+	r2 = *(u32 *)(r1 + 0)
diff --git a/gas/testsuite/gas/bpf/mem.d b/gas/testsuite/gas/bpf/mem.d
index b01bdaaf241..9a1e7095df0 100644
--- a/gas/testsuite/gas/bpf/mem.d
+++ b/gas/testsuite/gas/bpf/mem.d
@@ -1,5 +1,36 @@
-#as: --EL
-#objdump: -dr
+#as: -EL -mdialect=normal
+#objdump: -dr -M hex
 #source: mem.s
-#dump: mem.dump
 #name: eBPF MEM instructions, modulus lddw, normal syntax
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	20 00 00 00 ef be 00 00 	ldabsw 0xbeef
+   8:	28 00 00 00 ef be 00 00 	ldabsh 0xbeef
+  10:	30 00 00 00 ef be 00 00 	ldabsb 0xbeef
+  18:	38 00 00 00 ef be 00 00 	ldabsdw 0xbeef
+  20:	40 30 00 00 ef be 00 00 	ldindw %r3,0xbeef
+  28:	48 50 00 00 ef be 00 00 	ldindh %r5,0xbeef
+  30:	50 70 00 00 ef be 00 00 	ldindb %r7,0xbeef
+  38:	58 90 00 00 ef be 00 00 	ldinddw %r9,0xbeef
+  40:	61 12 ef 7e 00 00 00 00 	ldxw %r2,\[%r1\+0x7eef\]
+  48:	69 12 ef 7e 00 00 00 00 	ldxh %r2,\[%r1\+0x7eef\]
+  50:	71 12 ef 7e 00 00 00 00 	ldxb %r2,\[%r1\+0x7eef\]
+  58:	79 12 fe ff 00 00 00 00 	ldxdw %r2,\[%r1\+0xfffe\]
+  60:	63 21 ef 7e 00 00 00 00 	stxw \[%r1\+0x7eef\],%r2
+  68:	6b 21 ef 7e 00 00 00 00 	stxh \[%r1\+0x7eef\],%r2
+  70:	73 21 ef 7e 00 00 00 00 	stxb \[%r1\+0x7eef\],%r2
+  78:	7b 21 fe ff 00 00 00 00 	stxdw \[%r1\+0xfffe\],%r2
+  80:	72 01 ef 7e 44 33 22 11 	stb \[%r1\+0x7eef\],0x11223344
+  88:	6a 01 ef 7e 44 33 22 11 	sth \[%r1\+0x7eef\],0x11223344
+  90:	62 01 ef 7e 44 33 22 11 	stw \[%r1\+0x7eef\],0x11223344
+  98:	7a 01 fe ff 44 33 22 11 	stdw \[%r1\+0xfffe\],0x11223344
+  a0:	81 12 ef 7e 00 00 00 00 	ldxsw %r2,\[%r1\+0x7eef\]
+  a8:	89 12 ef 7e 00 00 00 00 	ldxsh %r2,\[%r1\+0x7eef\]
+  b0:	91 12 ef 7e 00 00 00 00 	ldxsb %r2,\[%r1\+0x7eef\]
+  b8:	99 12 ef 7e 00 00 00 00 	ldxsdw %r2,\[%r1\+0x7eef\]
+  c0:	79 12 00 00 00 00 00 00 	ldxdw %r2,\[%r1\+0x0\]
+  c8:	40 30 00 00 00 00 00 00 	ldindw %r3,0x0
diff --git a/gas/testsuite/gas/bpf/mem.s b/gas/testsuite/gas/bpf/mem.s
index af6f41b0db0..adeda473bb8 100644
--- a/gas/testsuite/gas/bpf/mem.s
+++ b/gas/testsuite/gas/bpf/mem.s
@@ -21,4 +21,10 @@
  	stb [%r1+0x7eef], 0x11223344
  	sth [%r1+0x7eef], 0x11223344
  	stw [%r1+0x7eef], 0x11223344
- 	stdw [%r1+-2], 0x11223344
+ 	stdw [%r1-2], 0x11223344
+        ldxsw %r2, [%r1+0x7eef]
+        ldxsh %r2, [%r1+0x7eef]
+        ldxsb %r2, [%r1+0x7eef]
+        ldxsdw %r2, [%r1+0x7eef]
+	ldxdw %r2, [%r1+0]
+	ldindw %r3, 0
diff --git a/gas/testsuite/gas/i386/avx512f-nondef.d b/gas/testsuite/gas/i386/avx512f-nondef.d
index a062fe335bc..6aae6a50fd2 100644
--- a/gas/testsuite/gas/i386/avx512f-nondef.d
+++ b/gas/testsuite/gas/i386/avx512f-nondef.d
@@ -15,10 +15,14 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	62 f2 55 1f 3b f4    	vpminud \{rn-bad\},%zmm4,%zmm5,%zmm6\{%k7\}
 [ 	]*[a-f0-9]+:	62 f2 7e 48 31 72 7f 	vpmovdb %zmm6,0x7f0\(%edx\)
 [ 	]*[a-f0-9]+:	62 f2 7e 58 31 72 7f 	vpmovdb %zmm6,0x7f0\(%edx\)\{bad\}
-[ 	]*[a-f0-9]+:	62 f1 7c 88 58       	\(bad\)
-[ 	]*[a-f0-9]+:	c3                   	ret
+[ 	]*[a-f0-9]+:	62 f1 7c 88 58 c3    	(\{evex\} )?vaddps %xmm3,%xmm0,%xmm0\{bad\}
 [ 	]*[a-f0-9]+:	62 f2 7d 4f 92 01    	vgatherdps \(bad\),%zmm0\{%k7\}
 [ 	]*[a-f0-9]+:	67 62 f2 7d 4f 92 01 	addr16 vgatherdps \(bad\),%zmm0\{%k7\}
 [ 	]*[a-f0-9]+:	62 f2 7d cf 92 04 08 	vgatherdps \(%eax,%zmm1(,1)?\),%zmm0\{%k7\}\{z\}/\(bad\)
 [ 	]*[a-f0-9]+:	62 f2 7d 48 92 04 08 	vgatherdps \(%eax,%zmm1(,1)?\),%zmm0/\(bad\)
+[ 	]*[a-f0-9]+:	62 f1 7c cf c2 c0 00 	vcmpeqps %zmm0,%zmm0,%k0\{%k7\}\{z\}/\(bad\)
+[ 	]*[a-f0-9]+:	62 f1 7c cf 29 00    	vmovaps %zmm0,\(%eax\)\{%k7\}\{z\}/\(bad\)
+[ 	]*[a-f0-9]+:	62 f1 7d 0a c5 c8 00 	vpextrw \$(0x)?0,%xmm0,%ecx\{%k2\}/\(bad\)
+[ 	]*[a-f0-9]+:	62 f3 7d 0a 16 01 00 	vpextrd \$(0x)?0,%xmm0,\(%ecx\)\{%k2\}/\(bad\)
+[ 	]*[a-f0-9]+:	62 f2 7d 4a 2a 01    	vmovntdqa \(%ecx\),%zmm0\{%k2\}/\(bad\)
 #pass
diff --git a/gas/testsuite/gas/i386/avx512f-nondef.s b/gas/testsuite/gas/i386/avx512f-nondef.s
index a1175929474..3c4cdffcd59 100644
--- a/gas/testsuite/gas/i386/avx512f-nondef.s
+++ b/gas/testsuite/gas/i386/avx512f-nondef.s
@@ -26,3 +26,18 @@
 	.insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0{%k7}{z}
 # vgatherdps (%eax,%zmm1), %zmm0		# without actual mask register
 	.insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0
+
+	# vcmpeqps %zmm0, %zmm0, %k0{%k7} with EVEX.z set
+	.insn EVEX.0f 0xc2, $0, %zmm0, %zmm0, %k0{%k7}{z}
+
+	# vmovaps %zmm0, (%eax){%k7} with EVEX.z set
+	.insn EVEX.0f 0x29, %zmm0, (%eax){%k7}{z}
+
+	# vpextrw $0, %xmm0, %ecx with non-zero EVEX.aaa
+	.insn EVEX.66.0f 0xc5, $0, %xmm0, %ecx{%k2}
+
+	# vpextrd $0, %xmm0, (%ecx) with non-zero EVEX.aaa
+	.insn EVEX.66.0f3a 0x16, $0, %xmm0, (%ecx){%k2}
+
+	# vmovntdqa (%ecx), %zmm0 with non-zero EVEX.aaa
+	.insn EVEX.66.0f38.W0 0x2a, (%ecx), %zmm0{%k2}
diff --git a/gas/testsuite/gas/i386/disassem.d b/gas/testsuite/gas/i386/disassem.d
index 7e414a56374..eae69db6553 100644
--- a/gas/testsuite/gas/i386/disassem.d
+++ b/gas/testsuite/gas/i386/disassem.d
@@ -8,309 +8,309 @@
 Disassembly of section \.text:
 
 0+ <\.text>:
-[ 	]*[a-f0-9]+:[ 	]*ff[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*ff[ 	]+ljmp[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*ef[ 	]*out    %eax,\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*ff[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*ff[ 	]+lcall[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*d8 90 90 90 90 90[ 	]*fcoms  -0x6f6f6f70\(%eax\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]+kaddw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]+kaddw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]+kaddw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]+kaddb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]+kaddb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]+kaddb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]+kaddq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]+kaddq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]+kaddq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]+kaddd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]+kaddd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]+kaddd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]+kandw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]+kandw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]+kandw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]+kandb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]+kandb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]+kandb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]+kandq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]+kandq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]+kandq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]+kandd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]+kandd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]+kandd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]+kandnw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]+kandnw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]+kandnw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]+kandnb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]+kandnb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]+kandnb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]+kandnq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]+kandnq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]+kandnq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]+kandnd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]+kandnd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]+kandnd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]+kunpckwd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]+kunpckwd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]+kunpckwd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]+kunpckbw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]+kunpckbw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]+kunpckbw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]+kunpckdq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]+kunpckdq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]+kunpckdq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]+knotw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]+knotw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]+knotw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]+knotb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]+knotb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]+knotb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]+knotq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]+knotq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]+knotq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]+knotd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]+knotd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]+knotd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]+korw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]+korw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]+korw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]+korb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]+korb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]+korb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]+korq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]+korq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]+korq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]+kord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]+kord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]+kord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]+kortestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]+kortestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]+kortestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]+kortestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]+kortestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]+kortestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]+kortestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]+kortestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]+kortestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]+kortestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]+kortestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]+kortestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]+kxnorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]+kxnorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]+kxnorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]+kxnorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]+kxnorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]+kxnorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]+kxnorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]+kxnorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]+kxnorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]+kxnord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]+kxnord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]+kxnord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]+kxorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]+kxorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]+kxorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]+kxorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]+kxorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]+kxorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]+kxorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]+kxorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]+kxorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]+kxord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]+kxord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]+kxord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]+ktestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]+ktestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]+ktestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]+ktestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]+ktestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]+ktestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]+ktestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]+ktestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]+ktestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]+ktestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]+ktestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]+ktestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%ecx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30 8f[ 	]+kshiftrw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30 6a[ 	]+kshiftrw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30 04[ 	]+kshiftrw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30 8f[ 	]+kshiftrb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30 6a[ 	]+kshiftrb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30 04[ 	]+kshiftrb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31 8f[ 	]+kshiftrq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31 6a[ 	]+kshiftrq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31 04[ 	]+kshiftrq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31 8f[ 	]+kshiftrd[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31 6a[ 	]+kshiftrd[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31 04[ 	]+kshiftrd[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32 8f[ 	]+kshiftlw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32 6a[ 	]+kshiftlw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32 04[ 	]+kshiftlw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32 8f[ 	]+kshiftlb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32 6a[ 	]+kshiftlb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32 04[ 	]+kshiftlb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33 8f[ 	]+kshiftlq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33 6a[ 	]+kshiftlq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33 04[ 	]+kshiftlq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33 8f[ 	]+kshiftld[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33 6a[ 	]+kshiftld[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33 04[ 	]+kshiftld[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]+pop[ 	]+%es
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
 [ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 92[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
@@ -318,23 +318,23 @@ Disassembly of section \.text:
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
 [ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 92[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%esi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*aas
 [ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 93[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
@@ -345,6 +345,12 @@ Disassembly of section \.text:
 [ 	]*[a-f0-9]+:[ 	]*c4 e2 01 1c[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*41[ 	]*inc[ 	]*%ecx
 [ 	]*[a-f0-9]+:[ 	]*37[ 	]*aaa
+[ 	]*[a-f0-9]+:[ 	]*c4 e2 7f cc[ 	]+vsha512msg1[ 	]*\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*71 20[ 	]+jno.*
+[ 	]*[a-f0-9]+:[ 	]*c4 e2 7f cd[ 	]+vsha512msg2[ 	]*\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*71 20[ 	]+jno.*
+[ 	]*[a-f0-9]+:[ 	]*c4 e2 6f cb[ 	]+vsha512rnds2[ 	]*\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*71 20[ 	]+jno.*
 [ 	]*[a-f0-9]+:[ 	]*62 f2 ad 08 1c[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*01 01[ 	]*add[ 	]*%eax,\(%ecx\)
 [ 	]*[a-f0-9]+:[ 	]*62 f3 7d 28 1b[ 	]*\(bad\)
diff --git a/gas/testsuite/gas/i386/disassem.s b/gas/testsuite/gas/i386/disassem.s
index 7c09fadceea..0fb0dd48b54 100644
--- a/gas/testsuite/gas/i386/disassem.s
+++ b/gas/testsuite/gas/i386/disassem.s
@@ -119,30 +119,30 @@
 .byte 0xC4, 0xE1, 0xF9, 0x99, 0x9B
 .byte 0xC4, 0xE1, 0xF9, 0x99, 0x6F
 	.insn VEX.L0.66.0f.W1 0x99, (%edi), %k7
-.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x01
+.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x07
 .byte 0xC5, 0xF8, 0x92, 0x9B
 .byte 0xC5, 0xF8, 0x92, 0x6F
 	.insn VEX.L0.NP.0f.W0 0x92, (%edi), %k7
@@ -168,6 +168,9 @@
 .byte 0xC4, 0xE1, 0xF9, 0x93, 0x6F
 	.insn VEX.L0.66.0f.W1 0x93, (%edi), %k7
 .byte 0xc4, 0xe2, 0x1, 0x1c, 0x41, 0x37
+	.insn VEX.L1.F2.0f38.W0 0xCC, 32(%ecx), %ymm6
+	.insn VEX.L1.F2.0f38.W0 0xCD, 32(%ecx), %ymm6
+	.insn VEX.L1.F2.0f38.W0 0xCB, 32(%ecx), %ymm2, %ymm6
 .byte 0x62, 0xf2, 0xad, 0x08, 0x1c, 0x01
 .byte 0x1
 	.insn EVEX.66.0f3a.W0 0x1b, $0x25, %ymm0, %xmm1
diff --git a/gas/testsuite/gas/i386/i386-intel.d b/gas/testsuite/gas/i386/i386-intel.d
index a65c12e3edf..12c0500b1d3 100644
--- a/gas/testsuite/gas/i386/i386-intel.d
+++ b/gas/testsuite/gas/i386/i386-intel.d
@@ -62,45 +62,45 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	0f b6 00             	movzx  eax,BYTE PTR \[eax\]
 [ 	]*[a-f0-9]+:	0f b7 00             	movzx  eax,WORD PTR \[eax\]
 [ 	]*[a-f0-9]+:	0f c3 00             	movnti DWORD PTR \[eax\],eax
-[ 	]*[a-f0-9]+:	63 ca                	arpl   dx,cx
-[ 	]*[a-f0-9]+:	63 ca                	arpl   dx,cx
-[ 	]*[a-f0-9]+:	63 0a                	arpl   (WORD PTR )?\[edx\],cx
-[ 	]*[a-f0-9]+:	63 0a                	arpl   (WORD PTR )?\[edx\],cx
+[ 	]*[a-f0-9]+:	63 ca                	arpl   edx,ecx
+[ 	]*[a-f0-9]+:	63 ca                	arpl   edx,ecx
+[ 	]*[a-f0-9]+:	63 0a                	arpl   (WORD PTR )?\[edx\],ecx
+[ 	]*[a-f0-9]+:	63 0a                	arpl   (WORD PTR )?\[edx\],ecx
 [ 	]*[a-f0-9]+:	66 0f 02 d2          	lar    dx,dx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    edx,edx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    edx,edx
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    dx,WORD PTR \[edx\]
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    edx,WORD PTR \[edx\]
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   (WORD PTR )?\[edx\]
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    dx,dx
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    edx,edx
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    edx,edx
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    dx,WORD PTR \[edx\]
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    edx,WORD PTR \[edx\]
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    (WORD PTR )?\[edx\]
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   (WORD PTR )?\[edx\]
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   (WORD PTR )?\[edx\]
-[ 	]*[a-f0-9]+:	63 d1                	arpl   cx,dx
-[ 	]*[a-f0-9]+:	63 d1                	arpl   cx,dx
-[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],dx
-[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],dx
-[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],dx
-[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],dx
+[ 	]*[a-f0-9]+:	63 d1                	arpl   ecx,edx
+[ 	]*[a-f0-9]+:	63 d1                	arpl   ecx,edx
+[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],edx
+[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],edx
+[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],edx
+[ 	]*[a-f0-9]+:	63 11                	arpl   (WORD PTR )?\[ecx],edx
 [ 	]*[a-f0-9]+:	66 0f 02 d2          	lar    dx,dx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    edx,edx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    edx,edx
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    dx,WORD PTR \[edx\]
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    edx,WORD PTR \[edx\]
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   (WORD PTR )?\[edx\]
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   (WORD PTR )?\[edx\]
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    dx,dx
@@ -108,16 +108,16 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    edx,edx
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    dx,WORD PTR \[edx\]
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    edx,WORD PTR \[edx\]
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    (WORD PTR )?\[edx\]
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    (WORD PTR )?\[edx\]
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   (WORD PTR )?\[edx\]
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   (WORD PTR )?\[edx\]
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   (WORD PTR )?\[edx\]
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   (WORD PTR )?\[edx\]
 #pass
diff --git a/gas/testsuite/gas/i386/i386.d b/gas/testsuite/gas/i386/i386.d
index 54e19e87641..a77d9f4f37b 100644
--- a/gas/testsuite/gas/i386/i386.d
+++ b/gas/testsuite/gas/i386/i386.d
@@ -61,45 +61,45 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	0f b6 00             	movzbl \(%eax\),%eax
 [ 	]*[a-f0-9]+:	0f b7 00             	movzwl \(%eax\),%eax
 [ 	]*[a-f0-9]+:	0f c3 00             	movnti %eax,\(%eax\)
-[ 	]*[a-f0-9]+:	63 ca                	arpl   %cx,%dx
-[ 	]*[a-f0-9]+:	63 ca                	arpl   %cx,%dx
-[ 	]*[a-f0-9]+:	63 0a                	arpl   %cx,\(%edx\)
-[ 	]*[a-f0-9]+:	63 0a                	arpl   %cx,\(%edx\)
+[ 	]*[a-f0-9]+:	63 ca                	arpl   %ecx,%edx
+[ 	]*[a-f0-9]+:	63 ca                	arpl   %ecx,%edx
+[ 	]*[a-f0-9]+:	63 0a                	arpl   %ecx,\(%edx\)
+[ 	]*[a-f0-9]+:	63 0a                	arpl   %ecx,\(%edx\)
 [ 	]*[a-f0-9]+:	66 0f 02 d2          	lar    %dx,%dx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    %edx,%edx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    %edx,%edx
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    \(%edx\),%dx
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    \(%edx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   \(%edx\)
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    %dx,%dx
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    %edx,%edx
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    %edx,%edx
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    \(%edx\),%dx
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    \(%edx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    \(%edx\)
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   \(%edx\)
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   \(%edx\)
-[ 	]*[a-f0-9]+:	63 d1                	arpl   %dx,%cx
-[ 	]*[a-f0-9]+:	63 d1                	arpl   %dx,%cx
-[ 	]*[a-f0-9]+:	63 11                	arpl   %dx,\(%ecx\)
-[ 	]*[a-f0-9]+:	63 11                	arpl   %dx,\(%ecx\)
-[ 	]*[a-f0-9]+:	63 11                	arpl   %dx,\(%ecx\)
-[ 	]*[a-f0-9]+:	63 11                	arpl   %dx,\(%ecx\)
+[ 	]*[a-f0-9]+:	63 d1                	arpl   %edx,%ecx
+[ 	]*[a-f0-9]+:	63 d1                	arpl   %edx,%ecx
+[ 	]*[a-f0-9]+:	63 11                	arpl   %edx,\(%ecx\)
+[ 	]*[a-f0-9]+:	63 11                	arpl   %edx,\(%ecx\)
+[ 	]*[a-f0-9]+:	63 11                	arpl   %edx,\(%ecx\)
+[ 	]*[a-f0-9]+:	63 11                	arpl   %edx,\(%ecx\)
 [ 	]*[a-f0-9]+:	66 0f 02 d2          	lar    %dx,%dx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    %edx,%edx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    %edx,%edx
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    \(%edx\),%dx
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    \(%edx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   \(%edx\)
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   \(%edx\)
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    %dx,%dx
@@ -107,16 +107,16 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    %edx,%edx
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    \(%edx\),%dx
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    \(%edx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    \(%edx\)
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    \(%edx\)
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   \(%edx\)
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   \(%edx\)
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   \(%edx\)
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   \(%edx\)
 #pass
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index d78f1937c84..90819d80f60 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -496,6 +496,16 @@ if [gas_32_check] then {
     run_dump_test "raoint"
     run_dump_test "raoint-intel"
     run_list_test "amx-complex-inval"
+    run_dump_test "avx-vnni-int16"
+    run_dump_test "avx-vnni-int16-intel"
+    run_dump_test "sha512"
+    run_dump_test "sha512-intel"
+    run_list_test "sha512-inval"
+    run_dump_test "sm3"
+    run_dump_test "sm3-intel"
+    run_dump_test "sm4"
+    run_dump_test "sm4-intel"
+    run_list_test "pbndkb-inval"
     run_list_test "sg"
     run_dump_test "clzero"
     run_dump_test "invlpgb"
diff --git a/gas/testsuite/gas/i386/intel-intel.d b/gas/testsuite/gas/i386/intel-intel.d
index 73fbdf89c1c..4e96969436a 100644
--- a/gas/testsuite/gas/i386/intel-intel.d
+++ b/gas/testsuite/gas/i386/intel-intel.d
@@ -103,7 +103,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	60 +	pusha
 [ 	]*[a-f0-9]+:	61 +	popa
 [ 	]*[a-f0-9]+:	62 90 90 90 90 90 +	bound  edx,QWORD PTR \[eax-0x6f6f6f70\]
-[ 	]*[a-f0-9]+:	63 90 90 90 90 90 +	arpl   WORD PTR \[eax-0x6f6f6f70\],dx
+[ 	]*[a-f0-9]+:	63 90 90 90 90 90 +	arpl   WORD PTR \[eax-0x6f6f6f70\],edx
 [ 	]*[a-f0-9]+:	68 90 90 90 90 +	push   0x90909090
 [ 	]*[a-f0-9]+:	69 90 90 90 90 90 90 90 90 90 	imul   edx,DWORD PTR \[eax-0x6f6f6f70\],0x90909090
 [ 	]*[a-f0-9]+:	6a 90 +	push   0xffffff90
diff --git a/gas/testsuite/gas/i386/intel.d b/gas/testsuite/gas/i386/intel.d
index 374f8753396..bc212893853 100644
--- a/gas/testsuite/gas/i386/intel.d
+++ b/gas/testsuite/gas/i386/intel.d
@@ -102,7 +102,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	60 [ 	]*pusha
 [ 	]*[a-f0-9]+:	61 [ 	]*popa
 [ 	]*[a-f0-9]+:	62 90 90 90 90 90 [ 	]*bound  %edx,-0x6f6f6f70\(%eax\)
-[ 	]*[a-f0-9]+:	63 90 90 90 90 90 [ 	]*arpl   %dx,-0x6f6f6f70\(%eax\)
+[ 	]*[a-f0-9]+:	63 90 90 90 90 90 [ 	]*arpl   %edx,-0x6f6f6f70\(%eax\)
 [ 	]*[a-f0-9]+:	68 90 90 90 90 [ 	]*push   \$0x90909090
 [ 	]*[a-f0-9]+:	69 90 90 90 90 90 90 90 90 90 [ 	]*imul   \$0x90909090,-0x6f6f6f70\(%eax\),%edx
 [ 	]*[a-f0-9]+:	6a 90 [ 	]*push   \$0xffffff90
diff --git a/gas/testsuite/gas/i386/opcode-intel.d b/gas/testsuite/gas/i386/opcode-intel.d
index 7f641db2892..c3c920f25e3 100644
--- a/gas/testsuite/gas/i386/opcode-intel.d
+++ b/gas/testsuite/gas/i386/opcode-intel.d
@@ -102,7 +102,7 @@ Disassembly of section .text:
  *[0-9a-f]+:	60[ 	]+pusha
  *[0-9a-f]+:	61[ 	]+popa
  *[0-9a-f]+:	62 90 90 90 90 90[ 	]+bound[ 	]+edx,(QWORD PTR )?\[eax-0x6f6f6f70\]
- *[0-9a-f]+:	63 90 90 90 90 90[ 	]+arpl[ 	]+(WORD PTR )?\[eax-0x6f6f6f70\],dx
+ *[0-9a-f]+:	63 90 90 90 90 90[ 	]+arpl[ 	]+(WORD PTR )?\[eax-0x6f6f6f70\],edx
  *[0-9a-f]+:	68 90 90 90 90[ 	]+push[ 	]+0x90909090
  *[0-9a-f]+:	69 90 90 90 90 90 90 90 90 90[ 	]+imul[ 	]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\],0x90909090
  *[0-9a-f]+:	6a 90[ 	]+push[ 	]+0xffffff90
diff --git a/gas/testsuite/gas/i386/opcode-suffix.d b/gas/testsuite/gas/i386/opcode-suffix.d
index 152c3b865a0..946a0a4d7a0 100644
--- a/gas/testsuite/gas/i386/opcode-suffix.d
+++ b/gas/testsuite/gas/i386/opcode-suffix.d
@@ -102,7 +102,7 @@ Disassembly of section .text:
  *[0-9a-f]+:	60[ 	]+pushal
  *[0-9a-f]+:	61[ 	]+popal
  *[0-9a-f]+:	62 90 90 90 90 90[ 	]+boundl %edx,-0x6f6f6f70\(%eax\)
- *[0-9a-f]+:	63 90 90 90 90 90[ 	]+arpl[ 	]+%dx,-0x6f6f6f70\(%eax\)
+ *[0-9a-f]+:	63 90 90 90 90 90[ 	]+arpll[ 	]+%edx,-0x6f6f6f70\(%eax\)
  *[0-9a-f]+:	68 90 90 90 90[ 	]+pushl[ 	]+\$0x90909090
  *[0-9a-f]+:	69 90 90 90 90 90 90 90 90 90[ 	]+imull[ 	]+\$0x90909090,-0x6f6f6f70\(%eax\),%edx
  *[0-9a-f]+:	6a 90[ 	]+pushl[ 	]+\$0xffffff90
@@ -248,7 +248,7 @@ Disassembly of section .text:
  *[0-9a-f]+:	fc[ 	]+cld
  *[0-9a-f]+:	fd[ 	]+std
  *[0-9a-f]+:	ff 90 90 90 90 90[ 	]+calll[ 	]+\*-0x6f6f6f70\(%eax\)
- *[0-9a-f]+:	0f 00 90 90 90 90 90[ 	]+lldt[ 	]+-0x6f6f6f70\(%eax\)
+ *[0-9a-f]+:	0f 00 90 90 90 90 90[ 	]+lldtw[ 	]+-0x6f6f6f70\(%eax\)
  *[0-9a-f]+:	0f 01 90 90 90 90 90[ 	]+lgdtl[ 	]+-0x6f6f6f70\(%eax\)
  *[0-9a-f]+:	0f 02 90 90 90 90 90[ 	]+larl[ 	]+-0x6f6f6f70\(%eax\),%edx
  *[0-9a-f]+:	0f 03 90 90 90 90 90[ 	]+lsll[ 	]+-0x6f6f6f70\(%eax\),%edx
diff --git a/gas/testsuite/gas/i386/opcode.d b/gas/testsuite/gas/i386/opcode.d
index c6ffb018a19..7631195d8d4 100644
--- a/gas/testsuite/gas/i386/opcode.d
+++ b/gas/testsuite/gas/i386/opcode.d
@@ -101,7 +101,7 @@ Disassembly of section .text:
  123:	60 [ 	]*pusha
  124:	61 [ 	]*popa
  125:	62 90 90 90 90 90 [ 	]*bound  %edx,-0x6f6f6f70\(%eax\)
- 12b:	63 90 90 90 90 90 [ 	]*arpl   %dx,-0x6f6f6f70\(%eax\)
+ 12b:	63 90 90 90 90 90 [ 	]*arpl   %edx,-0x6f6f6f70\(%eax\)
  131:	68 90 90 90 90 [ 	]*push   \$0x90909090
  136:	69 90 90 90 90 90 90 90 90 90 [ 	]*imul   \$0x90909090,-0x6f6f6f70\(%eax\),%edx
  140:	6a 90 [ 	]*push   \$0xffffff90
diff --git a/gas/testsuite/gas/i386/optimize-1.d b/gas/testsuite/gas/i386/optimize-1.d
index f6c54b7c4a5..23d715c27d5 100644
--- a/gas/testsuite/gas/i386/optimize-1.d
+++ b/gas/testsuite/gas/i386/optimize-1.d
@@ -147,6 +147,21 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%eax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
  +[a-f0-9]+:	0f ba e0 0f          	bt     \$0xf,%eax
  +[a-f0-9]+:	66 0f ba e0 10       	bt     \$0x10,%ax
  +[a-f0-9]+:	0f ba f8 0f          	btc    \$0xf,%eax
diff --git a/gas/testsuite/gas/i386/optimize-1.s b/gas/testsuite/gas/i386/optimize-1.s
index 53a0dd7aec3..e253142db0c 100644
--- a/gas/testsuite/gas/i386/optimize-1.s
+++ b/gas/testsuite/gas/i386/optimize-1.s
@@ -171,6 +171,25 @@ _start:
 	vpxord		128(%eax), %ymm2, %ymm3
 	vpxorq		128(%eax), %ymm2, %ymm3
 
+	pcmpgtb		%mm2, %mm2
+	pcmpgtb		%xmm2, %xmm2
+	vpcmpgtb	%xmm2, %xmm2, %xmm0
+	vpcmpgtb	%ymm2, %ymm2, %ymm0
+
+	pcmpgtw		%mm2, %mm2
+	pcmpgtw		%xmm2, %xmm2
+	vpcmpgtw	%xmm2, %xmm2, %xmm0
+	vpcmpgtw	%ymm2, %ymm2, %ymm0
+
+	pcmpgtd		%mm2, %mm2
+	pcmpgtd		%xmm2, %xmm2
+	vpcmpgtd	%xmm2, %xmm2, %xmm0
+	vpcmpgtd	%ymm2, %ymm2, %ymm0
+
+	pcmpgtq		%xmm2, %xmm2
+	vpcmpgtq	%xmm2, %xmm2, %xmm0
+	vpcmpgtq	%ymm2, %ymm2, %ymm0
+
 	bt	$15, %ax
 	bt	$16, %ax
 	btc	$15, %ax
diff --git a/gas/testsuite/gas/i386/optimize-1a.d b/gas/testsuite/gas/i386/optimize-1a.d
index d0bf1b4c796..33c647bf5c6 100644
--- a/gas/testsuite/gas/i386/optimize-1a.d
+++ b/gas/testsuite/gas/i386/optimize-1a.d
@@ -148,6 +148,21 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%eax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
  +[a-f0-9]+:	0f ba e0 0f          	bt     \$0xf,%eax
  +[a-f0-9]+:	66 0f ba e0 10       	bt     \$0x10,%ax
  +[a-f0-9]+:	0f ba f8 0f          	btc    \$0xf,%eax
diff --git a/gas/testsuite/gas/i386/optimize-2.d b/gas/testsuite/gas/i386/optimize-2.d
index 571059e8cfe..41056fb6ef1 100644
--- a/gas/testsuite/gas/i386/optimize-2.d
+++ b/gas/testsuite/gas/i386/optimize-2.d
@@ -161,4 +161,8 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  \(%eax\)\{1to2\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxord \(%eax\)\{1to4\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxorq \(%eax\)\{1to4\},%ymm2,%ymm3
+ +[a-f0-9]+:	66 .*	pcmpeqd %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpcmpeqd %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpcmpeqd %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	c5 .*	vpunpcklqdq %xmm2,%xmm2,%xmm0
 #pass
diff --git a/gas/testsuite/gas/i386/optimize-2.s b/gas/testsuite/gas/i386/optimize-2.s
index 43af9459a8a..29399ae8473 100644
--- a/gas/testsuite/gas/i386/optimize-2.s
+++ b/gas/testsuite/gas/i386/optimize-2.s
@@ -180,3 +180,9 @@ _start:
 	vporq		(%eax){1to2}, %xmm2, %xmm3
 	vpxord		(%eax){1to4}, %xmm2, %xmm3
 	vpxorq		(%eax){1to4}, %ymm2, %ymm3
+
+	pcmpeqq		%xmm2, %xmm2
+	vpcmpeqq	%xmm2, %xmm2, %xmm0
+	vpcmpeqq	%ymm2, %ymm2, %ymm0
+
+	vpbroadcastq	%xmm2, %xmm0
diff --git a/gas/testsuite/gas/i386/optimize-2b.d b/gas/testsuite/gas/i386/optimize-2b.d
index 58636885eeb..d9e83198fb6 100644
--- a/gas/testsuite/gas/i386/optimize-2b.d
+++ b/gas/testsuite/gas/i386/optimize-2b.d
@@ -162,4 +162,8 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  \(%eax\)\{1to2\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxord \(%eax\)\{1to4\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxorq \(%eax\)\{1to4\},%ymm2,%ymm3
+ +[a-f0-9]+:	66 .*	pcmpeqq %xmm2,%xmm2
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	c4 .*	vpbroadcastq %xmm2,%xmm0
 #pass
diff --git a/gas/testsuite/gas/i386/optimize-4.d b/gas/testsuite/gas/i386/optimize-4.d
index 092d078706e..fa9b95fe8fe 100644
--- a/gas/testsuite/gas/i386/optimize-4.d
+++ b/gas/testsuite/gas/i386/optimize-4.d
@@ -147,6 +147,21 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%eax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
  +[a-f0-9]+:	0f ba e0 0f          	bt     \$0xf,%eax
  +[a-f0-9]+:	66 0f ba e0 10       	bt     \$0x10,%ax
  +[a-f0-9]+:	0f ba f8 0f          	btc    \$0xf,%eax
diff --git a/gas/testsuite/gas/i386/optimize-5.d b/gas/testsuite/gas/i386/optimize-5.d
index 1d1397be9b2..36d0ba96e54 100644
--- a/gas/testsuite/gas/i386/optimize-5.d
+++ b/gas/testsuite/gas/i386/optimize-5.d
@@ -147,6 +147,21 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%eax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%eax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm2,%ymm2,%ymm0
  +[a-f0-9]+:	0f ba e0 0f          	bt     \$0xf,%eax
  +[a-f0-9]+:	66 0f ba e0 10       	bt     \$0x10,%ax
  +[a-f0-9]+:	0f ba f8 0f          	btc    \$0xf,%eax
diff --git a/gas/testsuite/gas/i386/x86-64-disassem.d b/gas/testsuite/gas/i386/x86-64-disassem.d
index 6e4dd91fccd..2de30e295b6 100644
--- a/gas/testsuite/gas/i386/x86-64-disassem.d
+++ b/gas/testsuite/gas/i386/x86-64-disassem.d
@@ -8,309 +8,309 @@
 Disassembly of section \.text:
 
 0+ <\.text>:
-[ 	]*[a-f0-9]+:[ 	]*ff[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*ff[ 	]+ljmp[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*ef[ 	]*out    %eax,\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*ff[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*ff[ 	]+lcall[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*d8 90 90 90 90 90[ 	]*fcoms  -0x6f6f6f70\(%rax\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]+kaddw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]+kaddw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4a[ 	]+kaddw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]+kaddb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]+kaddb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4a[ 	]+kaddb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]+kaddq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]+kaddq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4a[ 	]+kaddq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]+kaddd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]+kaddd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 4a[ 	]+kaddd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]+kandw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]+kandw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 41[ 	]+kandw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]+kandb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]+kandb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 41[ 	]+kandb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]+kandq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]+kandq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 41[ 	]+kandq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]+kandd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]+kandd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 41[ 	]+kandd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]+kandnw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]+kandnw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 42[ 	]+kandnw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]+kandnb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]+kandnb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 42[ 	]+kandnb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]+kandnq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]+kandnq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 42[ 	]+kandnq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]+kandnd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]+kandnd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 42[ 	]+kandnd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]+kunpckwd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]+kunpckwd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 4b[ 	]+kunpckwd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]+kunpckbw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]+kunpckbw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 4b[ 	]+kunpckbw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]+kunpckdq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]+kunpckdq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 4b[ 	]+kunpckdq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]+knotw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]+knotw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 44[ 	]+knotw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]+knotb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]+knotb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 44[ 	]+knotb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]+knotq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]+knotq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 44[ 	]+knotq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]+knotd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]+knotd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 44[ 	]+knotd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]+korw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]+korw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 45[ 	]+korw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]+korb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]+korb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 45[ 	]+korb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]+korq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]+korq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 45[ 	]+korq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]+kord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]+kord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 45[ 	]+kord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]+kortestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]+kortestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 98[ 	]+kortestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]+kortestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]+kortestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 98[ 	]+kortestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]+kortestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]+kortestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 98[ 	]+kortestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]+kortestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]+kortestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 98[ 	]+kortestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]+kxnorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]+kxnorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 46[ 	]+kxnorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]+kxnorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]+kxnorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 46[ 	]+kxnorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]+kxnorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]+kxnorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 46[ 	]+kxnorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]+kxnord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]+kxnord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 46[ 	]+kxnord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]+kxorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]+kxorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ec 47[ 	]+kxorw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]+kxorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]+kxorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 ed 47[ 	]+kxorb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]+kxorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]+kxorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ec 47[ 	]+kxorq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]+kxord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]+kxord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 ed 47[ 	]+kxord[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]+ktestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]+ktestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 99[ 	]+ktestw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]+ktestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]+ktestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 99[ 	]+ktestb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]+ktestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]+ktestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f8 99[ 	]+ktestq[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]+ktestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]+ktestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 99[ 	]+ktestd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*8f 01[ 	]*pop    \(%rcx\)
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*6a 01[ 	]*push   \$0x1
-[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*04 01[ 	]*add    \$0x1,%al
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30 8f[ 	]+kshiftrw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30 6a[ 	]+kshiftrw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 30 04[ 	]+kshiftrw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30 8f[ 	]+kshiftrb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30 6a[ 	]+kshiftrb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 30 04[ 	]+kshiftrb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31 8f[ 	]+kshiftrq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31 6a[ 	]+kshiftrq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 31 04[ 	]+kshiftrq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31 8f[ 	]+kshiftrd[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31 6a[ 	]+kshiftrd[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 31 04[ 	]+kshiftrd[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32 8f[ 	]+kshiftlw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32 6a[ 	]+kshiftlw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 32 04[ 	]+kshiftlw[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32 8f[ 	]+kshiftlb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32 6a[ 	]+kshiftlb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 32 04[ 	]+kshiftlb[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33 8f[ 	]+kshiftlq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33 6a[ 	]+kshiftlq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 f9 33 04[ 	]+kshiftlq[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33 8f[ 	]+kshiftld[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33 6a[ 	]+kshiftld[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c4 e3 79 33 04[ 	]+kshiftld[ 	]*\$0x[0-9a-f]*,\(bad\),.*
+[ 	]*[a-f0-9]+:[ 	]*07[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 92[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 92[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 92[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 92[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
@@ -318,23 +318,23 @@ Disassembly of section \.text:
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
 [ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 92[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f8 93[ 	]+kmovw[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 f9 93[ 	]+kmovb[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*6f[ 	]*outsl  %ds:\(%rsi\),\(%dx\)
-[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]*\(bad\)
+[ 	]*[a-f0-9]+:[ 	]*c5 fb 93[ 	]+kmovd[ 	]*\(bad\),.*
 [ 	]*[a-f0-9]+:[ 	]*3f[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*c4 e1 f9 93[ 	]*\(bad\)
 [ 	]*[a-f0-9]+:[ 	]*9b[ 	]*fwait
diff --git a/gas/testsuite/gas/i386/x86-64-disassem.s b/gas/testsuite/gas/i386/x86-64-disassem.s
index ff049045bcd..4f151bf7333 100644
--- a/gas/testsuite/gas/i386/x86-64-disassem.s
+++ b/gas/testsuite/gas/i386/x86-64-disassem.s
@@ -119,30 +119,30 @@
 .byte 0xC4, 0xE1, 0xF9, 0x99, 0x9B
 .byte 0xC4, 0xE1, 0xF9, 0x99, 0x6F
 	.insn VEX.L0.66.0f.W1 0x99, (%rdi), %k7
-.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x01
-.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x01
+.byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x30, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x30, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x30, 0x04, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x31, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x31, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x31, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x31, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x31, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x31, 0x04, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x32, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x32, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x32, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x32, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x32, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x32, 0x04, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x33, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x33, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0xF9, 0x33, 0x04, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x33, 0x8F, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x33, 0x6A, 0x07
+.byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x07
 .byte 0xC5, 0xF8, 0x92, 0x9B
 .byte 0xC5, 0xF8, 0x92, 0x6F
 	.insn VEX.L0.NP.0f.W0 0x92, (%rdi), %k7
diff --git a/gas/testsuite/gas/i386/x86-64-lkgs-intel.d b/gas/testsuite/gas/i386/x86-64-lkgs-intel.d
index 0f4a6fba6d3..b981ad502c2 100644
--- a/gas/testsuite/gas/i386/x86-64-lkgs-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-lkgs-intel.d
@@ -8,16 +8,16 @@
 Disassembly of section \.text:
 
 0+ <_start>:
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12w
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12d
 \s*[a-f0-9]+:\s*f2 42 0f 00 b4 f5 00 00 00 10\s+lkgs   WORD PTR \[rbp\+r14\*8\+0x10000000\]
 \s*[a-f0-9]+:\s*f2 41 0f 00 31\s+lkgs   WORD PTR \[r9\]
 \s*[a-f0-9]+:\s*f2 0f 00 b1 fe 00 00 00\s+lkgs   WORD PTR \[rcx\+0xfe\]
 \s*[a-f0-9]+:\s*f2 0f 00 b2 00 ff ff ff\s+lkgs   WORD PTR \[rdx-0x100\]
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12w
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   r12d
 \s*[a-f0-9]+:\s*f2 42 0f 00 b4 f5 00 00 00 10\s+lkgs   WORD PTR \[rbp\+r14\*8\+0x10000000\]
 \s*[a-f0-9]+:\s*f2 41 0f 00 31\s+lkgs   WORD PTR \[r9\]
 \s*[a-f0-9]+:\s*f2 0f 00 b1 fe 00 00 00\s+lkgs   WORD PTR \[rcx\+0xfe\]
diff --git a/gas/testsuite/gas/i386/x86-64-lkgs.d b/gas/testsuite/gas/i386/x86-64-lkgs.d
index 207143da574..60af3c451d7 100644
--- a/gas/testsuite/gas/i386/x86-64-lkgs.d
+++ b/gas/testsuite/gas/i386/x86-64-lkgs.d
@@ -8,16 +8,16 @@
 Disassembly of section \.text:
 
 0+ <_start>:
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12w
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12d
 \s*[a-f0-9]+:\s*f2 42 0f 00 b4 f5 00 00 00 10\s+lkgs   0x10000000\(%rbp,%r14,8\)
 \s*[a-f0-9]+:\s*f2 41 0f 00 31\s+lkgs   \(%r9\)
 \s*[a-f0-9]+:\s*f2 0f 00 b1 fe 00 00 00\s+lkgs   0xfe\(%rcx\)
 \s*[a-f0-9]+:\s*f2 0f 00 b2 00 ff ff ff\s+lkgs   -0x100\(%rdx\)
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12w
-\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12w
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12d
+\s*[a-f0-9]+:\s*f2 41 0f 00 f4\s+lkgs   %r12d
 \s*[a-f0-9]+:\s*f2 42 0f 00 b4 f5 00 00 00 10\s+lkgs   0x10000000\(%rbp,%r14,8\)
 \s*[a-f0-9]+:\s*f2 41 0f 00 31\s+lkgs   \(%r9\)
 \s*[a-f0-9]+:\s*f2 0f 00 b1 fe 00 00 00\s+lkgs   0xfe\(%rcx\)
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2.d b/gas/testsuite/gas/i386/x86-64-optimize-2.d
index cb6b81537be..87bf3edfbaa 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-2.d
+++ b/gas/testsuite/gas/i386/x86-64-optimize-2.d
@@ -203,4 +203,23 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%rax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2.s b/gas/testsuite/gas/i386/x86-64-optimize-2.s
index 22dbd1ce469..3d16a7875a3 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-2.s
+++ b/gas/testsuite/gas/i386/x86-64-optimize-2.s
@@ -226,3 +226,26 @@ _start:
 	vporq		128(%rax), %ymm2, %ymm3
 	vpxord		128(%rax), %ymm2, %ymm3
 	vpxorq		128(%rax), %ymm2, %ymm3
+
+	pcmpgtb		%mm2, %mm2
+	pcmpgtb		%xmm2, %xmm2
+	pcmpgtb		%xmm12, %xmm12
+	vpcmpgtb	%xmm2, %xmm2, %xmm8
+	vpcmpgtb	%ymm12, %ymm12, %ymm1
+
+	pcmpgtw		%mm2, %mm2
+	pcmpgtw		%xmm2, %xmm2
+	pcmpgtw		%xmm12, %xmm12
+	vpcmpgtw	%xmm2, %xmm2, %xmm8
+	vpcmpgtw	%ymm12, %ymm12, %ymm1
+
+	pcmpgtd		%mm2, %mm2
+	pcmpgtd		%xmm2, %xmm2
+	pcmpgtd		%xmm12, %xmm12
+	vpcmpgtd	%xmm2, %xmm2, %xmm8
+	vpcmpgtd	%ymm12, %ymm12, %ymm1
+
+	pcmpgtq		%xmm2, %xmm2
+	pcmpgtq		%xmm12, %xmm12
+	vpcmpgtq	%xmm2, %xmm2, %xmm8
+	vpcmpgtq	%ymm12, %ymm12, %ymm1
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2a.d b/gas/testsuite/gas/i386/x86-64-optimize-2a.d
index 70a8ff31475..f12507b8f55 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-2a.d
+++ b/gas/testsuite/gas/i386/x86-64-optimize-2a.d
@@ -204,4 +204,23 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%rax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-2b.d b/gas/testsuite/gas/i386/x86-64-optimize-2b.d
index 1d815699afc..e572491a9da 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-2b.d
+++ b/gas/testsuite/gas/i386/x86-64-optimize-2b.d
@@ -203,4 +203,23 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%rax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-3.d b/gas/testsuite/gas/i386/x86-64-optimize-3.d
index 26122dd4e1e..23b9305d25c 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-3.d
+++ b/gas/testsuite/gas/i386/x86-64-optimize-3.d
@@ -199,4 +199,12 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  \(%rax\)\{1to2\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxord \(%rax\)\{1to4\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxorq \(%rax\)\{1to4\},%ymm2,%ymm3
+ +[a-f0-9]+:	66 .*	pcmpeqd %xmm2,%xmm2
+ +[a-f0-9]+:	c5 .*	vpcmpeqd %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c5 .*	vpcmpeqd %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	66 .*	pcmpeqd %xmm12,%xmm12
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %xmm12,%xmm12,%xmm0
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %ymm12,%ymm12,%ymm0
+ +[a-f0-9]+:	c5 .*	vpunpcklqdq %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c4 .*	vpbroadcastq %xmm12,%xmm0
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-3.s b/gas/testsuite/gas/i386/x86-64-optimize-3.s
index cbfed3bdf47..bab99cf1eae 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-3.s
+++ b/gas/testsuite/gas/i386/x86-64-optimize-3.s
@@ -221,3 +221,14 @@ _start:
 	vporq		(%rax){1to2}, %xmm2, %xmm3
 	vpxord		(%rax){1to4}, %xmm2, %xmm3
 	vpxorq		(%rax){1to4}, %ymm2, %ymm3
+
+	pcmpeqq		%xmm2, %xmm2
+	vpcmpeqq	%xmm2, %xmm2, %xmm0
+	vpcmpeqq	%ymm2, %ymm2, %ymm0
+
+	pcmpeqq		%xmm12, %xmm12
+	vpcmpeqq	%xmm12, %xmm12, %xmm0
+	vpcmpeqq	%ymm12, %ymm12, %ymm0
+
+	vpbroadcastq	%xmm2, %xmm0
+	vpbroadcastq	%xmm12, %xmm0
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-3b.d b/gas/testsuite/gas/i386/x86-64-optimize-3b.d
index 00b65f3d8b2..929c6f70e8b 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-3b.d
+++ b/gas/testsuite/gas/i386/x86-64-optimize-3b.d
@@ -200,4 +200,12 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  \(%rax\)\{1to2\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxord \(%rax\)\{1to4\},%xmm2,%xmm3
  +[a-f0-9]+:	62 .*	vpxorq \(%rax\)\{1to4\},%ymm2,%ymm3
+ +[a-f0-9]+:	66 .*	pcmpeqq %xmm2,%xmm2
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %xmm2,%xmm2,%xmm0
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %ymm2,%ymm2,%ymm0
+ +[a-f0-9]+:	66 .*	pcmpeqq %xmm12,%xmm12
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %xmm12,%xmm12,%xmm0
+ +[a-f0-9]+:	c4 .*	vpcmpeqq %ymm12,%ymm12,%ymm0
+ +[a-f0-9]+:	c4 .*	vpbroadcastq %xmm2,%xmm0
+ +[a-f0-9]+:	c4 .*	vpbroadcastq %xmm12,%xmm0
 #pass
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-5.d b/gas/testsuite/gas/i386/x86-64-optimize-5.d
index 9fd0ec2aa37..5b272aa0945 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-5.d
+++ b/gas/testsuite/gas/i386/x86-64-optimize-5.d
@@ -203,6 +203,25 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%rax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
  +[a-f0-9]+:	62 f1 f5 08 55 e9    	\{evex\} vandnpd %xmm1,%xmm1,%xmm5
  +[a-f0-9]+:	62 f1 f5 08 55 e9    	\{evex\} vandnpd %xmm1,%xmm1,%xmm5
  +[a-f0-9]+:	62 f1 7d 28 6f d1    	vmovdqa32 %ymm1,%ymm2
diff --git a/gas/testsuite/gas/i386/x86-64-optimize-6.d b/gas/testsuite/gas/i386/x86-64-optimize-6.d
index 6cacaf9d783..48105c3063e 100644
--- a/gas/testsuite/gas/i386/x86-64-optimize-6.d
+++ b/gas/testsuite/gas/i386/x86-64-optimize-6.d
@@ -203,6 +203,25 @@ Disassembly of section .text:
  +[a-f0-9]+:	62 .*	vporq  0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxord 0x80\(%rax\),%ymm2,%ymm3
  +[a-f0-9]+:	62 .*	vpxorq 0x80\(%rax\),%ymm2,%ymm3
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	0f .*	pxor   %mm2,%mm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
+ +[a-f0-9]+:	66 .*	pxor   %xmm2,%xmm2
+ +[a-f0-9]+:	66 .*	pxor   %xmm12,%xmm12
+ +[a-f0-9]+:	c5 .*	vpxor  %xmm2,%xmm2,%xmm8
+ +[a-f0-9]+:	c5 .*	vpxor  %ymm0,%ymm0,%ymm1
  +[a-f0-9]+:	62 f1 f5 08 55 e9    	\{evex\} vandnpd %xmm1,%xmm1,%xmm5
  +[a-f0-9]+:	62 f1 f5 08 55 e9    	\{evex\} vandnpd %xmm1,%xmm1,%xmm5
  +[a-f0-9]+:	62 f1 7d 28 6f d1    	vmovdqa32 %ymm1,%ymm2
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 48ec9c21929..52711cdcf6f 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -437,7 +437,19 @@ run_dump_test "x86-64-amx-complex-bad"
 run_list_test "x86-64-amx-complex-inval"
 run_dump_test "x86-64-fred"
 run_dump_test "x86-64-lkgs"
+run_dump_test "x86-64-lkgs-intel"
 run_list_test "x86-64-lkgs-inval"
+run_dump_test "x86-64-avx-vnni-int16"
+run_dump_test "x86-64-avx-vnni-int16-intel"
+run_dump_test "x86-64-sha512"
+run_dump_test "x86-64-sha512-intel"
+run_list_test "x86-64-sha512-inval"
+run_dump_test "x86-64-sm3"
+run_dump_test "x86-64-sm3-intel"
+run_dump_test "x86-64-sm4"
+run_dump_test "x86-64-sm4-intel"
+run_dump_test "x86-64-pbndkb"
+run_dump_test "x86-64-pbndkb-intel"
 run_dump_test "x86-64-clzero"
 run_dump_test "x86-64-mwaitx-bdver4"
 run_list_test "x86-64-mwaitx-reg"
@@ -520,6 +532,7 @@ run_dump_test "x86-64-optimize-1"
 run_dump_test "x86-64-optimize-2"
 run_dump_test "x86-64-optimize-2a"
 run_dump_test "x86-64-optimize-2b"
+run_dump_test "x86-64-optimize-2c"
 run_dump_test "x86-64-optimize-3"
 run_dump_test "x86-64-optimize-3b"
 run_dump_test "x86-64-optimize-4"
diff --git a/gas/testsuite/gas/i386/x86_64-intel.d b/gas/testsuite/gas/i386/x86_64-intel.d
index 6b74ae68f96..2a9b7d422ac 100644
--- a/gas/testsuite/gas/i386/x86_64-intel.d
+++ b/gas/testsuite/gas/i386/x86_64-intel.d
@@ -266,9 +266,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    dx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    edx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    edx,WORD PTR \[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   (WORD PTR )?\[rdx\]
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    dx,dx
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    edx,edx
@@ -278,17 +278,17 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    dx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    edx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    edx,WORD PTR \[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    (WORD PTR )?\[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   (WORD PTR )?\[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   (WORD PTR )?\[rdx\]
 [ 	]*[a-f0-9]+:	66 0f 02 d2          	lar    dx,dx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    edx,edx
@@ -298,9 +298,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    dx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    edx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    edx,WORD PTR \[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   (WORD PTR )?\[rdx\]
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   (WORD PTR )?\[rdx\]
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    dx,dx
@@ -311,19 +311,19 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    dx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    edx,WORD PTR \[rdx\]
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    edx,WORD PTR \[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    (WORD PTR )?\[rdx\]
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    (WORD PTR )?\[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   (WORD PTR )?\[rdx\]
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   (WORD PTR )?\[rdx\]
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   (WORD PTR )?\[rdx\]
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   (WORD PTR )?\[rdx\]
 #pass
diff --git a/gas/testsuite/gas/i386/x86_64.d b/gas/testsuite/gas/i386/x86_64.d
index cdfe12ebdb7..aa3866191ba 100644
--- a/gas/testsuite/gas/i386/x86_64.d
+++ b/gas/testsuite/gas/i386/x86_64.d
@@ -266,9 +266,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    \(%rdx\),%dx
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    \(%rdx\),%edx
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    \(%rdx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   \(%rdx\)
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    %dx,%dx
 [ 	]*[a-f0-9]+:	0f 03 d2             	lsl    %edx,%edx
@@ -278,17 +278,17 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    \(%rdx\),%dx
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    \(%rdx\),%edx
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    \(%rdx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    \(%rdx\)
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   \(%rdx\)
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   \(%rdx\)
 [ 	]*[a-f0-9]+:	66 0f 02 d2          	lar    %dx,%dx
 [ 	]*[a-f0-9]+:	0f 02 d2             	lar    %edx,%edx
@@ -298,9 +298,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 02 12          	lar    \(%rdx\),%dx
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    \(%rdx\),%edx
 [ 	]*[a-f0-9]+:	0f 02 12             	lar    \(%rdx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
-[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %dx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
+[ 	]*[a-f0-9]+:	0f 00 d2             	lldt   %edx
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   \(%rdx\)
 [ 	]*[a-f0-9]+:	0f 00 12             	lldt   \(%rdx\)
 [ 	]*[a-f0-9]+:	66 0f 03 d2          	lsl    %dx,%dx
@@ -311,19 +311,19 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 0f 03 12          	lsl    \(%rdx\),%dx
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    \(%rdx\),%edx
 [ 	]*[a-f0-9]+:	0f 03 12             	lsl    \(%rdx\),%edx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
-[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %dx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
+[ 	]*[a-f0-9]+:	0f 00 da             	ltr    %edx
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    \(%rdx\)
 [ 	]*[a-f0-9]+:	0f 00 1a             	ltr    \(%rdx\)
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
-[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %dx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
+[ 	]*[a-f0-9]+:	0f 00 e2             	verr   %edx
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   \(%rdx\)
 [ 	]*[a-f0-9]+:	0f 00 22             	verr   \(%rdx\)
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
-[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %dx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
+[ 	]*[a-f0-9]+:	0f 00 ea             	verw   %edx
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   \(%rdx\)
 [ 	]*[a-f0-9]+:	0f 00 2a             	verw   \(%rdx\)
 #pass
diff --git a/gas/testsuite/gas/ppc/aix.exp b/gas/testsuite/gas/ppc/aix.exp
index 55aedc48654..76ffb224c08 100644
--- a/gas/testsuite/gas/ppc/aix.exp
+++ b/gas/testsuite/gas/ppc/aix.exp
@@ -88,8 +88,15 @@ if { [istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] } then {
     run_dump_test "xcoff-file-32"
     run_dump_test "xcoff-file-64"
 
-    run_dump_test "xcoff-visibility-1-32"
-    run_dump_test "xcoff-visibility-1-64"
+    if { [istarget {*-*-aix[6-9]*}]
+	 || [istarget {*-*-aix5.[2-9]*}] } {
+	# The expected output of these tests depends on AIX_WEAK_SUPPORT.
+	# Without that weak syms do not have an aux entry and thus
+	# BFD_NOT_AT_END is not set.  I don't know if any of this is
+	# correct..
+	run_dump_test "xcoff-visibility-1-32"
+	run_dump_test "xcoff-visibility-1-64"
+    }
     run_dump_test "xcoff-visibility-2-32"
     run_dump_test "xcoff-visibility-2-64"
 }
diff --git a/gas/testsuite/gas/s390/esa-reloc.d b/gas/testsuite/gas/s390/esa-reloc.d
index c9da92870d5..0b13cb626a6 100644
--- a/gas/testsuite/gas/s390/esa-reloc.d
+++ b/gas/testsuite/gas/s390/esa-reloc.d
@@ -23,7 +23,7 @@ Disassembly of section .text:
   22:	a7 08 00 00 [ 	]*lhi	%r0,0
 [ 	]*24: R_390_GOT16	test_R_390_GOT16
   26:	a7 08 00 00 [ 	]*lhi	%r0,0
-[ 	]*28: R_390_16	test_R_390_PC16\+0x26
+[ 	]*28: R_390_PC16	test_R_390_PC16\+0x28
   2a:	a7 e5 00 00 [ 	]*bras	%r14,2a <foo\+0x2a>
 [ 	]*2c: R_390_PC16DBL	test_R_390_PC16DBL\+0x2
   2e:	a7 e5 00 00 [ 	]*bras	%r14,2e <foo\+0x2e>
diff --git a/gas/testsuite/gas/sh/err-at.s b/gas/testsuite/gas/sh/err-at.s
index 648ee94e140..af5d081c0ee 100644
--- a/gas/testsuite/gas/sh/err-at.s
+++ b/gas/testsuite/gas/sh/err-at.s
@@ -4,7 +4,9 @@
 start:
 	mov.l	r1,@r0		! ok
 	mov.l	r1,@(r0)	! { dg-error "syntax error" }
+! { dg-bogus "invalid operands for opcode" "" { xfail *-*-* } 6 }
 	mov.l	r1,@(r0,)	! { dg-error "syntax error" }
+! { dg-bogus "invalid operands for opcode" "" { xfail *-*-* } 8 }
 	mov.l	r1,@(r0,r0)	! ok
 	mov.l	r1,@(r0,r1)	! ok
 	mov.l	r1,@(r1,r0)	! { dg-error "must be" }
diff --git a/gold/ChangeLog b/gold/ChangeLog
index cbdb467b427..93a1125cfed 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,6 +1,5 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
+2023-07-03  Nick Clifton  <nickc@redhat.com>
 
-	This is the 2.41 release.
 	* po/gold.pot: Regenerate.
 
 2023-07-03  Nick Clifton  <nickc@redhat.com>
diff --git a/gold/object.cc b/gold/object.cc
index 77b2690c381..acd7c945937 100644
--- a/gold/object.cc
+++ b/gold/object.cc
@@ -3054,7 +3054,7 @@ Sized_relobj_file<size, big_endian>::find_kept_section_object(
 // Return the name of symbol SYMNDX.
 
 template<int size, bool big_endian>
-const char*
+std::string
 Sized_relobj_file<size, big_endian>::get_symbol_name(unsigned int symndx)
 {
   if (this->symtab_shndx_ == 0)
@@ -3065,6 +3065,24 @@ Sized_relobj_file<size, big_endian>::get_symbol_name(unsigned int symndx)
 							&symbols_size,
 							false);
 
+  const unsigned char* p = symbols + symndx * This::sym_size;
+  if (p >= symbols + symbols_size)
+    return NULL;
+
+  elfcpp::Sym<size, big_endian> sym(p);
+
+  if (sym.get_st_name() == 0 && sym.get_st_type() == elfcpp::STT_SECTION)
+    {
+      bool is_ordinary;
+      unsigned int sym_shndx = this->adjust_sym_shndx(symndx,
+						      sym.get_st_shndx(),
+						      &is_ordinary);
+      if (!is_ordinary || sym_shndx >= this->shnum())
+	return NULL;
+
+      return this->section_name(sym_shndx);
+    }
+
   unsigned int symbol_names_shndx =
     this->adjust_shndx(this->section_link(this->symtab_shndx_));
   section_size_type names_size;
@@ -3072,14 +3090,25 @@ Sized_relobj_file<size, big_endian>::get_symbol_name(unsigned int symndx)
     this->section_contents(symbol_names_shndx, &names_size, false);
   const char* symbol_names = reinterpret_cast<const char*>(symbol_names_u);
 
-  const unsigned char* p = symbols + symndx * This::sym_size;
-
-  if (p >= symbols + symbols_size)
+  unsigned int sym_name = sym.get_st_name();
+  if (sym_name >= names_size)
     return NULL;
+  const char* namep = symbol_names + sym_name;
+  const void* endp = memchr(namep, 0, names_size - sym_name);
+  if (!endp)
+    endp = symbol_names + names_size;
+  std::string name = std::string(namep, static_cast<const char*>(endp) - namep);
 
-  elfcpp::Sym<size, big_endian> sym(p);
+  if (!parameters->options().do_demangle())
+    return name;
 
-  return symbol_names + sym.get_st_name();
+  char* demangled_name = cplus_demangle(name.c_str(), DMGL_ANSI | DMGL_PARAMS);
+  if (!demangled_name)
+    return name;
+
+  name = demangled_name;
+  free(demangled_name);
+  return name;
 }
 
 // Get symbol counts.
diff --git a/gold/object.h b/gold/object.h
index e7472893ca6..d6c53eb105e 100644
--- a/gold/object.h
+++ b/gold/object.h
@@ -2347,7 +2347,7 @@ class Sized_relobj_file : public Sized_relobj<size, big_endian>
   find_kept_section_object(unsigned int shndx, unsigned int* symndx_p) const;
 
   // Return the name of symbol SYMNDX.
-  const char*
+  std::string
   get_symbol_name(unsigned int symndx);
 
   // Compute final local symbol value.  R_SYM is the local symbol index.
diff --git a/gold/po/gold.pot b/gold/po/gold.pot
index 2c27cb0c47a..a7a064160d3 100644
--- a/gold/po/gold.pot
+++ b/gold/po/gold.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-30 14:36+0100\n"
+"POT-Creation-Date: 2023-07-03 11:43+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -3656,18 +3656,14 @@ msgstr ""
 msgid "call lacks nop, can't restore toc; recompile with -fPIC"
 msgstr ""
 
-#: powerpc.cc:12426 powerpc.cc:12433 s390.cc:3479
+#: powerpc.cc:12424 s390.cc:3479
 msgid "relocation overflow"
 msgstr ""
 
-#: powerpc.cc:12428
+#: powerpc.cc:12426
 msgid "try relinking with a smaller --stub-group-size"
 msgstr ""
 
-#: powerpc.cc:12434
-msgid "debug info may be unreliable, compile with -gdwarf64"
-msgstr ""
-
 #: readsyms.cc:285
 #, c-format
 msgid "%s: file is empty"
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index d62bdea7ecb..e66d9cbb900 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -12420,17 +12420,24 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
 	       && gsym->is_undefined()
 	       && is_branch_reloc<size>(r_type))))
     {
+      std::string name;
+      if (gsym)
+	name = gsym->demangled_name();
+      else
+	name = relinfo->object->get_symbol_name(r_sym);
       if (os->flags() & elfcpp::SHF_ALLOC)
 	{
 	  gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
-				 _("relocation overflow"));
+				 _("reloc type %u overflow against '%s'"),
+				 r_type, name.c_str());
 	  if (has_stub_value)
 	    gold_info(_("try relinking with a smaller --stub-group-size"));
 	}
       else
 	{
 	  gold_warning_at_location(relinfo, relnum, rela.get_r_offset(),
-				   _("relocation overflow"));
+				   _("reloc type %u overflow against '%s'"),
+				   r_type, name.c_str());
 	  gold_info(_("debug info may be unreliable, compile with -gdwarf64"));
 	}
     }
diff --git a/gold/target-reloc.h b/gold/target-reloc.h
index 5f4c5c5a101..1df25ae452e 100644
--- a/gold/target-reloc.h
+++ b/gold/target-reloc.h
@@ -242,7 +242,7 @@ issue_discarded_error(
 	  relinfo, shndx, offset,
 	  _("relocation refers to local symbol \"%s\" [%u], "
 	    "which is defined in a discarded section"),
-	  object->get_symbol_name(r_sym), r_sym);
+	  object->get_symbol_name(r_sym).c_str(), r_sym);
     }
   else
     {
@@ -264,7 +264,7 @@ issue_discarded_error(
 							  &key_symndx);
       if (key_symndx != 0)
 	gold_info(_("  section group signature: \"%s\""),
-		  object->get_symbol_name(key_symndx));
+		  object->get_symbol_name(key_symndx).c_str());
       if (kept_obj != NULL)
 	gold_info(_("  prevailing definition is from %s"),
 		  kept_obj->name().c_str());
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index 5500fd1e233..a57b89ca009 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,8 +1,3 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
-
-	This is the 2.41 release.
-	* configure: Regenerate.
-
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
 	* configure: Regenerate.
diff --git a/gprof/aarch64.c b/gprof/aarch64.c
index 68febf93723..3ab6067dbac 100644
--- a/gprof/aarch64.c
+++ b/gprof/aarch64.c
@@ -54,7 +54,8 @@ aarch64_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
   DBG (CALLDEBUG, printf ("[find_call] %s: 0x%lx to 0x%lx\n",
 			  parent->name, (unsigned long) p_lowpc,
 			  (unsigned long) p_highpc));
-
+  p_lowpc = (p_lowpc + 3) & ~3;
+  p_highpc &= ~3;
   for (pc = p_lowpc; pc < p_highpc; pc += 4)
     {
 
diff --git a/gprof/alpha.c b/gprof/alpha.c
index d84cdf0a916..df714be6c81 100644
--- a/gprof/alpha.c
+++ b/gprof/alpha.c
@@ -107,7 +107,9 @@ alpha_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
   DBG (CALLDEBUG, printf (_("[find_call] %s: 0x%lx to 0x%lx\n"),
 			  parent->name, (unsigned long) p_lowpc,
 			  (unsigned long) p_highpc));
-  for (pc = (p_lowpc + 3) & ~(bfd_vma) 3; pc < p_highpc; pc += 4)
+  p_lowpc = (p_lowpc + 3) & ~3;
+  p_highpc &= ~3;
+  for (pc = p_lowpc; pc < p_highpc; pc += 4)
     {
       insn = bfd_get_32 (core_bfd, ((unsigned char *) core_text_space
 				    + pc - core_text_sect->vma));
diff --git a/gprof/cg_arcs.c b/gprof/cg_arcs.c
index e76c2cb78cf..cfffb09ff87 100644
--- a/gprof/cg_arcs.c
+++ b/gprof/cg_arcs.c
@@ -37,6 +37,7 @@
 #include "cg_print.h"
 #include "utils.h"
 #include "sym_ids.h"
+#include "corefile.h"
 
 static int cmp_topo (const void *, const void *);
 static void propagate_time (Sym *);
@@ -622,7 +623,11 @@ cg_assemble (void)
       parent->cg.cyc.num = 0;
       parent->cg.cyc.head = parent;
       parent->cg.cyc.next = 0;
-      if (ignore_direct_calls)
+      if (ignore_direct_calls
+	  && parent->addr >= core_text_sect->vma
+	  && parent->addr < core_text_sect->vma +  core_text_sect->size
+	  && (parent + 1)->addr >= core_text_sect->vma
+	  && (parent + 1)->addr <= core_text_sect->vma +  core_text_sect->size)
 	find_call (parent, parent->addr, (parent + 1)->addr);
     }
 
diff --git a/gprof/configure b/gprof/configure
index 6760f6fc2a8..4bf25c33c97 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprof 2.41.
+# Generated by GNU Autoconf 2.69 for gprof 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gprof'
 PACKAGE_TARNAME='gprof'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='gprof 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='gprof 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1338,7 +1338,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gprof 2.41 to adapt to many kinds of systems.
+\`configure' configures gprof 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1409,7 +1409,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gprof 2.41:";;
+     short | recursive ) echo "Configuration of gprof 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1520,7 +1520,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gprof configure 2.41
+gprof configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1885,7 +1885,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gprof $as_me 2.41, which was
+It was created by gprof $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2864,7 +2864,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gprof'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12572,7 +12572,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gprof $as_me 2.41, which was
+This file was extended by gprof $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12638,7 +12638,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gprof config.status 2.41
+gprof config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/gprof/i386.c b/gprof/i386.c
index bdf8bd1b832..62f6f96b20a 100644
--- a/gprof/i386.c
+++ b/gprof/i386.c
@@ -57,6 +57,9 @@ i386_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
 			  parent->name, (unsigned long) p_lowpc,
 			  (unsigned long) p_highpc));
 
+  if (p_highpc < 5)
+    return;
+  p_highpc -= 5;
   for (pc = p_lowpc; pc < p_highpc; ++pc)
     {
       instructp = (unsigned char *) core_text_space + pc - core_text_sect->vma;
diff --git a/gprof/mips.c b/gprof/mips.c
index e198a6f411a..0ccd17db525 100644
--- a/gprof/mips.c
+++ b/gprof/mips.c
@@ -59,6 +59,8 @@ mips_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
   DBG (CALLDEBUG, printf (_("[find_call] %s: 0x%lx to 0x%lx\n"),
 			  parent->name, (unsigned long) p_lowpc,
 			  (unsigned long) p_highpc));
+  p_lowpc = (p_lowpc + 3) & ~3;
+  p_highpc &= ~3;
   for (pc = p_lowpc; pc < p_highpc; pc += 4)
     {
       op = bfd_get_32 (core_bfd, ((unsigned char *)core_text_space
diff --git a/gprof/po/es.po b/gprof/po/es.po
index fa3f5e6e1dd..bce3eac55b5 100644
--- a/gprof/po/es.po
+++ b/gprof/po/es.po
@@ -2,14 +2,14 @@
 # Copyright (C) 2002 - 2020 Free Software Foundation, Inc.
 # This file is distributed under the same license as the binutils package.
 # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
-# Antonio Ceballos Roa <aceballos@gmail.com>, 2020
+# Antonio Ceballos Roa <aceballos@gmail.com>, 2020, 2023
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gprof 2.33.90\n"
-"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2020-01-18 14:04+0000\n"
-"PO-Revision-Date: 2020-05-15 09:01+0200\n"
+"Project-Id-Version: gprof 2.39.90\n"
+"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
+"POT-Creation-Date: 2022-12-31 12:22+0000\n"
+"PO-Revision-Date: 2023-07-30 18:19+0200\n"
 "Last-Translator: Antonio Ceballos Roa <aceballos@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
 "Language: es\n"
@@ -240,7 +240,7 @@ msgstr "<ciclo %d>"
 msgid "%s: unable to parse mapping file %s.\n"
 msgstr "%s: no se puede analizar el fichero de asociaciones %s.\n"
 
-#: corefile.c:89 corefile.c:523
+#: corefile.c:89 corefile.c:524
 #, c-format
 msgid "%s: could not open %s.\n"
 msgstr "%s: no se puede abrir %s.\n"
@@ -270,107 +270,107 @@ msgstr "%s: no se puede hacer -c\n"
 msgid "%s: -c not supported on architecture %s\n"
 msgstr "%s: -c no se admite en la arquitectura %s\n"
 
-#: corefile.c:532 corefile.c:637
+#: corefile.c:533 corefile.c:640
 #, c-format
 msgid "%s: file `%s' has no symbols\n"
 msgstr "%s: el fichero `%s' no tiene símbolos\n"
 
-#: corefile.c:537
+#: corefile.c:538
 #, c-format
 msgid "%s: file `%s' has too many symbols\n"
 msgstr "%s: el fichero `%s' tiene demasiados símbolos\n"
 
-#: corefile.c:904
+#: corefile.c:907
 #, c-format
 msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
 msgstr "%s: alguien contó mal: ltab.len=%d en lugar de %ld\n"
 
-#: gmon_io.c:83
+#: gmon_io.c:81
 #, c-format
 msgid "%s: address size has unexpected value of %u\n"
 msgstr "%s: el tamaño de la dirección tiene un valor inesperado de %u\n"
 
-#: gmon_io.c:318 gmon_io.c:414
+#: gmon_io.c:298 gmon_io.c:394
 #, c-format
 msgid "%s: file too short to be a gmon file\n"
 msgstr "%s: el fichero es muy corto para ser un fichero gmon\n"
 
-#: gmon_io.c:328 gmon_io.c:457
+#: gmon_io.c:308 gmon_io.c:437
 #, c-format
 msgid "%s: file `%s' has bad magic cookie\n"
 msgstr "%s: el fichero `%s' tiene un cookie mágico equivocado\n"
 
-#: gmon_io.c:339
+#: gmon_io.c:319
 #, c-format
 msgid "%s: file `%s' has unsupported version %d\n"
 msgstr "%s: el fichero `%s' tiene la versión %d no admitida\n"
 
-#: gmon_io.c:369
+#: gmon_io.c:349
 #, c-format
 msgid "%s: %s: found bad tag %d (file corrupted?)\n"
 msgstr "%s: %s: encontrada etiqueta %d equivocada (¿fichero corrupto?)\n"
 
-#: gmon_io.c:436
+#: gmon_io.c:416
 #, c-format
 msgid "%s: profiling rate incompatible with first gmon file\n"
 msgstr "%s: tipo de perfilado incompatible con el primer fichero gmon\n"
 
-#: gmon_io.c:487
+#: gmon_io.c:467
 #, c-format
 msgid "%s: incompatible with first gmon file\n"
 msgstr "%s: incompatible con el primer fichero gmon\n"
 
-#: gmon_io.c:517
+#: gmon_io.c:497
 #, c-format
 msgid "%s: file '%s' does not appear to be in gmon.out format\n"
 msgstr "%s: el fichero '%s' no parece estar en el formato gmon.out\n"
 
-#: gmon_io.c:530
+#: gmon_io.c:510
 #, c-format
 msgid "%s: unexpected EOF after reading %d/%d bins\n"
 msgstr "%s: EOF inesperado tras leer %d/%d binarios\n"
 
-#: gmon_io.c:562
+#: gmon_io.c:542
 #, c-format
 msgid "time is in ticks, not seconds\n"
 msgstr "el tiempo está en tics, no en segundos\n"
 
-#: gmon_io.c:568 gmon_io.c:748
+#: gmon_io.c:548 gmon_io.c:728
 #, c-format
 msgid "%s: don't know how to deal with file format %d\n"
 msgstr "%s: se desconoce cómo tratar el formato de fichero %d\n"
 
-#: gmon_io.c:578
+#: gmon_io.c:558
 #, c-format
 msgid "File `%s' (version %d) contains:\n"
 msgstr "El fichero `%s' (versión %d) contiene:\n"
 
-#: gmon_io.c:581
+#: gmon_io.c:561
 #, c-format
 msgid "\t%d histogram record\n"
 msgstr "\t%d registro de histograma\n"
 
-#: gmon_io.c:582
+#: gmon_io.c:562
 #, c-format
 msgid "\t%d histogram records\n"
 msgstr "\t%d registros de histogramas\n"
 
-#: gmon_io.c:584
+#: gmon_io.c:564
 #, c-format
 msgid "\t%d call-graph record\n"
 msgstr "\t%d registro de gráfico de llamadas\n"
 
-#: gmon_io.c:585
+#: gmon_io.c:565
 #, c-format
 msgid "\t%d call-graph records\n"
 msgstr "\t%d registros de gráficos de llamadas\n"
 
-#: gmon_io.c:587
+#: gmon_io.c:567
 #, c-format
 msgid "\t%d basic-block count record\n"
 msgstr "\t%d registro de cuenta de bloques básicos\n"
 
-#: gmon_io.c:588
+#: gmon_io.c:568
 #, c-format
 msgid "\t%d basic-block count records\n"
 msgstr "\t%d registros de cuentas de bloques básicos\n"
@@ -378,7 +378,7 @@ msgstr "\t%d registros de cuentas de bloques básicos\n"
 #: gprof.c:162
 #, c-format
 msgid ""
-"Usage: %s [-[abcDhilLrsTvwxyz]] [-[ACeEfFJnNOpPqQRStZ][name]] [-I dirs]\n"
+"Usage: %s [-[abcDhilLrsTvwxyz]] [-[ABCeEfFJnNOpPqQRStZ][name]] [-I dirs]\n"
 "\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
 "\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
 "\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
@@ -392,7 +392,7 @@ msgid ""
 "\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
 "\t[image-file] [profile-file...]\n"
 msgstr ""
-"Modo de empleo: %s [-[abcDhilLrsTvwxyz]] [-[ACeEfFJnNOpPqQRStZ][nombre]] [-I dirs]\n"
+"Modo de empleo: %s [-[abcDhilLrsTvwxyz]] [-[ABCeEfFJnNOpPqQRStZ][nombre]] [-I dirs]\n"
 "\t[-d[num]] [-k origen/destino] [-m cuenta-min] [-t longitud-tabla]\n"
 "\t[--[no-]annotated-source[=nombre]] [--[no-]exec-counts[=nombre]]\n"
 "\t[--[no-]flat-profile[=nombre]] [--[no-]graph[=nombre]]\n"
@@ -411,53 +411,53 @@ msgstr ""
 msgid "Report bugs to %s\n"
 msgstr "Comunicar defectos a %s\n"
 
-#: gprof.c:254
+#: gprof.c:252
 #, c-format
 msgid "%s: debugging not supported; -d ignored\n"
 msgstr "%s: no se admite la depuración; se descarta -d\n"
 
-#: gprof.c:340
+#: gprof.c:338
 #, c-format
 msgid "%s: unknown file format %s\n"
 msgstr "%s: formato de fichero %s desconocido\n"
 
 #. This output is intended to follow the GNU standards document.
-#: gprof.c:428
+#: gprof.c:426
 #, c-format
 msgid "GNU gprof %s\n"
 msgstr "GNU gprof %s\n"
 
-#: gprof.c:429
+#: gprof.c:427
 #, c-format
 msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
 msgstr "Basado en gprof de BSD, © 1983 Regents of the University of California.\n"
 
-#: gprof.c:430
+#: gprof.c:428
 #, c-format
 msgid "This program is free software.  This program has absolutely no warranty.\n"
 msgstr "Este programa es software libre.  Este programa no tiene ninguna garantía en absoluto.\n"
 
-#: gprof.c:471
+#: gprof.c:469
 #, c-format
 msgid "%s: unknown demangling style `%s'\n"
 msgstr "%s: estilo de desenredo desconocido `%s'\n"
 
-#: gprof.c:494
+#: gprof.c:492
 #, c-format
 msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
 msgstr "%s: Solo puede especificarse una de las opciones --function-ordering y --file-ordering.\n"
 
-#: gprof.c:546
+#: gprof.c:544
 #, c-format
 msgid "%s: sorry, file format `prof' is not yet supported\n"
 msgstr "%s: disculpe, el formato de fichero `prof' aún no está admitido\n"
 
-#: gprof.c:600
+#: gprof.c:598
 #, c-format
 msgid "%s: gmon.out file is missing histogram\n"
 msgstr "%s: falta el histograma en el fichero gmon.out\n"
 
-#: gprof.c:607
+#: gprof.c:605
 #, c-format
 msgid "%s: gmon.out file is missing call-graph data\n"
 msgstr "%s: faltan los datos del gráfico de llamadas en el fichero gmon.out\n"
@@ -584,17 +584,17 @@ msgstr "[find_call] 0x%lx: jal"
 msgid "[find_call] 0x%lx: jalr\n"
 msgstr "[find_call] 0x%lx: jalr\n"
 
-#: source.c:162
+#: source.c:166
 #, c-format
 msgid "%s: could not locate `%s'\n"
 msgstr "%s: no se puede encontrar `%s'\n"
 
-#: source.c:237
+#: source.c:244
 #, c-format
 msgid "*** File %s:\n"
 msgstr "*** Fichero %s:\n"
 
-#: utils.c:106
+#: utils.c:105
 #, c-format
 msgid " <cycle %d>"
 msgstr " <ciclo %d>"
diff --git a/gprof/po/gprof.pot b/gprof/po/gprof.pot
index c87e9d6a7a4..c9f538a419f 100644
--- a/gprof/po/gprof.pot
+++ b/gprof/po/gprof.pot
@@ -8,10 +8,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-03 11:33+0100\n"
+"POT-Creation-Date: 2022-07-08 11:14+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -245,7 +246,7 @@ msgstr ""
 msgid "%s: -c not supported on architecture %s\n"
 msgstr ""
 
-#: corefile.c:533 corefile.c:640
+#: corefile.c:533 corefile.c:638
 #, c-format
 msgid "%s: file `%s' has no symbols\n"
 msgstr ""
@@ -255,7 +256,7 @@ msgstr ""
 msgid "%s: file `%s' has too many symbols\n"
 msgstr ""
 
-#: corefile.c:907
+#: corefile.c:905
 #, c-format
 msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
 msgstr ""
@@ -353,7 +354,7 @@ msgstr ""
 #: gprof.c:162
 #, c-format
 msgid ""
-"Usage: %s [-[abcDhilLrsTvwxyz]] [-[ABCeEfFJnNOpPqQRStZ][name]] [-I dirs]\n"
+"Usage: %s [-[abcDhilLrsTvwxyz]] [-[ACeEfFJnNOpPqQRStZ][name]] [-I dirs]\n"
 "\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
 "\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
 "\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
diff --git a/gprof/sparc.c b/gprof/sparc.c
index 44724c47d3f..019e58b185f 100644
--- a/gprof/sparc.c
+++ b/gprof/sparc.c
@@ -51,7 +51,9 @@ sparc_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
   DBG (CALLDEBUG, printf ("[find_call] %s: 0x%lx to 0x%lx\n",
 			  parent->name, (unsigned long) p_lowpc,
 			  (unsigned long) p_highpc));
-  for (pc = (p_lowpc + 3) & ~(bfd_vma) 3; pc < p_highpc; pc += 4)
+  p_lowpc = (p_lowpc + 3) & ~3;
+  p_highpc &= ~3;
+  for (pc = p_lowpc; pc < p_highpc; pc += 4)
     {
       insn = bfd_get_32 (core_bfd, ((unsigned char *) core_text_space
 				    + pc - core_text_sect->vma));
diff --git a/gprof/vax.c b/gprof/vax.c
index 92942353b48..fafe2b17b53 100644
--- a/gprof/vax.c
+++ b/gprof/vax.c
@@ -252,6 +252,8 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
 			  (unsigned long) p_highpc));
   for (pc = p_lowpc; pc < p_highpc; pc += length)
     {
+      unsigned char *operand;
+
       length = 1;
       instructp = ((unsigned char *) core_text_space
 		   + pc - core_text_sect->vma);
@@ -263,7 +265,10 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
 	   */
 	  DBG (CALLDEBUG,
 	       printf ("[findcall]\t0x%lx:calls", (unsigned long) pc));
-	  firstmode = vax_operandmode (instructp + length);
+	  if (pc - core_text_sect->vma + length >= core_text_sect->size)
+	    goto botched;
+	  operand = instructp + length;
+	  firstmode = vax_operandmode (operand);
 	  switch (firstmode)
 	    {
 	    case literal:
@@ -272,8 +277,11 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
 	    default:
 	      goto botched;
 	    }
-	  length += vax_operandlength (instructp + length);
-	  mode = vax_operandmode (instructp + length);
+	  length += vax_operandlength (operand);
+	  if (pc - core_text_sect->vma + length >= core_text_sect->size)
+	    goto botched;
+	  operand = instructp + length;
+	  mode = vax_operandmode (operand);
 	  DBG (CALLDEBUG,
 	       printf ("\tfirst operand is %s", vax_operandname (firstmode));
 	       printf ("\tsecond operand is %s\n", vax_operandname (mode)));
@@ -294,8 +302,10 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
 	       *      [are there others that we miss?,
 	       *       e.g. arrays of pointers to functions???]
 	       */
+	      length += vax_operandlength (operand);
+	      if (pc - core_text_sect->vma + length > core_text_sect->size)
+		goto botched;
 	      arc_add (parent, &indirectchild, (unsigned long) 0);
-	      length += vax_operandlength (instructp + length);
 	      continue;
 	    case byterel:
 	    case wordrel:
@@ -305,7 +315,10 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
 	       *      check that this is the address of
 	       *      a function.
 	       */
-	      destpc = pc + vax_offset (instructp + length);
+	      length += vax_operandlength (operand);
+	      if (pc - core_text_sect->vma + length > core_text_sect->size)
+		goto botched;
+	      destpc = pc + vax_offset (operand);
 	      if (hist_check_address (destpc))
 		{
 		  child = sym_lookup (&symtab, destpc);
@@ -324,7 +337,6 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
 		           *    a hit
 		           */
 		          arc_add (parent, child, (unsigned long) 0);
-		          length += vax_operandlength (instructp + length);
 		          continue;
 		        }
 		    }
diff --git a/gprofng/configure b/gprofng/configure
index 800daa6ca28..c39dc8535f7 100755
--- a/gprofng/configure
+++ b/gprofng/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprofng 2.41.
+# Generated by GNU Autoconf 2.69 for gprofng 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gprofng'
 PACKAGE_TARNAME='gprofng'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='gprofng 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='gprofng 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1362,7 +1362,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gprofng 2.41 to adapt to many kinds of systems.
+\`configure' configures gprofng 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1433,7 +1433,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gprofng 2.41:";;
+     short | recursive ) echo "Configuration of gprofng 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1547,7 +1547,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gprofng configure 2.41
+gprofng configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2079,7 +2079,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gprofng $as_me 2.41, which was
+It was created by gprofng $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3052,7 +3052,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gprofng'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17514,7 +17514,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gprofng $as_me 2.41, which was
+This file was extended by gprofng $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17580,7 +17580,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gprofng config.status 2.41
+gprofng config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/gprofng/doc/version.texi b/gprofng/doc/version.texi
index bdf3cb91a9b..dea0bfa7381 100644
--- a/gprofng/doc/version.texi
+++ b/gprofng/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 3 July 2023
-@set UPDATED-MONTH July 2023
-@set EDITION 2.41
-@set VERSION 2.41
+@set UPDATED 18 April 2023
+@set UPDATED-MONTH April 2023
+@set EDITION 2.41.50
+@set VERSION 2.41.50
diff --git a/gprofng/libcollector/configure b/gprofng/libcollector/configure
index 2b76f7ab6f3..9dfc4ab3994 100755
--- a/gprofng/libcollector/configure
+++ b/gprofng/libcollector/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprofng 2.41.
+# Generated by GNU Autoconf 2.69 for gprofng 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gprofng'
 PACKAGE_TARNAME='gprofng'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='gprofng 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='gprofng 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1324,7 +1324,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gprofng 2.41 to adapt to many kinds of systems.
+\`configure' configures gprofng 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1395,7 +1395,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gprofng 2.41:";;
+     short | recursive ) echo "Configuration of gprofng 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1504,7 +1504,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gprofng configure 2.41
+gprofng configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1990,7 +1990,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gprofng $as_me 2.41, which was
+It was created by gprofng $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2967,7 +2967,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gprofng'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -16080,7 +16080,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gprofng $as_me 2.41, which was
+This file was extended by gprofng $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16146,7 +16146,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gprofng config.status 2.41
+gprofng config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/gprofng/libcollector/iotrace.c b/gprofng/libcollector/iotrace.c
index c0ea7497b09..81c844048d9 100644
--- a/gprofng/libcollector/iotrace.c
+++ b/gprofng/libcollector/iotrace.c
@@ -1030,8 +1030,9 @@ gprofng_open64 (int(real_open64) (const char *, int, ...),
   }
 
 DCL_FUNC_VER (DCL_OPEN64, open64_2_2, open64@GLIBC_2.2)
+#if !defined(__USE_LARGEFILE64)
 DCL_OPEN64 (open64)
-
+#endif
 
 #define F_ERROR_ARG     0
 #define F_INT_ARG       1
@@ -2989,8 +2990,9 @@ DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_17, fgetpos64@GLIBC_2.17)
 DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_2_5, fgetpos64@GLIBC_2.2.5)
 DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_2, fgetpos64@GLIBC_2.2)
 DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_1, fgetpos64@GLIBC_2.1)
+#if !defined(__USE_LARGEFILE64)
 DCL_FGETPOS64 (fgetpos64)
-
+#endif
 /*------------------------------------------------------------- fsetpos */
 static int
 gprofng_fsetpos (int(real_fsetpos) (FILE *, const fpos_t *),
@@ -3087,8 +3089,9 @@ DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_17, fsetpos64@GLIBC_2.17)
 DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_2_5, fsetpos64@GLIBC_2.2.5)
 DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_2, fsetpos64@GLIBC_2.2)
 DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_1, fsetpos64@GLIBC_2.1)
+#if !defined(__USE_LARGEFILE64)
 DCL_FSETPOS64 (fsetpos64)
-
+#endif
 /*------------------------------------------------------------- fsync */
 int
 fsync (int fildes)
diff --git a/gprofng/src/Command.cc b/gprofng/src/Command.cc
index 4faa5ec6736..cd6d19e85dc 100644
--- a/gprofng/src/Command.cc
+++ b/gprofng/src/Command.cc
@@ -40,7 +40,7 @@ const char *Command::DEFAULT_METRICS = "ei.user:name";  // if no .rc files read
 const char *Command::DEFAULT_SORT    = "e.user:name";   // if no .rc files read
 
 static char *fhdr, *cchdr, *lahdr, *iohdr, *sdhdr, *lsthdr, *lohdr;
-static char *methdr, *othdr, *mischdr, *deflthdr;
+static char *methdr, *othdr, *mischdr, *deflthdr, *andeflthdr;
 static char *selhdr, *filthdr, *outhdr, *exphdr, *obj_allhdr;
 static char *unsuphdr, *indxobjhdr;
 static char *helphdr, *rahdr, *ddhdr, *typehdr, *typehdr2;
@@ -177,6 +177,15 @@ static Cmdtable cmd_lst[] = {   // list of commands
   { DSORT, "dsort", NULL, "metric_spec", 1, &desc[DSORT]},
   { EN_DESC, "en_desc", NULL, "{on|off|=<regex>}", 1, &desc[EN_DESC]},
 
+  { NO_CMD, "", NULL, NULL, 0, &andeflthdr},
+  { TLMODE, "tlmode", NULL, "tl_mode", 1, &desc[TLMODE]},
+  { TLDATA, "tldata", NULL, "tl_data", 1, &desc[TLDATA]},
+  { TABS, "tabs", NULL, "tablist", 1, &desc[TABS]},
+  { CALLFLAME, "callflame", NULL, NULL, 0, &desc[CALLFLAME]},
+  { TIMELINE, "timeline", NULL, NULL, 0, &desc[TIMELINE]},
+  { DUALSOURCE, "dsrc", NULL, NULL, 0, &desc[DUALSOURCE]},
+  { SOURCEDISAM, "srcdis", NULL, NULL, 0, &desc[SOURCEDISAM]},
+
   { NO_CMD, "", NULL, NULL, 0, &mischdr},
   { DUMMY_CMD, "<type>", NULL, NULL, 0, &typehdr},
   { DUMMY_CMD, " ", NULL, NULL, 0, &typehdr2},
@@ -554,6 +563,7 @@ Command::init_desc ()
   mischdr = GTXT ("\nMiscellaneous commands:");
   exphdr = GTXT ("\nCommands for experiments (scripts and interactive mode only):");
   deflthdr = GTXT ("\nDefault-setting commands:");
+  andeflthdr = GTXT ("\nDefault-setting commands that only affect gprofng GUI");
   selhdr = GTXT ("\nCommands controlling old-style filters/selection:");
   filthdr = GTXT ("\nCommands controlling filters:");
   indxobjhdr = GTXT ("\nCommands controlling the index objects:");
diff --git a/gprofng/src/gprofng.rc b/gprofng/src/gprofng.rc
index 07f84c0d407..69534a77398 100644
--- a/gprofng/src/gprofng.rc
+++ b/gprofng/src/gprofng.rc
@@ -129,4 +129,6 @@ addpath $expts:.
 # Add controls for specific load objects
 #  object_hide <Unknown>
 
-# version "@(#)er.rc 1.62 11/10/31"
+# gprofng GUI tabs
+tabs dsrc:function:timeline:processes:threads:ctree:callflame:src:dis:leaks:ioactivity:ifreq:callers-callees:header
+
diff --git a/include/ChangeLog b/include/ChangeLog
index f0c8fe875ea..4d407403944 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,35 @@
+2023-07-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* elf/bpf.h (EF_BPF_CPUVER): Define.
+	* opcode/bpf.h (BPF_XBPF): Change from 0xf to 0xff so it fits in
+	EF_BPF_CPUVER.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* opcode/bpf.h (BPF_IMM32_BSWAP16): Define.
+	(BPF_IMM32_BSWAP32): Likewise.
+	(BPF_IMM32_BSWAP64): Likewise.
+	(enum bpf_insn_id): New entries BPF_INSN_BSWAP{16,32,64}.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* opcode/bpf.h (enum bpf_insn_id): Add entry BPF_INSN_JAL.
+	(enum bpf_insn_id): Remove spurious entry BPF_INSN_CALLI.
+
+2023-07-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* opcode/bpf.h (enum bpf_insn_id): Add entries for signed load
+	instructions.
+	(BPF_MODE_SMEM): Define.
+
+2023-07-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* opcode/bpf.h (BPF_OFFSET16_MOVS8): Define.
+	(BPF_OFFSET16_MOVS16): Likewise.
+	(BPF_OFFSET16_MOVS32): Likewise.
+	(enum bpf_insn_id): Add entries for MOVS{8,16,32}R and
+	MOVS32{8,16,32}R.
+
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
 	2.41 Branch Point.
diff --git a/include/coff/internal.h b/include/coff/internal.h
index 92a0abfd4f1..7a566caa057 100644
--- a/include/coff/internal.h
+++ b/include/coff/internal.h
@@ -352,7 +352,7 @@ struct internal_aouthdr
 
 #define C_NULL_VALUE	0x00de1e00    /* Value for a C_NULL deleted entry.  */
 
-#if defined _AIX52 || defined AIX_WEAK_SUPPORT
+#ifdef AIX_WEAK_SUPPORT
 #undef C_WEAKEXT
 #define C_WEAKEXT       C_AIX_WEAKEXT
 #endif
diff --git a/include/dis-asm.h b/include/dis-asm.h
index d356429f3c5..c76185f5b3c 100644
--- a/include/dis-asm.h
+++ b/include/dis-asm.h
@@ -388,6 +388,7 @@ extern void print_arc_disassembler_options (FILE *);
 extern void print_s390_disassembler_options (FILE *);
 extern void print_wasm32_disassembler_options (FILE *);
 extern void print_loongarch_disassembler_options (FILE *);
+extern void print_bpf_disassembler_options (FILE *);
 extern bool aarch64_symbol_is_valid (asymbol *, struct disassemble_info *);
 extern bool arm_symbol_is_valid (asymbol *, struct disassemble_info *);
 extern bool csky_symbol_is_valid (asymbol *, struct disassemble_info *);
diff --git a/include/elf/bpf.h b/include/elf/bpf.h
index fb1936010bf..e4d416290a7 100644
--- a/include/elf/bpf.h
+++ b/include/elf/bpf.h
@@ -34,6 +34,12 @@ START_RELOC_NUMBERS (elf_bpf_reloc_type)
  * It is kept in this file to remind that the value is already taken. */
   RELOC_NUMBER (R_BPF_64_NODYLD32, 		4)
   RELOC_NUMBER (R_BPF_64_32,      		10)
+  RELOC_NUMBER (R_BPF_GNU_64_16,                256)
 END_RELOC_NUMBERS (R_BPF_max)
 
+/* Processor specific flags for the ELF header e_flags field.  */
+
+/* Version of the BPF ISA used in the file.  */
+#define EF_BPF_CPUVER 0x0000000f
+
 #endif /* _ELF_BPF_H  */
diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
index 90f44153750..53f5f200508 100644
--- a/include/opcode/riscv-opc.h
+++ b/include/opcode/riscv-opc.h
@@ -2210,6 +2210,31 @@
 #define MASK_VSM3C_VI 0xfe00707f
 #define MATCH_VSM3ME_VV 0x82002077
 #define MASK_VSM3ME_VV 0xfe00707f
+/* Zcb instructions.  */
+#define MATCH_C_LBU 0x8000
+#define MASK_C_LBU 0xfc03
+#define MATCH_C_LHU 0x8400
+#define MASK_C_LHU 0xfc43
+#define MATCH_C_LH 0x8440
+#define MASK_C_LH 0xfc43
+#define MATCH_C_SB 0x8800
+#define MASK_C_SB 0xfc03
+#define MATCH_C_SH 0x8c00
+#define MASK_C_SH 0xfc43
+#define MATCH_C_ZEXT_B 0x9c61
+#define MASK_C_ZEXT_B 0xfc7f
+#define MATCH_C_SEXT_B 0x9c65
+#define MASK_C_SEXT_B 0xfc7f
+#define MATCH_C_ZEXT_H 0x9c69
+#define MASK_C_ZEXT_H 0xfc7f
+#define MATCH_C_SEXT_H 0x9c6d
+#define MASK_C_SEXT_H 0xfc7f
+#define MATCH_C_ZEXT_W 0x9c71
+#define MASK_C_ZEXT_W 0xfc7f
+#define MATCH_C_NOT 0x9c75
+#define MASK_C_NOT 0xfc7f
+#define MATCH_C_MUL 0x9c41
+#define MASK_C_MUL 0xfc63
 /* Svinval instruction.  */
 #define MATCH_SINVAL_VMA 0x16000073
 #define MASK_SINVAL_VMA 0xfe007fff
@@ -3367,6 +3392,19 @@ DECLARE_INSN(vsm4r_vv, MATCH_VSM4R_VV, MASK_VSM4R_VV)
 /* Zvksh instructions.  */
 DECLARE_INSN(vsm3c_vi, MATCH_VSM3C_VI, MASK_VSM3C_VI)
 DECLARE_INSN(vsm3me_vv, MATCH_VSM3ME_VV, MASK_VSM3ME_VV)
+/* Zcb instructions.  */
+DECLARE_INSN(c_sext_b, MATCH_C_SEXT_B, MASK_C_SEXT_B)
+DECLARE_INSN(c_sext_h, MATCH_C_SEXT_H, MASK_C_SEXT_H)
+DECLARE_INSN(c_zext_b, MATCH_C_ZEXT_B, MASK_C_ZEXT_B)
+DECLARE_INSN(c_zext_h, MATCH_C_ZEXT_H, MASK_C_ZEXT_H)
+DECLARE_INSN(c_zext_w, MATCH_C_ZEXT_W, MASK_C_ZEXT_W)
+DECLARE_INSN(c_mul, MATCH_C_MUL, MASK_C_MUL)
+DECLARE_INSN(c_not, MATCH_C_NOT, MASK_C_NOT)
+DECLARE_INSN(c_lbu, MATCH_C_LBU, MASK_C_LBU)
+DECLARE_INSN(c_lhu, MATCH_C_LHU, MASK_C_LHU)
+DECLARE_INSN(c_lh, MATCH_C_LH, MASK_C_LH)
+DECLARE_INSN(c_sb, MATCH_C_SB, MASK_C_SB)
+DECLARE_INSN(c_sh, MATCH_C_SH, MASK_C_SH)
 /* Vendor-specific (T-Head) XTheadBa instructions.  */
 DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL)
 /* Vendor-specific (T-Head) XTheadBb instructions.  */
diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h
index d859f44fc92..808f3657303 100644
--- a/include/opcode/riscv.h
+++ b/include/opcode/riscv.h
@@ -108,6 +108,10 @@ static inline unsigned int riscv_insn_length (insn_t insn)
   (RV_X(x, 20, 10))
 #define EXTRACT_RVV_VC_IMM(x) \
   (RV_X(x, 20, 11))
+#define EXTRACT_ZCB_BYTE_UIMM(x) \
+  (RV_X(x, 6, 1) | (RV_X(x, 5, 1) << 1))
+#define EXTRACT_ZCB_HALFWORD_UIMM(x) \
+  (RV_X(x, 5, 1) << 1)
 
 #define ENCODE_ITYPE_IMM(x) \
   (RV_X(x, 0, 12) << 20)
@@ -155,6 +159,10 @@ static inline unsigned int riscv_insn_length (insn_t insn)
   (RV_X(x, 0, 11) << 20)
 #define ENCODE_RVV_VI_UIMM6(x) \
   (RV_X(x, 0, 5) << 15 | RV_X(x, 5, 1) << 26)
+#define ENCODE_ZCB_BYTE_UIMM(x) \
+  ((RV_X(x, 0, 1) << 6) | (RV_X(x, 1, 1) << 5))
+#define ENCODE_ZCB_HALFWORD_UIMM(x) \
+  (RV_X(x, 1, 1) << 5)
 
 #define VALID_ITYPE_IMM(x) (EXTRACT_ITYPE_IMM(ENCODE_ITYPE_IMM(x)) == (x))
 #define VALID_STYPE_IMM(x) (EXTRACT_STYPE_IMM(ENCODE_STYPE_IMM(x)) == (x))
@@ -180,6 +188,8 @@ static inline unsigned int riscv_insn_length (insn_t insn)
 #define VALID_CJTYPE_IMM(x) (EXTRACT_CJTYPE_IMM(ENCODE_CJTYPE_IMM(x)) == (x))
 #define VALID_RVV_VB_IMM(x) (EXTRACT_RVV_VB_IMM(ENCODE_RVV_VB_IMM(x)) == (x))
 #define VALID_RVV_VC_IMM(x) (EXTRACT_RVV_VC_IMM(ENCODE_RVV_VC_IMM(x)) == (x))
+#define VALID_ZCB_BYTE_UIMM(x) (EXTRACT_ZCB_BYTE_UIMM(ENCODE_ZCB_BYTE_UIMM(x)) == (x))
+#define VALID_ZCB_HALFWORD_UIMM(x) (EXTRACT_ZCB_HALFWORD_UIMM(ENCODE_ZCB_HALFWORD_UIMM(x)) == (x))
 
 #define RISCV_RTYPE(insn, rd, rs1, rs2) \
   ((MATCH_ ## insn) | ((rd) << OP_SH_RD) | ((rs1) << OP_SH_RS1) | ((rs2) << OP_SH_RS2))
@@ -418,11 +428,13 @@ enum riscv_insn_class
   INSN_CLASS_ZVBC,
   INSN_CLASS_ZVKG,
   INSN_CLASS_ZVKNED,
-  INSN_CLASS_ZVKNHA,
-  INSN_CLASS_ZVKNHB,
   INSN_CLASS_ZVKNHA_OR_ZVKNHB,
   INSN_CLASS_ZVKSED,
   INSN_CLASS_ZVKSH,
+  INSN_CLASS_ZCB,
+  INSN_CLASS_ZCB_AND_ZBA,
+  INSN_CLASS_ZCB_AND_ZBB,
+  INSN_CLASS_ZCB_AND_ZMMUL,
   INSN_CLASS_SVINVAL,
   INSN_CLASS_ZICBOM,
   INSN_CLASS_ZICBOP,
diff --git a/ld/ChangeLog b/ld/ChangeLog
index ed73b7f2019..99029f1e186 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,12 +1,9 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
+2023-07-24  Johannes Schauer Marin Rodrigues  <josch@debian.org>
 
-	This is the 2.41 release.
-	* configure: Regenerate.
-	* po/ld.pot: Regenerate.
-
-	modified:   opcodes/configure
-	modified:   opcodes/po/opcodes.pot
-	modified:   src-release.sh
+	* pe-dll.c (fill_edata): If inserting a timestamp, use the value
+	held in the SOURCE_DATE_EPOCH environment variable, if it is
+	defined.
+	* ld.texi (--insert-timestamp): Document change in behaviour.
 
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
diff --git a/ld/configure b/ld/configure
index 7037dfdd03e..33e09fc6987 100755
--- a/ld/configure
+++ b/ld/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ld 2.41.
+# Generated by GNU Autoconf 2.69 for ld 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ld'
 PACKAGE_TARNAME='ld'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='ld 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='ld 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1423,7 +1423,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ld 2.41 to adapt to many kinds of systems.
+\`configure' configures ld 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1494,7 +1494,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ld 2.41:";;
+     short | recursive ) echo "Configuration of ld 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1536,7 +1536,7 @@ Optional Features:
   --enable-separate-code  enable -z separate-code in ELF linker by default
   --enable-warn-execstack enable warnings when creating an executable stack
   --enable-warn-rwx-segments
-                          enable warnings when creating segements with RWX
+                          enable warnings when creating segments with RWX
                           permissions
   --enable-default-execstack
                           create an executable stack if an input file is
@@ -1661,7 +1661,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ld configure 2.41
+ld configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2376,7 +2376,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ld $as_me 2.41, which was
+It was created by ld $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3359,7 +3359,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ld'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18083,7 +18083,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ld $as_me 2.41, which was
+This file was extended by ld $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18149,7 +18149,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ld config.status 2.41
+ld config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/ld/configure.ac b/ld/configure.ac
index 77edac3258c..217ef7b2733 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -228,7 +228,7 @@ esac])
 ac_default_ld_warn_rwx_segments=unset
 AC_ARG_ENABLE(warn-rwx-segments,
 	      AS_HELP_STRING([--enable-warn-rwx-segments],
-	      [enable warnings when creating segements with RWX permissions]),
+	      [enable warnings when creating segments with RWX permissions]),
 [case "${enableval}" in
   yes) ac_default_ld_warn_rwx_segments=1 ;;
   no)  ac_default_ld_warn_rwx_segments=0 ;;
diff --git a/ld/emulparams/elf64_s390.sh b/ld/emulparams/elf64_s390.sh
index 899efd7f532..d0a2a59a092 100644
--- a/ld/emulparams/elf64_s390.sh
+++ b/ld/emulparams/elf64_s390.sh
@@ -17,6 +17,7 @@ EXTRA_EM_FILE=s390
 IREL_IN_PLT=
 SEPARATE_GOTPLT=0
 test -z "$RELRO" && unset SEPARATE_GOTPLT
+SYMBOL_ABI_ALIGNMENT=2
 
 # Treat a host that matches the target with the possible exception of "x"
 # in the name as if it were native.
diff --git a/ld/emulparams/elf_s390.sh b/ld/emulparams/elf_s390.sh
index cb1c6b5b04d..1b2fca3f937 100644
--- a/ld/emulparams/elf_s390.sh
+++ b/ld/emulparams/elf_s390.sh
@@ -12,3 +12,4 @@ GENERATE_SHLIB_SCRIPT=yes
 GENERATE_PIE_SCRIPT=yes
 NO_SMALL_DATA=yes
 IREL_IN_PLT=
+SYMBOL_ABI_ALIGNMENT=2
diff --git a/ld/emultempl/pdp11.em b/ld/emultempl/pdp11.em
index 8ff260a4c13..c6dbdeedd6a 100644
--- a/ld/emultempl/pdp11.em
+++ b/ld/emultempl/pdp11.em
@@ -21,6 +21,7 @@
 fragment <<EOF
 
 /* --- \begin{pdp11.em} */
+#include "libiberty.h"
 #include "getopt.h"
 
 static void
diff --git a/ld/emultempl/ticoff.em b/ld/emultempl/ticoff.em
index 31abefe6674..8a3bfae7fcb 100644
--- a/ld/emultempl/ticoff.em
+++ b/ld/emultempl/ticoff.em
@@ -28,6 +28,7 @@ fragment <<EOF
 #define TARGET_IS_${EMULATION_NAME}
 
 #include "sysdep.h"
+#include "libiberty.h"
 #include "bfd.h"
 #include "bfdlink.h"
 #include "ctf-api.h"
diff --git a/ld/emultempl/vms.em b/ld/emultempl/vms.em
index 3d2cd4a56c7..1d90169e93d 100644
--- a/ld/emultempl/vms.em
+++ b/ld/emultempl/vms.em
@@ -22,6 +22,7 @@
 # This file is sourced from generic.em.
 
 fragment <<EOF
+#include "libiberty.h"
 #include "getopt.h"
 
 static void
diff --git a/ld/ld.texi b/ld/ld.texi
index aa8b1aa86eb..24e9debfb5f 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -3571,6 +3571,11 @@ can be used to insert a zero value for the timestamp, this ensuring
 that binaries produced from identical sources will compare
 identically.
 
+If @option{--insert-timestamp} is active then the time inserted is
+either the time that the linking takes place or, if the
+@code{SOURCE_DATE_EPOCH} environment variable is defined, the number
+of seconds since Unix epoch as specified by that variable.
+
 @kindex --enable-reloc-section
 @item --enable-reloc-section
 @itemx --disable-reloc-section
@@ -6818,19 +6823,21 @@ the standard bindings and precedence levels:
 @ifnottex
 @c END TEXI2ROFF-KILL
 @smallexample
-precedence      associativity   Operators                Notes
+precedence      associativity   Operators                           Notes
 (highest)
-1               left            !  -  ~                  (1)
+1               left            !  -  ~                             (1)
 2               left            *  /  %
 3               left            +  -
 4               left            >>  <<
-5               left            ==  !=  >  <  <=  >=
-6               left            &
-7               left            |
-8               left            &&
-9               left            ||
-10              right           ? :
-11              right           &=  +=  -=  *=  /=       (2)
+5               left            >  <  <=  >=
+6               left            ==  !=
+7               left            &
+8               left            ^
+9               left            |
+10              left            &&
+11              left            ||
+12              right           ? :
+13              right           +=  -=  *=  /=  <<=  >>=  &=  |= ^= (2)
 (lowest)
 @end smallexample
 Notes:
@@ -6856,13 +6863,15 @@ height2pt&\omit&&\omit&&\omit&\cr
 &2&&left&&*          /        \%&\cr
 &3&&left&&+          -&\cr
 &4&&left&&>>         <<&\cr
-&5&&left&&==         !=       >      <      <=      >=&\cr
-&6&&left&&\&&\cr
-&7&&left&&|&\cr
-&8&&left&&{\&\&}&\cr
-&9&&left&&||&\cr
-&10&&right&&?        :&\cr
-&11&&right&&\qquad\&=      +=       -=     *=     /=\qquad\ddag&\cr
+&5&&left&& >      <      <=      >=&\cr
+&6&&left&&==         !=&\cr
+&7&&left&&\&&\cr
+&8&&left&&\^{}&\cr
+&9&&left&&|&\cr
+&10&&left&&{\&\&}&\cr
+&11&&left&&||&\cr
+&12&&right&&?        :&\cr
+&13&&right&&\qquad +=       -=     *=     /= <<= >>= \&= |= \^{}=\qquad\ddag&\cr
 &lowest&&&&&\cr
 height2pt&\omit&&\omit&&\omit&\cr}
 \hrule}
@@ -7110,10 +7119,13 @@ The builtin function @code{NEXT} is closely related to @code{ALIGN}.
 @kindex ALIGNOF(@var{section})
 @cindex section alignment
 Return the alignment in bytes of the named @var{section}, if that section has
-been allocated.  If the section has not been allocated when this is
-evaluated, the linker will report an error. In the following example,
-the alignment of the @code{.output} section is stored as the first
-value in that section.
+been allocated, or zero if the section has not been allocated.  If the
+section does not exist in the linker script the linker will report an
+error.  If @var{section} is @code{NEXT_SECTION} then @code{ALIGNOF} will
+return the alignment of the next allocated section specified in the
+linker script, or zero if there is no such section.  In the following
+example, the alignment of the @code{.output} section is stored as the
+first value in that section.
 @smallexample
 @group
 SECTIONS@{ @dots{}
@@ -7262,9 +7274,13 @@ name.
 @kindex SIZEOF(@var{section})
 @cindex section size
 Return the size in bytes of the named @var{section}, if that section has
-been allocated.  If the section has not been allocated when this is
-evaluated, the linker will report an error.  In the following example,
-@code{symbol_1} and @code{symbol_2} are assigned identical values:
+been allocated, or zero if the section has not been allocated.  If the
+section does not exist in the linker script the linker will report an
+error.  If @var{section} is @code{NEXT_SECTION} then @code{SIZEOF} will
+return the alignment of the next allocated section specified in the
+linker script, or zero if there is no such section.  In the following
+example, @code{symbol_1} and @code{symbol_2} are assigned identical
+values:
 @smallexample
 @group
 SECTIONS@{ @dots{}
diff --git a/ld/ldctor.c b/ld/ldctor.c
index 2f80aa02df6..936bf4a7977 100644
--- a/ld/ldctor.c
+++ b/ld/ldctor.c
@@ -20,6 +20,7 @@
    MA 02110-1301, USA.  */
 
 #include "sysdep.h"
+#include "libiberty.h"
 #include "bfd.h"
 #include "bfdlink.h"
 #include "safe-ctype.h"
diff --git a/ld/ldelfgen.c b/ld/ldelfgen.c
index 8e4a188964e..62fce3e60fa 100644
--- a/ld/ldelfgen.c
+++ b/ld/ldelfgen.c
@@ -19,6 +19,7 @@
    MA 02110-1301, USA.  */
 
 #include "sysdep.h"
+#include "libiberty.h"
 #include "bfd.h"
 #include "bfdlink.h"
 #include "ctf-api.h"
diff --git a/ld/ldexp.c b/ld/ldexp.c
index 170e1ed7f56..c53879534a5 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -94,6 +94,7 @@ exp_print_token (token_code_type code, int infix_p)
     { RSHIFTEQ, ">>=" },
     { ANDEQ, "&=" },
     { OREQ, "|=" },
+    { XOREQ, "^=" },
     { OROR, "||" },
     { ANDAND, "&&" },
     { EQ, "==" },
@@ -691,6 +692,24 @@ fold_trinary (etree_type *tree)
 		     : tree->trinary.rhs);
 }
 
+static lang_output_section_statement_type *
+output_section_find (const char *name)
+{
+  lang_output_section_statement_type *os = lang_output_section_find (name);
+
+  if (os == NULL && strcmp (name, "NEXT_SECTION") == 0)
+    {
+      os = expld.last_os;
+      if (os != NULL)
+	while ((os = os->next) != NULL)
+	  if (os->constraint >= 0 && os->bfd_section != NULL)
+	    break;
+      if (os == NULL)
+	os = abs_output_section;
+    }
+  return os;
+}
+
 static void
 fold_name (etree_type *tree)
 {
@@ -850,7 +869,7 @@ fold_name (etree_type *tree)
 	{
 	  lang_output_section_statement_type *os;
 
-	  os = lang_output_section_find (tree->name.name);
+	  os = output_section_find (tree->name.name);
 	  if (os == NULL)
 	    {
 	      if (expld.phase == lang_final_phase_enum)
@@ -1270,29 +1289,32 @@ exp_fold_tree_1 (etree_type *tree)
 }
 
 void
-exp_fold_tree (etree_type *tree, asection *current_section, bfd_vma *dotp)
+exp_fold_tree (etree_type *tree, lang_output_section_statement_type *os,
+	       asection *current_section, bfd_vma *dotp)
 {
   expld.rel_from_abs = false;
   expld.dot = *dotp;
   expld.dotp = dotp;
   expld.section = current_section;
+  expld.last_os = os;
   exp_fold_tree_1 (tree);
 }
 
 void
-exp_fold_tree_no_dot (etree_type *tree)
+exp_fold_tree_no_dot (etree_type *tree, lang_output_section_statement_type *os)
 {
   expld.rel_from_abs = false;
   expld.dot = 0;
   expld.dotp = NULL;
   expld.section = bfd_abs_section_ptr;
+  expld.last_os = os;
   exp_fold_tree_1 (tree);
 }
 
 static void
 exp_value_fold (etree_type *tree)
 {
-  exp_fold_tree_no_dot (tree);
+  exp_fold_tree_no_dot (tree, NULL);
   if (expld.result.valid_p)
     {
       tree->type.node_code = INT;
@@ -1547,11 +1569,12 @@ exp_print_tree (etree_type *tree)
 }
 
 bfd_vma
-exp_get_vma (etree_type *tree, bfd_vma def, char *name)
+exp_get_vma (etree_type *tree, lang_output_section_statement_type *os,
+	     bfd_vma def, char *name)
 {
   if (tree != NULL)
     {
-      exp_fold_tree_no_dot (tree);
+      exp_fold_tree_no_dot (tree, os);
       if (expld.result.valid_p)
 	return expld.result.value;
       else if (name != NULL && expld.phase != lang_mark_phase_enum)
@@ -1567,9 +1590,10 @@ exp_get_vma (etree_type *tree, bfd_vma def, char *name)
    NULL or cannot be resolved, return -1.  */
 
 int
-exp_get_power (etree_type *tree, char *name)
+exp_get_power (etree_type *tree, lang_output_section_statement_type *os,
+	       char *name)
 {
-  bfd_vma x = exp_get_vma (tree, -1, name);
+  bfd_vma x = exp_get_vma (tree, os, -1, name);
   bfd_vma p2;
   int n;
 
@@ -1593,7 +1617,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
   if (tree == NULL)
     return def;
 
-  exp_fold_tree_no_dot (tree);
+  exp_fold_tree_no_dot (tree, NULL);
   if (!expld.result.valid_p)
     {
       if (name != NULL && expld.phase != lang_mark_phase_enum)
@@ -1647,7 +1671,7 @@ exp_get_abs_int (etree_type *tree, int def, char *name)
 {
   if (tree != NULL)
     {
-      exp_fold_tree_no_dot (tree);
+      exp_fold_tree_no_dot (tree, NULL);
 
       if (expld.result.valid_p)
 	{
diff --git a/ld/ldexp.h b/ld/ldexp.h
index 70908c17eb5..7c302753192 100644
--- a/ld/ldexp.h
+++ b/ld/ldexp.h
@@ -133,6 +133,8 @@ enum relro_enum {
   exp_seg_relro_end,
 };
 
+struct lang_output_section_statement_struct;
+
 typedef struct {
   enum phase_enum phase;
 
@@ -176,10 +178,17 @@ struct ldexp_control {
   etree_value_type result;
   bfd_vma dot;
 
-  /* Current dot and section passed to ldexp folder.  */
+  /* Current dot and section passed to ldexp folder.  SECTION will be
+     bfd_abs_section for expressions outside of an output section
+     statement.  */
   bfd_vma *dotp;
   asection *section;
 
+  /* Last output section statement.  For expressions within an output
+     section statement, this will be the current output section
+     statement being processed.  */
+  struct lang_output_section_statement_struct *last_os;
+
   /* State machine and results for DATASEG.  */
   seg_align_type dataseg;
 };
@@ -211,9 +220,10 @@ etree_type *exp_bigintop
 etree_type *exp_relop
   (asection *, bfd_vma);
 void exp_fold_tree
-  (etree_type *, asection *, bfd_vma *);
+  (etree_type *, struct lang_output_section_statement_struct *,
+   asection *, bfd_vma *);
 void exp_fold_tree_no_dot
-  (etree_type *);
+  (etree_type *, struct lang_output_section_statement_struct *);
 etree_type *exp_binop
   (int, etree_type *, etree_type *);
 etree_type *exp_trinop
@@ -233,9 +243,9 @@ etree_type *exp_assert
 void exp_print_tree
   (etree_type *);
 bfd_vma exp_get_vma
-  (etree_type *, bfd_vma, char *);
+  (etree_type *, struct lang_output_section_statement_struct *, bfd_vma, char *);
 int exp_get_power
-  (etree_type *, char *);
+  (etree_type *, struct lang_output_section_statement_struct *, char *);
 fill_type *exp_get_fill
   (etree_type *, fill_type *, char *);
 bfd_vma exp_get_abs_int
diff --git a/ld/ldgram.y b/ld/ldgram.y
index 081176ba0f1..2b4b5070982 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -27,6 +27,7 @@
 #define DONTDECLARE_MALLOC
 
 #include "sysdep.h"
+#include "libiberty.h"
 #include "bfd.h"
 #include "bfdlink.h"
 #include "ctf-api.h"
@@ -58,6 +59,8 @@ static char *error_names[ERROR_NAME_MAX];
 static int error_index;
 #define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
 #define POP_ERROR()   error_index--;
+
+static void yyerror (const char *);
 %}
 %union {
   bfd_vma integer;
@@ -108,7 +111,7 @@ static int error_index;
 %type <section_phdr> phdr_opt
 %type <integer> opt_nocrossrefs
 
-%right <token> PLUSEQ MINUSEQ MULTEQ DIVEQ  '=' LSHIFTEQ RSHIFTEQ   ANDEQ OREQ
+%right <token> PLUSEQ MINUSEQ MULTEQ DIVEQ  '=' LSHIFTEQ RSHIFTEQ   ANDEQ OREQ XOREQ
 %right <token> '?' ':'
 %left <token> OROR
 %left <token>  ANDAND
@@ -747,6 +750,8 @@ assign_op:
 			{ $$ = '&'; }
 	|	OREQ
 			{ $$ = '|'; }
+	|	XOREQ
+			{ $$ = '^'; }
 
 	;
 
@@ -1504,9 +1509,8 @@ opt_semicolon:
 	;
 
 %%
-void
-yyerror(arg)
-     const char *arg;
+static void
+yyerror (const char *arg)
 {
   if (ldfile_assumed_script)
     einfo (_("%P:%s: file format not recognized; treating as linker script\n"),
diff --git a/ld/ldlang.c b/ld/ldlang.c
index a357f80235f..f7760fed69b 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -2439,7 +2439,7 @@ init_os (lang_output_section_statement_type *s, flagword flags)
 
   /* If supplied an alignment, set it.  */
   if (s->section_alignment != NULL)
-    s->bfd_section->alignment_power = exp_get_power (s->section_alignment,
+    s->bfd_section->alignment_power = exp_get_power (s->section_alignment, s,
 						     "section alignment");
 }
 
@@ -3494,17 +3494,20 @@ static struct bfd_link_hash_entry *plugin_undefs = NULL;
 #endif
 
 static void
-open_input_bfds (lang_statement_union_type *s, enum open_bfd_mode mode)
+open_input_bfds (lang_statement_union_type *s,
+		 lang_output_section_statement_type *os,
+		 enum open_bfd_mode mode)
 {
   for (; s != NULL; s = s->header.next)
     {
       switch (s->header.type)
 	{
 	case lang_constructors_statement_enum:
-	  open_input_bfds (constructor_list.head, mode);
+	  open_input_bfds (constructor_list.head, os, mode);
 	  break;
 	case lang_output_section_statement_enum:
-	  open_input_bfds (s->output_section_statement.children.head, mode);
+	  os = &s->output_section_statement;
+	  open_input_bfds (os->children.head, os, mode);
 	  break;
 	case lang_wild_statement_enum:
 	  /* Maybe we should load the file's symbols.  */
@@ -3513,7 +3516,7 @@ open_input_bfds (lang_statement_union_type *s, enum open_bfd_mode mode)
 	      && !wildcardp (s->wild_statement.filename)
 	      && !archive_path (s->wild_statement.filename))
 	    lookup_name (s->wild_statement.filename);
-	  open_input_bfds (s->wild_statement.children.head, mode);
+	  open_input_bfds (s->wild_statement.children.head, os, mode);
 	  break;
 	case lang_group_statement_enum:
 	  {
@@ -3532,7 +3535,7 @@ open_input_bfds (lang_statement_union_type *s, enum open_bfd_mode mode)
 		plugin_insert_save = plugin_insert;
 #endif
 		undefs = link_info.hash->undefs_tail;
-		open_input_bfds (s->group_statement.children.head,
+		open_input_bfds (s->group_statement.children.head, os,
 				 mode | OPEN_BFD_FORCE);
 	      }
 	    while (undefs != link_info.hash->undefs_tail
@@ -3619,7 +3622,7 @@ open_input_bfds (lang_statement_union_type *s, enum open_bfd_mode mode)
 	  break;
 	case lang_assignment_statement_enum:
 	  if (s->assignment_statement.exp->type.node_class != etree_assert)
-	    exp_fold_tree_no_dot (s->assignment_statement.exp);
+	    exp_fold_tree_no_dot (s->assignment_statement.exp, os);
 	  break;
 	default:
 	  break;
@@ -4227,7 +4230,7 @@ map_input_to_output_sections
 		}
 	     else
 	       {
-		 exp_fold_tree_no_dot (os->sectype_value);
+		 exp_fold_tree_no_dot (os->sectype_value, os);
 		 if (expld.result.valid_p)
 		   type = expld.result.value;
 		 else
@@ -4654,6 +4657,7 @@ print_output_section_statement
 
 	  if (output_section_statement->update_dot_tree != NULL)
 	    exp_fold_tree (output_section_statement->update_dot_tree,
+			   output_section_statement,
 			   bfd_abs_section_ptr, &print_dot);
 	}
 
@@ -4692,7 +4696,7 @@ print_assignment (lang_assignment_statement_type *assignment,
     osec = bfd_abs_section_ptr;
 
   if (assignment->exp->type.node_class != etree_provide)
-    exp_fold_tree (tree, osec, &print_dot);
+    exp_fold_tree (tree, output_section, osec, &print_dot);
   else
     expld.result.valid_p = false;
 
@@ -5423,6 +5427,7 @@ size_input_section
       if (output_section_statement->subsection_alignment != NULL)
 	i->alignment_power
 	  = exp_get_power (output_section_statement->subsection_alignment,
+			   output_section_statement,
 			   "subsection alignment");
 
       if (o->alignment_power < i->alignment_power)
@@ -5761,7 +5766,7 @@ ldlang_check_relro_region (lang_statement_union_type *s)
 static bfd_vma
 lang_size_sections_1
   (lang_statement_union_type **prev,
-   lang_output_section_statement_type *output_section_statement,
+   lang_output_section_statement_type *current_os,
    fill_type *fill,
    bfd_vma dot,
    bool *relax,
@@ -5770,6 +5775,7 @@ lang_size_sections_1
   lang_statement_union_type *s;
   lang_statement_union_type *prev_s = NULL;
   bool removed_prev_s = false;
+  lang_output_section_statement_type *os = current_os;
 
   /* Size up the sections from their constituent parts.  */
   for (s = *prev; s != NULL; prev_s = s, s = s->header.next)
@@ -5781,7 +5787,6 @@ lang_size_sections_1
 	case lang_output_section_statement_enum:
 	  {
 	    bfd_vma newdot, after, dotdelta;
-	    lang_output_section_statement_type *os;
 	    lang_memory_region_type *r;
 	    int section_alignment = 0;
 
@@ -5800,7 +5805,7 @@ lang_size_sections_1
 	      os->addr_tree = exp_intop (0);
 	    if (os->addr_tree != NULL)
 	      {
-		exp_fold_tree (os->addr_tree, bfd_abs_section_ptr, &dot);
+		exp_fold_tree (os->addr_tree, os, bfd_abs_section_ptr, &dot);
 
 		if (expld.result.valid_p)
 		  {
@@ -5905,7 +5910,7 @@ lang_size_sections_1
 		    section_alignment = os->bfd_section->alignment_power;
 		  }
 		else
-		  section_alignment = exp_get_power (os->section_alignment,
+		  section_alignment = exp_get_power (os->section_alignment, os,
 						     "section alignment");
 
 		/* Align to what the section needs.  */
@@ -5993,6 +5998,7 @@ lang_size_sections_1
 		       statement.  */
 		    if (os->lma_region != os->region)
 		      section_alignment = exp_get_power (os->section_alignment,
+							 os,
 							 "section alignment");
 		    if (section_alignment > 0)
 		      lma = align_power (lma, section_alignment);
@@ -6082,7 +6088,7 @@ lang_size_sections_1
 	    dot += dotdelta;
 
 	    if (os->update_dot_tree != 0)
-	      exp_fold_tree (os->update_dot_tree, bfd_abs_section_ptr, &dot);
+	      exp_fold_tree (os->update_dot_tree, os, bfd_abs_section_ptr, &dot);
 
 	    /* Update dot in the region ?
 	       We only do this if the section is going to be allocated,
@@ -6113,8 +6119,7 @@ lang_size_sections_1
 	  break;
 
 	case lang_constructors_statement_enum:
-	  dot = lang_size_sections_1 (&constructor_list.head,
-				      output_section_statement,
+	  dot = lang_size_sections_1 (&constructor_list.head, current_os,
 				      fill, dot, relax, check_regions);
 	  break;
 
@@ -6122,14 +6127,13 @@ lang_size_sections_1
 	  {
 	    unsigned int size = 0;
 
-	    s->data_statement.output_offset =
-	      dot - output_section_statement->bfd_section->vma;
-	    s->data_statement.output_section =
-	      output_section_statement->bfd_section;
+	    s->data_statement.output_offset = dot - current_os->bfd_section->vma;
+	    s->data_statement.output_section = current_os->bfd_section;
 
 	    /* We might refer to provided symbols in the expression, and
 	       need to mark them as needed.  */
-	    exp_fold_tree (s->data_statement.exp, bfd_abs_section_ptr, &dot);
+	    exp_fold_tree (s->data_statement.exp, os,
+			   bfd_abs_section_ptr, &dot);
 
 	    switch (s->data_statement.type)
 	      {
@@ -6152,10 +6156,9 @@ lang_size_sections_1
 	    if (size < TO_SIZE ((unsigned) 1))
 	      size = TO_SIZE ((unsigned) 1);
 	    dot += TO_ADDR (size);
-	    if (!(output_section_statement->bfd_section->flags
-		  & SEC_FIXED_SIZE))
-	      output_section_statement->bfd_section->size
-		= TO_SIZE (dot - output_section_statement->bfd_section->vma);
+	    if (!(current_os->bfd_section->flags & SEC_FIXED_SIZE))
+	      current_os->bfd_section->size
+		= TO_SIZE (dot - current_os->bfd_section->vma);
 
 	  }
 	  break;
@@ -6164,29 +6167,27 @@ lang_size_sections_1
 	  {
 	    int size;
 
-	    s->reloc_statement.output_offset =
-	      dot - output_section_statement->bfd_section->vma;
-	    s->reloc_statement.output_section =
-	      output_section_statement->bfd_section;
+	    s->reloc_statement.output_offset
+	      = dot - current_os->bfd_section->vma;
+	    s->reloc_statement.output_section
+	      = current_os->bfd_section;
 	    size = bfd_get_reloc_size (s->reloc_statement.howto);
 	    dot += TO_ADDR (size);
-	    if (!(output_section_statement->bfd_section->flags
-		  & SEC_FIXED_SIZE))
-	      output_section_statement->bfd_section->size
-		= TO_SIZE (dot - output_section_statement->bfd_section->vma);
+	    if (!(current_os->bfd_section->flags & SEC_FIXED_SIZE))
+	      current_os->bfd_section->size
+		= TO_SIZE (dot - current_os->bfd_section->vma);
 	  }
 	  break;
 
 	case lang_wild_statement_enum:
 	  dot = lang_size_sections_1 (&s->wild_statement.children.head,
-				      output_section_statement,
-				      fill, dot, relax, check_regions);
+				      current_os, fill, dot, relax,
+				      check_regions);
 	  break;
 
 	case lang_object_symbols_statement_enum:
-	  link_info.create_object_symbols_section
-	    = output_section_statement->bfd_section;
-	  output_section_statement->bfd_section->flags |= SEC_KEEP;
+	  link_info.create_object_symbols_section = current_os->bfd_section;
+	  current_os->bfd_section->flags |= SEC_KEEP;
 	  break;
 
 	case lang_output_statement_enum:
@@ -6207,8 +6208,7 @@ lang_size_sections_1
 		if (again)
 		  *relax = true;
 	      }
-	    dot = size_input_section (prev, output_section_statement,
-				      fill, &removed, dot);
+	    dot = size_input_section (prev, current_os, fill, &removed, dot);
 	  }
 	  break;
 
@@ -6216,8 +6216,7 @@ lang_size_sections_1
 	  break;
 
 	case lang_fill_statement_enum:
-	  s->fill_statement.output_section =
-	    output_section_statement->bfd_section;
+	  s->fill_statement.output_section = current_os->bfd_section;
 
 	  fill = s->fill_statement.fill;
 	  break;
@@ -6229,9 +6228,7 @@ lang_size_sections_1
 
 	    expld.dataseg.relro = exp_seg_relro_none;
 
-	    exp_fold_tree (tree,
-			   output_section_statement->bfd_section,
-			   &newdot);
+	    exp_fold_tree (tree, os, current_os->bfd_section, &newdot);
 
 	    ldlang_check_relro_region (s);
 
@@ -6242,11 +6239,11 @@ lang_size_sections_1
 		 || tree->type.node_class == etree_assign)
 		&& (tree->assign.dst [0] != '.'
 		    || tree->assign.dst [1] != '\0'))
-	      output_section_statement->update_dot = 1;
+	      current_os->update_dot = 1;
 
-	    if (!output_section_statement->ignored)
+	    if (!current_os->ignored)
 	      {
-		if (output_section_statement == abs_output_section)
+		if (current_os == abs_output_section)
 		  {
 		    /* If we don't have an output section, then just adjust
 		       the default memory address.  */
@@ -6259,7 +6256,7 @@ lang_size_sections_1
 		       put the pad before when relaxing, in case the
 		       assignment references dot.  */
 		    insert_pad (&s->header.next, fill, TO_SIZE (newdot - dot),
-				output_section_statement->bfd_section, dot);
+				current_os->bfd_section, dot);
 
 		    /* Don't neuter the pad below when relaxing.  */
 		    s = s->header.next;
@@ -6268,11 +6265,11 @@ lang_size_sections_1
 		       should have space allocated to it, unless the
 		       user has explicitly stated that the section
 		       should not be allocated.  */
-		    if (output_section_statement->sectype != noalloc_section
-			&& (output_section_statement->sectype != noload_section
+		    if (current_os->sectype != noalloc_section
+			&& (current_os->sectype != noload_section
 			    || (bfd_get_flavour (link_info.output_bfd)
 				== bfd_target_elf_flavour)))
-		      output_section_statement->bfd_section->flags |= SEC_ALLOC;
+		      current_os->bfd_section->flags |= SEC_ALLOC;
 		  }
 		dot = newdot;
 	      }
@@ -6293,13 +6290,13 @@ lang_size_sections_1
 	     section.  bfd_set_section_contents will complain even for
 	     a pad size of zero.  */
 	  s->padding_statement.output_offset
-	    = dot - output_section_statement->bfd_section->vma;
+	    = dot - current_os->bfd_section->vma;
 	  break;
 
 	case lang_group_statement_enum:
 	  dot = lang_size_sections_1 (&s->group_statement.children.head,
-				      output_section_statement,
-				      fill, dot, relax, check_regions);
+				      current_os, fill, dot, relax,
+				      check_regions);
 	  break;
 
 	case lang_insert_statement_enum:
@@ -6546,6 +6543,8 @@ lang_do_assignments_1 (lang_statement_union_type *s,
 		       bfd_vma dot,
 		       bool *found_end)
 {
+  lang_output_section_statement_type *os = current_os;
+
   for (; s != NULL; s = s->header.next)
     {
       switch (s->header.type)
@@ -6557,10 +6556,9 @@ lang_do_assignments_1 (lang_statement_union_type *s,
 
 	case lang_output_section_statement_enum:
 	  {
-	    lang_output_section_statement_type *os;
 	    bfd_vma newdot;
 
-	    os = &(s->output_section_statement);
+	    os = &s->output_section_statement;
 	    os->after_end = *found_end;
 	    init_opb (os->bfd_section);
 	    newdot = dot;
@@ -6587,7 +6585,7 @@ lang_do_assignments_1 (lang_statement_union_type *s,
 		      newdot += TO_ADDR (os->bfd_section->size);
 
 		    if (os->update_dot_tree != NULL)
-		      exp_fold_tree (os->update_dot_tree,
+		      exp_fold_tree (os->update_dot_tree, os,
 				     bfd_abs_section_ptr, &newdot);
 		  }
 		dot = newdot;
@@ -6607,7 +6605,7 @@ lang_do_assignments_1 (lang_statement_union_type *s,
 	  break;
 
 	case lang_data_statement_enum:
-	  exp_fold_tree (s->data_statement.exp, bfd_abs_section_ptr, &dot);
+	  exp_fold_tree (s->data_statement.exp, os, bfd_abs_section_ptr, &dot);
 	  if (expld.result.valid_p)
 	    {
 	      s->data_statement.value = expld.result.value;
@@ -6643,7 +6641,7 @@ lang_do_assignments_1 (lang_statement_union_type *s,
 	  break;
 
 	case lang_reloc_statement_enum:
-	  exp_fold_tree (s->reloc_statement.addend_exp,
+	  exp_fold_tree (s->reloc_statement.addend_exp, os,
 			 bfd_abs_section_ptr, &dot);
 	  if (expld.result.valid_p)
 	    s->reloc_statement.addend_value = expld.result.value;
@@ -6682,7 +6680,7 @@ lang_do_assignments_1 (lang_statement_union_type *s,
 	      if (strcmp (p, "end") == 0)
 		*found_end = true;
 	    }
-	  exp_fold_tree (s->assignment_statement.exp,
+	  exp_fold_tree (s->assignment_statement.exp, os,
 			 (current_os->bfd_section != NULL
 			  ? current_os->bfd_section : bfd_und_section_ptr),
 			 &dot);
@@ -8112,7 +8110,7 @@ lang_process (void)
   /* Create a bfd for each input file.  */
   current_target = default_target;
   lang_statement_iteration++;
-  open_input_bfds (statement_list.head, OPEN_BFD_NORMAL);
+  open_input_bfds (statement_list.head, NULL, OPEN_BFD_NORMAL);
 
   /* Now that open_input_bfds has processed assignments and provide
      statements we can give values to symbolic origin/length now.  */
@@ -8142,7 +8140,12 @@ lang_process (void)
       link_info.lto_all_symbols_read = true;
       /* Open any newly added files, updating the file chains.  */
       plugin_undefs = link_info.hash->undefs_tail;
-      open_input_bfds (*added.tail, OPEN_BFD_NORMAL);
+      lang_output_section_statement_type *last_os = NULL;
+      if (lang_os_list.head != NULL)
+	last_os = ((lang_output_section_statement_type *)
+		   ((char *) lang_os_list.tail
+		    - offsetof (lang_output_section_statement_type, next)));
+      open_input_bfds (*added.tail, last_os, OPEN_BFD_NORMAL);
       if (plugin_undefs == link_info.hash->undefs_tail)
 	plugin_undefs = NULL;
       /* Restore the global list pointer now they have all been added.  */
@@ -8193,7 +8196,7 @@ lang_process (void)
 	  /* Rescan archives in case new undefined symbols have appeared.  */
 	  files = file_chain;
 	  lang_statement_iteration++;
-	  open_input_bfds (statement_list.head, OPEN_BFD_RESCAN);
+	  open_input_bfds (statement_list.head, NULL, OPEN_BFD_RESCAN);
 	  lang_list_remove_tail (&file_chain, &files);
 	  while (files.head != NULL)
 	    {
@@ -8848,7 +8851,7 @@ lang_new_phdr (const char *name,
   n = stat_alloc (sizeof (struct lang_phdr));
   n->next = NULL;
   n->name = name;
-  n->type = exp_get_vma (type, 0, "program header type");
+  n->type = exp_get_vma (type, NULL, 0, "program header type");
   n->filehdr = filehdr;
   n->phdrs = phdrs;
   n->at = at;
@@ -8962,12 +8965,12 @@ lang_record_phdrs (void)
       if (l->flags == NULL)
 	flags = 0;
       else
-	flags = exp_get_vma (l->flags, 0, "phdr flags");
+	flags = exp_get_vma (l->flags, NULL, 0, "phdr flags");
 
       if (l->at == NULL)
 	at = 0;
       else
-	at = exp_get_vma (l->at, 0, "phdr load address");
+	at = exp_get_vma (l->at, NULL, 0, "phdr load address");
 
       if (!bfd_record_phdr (link_info.output_bfd, l->type,
 			    l->flags != NULL, flags, l->at != NULL,
@@ -9727,7 +9730,7 @@ lang_do_memory_regions (bool update_regions_p)
     {
       if (r->origin_exp)
 	{
-	  exp_fold_tree_no_dot (r->origin_exp);
+	  exp_fold_tree_no_dot (r->origin_exp, NULL);
           if (update_regions_p)
             {
               if (expld.result.valid_p)
@@ -9742,7 +9745,7 @@ lang_do_memory_regions (bool update_regions_p)
 	}
       if (r->length_exp)
 	{
-	  exp_fold_tree_no_dot (r->length_exp);
+	  exp_fold_tree_no_dot (r->length_exp, NULL);
           if (update_regions_p)
             {
               if (expld.result.valid_p)
diff --git a/ld/ldlex.l b/ld/ldlex.l
index 1a6be1b6af2..435172c08c3 100644
--- a/ld/ldlex.l
+++ b/ld/ldlex.l
@@ -233,6 +233,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
 <SCRIPT,EXPRESSION,MRI,WILD>"/="	{ RTOKEN(DIVEQ); }
 <SCRIPT,EXPRESSION,MRI,WILD>"&="	{ RTOKEN(ANDEQ); }
 <SCRIPT,EXPRESSION,MRI,WILD>"|="	{ RTOKEN(OREQ); }
+<SCRIPT,EXPRESSION,MRI,WILD>"^="	{ RTOKEN(XOREQ); }
 <EXPRESSION,MRI>"&&"			{ RTOKEN(ANDAND); }
 <SCRIPT,EXPRESSION,MRI>">"		{ RTOKEN('>'); }
 <SCRIPT,EXPRESSION,MRI,INPUTLIST>","	{ RTOKEN(','); }
@@ -247,6 +248,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
 <EXPRESSION,MRI>"/"			{ RTOKEN('/'); }
 <EXPRESSION,MRI>"%"			{ RTOKEN('%'); }
 <EXPRESSION,MRI>"<"			{ RTOKEN('<'); }
+<EXPRESSION,MRI>"^"			{ RTOKEN('^'); }
 <SCRIPT,EXPRESSION,MRI,WILD>"="		{ RTOKEN('='); }
 <SCRIPT,EXPRESSION,MRI,WILD>"}"		{ RTOKEN('}'); }
 <SCRIPT,EXPRESSION,MRI,WILD>"{"		{ RTOKEN('{'); }
diff --git a/ld/ldmisc.h b/ld/ldmisc.h
index 6fbc4c7e687..5ab9157cdf8 100644
--- a/ld/ldmisc.h
+++ b/ld/ldmisc.h
@@ -27,10 +27,6 @@ extern void minfo (const char *, ...);
 extern void info_msg (const char *, ...);
 extern void lfinfo (FILE *, const char *, ...);
 extern void info_assert (const char *, unsigned int);
-extern void yyerror (const char *);
-extern void *xmalloc (size_t);
-extern void *xrealloc (void *, size_t);
-extern void xexit (int);
 
 #define ASSERT(x) \
 do { if (!(x)) info_assert(__FILE__,__LINE__); } while (0)
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 02e03d16948..a95b85c60dd 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1231,7 +1231,18 @@ fill_edata (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
   memset (edata_d, 0, edata_sz);
 
   if (pe_data (abfd)->timestamp == -1)
-    H_PUT_32 (abfd, time (0), edata_d + 4);
+    {
+      time_t now;
+      char *source_date_epoch;
+
+      source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
+      if (source_date_epoch)
+	now = (time_t) strtoll (source_date_epoch, NULL, 10);
+      else
+	now = time (NULL);
+
+      H_PUT_32 (abfd, now, edata_d + 4);
+    }
   else
     H_PUT_32 (abfd, pe_data (abfd)->timestamp, edata_d + 4);
 
diff --git a/ld/po/ld.pot b/ld/po/ld.pot
index 14000d30078..0bef15741a1 100644
--- a/ld/po/ld.pot
+++ b/ld/po/ld.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-30 14:36+0100\n"
+"POT-Creation-Date: 2023-01-05 10:57+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -55,15 +55,15 @@ msgstr ""
 msgid "%P: symbol `%pT' missing from main hash table\n"
 msgstr ""
 
-#: ldcref.c:517 ldcref.c:628 ldmain.c:1315 ldmisc.c:327 pe-dll.c:759
-#: pe-dll.c:1326 pe-dll.c:1447 pe-dll.c:1549 eaarch64pe.c:1653 earm64pe.c:1653
-#: earm_wince_pe.c:1661 earm_wince_pe.c:1833 earmpe.c:1661 earmpe.c:1833
-#: ei386pe.c:1661 ei386pe.c:1833 ei386pe_posix.c:1661 ei386pe_posix.c:1833
-#: ei386pep.c:1653 emcorepe.c:1661 emcorepe.c:1833 eshpe.c:1661 eshpe.c:1833
+#: ldcref.c:517 ldcref.c:628 ldmain.c:1311 ldmisc.c:324 pe-dll.c:758
+#: pe-dll.c:1324 pe-dll.c:1445 pe-dll.c:1569 eaarch64pe.c:1573 earm64pe.c:1573
+#: earm_wince_pe.c:1575 earm_wince_pe.c:1747 earmpe.c:1575 earmpe.c:1747
+#: ei386pe.c:1575 ei386pe.c:1747 ei386pe_posix.c:1575 ei386pe_posix.c:1747
+#: ei386pep.c:1573 emcorepe.c:1575 emcorepe.c:1747 eshpe.c:1575 eshpe.c:1747
 msgid "%F%P: %pB: could not read symbols: %E\n"
 msgstr ""
 
-#: ldcref.c:690 ldcref.c:697 ldmain.c:1377 ldmain.c:1384
+#: ldcref.c:690 ldcref.c:697 ldmain.c:1373 ldmain.c:1380
 msgid "%F%P: %pB: could not read relocs: %E\n"
 msgstr ""
 
@@ -72,7 +72,7 @@ msgstr ""
 #. mapped into a section from which references to OUTSECNAME
 #. are prohibited.  We must report an error.
 #: ldcref.c:724
-msgid "%X%P: %H: prohibited cross reference from %s to `%pT' in %s\n"
+msgid "%X%P: %C: prohibited cross reference from %s to `%pT' in %s\n"
 msgstr ""
 
 #: ldctor.c:84
@@ -122,7 +122,7 @@ msgstr ""
 msgid "%P: warning: %s, needed by %pB, may conflict with %s\n"
 msgstr ""
 
-#: ldelf.c:286 ldfile.c:343
+#: ldelf.c:286 ldfile.c:133
 #, c-format
 msgid "attempt to open %s failed\n"
 msgstr ""
@@ -140,7 +140,7 @@ msgstr ""
 msgid "found %s at %s\n"
 msgstr ""
 
-#: ldelf.c:410 ldlang.c:3087 ldlang.c:3101
+#: ldelf.c:410 ldlang.c:3013 ldlang.c:3027
 msgid "%F%P: %pB: error adding symbols: %E\n"
 msgstr ""
 
@@ -166,76 +166,76 @@ msgstr ""
 msgid "%F%P: failed to add DT_NEEDED dynamic tag\n"
 msgstr ""
 
-#: ldelf.c:1254
+#: ldelf.c:1253
 msgid "%F%P: %s: can't open for writing: %E\n"
 msgstr ""
 
-#: ldelf.c:1310
+#: ldelf.c:1309
 msgid "%F%P: cannot use executable file '%pB' as input to a link\n"
 msgstr ""
 
-#: ldelf.c:1364
+#: ldelf.c:1363
 msgid ""
 "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %"
 "pB\n"
 msgstr ""
 
-#: ldelf.c:1400
+#: ldelf.c:1399
 msgid ""
 "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
 msgstr ""
 
-#: ldelf.c:1406
+#: ldelf.c:1405
 msgid "%F%P: failed to parse EH frame entries\n"
 msgstr ""
 
-#: ldelf.c:1448
+#: ldelf.c:1447
 msgid "%P: warning: .note.gnu.build-id section discarded, --build-id ignored\n"
 msgstr ""
 
-#: ldelf.c:1497 eaarch64pe.c:1427 earm64pe.c:1427 earm_wince_pe.c:1417
-#: earmpe.c:1417 ei386pe.c:1417 ei386pe_posix.c:1417 ei386pep.c:1427
-#: emcorepe.c:1417 eshpe.c:1417
+#: ldelf.c:1496 eaarch64pe.c:1357 earm64pe.c:1357 earm_wince_pe.c:1341
+#: earmpe.c:1341 ei386pe.c:1341 ei386pe_posix.c:1341 ei386pep.c:1357
+#: emcorepe.c:1341 eshpe.c:1341
 msgid "%P: warning: unrecognized --build-id style ignored\n"
 msgstr ""
 
-#: ldelf.c:1516
+#: ldelf.c:1515
 msgid ""
 "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"
 msgstr ""
 
-#: ldelf.c:1537
+#: ldelf.c:1536
 msgid ""
 "%P: warning: .note.package section discarded, --package-metadata ignored\n"
 msgstr ""
 
-#: ldelf.c:1592
+#: ldelf.c:1591
 msgid "%P: warning: --package-metadata is empty, ignoring\n"
 msgstr ""
 
-#: ldelf.c:1602
+#: ldelf.c:1601
 msgid ""
 "%P: warning: --package-metadata=%s does not contain valid JSON, ignoring: %"
 "s\n"
 msgstr ""
 
-#: ldelf.c:1631
+#: ldelf.c:1630
 msgid ""
 "%P: warning: cannot create .note.package section, --package-metadata "
 "ignored\n"
 msgstr ""
 
-#: ldelf.c:1663 eaix5ppc.c:1574 eaix5rs6.c:1574 eaixppc.c:1574 eaixrs6.c:1574
+#: ldelf.c:1662 eaix5ppc.c:1574 eaix5rs6.c:1574 eaixppc.c:1574 eaixrs6.c:1574
 #: eppcmacos.c:1574
 msgid "%F%P: failed to record assignment to %s: %E\n"
 msgstr ""
 
-#: ldelf.c:1841 ldelf.c:1906 eaix5ppc.c:844 eaix5rs6.c:844 eaixppc.c:844
+#: ldelf.c:1840 ldelf.c:1905 eaix5ppc.c:844 eaix5rs6.c:844 eaixppc.c:844
 #: eaixrs6.c:844 eelf64_ia64_vms.c:209 eppcmacos.c:844
 msgid "%F%P: failed to set dynamic section sizes: %E\n"
 msgstr ""
 
-#: ldelf.c:1878
+#: ldelf.c:1877
 msgid "%F%P: %pB: can't read contents of section .gnu.warning: %E\n"
 msgstr ""
 
@@ -316,11 +316,9 @@ msgstr ""
 msgid "%F%P:%pS / by zero\n"
 msgstr ""
 
-#: ldexp.c:745 ldlang.c:3942 ldmain.c:1282 eaarch64pe.c:1241 eaarch64pe.c:1842
-#: earm64pe.c:1241 earm64pe.c:1842 earm_wince_pe.c:1232 earm_wince_pe.c:1944
-#: earmpe.c:1232 earmpe.c:1944 ei386pe.c:1232 ei386pe.c:1944
-#: ei386pe_posix.c:1232 ei386pe_posix.c:1944 ei386pep.c:1241 ei386pep.c:1842
-#: emcorepe.c:1232 emcorepe.c:1944 eshpe.c:1232 eshpe.c:1944
+#: ldexp.c:745 ldlang.c:3864 ldmain.c:1278 eaarch64pe.c:1762 earm64pe.c:1762
+#: earm_wince_pe.c:1858 earmpe.c:1858 ei386pe.c:1858 ei386pe_posix.c:1858
+#: ei386pep.c:1762 emcorepe.c:1858 eshpe.c:1858
 msgid "%F%P: bfd_link_hash_lookup failed: %E\n"
 msgstr ""
 
@@ -368,818 +366,778 @@ msgstr ""
 msgid "%F%P:%pS: nonconstant expression for %s\n"
 msgstr ""
 
-#: ldexp.c:1686 ldlang.c:1311 ldlang.c:3420 ldlang.c:8102
+#: ldexp.c:1686 ldlang.c:1272 ldlang.c:3346 ldlang.c:7906
 msgid "%F%P: can not create hash table: %E\n"
 msgstr ""
 
-#: ldfile.c:238
-#, c-format
-msgid "remap input file '%s' to '%s' based upon pattern '%s'\n"
-msgstr ""
-
-#: ldfile.c:241
-#, c-format
-msgid "remove input file '%s' based upon pattern '%s'\n"
-msgstr ""
-
-#: ldfile.c:247
-#, c-format
-msgid "remap input file '%s' to '%s'\n"
-msgstr ""
-
-#: ldfile.c:250
-#, c-format
-msgid "remove input file '%s'\n"
-msgstr ""
-
-#: ldfile.c:268
-msgid ""
-"\n"
-"Input File Remapping\n"
-"\n"
-msgstr ""
-
-#: ldfile.c:273
-#, c-format
-msgid "  Pattern: %s\tMaps To: %s\n"
-msgstr ""
-
-#: ldfile.c:274
-msgid "<discard>"
-msgstr ""
-
-#: ldfile.c:345
+#: ldfile.c:135
 #, c-format
 msgid "attempt to open %s succeeded\n"
 msgstr ""
 
-#: ldfile.c:351
+#: ldfile.c:141
 msgid "%F%P: invalid BFD target `%s'\n"
 msgstr ""
 
-#: ldfile.c:481 ldfile.c:511
+#: ldfile.c:267 ldfile.c:297
 msgid "%P: skipping incompatible %s when searching for %s\n"
 msgstr ""
 
-#: ldfile.c:494
+#: ldfile.c:280
 msgid "%F%P: attempted static link of dynamic object `%s'\n"
 msgstr ""
 
-#: ldfile.c:621
+#: ldfile.c:407
 msgid "%P: cannot find %s (%s): %E\n"
 msgstr ""
 
 #. We ignore the return status of the script
 #. and always print the error message.
-#: ldfile.c:624 ldfile.c:708 ldfile.c:712
+#: ldfile.c:410 ldfile.c:494 ldfile.c:498
 msgid "%P: cannot find %s: %E\n"
 msgstr ""
 
-#: ldfile.c:676
+#: ldfile.c:462
 msgid "%P: cannot find %s inside %s\n"
 msgstr ""
 
-#: ldfile.c:691 ldmain.c:1462
+#: ldfile.c:477 ldmain.c:1458
 msgid "%P: About to run error handling script '%s' with arguments: '%s' '%s'\n"
 msgstr ""
 
-#: ldfile.c:695 ldmain.c:1466
+#: ldfile.c:481 ldmain.c:1462
 msgid "error handling script"
 msgstr ""
 
-#: ldfile.c:701 ldmain.c:1472
+#: ldfile.c:487 ldmain.c:1468
 msgid "%P: Failed to run error handling script '%s', reason: "
 msgstr ""
 
-#: ldfile.c:722
+#: ldfile.c:508
 msgid "%P: note to link with %s use -l:%s or rename it to lib%s\n"
 msgstr ""
 
-#: ldfile.c:751
+#: ldfile.c:537
 #, c-format
 msgid "cannot find script file %s\n"
 msgstr ""
 
-#: ldfile.c:753
+#: ldfile.c:539
 #, c-format
 msgid "opened script file %s\n"
 msgstr ""
 
-#: ldfile.c:902
+#: ldfile.c:688
 msgid "%F%P: error: linker script file '%s' appears multiple times\n"
 msgstr ""
 
-#: ldfile.c:924
+#: ldfile.c:710
 msgid "%F%P: cannot open linker script file %s: %E\n"
 msgstr ""
 
-#: ldfile.c:997
+#: ldfile.c:783
 msgid "%F%P: cannot represent machine `%s'\n"
 msgstr ""
 
-#: ldlang.c:1397
+#: ldlang.c:1357
 msgid "%P:%pS: warning: redeclaration of memory region `%s'\n"
 msgstr ""
 
-#: ldlang.c:1403
+#: ldlang.c:1363
 msgid "%P:%pS: warning: memory region `%s' not declared\n"
 msgstr ""
 
-#: ldlang.c:1439
+#: ldlang.c:1399
 msgid "%F%P:%pS: error: alias for default memory region\n"
 msgstr ""
 
-#: ldlang.c:1450
+#: ldlang.c:1410
 msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n"
 msgstr ""
 
-#: ldlang.c:1457
+#: ldlang.c:1417
 msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
 msgstr ""
 
-#: ldlang.c:1518 ldlang.c:1553
+#: ldlang.c:1478 ldlang.c:1513
 msgid "%F%P: failed creating section `%s': %E\n"
 msgstr ""
 
-#: ldlang.c:2258
+#: ldlang.c:2215
 msgid ""
 "\n"
 "As-needed library included to satisfy reference by file (symbol)\n"
 "\n"
 msgstr ""
 
-#: ldlang.c:2323
+#: ldlang.c:2278
+#, c-format
 msgid ""
 "\n"
 "Discarded input sections\n"
 "\n"
 msgstr ""
 
-#: ldlang.c:2331
-msgid ""
-"\n"
-"There are no discarded input sections\n"
-msgstr ""
-
-#: ldlang.c:2333
+#: ldlang.c:2286
 msgid ""
 "\n"
 "Memory Configuration\n"
 "\n"
 msgstr ""
 
-#: ldlang.c:2335
+#: ldlang.c:2288
 msgid "Name"
 msgstr ""
 
-#: ldlang.c:2335
+#: ldlang.c:2288
 msgid "Origin"
 msgstr ""
 
-#: ldlang.c:2335
+#: ldlang.c:2288
 msgid "Length"
 msgstr ""
 
-#: ldlang.c:2335
+#: ldlang.c:2288
 msgid "Attributes"
 msgstr ""
 
-#: ldlang.c:2359
+#: ldlang.c:2312
+#, c-format
 msgid ""
 "\n"
 "Linker script and memory map\n"
 "\n"
 msgstr ""
 
-#: ldlang.c:2412
+#: ldlang.c:2365
 msgid "%F%P: illegal use of `%s' section\n"
 msgstr ""
 
-#: ldlang.c:2421
+#: ldlang.c:2374
 msgid "%F%P: output format %s cannot represent section called %s: %E\n"
 msgstr ""
 
-#: ldlang.c:2588
+#: ldlang.c:2541
 msgid ""
 "%P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from `%"
 "pB' match /DISCARD/ clause.\n"
 msgstr ""
 
-#: ldlang.c:2612
+#: ldlang.c:2574
 msgid ""
 "%P:%pS: warning: --enable-non-contiguous-regions may change behaviour for "
 "section `%pA' from `%pB' (assigned to %pA, but additional match: %pA)\n"
 msgstr ""
 
-#: ldlang.c:2990
+#: ldlang.c:2916
 msgid "%P: %pB: file not recognized: %E; matching formats:"
 msgstr ""
 
-#: ldlang.c:2999
+#: ldlang.c:2925
 msgid "%F%P: %pB: file not recognized: %E\n"
 msgstr ""
 
-#: ldlang.c:3072
+#: ldlang.c:2998
 msgid "%F%P: %pB: member %pB in archive is not an object\n"
 msgstr ""
 
-#: ldlang.c:3342
+#: ldlang.c:3268
 msgid "%F%P: input file '%s' is the same as output file\n"
 msgstr ""
 
-#: ldlang.c:3390
+#: ldlang.c:3316
 msgid ""
 "%P: warning: could not find any targets that match endianness requirement\n"
 msgstr ""
 
-#: ldlang.c:3404
+#: ldlang.c:3330
 msgid "%F%P: target %s not found\n"
 msgstr ""
 
-#: ldlang.c:3406
+#: ldlang.c:3332
 msgid "%F%P: cannot open output file %s: %E\n"
 msgstr ""
 
-#: ldlang.c:3412
+#: ldlang.c:3338
 msgid "%F%P: %s: can not make object file: %E\n"
 msgstr ""
 
-#: ldlang.c:3416
+#: ldlang.c:3342
 msgid "%F%P: %s: can not set architecture: %E\n"
 msgstr ""
 
-#: ldlang.c:3600
+#: ldlang.c:3522
 msgid "%P: warning: %s contains output sections; did you forget -T?\n"
 msgstr ""
 
-#: ldlang.c:3647
+#: ldlang.c:3569
 #, c-format
 msgid "%s: %s\n"
 msgstr ""
 
-#: ldlang.c:3647
+#: ldlang.c:3569
 msgid "CTF warning"
 msgstr ""
 
-#: ldlang.c:3647
+#: ldlang.c:3569
 msgid "CTF error"
 msgstr ""
 
-#: ldlang.c:3653
+#: ldlang.c:3575
 #, c-format
 msgid "CTF error: cannot get CTF errors: `%s'\n"
 msgstr ""
 
-#: ldlang.c:3687
+#: ldlang.c:3609
 msgid ""
 "%P: warning: CTF section in %pB not loaded; its types will be discarded: %s\n"
 msgstr ""
 
-#: ldlang.c:3716
+#: ldlang.c:3638
 msgid "%P: warning: CTF output not created: `%s'\n"
 msgstr ""
 
-#: ldlang.c:3759
+#: ldlang.c:3681
 msgid "%P: warning: CTF section in %pB cannot be linked: `%s'\n"
 msgstr ""
 
-#: ldlang.c:3779
+#: ldlang.c:3701
 msgid "%P: warning: CTF linking failed; output will have no CTF section: %s\n"
 msgstr ""
 
-#: ldlang.c:3850
+#: ldlang.c:3772
 msgid ""
 "%P: warning: CTF section emission failed; output will have no CTF section: %"
 "s\n"
 msgstr ""
 
-#: ldlang.c:3889
+#: ldlang.c:3811
 msgid ""
 "%P: warning: CTF section in %pB not linkable: %P was built without support "
 "for CTF\n"
 msgstr ""
 
-#: ldlang.c:4027
+#: ldlang.c:3949
 msgid "%X%P: required symbol `%s' not defined\n"
 msgstr ""
 
-#: ldlang.c:4225 ldlang.c:4234
+#: ldlang.c:4147 ldlang.c:4156
 msgid "%F%P: invalid type for output section `%s'\n"
 msgstr ""
 
-#: ldlang.c:4368
+#: ldlang.c:4290
 msgid ""
 "warning: INSERT statement in linker script is incompatible with --enable-non-"
 "contiguous-regions.\n"
 msgstr ""
 
-#: ldlang.c:4381
+#: ldlang.c:4303
 msgid "%F%P: %s not found for insert\n"
 msgstr ""
 
-#: ldlang.c:4653
+#: ldlang.c:4539
 msgid " load address 0x%V"
 msgstr ""
 
-#: ldlang.c:4917
+#: ldlang.c:4759
 msgid "%W (size before relaxing)\n"
 msgstr ""
 
-#: ldlang.c:5046
+#: ldlang.c:4850
 #, c-format
 msgid "Address of section %s set to "
 msgstr ""
 
-#: ldlang.c:5238
+#: ldlang.c:5042
 #, c-format
 msgid "Fail with %d\n"
 msgstr ""
 
-#: ldlang.c:5451
+#: ldlang.c:5255
 msgid ""
 "%F%P: Output section `%pA' not large enough for the linker-created stubs "
 "section `%pA'.\n"
 msgstr ""
 
-#: ldlang.c:5456
+#: ldlang.c:5260
 msgid ""
 "%F%P: Relaxation not supported with --enable-non-contiguous-regions (section "
 "`%pA' would overflow `%pA' after it changed size).\n"
 msgstr ""
 
-#: ldlang.c:5565
+#: ldlang.c:5369
 msgid "%X%P: section %s VMA wraps around address space\n"
 msgstr ""
 
-#: ldlang.c:5571
+#: ldlang.c:5375
 msgid "%X%P: section %s LMA wraps around address space\n"
 msgstr ""
 
-#: ldlang.c:5623
+#: ldlang.c:5427
 msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
 msgstr ""
 
-#: ldlang.c:5667
+#: ldlang.c:5471
 msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
 msgstr ""
 
-#: ldlang.c:5690
+#: ldlang.c:5494
 msgid "%X%P: region `%s' overflowed by %lu byte\n"
 msgid_plural "%X%P: region `%s' overflowed by %lu bytes\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ldlang.c:5715
+#: ldlang.c:5519
 msgid "%X%P: address 0x%v of %pB section `%s' is not within region `%s'\n"
 msgstr ""
 
-#: ldlang.c:5726
+#: ldlang.c:5530
 msgid "%X%P: %pB section `%s' will not fit in region `%s'\n"
 msgstr ""
 
-#: ldlang.c:5812
+#: ldlang.c:5616
 msgid ""
 "%F%P:%pS: non constant or forward reference address expression for section %"
 "s\n"
 msgstr ""
 
-#: ldlang.c:5837
+#: ldlang.c:5641
 msgid "%X%P: internal error on COFF shared library section %s\n"
 msgstr ""
 
-#: ldlang.c:5895
+#: ldlang.c:5699
 msgid "%F%P: error: no memory region specified for loadable section `%s'\n"
 msgstr ""
 
-#: ldlang.c:5899
+#: ldlang.c:5703
 msgid "%P: warning: no memory region specified for loadable section `%s'\n"
 msgstr ""
 
-#: ldlang.c:5933
+#: ldlang.c:5737
 msgid "%P: warning: start of section %s changed by %ld\n"
 msgstr ""
 
-#: ldlang.c:6025
+#: ldlang.c:5829
 msgid "%P: warning: dot moved backwards before `%s'\n"
 msgstr ""
 
-#: ldlang.c:6206
+#: ldlang.c:6010
 msgid "%F%P: can't relax section: %E\n"
 msgstr ""
 
-#: ldlang.c:6618
+#: ldlang.c:6422
 msgid "%F%P: invalid data statement\n"
 msgstr ""
 
-#: ldlang.c:6651
+#: ldlang.c:6455
 msgid "%F%P: invalid reloc statement\n"
 msgstr ""
 
-#: ldlang.c:7069
+#: ldlang.c:6873
 msgid ""
 "%F%P: --gc-sections requires a defined symbol root specified by -e or -u\n"
 msgstr ""
 
-#: ldlang.c:7094
+#: ldlang.c:6898
 msgid "%F%P: %s: can't set start address\n"
 msgstr ""
 
-#: ldlang.c:7107 ldlang.c:7126
+#: ldlang.c:6911 ldlang.c:6930
 msgid "%F%P: can't set start address\n"
 msgstr ""
 
-#: ldlang.c:7120
+#: ldlang.c:6924
 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
 msgstr ""
 
-#: ldlang.c:7131 ldlang.c:7139
+#: ldlang.c:6935 ldlang.c:6943
 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
 msgstr ""
 
-#: ldlang.c:7195
+#: ldlang.c:6999
 msgid ""
 "%F%P: relocatable linking with relocations from format %s (%pB) to format %s "
 "(%pB) is not supported\n"
 msgstr ""
 
-#: ldlang.c:7205
+#: ldlang.c:7009
 msgid ""
 "%X%P: %s architecture of input file `%pB' is incompatible with %s output\n"
 msgstr ""
 
-#: ldlang.c:7229
+#: ldlang.c:7033
 msgid "%X%P: failed to merge target specific data of file %pB\n"
 msgstr ""
 
-#: ldlang.c:7300
+#: ldlang.c:7104
 msgid "%F%P: could not define common symbol `%pT': %E\n"
 msgstr ""
 
-#: ldlang.c:7312
+#: ldlang.c:7116
 msgid ""
 "\n"
 "Allocating common symbols\n"
 msgstr ""
 
-#: ldlang.c:7313
+#: ldlang.c:7117
 msgid ""
 "Common symbol       size              file\n"
 "\n"
 msgstr ""
 
-#: ldlang.c:7370
+#: ldlang.c:7174
 msgid "%X%P: error: unplaced orphan section `%pA' from `%pB'\n"
 msgstr ""
 
-#: ldlang.c:7388
+#: ldlang.c:7192
 msgid ""
 "%P: warning: orphan section `%pA' from `%pB' being placed in section `%s'\n"
 msgstr ""
 
-#: ldlang.c:7478
+#: ldlang.c:7282
 msgid "%F%P: invalid character %c (%d) in flags\n"
 msgstr ""
 
-#: ldlang.c:7590
+#: ldlang.c:7394
 msgid "%F%P:%pS: error: align with input and explicit align specified\n"
 msgstr ""
 
-#: ldlang.c:8061
+#: ldlang.c:7865
 msgid ""
 "%P: warning: --enable-non-contiguous-regions discards section `%pA' from `%"
 "pB'\n"
 msgstr ""
 
-#: ldlang.c:8140
+#: ldlang.c:7944
 msgid "%F%P: %s: plugin reported error after all symbols read\n"
 msgstr ""
 
-#: ldlang.c:8712
+#: ldlang.c:8409
 msgid "%F%P: multiple STARTUP files\n"
 msgstr ""
 
-#: ldlang.c:8758
+#: ldlang.c:8455
 msgid "%X%P:%pS: section has both a load address and a load region\n"
 msgstr ""
 
-#: ldlang.c:8864
+#: ldlang.c:8561
 msgid ""
 "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers "
 "lack them\n"
 msgstr ""
 
-#: ldlang.c:8937
+#: ldlang.c:8634
 msgid "%F%P: no sections assigned to phdrs\n"
 msgstr ""
 
-#: ldlang.c:8975
+#: ldlang.c:8672
 msgid "%F%P: bfd_record_phdr failed: %E\n"
 msgstr ""
 
-#: ldlang.c:8995
+#: ldlang.c:8692
 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
 msgstr ""
 
-#: ldlang.c:9418
+#: ldlang.c:9115
 msgid "%X%P: unknown language `%s' in version information\n"
 msgstr ""
 
-#: ldlang.c:9563
+#: ldlang.c:9260
 msgid ""
 "%X%P: anonymous version tag cannot be combined with other version tags\n"
 msgstr ""
 
-#: ldlang.c:9572
+#: ldlang.c:9269
 msgid "%X%P: duplicate version tag `%s'\n"
 msgstr ""
 
-#: ldlang.c:9593 ldlang.c:9602 ldlang.c:9620 ldlang.c:9630
+#: ldlang.c:9290 ldlang.c:9299 ldlang.c:9317 ldlang.c:9327
 msgid "%X%P: duplicate expression `%s' in version information\n"
 msgstr ""
 
-#: ldlang.c:9670
+#: ldlang.c:9367
 msgid "%X%P: unable to find version dependency `%s'\n"
 msgstr ""
 
-#: ldlang.c:9693
+#: ldlang.c:9390
 msgid "%X%P: unable to read .exports section contents\n"
 msgstr ""
 
-#: ldlang.c:9739
+#: ldlang.c:9436
 msgid "%P: invalid origin for memory region %s\n"
 msgstr ""
 
-#: ldlang.c:9751
+#: ldlang.c:9448
 msgid "%P: invalid length for memory region %s\n"
 msgstr ""
 
-#: ldlang.c:9863
+#: ldlang.c:9560
 msgid "%X%P: unknown feature `%s'\n"
 msgstr ""
 
-#: ldmain.c:195
+#: ldmain.c:196
 msgid "%F%P: cannot open dependency file %s: %E\n"
 msgstr ""
 
-#: ldmain.c:268
+#: ldmain.c:264
 msgid "%F%P: fatal error: libbfd ABI mismatch\n"
 msgstr ""
 
-#: ldmain.c:304
+#: ldmain.c:300
 msgid "%X%P: can't set BFD default target to `%s': %E\n"
 msgstr ""
 
-#: ldmain.c:409
+#: ldmain.c:405
 msgid "built in linker script"
 msgstr ""
 
-#: ldmain.c:419
+#: ldmain.c:415
 msgid "using external linker script:"
 msgstr ""
 
-#: ldmain.c:421
+#: ldmain.c:417
 msgid "using internal linker script:"
 msgstr ""
 
-#: ldmain.c:468
+#: ldmain.c:464
 msgid "%F%P: --no-define-common may not be used without -shared\n"
 msgstr ""
 
-#: ldmain.c:474
+#: ldmain.c:470
 msgid "%F%P: no input files\n"
 msgstr ""
 
-#: ldmain.c:478
+#: ldmain.c:474
 msgid "%P: mode %s\n"
 msgstr ""
 
-#: ldmain.c:494 ends32belf.c:459 ends32belf16m.c:459 ends32belf_linux.c:592
-#: ends32elf.c:459 ends32elf16m.c:459 ends32elf_linux.c:592
+#: ldmain.c:490 ends32belf.c:455 ends32belf16m.c:455 ends32belf_linux.c:588
+#: ends32elf.c:455 ends32elf16m.c:455 ends32elf_linux.c:588
 msgid "%F%P: cannot open map file %s: %E\n"
 msgstr ""
 
-#: ldmain.c:558
+#: ldmain.c:554
 msgid "%P: link errors found, deleting executable `%s'\n"
 msgstr ""
 
-#: ldmain.c:569
+#: ldmain.c:563
 msgid "%F%P: %s: final close failed: %E\n"
 msgstr ""
 
-#: ldmain.c:596
+#: ldmain.c:590
 msgid "%F%P: unable to open for source of copy `%s'\n"
 msgstr ""
 
-#: ldmain.c:599
+#: ldmain.c:593
 msgid "%F%P: unable to open for destination of copy `%s'\n"
 msgstr ""
 
-#: ldmain.c:606
+#: ldmain.c:600
 msgid "%P: error writing file `%s'\n"
 msgstr ""
 
-#: ldmain.c:611 pe-dll.c:1982
+#: ldmain.c:605 pe-dll.c:1968
 #, c-format
 msgid "%P: error closing file `%s'\n"
 msgstr ""
 
-#: ldmain.c:623
+#: ldmain.c:619
 #, c-format
 msgid "%s: total time in link: %ld.%06ld\n"
 msgstr ""
 
-#: ldmain.c:710
+#: ldmain.c:706
 msgid "%F%P: missing argument to -m\n"
 msgstr ""
 
-#: ldmain.c:764 ldmain.c:781 ldmain.c:801 ldmain.c:833 pe-dll.c:1407
+#: ldmain.c:760 ldmain.c:777 ldmain.c:797 ldmain.c:829 pe-dll.c:1405
 msgid "%F%P: bfd_hash_table_init failed: %E\n"
 msgstr ""
 
-#: ldmain.c:768 ldmain.c:785 ldmain.c:805
+#: ldmain.c:764 ldmain.c:781 ldmain.c:801
 msgid "%F%P: bfd_hash_lookup failed: %E\n"
 msgstr ""
 
-#: ldmain.c:819
+#: ldmain.c:815
 msgid "%X%P: error: duplicate retain-symbols-file\n"
 msgstr ""
 
-#: ldmain.c:863
+#: ldmain.c:859
 msgid "%F%P: bfd_hash_lookup for insertion failed: %E\n"
 msgstr ""
 
-#: ldmain.c:868
+#: ldmain.c:864
 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
 msgstr ""
 
-#: ldmain.c:984
+#: ldmain.c:980
 msgid ""
 "Archive member included to satisfy reference by file (symbol)\n"
 "\n"
 msgstr ""
 
-#: ldmain.c:1090
+#: ldmain.c:1086
 msgid "%P: %C: warning: multiple definition of `%pT'"
 msgstr ""
 
-#: ldmain.c:1093
+#: ldmain.c:1089
 msgid "%X%P: %C: multiple definition of `%pT'"
 msgstr ""
 
-#: ldmain.c:1096
+#: ldmain.c:1092
 msgid "; %D: first defined here"
 msgstr ""
 
-#: ldmain.c:1101
+#: ldmain.c:1097
 msgid "%P: disabling relaxation; it will not work with multiple definitions\n"
 msgstr ""
 
-#: ldmain.c:1154
+#: ldmain.c:1150
 msgid "%P: %pB: warning: definition of `%pT' overriding common from %pB\n"
 msgstr ""
 
-#: ldmain.c:1158
+#: ldmain.c:1154
 msgid "%P: %pB: warning: definition of `%pT' overriding common\n"
 msgstr ""
 
-#: ldmain.c:1167
+#: ldmain.c:1163
 msgid "%P: %pB: warning: common of `%pT' overridden by definition from %pB\n"
 msgstr ""
 
-#: ldmain.c:1171
+#: ldmain.c:1167
 msgid "%P: %pB: warning: common of `%pT' overridden by definition\n"
 msgstr ""
 
-#: ldmain.c:1180
+#: ldmain.c:1176
 msgid ""
 "%P: %pB: warning: common of `%pT' overridden by larger common from %pB\n"
 msgstr ""
 
-#: ldmain.c:1184
+#: ldmain.c:1180
 msgid "%P: %pB: warning: common of `%pT' overridden by larger common\n"
 msgstr ""
 
-#: ldmain.c:1191
+#: ldmain.c:1187
 msgid "%P: %pB: warning: common of `%pT' overriding smaller common from %pB\n"
 msgstr ""
 
-#: ldmain.c:1195
+#: ldmain.c:1191
 msgid "%P: %pB: warning: common of `%pT' overriding smaller common\n"
 msgstr ""
 
-#: ldmain.c:1202
+#: ldmain.c:1198
 msgid "%P: %pB and %pB: warning: multiple common of `%pT'\n"
 msgstr ""
 
-#: ldmain.c:1205
+#: ldmain.c:1201
 msgid "%P: %pB: warning: multiple common of `%pT'\n"
 msgstr ""
 
-#: ldmain.c:1224 ldmain.c:1260
+#: ldmain.c:1220 ldmain.c:1256
 msgid "%P: warning: global constructor %s used\n"
 msgstr ""
 
-#: ldmain.c:1270
+#: ldmain.c:1266
 msgid "%F%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"
 msgstr ""
 
 #. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1342 ldmain.c:1344 ldmain.c:1346 ldmain.c:1354 ldmain.c:1397
+#: ldmain.c:1338 ldmain.c:1340 ldmain.c:1342 ldmain.c:1350 ldmain.c:1393
 msgid "warning: "
 msgstr ""
 
-#: ldmain.c:1487
-msgid "%X%P: %H: undefined reference to `%pT'\n"
+#: ldmain.c:1483
+msgid "%X%P: %C: undefined reference to `%pT'\n"
 msgstr ""
 
-#: ldmain.c:1490
-msgid "%P: %H: warning: undefined reference to `%pT'\n"
+#: ldmain.c:1486
+msgid "%P: %C: warning: undefined reference to `%pT'\n"
 msgstr ""
 
-#: ldmain.c:1496
+#: ldmain.c:1492
 msgid "%X%P: %D: more undefined references to `%pT' follow\n"
 msgstr ""
 
-#: ldmain.c:1499
+#: ldmain.c:1495
 msgid "%P: %D: warning: more undefined references to `%pT' follow\n"
 msgstr ""
 
-#: ldmain.c:1510
+#: ldmain.c:1506
 msgid "%X%P: %pB: undefined reference to `%pT'\n"
 msgstr ""
 
-#: ldmain.c:1513
+#: ldmain.c:1509
 msgid "%P: %pB: warning: undefined reference to `%pT'\n"
 msgstr ""
 
-#: ldmain.c:1519
+#: ldmain.c:1515
 msgid "%X%P: %pB: more undefined references to `%pT' follow\n"
 msgstr ""
 
-#: ldmain.c:1522
+#: ldmain.c:1518
 msgid "%P: %pB: warning: more undefined references to `%pT' follow\n"
 msgstr ""
 
-#: ldmain.c:1559
+#: ldmain.c:1555
 msgid " additional relocation overflows omitted from the output\n"
 msgstr ""
 
-#: ldmain.c:1572
+#: ldmain.c:1568
 #, c-format
 msgid " relocation truncated to fit: %s against undefined symbol `%pT'"
 msgstr ""
 
-#: ldmain.c:1578
+#: ldmain.c:1574
 #, c-format
 msgid ""
 " relocation truncated to fit: %s against symbol `%pT' defined in %pA section "
 "in %pB"
 msgstr ""
 
-#: ldmain.c:1591
+#: ldmain.c:1587
 #, c-format
 msgid " relocation truncated to fit: %s against `%pT'"
 msgstr ""
 
-#: ldmain.c:1607
+#: ldmain.c:1603
 msgid "%X%H: dangerous relocation: %s\n"
 msgstr ""
 
-#: ldmain.c:1621
+#: ldmain.c:1617
 msgid "%X%H: reloc refers to symbol `%pT' which is not being output\n"
 msgstr ""
 
-#: ldmain.c:1655
+#: ldmain.c:1651
 msgid "%P: %pB: reference to %s\n"
 msgstr ""
 
-#: ldmain.c:1657
+#: ldmain.c:1653
 msgid "%P: %pB: definition of %s\n"
 msgstr ""
 
-#: ldmisc.c:366
+#: ldmisc.c:363
 #, c-format
 msgid "%pB: in function `%pT':\n"
 msgstr ""
 
-#: ldmisc.c:506
+#: ldmisc.c:503
 #, c-format
 msgid "no symbol"
 msgstr ""
 
-#: ldmisc.c:626
+#: ldmisc.c:610
 msgid "%F%P: internal error %s %d\n"
 msgstr ""
 
-#: ldmisc.c:690
+#: ldmisc.c:674
 msgid "%P: internal error: aborting at %s:%d in %s\n"
 msgstr ""
 
-#: ldmisc.c:693
+#: ldmisc.c:677
 msgid "%P: internal error: aborting at %s:%d\n"
 msgstr ""
 
-#: ldmisc.c:695
+#: ldmisc.c:679
 msgid "%F%P: please report this bug\n"
 msgstr ""
 
@@ -1229,7 +1187,7 @@ msgstr ""
 msgid "%F%P: final link failed: %E\n"
 msgstr ""
 
-#: lexsup.c:105 lexsup.c:300
+#: lexsup.c:105 lexsup.c:290
 msgid "KEYWORD"
 msgstr ""
 
@@ -1245,7 +1203,7 @@ msgstr ""
 msgid "Set architecture"
 msgstr ""
 
-#: lexsup.c:110 lexsup.c:440
+#: lexsup.c:110 lexsup.c:430
 msgid "TARGET"
 msgstr ""
 
@@ -1253,9 +1211,9 @@ msgstr ""
 msgid "Specify target for following input files"
 msgstr ""
 
-#: lexsup.c:113 lexsup.c:119 lexsup.c:180 lexsup.c:184 lexsup.c:220
-#: lexsup.c:224 lexsup.c:239 lexsup.c:241 lexsup.c:462 lexsup.c:531
-#: lexsup.c:544 lexsup.c:548
+#: lexsup.c:113 lexsup.c:119 lexsup.c:176 lexsup.c:180 lexsup.c:216
+#: lexsup.c:229 lexsup.c:231 lexsup.c:452 lexsup.c:521 lexsup.c:534
+#: lexsup.c:538
 msgid "FILE"
 msgstr ""
 
@@ -1275,8 +1233,8 @@ msgstr ""
 msgid "Force group members out of groups"
 msgstr ""
 
-#: lexsup.c:124 lexsup.c:508 lexsup.c:510 lexsup.c:512 lexsup.c:514
-#: lexsup.c:516 lexsup.c:518
+#: lexsup.c:124 lexsup.c:498 lexsup.c:500 lexsup.c:502 lexsup.c:504
+#: lexsup.c:506 lexsup.c:508
 msgid "ADDRESS"
 msgstr ""
 
@@ -1303,633 +1261,621 @@ msgid ""
 msgstr ""
 
 #: lexsup.c:134
-msgid "Disable the LINKER_VERSION linker script directive"
-msgstr ""
-
-#: lexsup.c:136
-msgid "Enable the LINKER_VERSION linker script directive"
-msgstr ""
-
-#: lexsup.c:138
 msgid "Link big-endian objects"
 msgstr ""
 
-#: lexsup.c:140
+#: lexsup.c:136
 msgid "Link little-endian objects"
 msgstr ""
 
-#: lexsup.c:142 lexsup.c:145
+#: lexsup.c:138 lexsup.c:141
 msgid "SHLIB"
 msgstr ""
 
-#: lexsup.c:142
+#: lexsup.c:138
 msgid "Auxiliary filter for shared object symbol table"
 msgstr ""
 
-#: lexsup.c:145
+#: lexsup.c:141
 msgid "Filter for shared object symbol table"
 msgstr ""
 
-#: lexsup.c:148
+#: lexsup.c:144
 msgid "Ignored"
 msgstr ""
 
-#: lexsup.c:150
+#: lexsup.c:146
 msgid "SIZE"
 msgstr ""
 
-#: lexsup.c:150
+#: lexsup.c:146
 msgid "Small data size (if no size, same as --shared)"
 msgstr ""
 
-#: lexsup.c:153
+#: lexsup.c:149
 msgid "FILENAME"
 msgstr ""
 
-#: lexsup.c:153
+#: lexsup.c:149
 msgid "Set internal name of shared library"
 msgstr ""
 
-#: lexsup.c:155
+#: lexsup.c:151
 msgid "PROGRAM"
 msgstr ""
 
-#: lexsup.c:155
+#: lexsup.c:151
 msgid "Set PROGRAM as the dynamic linker to use"
 msgstr ""
 
-#: lexsup.c:158
+#: lexsup.c:154
 msgid "Produce an executable with no program interpreter header"
 msgstr ""
 
-#: lexsup.c:161
+#: lexsup.c:157
 msgid "LIBNAME"
 msgstr ""
 
-#: lexsup.c:161
+#: lexsup.c:157
 msgid "Search for library LIBNAME"
 msgstr ""
 
-#: lexsup.c:163
+#: lexsup.c:159
 msgid "DIRECTORY"
 msgstr ""
 
-#: lexsup.c:163
+#: lexsup.c:159
 msgid "Add DIRECTORY to library search path"
 msgstr ""
 
-#: lexsup.c:166
+#: lexsup.c:162
 msgid "Override the default sysroot location"
 msgstr ""
 
-#: lexsup.c:168
+#: lexsup.c:164
 msgid "EMULATION"
 msgstr ""
 
-#: lexsup.c:168
+#: lexsup.c:164
 msgid "Set emulation"
 msgstr ""
 
-#: lexsup.c:170
+#: lexsup.c:166
 msgid "Print map file on standard output"
 msgstr ""
 
-#: lexsup.c:172
+#: lexsup.c:168
 msgid "Do not page align data"
 msgstr ""
 
-#: lexsup.c:174
+#: lexsup.c:170
 msgid "Do not page align data, do not make text readonly"
 msgstr ""
 
-#: lexsup.c:177
+#: lexsup.c:173
 msgid "Page align data, make text readonly"
 msgstr ""
 
-#: lexsup.c:180
+#: lexsup.c:176
 msgid "Set output file name"
 msgstr ""
 
-#: lexsup.c:182
+#: lexsup.c:178
 msgid "Optimize output file"
 msgstr ""
 
-#: lexsup.c:184
+#: lexsup.c:180
 msgid "Generate import library"
 msgstr ""
 
-#: lexsup.c:187 lexsup.c:198
+#: lexsup.c:183 lexsup.c:194
 msgid "PLUGIN"
 msgstr ""
 
-#: lexsup.c:187
+#: lexsup.c:183
 msgid "Load named plugin"
 msgstr ""
 
-#: lexsup.c:189 lexsup.c:200
+#: lexsup.c:185 lexsup.c:196
 msgid "ARG"
 msgstr ""
 
-#: lexsup.c:189
+#: lexsup.c:185
 msgid "Send arg to last-loaded plugin"
 msgstr ""
 
-#: lexsup.c:191 lexsup.c:194
+#: lexsup.c:187 lexsup.c:190
 msgid "Ignored for GCC LTO option compatibility"
 msgstr ""
 
-#: lexsup.c:198
+#: lexsup.c:194
 msgid "Load named plugin (ignored)"
 msgstr ""
 
-#: lexsup.c:200
+#: lexsup.c:196
 msgid "Send arg to last-loaded plugin (ignored)"
 msgstr ""
 
-#: lexsup.c:203
+#: lexsup.c:199
 msgid "Ignored for GCC linker option compatibility"
 msgstr ""
 
-#: lexsup.c:206 lexsup.c:209
+#: lexsup.c:202 lexsup.c:205
 msgid "Ignored for gold option compatibility"
 msgstr ""
 
-#: lexsup.c:212
+#: lexsup.c:208
 msgid "Ignored for SVR4 compatibility"
 msgstr ""
 
-#: lexsup.c:216
+#: lexsup.c:212
 msgid "Generate relocatable output"
 msgstr ""
 
-#: lexsup.c:220
+#: lexsup.c:216
 msgid "Just link symbols (if directory, same as --rpath)"
 msgstr ""
 
-#: lexsup.c:226
-msgid "PATTERN=FILE"
-msgstr ""
-
-#: lexsup.c:229
+#: lexsup.c:219
 msgid "Strip all symbols"
 msgstr ""
 
-#: lexsup.c:231
+#: lexsup.c:221
 msgid "Strip debugging symbols"
 msgstr ""
 
-#: lexsup.c:233
+#: lexsup.c:223
 msgid "Strip symbols in discarded sections"
 msgstr ""
 
-#: lexsup.c:235
+#: lexsup.c:225
 msgid "Do not strip symbols in discarded sections"
 msgstr ""
 
-#: lexsup.c:237
+#: lexsup.c:227
 msgid "Trace file opens"
 msgstr ""
 
-#: lexsup.c:239
+#: lexsup.c:229
 msgid "Read linker script"
 msgstr ""
 
-#: lexsup.c:241
+#: lexsup.c:231
 msgid "Read default linker script"
 msgstr ""
 
-#: lexsup.c:245 lexsup.c:248 lexsup.c:266 lexsup.c:358 lexsup.c:382
-#: lexsup.c:501 lexsup.c:534 lexsup.c:546 lexsup.c:592 lexsup.c:595
+#: lexsup.c:235 lexsup.c:238 lexsup.c:256 lexsup.c:348 lexsup.c:372
+#: lexsup.c:491 lexsup.c:524 lexsup.c:536 lexsup.c:582 lexsup.c:585
 msgid "SYMBOL"
 msgstr ""
 
-#: lexsup.c:245
+#: lexsup.c:235
 msgid "Start with undefined reference to SYMBOL"
 msgstr ""
 
-#: lexsup.c:248
+#: lexsup.c:238
 msgid "Require SYMBOL be defined in the final output"
 msgstr ""
 
-#: lexsup.c:251
+#: lexsup.c:241
 msgid "[=SECTION]"
 msgstr ""
 
-#: lexsup.c:252
+#: lexsup.c:242
 msgid "Don't merge input [SECTION | orphan] sections"
 msgstr ""
 
-#: lexsup.c:254
+#: lexsup.c:244
 msgid "Build global constructor/destructor tables"
 msgstr ""
 
-#: lexsup.c:256
+#: lexsup.c:246
 msgid "Print version information"
 msgstr ""
 
-#: lexsup.c:258
+#: lexsup.c:248
 msgid "Print version and emulation information"
 msgstr ""
 
-#: lexsup.c:260
+#: lexsup.c:250
 msgid "Discard all local symbols"
 msgstr ""
 
-#: lexsup.c:262
+#: lexsup.c:252
 msgid "Discard temporary local symbols (default)"
 msgstr ""
 
-#: lexsup.c:264
+#: lexsup.c:254
 msgid "Don't discard any local symbols"
 msgstr ""
 
-#: lexsup.c:266
+#: lexsup.c:256
 msgid "Trace mentions of SYMBOL"
 msgstr ""
 
-#: lexsup.c:268 lexsup.c:464 lexsup.c:466
+#: lexsup.c:258 lexsup.c:454 lexsup.c:456
 msgid "PATH"
 msgstr ""
 
-#: lexsup.c:268
+#: lexsup.c:258
 msgid "Default search path for Solaris compatibility"
 msgstr ""
 
-#: lexsup.c:271
+#: lexsup.c:261
 msgid "Start a group"
 msgstr ""
 
-#: lexsup.c:273
+#: lexsup.c:263
 msgid "End a group"
 msgstr ""
 
-#: lexsup.c:277
+#: lexsup.c:267
 msgid "Accept input files whose architecture cannot be determined"
 msgstr ""
 
-#: lexsup.c:281
+#: lexsup.c:271
 msgid "Reject input files whose architecture is unknown"
 msgstr ""
 
-#: lexsup.c:293
+#: lexsup.c:283
 msgid "Only set DT_NEEDED for following dynamic libs if used"
 msgstr ""
 
-#: lexsup.c:296
+#: lexsup.c:286
 msgid ""
 "Always set DT_NEEDED for dynamic libraries mentioned on\n"
 "                                the command line"
 msgstr ""
 
-#: lexsup.c:300
+#: lexsup.c:290
 msgid "Ignored for SunOS compatibility"
 msgstr ""
 
-#: lexsup.c:302
+#: lexsup.c:292
 msgid "Link against shared libraries"
 msgstr ""
 
-#: lexsup.c:308
+#: lexsup.c:298
 msgid "Do not link against shared libraries"
 msgstr ""
 
-#: lexsup.c:316
+#: lexsup.c:306
 msgid "Don't bind global references locally"
 msgstr ""
 
-#: lexsup.c:318
+#: lexsup.c:308
 msgid "Bind global references locally"
 msgstr ""
 
-#: lexsup.c:320
+#: lexsup.c:310
 msgid "Bind global function references locally"
 msgstr ""
 
-#: lexsup.c:322
+#: lexsup.c:312
 msgid "Check section addresses for overlaps (default)"
 msgstr ""
 
-#: lexsup.c:325
+#: lexsup.c:315
 msgid "Do not check section addresses for overlaps"
 msgstr ""
 
-#: lexsup.c:329
+#: lexsup.c:319
 msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
 msgstr ""
 
-#: lexsup.c:333
+#: lexsup.c:323
 msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
 msgstr ""
 
-#: lexsup.c:337
+#: lexsup.c:327
 msgid "Output cross reference table"
 msgstr ""
 
-#: lexsup.c:339
+#: lexsup.c:329
 msgid "SYMBOL=EXPRESSION"
 msgstr ""
 
-#: lexsup.c:339
+#: lexsup.c:329
 msgid "Define a symbol"
 msgstr ""
 
-#: lexsup.c:341
+#: lexsup.c:331
 msgid "[=STYLE]"
 msgstr ""
 
-#: lexsup.c:341
+#: lexsup.c:331
 msgid "Demangle symbol names [using STYLE]"
 msgstr ""
 
-#: lexsup.c:345
+#: lexsup.c:335
 msgid ""
 "Do not allow multiple definitions with symbols included\n"
 "                                in filename invoked by -R or --just-symbols"
 msgstr ""
 
-#: lexsup.c:350
+#: lexsup.c:340
 msgid "Generate embedded relocs"
 msgstr ""
 
-#: lexsup.c:352
+#: lexsup.c:342
 msgid "Treat warnings as errors"
 msgstr ""
 
-#: lexsup.c:355
+#: lexsup.c:345
 msgid "Do not treat warnings as errors (default)"
 msgstr ""
 
-#: lexsup.c:358
+#: lexsup.c:348
 msgid "Call SYMBOL at unload-time"
 msgstr ""
 
-#: lexsup.c:360
+#: lexsup.c:350
 msgid "Force generation of file with .exe suffix"
 msgstr ""
 
-#: lexsup.c:362
+#: lexsup.c:352
 msgid "Remove unused sections (on some targets)"
 msgstr ""
 
-#: lexsup.c:365
+#: lexsup.c:355
 msgid "Don't remove unused sections (default)"
 msgstr ""
 
-#: lexsup.c:368
+#: lexsup.c:358
 msgid "List removed unused sections on stderr"
 msgstr ""
 
-#: lexsup.c:371
+#: lexsup.c:361
 msgid "Do not list removed unused sections"
 msgstr ""
 
-#: lexsup.c:374
+#: lexsup.c:364
 msgid "Keep exported symbols when removing unused sections"
 msgstr ""
 
-#: lexsup.c:377
+#: lexsup.c:367
 msgid "Set default hash table size close to <NUMBER>"
 msgstr ""
 
-#: lexsup.c:380
+#: lexsup.c:370
 msgid "Print option help"
 msgstr ""
 
-#: lexsup.c:382
+#: lexsup.c:372
 msgid "Call SYMBOL at load-time"
 msgstr ""
 
-#: lexsup.c:384
+#: lexsup.c:374
 msgid "FILE/DIR"
 msgstr ""
 
-#: lexsup.c:384
+#: lexsup.c:374
 msgid "Write a linker map to FILE or DIR/<outputname>.map"
 msgstr ""
 
-#: lexsup.c:386
+#: lexsup.c:376
 msgid "Do not define Common storage"
 msgstr ""
 
-#: lexsup.c:388
+#: lexsup.c:378
 msgid "Do not demangle symbol names"
 msgstr ""
 
-#: lexsup.c:390
+#: lexsup.c:380
 msgid "Use less memory and more disk I/O"
 msgstr ""
 
-#: lexsup.c:392
+#: lexsup.c:382
 msgid "Do not allow unresolved references in object files"
 msgstr ""
 
-#: lexsup.c:395
+#: lexsup.c:385
 msgid "Do not display any warning or error messages"
 msgstr ""
 
-#: lexsup.c:398
+#: lexsup.c:388
 msgid "Allow unresolved references in shared libraries"
 msgstr ""
 
-#: lexsup.c:402
+#: lexsup.c:392
 msgid "Do not allow unresolved references in shared libs"
 msgstr ""
 
-#: lexsup.c:406
+#: lexsup.c:396
 msgid "Allow multiple definitions"
 msgstr ""
 
-#: lexsup.c:410
+#: lexsup.c:400
 msgid "SCRIPT"
 msgstr ""
 
-#: lexsup.c:410
+#: lexsup.c:400
 msgid "Provide a script to help with undefined symbol errors"
 msgstr ""
 
-#: lexsup.c:413
+#: lexsup.c:403
 msgid "Allow undefined version"
 msgstr ""
 
-#: lexsup.c:415
+#: lexsup.c:405
 msgid "Disallow undefined version"
 msgstr ""
 
-#: lexsup.c:417
+#: lexsup.c:407
 msgid "Create default symbol version"
 msgstr ""
 
-#: lexsup.c:420
+#: lexsup.c:410
 msgid "Create default symbol version for imported symbols"
 msgstr ""
 
-#: lexsup.c:423
+#: lexsup.c:413
 msgid "Don't warn about mismatched input files"
 msgstr ""
 
-#: lexsup.c:426
+#: lexsup.c:416
 msgid "Don't warn on finding an incompatible library"
 msgstr ""
 
-#: lexsup.c:429
+#: lexsup.c:419
 msgid "Turn off --whole-archive"
 msgstr ""
 
-#: lexsup.c:431
+#: lexsup.c:421
 msgid "Create an output file even if errors occur"
 msgstr ""
 
-#: lexsup.c:436
+#: lexsup.c:426
 msgid ""
 "Only use library directories specified on\n"
 "                                the command line"
 msgstr ""
 
-#: lexsup.c:440
+#: lexsup.c:430
 msgid "Specify target of output file"
 msgstr ""
 
-#: lexsup.c:443
+#: lexsup.c:433
 msgid "Print default output format"
 msgstr ""
 
-#: lexsup.c:445
+#: lexsup.c:435
 msgid "Print current sysroot"
 msgstr ""
 
-#: lexsup.c:447
+#: lexsup.c:437
 msgid "Ignored for Linux compatibility"
 msgstr ""
 
-#: lexsup.c:450
+#: lexsup.c:440
 msgid "Reduce memory overheads, possibly taking much longer"
 msgstr ""
 
-#: lexsup.c:454
+#: lexsup.c:444
 msgid "Set the maximum cache size to SIZE bytes"
 msgstr ""
 
-#: lexsup.c:457
+#: lexsup.c:447
 msgid "Reduce code size by using target specific optimizations"
 msgstr ""
 
-#: lexsup.c:459
+#: lexsup.c:449
 msgid "Do not use relaxation techniques to reduce code size"
 msgstr ""
 
-#: lexsup.c:462
+#: lexsup.c:452
 msgid "Keep only symbols listed in FILE"
 msgstr ""
 
-#: lexsup.c:464
+#: lexsup.c:454
 msgid "Set runtime shared library search path"
 msgstr ""
 
-#: lexsup.c:466
+#: lexsup.c:456
 msgid "Set link time shared library search path"
 msgstr ""
 
-#: lexsup.c:469
+#: lexsup.c:459
 msgid "Create a shared library"
 msgstr ""
 
-#: lexsup.c:473
+#: lexsup.c:463
 msgid "Create a position independent executable"
 msgstr ""
 
-#: lexsup.c:477
+#: lexsup.c:467
 msgid "Create a position dependent executable (default)"
 msgstr ""
 
-#: lexsup.c:479
+#: lexsup.c:469
 msgid "[=ascending|descending]"
 msgstr ""
 
-#: lexsup.c:480
+#: lexsup.c:470
 msgid "Sort common symbols by alignment [in specified order]"
 msgstr ""
 
-#: lexsup.c:485
+#: lexsup.c:475
 msgid "name|alignment"
 msgstr ""
 
-#: lexsup.c:486
+#: lexsup.c:476
 msgid "Sort sections by name or maximum alignment"
 msgstr ""
 
-#: lexsup.c:488
+#: lexsup.c:478
 msgid "COUNT"
 msgstr ""
 
-#: lexsup.c:488
+#: lexsup.c:478
 msgid "How many tags to reserve in .dynamic section"
 msgstr ""
 
-#: lexsup.c:491
+#: lexsup.c:481
 msgid "[=SIZE]"
 msgstr ""
 
-#: lexsup.c:491
+#: lexsup.c:481
 msgid "Split output sections every SIZE octets"
 msgstr ""
 
-#: lexsup.c:494
+#: lexsup.c:484
 msgid "[=COUNT]"
 msgstr ""
 
-#: lexsup.c:494
+#: lexsup.c:484
 msgid "Split output sections every COUNT relocs"
 msgstr ""
 
-#: lexsup.c:497
+#: lexsup.c:487
 msgid "Print memory usage statistics"
 msgstr ""
 
-#: lexsup.c:499
+#: lexsup.c:489
 msgid "Display target specific options"
 msgstr ""
 
-#: lexsup.c:501
+#: lexsup.c:491
 msgid "Do task level linking"
 msgstr ""
 
-#: lexsup.c:503
+#: lexsup.c:493
 msgid "Use same format as native linker"
 msgstr ""
 
-#: lexsup.c:505
+#: lexsup.c:495
 msgid "SECTION=ADDRESS"
 msgstr ""
 
-#: lexsup.c:505
+#: lexsup.c:495
 msgid "Set address of named section"
 msgstr ""
 
-#: lexsup.c:508
+#: lexsup.c:498
 msgid "Set address of .bss section"
 msgstr ""
 
-#: lexsup.c:510
+#: lexsup.c:500
 msgid "Set address of .data section"
 msgstr ""
 
-#: lexsup.c:512
+#: lexsup.c:502
 msgid "Set address of .text section"
 msgstr ""
 
-#: lexsup.c:514
+#: lexsup.c:504
 msgid "Set address of text segment"
 msgstr ""
 
-#: lexsup.c:516
+#: lexsup.c:506
 msgid "Set address of rodata segment"
 msgstr ""
 
-#: lexsup.c:518
+#: lexsup.c:508
 msgid "Set address of ldata segment"
 msgstr ""
 
-#: lexsup.c:521
+#: lexsup.c:511
 msgid ""
 "How to handle unresolved symbols.  <method> is:\n"
 "                                ignore-all, report-all, ignore-in-object-"
@@ -1937,222 +1883,214 @@ msgid ""
 "                                ignore-in-shared-libs"
 msgstr ""
 
-#: lexsup.c:526
+#: lexsup.c:516
 msgid "[=NUMBER]"
 msgstr ""
 
-#: lexsup.c:527
+#: lexsup.c:517
 msgid "Output lots of information during link"
 msgstr ""
 
-#: lexsup.c:531
+#: lexsup.c:521
 msgid "Read version information script"
 msgstr ""
 
-#: lexsup.c:534
+#: lexsup.c:524
 msgid ""
 "Take export symbols list from .exports, using\n"
 "                                SYMBOL as the version."
 msgstr ""
 
-#: lexsup.c:538
+#: lexsup.c:528
 msgid "Add data symbols to dynamic list"
 msgstr ""
 
-#: lexsup.c:540
+#: lexsup.c:530
 msgid "Use C++ operator new/delete dynamic list"
 msgstr ""
 
-#: lexsup.c:542
+#: lexsup.c:532
 msgid "Use C++ typeinfo dynamic list"
 msgstr ""
 
-#: lexsup.c:544
+#: lexsup.c:534
 msgid "Read dynamic list"
 msgstr ""
 
-#: lexsup.c:546
+#: lexsup.c:536
 msgid "Export the specified symbol"
 msgstr ""
 
-#: lexsup.c:548
+#: lexsup.c:538
 msgid "Read export dynamic symbol list"
 msgstr ""
 
-#: lexsup.c:550
+#: lexsup.c:540
 msgid "Warn about duplicate common symbols"
 msgstr ""
 
-#: lexsup.c:552
+#: lexsup.c:542
 msgid "Warn if global constructors/destructors are seen"
 msgstr ""
 
-#: lexsup.c:555
+#: lexsup.c:545
 msgid "Warn when creating an executable stack"
 msgstr ""
 
-#: lexsup.c:557
+#: lexsup.c:547
 msgid "Do not warn when creating an executable stack"
 msgstr ""
 
-#: lexsup.c:559
+#: lexsup.c:549
 msgid "Warn when creating executable segments"
 msgstr ""
 
-#: lexsup.c:561
+#: lexsup.c:551
 msgid "Do not warn when creating executable segments"
 msgstr ""
 
-#: lexsup.c:563
+#: lexsup.c:553
 msgid "Warn if the multiple GP values are used"
 msgstr ""
 
-#: lexsup.c:565
+#: lexsup.c:555
 msgid "Warn only once per undefined symbol"
 msgstr ""
 
-#: lexsup.c:567
+#: lexsup.c:557
 msgid "Warn if start of section changes due to alignment"
 msgstr ""
 
-#: lexsup.c:572
+#: lexsup.c:562
 msgid "Warn if output has DT_TEXTREL (default)"
 msgstr ""
 
-#: lexsup.c:574
+#: lexsup.c:564
 msgid "Warn if output has DT_TEXTREL"
 msgstr ""
 
-#: lexsup.c:580
+#: lexsup.c:570
 msgid "Warn if an object has alternate ELF machine code"
 msgstr ""
 
-#: lexsup.c:584
+#: lexsup.c:574
 msgid "Report unresolved symbols as warnings"
 msgstr ""
 
-#: lexsup.c:587
+#: lexsup.c:577
 msgid "Report unresolved symbols as errors"
 msgstr ""
 
-#: lexsup.c:589
+#: lexsup.c:579
 msgid "Include all objects from following archives"
 msgstr ""
 
-#: lexsup.c:592
+#: lexsup.c:582
 msgid "Use wrapper functions for SYMBOL"
 msgstr ""
 
-#: lexsup.c:596
+#: lexsup.c:586
 msgid "Unresolved SYMBOL will not cause an error or warning"
 msgstr ""
 
-#: lexsup.c:598
+#: lexsup.c:588
 msgid "Push state of flags governing input file handling"
 msgstr ""
 
-#: lexsup.c:601
+#: lexsup.c:591
 msgid "Pop state of flags governing input file handling"
 msgstr ""
 
-#: lexsup.c:604
+#: lexsup.c:594
 msgid "Report target memory usage"
 msgstr ""
 
-#: lexsup.c:606
+#: lexsup.c:596
 msgid "=MODE"
 msgstr ""
 
-#: lexsup.c:606
+#: lexsup.c:596
 msgid "Control how orphan sections are handled."
 msgstr ""
 
-#: lexsup.c:609
+#: lexsup.c:599
 msgid "Show discarded sections in map file output (default)"
 msgstr ""
 
-#: lexsup.c:612
+#: lexsup.c:602
 msgid "Do not show discarded sections in map file output"
 msgstr ""
 
-#: lexsup.c:615
-msgid "Show local symbols in map file output"
-msgstr ""
-
-#: lexsup.c:618
-msgid "Do not show local symbols in map file output (default)"
-msgstr ""
-
-#: lexsup.c:621
+#: lexsup.c:605
 msgid "Emit names and types of static variables in CTF"
 msgstr ""
 
-#: lexsup.c:624
+#: lexsup.c:608
 msgid "Do not emit names and types of static variables in CTF"
 msgstr ""
 
-#: lexsup.c:628
+#: lexsup.c:612
 msgid ""
 "How to share CTF types between translation units.\n"
 "                                <method> is: share-unconflicted (default),\n"
 "                                             share-duplicated"
 msgstr ""
 
-#: lexsup.c:792
+#: lexsup.c:776
 msgid "%F%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"
 msgstr ""
 
-#: lexsup.c:795
+#: lexsup.c:779
 msgid "%P: Warning: grouped short command line options are deprecated: %s\n"
 msgstr ""
 
-#: lexsup.c:822
+#: lexsup.c:806
 msgid "%P: %s: missing argument\n"
 msgstr ""
 
-#: lexsup.c:827
+#: lexsup.c:811
 msgid "%P: unrecognized option '%s'\n"
 msgstr ""
 
-#: lexsup.c:832
+#: lexsup.c:816
 msgid "%F%P: use the --help option for usage information\n"
 msgstr ""
 
-#: lexsup.c:851
+#: lexsup.c:835
 msgid "%F%P: unrecognized -a option `%s'\n"
 msgstr ""
 
-#: lexsup.c:864
+#: lexsup.c:848
 msgid "%F%P: unrecognized -assert option `%s'\n"
 msgstr ""
 
-#: lexsup.c:908
+#: lexsup.c:892
 msgid "%F%P: unknown demangling style `%s'\n"
 msgstr ""
 
-#: lexsup.c:998 lexsup.c:1482 eaarch64cloudabi.c:849 eaarch64cloudabib.c:849
-#: eaarch64elf.c:844 eaarch64elf32.c:844 eaarch64elf32b.c:844
-#: eaarch64elfb.c:844 eaarch64fbsd.c:849 eaarch64fbsdb.c:849
-#: eaarch64haiku.c:849 eaarch64linux.c:849 eaarch64linux32.c:849
-#: eaarch64linux32b.c:849 eaarch64linuxb.c:849 eaarch64nto.c:946
-#: earmelf.c:1107 earmelf_fbsd.c:1107 earmelf_fuchsia.c:1112
-#: earmelf_haiku.c:1112 earmelf_linux.c:1112 earmelf_linux_eabi.c:1112
-#: earmelf_linux_fdpiceabi.c:1112 earmelf_nacl.c:1112 earmelf_nbsd.c:1107
-#: earmelf_phoenix.c:1112 earmelf_vxworks.c:1143 earmelfb.c:1107
-#: earmelfb_fbsd.c:1107 earmelfb_fuchsia.c:1112 earmelfb_linux.c:1112
-#: earmelfb_linux_eabi.c:1112 earmelfb_linux_fdpiceabi.c:1112
-#: earmelfb_nacl.c:1112 earmelfb_nbsd.c:1107 earmnto.c:1082 ecskyelf.c:571
-#: ecskyelf_linux.c:738 eelf32metag.c:735 eelf64lppc.c:1206
-#: eelf64lppc_fbsd.c:1206 eelf64ppc.c:1206 eelf64ppc_fbsd.c:1206
-#: ehppaelf.c:591 ehppalinux.c:773 ehppanbsd.c:773 ehppaobsd.c:773
+#: lexsup.c:980 lexsup.c:1457 eaarch64cloudabi.c:845 eaarch64cloudabib.c:845
+#: eaarch64elf.c:840 eaarch64elf32.c:840 eaarch64elf32b.c:840
+#: eaarch64elfb.c:840 eaarch64fbsd.c:845 eaarch64fbsdb.c:845
+#: eaarch64haiku.c:845 eaarch64linux.c:845 eaarch64linux32.c:845
+#: eaarch64linux32b.c:845 eaarch64linuxb.c:845 earmelf.c:1103
+#: earmelf_fbsd.c:1103 earmelf_fuchsia.c:1108 earmelf_haiku.c:1108
+#: earmelf_linux.c:1108 earmelf_linux_eabi.c:1108
+#: earmelf_linux_fdpiceabi.c:1108 earmelf_nacl.c:1108 earmelf_nbsd.c:1103
+#: earmelf_phoenix.c:1108 earmelf_vxworks.c:1139 earmelfb.c:1103
+#: earmelfb_fbsd.c:1103 earmelfb_fuchsia.c:1108 earmelfb_linux.c:1108
+#: earmelfb_linux_eabi.c:1108 earmelfb_linux_fdpiceabi.c:1108
+#: earmelfb_nacl.c:1108 earmelfb_nbsd.c:1103 earmnto.c:1078 ecskyelf.c:567
+#: ecskyelf_linux.c:734 eelf32metag.c:731 eelf64lppc.c:1213
+#: eelf64lppc_fbsd.c:1213 eelf64ppc.c:1213 eelf64ppc_fbsd.c:1213
+#: ehppaelf.c:587 ehppalinux.c:769 ehppanbsd.c:769 ehppaobsd.c:769
 msgid "%F%P: invalid number `%s'\n"
 msgstr ""
 
-#: lexsup.c:1094
+#: lexsup.c:1076
 msgid "%F%P: bad --unresolved-symbols option: %s\n"
 msgstr ""
 
-#: lexsup.c:1181
+#: lexsup.c:1156
 msgid "%F%P: bad -plugin-opt option\n"
 msgstr ""
 
@@ -2164,177 +2102,163 @@ msgstr ""
 #. an error message here.  We cannot just make this a warning,
 #. increment optind, and continue because getopt is too confused
 #. and will seg-fault the next time around.
-#: lexsup.c:1198
+#: lexsup.c:1173
 msgid "%F%P: unrecognised option: %s\n"
 msgstr ""
 
-#: lexsup.c:1201 lexsup.c:1311 lexsup.c:1332 lexsup.c:1451
+#: lexsup.c:1176 lexsup.c:1286 lexsup.c:1307 lexsup.c:1426
 msgid "%F%P: -r and %s may not be used together\n"
 msgstr ""
 
-#: lexsup.c:1323
+#: lexsup.c:1298
 msgid "%F%P: -shared not supported\n"
 msgstr ""
 
-#: lexsup.c:1337
+#: lexsup.c:1312
 msgid "%F%P: -pie not supported\n"
 msgstr ""
 
-#: lexsup.c:1343
+#: lexsup.c:1318
 msgid "%P: SONAME must not be empty string; keeping previous one\n"
 msgstr ""
 
-#: lexsup.c:1349
+#: lexsup.c:1324
 msgid "descending"
 msgstr ""
 
-#: lexsup.c:1351
+#: lexsup.c:1326
 msgid "ascending"
 msgstr ""
 
-#: lexsup.c:1354
+#: lexsup.c:1329
 msgid "%F%P: invalid common section sorting option: %s\n"
 msgstr ""
 
-#: lexsup.c:1358
+#: lexsup.c:1333
 msgid "name"
 msgstr ""
 
-#: lexsup.c:1360
+#: lexsup.c:1335
 msgid "alignment"
 msgstr ""
 
-#: lexsup.c:1363
+#: lexsup.c:1338
 msgid "%F%P: invalid section sorting option: %s\n"
 msgstr ""
 
-#: lexsup.c:1400
+#: lexsup.c:1375
 msgid "%F%P: invalid argument to option \"--section-start\"\n"
 msgstr ""
 
-#: lexsup.c:1407
+#: lexsup.c:1382
 msgid "%F%P: missing argument(s) to option \"--section-start\"\n"
 msgstr ""
 
-#: lexsup.c:1677
+#: lexsup.c:1652
 msgid "%F%P: group ended before it began (--help for usage)\n"
 msgstr ""
 
-#: lexsup.c:1693
-msgid "%F%P: failed to add remap file %s\n"
-msgstr ""
-
-#. FIXME: Should we allow --remap-inputs=@myfile as a synonym
-#. for --remap-inputs-file=myfile ?
-#: lexsup.c:1702
-msgid "%F%P: invalid argument to option --remap-inputs\n"
-msgstr ""
-
-#: lexsup.c:1723
+#: lexsup.c:1677
 msgid "%F%P: invalid cache memory size: %s\n"
 msgstr ""
 
-#: lexsup.c:1737
+#: lexsup.c:1691
 msgid "%X%P: --hash-size needs a numeric argument\n"
 msgstr ""
 
-#: lexsup.c:1749
+#: lexsup.c:1703
 msgid "%F%P: no state pushed before popping\n"
 msgstr ""
 
-#: lexsup.c:1772
+#: lexsup.c:1726
 msgid "%F%P: invalid argument to option \"--orphan-handling\"\n"
 msgstr ""
 
-#: lexsup.c:1810
+#: lexsup.c:1756
 msgid "%F%P: bad --ctf-share-types option: %s\n"
 msgstr ""
 
-#: lexsup.c:1828
+#: lexsup.c:1774
 msgid "%P: no file/directory name provided for map output; ignored\n"
 msgstr ""
 
-#: lexsup.c:1856
+#: lexsup.c:1802
 msgid "%P: cannot stat linker map file: %E\n"
 msgstr ""
 
-#: lexsup.c:1868
+#: lexsup.c:1814
 msgid "%P: linker map file is not a regular file\n"
 msgstr ""
 
 #. If the asprintf failed then something is probably very
 #. wrong.  Better to halt now rather than continue on
 #. into more problems.
-#: lexsup.c:1879
+#: lexsup.c:1825
 msgid "%P%F: cannot create name for linker map file: %E\n"
 msgstr ""
 
-#: lexsup.c:1890
+#: lexsup.c:1836
 msgid "%P: SONAME must not be empty string; ignored\n"
 msgstr ""
 
-#: lexsup.c:1896
+#: lexsup.c:1842
 msgid "%P: missing --end-group; added as last command line option\n"
 msgstr ""
 
-#: lexsup.c:2005
-msgid "%F%P: -r and -z nosectionheader may not be used together\n"
-msgstr ""
-
-#: lexsup.c:2013
+#: lexsup.c:1950
 msgid "%F%P: -F may not be used without -shared\n"
 msgstr ""
 
-#: lexsup.c:2015
+#: lexsup.c:1952
 msgid "%F%P: -f may not be used without -shared\n"
 msgstr ""
 
-#: lexsup.c:2056 lexsup.c:2069
+#: lexsup.c:1993 lexsup.c:2006
 msgid "%F%P: invalid hex number `%s'\n"
 msgstr ""
 
-#: lexsup.c:2099
+#: lexsup.c:2036
 #, c-format
 msgid "  --audit=AUDITLIB            Specify a library to use for auditing\n"
 msgstr ""
 
-#: lexsup.c:2101
+#: lexsup.c:2038
 #, c-format
 msgid "  -Bgroup                     Selects group name lookup rules for DSO\n"
 msgstr ""
 
-#: lexsup.c:2103
+#: lexsup.c:2040
 #, c-format
 msgid "  --disable-new-dtags         Disable new dynamic tags\n"
 msgstr ""
 
-#: lexsup.c:2105
+#: lexsup.c:2042
 #, c-format
 msgid "  --enable-new-dtags          Enable new dynamic tags\n"
 msgstr ""
 
-#: lexsup.c:2107
+#: lexsup.c:2044
 #, c-format
 msgid "  --eh-frame-hdr              Create .eh_frame_hdr section\n"
 msgstr ""
 
-#: lexsup.c:2109
+#: lexsup.c:2046
 #, c-format
 msgid "  --no-eh-frame-hdr           Do not create .eh_frame_hdr section\n"
 msgstr ""
 
-#: lexsup.c:2111
+#: lexsup.c:2048
 #, c-format
 msgid "  --exclude-libs=LIBS         Make all symbols in LIBS hidden\n"
 msgstr ""
 
-#: lexsup.c:2113
+#: lexsup.c:2050
 #, c-format
 msgid ""
 "  --hash-style=STYLE          Set hash style to sysv/gnu/both.  Default: "
 msgstr ""
 
-#: lexsup.c:2132
+#: lexsup.c:2069
 #, c-format
 msgid ""
 "  -P AUDITLIB, --depaudit=AUDITLIB\n"
@@ -2342,20 +2266,20 @@ msgid ""
 "dependencies\n"
 msgstr ""
 
-#: lexsup.c:2135
+#: lexsup.c:2072
 #, c-format
 msgid ""
 "  -z combreloc                Merge dynamic relocs into one section and "
 "sort\n"
 msgstr ""
 
-#: lexsup.c:2137
+#: lexsup.c:2074
 #, c-format
 msgid ""
 "  -z nocombreloc              Don't merge dynamic relocs into one section\n"
 msgstr ""
 
-#: lexsup.c:2139
+#: lexsup.c:2076
 #, c-format
 msgid ""
 "  -z global                   Make symbols in DSO available for "
@@ -2363,328 +2287,328 @@ msgid ""
 "                                loaded objects\n"
 msgstr ""
 
-#: lexsup.c:2142
+#: lexsup.c:2079
 #, c-format
 msgid ""
 "  -z initfirst                Mark DSO to be initialized first at runtime\n"
 msgstr ""
 
-#: lexsup.c:2144
+#: lexsup.c:2081
 #, c-format
 msgid ""
 "  -z interpose                Mark object to interpose all DSOs but "
 "executable\n"
 msgstr ""
 
-#: lexsup.c:2146
+#: lexsup.c:2083
 #, c-format
 msgid ""
 "  -z unique                   Mark DSO to be loaded at most once by default, "
 "and only in the main namespace\n"
 msgstr ""
 
-#: lexsup.c:2148
+#: lexsup.c:2085
 #, c-format
 msgid ""
 "  -z nounique                 Don't mark DSO as a loadable at most once\n"
 msgstr ""
 
-#: lexsup.c:2150
+#: lexsup.c:2087
 #, c-format
 msgid ""
 "  -z lazy                     Mark object lazy runtime binding (default)\n"
 msgstr ""
 
-#: lexsup.c:2152
+#: lexsup.c:2089
 #, c-format
 msgid "  -z loadfltr                 Mark object requiring immediate process\n"
 msgstr ""
 
-#: lexsup.c:2154
+#: lexsup.c:2091
 #, c-format
 msgid "  -z nocopyreloc              Don't create copy relocs\n"
 msgstr ""
 
-#: lexsup.c:2156
+#: lexsup.c:2093
 #, c-format
 msgid ""
 "  -z nodefaultlib             Mark object not to use default search paths\n"
 msgstr ""
 
-#: lexsup.c:2158
+#: lexsup.c:2095
 #, c-format
 msgid "  -z nodelete                 Mark DSO non-deletable at runtime\n"
 msgstr ""
 
-#: lexsup.c:2160
+#: lexsup.c:2097
 #, c-format
 msgid "  -z nodlopen                 Mark DSO not available to dlopen\n"
 msgstr ""
 
-#: lexsup.c:2162
+#: lexsup.c:2099
 #, c-format
 msgid "  -z nodump                   Mark DSO not available to dldump\n"
 msgstr ""
 
-#: lexsup.c:2164
+#: lexsup.c:2101
 #, c-format
 msgid "  -z now                      Mark object non-lazy runtime binding\n"
 msgstr ""
 
-#: lexsup.c:2166
+#: lexsup.c:2103
 #, c-format
 msgid ""
 "  -z origin                   Mark object requiring immediate $ORIGIN\n"
 "                                processing at runtime\n"
 msgstr ""
 
-#: lexsup.c:2170
+#: lexsup.c:2107
 #, c-format
 msgid "  -z relro                    Create RELRO program header (default)\n"
 msgstr ""
 
-#: lexsup.c:2172
+#: lexsup.c:2109
 #, c-format
 msgid "  -z norelro                  Don't create RELRO program header\n"
 msgstr ""
 
-#: lexsup.c:2175
+#: lexsup.c:2112
 #, c-format
 msgid "  -z relro                    Create RELRO program header\n"
 msgstr ""
 
-#: lexsup.c:2177
+#: lexsup.c:2114
 #, c-format
 msgid ""
 "  -z norelro                  Don't create RELRO program header (default)\n"
 msgstr ""
 
-#: lexsup.c:2181
+#: lexsup.c:2118
 #, c-format
 msgid ""
 "  -z separate-code            Create separate code program header (default)\n"
 msgstr ""
 
-#: lexsup.c:2183
+#: lexsup.c:2120
 #, c-format
 msgid ""
 "  -z noseparate-code          Don't create separate code program header\n"
 msgstr ""
 
-#: lexsup.c:2186
+#: lexsup.c:2123
 #, c-format
 msgid "  -z separate-code            Create separate code program header\n"
 msgstr ""
 
-#: lexsup.c:2188
+#: lexsup.c:2125
 #, c-format
 msgid ""
 "  -z noseparate-code          Don't create separate code program header "
 "(default)\n"
 msgstr ""
 
-#: lexsup.c:2191
+#: lexsup.c:2128
 #, c-format
 msgid ""
 "  -z common                   Generate common symbols with STT_COMMON type\n"
 msgstr ""
 
-#: lexsup.c:2193
+#: lexsup.c:2130
 #, c-format
 msgid ""
 "  -z nocommon                 Generate common symbols with STT_OBJECT type\n"
 msgstr ""
 
-#: lexsup.c:2196
+#: lexsup.c:2133
 #, c-format
 msgid ""
 "  -z text                     Treat DT_TEXTREL in output as error (default)\n"
 msgstr ""
 
-#: lexsup.c:2199
+#: lexsup.c:2136
 #, c-format
 msgid "  -z text                     Treat DT_TEXTREL in output as error\n"
 msgstr ""
 
-#: lexsup.c:2203
+#: lexsup.c:2140
 #, c-format
 msgid ""
 "  -z notext                   Don't treat DT_TEXTREL in output as error "
 "(default)\n"
 msgstr ""
 
-#: lexsup.c:2205
+#: lexsup.c:2142
 #, c-format
 msgid ""
 "  -z textoff                  Don't treat DT_TEXTREL in output as error "
 "(default)\n"
 msgstr ""
 
-#: lexsup.c:2210
+#: lexsup.c:2147
 #, c-format
 msgid ""
 "  -z notext                   Don't treat DT_TEXTREL in output as error\n"
 msgstr ""
 
-#: lexsup.c:2212
+#: lexsup.c:2149
 #, c-format
 msgid ""
 "  -z textoff                  Don't treat DT_TEXTREL in output as error\n"
 msgstr ""
 
-#: lexsup.c:2220
+#: lexsup.c:2157
 #, c-format
 msgid "  --build-id[=STYLE]          Generate build ID note\n"
 msgstr ""
 
-#: lexsup.c:2222
+#: lexsup.c:2159
 #, c-format
 msgid "  --package-metadata[=JSON]   Generate package metadata note\n"
 msgstr ""
 
-#: lexsup.c:2224
+#: lexsup.c:2161
 #, c-format
 msgid ""
 "  --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi|zstd]\n"
 "\t\t\t      Compress DWARF debug sections\n"
 msgstr ""
 
-#: lexsup.c:2227
+#: lexsup.c:2164
 #, c-format
 msgid "                                Default: %s\n"
 msgstr ""
 
-#: lexsup.c:2230
+#: lexsup.c:2167
 #, c-format
 msgid "  -z common-page-size=SIZE    Set common page size to SIZE\n"
 msgstr ""
 
-#: lexsup.c:2232
+#: lexsup.c:2169
 #, c-format
 msgid "  -z max-page-size=SIZE       Set maximum page size to SIZE\n"
 msgstr ""
 
-#: lexsup.c:2234
+#: lexsup.c:2171
 #, c-format
 msgid ""
 "  -z defs                     Report unresolved symbols in object files\n"
 msgstr ""
 
-#: lexsup.c:2236
+#: lexsup.c:2173
 #, c-format
 msgid ""
 "  -z undefs                   Ignore unresolved symbols in object files\n"
 msgstr ""
 
-#: lexsup.c:2238
+#: lexsup.c:2175
 #, c-format
 msgid "  -z muldefs                  Allow multiple definitions\n"
 msgstr ""
 
-#: lexsup.c:2240
+#: lexsup.c:2177
 #, c-format
 msgid "  -z stack-size=SIZE          Set size of stack segment\n"
 msgstr ""
 
-#: lexsup.c:2242
+#: lexsup.c:2179
 #, c-format
 msgid ""
 "  -z execstack                Mark executable as requiring executable stack\n"
 msgstr ""
 
-#: lexsup.c:2244
+#: lexsup.c:2181
 #, c-format
 msgid ""
 "  -z noexecstack              Mark executable as not requiring executable "
 "stack\n"
 msgstr ""
 
-#: lexsup.c:2247
+#: lexsup.c:2184
 #, c-format
 msgid ""
 "  --warn-execstack            Generate a warning if the stack is executable "
 "(default)\n"
 msgstr ""
 
-#: lexsup.c:2250
+#: lexsup.c:2187
 #, c-format
 msgid ""
 "  --warn-execstack            Generate a warning if the stack is executable\n"
 msgstr ""
 
-#: lexsup.c:2254
+#: lexsup.c:2191
 #, c-format
 msgid ""
 "  --no-warn-execstack         Do not generate a warning if the stack is "
 "executable (default)\n"
 msgstr ""
 
-#: lexsup.c:2257
+#: lexsup.c:2194
 #, c-format
 msgid ""
 "  --no-warn-execstack         Do not generate a warning if the stack is "
 "executable\n"
 msgstr ""
 
-#: lexsup.c:2261
+#: lexsup.c:2198
 #, c-format
 msgid ""
 "  --warn-rwx-segments         Generate a warning if a LOAD segment has RWX "
 "permissions (default)\n"
 msgstr ""
 
-#: lexsup.c:2263
+#: lexsup.c:2200
 #, c-format
 msgid ""
 "  --no-warn-rwx-segments      Do not generate a warning if a LOAD segments "
 "has RWX permissions\n"
 msgstr ""
 
-#: lexsup.c:2266
+#: lexsup.c:2203
 #, c-format
 msgid ""
 "  --warn-rwx-segments         Generate a warning if a LOAD segment has RWX "
 "permissions\n"
 msgstr ""
 
-#: lexsup.c:2268
+#: lexsup.c:2205
 #, c-format
 msgid ""
 "  --no-warn-rwx-segments      Do not generate a warning if a LOAD segments "
 "has RWX permissions (default)\n"
 msgstr ""
 
-#: lexsup.c:2271
+#: lexsup.c:2208
 #, c-format
 msgid "  -z unique-symbol            Avoid duplicated local symbol names\n"
 msgstr ""
 
-#: lexsup.c:2273
+#: lexsup.c:2210
 #, c-format
 msgid ""
 "  -z nounique-symbol          Keep duplicated local symbol names (default)\n"
 msgstr ""
 
-#: lexsup.c:2275
+#: lexsup.c:2212
 #, c-format
 msgid ""
 "  -z globalaudit              Mark executable requiring global auditing\n"
 msgstr ""
 
-#: lexsup.c:2277
+#: lexsup.c:2214
 #, c-format
 msgid ""
 "  -z start-stop-gc            Enable garbage collection on __start/__stop\n"
 msgstr ""
 
-#: lexsup.c:2279
+#: lexsup.c:2216
 #, c-format
 msgid ""
 "  -z nostart-stop-gc          Don't garbage collect __start/__stop "
 "(default)\n"
 msgstr ""
 
-#: lexsup.c:2281
+#: lexsup.c:2218
 #, c-format
 msgid ""
 "  -z start-stop-visibility=V  Set visibility of built-in __start/__stop "
@@ -2692,23 +2616,13 @@ msgid ""
 "                                to DEFAULT, PROTECTED, HIDDEN or INTERNAL\n"
 msgstr ""
 
-#: lexsup.c:2284
-#, c-format
-msgid "  -z sectionheader            Generate section header (default)\n"
-msgstr ""
-
-#: lexsup.c:2286
-#, c-format
-msgid "  -z nosectionheader          Do not generate section header\n"
-msgstr ""
-
-#: lexsup.c:2293
+#: lexsup.c:2226
 #, c-format
 msgid ""
 "  --ld-generated-unwind-info  Generate exception handling info for PLT\n"
 msgstr ""
 
-#: lexsup.c:2295
+#: lexsup.c:2228
 #, c-format
 msgid ""
 "  --no-ld-generated-unwind-info\n"
@@ -2716,49 +2630,49 @@ msgid ""
 "PLT\n"
 msgstr ""
 
-#: lexsup.c:2305
+#: lexsup.c:2238
 #, c-format
 msgid "ELF emulations:\n"
 msgstr ""
 
-#: lexsup.c:2323
+#: lexsup.c:2256
 #, c-format
 msgid "Usage: %s [options] file...\n"
 msgstr ""
 
-#: lexsup.c:2325
+#: lexsup.c:2258
 #, c-format
 msgid "Options:\n"
 msgstr ""
 
-#: lexsup.c:2403
+#: lexsup.c:2336
 #, c-format
 msgid "  @FILE"
 msgstr ""
 
-#: lexsup.c:2406
+#: lexsup.c:2339
 #, c-format
 msgid "Read options from FILE\n"
 msgstr ""
 
 #. Note: Various tools (such as libtool) depend upon the
 #. format of the listings below - do not change them.
-#: lexsup.c:2411
+#: lexsup.c:2344
 #, c-format
 msgid "%s: supported targets:"
 msgstr ""
 
-#: lexsup.c:2419
+#: lexsup.c:2352
 #, c-format
 msgid "%s: supported emulations: "
 msgstr ""
 
-#: lexsup.c:2424
+#: lexsup.c:2357
 #, c-format
 msgid "%s: emulation specific options:\n"
 msgstr ""
 
-#: lexsup.c:2431
+#: lexsup.c:2364
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
@@ -2767,483 +2681,483 @@ msgstr ""
 msgid "%F%P: unknown format type %s\n"
 msgstr ""
 
-#: pdb.c:842 pdb.c:1133
+#: pdb.c:828 pdb.c:1119
 msgid "%P: CodeView symbol references out of range type %v\n"
 msgstr ""
 
-#: pdb.c:1011
+#: pdb.c:997
 msgid ""
 "%P: warning: truncated CodeView record S_LDATA32/S_GDATA32/S_LTHREAD32/"
 "S_GTHREAD32\n"
 msgstr ""
 
-#: pdb.c:1030
+#: pdb.c:1016
 msgid ""
 "%P: warning: name for S_LDATA32/S_GDATA32/S_LTHREAD32/S_GTHREAD32 has no "
 "terminating zero\n"
 msgstr ""
 
-#: pdb.c:1078 pdb.c:1748
+#: pdb.c:1064 pdb.c:1734
 msgid "%P: warning: truncated CodeView record S_GPROC32/S_LPROC32\n"
 msgstr ""
 
-#: pdb.c:1090 pdb.c:1765
+#: pdb.c:1076 pdb.c:1751
 msgid "%P: warning: could not find end of S_GPROC32/S_LPROC32 record\n"
 msgstr ""
 
-#: pdb.c:1116
+#: pdb.c:1102
 msgid "%P: warning: name for S_GPROC32/S_LPROC32 has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:1172
+#: pdb.c:1158
 msgid ""
 "%P: CodeView S_GPROC32_ID/S_LPROC32_ID symbol referenced unknown type as ID\n"
 msgstr ""
 
-#: pdb.c:1246
+#: pdb.c:1232
 msgid "%P: warning: truncated CodeView record S_UDT\n"
 msgstr ""
 
-#: pdb.c:1257
+#: pdb.c:1243
 msgid "%P: warning: name for S_UDT has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:1294
+#: pdb.c:1280
 msgid "%P: warning: truncated CodeView record S_CONSTANT\n"
 msgstr ""
 
-#: pdb.c:1311
+#: pdb.c:1297
 msgid "%P: warning: unhandled type %v within S_CONSTANT\n"
 msgstr ""
 
-#: pdb.c:1325
+#: pdb.c:1311
 msgid "%P: warning: name for S_CONSTANT has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:1385
+#: pdb.c:1371
 msgid "%P: warning: unexpected CodeView scope start record %v\n"
 msgstr ""
 
-#: pdb.c:1407
+#: pdb.c:1393
 msgid "%P: warning: truncated CodeView record S_BUILDINFO\n"
 msgstr ""
 
-#: pdb.c:1433
+#: pdb.c:1419
 msgid "%P: warning: truncated CodeView record S_BLOCK32\n"
 msgstr ""
 
-#: pdb.c:1445
+#: pdb.c:1431
 msgid "%P: warning: could not find end of S_BLOCK32 record\n"
 msgstr ""
 
-#: pdb.c:1470
+#: pdb.c:1456
 msgid "%P: warning: truncated CodeView record S_BPREL32\n"
 msgstr ""
 
-#: pdb.c:1494
+#: pdb.c:1480
 msgid "%P: warning: truncated CodeView record S_REGISTER\n"
 msgstr ""
 
-#: pdb.c:1518
+#: pdb.c:1504
 msgid "%P: warning: truncated CodeView record S_REGREL32\n"
 msgstr ""
 
-#: pdb.c:1542
+#: pdb.c:1528
 msgid "%P: warning: truncated CodeView record S_LOCAL\n"
 msgstr ""
 
-#: pdb.c:1568
+#: pdb.c:1554
 msgid "%P: warning: truncated CodeView record S_INLINESITE\n"
 msgstr ""
 
-#: pdb.c:1580
+#: pdb.c:1566
 msgid "%P: warning: could not find end of S_INLINESITE record\n"
 msgstr ""
 
-#: pdb.c:1613
+#: pdb.c:1599
 msgid "%P: warning: truncated CodeView record S_THUNK32\n"
 msgstr ""
 
-#: pdb.c:1625
+#: pdb.c:1611
 msgid "%P: warning: could not find end of S_THUNK32 record\n"
 msgstr ""
 
-#: pdb.c:1650
+#: pdb.c:1636
 msgid "%P: warning: truncated CodeView record S_HEAPALLOCSITE\n"
 msgstr ""
 
-#: pdb.c:1684 pdb.c:1828
+#: pdb.c:1670 pdb.c:1814
 msgid "%P: warning: unrecognized CodeView record %v\n"
 msgstr ""
 
-#: pdb.c:1720
+#: pdb.c:1706
 msgid "%P: warning: truncated CodeView record S_LDATA32/S_LTHREAD32\n"
 msgstr ""
 
-#: pdb.c:2155
+#: pdb.c:2141
 msgid "%P: CodeView type %v references other type %v not yet declared\n"
 msgstr ""
 
-#: pdb.c:2162
+#: pdb.c:2148
 msgid "%P: CodeView type %v references out of range type %v\n"
 msgstr ""
 
-#: pdb.c:2222
+#: pdb.c:2208
 msgid "%P: warning: truncated CodeView type record LF_UDT_SRC_LINE\n"
 msgstr ""
 
-#: pdb.c:2235
+#: pdb.c:2221
 msgid ""
 "%P: warning: CodeView type record LF_UDT_SRC_LINE referred to unknown type %"
 "v\n"
 msgstr ""
 
-#: pdb.c:2257
+#: pdb.c:2243
 msgid ""
 "%P: warning: CodeView type record LF_UDT_SRC_LINE referred to unknown string "
 "%v\n"
 msgstr ""
 
-#: pdb.c:2266
+#: pdb.c:2252
 msgid ""
 "%P: warning: CodeView type record LF_UDT_SRC_LINE pointed to unexpected "
 "record type\n"
 msgstr ""
 
-#: pdb.c:2315
+#: pdb.c:2301
 msgid "%P: warning: duplicate CodeView type record LF_UDT_MOD_SRC_LINE\n"
 msgstr ""
 
-#: pdb.c:2364
+#: pdb.c:2350
 msgid "%P: warning: truncated CodeView type record LF_MODIFIER\n"
 msgstr ""
 
-#: pdb.c:2381
+#: pdb.c:2367
 msgid "%P: warning: truncated CodeView type record LF_POINTER\n"
 msgstr ""
 
-#: pdb.c:2398
+#: pdb.c:2384
 msgid "%P: warning: truncated CodeView type record LF_PROCEDURE\n"
 msgstr ""
 
-#: pdb.c:2418
+#: pdb.c:2404
 msgid "%P: warning: truncated CodeView type record LF_MFUNCTION\n"
 msgstr ""
 
-#: pdb.c:2446 pdb.c:2456
+#: pdb.c:2432 pdb.c:2442
 msgid "%P: warning: truncated CodeView type record LF_ARGLIST\n"
 msgstr ""
 
-#: pdb.c:2481 pdb.c:2551 pdb.c:2688 pdb.c:2735 pdb.c:2953 pdb.c:3000
+#: pdb.c:2467 pdb.c:2537 pdb.c:2674 pdb.c:2721 pdb.c:2939 pdb.c:2986
 msgid "%P: warning: truncated CodeView type record LF_FIELDLIST\n"
 msgstr ""
 
-#: pdb.c:2498 pdb.c:2526
+#: pdb.c:2484 pdb.c:2512
 msgid "%P: warning: truncated CodeView type record LF_MEMBER\n"
 msgstr ""
 
-#: pdb.c:2517
+#: pdb.c:2503
 msgid "%P: warning: unhandled type %v within LF_MEMBER\n"
 msgstr ""
 
-#: pdb.c:2537
+#: pdb.c:2523
 msgid "%P: warning: name for LF_MEMBER has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:2570 pdb.c:2593 pdb.c:2620
+#: pdb.c:2556 pdb.c:2579 pdb.c:2606
 msgid "%P: warning: truncated CodeView type record LF_ENUMERATE\n"
 msgstr ""
 
-#: pdb.c:2586
+#: pdb.c:2572
 msgid "%P: warning: unhandled type %v within LF_ENUMERATE\n"
 msgstr ""
 
-#: pdb.c:2606
+#: pdb.c:2592
 msgid "%P: warning: name for LF_ENUMERATE has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:2637
+#: pdb.c:2623
 msgid "%P: warning: truncated CodeView type record LF_INDEX\n"
 msgstr ""
 
-#: pdb.c:2658
+#: pdb.c:2644
 msgid "%P: warning: truncated CodeView type record LF_ONEMETHOD\n"
 msgstr ""
 
-#: pdb.c:2673
+#: pdb.c:2659
 msgid "%P: warning: name for LF_ONEMETHOD has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:2706
+#: pdb.c:2692
 msgid "%P: warning: truncated CodeView type record LF_METHOD\n"
 msgstr ""
 
-#: pdb.c:2721
+#: pdb.c:2707
 msgid "%P: warning: name for LF_METHOD has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:2754 pdb.c:2783 pdb.c:2794
+#: pdb.c:2740 pdb.c:2769 pdb.c:2780
 msgid "%P: warning: truncated CodeView type record LF_BCLASS\n"
 msgstr ""
 
-#: pdb.c:2774
+#: pdb.c:2760
 msgid "%P: warning: unhandled type %v within LF_BCLASS\n"
 msgstr ""
 
-#: pdb.c:2811
+#: pdb.c:2797
 msgid "%P: warning: truncated CodeView type record LF_VFUNCTAB\n"
 msgstr ""
 
-#: pdb.c:2834 pdb.c:2868 pdb.c:2893 pdb.c:2904
+#: pdb.c:2820 pdb.c:2854 pdb.c:2879 pdb.c:2890
 msgid "%P: warning: truncated CodeView type record LF_VBCLASS/LF_IVBCLASS\n"
 msgstr ""
 
-#: pdb.c:2859 pdb.c:2884
+#: pdb.c:2845 pdb.c:2870
 msgid "%P: warning: unhandled type %v within LF_VBCLASS/LF_IVBCLASS\n"
 msgstr ""
 
-#: pdb.c:2923
+#: pdb.c:2909
 msgid "%P: warning: truncated CodeView type record LF_STMEMBER\n"
 msgstr ""
 
-#: pdb.c:2938
+#: pdb.c:2924
 msgid "%P: warning: name for LF_STMEMBER has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:2971
+#: pdb.c:2957
 msgid "%P: warning: truncated CodeView type record LF_NESTTYPE\n"
 msgstr ""
 
-#: pdb.c:2985
+#: pdb.c:2971
 msgid "%P: warning: name for LF_NESTTYPE has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3012
+#: pdb.c:2998
 msgid "%P: warning: unrecognized CodeView subtype %v\n"
 msgstr ""
 
-#: pdb.c:3027
+#: pdb.c:3013
 msgid "%P: warning: truncated CodeView type record LF_BITFIELD\n"
 msgstr ""
 
-#: pdb.c:3045
+#: pdb.c:3031
 msgid "%P: warning: truncated CodeView type record LF_METHODLIST\n"
 msgstr ""
 
-#: pdb.c:3053
+#: pdb.c:3039
 msgid "%P: warning: malformed CodeView type record LF_METHODLIST\n"
 msgstr ""
 
-#: pdb.c:3077
+#: pdb.c:3063
 msgid "%P: warning: truncated CodeView type record LF_ARRAY\n"
 msgstr ""
 
-#: pdb.c:3100 pdb.c:3134
+#: pdb.c:3086 pdb.c:3120
 msgid "%P: warning: truncated CodeView type record LF_CLASS/LF_STRUCTURE\n"
 msgstr ""
 
-#: pdb.c:3125
+#: pdb.c:3111
 msgid "%P: warning: unhandled type %v within LF_CLASS/LF_STRUCTURE\n"
 msgstr ""
 
-#: pdb.c:3144
+#: pdb.c:3130
 msgid "%P: warning: name for LF_CLASS/LF_STRUCTURE has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3163
+#: pdb.c:3149
 msgid ""
 "%P: warning: unique name for LF_CLASS/LF_STRUCTURE has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3187 pdb.c:3215
+#: pdb.c:3173 pdb.c:3201
 msgid "%P: warning: truncated CodeView type record LF_UNION\n"
 msgstr ""
 
-#: pdb.c:3206
+#: pdb.c:3192
 msgid "%P: warning: unhandled type %v within LF_UNION\n"
 msgstr ""
 
-#: pdb.c:3225
+#: pdb.c:3211
 msgid "%P: warning: name for LF_UNION has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3244
+#: pdb.c:3230
 msgid "%P: warning: unique name for LF_UNION has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3268
+#: pdb.c:3254
 msgid "%P: warning: truncated CodeView type record LF_ENUM\n"
 msgstr ""
 
-#: pdb.c:3283
+#: pdb.c:3269
 msgid "%P: warning: name for LF_ENUM has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3301
+#: pdb.c:3287
 msgid "%P: warning: unique name for LF_ENUM has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3320
+#: pdb.c:3306
 msgid "%P: warning: truncated CodeView type record LF_VFTABLE\n"
 msgstr ""
 
-#: pdb.c:3341
+#: pdb.c:3327
 msgid "%P: warning: truncated CodeView type record LF_STRING_ID\n"
 msgstr ""
 
-#: pdb.c:3354
+#: pdb.c:3340
 msgid "%P: warning: string for LF_STRING_ID has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3371 pdb.c:3381
+#: pdb.c:3357 pdb.c:3367
 msgid "%P: warning: truncated CodeView type record LF_SUBSTR_LIST\n"
 msgstr ""
 
-#: pdb.c:3404 pdb.c:3414
+#: pdb.c:3390 pdb.c:3400
 msgid "%P: warning: truncated CodeView type record LF_BUILDINFO\n"
 msgstr ""
 
-#: pdb.c:3437
+#: pdb.c:3423
 msgid "%P: warning: truncated CodeView type record LF_FUNC_ID\n"
 msgstr ""
 
-#: pdb.c:3453
+#: pdb.c:3439
 msgid "%P: warning: string for LF_FUNC_ID has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3470
+#: pdb.c:3456
 msgid "%P: warning: truncated CodeView type record LF_MFUNC_ID\n"
 msgstr ""
 
-#: pdb.c:3486
+#: pdb.c:3472
 msgid "%P: warning: string for LF_MFUNC_ID has no terminating zero\n"
 msgstr ""
 
-#: pdb.c:3501
+#: pdb.c:3487
 msgid "%P: warning: unrecognized CodeView type %v\n"
 msgstr ""
 
-#: pdb.c:3675
+#: pdb.c:3654
 msgid "%P: warning: unable to get working directory\n"
 msgstr ""
 
-#: pdb.c:3683
+#: pdb.c:3662
 msgid "%P: warning: unable to get program name\n"
 msgstr ""
 
-#: pdb.c:3692
+#: pdb.c:3671
 msgid "%P: warning: unable to get full path to PDB\n"
 msgstr ""
 
-#: pdb.c:5148
+#: pdb.c:5090
 msgid "%P: warning: cannot create PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5163
+#: pdb.c:5105
 msgid "%P: warning: cannot create old directory stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5172
+#: pdb.c:5114
 msgid "%P: warning: cannot create info stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5181
+#: pdb.c:5123
 msgid "%P: warning: cannot create TPI stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5190
+#: pdb.c:5132
 msgid "%P: warning: cannot create DBI stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5199
+#: pdb.c:5141
 msgid "%P: warning: cannot create IPI stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5208
+#: pdb.c:5150
 msgid "%P: warning: cannot create /names stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5217
+#: pdb.c:5159
 msgid "%P: warning: cannot create symbol record stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5226
+#: pdb.c:5168
 msgid "%P: warning: cannot create publics stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5233
+#: pdb.c:5175
 msgid "%P: warning: cannot create section header stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5252
+#: pdb.c:5194
 msgid "%P: warning: cannot populate DBI stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5261
+#: pdb.c:5203
 msgid "%P: warning: cannot populate TPI stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5272
+#: pdb.c:5214
 msgid "%P: warning: cannot populate IPI stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5284
+#: pdb.c:5226
 msgid "%P: warning: cannot populate names stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5291
+#: pdb.c:5233
 msgid "%P: warning: cannot populate publics stream in PDB file: %E\n"
 msgstr ""
 
-#: pdb.c:5298
+#: pdb.c:5240
 msgid "%P: warning: cannot populate info stream in PDB file: %E\n"
 msgstr ""
 
-#: pe-dll.c:459
+#: pe-dll.c:458
 msgid "%X%P: unsupported PEI architecture: %s\n"
 msgstr ""
 
-#: pe-dll.c:848
+#: pe-dll.c:847
 msgid "%X%P: cannot export %s: invalid export name\n"
 msgstr ""
 
-#: pe-dll.c:900
+#: pe-dll.c:899
 #, c-format
 msgid "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
 msgstr ""
 
-#: pe-dll.c:907
+#: pe-dll.c:906
 #, c-format
 msgid "%P: warning, duplicate EXPORT: %s\n"
 msgstr ""
 
-#: pe-dll.c:1014
+#: pe-dll.c:1013
 #, c-format
 msgid "%X%P: cannot export %s: symbol not defined\n"
 msgstr ""
 
-#: pe-dll.c:1020
+#: pe-dll.c:1019
 #, c-format
 msgid "%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"
 msgstr ""
 
-#: pe-dll.c:1027
+#: pe-dll.c:1026
 #, c-format
 msgid "%X%P: cannot export %s: symbol not found\n"
 msgstr ""
 
-#: pe-dll.c:1051 eaarch64cloudabi.c:366 eaarch64cloudabib.c:366
+#: pe-dll.c:1049 eaarch64cloudabi.c:366 eaarch64cloudabib.c:366
 #: eaarch64elf.c:365 eaarch64elf32.c:365 eaarch64elf32b.c:365
 #: eaarch64elfb.c:365 eaarch64fbsd.c:366 eaarch64fbsdb.c:366
 #: eaarch64haiku.c:366 eaarch64linux.c:366 eaarch64linux32.c:366
-#: eaarch64linux32b.c:366 eaarch64linuxb.c:366 eaarch64nto.c:366
-#: eaix5ppc.c:1660 eaix5ppc.c:1670 eaix5rs6.c:1660 eaix5rs6.c:1670
-#: eaixppc.c:1660 eaixppc.c:1670 eaixrs6.c:1660 eaixrs6.c:1670 earmelf.c:571
-#: earmelf_fbsd.c:571 earmelf_fuchsia.c:572 earmelf_haiku.c:572
-#: earmelf_linux.c:572 earmelf_linux_eabi.c:572 earmelf_linux_fdpiceabi.c:572
-#: earmelf_nacl.c:572 earmelf_nbsd.c:571 earmelf_phoenix.c:572
-#: earmelf_vxworks.c:571 earmelfb.c:571 earmelfb_fbsd.c:571
-#: earmelfb_fuchsia.c:572 earmelfb_linux.c:572 earmelfb_linux_eabi.c:572
+#: eaarch64linux32b.c:366 eaarch64linuxb.c:366 eaix5ppc.c:1660 eaix5ppc.c:1670
+#: eaix5rs6.c:1660 eaix5rs6.c:1670 eaixppc.c:1660 eaixppc.c:1670
+#: eaixrs6.c:1660 eaixrs6.c:1670 earmelf.c:571 earmelf_fbsd.c:571
+#: earmelf_fuchsia.c:572 earmelf_haiku.c:572 earmelf_linux.c:572
+#: earmelf_linux_eabi.c:572 earmelf_linux_fdpiceabi.c:572 earmelf_nacl.c:572
+#: earmelf_nbsd.c:571 earmelf_phoenix.c:572 earmelf_vxworks.c:571
+#: earmelfb.c:571 earmelfb_fbsd.c:571 earmelfb_fuchsia.c:572
+#: earmelfb_linux.c:572 earmelfb_linux_eabi.c:572
 #: earmelfb_linux_fdpiceabi.c:572 earmelfb_nacl.c:572 earmelfb_nbsd.c:571
 #: earmnto.c:571 ecskyelf.c:165 ecskyelf_linux.c:165 eelf32b4300.c:174
 #: eelf32bmip.c:174 eelf32bmipn32.c:188 eelf32bsmip.c:188 eelf32btsmip.c:174
@@ -3263,180 +3177,180 @@ msgstr ""
 msgid "%F%P: can not create BFD: %E\n"
 msgstr ""
 
-#: pe-dll.c:1065
+#: pe-dll.c:1063
 msgid "%X%P: can not create .edata section: %E\n"
 msgstr ""
 
-#: pe-dll.c:1079
+#: pe-dll.c:1077
 msgid "%X%P: can not create .reloc section: %E\n"
 msgstr ""
 
-#: pe-dll.c:1128
+#: pe-dll.c:1126
 #, c-format
 msgid "%X%P: error: ordinal used twice: %d (%s vs %s)\n"
 msgstr ""
 
-#: pe-dll.c:1164
+#: pe-dll.c:1162
 #, c-format
 msgid "%X%P: error: export ordinal too large: %d\n"
 msgstr ""
 
-#: pe-dll.c:1487
+#: pe-dll.c:1485
 #, c-format
 msgid "Info: resolving %s by linking to %s (auto-import)\n"
 msgstr ""
 
-#: pe-dll.c:1493
+#: pe-dll.c:1491
 msgid ""
 "%P: warning: auto-importing has been activated without --enable-auto-import "
 "specified on the command line; this should work unless it involves constant "
 "data structures referencing symbols from auto-imported DLLs\n"
 msgstr ""
 
-#: pe-dll.c:1653
+#: pe-dll.c:1560
+msgid "%P: zero vma section reloc detected: `%s' #%d f=%d\n"
+msgstr ""
+
+#: pe-dll.c:1643
 msgid "%P: base relocation for section `%s' above .reloc section\n"
 msgstr ""
 
-#: pe-dll.c:1703
+#: pe-dll.c:1693
 #, c-format
 msgid "%X%P: error: %d-bit reloc in dll\n"
 msgstr ""
 
-#: pe-dll.c:1829
+#: pe-dll.c:1815
 #, c-format
 msgid "%P: can't open output def file %s\n"
 msgstr ""
 
-#: pe-dll.c:1978
+#: pe-dll.c:1964
 #, c-format
 msgid "; no contents available\n"
 msgstr ""
 
-#: pe-dll.c:2347
-msgid "%P: error: NULL decorated name for %s\n"
-msgstr ""
-
-#: pe-dll.c:2914
+#: pe-dll.c:2867
 msgid ""
-"%X%P: %H: variable '%pT' can't be auto-imported; please read the "
+"%X%P: %C: variable '%pT' can't be auto-imported; please read the "
 "documentation for ld's --enable-auto-import for details\n"
 msgstr ""
 
-#: pe-dll.c:2935
+#: pe-dll.c:2888
 #, c-format
 msgid "%X%P: can't open .lib file: %s\n"
 msgstr ""
 
-#: pe-dll.c:2941
+#: pe-dll.c:2894
 #, c-format
 msgid "Creating library file: %s\n"
 msgstr ""
 
-#: pe-dll.c:2971
+#: pe-dll.c:2924
 msgid "%X%P: bfd_openr %s: %E\n"
 msgstr ""
 
-#: pe-dll.c:2983
+#: pe-dll.c:2936
 msgid "%X%P: %s(%s): can't find member in non-archive file"
 msgstr ""
 
-#: pe-dll.c:2997
+#: pe-dll.c:2950
 msgid "%X%P: %s(%s): can't find member in archive"
 msgstr ""
 
-#: pe-dll.c:3261
+#: pe-dll.c:3214
 msgid "%X%P: add symbols %s: %E\n"
 msgstr ""
 
-#: pe-dll.c:3466
+#: pe-dll.c:3419
 msgid "%X%P: open %s: %E\n"
 msgstr ""
 
-#: pe-dll.c:3475
+#: pe-dll.c:3428
 msgid "%X%P: %s: this doesn't appear to be a DLL\n"
 msgstr ""
 
-#: pe-dll.c:3680
+#: pe-dll.c:3633
 msgid "%X%P: error: can't use long section names on this arch\n"
 msgstr ""
 
-#: plugin.c:240 plugin.c:286
+#: plugin.c:238 plugin.c:284
 msgid "<no plugin>"
 msgstr ""
 
-#: plugin.c:255 plugin.c:1130
+#: plugin.c:253 plugin.c:1116
 msgid "%F%P: %s: error loading plugin: %s\n"
 msgstr ""
 
-#: plugin.c:262
+#: plugin.c:260
 msgid "%P: %s: duplicated plugin\n"
 msgstr ""
 
-#: plugin.c:348
+#: plugin.c:346
 msgid "%F%P: could not create dummy IR bfd: %E\n"
 msgstr ""
 
-#: plugin.c:429
+#: plugin.c:427
 msgid "%F%P: %s: non-ELF symbol in ELF BFD!\n"
 msgstr ""
 
-#: plugin.c:440
+#: plugin.c:438
 msgid "%F%P: unknown ELF symbol visibility: %d!\n"
 msgstr ""
 
-#: plugin.c:558
+#: plugin.c:547
 msgid "%F%P: unsupported input file size: %s (%ld bytes)\n"
 msgstr ""
 
-#: plugin.c:703
+#: plugin.c:692
 #, c-format
 msgid "unknown LTO kind value %x"
 msgstr ""
 
-#: plugin.c:729
+#: plugin.c:718
 #, c-format
 msgid "unknown LTO resolution value %x"
 msgstr ""
 
-#: plugin.c:749
+#: plugin.c:738
 #, c-format
 msgid "unknown LTO visibility value %x"
 msgstr ""
 
 #. We should not have a new, indirect or warning symbol here.
-#: plugin.c:829
+#: plugin.c:818
 msgid "%F%P: %s: plugin symbol table corrupt (sym type %d)\n"
 msgstr ""
 
-#: plugin.c:894
+#: plugin.c:883
 msgid "%P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s\n"
 msgstr ""
 
-#: plugin.c:971
+#: plugin.c:960
 msgid "%P: warning: "
 msgstr ""
 
-#: plugin.c:982
+#: plugin.c:971
 msgid "%P: error: "
 msgstr ""
 
-#: plugin.c:1137
+#: plugin.c:1123
 msgid "%F%P: %s: plugin error: %d\n"
 msgstr ""
 
-#: plugin.c:1196
+#: plugin.c:1178
 msgid "%F%P: plugin_strdup failed to allocate memory: %s\n"
 msgstr ""
 
-#: plugin.c:1233
+#: plugin.c:1215
 msgid "%F%P: plugin failed to allocate memory for input: %s\n"
 msgstr ""
 
-#: plugin.c:1261
+#: plugin.c:1243
 msgid "%F%P: %s: plugin reported error claiming file\n"
 msgstr ""
 
-#: plugin.c:1372
+#: plugin.c:1354
 msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
 msgstr ""
 
@@ -3444,24 +3358,23 @@ msgstr ""
 #: eaarch64elf32.c:228 eaarch64elf32b.c:228 eaarch64elfb.c:228
 #: eaarch64fbsd.c:229 eaarch64fbsdb.c:229 eaarch64haiku.c:229
 #: eaarch64linux.c:229 eaarch64linux32.c:229 eaarch64linux32b.c:229
-#: eaarch64linuxb.c:229 eaarch64nto.c:229 eaix5ppc.c:1125 eaix5rs6.c:1125
-#: eaixppc.c:1125 eaixrs6.c:1125 earmelf.c:298 earmelf_fbsd.c:298
-#: earmelf_fuchsia.c:299 earmelf_haiku.c:299 earmelf_linux.c:299
-#: earmelf_linux_eabi.c:299 earmelf_linux_fdpiceabi.c:299 earmelf_nacl.c:299
-#: earmelf_nbsd.c:298 earmelf_phoenix.c:299 earmelf_vxworks.c:298
-#: earmelfb.c:298 earmelfb_fbsd.c:298 earmelfb_fuchsia.c:299
-#: earmelfb_linux.c:299 earmelfb_linux_eabi.c:299
-#: earmelfb_linux_fdpiceabi.c:299 earmelfb_nacl.c:299 earmelfb_nbsd.c:298
-#: earmnto.c:298 eavr1.c:181 eavr2.c:181 eavr25.c:181 eavr3.c:181 eavr31.c:181
-#: eavr35.c:181 eavr4.c:181 eavr5.c:181 eavr51.c:181 eavr6.c:181
-#: eavrtiny.c:181 eavrxmega1.c:181 eavrxmega2.c:181 eavrxmega3.c:181
-#: eavrxmega4.c:181 eavrxmega5.c:181 eavrxmega6.c:181 eavrxmega7.c:181
-#: ecskyelf.c:212 ecskyelf_linux.c:212 eelf32b4300.c:207 eelf32bmip.c:207
-#: eelf32bmipn32.c:221 eelf32bsmip.c:221 eelf32btsmip.c:207
-#: eelf32btsmip_fbsd.c:207 eelf32btsmipn32.c:207 eelf32btsmipn32_fbsd.c:207
-#: eelf32ebmip.c:207 eelf32ebmipvxworks.c:207 eelf32elmip.c:207
-#: eelf32elmipvxworks.c:207 eelf32l4300.c:207 eelf32lmip.c:207
-#: eelf32lr5900.c:207 eelf32lr5900n32.c:207 eelf32lsmip.c:207
+#: eaarch64linuxb.c:229 eaix5ppc.c:1125 eaix5rs6.c:1125 eaixppc.c:1125
+#: eaixrs6.c:1125 earmelf.c:298 earmelf_fbsd.c:298 earmelf_fuchsia.c:299
+#: earmelf_haiku.c:299 earmelf_linux.c:299 earmelf_linux_eabi.c:299
+#: earmelf_linux_fdpiceabi.c:299 earmelf_nacl.c:299 earmelf_nbsd.c:298
+#: earmelf_phoenix.c:299 earmelf_vxworks.c:298 earmelfb.c:298
+#: earmelfb_fbsd.c:298 earmelfb_fuchsia.c:299 earmelfb_linux.c:299
+#: earmelfb_linux_eabi.c:299 earmelfb_linux_fdpiceabi.c:299
+#: earmelfb_nacl.c:299 earmelfb_nbsd.c:298 earmnto.c:298 eavr1.c:181
+#: eavr2.c:181 eavr25.c:181 eavr3.c:181 eavr31.c:181 eavr35.c:181 eavr4.c:181
+#: eavr5.c:181 eavr51.c:181 eavr6.c:181 eavrtiny.c:181 eavrxmega1.c:181
+#: eavrxmega2.c:181 eavrxmega3.c:181 eavrxmega4.c:181 eavrxmega5.c:181
+#: eavrxmega6.c:181 eavrxmega7.c:181 ecskyelf.c:212 ecskyelf_linux.c:212
+#: eelf32b4300.c:207 eelf32bmip.c:207 eelf32bmipn32.c:221 eelf32bsmip.c:221
+#: eelf32btsmip.c:207 eelf32btsmip_fbsd.c:207 eelf32btsmipn32.c:207
+#: eelf32btsmipn32_fbsd.c:207 eelf32ebmip.c:207 eelf32ebmipvxworks.c:207
+#: eelf32elmip.c:207 eelf32elmipvxworks.c:207 eelf32l4300.c:207
+#: eelf32lmip.c:207 eelf32lr5900.c:207 eelf32lr5900n32.c:207 eelf32lsmip.c:207
 #: eelf32ltsmip.c:207 eelf32ltsmip_fbsd.c:207 eelf32ltsmipn32.c:207
 #: eelf32ltsmipn32_fbsd.c:207 eelf32metag.c:208 eelf32mipswindiss.c:207
 #: eelf64bmip.c:221 eelf64btsmip.c:207 eelf64btsmip_fbsd.c:207
@@ -3477,54 +3390,54 @@ msgstr ""
 #: eaarch64elf32.c:271 eaarch64elf32b.c:271 eaarch64elfb.c:271
 #: eaarch64fbsd.c:272 eaarch64fbsdb.c:272 eaarch64haiku.c:272
 #: eaarch64linux.c:272 eaarch64linux32.c:272 eaarch64linux32b.c:272
-#: eaarch64linuxb.c:272 eaarch64nto.c:272 earcelf.c:112 earclinux.c:113
-#: earclinux_nps.c:113 earcv2elf.c:112 earcv2elfx.c:112 earmelf.c:410
-#: earmelf_fbsd.c:410 earmelf_fuchsia.c:411 earmelf_haiku.c:411
-#: earmelf_linux.c:411 earmelf_linux_eabi.c:411 earmelf_linux_fdpiceabi.c:411
-#: earmelf_nacl.c:411 earmelf_nbsd.c:410 earmelf_phoenix.c:411
-#: earmelf_vxworks.c:410 earmelfb.c:410 earmelfb_fbsd.c:410
-#: earmelfb_fuchsia.c:411 earmelfb_linux.c:411 earmelfb_linux_eabi.c:411
+#: eaarch64linuxb.c:272 earcelf.c:112 earclinux.c:113 earclinux_nps.c:113
+#: earcv2elf.c:112 earcv2elfx.c:112 earmelf.c:410 earmelf_fbsd.c:410
+#: earmelf_fuchsia.c:411 earmelf_haiku.c:411 earmelf_linux.c:411
+#: earmelf_linux_eabi.c:411 earmelf_linux_fdpiceabi.c:411 earmelf_nacl.c:411
+#: earmelf_nbsd.c:410 earmelf_phoenix.c:411 earmelf_vxworks.c:410
+#: earmelfb.c:410 earmelfb_fbsd.c:410 earmelfb_fuchsia.c:411
+#: earmelfb_linux.c:411 earmelfb_linux_eabi.c:411
 #: earmelfb_linux_fdpiceabi.c:411 earmelfb_nacl.c:411 earmelfb_nbsd.c:410
 #: earmnto.c:410 eavr1.c:316 eavr2.c:316 eavr25.c:316 eavr3.c:316 eavr31.c:316
 #: eavr35.c:316 eavr4.c:316 eavr5.c:316 eavr51.c:316 eavr6.c:316
 #: eavrtiny.c:316 eavrxmega1.c:316 eavrxmega2.c:316 eavrxmega3.c:316
 #: eavrxmega4.c:316 eavrxmega5.c:316 eavrxmega6.c:316 eavrxmega7.c:316
 #: ecriself.c:112 ecrislinux.c:113 ed10velf.c:112 eelf32_sparc.c:113
-#: eelf32_sparc_sol2.c:245 eelf32_sparc_vxworks.c:142 eelf32_spu.c:646
+#: eelf32_sparc_sol2.c:245 eelf32_sparc_vxworks.c:142 eelf32_spu.c:782
 #: eelf32_tic6x_be.c:183 eelf32_tic6x_elf_be.c:183 eelf32_tic6x_elf_le.c:183
 #: eelf32_tic6x_le.c:183 eelf32_tic6x_linux_be.c:183
 #: eelf32_tic6x_linux_le.c:183 eelf32_x86_64.c:137 eelf32am33lin.c:112
 #: eelf32b4300.c:309 eelf32bfin.c:122 eelf32bfinfd.c:122 eelf32bmip.c:309
-#: eelf32bmipn32.c:323 eelf32briscv.c:92 eelf32briscv_ilp32.c:92
-#: eelf32briscv_ilp32f.c:92 eelf32bsmip.c:323 eelf32btsmip.c:309
+#: eelf32bmipn32.c:323 eelf32briscv.c:91 eelf32briscv_ilp32.c:91
+#: eelf32briscv_ilp32f.c:91 eelf32bsmip.c:323 eelf32btsmip.c:309
 #: eelf32btsmip_fbsd.c:309 eelf32btsmipn32.c:309 eelf32btsmipn32_fbsd.c:309
 #: eelf32cr16.c:262 eelf32crx.c:149 eelf32ebmip.c:309 eelf32ebmipvxworks.c:338
 #: eelf32elmip.c:309 eelf32elmipvxworks.c:338 eelf32epiphany.c:112
 #: eelf32epiphany_4x4.c:114 eelf32frvfd.c:112 eelf32ip2k.c:112
 #: eelf32l4300.c:309 eelf32lm32.c:112 eelf32lm32fd.c:112 eelf32lmip.c:309
-#: eelf32loongarch.c:91 eelf32lppc.c:321 eelf32lppclinux.c:321
-#: eelf32lppcnto.c:321 eelf32lppcsim.c:321 eelf32lr5900.c:309
-#: eelf32lr5900n32.c:308 eelf32lriscv.c:92 eelf32lriscv_ilp32.c:92
-#: eelf32lriscv_ilp32f.c:92 eelf32lsmip.c:309 eelf32ltsmip.c:309
+#: eelf32loongarch.c:90 eelf32lppc.c:333 eelf32lppclinux.c:333
+#: eelf32lppcnto.c:333 eelf32lppcsim.c:333 eelf32lr5900.c:309
+#: eelf32lr5900n32.c:308 eelf32lriscv.c:91 eelf32lriscv_ilp32.c:91
+#: eelf32lriscv_ilp32f.c:91 eelf32lsmip.c:309 eelf32ltsmip.c:309
 #: eelf32ltsmip_fbsd.c:309 eelf32ltsmipn32.c:309 eelf32ltsmipn32_fbsd.c:309
 #: eelf32m32c.c:123 eelf32mb_linux.c:113 eelf32mbel_linux.c:113
 #: eelf32mcore.c:112 eelf32mep.c:112 eelf32metag.c:258 eelf32microblaze.c:112
 #: eelf32microblazeel.c:112 eelf32mipswindiss.c:308 eelf32moxie.c:112
-#: eelf32or1k.c:113 eelf32or1k_linux.c:113 eelf32ppc.c:321
-#: eelf32ppc_fbsd.c:321 eelf32ppchaiku.c:321 eelf32ppclinux.c:321
-#: eelf32ppcnto.c:321 eelf32ppcsim.c:321 eelf32ppcvxworks.c:295
-#: eelf32ppcwindiss.c:321 eelf32rl78.c:112 eelf32rx.c:128 eelf32rx_linux.c:125
+#: eelf32or1k.c:113 eelf32or1k_linux.c:113 eelf32ppc.c:333
+#: eelf32ppc_fbsd.c:333 eelf32ppchaiku.c:333 eelf32ppclinux.c:333
+#: eelf32ppcnto.c:333 eelf32ppcsim.c:333 eelf32ppcvxworks.c:307
+#: eelf32ppcwindiss.c:333 eelf32rl78.c:112 eelf32rx.c:128 eelf32rx_linux.c:125
 #: eelf32tilegx.c:113 eelf32tilegx_be.c:113 eelf32tilepro.c:113
 #: eelf32vax.c:112 eelf32visium.c:112 eelf32xstormy16.c:123
 #: eelf32xtensa.c:2009 eelf32z80.c:139 eelf64_aix.c:112 eelf64_ia64.c:138
 #: eelf64_ia64_fbsd.c:138 eelf64_ia64_vms.c:220 eelf64_s390.c:128
 #: eelf64_sparc.c:113 eelf64_sparc_fbsd.c:113 eelf64_sparc_sol2.c:245
 #: eelf64alpha.c:196 eelf64alpha_fbsd.c:196 eelf64alpha_nbsd.c:196
-#: eelf64bmip.c:323 eelf64bpf.c:112 eelf64briscv.c:92 eelf64briscv_lp64.c:92
-#: eelf64briscv_lp64f.c:92 eelf64btsmip.c:309 eelf64btsmip_fbsd.c:309
-#: eelf64hppa.c:112 eelf64loongarch.c:91 eelf64lppc.c:594
-#: eelf64lppc_fbsd.c:594 eelf64lriscv.c:92 eelf64lriscv_lp64.c:92
-#: eelf64lriscv_lp64f.c:92 eelf64ltsmip.c:309 eelf64ltsmip_fbsd.c:309
+#: eelf64bmip.c:323 eelf64bpf.c:112 eelf64briscv.c:91 eelf64briscv_lp64.c:91
+#: eelf64briscv_lp64f.c:91 eelf64btsmip.c:309 eelf64btsmip_fbsd.c:309
+#: eelf64hppa.c:112 eelf64loongarch.c:90 eelf64lppc.c:594
+#: eelf64lppc_fbsd.c:594 eelf64lriscv.c:91 eelf64lriscv_lp64.c:91
+#: eelf64lriscv_lp64f.c:91 eelf64ltsmip.c:309 eelf64ltsmip_fbsd.c:309
 #: eelf64mmix.c:223 eelf64ppc.c:594 eelf64ppc_fbsd.c:594 eelf64rdos.c:128
 #: eelf64tilegx.c:113 eelf64tilegx_be.c:113 eelf_i386.c:137 eelf_i386_be.c:136
 #: eelf_i386_fbsd.c:137 eelf_i386_haiku.c:137 eelf_i386_ldso.c:137
@@ -3554,14 +3467,14 @@ msgstr ""
 #: eaarch64elf32.c:287 eaarch64elf32b.c:287 eaarch64elfb.c:287
 #: eaarch64fbsd.c:288 eaarch64fbsdb.c:288 eaarch64haiku.c:288
 #: eaarch64linux.c:288 eaarch64linux32.c:288 eaarch64linux32b.c:288
-#: eaarch64linuxb.c:288 eaarch64nto.c:288 earmelf.c:425 earmelf_fbsd.c:425
-#: earmelf_fuchsia.c:426 earmelf_haiku.c:426 earmelf_linux.c:426
-#: earmelf_linux_eabi.c:426 earmelf_linux_fdpiceabi.c:426 earmelf_nacl.c:426
-#: earmelf_nbsd.c:425 earmelf_phoenix.c:426 earmelf_vxworks.c:425
-#: earmelfb.c:425 earmelfb_fbsd.c:425 earmelfb_fuchsia.c:426
-#: earmelfb_linux.c:426 earmelfb_linux_eabi.c:426
-#: earmelfb_linux_fdpiceabi.c:426 earmelfb_nacl.c:426 earmelfb_nbsd.c:425
-#: earmnto.c:425 ecskyelf.c:262 ecskyelf_linux.c:262
+#: eaarch64linuxb.c:288 earmelf.c:425 earmelf_fbsd.c:425 earmelf_fuchsia.c:426
+#: earmelf_haiku.c:426 earmelf_linux.c:426 earmelf_linux_eabi.c:426
+#: earmelf_linux_fdpiceabi.c:426 earmelf_nacl.c:426 earmelf_nbsd.c:425
+#: earmelf_phoenix.c:426 earmelf_vxworks.c:425 earmelfb.c:425
+#: earmelfb_fbsd.c:425 earmelfb_fuchsia.c:426 earmelfb_linux.c:426
+#: earmelfb_linux_eabi.c:426 earmelfb_linux_fdpiceabi.c:426
+#: earmelfb_nacl.c:426 earmelfb_nbsd.c:425 earmnto.c:425 ecskyelf.c:262
+#: ecskyelf_linux.c:262
 msgid "%X%P: could not compute sections lists for stub generation: %E\n"
 msgstr ""
 
@@ -3569,31 +3482,30 @@ msgstr ""
 #: eaarch64elf32.c:302 eaarch64elf32b.c:302 eaarch64elfb.c:302
 #: eaarch64fbsd.c:303 eaarch64fbsdb.c:303 eaarch64haiku.c:303
 #: eaarch64linux.c:303 eaarch64linux32.c:303 eaarch64linux32b.c:303
-#: eaarch64linuxb.c:303 eaarch64nto.c:303 earmelf.c:440 earmelf_fbsd.c:440
-#: earmelf_fuchsia.c:441 earmelf_haiku.c:441 earmelf_linux.c:441
-#: earmelf_linux_eabi.c:441 earmelf_linux_fdpiceabi.c:441 earmelf_nacl.c:441
-#: earmelf_nbsd.c:440 earmelf_phoenix.c:441 earmelf_vxworks.c:440
-#: earmelfb.c:440 earmelfb_fbsd.c:440 earmelfb_fuchsia.c:441
-#: earmelfb_linux.c:441 earmelfb_linux_eabi.c:441
-#: earmelfb_linux_fdpiceabi.c:441 earmelfb_nacl.c:441 earmelfb_nbsd.c:440
-#: earmnto.c:440 eavr1.c:131 eavr1.c:195 eavr2.c:131 eavr2.c:195 eavr25.c:131
-#: eavr25.c:195 eavr3.c:131 eavr3.c:195 eavr31.c:131 eavr31.c:195 eavr35.c:131
-#: eavr35.c:195 eavr4.c:131 eavr4.c:195 eavr5.c:131 eavr5.c:195 eavr51.c:131
-#: eavr51.c:195 eavr6.c:131 eavr6.c:195 eavrtiny.c:131 eavrtiny.c:195
-#: eavrxmega1.c:131 eavrxmega1.c:195 eavrxmega2.c:131 eavrxmega2.c:195
-#: eavrxmega3.c:131 eavrxmega3.c:195 eavrxmega4.c:131 eavrxmega4.c:195
-#: eavrxmega5.c:131 eavrxmega5.c:195 eavrxmega6.c:131 eavrxmega6.c:195
-#: eavrxmega7.c:131 eavrxmega7.c:195 eelf32metag.c:273 eelf32metag.c:287
-#: eelf64lppc.c:537 eelf64lppc.c:556 eelf64lppc.c:583 eelf64lppc_fbsd.c:537
-#: eelf64lppc_fbsd.c:556 eelf64lppc_fbsd.c:583 eelf64ppc.c:537 eelf64ppc.c:556
-#: eelf64ppc.c:583 eelf64ppc_fbsd.c:537 eelf64ppc_fbsd.c:556
-#: eelf64ppc_fbsd.c:583 ehppaelf.c:297 ehppaelf.c:312 ehppalinux.c:297
-#: ehppalinux.c:312 ehppanbsd.c:297 ehppanbsd.c:312 ehppaobsd.c:297
-#: ehppaobsd.c:312 em68hc11elf.c:92 em68hc11elf.c:102 em68hc11elf.c:319
-#: em68hc11elfb.c:92 em68hc11elfb.c:102 em68hc11elfb.c:319 em68hc12elf.c:92
-#: em68hc12elf.c:102 em68hc12elf.c:319 em68hc12elfb.c:92 em68hc12elfb.c:102
-#: em68hc12elfb.c:319 enios2elf.c:292 enios2elf.c:305 enios2linux.c:292
-#: enios2linux.c:305
+#: eaarch64linuxb.c:303 earmelf.c:440 earmelf_fbsd.c:440 earmelf_fuchsia.c:441
+#: earmelf_haiku.c:441 earmelf_linux.c:441 earmelf_linux_eabi.c:441
+#: earmelf_linux_fdpiceabi.c:441 earmelf_nacl.c:441 earmelf_nbsd.c:440
+#: earmelf_phoenix.c:441 earmelf_vxworks.c:440 earmelfb.c:440
+#: earmelfb_fbsd.c:440 earmelfb_fuchsia.c:441 earmelfb_linux.c:441
+#: earmelfb_linux_eabi.c:441 earmelfb_linux_fdpiceabi.c:441
+#: earmelfb_nacl.c:441 earmelfb_nbsd.c:440 earmnto.c:440 eavr1.c:131
+#: eavr1.c:195 eavr2.c:131 eavr2.c:195 eavr25.c:131 eavr25.c:195 eavr3.c:131
+#: eavr3.c:195 eavr31.c:131 eavr31.c:195 eavr35.c:131 eavr35.c:195 eavr4.c:131
+#: eavr4.c:195 eavr5.c:131 eavr5.c:195 eavr51.c:131 eavr51.c:195 eavr6.c:131
+#: eavr6.c:195 eavrtiny.c:131 eavrtiny.c:195 eavrxmega1.c:131 eavrxmega1.c:195
+#: eavrxmega2.c:131 eavrxmega2.c:195 eavrxmega3.c:131 eavrxmega3.c:195
+#: eavrxmega4.c:131 eavrxmega4.c:195 eavrxmega5.c:131 eavrxmega5.c:195
+#: eavrxmega6.c:131 eavrxmega6.c:195 eavrxmega7.c:131 eavrxmega7.c:195
+#: eelf32metag.c:273 eelf32metag.c:287 eelf64lppc.c:537 eelf64lppc.c:556
+#: eelf64lppc.c:583 eelf64lppc_fbsd.c:537 eelf64lppc_fbsd.c:556
+#: eelf64lppc_fbsd.c:583 eelf64ppc.c:537 eelf64ppc.c:556 eelf64ppc.c:583
+#: eelf64ppc_fbsd.c:537 eelf64ppc_fbsd.c:556 eelf64ppc_fbsd.c:583
+#: ehppaelf.c:297 ehppaelf.c:312 ehppalinux.c:297 ehppalinux.c:312
+#: ehppanbsd.c:297 ehppanbsd.c:312 ehppaobsd.c:297 ehppaobsd.c:312
+#: em68hc11elf.c:92 em68hc11elf.c:102 em68hc11elf.c:319 em68hc11elfb.c:92
+#: em68hc11elfb.c:102 em68hc11elfb.c:319 em68hc12elf.c:92 em68hc12elf.c:102
+#: em68hc12elf.c:319 em68hc12elfb.c:92 em68hc12elfb.c:102 em68hc12elfb.c:319
+#: enios2elf.c:292 enios2elf.c:305 enios2linux.c:292 enios2linux.c:305
 msgid "%X%P: can not size stub section: %E\n"
 msgstr ""
 
@@ -3601,22 +3513,22 @@ msgstr ""
 #: eaarch64elf32.c:321 eaarch64elf32b.c:321 eaarch64elfb.c:321
 #: eaarch64fbsd.c:322 eaarch64fbsdb.c:322 eaarch64haiku.c:322
 #: eaarch64linux.c:322 eaarch64linux32.c:322 eaarch64linux32b.c:322
-#: eaarch64linuxb.c:322 eaarch64nto.c:322 eaix5ppc.c:1165 eaix5rs6.c:1165
-#: eaixppc.c:1165 eaixrs6.c:1165 earmelf.c:474 earmelf_fbsd.c:474
-#: earmelf_fuchsia.c:475 earmelf_haiku.c:475 earmelf_linux.c:475
-#: earmelf_linux_eabi.c:475 earmelf_linux_fdpiceabi.c:475 earmelf_nacl.c:475
-#: earmelf_nbsd.c:474 earmelf_phoenix.c:475 earmelf_vxworks.c:474
-#: earmelfb.c:474 earmelfb_fbsd.c:474 earmelfb_fuchsia.c:475
-#: earmelfb_linux.c:475 earmelfb_linux_eabi.c:475
-#: earmelfb_linux_fdpiceabi.c:475 earmelfb_nacl.c:475 earmelfb_nbsd.c:474
-#: earmnto.c:474 eavr1.c:204 eavr2.c:204 eavr25.c:204 eavr3.c:204 eavr31.c:204
-#: eavr35.c:204 eavr4.c:204 eavr5.c:204 eavr51.c:204 eavr6.c:204
-#: eavrtiny.c:204 eavrxmega1.c:204 eavrxmega2.c:204 eavrxmega3.c:204
-#: eavrxmega4.c:204 eavrxmega5.c:204 eavrxmega6.c:204 eavrxmega7.c:204
-#: eelf32metag.c:302 eelf64lppc.c:633 eelf64lppc_fbsd.c:633 eelf64ppc.c:633
-#: eelf64ppc_fbsd.c:633 ehppaelf.c:334 ehppalinux.c:334 ehppanbsd.c:334
-#: ehppaobsd.c:334 em68hc11elf.c:323 em68hc11elfb.c:323 em68hc12elf.c:323
-#: em68hc12elfb.c:323 enios2elf.c:320 enios2linux.c:320 eppcmacos.c:1165
+#: eaarch64linuxb.c:322 eaix5ppc.c:1165 eaix5rs6.c:1165 eaixppc.c:1165
+#: eaixrs6.c:1165 earmelf.c:474 earmelf_fbsd.c:474 earmelf_fuchsia.c:475
+#: earmelf_haiku.c:475 earmelf_linux.c:475 earmelf_linux_eabi.c:475
+#: earmelf_linux_fdpiceabi.c:475 earmelf_nacl.c:475 earmelf_nbsd.c:474
+#: earmelf_phoenix.c:475 earmelf_vxworks.c:474 earmelfb.c:474
+#: earmelfb_fbsd.c:474 earmelfb_fuchsia.c:475 earmelfb_linux.c:475
+#: earmelfb_linux_eabi.c:475 earmelfb_linux_fdpiceabi.c:475
+#: earmelfb_nacl.c:475 earmelfb_nbsd.c:474 earmnto.c:474 eavr1.c:204
+#: eavr2.c:204 eavr25.c:204 eavr3.c:204 eavr31.c:204 eavr35.c:204 eavr4.c:204
+#: eavr5.c:204 eavr51.c:204 eavr6.c:204 eavrtiny.c:204 eavrxmega1.c:204
+#: eavrxmega2.c:204 eavrxmega3.c:204 eavrxmega4.c:204 eavrxmega5.c:204
+#: eavrxmega6.c:204 eavrxmega7.c:204 eelf32metag.c:302 eelf64lppc.c:633
+#: eelf64lppc_fbsd.c:633 eelf64ppc.c:633 eelf64ppc_fbsd.c:633 ehppaelf.c:334
+#: ehppalinux.c:334 ehppanbsd.c:334 ehppaobsd.c:334 em68hc11elf.c:323
+#: em68hc11elfb.c:323 em68hc12elf.c:323 em68hc12elfb.c:323 enios2elf.c:320
+#: enios2linux.c:320 eppcmacos.c:1165
 msgid "%X%P: can not build stubs: %E\n"
 msgstr ""
 
@@ -3649,25 +3561,25 @@ msgstr ""
 #: eaarch64elf32.c:339 eaarch64elf32b.c:339 eaarch64elfb.c:339
 #: eaarch64fbsd.c:340 eaarch64fbsdb.c:340 eaarch64haiku.c:340
 #: eaarch64linux.c:340 eaarch64linux32.c:340 eaarch64linux32b.c:340
-#: eaarch64linuxb.c:340 eaarch64nto.c:340 earm_wince_pe.c:1601 earmelf.c:543
-#: earmelf_fbsd.c:543 earmelf_fuchsia.c:544 earmelf_haiku.c:544
-#: earmelf_linux.c:544 earmelf_linux_eabi.c:544 earmelf_linux_fdpiceabi.c:544
-#: earmelf_nacl.c:544 earmelf_nbsd.c:543 earmelf_phoenix.c:544
-#: earmelf_vxworks.c:543 earmelfb.c:543 earmelfb_fbsd.c:543
-#: earmelfb_fuchsia.c:544 earmelfb_linux.c:544 earmelfb_linux_eabi.c:544
+#: eaarch64linuxb.c:340 earm_wince_pe.c:1515 earmelf.c:543 earmelf_fbsd.c:543
+#: earmelf_fuchsia.c:544 earmelf_haiku.c:544 earmelf_linux.c:544
+#: earmelf_linux_eabi.c:544 earmelf_linux_fdpiceabi.c:544 earmelf_nacl.c:544
+#: earmelf_nbsd.c:543 earmelf_phoenix.c:544 earmelf_vxworks.c:543
+#: earmelfb.c:543 earmelfb_fbsd.c:543 earmelfb_fuchsia.c:544
+#: earmelfb_linux.c:544 earmelfb_linux_eabi.c:544
 #: earmelfb_linux_fdpiceabi.c:544 earmelfb_nacl.c:544 earmelfb_nbsd.c:543
-#: earmnto.c:543 earmpe.c:1601 eavr1.c:144 eavr2.c:144 eavr25.c:144
+#: earmnto.c:543 earmpe.c:1515 eavr1.c:144 eavr2.c:144 eavr25.c:144
 #: eavr3.c:144 eavr31.c:144 eavr35.c:144 eavr4.c:144 eavr5.c:144 eavr51.c:144
 #: eavr6.c:144 eavrtiny.c:144 eavrxmega1.c:144 eavrxmega2.c:144
 #: eavrxmega3.c:144 eavrxmega4.c:144 eavrxmega5.c:144 eavrxmega6.c:144
-#: eavrxmega7.c:144 eelf32briscv.c:127 eelf32briscv_ilp32.c:127
-#: eelf32briscv_ilp32f.c:127 eelf32loongarch.c:111 eelf32lriscv.c:127
-#: eelf32lriscv_ilp32.c:127 eelf32lriscv_ilp32f.c:127 eelf64briscv.c:127
-#: eelf64briscv_lp64.c:127 eelf64briscv_lp64f.c:127 eelf64loongarch.c:111
-#: eelf64lriscv.c:127 eelf64lriscv_lp64.c:127 eelf64lriscv_lp64f.c:127
-#: ei386pe.c:1601 ei386pe_posix.c:1601 emcorepe.c:1601 ends32belf.c:76
+#: eavrxmega7.c:144 eelf32briscv.c:126 eelf32briscv_ilp32.c:126
+#: eelf32briscv_ilp32f.c:126 eelf32loongarch.c:108 eelf32lriscv.c:126
+#: eelf32lriscv_ilp32.c:126 eelf32lriscv_ilp32f.c:126 eelf64briscv.c:126
+#: eelf64briscv_lp64.c:126 eelf64briscv_lp64f.c:126 eelf64loongarch.c:108
+#: eelf64lriscv.c:126 eelf64lriscv_lp64.c:126 eelf64lriscv_lp64f.c:126
+#: ei386pe.c:1515 ei386pe_posix.c:1515 emcorepe.c:1515 ends32belf.c:76
 #: ends32belf16m.c:76 ends32belf_linux.c:76 ends32elf.c:76 ends32elf16m.c:76
-#: ends32elf_linux.c:76 escore3_elf.c:81 escore7_elf.c:81 eshpe.c:1601
+#: ends32elf_linux.c:76 escore3_elf.c:81 escore7_elf.c:81 eshpe.c:1515
 #: ev850.c:93 ev850_rh850.c:93
 msgid "%F%P: error: cannot change output format whilst linking %s binaries\n"
 msgstr ""
@@ -3676,13 +3588,13 @@ msgstr ""
 #: eaarch64elf32.c:591 eaarch64elf32b.c:591 eaarch64elfb.c:591
 #: eaarch64fbsd.c:592 eaarch64fbsdb.c:592 eaarch64haiku.c:592
 #: eaarch64linux.c:592 eaarch64linux32.c:592 eaarch64linux32b.c:592
-#: eaarch64linuxb.c:592 eaarch64nto.c:689 earcelf.c:223 earclinux.c:279
-#: earclinux_nps.c:279 earcv2elf.c:207 earcv2elfx.c:207 earmelf.c:831
-#: earmelf_fbsd.c:831 earmelf_fuchsia.c:832 earmelf_haiku.c:832
-#: earmelf_linux.c:832 earmelf_linux_eabi.c:832 earmelf_linux_fdpiceabi.c:832
-#: earmelf_nacl.c:832 earmelf_nbsd.c:831 earmelf_phoenix.c:832
-#: earmelf_vxworks.c:867 earmelfb.c:831 earmelfb_fbsd.c:831
-#: earmelfb_fuchsia.c:832 earmelfb_linux.c:832 earmelfb_linux_eabi.c:832
+#: eaarch64linuxb.c:592 earcelf.c:223 earclinux.c:279 earclinux_nps.c:279
+#: earcv2elf.c:207 earcv2elfx.c:207 earmelf.c:831 earmelf_fbsd.c:831
+#: earmelf_fuchsia.c:832 earmelf_haiku.c:832 earmelf_linux.c:832
+#: earmelf_linux_eabi.c:832 earmelf_linux_fdpiceabi.c:832 earmelf_nacl.c:832
+#: earmelf_nbsd.c:831 earmelf_phoenix.c:832 earmelf_vxworks.c:867
+#: earmelfb.c:831 earmelfb_fbsd.c:831 earmelfb_fuchsia.c:832
+#: earmelfb_linux.c:832 earmelfb_linux_eabi.c:832
 #: earmelfb_linux_fdpiceabi.c:832 earmelfb_nacl.c:832 earmelfb_nbsd.c:831
 #: earmnto.c:806 eavr1.c:431 eavr2.c:431 eavr25.c:431 eavr3.c:431 eavr31.c:431
 #: eavr35.c:431 eavr4.c:431 eavr5.c:431 eavr51.c:431 eavr6.c:431
@@ -3690,41 +3602,41 @@ msgstr ""
 #: eavrxmega4.c:431 eavrxmega5.c:431 eavrxmega6.c:431 eavrxmega7.c:431
 #: ecriself.c:222 ecrislinux.c:254 ecskyelf.c:466 ecskyelf_linux.c:523
 #: ed10velf.c:207 eelf32_sparc.c:279 eelf32_sparc_sol2.c:411
-#: eelf32_sparc_vxworks.c:316 eelf32_spu.c:804 eelf32_tic6x_be.c:390
+#: eelf32_sparc_vxworks.c:316 eelf32_spu.c:940 eelf32_tic6x_be.c:390
 #: eelf32_tic6x_elf_be.c:390 eelf32_tic6x_elf_le.c:390 eelf32_tic6x_le.c:390
 #: eelf32_tic6x_linux_be.c:390 eelf32_tic6x_linux_le.c:390
 #: eelf32_x86_64.c:5414 eelf32am33lin.c:253 eelf32b4300.c:494 eelf32bfin.c:271
-#: eelf32bfinfd.c:296 eelf32bmip.c:494 eelf32bmipn32.c:508 eelf32briscv.c:361
-#: eelf32briscv_ilp32.c:361 eelf32briscv_ilp32f.c:361 eelf32bsmip.c:508
+#: eelf32bfinfd.c:296 eelf32bmip.c:494 eelf32bmipn32.c:508 eelf32briscv.c:347
+#: eelf32briscv_ilp32.c:347 eelf32briscv_ilp32f.c:347 eelf32bsmip.c:508
 #: eelf32btsmip.c:494 eelf32btsmip_fbsd.c:494 eelf32btsmipn32.c:494
 #: eelf32btsmipn32_fbsd.c:494 eelf32cr16.c:357 eelf32crx.c:244
 #: eelf32ebmip.c:494 eelf32ebmipvxworks.c:529 eelf32elmip.c:494
 #: eelf32elmipvxworks.c:529 eelf32epiphany.c:222 eelf32epiphany_4x4.c:209
 #: eelf32frvfd.c:278 eelf32ip2k.c:222 eelf32l4300.c:494 eelf32lm32.c:222
-#: eelf32lm32fd.c:278 eelf32lmip.c:494 eelf32loongarch.c:332 eelf32lppc.c:530
-#: eelf32lppclinux.c:530 eelf32lppcnto.c:530 eelf32lppcsim.c:530
-#: eelf32lr5900.c:463 eelf32lr5900n32.c:462 eelf32lriscv.c:361
-#: eelf32lriscv_ilp32.c:361 eelf32lriscv_ilp32f.c:361 eelf32lsmip.c:494
+#: eelf32lm32fd.c:278 eelf32lmip.c:494 eelf32loongarch.c:329 eelf32lppc.c:542
+#: eelf32lppclinux.c:542 eelf32lppcnto.c:542 eelf32lppcsim.c:542
+#: eelf32lr5900.c:463 eelf32lr5900n32.c:462 eelf32lriscv.c:347
+#: eelf32lriscv_ilp32.c:347 eelf32lriscv_ilp32f.c:347 eelf32lsmip.c:494
 #: eelf32ltsmip.c:494 eelf32ltsmip_fbsd.c:494 eelf32ltsmipn32.c:494
 #: eelf32ltsmipn32_fbsd.c:494 eelf32m32c.c:233 eelf32mb_linux.c:279
 #: eelf32mbel_linux.c:279 eelf32mcore.c:228 eelf32mep.c:207 eelf32metag.c:528
 #: eelf32microblaze.c:207 eelf32microblazeel.c:207 eelf32mipswindiss.c:437
-#: eelf32moxie.c:222 eelf32or1k.c:223 eelf32or1k_linux.c:279 eelf32ppc.c:530
-#: eelf32ppc_fbsd.c:530 eelf32ppchaiku.c:530 eelf32ppclinux.c:530
-#: eelf32ppcnto.c:530 eelf32ppcsim.c:530 eelf32ppcvxworks.c:504
-#: eelf32ppcwindiss.c:530 eelf32rl78.c:222 eelf32rx.c:250 eelf32rx_linux.c:235
+#: eelf32moxie.c:222 eelf32or1k.c:223 eelf32or1k_linux.c:279 eelf32ppc.c:542
+#: eelf32ppc_fbsd.c:542 eelf32ppchaiku.c:542 eelf32ppclinux.c:542
+#: eelf32ppcnto.c:542 eelf32ppcsim.c:542 eelf32ppcvxworks.c:516
+#: eelf32ppcwindiss.c:542 eelf32rl78.c:222 eelf32rx.c:250 eelf32rx_linux.c:235
 #: eelf32tilegx.c:279 eelf32tilegx_be.c:279 eelf32tilepro.c:279
 #: eelf32vax.c:253 eelf32visium.c:207 eelf32xstormy16.c:218
 #: eelf32xtensa.c:2192 eelf32z80.c:234 eelf64_aix.c:253 eelf64_ia64.c:310
 #: eelf64_ia64_fbsd.c:310 eelf64_s390.c:349 eelf64_sparc.c:279
 #: eelf64_sparc_fbsd.c:279 eelf64_sparc_sol2.c:411 eelf64alpha.c:372
 #: eelf64alpha_fbsd.c:372 eelf64alpha_nbsd.c:372 eelf64bmip.c:508
-#: eelf64bpf.c:207 eelf64briscv.c:361 eelf64briscv_lp64.c:361
-#: eelf64briscv_lp64f.c:361 eelf64btsmip.c:494 eelf64btsmip_fbsd.c:494
-#: eelf64hppa.c:223 eelf64loongarch.c:332 eelf64lppc.c:980
-#: eelf64lppc_fbsd.c:980 eelf64lriscv.c:361 eelf64lriscv_lp64.c:361
-#: eelf64lriscv_lp64f.c:361 eelf64ltsmip.c:494 eelf64ltsmip_fbsd.c:494
-#: eelf64mmix.c:364 eelf64ppc.c:980 eelf64ppc_fbsd.c:980 eelf64rdos.c:304
+#: eelf64bpf.c:207 eelf64briscv.c:347 eelf64briscv_lp64.c:347
+#: eelf64briscv_lp64f.c:347 eelf64btsmip.c:494 eelf64btsmip_fbsd.c:494
+#: eelf64hppa.c:223 eelf64loongarch.c:329 eelf64lppc.c:991
+#: eelf64lppc_fbsd.c:991 eelf64lriscv.c:347 eelf64lriscv_lp64.c:347
+#: eelf64lriscv_lp64f.c:347 eelf64ltsmip.c:494 eelf64ltsmip_fbsd.c:494
+#: eelf64mmix.c:364 eelf64ppc.c:991 eelf64ppc_fbsd.c:991 eelf64rdos.c:304
 #: eelf64tilegx.c:279 eelf64tilegx_be.c:279 eelf_i386.c:5036
 #: eelf_i386_be.c:277 eelf_i386_fbsd.c:313 eelf_i386_haiku.c:313
 #: eelf_i386_ldso.c:288 eelf_i386_sol2.c:445 eelf_i386_vxworks.c:340
@@ -3754,13 +3666,13 @@ msgstr ""
 #: eaarch64elf32.c:596 eaarch64elf32b.c:596 eaarch64elfb.c:596
 #: eaarch64fbsd.c:597 eaarch64fbsdb.c:597 eaarch64haiku.c:597
 #: eaarch64linux.c:597 eaarch64linux32.c:597 eaarch64linux32b.c:597
-#: eaarch64linuxb.c:597 eaarch64nto.c:694 earcelf.c:228 earclinux.c:284
-#: earclinux_nps.c:284 earcv2elf.c:212 earcv2elfx.c:212 earmelf.c:836
-#: earmelf_fbsd.c:836 earmelf_fuchsia.c:837 earmelf_haiku.c:837
-#: earmelf_linux.c:837 earmelf_linux_eabi.c:837 earmelf_linux_fdpiceabi.c:837
-#: earmelf_nacl.c:837 earmelf_nbsd.c:836 earmelf_phoenix.c:837
-#: earmelf_vxworks.c:872 earmelfb.c:836 earmelfb_fbsd.c:836
-#: earmelfb_fuchsia.c:837 earmelfb_linux.c:837 earmelfb_linux_eabi.c:837
+#: eaarch64linuxb.c:597 earcelf.c:228 earclinux.c:284 earclinux_nps.c:284
+#: earcv2elf.c:212 earcv2elfx.c:212 earmelf.c:836 earmelf_fbsd.c:836
+#: earmelf_fuchsia.c:837 earmelf_haiku.c:837 earmelf_linux.c:837
+#: earmelf_linux_eabi.c:837 earmelf_linux_fdpiceabi.c:837 earmelf_nacl.c:837
+#: earmelf_nbsd.c:836 earmelf_phoenix.c:837 earmelf_vxworks.c:872
+#: earmelfb.c:836 earmelfb_fbsd.c:836 earmelfb_fuchsia.c:837
+#: earmelfb_linux.c:837 earmelfb_linux_eabi.c:837
 #: earmelfb_linux_fdpiceabi.c:837 earmelfb_nacl.c:837 earmelfb_nbsd.c:836
 #: earmnto.c:811 eavr1.c:436 eavr2.c:436 eavr25.c:436 eavr3.c:436 eavr31.c:436
 #: eavr35.c:436 eavr4.c:436 eavr5.c:436 eavr51.c:436 eavr6.c:436
@@ -3768,41 +3680,41 @@ msgstr ""
 #: eavrxmega4.c:436 eavrxmega5.c:436 eavrxmega6.c:436 eavrxmega7.c:436
 #: ecriself.c:227 ecrislinux.c:259 ecskyelf.c:471 ecskyelf_linux.c:528
 #: ed10velf.c:212 eelf32_sparc.c:284 eelf32_sparc_sol2.c:416
-#: eelf32_sparc_vxworks.c:321 eelf32_spu.c:809 eelf32_tic6x_be.c:395
+#: eelf32_sparc_vxworks.c:321 eelf32_spu.c:945 eelf32_tic6x_be.c:395
 #: eelf32_tic6x_elf_be.c:395 eelf32_tic6x_elf_le.c:395 eelf32_tic6x_le.c:395
 #: eelf32_tic6x_linux_be.c:395 eelf32_tic6x_linux_le.c:395
 #: eelf32_x86_64.c:5419 eelf32am33lin.c:258 eelf32b4300.c:499 eelf32bfin.c:276
-#: eelf32bfinfd.c:301 eelf32bmip.c:499 eelf32bmipn32.c:513 eelf32briscv.c:366
-#: eelf32briscv_ilp32.c:366 eelf32briscv_ilp32f.c:366 eelf32bsmip.c:513
+#: eelf32bfinfd.c:301 eelf32bmip.c:499 eelf32bmipn32.c:513 eelf32briscv.c:352
+#: eelf32briscv_ilp32.c:352 eelf32briscv_ilp32f.c:352 eelf32bsmip.c:513
 #: eelf32btsmip.c:499 eelf32btsmip_fbsd.c:499 eelf32btsmipn32.c:499
 #: eelf32btsmipn32_fbsd.c:499 eelf32cr16.c:362 eelf32crx.c:249
 #: eelf32ebmip.c:499 eelf32ebmipvxworks.c:534 eelf32elmip.c:499
 #: eelf32elmipvxworks.c:534 eelf32epiphany.c:227 eelf32epiphany_4x4.c:214
 #: eelf32frvfd.c:283 eelf32ip2k.c:227 eelf32l4300.c:499 eelf32lm32.c:227
-#: eelf32lm32fd.c:283 eelf32lmip.c:499 eelf32loongarch.c:337 eelf32lppc.c:535
-#: eelf32lppclinux.c:535 eelf32lppcnto.c:535 eelf32lppcsim.c:535
-#: eelf32lr5900.c:468 eelf32lr5900n32.c:467 eelf32lriscv.c:366
-#: eelf32lriscv_ilp32.c:366 eelf32lriscv_ilp32f.c:366 eelf32lsmip.c:499
+#: eelf32lm32fd.c:283 eelf32lmip.c:499 eelf32loongarch.c:334 eelf32lppc.c:547
+#: eelf32lppclinux.c:547 eelf32lppcnto.c:547 eelf32lppcsim.c:547
+#: eelf32lr5900.c:468 eelf32lr5900n32.c:467 eelf32lriscv.c:352
+#: eelf32lriscv_ilp32.c:352 eelf32lriscv_ilp32f.c:352 eelf32lsmip.c:499
 #: eelf32ltsmip.c:499 eelf32ltsmip_fbsd.c:499 eelf32ltsmipn32.c:499
 #: eelf32ltsmipn32_fbsd.c:499 eelf32m32c.c:238 eelf32mb_linux.c:284
 #: eelf32mbel_linux.c:284 eelf32mcore.c:233 eelf32mep.c:212 eelf32metag.c:533
 #: eelf32microblaze.c:212 eelf32microblazeel.c:212 eelf32mipswindiss.c:442
-#: eelf32moxie.c:227 eelf32or1k.c:228 eelf32or1k_linux.c:284 eelf32ppc.c:535
-#: eelf32ppc_fbsd.c:535 eelf32ppchaiku.c:535 eelf32ppclinux.c:535
-#: eelf32ppcnto.c:535 eelf32ppcsim.c:535 eelf32ppcvxworks.c:509
-#: eelf32ppcwindiss.c:535 eelf32rl78.c:227 eelf32rx.c:255 eelf32rx_linux.c:240
+#: eelf32moxie.c:227 eelf32or1k.c:228 eelf32or1k_linux.c:284 eelf32ppc.c:547
+#: eelf32ppc_fbsd.c:547 eelf32ppchaiku.c:547 eelf32ppclinux.c:547
+#: eelf32ppcnto.c:547 eelf32ppcsim.c:547 eelf32ppcvxworks.c:521
+#: eelf32ppcwindiss.c:547 eelf32rl78.c:227 eelf32rx.c:255 eelf32rx_linux.c:240
 #: eelf32tilegx.c:284 eelf32tilegx_be.c:284 eelf32tilepro.c:284
 #: eelf32vax.c:258 eelf32visium.c:212 eelf32xstormy16.c:223
 #: eelf32xtensa.c:2197 eelf32z80.c:239 eelf64_aix.c:258 eelf64_ia64.c:315
 #: eelf64_ia64_fbsd.c:315 eelf64_s390.c:354 eelf64_sparc.c:284
 #: eelf64_sparc_fbsd.c:284 eelf64_sparc_sol2.c:416 eelf64alpha.c:377
 #: eelf64alpha_fbsd.c:377 eelf64alpha_nbsd.c:377 eelf64bmip.c:513
-#: eelf64bpf.c:212 eelf64briscv.c:366 eelf64briscv_lp64.c:366
-#: eelf64briscv_lp64f.c:366 eelf64btsmip.c:499 eelf64btsmip_fbsd.c:499
-#: eelf64hppa.c:228 eelf64loongarch.c:337 eelf64lppc.c:985
-#: eelf64lppc_fbsd.c:985 eelf64lriscv.c:366 eelf64lriscv_lp64.c:366
-#: eelf64lriscv_lp64f.c:366 eelf64ltsmip.c:499 eelf64ltsmip_fbsd.c:499
-#: eelf64mmix.c:369 eelf64ppc.c:985 eelf64ppc_fbsd.c:985 eelf64rdos.c:309
+#: eelf64bpf.c:212 eelf64briscv.c:352 eelf64briscv_lp64.c:352
+#: eelf64briscv_lp64f.c:352 eelf64btsmip.c:499 eelf64btsmip_fbsd.c:499
+#: eelf64hppa.c:228 eelf64loongarch.c:334 eelf64lppc.c:996
+#: eelf64lppc_fbsd.c:996 eelf64lriscv.c:352 eelf64lriscv_lp64.c:352
+#: eelf64lriscv_lp64f.c:352 eelf64ltsmip.c:499 eelf64ltsmip_fbsd.c:499
+#: eelf64mmix.c:369 eelf64ppc.c:996 eelf64ppc_fbsd.c:996 eelf64rdos.c:309
 #: eelf64tilegx.c:284 eelf64tilegx_be.c:284 eelf_i386.c:5041
 #: eelf_i386_be.c:282 eelf_i386_fbsd.c:318 eelf_i386_haiku.c:318
 #: eelf_i386_ldso.c:293 eelf_i386_sol2.c:450 eelf_i386_vxworks.c:345
@@ -3831,44 +3743,43 @@ msgstr ""
 #: eaarch64elf32.c:647 eaarch64elf32b.c:647 eaarch64elfb.c:647
 #: eaarch64fbsd.c:648 eaarch64fbsdb.c:648 eaarch64haiku.c:648
 #: eaarch64linux.c:648 eaarch64linux32.c:648 eaarch64linux32b.c:648
-#: eaarch64linuxb.c:648 eaarch64nto.c:745 earcelf.c:279 earclinux.c:335
-#: earclinux_nps.c:335 earmelf.c:887 earmelf_fbsd.c:887 earmelf_fuchsia.c:888
-#: earmelf_haiku.c:888 earmelf_linux.c:888 earmelf_linux_eabi.c:888
-#: earmelf_linux_fdpiceabi.c:888 earmelf_nacl.c:888 earmelf_nbsd.c:887
-#: earmelf_phoenix.c:888 earmelf_vxworks.c:923 earmelfb.c:887
-#: earmelfb_fbsd.c:887 earmelfb_fuchsia.c:888 earmelfb_linux.c:888
-#: earmelfb_linux_eabi.c:888 earmelfb_linux_fdpiceabi.c:888
-#: earmelfb_nacl.c:888 earmelfb_nbsd.c:887 earmnto.c:862 ecrislinux.c:310
-#: ecskyelf_linux.c:579 eelf32_sparc.c:335 eelf32_sparc_sol2.c:467
-#: eelf32_sparc_vxworks.c:372 eelf32_tic6x_be.c:446 eelf32_tic6x_elf_be.c:446
-#: eelf32_tic6x_elf_le.c:446 eelf32_tic6x_le.c:446 eelf32_tic6x_linux_be.c:446
-#: eelf32_tic6x_linux_le.c:446 eelf32_x86_64.c:5470 eelf32am33lin.c:309
-#: eelf32b4300.c:550 eelf32bfin.c:327 eelf32bfinfd.c:352 eelf32bmip.c:550
-#: eelf32bmipn32.c:564 eelf32briscv.c:417 eelf32briscv_ilp32.c:417
-#: eelf32briscv_ilp32f.c:417 eelf32bsmip.c:564 eelf32btsmip.c:550
-#: eelf32btsmip_fbsd.c:550 eelf32btsmipn32.c:550 eelf32btsmipn32_fbsd.c:550
-#: eelf32ebmip.c:550 eelf32ebmipvxworks.c:585 eelf32elmip.c:550
-#: eelf32elmipvxworks.c:585 eelf32frvfd.c:334 eelf32l4300.c:550
-#: eelf32lm32fd.c:334 eelf32lmip.c:550 eelf32loongarch.c:388 eelf32lppc.c:586
-#: eelf32lppclinux.c:586 eelf32lppcnto.c:586 eelf32lppcsim.c:586
-#: eelf32lriscv.c:417 eelf32lriscv_ilp32.c:417 eelf32lriscv_ilp32f.c:417
-#: eelf32lsmip.c:550 eelf32ltsmip.c:550 eelf32ltsmip_fbsd.c:550
-#: eelf32ltsmipn32.c:550 eelf32ltsmipn32_fbsd.c:550 eelf32mb_linux.c:335
-#: eelf32mbel_linux.c:335 eelf32metag.c:584 eelf32or1k_linux.c:335
-#: eelf32ppc.c:586 eelf32ppc_fbsd.c:586 eelf32ppchaiku.c:586
-#: eelf32ppclinux.c:586 eelf32ppcnto.c:586 eelf32ppcsim.c:586
-#: eelf32ppcvxworks.c:560 eelf32ppcwindiss.c:586 eelf32tilegx.c:335
-#: eelf32tilegx_be.c:335 eelf32tilepro.c:335 eelf32vax.c:309
-#: eelf32xtensa.c:2248 eelf64_aix.c:309 eelf64_ia64.c:366
+#: eaarch64linuxb.c:648 earcelf.c:279 earclinux.c:335 earclinux_nps.c:335
+#: earmelf.c:887 earmelf_fbsd.c:887 earmelf_fuchsia.c:888 earmelf_haiku.c:888
+#: earmelf_linux.c:888 earmelf_linux_eabi.c:888 earmelf_linux_fdpiceabi.c:888
+#: earmelf_nacl.c:888 earmelf_nbsd.c:887 earmelf_phoenix.c:888
+#: earmelf_vxworks.c:923 earmelfb.c:887 earmelfb_fbsd.c:887
+#: earmelfb_fuchsia.c:888 earmelfb_linux.c:888 earmelfb_linux_eabi.c:888
+#: earmelfb_linux_fdpiceabi.c:888 earmelfb_nacl.c:888 earmelfb_nbsd.c:887
+#: earmnto.c:862 ecrislinux.c:310 ecskyelf_linux.c:579 eelf32_sparc.c:335
+#: eelf32_sparc_sol2.c:467 eelf32_sparc_vxworks.c:372 eelf32_tic6x_be.c:446
+#: eelf32_tic6x_elf_be.c:446 eelf32_tic6x_elf_le.c:446 eelf32_tic6x_le.c:446
+#: eelf32_tic6x_linux_be.c:446 eelf32_tic6x_linux_le.c:446
+#: eelf32_x86_64.c:5470 eelf32am33lin.c:309 eelf32b4300.c:550 eelf32bfin.c:327
+#: eelf32bfinfd.c:352 eelf32bmip.c:550 eelf32bmipn32.c:564 eelf32briscv.c:403
+#: eelf32briscv_ilp32.c:403 eelf32briscv_ilp32f.c:403 eelf32bsmip.c:564
+#: eelf32btsmip.c:550 eelf32btsmip_fbsd.c:550 eelf32btsmipn32.c:550
+#: eelf32btsmipn32_fbsd.c:550 eelf32ebmip.c:550 eelf32ebmipvxworks.c:585
+#: eelf32elmip.c:550 eelf32elmipvxworks.c:585 eelf32frvfd.c:334
+#: eelf32l4300.c:550 eelf32lm32fd.c:334 eelf32lmip.c:550 eelf32loongarch.c:385
+#: eelf32lppc.c:598 eelf32lppclinux.c:598 eelf32lppcnto.c:598
+#: eelf32lppcsim.c:598 eelf32lriscv.c:403 eelf32lriscv_ilp32.c:403
+#: eelf32lriscv_ilp32f.c:403 eelf32lsmip.c:550 eelf32ltsmip.c:550
+#: eelf32ltsmip_fbsd.c:550 eelf32ltsmipn32.c:550 eelf32ltsmipn32_fbsd.c:550
+#: eelf32mb_linux.c:335 eelf32mbel_linux.c:335 eelf32metag.c:584
+#: eelf32or1k_linux.c:335 eelf32ppc.c:598 eelf32ppc_fbsd.c:598
+#: eelf32ppchaiku.c:598 eelf32ppclinux.c:598 eelf32ppcnto.c:598
+#: eelf32ppcsim.c:598 eelf32ppcvxworks.c:572 eelf32ppcwindiss.c:598
+#: eelf32tilegx.c:335 eelf32tilegx_be.c:335 eelf32tilepro.c:335
+#: eelf32vax.c:309 eelf32xtensa.c:2248 eelf64_aix.c:309 eelf64_ia64.c:366
 #: eelf64_ia64_fbsd.c:366 eelf64_s390.c:405 eelf64_sparc.c:335
 #: eelf64_sparc_fbsd.c:335 eelf64_sparc_sol2.c:467 eelf64alpha.c:428
 #: eelf64alpha_fbsd.c:428 eelf64alpha_nbsd.c:428 eelf64bmip.c:564
-#: eelf64briscv.c:417 eelf64briscv_lp64.c:417 eelf64briscv_lp64f.c:417
+#: eelf64briscv.c:403 eelf64briscv_lp64.c:403 eelf64briscv_lp64f.c:403
 #: eelf64btsmip.c:550 eelf64btsmip_fbsd.c:550 eelf64hppa.c:279
-#: eelf64loongarch.c:388 eelf64lppc.c:1036 eelf64lppc_fbsd.c:1036
-#: eelf64lriscv.c:417 eelf64lriscv_lp64.c:417 eelf64lriscv_lp64f.c:417
+#: eelf64loongarch.c:385 eelf64lppc.c:1047 eelf64lppc_fbsd.c:1047
+#: eelf64lriscv.c:403 eelf64lriscv_lp64.c:403 eelf64lriscv_lp64f.c:403
 #: eelf64ltsmip.c:550 eelf64ltsmip_fbsd.c:550 eelf64mmix.c:420
-#: eelf64ppc.c:1036 eelf64ppc_fbsd.c:1036 eelf64rdos.c:360 eelf64tilegx.c:335
+#: eelf64ppc.c:1047 eelf64ppc_fbsd.c:1047 eelf64rdos.c:360 eelf64tilegx.c:335
 #: eelf64tilegx_be.c:335 eelf_i386.c:5092 eelf_i386_be.c:333
 #: eelf_i386_fbsd.c:369 eelf_i386_haiku.c:369 eelf_i386_ldso.c:344
 #: eelf_i386_sol2.c:501 eelf_i386_vxworks.c:396 eelf_iamcu.c:369
@@ -3890,13 +3801,13 @@ msgstr ""
 #: eaarch64elf32.c:664 eaarch64elf32b.c:664 eaarch64elfb.c:664
 #: eaarch64fbsd.c:665 eaarch64fbsdb.c:665 eaarch64haiku.c:665
 #: eaarch64linux.c:665 eaarch64linux32.c:665 eaarch64linux32b.c:665
-#: eaarch64linuxb.c:665 eaarch64nto.c:762 earcelf.c:296 earclinux.c:352
-#: earclinux_nps.c:352 earcv2elf.c:229 earcv2elfx.c:229 earmelf.c:904
-#: earmelf_fbsd.c:904 earmelf_fuchsia.c:905 earmelf_haiku.c:905
-#: earmelf_linux.c:905 earmelf_linux_eabi.c:905 earmelf_linux_fdpiceabi.c:905
-#: earmelf_nacl.c:905 earmelf_nbsd.c:904 earmelf_phoenix.c:905
-#: earmelf_vxworks.c:940 earmelfb.c:904 earmelfb_fbsd.c:904
-#: earmelfb_fuchsia.c:905 earmelfb_linux.c:905 earmelfb_linux_eabi.c:905
+#: eaarch64linuxb.c:665 earcelf.c:296 earclinux.c:352 earclinux_nps.c:352
+#: earcv2elf.c:229 earcv2elfx.c:229 earmelf.c:904 earmelf_fbsd.c:904
+#: earmelf_fuchsia.c:905 earmelf_haiku.c:905 earmelf_linux.c:905
+#: earmelf_linux_eabi.c:905 earmelf_linux_fdpiceabi.c:905 earmelf_nacl.c:905
+#: earmelf_nbsd.c:904 earmelf_phoenix.c:905 earmelf_vxworks.c:940
+#: earmelfb.c:904 earmelfb_fbsd.c:904 earmelfb_fuchsia.c:905
+#: earmelfb_linux.c:905 earmelfb_linux_eabi.c:905
 #: earmelfb_linux_fdpiceabi.c:905 earmelfb_nacl.c:905 earmelfb_nbsd.c:904
 #: earmnto.c:879 eavr1.c:453 eavr2.c:453 eavr25.c:453 eavr3.c:453 eavr31.c:453
 #: eavr35.c:453 eavr4.c:453 eavr5.c:453 eavr51.c:453 eavr6.c:453
@@ -3904,41 +3815,41 @@ msgstr ""
 #: eavrxmega4.c:453 eavrxmega5.c:453 eavrxmega6.c:453 eavrxmega7.c:453
 #: ecriself.c:244 ecrislinux.c:327 ecskyelf.c:488 ecskyelf_linux.c:596
 #: ed10velf.c:229 eelf32_sparc.c:352 eelf32_sparc_sol2.c:484
-#: eelf32_sparc_vxworks.c:389 eelf32_spu.c:826 eelf32_tic6x_be.c:463
+#: eelf32_sparc_vxworks.c:389 eelf32_spu.c:962 eelf32_tic6x_be.c:463
 #: eelf32_tic6x_elf_be.c:463 eelf32_tic6x_elf_le.c:463 eelf32_tic6x_le.c:463
 #: eelf32_tic6x_linux_be.c:463 eelf32_tic6x_linux_le.c:463
 #: eelf32_x86_64.c:5487 eelf32am33lin.c:326 eelf32b4300.c:567 eelf32bfin.c:344
-#: eelf32bfinfd.c:369 eelf32bmip.c:567 eelf32bmipn32.c:581 eelf32briscv.c:434
-#: eelf32briscv_ilp32.c:434 eelf32briscv_ilp32f.c:434 eelf32bsmip.c:581
+#: eelf32bfinfd.c:369 eelf32bmip.c:567 eelf32bmipn32.c:581 eelf32briscv.c:420
+#: eelf32briscv_ilp32.c:420 eelf32briscv_ilp32f.c:420 eelf32bsmip.c:581
 #: eelf32btsmip.c:567 eelf32btsmip_fbsd.c:567 eelf32btsmipn32.c:567
 #: eelf32btsmipn32_fbsd.c:567 eelf32cr16.c:379 eelf32crx.c:266
 #: eelf32ebmip.c:567 eelf32ebmipvxworks.c:602 eelf32elmip.c:567
 #: eelf32elmipvxworks.c:602 eelf32epiphany.c:244 eelf32epiphany_4x4.c:231
 #: eelf32frvfd.c:351 eelf32ip2k.c:244 eelf32l4300.c:567 eelf32lm32.c:244
-#: eelf32lm32fd.c:351 eelf32lmip.c:567 eelf32loongarch.c:405 eelf32lppc.c:603
-#: eelf32lppclinux.c:603 eelf32lppcnto.c:603 eelf32lppcsim.c:603
-#: eelf32lr5900.c:485 eelf32lr5900n32.c:484 eelf32lriscv.c:434
-#: eelf32lriscv_ilp32.c:434 eelf32lriscv_ilp32f.c:434 eelf32lsmip.c:567
+#: eelf32lm32fd.c:351 eelf32lmip.c:567 eelf32loongarch.c:402 eelf32lppc.c:615
+#: eelf32lppclinux.c:615 eelf32lppcnto.c:615 eelf32lppcsim.c:615
+#: eelf32lr5900.c:485 eelf32lr5900n32.c:484 eelf32lriscv.c:420
+#: eelf32lriscv_ilp32.c:420 eelf32lriscv_ilp32f.c:420 eelf32lsmip.c:567
 #: eelf32ltsmip.c:567 eelf32ltsmip_fbsd.c:567 eelf32ltsmipn32.c:567
 #: eelf32ltsmipn32_fbsd.c:567 eelf32m32c.c:255 eelf32mb_linux.c:352
 #: eelf32mbel_linux.c:352 eelf32mcore.c:250 eelf32mep.c:229 eelf32metag.c:601
 #: eelf32microblaze.c:229 eelf32microblazeel.c:229 eelf32mipswindiss.c:459
-#: eelf32moxie.c:244 eelf32or1k.c:245 eelf32or1k_linux.c:352 eelf32ppc.c:603
-#: eelf32ppc_fbsd.c:603 eelf32ppchaiku.c:603 eelf32ppclinux.c:603
-#: eelf32ppcnto.c:603 eelf32ppcsim.c:603 eelf32ppcvxworks.c:577
-#: eelf32ppcwindiss.c:603 eelf32rl78.c:244 eelf32rx.c:272 eelf32rx_linux.c:257
+#: eelf32moxie.c:244 eelf32or1k.c:245 eelf32or1k_linux.c:352 eelf32ppc.c:615
+#: eelf32ppc_fbsd.c:615 eelf32ppchaiku.c:615 eelf32ppclinux.c:615
+#: eelf32ppcnto.c:615 eelf32ppcsim.c:615 eelf32ppcvxworks.c:589
+#: eelf32ppcwindiss.c:615 eelf32rl78.c:244 eelf32rx.c:272 eelf32rx_linux.c:257
 #: eelf32tilegx.c:352 eelf32tilegx_be.c:352 eelf32tilepro.c:352
 #: eelf32vax.c:326 eelf32visium.c:229 eelf32xstormy16.c:240
 #: eelf32xtensa.c:2265 eelf32z80.c:256 eelf64_aix.c:326 eelf64_ia64.c:383
 #: eelf64_ia64_fbsd.c:383 eelf64_s390.c:422 eelf64_sparc.c:352
 #: eelf64_sparc_fbsd.c:352 eelf64_sparc_sol2.c:484 eelf64alpha.c:445
 #: eelf64alpha_fbsd.c:445 eelf64alpha_nbsd.c:445 eelf64bmip.c:581
-#: eelf64bpf.c:229 eelf64briscv.c:434 eelf64briscv_lp64.c:434
-#: eelf64briscv_lp64f.c:434 eelf64btsmip.c:567 eelf64btsmip_fbsd.c:567
-#: eelf64hppa.c:296 eelf64loongarch.c:405 eelf64lppc.c:1053
-#: eelf64lppc_fbsd.c:1053 eelf64lriscv.c:434 eelf64lriscv_lp64.c:434
-#: eelf64lriscv_lp64f.c:434 eelf64ltsmip.c:567 eelf64ltsmip_fbsd.c:567
-#: eelf64mmix.c:437 eelf64ppc.c:1053 eelf64ppc_fbsd.c:1053 eelf64rdos.c:377
+#: eelf64bpf.c:229 eelf64briscv.c:420 eelf64briscv_lp64.c:420
+#: eelf64briscv_lp64f.c:420 eelf64btsmip.c:567 eelf64btsmip_fbsd.c:567
+#: eelf64hppa.c:296 eelf64loongarch.c:402 eelf64lppc.c:1064
+#: eelf64lppc_fbsd.c:1064 eelf64lriscv.c:420 eelf64lriscv_lp64.c:420
+#: eelf64lriscv_lp64f.c:420 eelf64ltsmip.c:567 eelf64ltsmip_fbsd.c:567
+#: eelf64mmix.c:437 eelf64ppc.c:1064 eelf64ppc_fbsd.c:1064 eelf64rdos.c:377
 #: eelf64tilegx.c:352 eelf64tilegx_be.c:352 eelf_i386.c:5109
 #: eelf_i386_be.c:350 eelf_i386_fbsd.c:386 eelf_i386_haiku.c:386
 #: eelf_i386_ldso.c:361 eelf_i386_sol2.c:518 eelf_i386_vxworks.c:413
@@ -3967,13 +3878,13 @@ msgstr ""
 #: eaarch64elf32.c:674 eaarch64elf32b.c:674 eaarch64elfb.c:674
 #: eaarch64fbsd.c:675 eaarch64fbsdb.c:675 eaarch64haiku.c:675
 #: eaarch64linux.c:675 eaarch64linux32.c:675 eaarch64linux32b.c:675
-#: eaarch64linuxb.c:675 eaarch64nto.c:772 earcelf.c:306 earclinux.c:362
-#: earclinux_nps.c:362 earcv2elf.c:239 earcv2elfx.c:239 earmelf.c:914
-#: earmelf_fbsd.c:914 earmelf_fuchsia.c:915 earmelf_haiku.c:915
-#: earmelf_linux.c:915 earmelf_linux_eabi.c:915 earmelf_linux_fdpiceabi.c:915
-#: earmelf_nacl.c:915 earmelf_nbsd.c:914 earmelf_phoenix.c:915
-#: earmelf_vxworks.c:950 earmelfb.c:914 earmelfb_fbsd.c:914
-#: earmelfb_fuchsia.c:915 earmelfb_linux.c:915 earmelfb_linux_eabi.c:915
+#: eaarch64linuxb.c:675 earcelf.c:306 earclinux.c:362 earclinux_nps.c:362
+#: earcv2elf.c:239 earcv2elfx.c:239 earmelf.c:914 earmelf_fbsd.c:914
+#: earmelf_fuchsia.c:915 earmelf_haiku.c:915 earmelf_linux.c:915
+#: earmelf_linux_eabi.c:915 earmelf_linux_fdpiceabi.c:915 earmelf_nacl.c:915
+#: earmelf_nbsd.c:914 earmelf_phoenix.c:915 earmelf_vxworks.c:950
+#: earmelfb.c:914 earmelfb_fbsd.c:914 earmelfb_fuchsia.c:915
+#: earmelfb_linux.c:915 earmelfb_linux_eabi.c:915
 #: earmelfb_linux_fdpiceabi.c:915 earmelfb_nacl.c:915 earmelfb_nbsd.c:914
 #: earmnto.c:889 eavr1.c:463 eavr2.c:463 eavr25.c:463 eavr3.c:463 eavr31.c:463
 #: eavr35.c:463 eavr4.c:463 eavr5.c:463 eavr51.c:463 eavr6.c:463
@@ -3981,41 +3892,41 @@ msgstr ""
 #: eavrxmega4.c:463 eavrxmega5.c:463 eavrxmega6.c:463 eavrxmega7.c:463
 #: ecriself.c:254 ecrislinux.c:337 ecskyelf.c:498 ecskyelf_linux.c:606
 #: ed10velf.c:239 eelf32_sparc.c:362 eelf32_sparc_sol2.c:494
-#: eelf32_sparc_vxworks.c:399 eelf32_spu.c:836 eelf32_tic6x_be.c:473
+#: eelf32_sparc_vxworks.c:399 eelf32_spu.c:972 eelf32_tic6x_be.c:473
 #: eelf32_tic6x_elf_be.c:473 eelf32_tic6x_elf_le.c:473 eelf32_tic6x_le.c:473
 #: eelf32_tic6x_linux_be.c:473 eelf32_tic6x_linux_le.c:473
 #: eelf32_x86_64.c:5497 eelf32am33lin.c:336 eelf32b4300.c:577 eelf32bfin.c:354
-#: eelf32bfinfd.c:379 eelf32bmip.c:577 eelf32bmipn32.c:591 eelf32briscv.c:444
-#: eelf32briscv_ilp32.c:444 eelf32briscv_ilp32f.c:444 eelf32bsmip.c:591
+#: eelf32bfinfd.c:379 eelf32bmip.c:577 eelf32bmipn32.c:591 eelf32briscv.c:430
+#: eelf32briscv_ilp32.c:430 eelf32briscv_ilp32f.c:430 eelf32bsmip.c:591
 #: eelf32btsmip.c:577 eelf32btsmip_fbsd.c:577 eelf32btsmipn32.c:577
 #: eelf32btsmipn32_fbsd.c:577 eelf32cr16.c:389 eelf32crx.c:276
 #: eelf32ebmip.c:577 eelf32ebmipvxworks.c:612 eelf32elmip.c:577
 #: eelf32elmipvxworks.c:612 eelf32epiphany.c:254 eelf32epiphany_4x4.c:241
 #: eelf32frvfd.c:361 eelf32ip2k.c:254 eelf32l4300.c:577 eelf32lm32.c:254
-#: eelf32lm32fd.c:361 eelf32lmip.c:577 eelf32loongarch.c:415 eelf32lppc.c:613
-#: eelf32lppclinux.c:613 eelf32lppcnto.c:613 eelf32lppcsim.c:613
-#: eelf32lr5900.c:495 eelf32lr5900n32.c:494 eelf32lriscv.c:444
-#: eelf32lriscv_ilp32.c:444 eelf32lriscv_ilp32f.c:444 eelf32lsmip.c:577
+#: eelf32lm32fd.c:361 eelf32lmip.c:577 eelf32loongarch.c:412 eelf32lppc.c:625
+#: eelf32lppclinux.c:625 eelf32lppcnto.c:625 eelf32lppcsim.c:625
+#: eelf32lr5900.c:495 eelf32lr5900n32.c:494 eelf32lriscv.c:430
+#: eelf32lriscv_ilp32.c:430 eelf32lriscv_ilp32f.c:430 eelf32lsmip.c:577
 #: eelf32ltsmip.c:577 eelf32ltsmip_fbsd.c:577 eelf32ltsmipn32.c:577
 #: eelf32ltsmipn32_fbsd.c:577 eelf32m32c.c:265 eelf32mb_linux.c:362
 #: eelf32mbel_linux.c:362 eelf32mcore.c:260 eelf32mep.c:239 eelf32metag.c:611
 #: eelf32microblaze.c:239 eelf32microblazeel.c:239 eelf32mipswindiss.c:469
-#: eelf32moxie.c:254 eelf32or1k.c:255 eelf32or1k_linux.c:362 eelf32ppc.c:613
-#: eelf32ppc_fbsd.c:613 eelf32ppchaiku.c:613 eelf32ppclinux.c:613
-#: eelf32ppcnto.c:613 eelf32ppcsim.c:613 eelf32ppcvxworks.c:587
-#: eelf32ppcwindiss.c:613 eelf32rl78.c:254 eelf32rx.c:282 eelf32rx_linux.c:267
+#: eelf32moxie.c:254 eelf32or1k.c:255 eelf32or1k_linux.c:362 eelf32ppc.c:625
+#: eelf32ppc_fbsd.c:625 eelf32ppchaiku.c:625 eelf32ppclinux.c:625
+#: eelf32ppcnto.c:625 eelf32ppcsim.c:625 eelf32ppcvxworks.c:599
+#: eelf32ppcwindiss.c:625 eelf32rl78.c:254 eelf32rx.c:282 eelf32rx_linux.c:267
 #: eelf32tilegx.c:362 eelf32tilegx_be.c:362 eelf32tilepro.c:362
 #: eelf32vax.c:336 eelf32visium.c:239 eelf32xstormy16.c:250
 #: eelf32xtensa.c:2275 eelf32z80.c:266 eelf64_aix.c:336 eelf64_ia64.c:393
 #: eelf64_ia64_fbsd.c:393 eelf64_s390.c:432 eelf64_sparc.c:362
 #: eelf64_sparc_fbsd.c:362 eelf64_sparc_sol2.c:494 eelf64alpha.c:455
 #: eelf64alpha_fbsd.c:455 eelf64alpha_nbsd.c:455 eelf64bmip.c:591
-#: eelf64bpf.c:239 eelf64briscv.c:444 eelf64briscv_lp64.c:444
-#: eelf64briscv_lp64f.c:444 eelf64btsmip.c:577 eelf64btsmip_fbsd.c:577
-#: eelf64hppa.c:306 eelf64loongarch.c:415 eelf64lppc.c:1063
-#: eelf64lppc_fbsd.c:1063 eelf64lriscv.c:444 eelf64lriscv_lp64.c:444
-#: eelf64lriscv_lp64f.c:444 eelf64ltsmip.c:577 eelf64ltsmip_fbsd.c:577
-#: eelf64mmix.c:447 eelf64ppc.c:1063 eelf64ppc_fbsd.c:1063 eelf64rdos.c:387
+#: eelf64bpf.c:239 eelf64briscv.c:430 eelf64briscv_lp64.c:430
+#: eelf64briscv_lp64f.c:430 eelf64btsmip.c:577 eelf64btsmip_fbsd.c:577
+#: eelf64hppa.c:306 eelf64loongarch.c:412 eelf64lppc.c:1074
+#: eelf64lppc_fbsd.c:1074 eelf64lriscv.c:430 eelf64lriscv_lp64.c:430
+#: eelf64lriscv_lp64f.c:430 eelf64ltsmip.c:577 eelf64ltsmip_fbsd.c:577
+#: eelf64mmix.c:447 eelf64ppc.c:1074 eelf64ppc_fbsd.c:1074 eelf64rdos.c:387
 #: eelf64tilegx.c:362 eelf64tilegx_be.c:362 eelf_i386.c:5119
 #: eelf_i386_be.c:360 eelf_i386_fbsd.c:396 eelf_i386_haiku.c:396
 #: eelf_i386_ldso.c:371 eelf_i386_sol2.c:528 eelf_i386_vxworks.c:423
@@ -4044,13 +3955,13 @@ msgstr ""
 #: eaarch64elf32.c:683 eaarch64elf32b.c:683 eaarch64elfb.c:683
 #: eaarch64fbsd.c:684 eaarch64fbsdb.c:684 eaarch64haiku.c:684
 #: eaarch64linux.c:684 eaarch64linux32.c:684 eaarch64linux32b.c:684
-#: eaarch64linuxb.c:684 eaarch64nto.c:781 eaarch64nto.c:955 earcelf.c:315
-#: earclinux.c:371 earclinux_nps.c:371 earcv2elf.c:248 earcv2elfx.c:248
-#: earmelf.c:923 earmelf_fbsd.c:923 earmelf_fuchsia.c:924 earmelf_haiku.c:924
-#: earmelf_linux.c:924 earmelf_linux_eabi.c:924 earmelf_linux_fdpiceabi.c:924
-#: earmelf_nacl.c:924 earmelf_nbsd.c:923 earmelf_phoenix.c:924
-#: earmelf_vxworks.c:959 earmelfb.c:923 earmelfb_fbsd.c:923
-#: earmelfb_fuchsia.c:924 earmelfb_linux.c:924 earmelfb_linux_eabi.c:924
+#: eaarch64linuxb.c:684 earcelf.c:315 earclinux.c:371 earclinux_nps.c:371
+#: earcv2elf.c:248 earcv2elfx.c:248 earmelf.c:923 earmelf_fbsd.c:923
+#: earmelf_fuchsia.c:924 earmelf_haiku.c:924 earmelf_linux.c:924
+#: earmelf_linux_eabi.c:924 earmelf_linux_fdpiceabi.c:924 earmelf_nacl.c:924
+#: earmelf_nbsd.c:923 earmelf_phoenix.c:924 earmelf_vxworks.c:959
+#: earmelfb.c:923 earmelfb_fbsd.c:923 earmelfb_fuchsia.c:924
+#: earmelfb_linux.c:924 earmelfb_linux_eabi.c:924
 #: earmelfb_linux_fdpiceabi.c:924 earmelfb_nacl.c:924 earmelfb_nbsd.c:923
 #: earmnto.c:898 eavr1.c:472 eavr2.c:472 eavr25.c:472 eavr3.c:472 eavr31.c:472
 #: eavr35.c:472 eavr4.c:472 eavr5.c:472 eavr51.c:472 eavr6.c:472
@@ -4058,41 +3969,41 @@ msgstr ""
 #: eavrxmega4.c:472 eavrxmega5.c:472 eavrxmega6.c:472 eavrxmega7.c:472
 #: ecriself.c:263 ecrislinux.c:346 ecskyelf.c:507 ecskyelf_linux.c:615
 #: ed10velf.c:248 eelf32_sparc.c:371 eelf32_sparc_sol2.c:503
-#: eelf32_sparc_vxworks.c:408 eelf32_spu.c:845 eelf32_tic6x_be.c:482
+#: eelf32_sparc_vxworks.c:408 eelf32_spu.c:981 eelf32_tic6x_be.c:482
 #: eelf32_tic6x_elf_be.c:482 eelf32_tic6x_elf_le.c:482 eelf32_tic6x_le.c:482
 #: eelf32_tic6x_linux_be.c:482 eelf32_tic6x_linux_le.c:482
 #: eelf32_x86_64.c:5506 eelf32am33lin.c:345 eelf32b4300.c:586 eelf32bfin.c:363
-#: eelf32bfinfd.c:388 eelf32bmip.c:586 eelf32bmipn32.c:600 eelf32briscv.c:453
-#: eelf32briscv_ilp32.c:453 eelf32briscv_ilp32f.c:453 eelf32bsmip.c:600
+#: eelf32bfinfd.c:388 eelf32bmip.c:586 eelf32bmipn32.c:600 eelf32briscv.c:439
+#: eelf32briscv_ilp32.c:439 eelf32briscv_ilp32f.c:439 eelf32bsmip.c:600
 #: eelf32btsmip.c:586 eelf32btsmip_fbsd.c:586 eelf32btsmipn32.c:586
 #: eelf32btsmipn32_fbsd.c:586 eelf32cr16.c:398 eelf32crx.c:285
 #: eelf32ebmip.c:586 eelf32ebmipvxworks.c:621 eelf32elmip.c:586
 #: eelf32elmipvxworks.c:621 eelf32epiphany.c:263 eelf32epiphany_4x4.c:250
 #: eelf32frvfd.c:370 eelf32ip2k.c:263 eelf32l4300.c:586 eelf32lm32.c:263
-#: eelf32lm32fd.c:370 eelf32lmip.c:586 eelf32loongarch.c:424 eelf32lppc.c:622
-#: eelf32lppclinux.c:622 eelf32lppcnto.c:622 eelf32lppcsim.c:622
-#: eelf32lr5900.c:504 eelf32lr5900n32.c:503 eelf32lriscv.c:453
-#: eelf32lriscv_ilp32.c:453 eelf32lriscv_ilp32f.c:453 eelf32lsmip.c:586
+#: eelf32lm32fd.c:370 eelf32lmip.c:586 eelf32loongarch.c:421 eelf32lppc.c:634
+#: eelf32lppclinux.c:634 eelf32lppcnto.c:634 eelf32lppcsim.c:634
+#: eelf32lr5900.c:504 eelf32lr5900n32.c:503 eelf32lriscv.c:439
+#: eelf32lriscv_ilp32.c:439 eelf32lriscv_ilp32f.c:439 eelf32lsmip.c:586
 #: eelf32ltsmip.c:586 eelf32ltsmip_fbsd.c:586 eelf32ltsmipn32.c:586
 #: eelf32ltsmipn32_fbsd.c:586 eelf32m32c.c:274 eelf32mb_linux.c:371
 #: eelf32mbel_linux.c:371 eelf32mcore.c:269 eelf32mep.c:248 eelf32metag.c:620
 #: eelf32microblaze.c:248 eelf32microblazeel.c:248 eelf32mipswindiss.c:478
-#: eelf32moxie.c:263 eelf32or1k.c:264 eelf32or1k_linux.c:371 eelf32ppc.c:622
-#: eelf32ppc_fbsd.c:622 eelf32ppchaiku.c:622 eelf32ppclinux.c:622
-#: eelf32ppcnto.c:622 eelf32ppcsim.c:622 eelf32ppcvxworks.c:596
-#: eelf32ppcwindiss.c:622 eelf32rl78.c:263 eelf32rx.c:291 eelf32rx_linux.c:276
+#: eelf32moxie.c:263 eelf32or1k.c:264 eelf32or1k_linux.c:371 eelf32ppc.c:634
+#: eelf32ppc_fbsd.c:634 eelf32ppchaiku.c:634 eelf32ppclinux.c:634
+#: eelf32ppcnto.c:634 eelf32ppcsim.c:634 eelf32ppcvxworks.c:608
+#: eelf32ppcwindiss.c:634 eelf32rl78.c:263 eelf32rx.c:291 eelf32rx_linux.c:276
 #: eelf32tilegx.c:371 eelf32tilegx_be.c:371 eelf32tilepro.c:371
 #: eelf32vax.c:345 eelf32visium.c:248 eelf32xstormy16.c:259
 #: eelf32xtensa.c:2284 eelf32z80.c:275 eelf64_aix.c:345 eelf64_ia64.c:402
 #: eelf64_ia64_fbsd.c:402 eelf64_s390.c:441 eelf64_sparc.c:371
 #: eelf64_sparc_fbsd.c:371 eelf64_sparc_sol2.c:503 eelf64alpha.c:464
 #: eelf64alpha_fbsd.c:464 eelf64alpha_nbsd.c:464 eelf64bmip.c:600
-#: eelf64bpf.c:248 eelf64briscv.c:453 eelf64briscv_lp64.c:453
-#: eelf64briscv_lp64f.c:453 eelf64btsmip.c:586 eelf64btsmip_fbsd.c:586
-#: eelf64hppa.c:315 eelf64loongarch.c:424 eelf64lppc.c:1072
-#: eelf64lppc_fbsd.c:1072 eelf64lriscv.c:453 eelf64lriscv_lp64.c:453
-#: eelf64lriscv_lp64f.c:453 eelf64ltsmip.c:586 eelf64ltsmip_fbsd.c:586
-#: eelf64mmix.c:456 eelf64ppc.c:1072 eelf64ppc_fbsd.c:1072 eelf64rdos.c:396
+#: eelf64bpf.c:248 eelf64briscv.c:439 eelf64briscv_lp64.c:439
+#: eelf64briscv_lp64f.c:439 eelf64btsmip.c:586 eelf64btsmip_fbsd.c:586
+#: eelf64hppa.c:315 eelf64loongarch.c:421 eelf64lppc.c:1083
+#: eelf64lppc_fbsd.c:1083 eelf64lriscv.c:439 eelf64lriscv_lp64.c:439
+#: eelf64lriscv_lp64f.c:439 eelf64ltsmip.c:586 eelf64ltsmip_fbsd.c:586
+#: eelf64mmix.c:456 eelf64ppc.c:1083 eelf64ppc_fbsd.c:1083 eelf64rdos.c:396
 #: eelf64tilegx.c:371 eelf64tilegx_be.c:371 eelf_i386.c:5128
 #: eelf_i386_be.c:369 eelf_i386_fbsd.c:405 eelf_i386_haiku.c:405
 #: eelf_i386_ldso.c:380 eelf_i386_sol2.c:537 eelf_i386_vxworks.c:432
@@ -4121,13 +4032,13 @@ msgstr ""
 #: eaarch64elf32.c:722 eaarch64elf32b.c:722 eaarch64elfb.c:722
 #: eaarch64fbsd.c:723 eaarch64fbsdb.c:723 eaarch64haiku.c:723
 #: eaarch64linux.c:723 eaarch64linux32.c:723 eaarch64linux32b.c:723
-#: eaarch64linuxb.c:723 eaarch64nto.c:820 earcelf.c:354 earclinux.c:410
-#: earclinux_nps.c:410 earcv2elf.c:287 earcv2elfx.c:287 earmelf.c:962
-#: earmelf_fbsd.c:962 earmelf_fuchsia.c:963 earmelf_haiku.c:963
-#: earmelf_linux.c:963 earmelf_linux_eabi.c:963 earmelf_linux_fdpiceabi.c:963
-#: earmelf_nacl.c:963 earmelf_nbsd.c:962 earmelf_phoenix.c:963
-#: earmelf_vxworks.c:998 earmelfb.c:962 earmelfb_fbsd.c:962
-#: earmelfb_fuchsia.c:963 earmelfb_linux.c:963 earmelfb_linux_eabi.c:963
+#: eaarch64linuxb.c:723 earcelf.c:354 earclinux.c:410 earclinux_nps.c:410
+#: earcv2elf.c:287 earcv2elfx.c:287 earmelf.c:962 earmelf_fbsd.c:962
+#: earmelf_fuchsia.c:963 earmelf_haiku.c:963 earmelf_linux.c:963
+#: earmelf_linux_eabi.c:963 earmelf_linux_fdpiceabi.c:963 earmelf_nacl.c:963
+#: earmelf_nbsd.c:962 earmelf_phoenix.c:963 earmelf_vxworks.c:998
+#: earmelfb.c:962 earmelfb_fbsd.c:962 earmelfb_fuchsia.c:963
+#: earmelfb_linux.c:963 earmelfb_linux_eabi.c:963
 #: earmelfb_linux_fdpiceabi.c:963 earmelfb_nacl.c:963 earmelfb_nbsd.c:962
 #: earmnto.c:937 eavr1.c:511 eavr2.c:511 eavr25.c:511 eavr3.c:511 eavr31.c:511
 #: eavr35.c:511 eavr4.c:511 eavr5.c:511 eavr51.c:511 eavr6.c:511
@@ -4135,41 +4046,41 @@ msgstr ""
 #: eavrxmega4.c:511 eavrxmega5.c:511 eavrxmega6.c:511 eavrxmega7.c:511
 #: ecriself.c:302 ecrislinux.c:385 ecskyelf.c:546 ecskyelf_linux.c:654
 #: ed10velf.c:287 eelf32_sparc.c:410 eelf32_sparc_sol2.c:542
-#: eelf32_sparc_vxworks.c:447 eelf32_spu.c:884 eelf32_tic6x_be.c:521
+#: eelf32_sparc_vxworks.c:447 eelf32_spu.c:1020 eelf32_tic6x_be.c:521
 #: eelf32_tic6x_elf_be.c:521 eelf32_tic6x_elf_le.c:521 eelf32_tic6x_le.c:521
 #: eelf32_tic6x_linux_be.c:521 eelf32_tic6x_linux_le.c:521
 #: eelf32_x86_64.c:5545 eelf32am33lin.c:384 eelf32b4300.c:625 eelf32bfin.c:402
-#: eelf32bfinfd.c:427 eelf32bmip.c:625 eelf32bmipn32.c:639 eelf32briscv.c:492
-#: eelf32briscv_ilp32.c:492 eelf32briscv_ilp32f.c:492 eelf32bsmip.c:639
+#: eelf32bfinfd.c:427 eelf32bmip.c:625 eelf32bmipn32.c:639 eelf32briscv.c:478
+#: eelf32briscv_ilp32.c:478 eelf32briscv_ilp32f.c:478 eelf32bsmip.c:639
 #: eelf32btsmip.c:625 eelf32btsmip_fbsd.c:625 eelf32btsmipn32.c:625
 #: eelf32btsmipn32_fbsd.c:625 eelf32cr16.c:437 eelf32crx.c:324
 #: eelf32ebmip.c:625 eelf32ebmipvxworks.c:660 eelf32elmip.c:625
 #: eelf32elmipvxworks.c:660 eelf32epiphany.c:302 eelf32epiphany_4x4.c:289
 #: eelf32frvfd.c:409 eelf32ip2k.c:302 eelf32l4300.c:625 eelf32lm32.c:302
-#: eelf32lm32fd.c:409 eelf32lmip.c:625 eelf32loongarch.c:463 eelf32lppc.c:661
-#: eelf32lppclinux.c:661 eelf32lppcnto.c:661 eelf32lppcsim.c:661
-#: eelf32lr5900.c:543 eelf32lr5900n32.c:542 eelf32lriscv.c:492
-#: eelf32lriscv_ilp32.c:492 eelf32lriscv_ilp32f.c:492 eelf32lsmip.c:625
+#: eelf32lm32fd.c:409 eelf32lmip.c:625 eelf32loongarch.c:460 eelf32lppc.c:673
+#: eelf32lppclinux.c:673 eelf32lppcnto.c:673 eelf32lppcsim.c:673
+#: eelf32lr5900.c:543 eelf32lr5900n32.c:542 eelf32lriscv.c:478
+#: eelf32lriscv_ilp32.c:478 eelf32lriscv_ilp32f.c:478 eelf32lsmip.c:625
 #: eelf32ltsmip.c:625 eelf32ltsmip_fbsd.c:625 eelf32ltsmipn32.c:625
 #: eelf32ltsmipn32_fbsd.c:625 eelf32m32c.c:313 eelf32mb_linux.c:410
 #: eelf32mbel_linux.c:410 eelf32mcore.c:308 eelf32mep.c:287 eelf32metag.c:659
 #: eelf32microblaze.c:287 eelf32microblazeel.c:287 eelf32mipswindiss.c:517
-#: eelf32moxie.c:302 eelf32or1k.c:303 eelf32or1k_linux.c:410 eelf32ppc.c:661
-#: eelf32ppc_fbsd.c:661 eelf32ppchaiku.c:661 eelf32ppclinux.c:661
-#: eelf32ppcnto.c:661 eelf32ppcsim.c:661 eelf32ppcvxworks.c:635
-#: eelf32ppcwindiss.c:661 eelf32rl78.c:302 eelf32rx.c:330 eelf32rx_linux.c:315
+#: eelf32moxie.c:302 eelf32or1k.c:303 eelf32or1k_linux.c:410 eelf32ppc.c:673
+#: eelf32ppc_fbsd.c:673 eelf32ppchaiku.c:673 eelf32ppclinux.c:673
+#: eelf32ppcnto.c:673 eelf32ppcsim.c:673 eelf32ppcvxworks.c:647
+#: eelf32ppcwindiss.c:673 eelf32rl78.c:302 eelf32rx.c:330 eelf32rx_linux.c:315
 #: eelf32tilegx.c:410 eelf32tilegx_be.c:410 eelf32tilepro.c:410
 #: eelf32vax.c:384 eelf32visium.c:287 eelf32xstormy16.c:298
 #: eelf32xtensa.c:2323 eelf32z80.c:314 eelf64_aix.c:384 eelf64_ia64.c:441
 #: eelf64_ia64_fbsd.c:441 eelf64_s390.c:480 eelf64_sparc.c:410
 #: eelf64_sparc_fbsd.c:410 eelf64_sparc_sol2.c:542 eelf64alpha.c:503
 #: eelf64alpha_fbsd.c:503 eelf64alpha_nbsd.c:503 eelf64bmip.c:639
-#: eelf64bpf.c:287 eelf64briscv.c:492 eelf64briscv_lp64.c:492
-#: eelf64briscv_lp64f.c:492 eelf64btsmip.c:625 eelf64btsmip_fbsd.c:625
-#: eelf64hppa.c:354 eelf64loongarch.c:463 eelf64lppc.c:1111
-#: eelf64lppc_fbsd.c:1111 eelf64lriscv.c:492 eelf64lriscv_lp64.c:492
-#: eelf64lriscv_lp64f.c:492 eelf64ltsmip.c:625 eelf64ltsmip_fbsd.c:625
-#: eelf64mmix.c:495 eelf64ppc.c:1111 eelf64ppc_fbsd.c:1111 eelf64rdos.c:435
+#: eelf64bpf.c:287 eelf64briscv.c:478 eelf64briscv_lp64.c:478
+#: eelf64briscv_lp64f.c:478 eelf64btsmip.c:625 eelf64btsmip_fbsd.c:625
+#: eelf64hppa.c:354 eelf64loongarch.c:460 eelf64lppc.c:1122
+#: eelf64lppc_fbsd.c:1122 eelf64lriscv.c:478 eelf64lriscv_lp64.c:478
+#: eelf64lriscv_lp64f.c:478 eelf64ltsmip.c:625 eelf64ltsmip_fbsd.c:625
+#: eelf64mmix.c:495 eelf64ppc.c:1122 eelf64ppc_fbsd.c:1122 eelf64rdos.c:435
 #: eelf64tilegx.c:410 eelf64tilegx_be.c:410 eelf_i386.c:5167
 #: eelf_i386_be.c:408 eelf_i386_fbsd.c:444 eelf_i386_haiku.c:444
 #: eelf_i386_ldso.c:419 eelf_i386_sol2.c:576 eelf_i386_vxworks.c:471
@@ -4196,97 +4107,132 @@ msgid ""
 "protected"
 msgstr ""
 
-#: eaarch64cloudabi.c:800 eaarch64cloudabib.c:800 eaarch64elf.c:795
-#: eaarch64elf32.c:795 eaarch64elf32b.c:795 eaarch64elfb.c:795
-#: eaarch64fbsd.c:800 eaarch64fbsdb.c:800 eaarch64haiku.c:800
-#: eaarch64linux.c:800 eaarch64linux32.c:800 eaarch64linux32b.c:800
-#: eaarch64linuxb.c:800 eaarch64nto.c:897 earcelf.c:418 earclinux.c:478
-#: earclinux_nps.c:478 earcv2elf.c:296 earcv2elfx.c:296 earmelf.c:1026
-#: earmelf_fbsd.c:1026 earmelf_fuchsia.c:1031 earmelf_haiku.c:1031
-#: earmelf_linux.c:1031 earmelf_linux_eabi.c:1031
-#: earmelf_linux_fdpiceabi.c:1031 earmelf_nacl.c:1031 earmelf_nbsd.c:1026
-#: earmelf_phoenix.c:1031 earmelf_vxworks.c:1062 earmelfb.c:1026
-#: earmelfb_fbsd.c:1026 earmelfb_fuchsia.c:1031 earmelfb_linux.c:1031
-#: earmelfb_linux_eabi.c:1031 earmelfb_linux_fdpiceabi.c:1031
-#: earmelfb_nacl.c:1031 earmelfb_nbsd.c:1026 earmnto.c:1001 eavr1.c:520
-#: eavr2.c:520 eavr25.c:520 eavr3.c:520 eavr31.c:520 eavr35.c:520 eavr4.c:520
-#: eavr5.c:520 eavr51.c:520 eavr6.c:520 eavrtiny.c:520 eavrxmega1.c:520
-#: eavrxmega2.c:520 eavrxmega3.c:520 eavrxmega4.c:520 eavrxmega5.c:520
-#: eavrxmega6.c:520 eavrxmega7.c:520 ecriself.c:311 ecrislinux.c:453
-#: ecskyelf.c:555 ecskyelf_linux.c:722 ed10velf.c:296 eelf32_sparc.c:478
-#: eelf32_sparc_sol2.c:610 eelf32_sparc_vxworks.c:515 eelf32_spu.c:893
-#: eelf32_tic6x_be.c:585 eelf32_tic6x_elf_be.c:585 eelf32_tic6x_elf_le.c:585
-#: eelf32_tic6x_le.c:585 eelf32_tic6x_linux_be.c:585
-#: eelf32_tic6x_linux_le.c:585 eelf32_x86_64.c:5705 eelf32am33lin.c:448
-#: eelf32b4300.c:693 eelf32bfin.c:466 eelf32bfinfd.c:491 eelf32bmip.c:693
-#: eelf32bmipn32.c:707 eelf32briscv.c:560 eelf32briscv_ilp32.c:560
-#: eelf32briscv_ilp32f.c:560 eelf32bsmip.c:707 eelf32btsmip.c:693
-#: eelf32btsmip_fbsd.c:693 eelf32btsmipn32.c:693 eelf32btsmipn32_fbsd.c:693
-#: eelf32cr16.c:446 eelf32crx.c:333 eelf32ebmip.c:693 eelf32ebmipvxworks.c:728
-#: eelf32elmip.c:693 eelf32elmipvxworks.c:728 eelf32epiphany.c:311
-#: eelf32epiphany_4x4.c:298 eelf32frvfd.c:473 eelf32ip2k.c:311
-#: eelf32l4300.c:693 eelf32lm32.c:311 eelf32lm32fd.c:473 eelf32lmip.c:693
-#: eelf32loongarch.c:531 eelf32lppc.c:735 eelf32lppclinux.c:735
-#: eelf32lppcnto.c:735 eelf32lppcsim.c:735 eelf32lr5900.c:552
-#: eelf32lr5900n32.c:551 eelf32lriscv.c:560 eelf32lriscv_ilp32.c:560
-#: eelf32lriscv_ilp32f.c:560 eelf32lsmip.c:693 eelf32ltsmip.c:693
-#: eelf32ltsmip_fbsd.c:693 eelf32ltsmipn32.c:693 eelf32ltsmipn32_fbsd.c:693
-#: eelf32m32c.c:322 eelf32mb_linux.c:478 eelf32mbel_linux.c:478
-#: eelf32mcore.c:317 eelf32mep.c:296 eelf32metag.c:727 eelf32microblaze.c:296
-#: eelf32microblazeel.c:296 eelf32mipswindiss.c:526 eelf32moxie.c:311
-#: eelf32or1k.c:312 eelf32or1k_linux.c:478 eelf32ppc.c:735
-#: eelf32ppc_fbsd.c:735 eelf32ppchaiku.c:735 eelf32ppclinux.c:735
-#: eelf32ppcnto.c:735 eelf32ppcsim.c:735 eelf32ppcvxworks.c:709
-#: eelf32ppcwindiss.c:735 eelf32rl78.c:311 eelf32rx.c:339 eelf32rx_linux.c:324
-#: eelf32tilegx.c:478 eelf32tilegx_be.c:478 eelf32tilepro.c:478
-#: eelf32vax.c:448 eelf32visium.c:296 eelf32xstormy16.c:307
-#: eelf32xtensa.c:2391 eelf32z80.c:323 eelf64_aix.c:448 eelf64_ia64.c:505
-#: eelf64_ia64_fbsd.c:505 eelf64_s390.c:548 eelf64_sparc.c:478
-#: eelf64_sparc_fbsd.c:478 eelf64_sparc_sol2.c:610 eelf64alpha.c:571
-#: eelf64alpha_fbsd.c:571 eelf64alpha_nbsd.c:571 eelf64bmip.c:707
-#: eelf64bpf.c:296 eelf64briscv.c:560 eelf64briscv_lp64.c:560
-#: eelf64briscv_lp64f.c:560 eelf64btsmip.c:693 eelf64btsmip_fbsd.c:693
-#: eelf64hppa.c:418 eelf64loongarch.c:531 eelf64lppc.c:1190
-#: eelf64lppc_fbsd.c:1190 eelf64lriscv.c:560 eelf64lriscv_lp64.c:560
-#: eelf64lriscv_lp64f.c:560 eelf64ltsmip.c:693 eelf64ltsmip_fbsd.c:693
-#: eelf64mmix.c:559 eelf64ppc.c:1190 eelf64ppc_fbsd.c:1190 eelf64rdos.c:503
-#: eelf64tilegx.c:478 eelf64tilegx_be.c:478 eelf_i386.c:5324
-#: eelf_i386_be.c:519 eelf_i386_fbsd.c:601 eelf_i386_haiku.c:601
-#: eelf_i386_ldso.c:534 eelf_i386_sol2.c:691 eelf_i386_vxworks.c:586
-#: eelf_iamcu.c:559 eelf_mipsel_haiku.c:693 eelf_s390.c:478 eelf_x86_64.c:5755
-#: eelf_x86_64_cloudabi.c:654 eelf_x86_64_fbsd.c:654 eelf_x86_64_haiku.c:654
-#: eelf_x86_64_sol2.c:786 eh8300elf.c:311 eh8300elf_linux.c:311
-#: eh8300helf.c:311 eh8300helf_linux.c:311 eh8300hnelf.c:311 eh8300self.c:311
-#: eh8300self_linux.c:311 eh8300snelf.c:311 eh8300sxelf.c:311
-#: eh8300sxelf_linux.c:311 eh8300sxnelf.c:311 ehppa64linux.c:448
-#: ehppaelf.c:579 ehppalinux.c:761 ehppanbsd.c:761 ehppaobsd.c:761
-#: ei386lynx.c:463 ei386moss.c:463 ei386nto.c:463 em32relf.c:311
-#: em32relf_linux.c:473 em32rlelf.c:311 em32rlelf_linux.c:473
-#: em68hc11elf.c:581 em68hc11elfb.c:581 em68hc12elf.c:581 em68hc12elfb.c:581
-#: em68kelf.c:635 em68kelfnbsd.c:635 emn10300.c:448 ends32belf.c:432
-#: ends32belf16m.c:432 ends32belf_linux.c:565 ends32elf.c:432
-#: ends32elf16m.c:432 ends32elf_linux.c:565 enios2elf.c:598 enios2linux.c:739
-#: epruelf.c:317 escore3_elf.c:470 escore7_elf.c:470 eshelf.c:448
-#: eshelf_fd.c:478 eshelf_linux.c:478 eshelf_nbsd.c:448 eshelf_nto.c:448
-#: eshelf_uclinux.c:448 eshelf_vxworks.c:485 eshlelf.c:448 eshlelf_fd.c:478
-#: eshlelf_linux.c:478 eshlelf_nbsd.c:448 eshlelf_nto.c:448
-#: eshlelf_vxworks.c:485 ev850.c:343 ev850_rh850.c:343
+#: eaarch64cloudabi.c:796 eaarch64cloudabib.c:796 eaarch64elf.c:791
+#: eaarch64elf32.c:791 eaarch64elf32b.c:791 eaarch64elfb.c:791
+#: eaarch64fbsd.c:796 eaarch64fbsdb.c:796 eaarch64haiku.c:796
+#: eaarch64linux.c:796 eaarch64linux32.c:796 eaarch64linux32b.c:796
+#: eaarch64linuxb.c:796 earcelf.c:414 earclinux.c:474 earclinux_nps.c:474
+#: earcv2elf.c:292 earcv2elfx.c:292 earmelf.c:1022 earmelf_fbsd.c:1022
+#: earmelf_fuchsia.c:1027 earmelf_haiku.c:1027 earmelf_linux.c:1027
+#: earmelf_linux_eabi.c:1027 earmelf_linux_fdpiceabi.c:1027
+#: earmelf_nacl.c:1027 earmelf_nbsd.c:1022 earmelf_phoenix.c:1027
+#: earmelf_vxworks.c:1058 earmelfb.c:1022 earmelfb_fbsd.c:1022
+#: earmelfb_fuchsia.c:1027 earmelfb_linux.c:1027 earmelfb_linux_eabi.c:1027
+#: earmelfb_linux_fdpiceabi.c:1027 earmelfb_nacl.c:1027 earmelfb_nbsd.c:1022
+#: earmnto.c:997 eavr1.c:516 eavr2.c:516 eavr25.c:516 eavr3.c:516 eavr31.c:516
+#: eavr35.c:516 eavr4.c:516 eavr5.c:516 eavr51.c:516 eavr6.c:516
+#: eavrtiny.c:516 eavrxmega1.c:516 eavrxmega2.c:516 eavrxmega3.c:516
+#: eavrxmega4.c:516 eavrxmega5.c:516 eavrxmega6.c:516 eavrxmega7.c:516
+#: ecriself.c:307 ecrislinux.c:449 ecskyelf.c:551 ecskyelf_linux.c:718
+#: ed10velf.c:292 eelf32_sparc.c:474 eelf32_sparc_sol2.c:606
+#: eelf32_sparc_vxworks.c:511 eelf32_spu.c:1025 eelf32_tic6x_be.c:581
+#: eelf32_tic6x_elf_be.c:581 eelf32_tic6x_elf_le.c:581 eelf32_tic6x_le.c:581
+#: eelf32_tic6x_linux_be.c:581 eelf32_tic6x_linux_le.c:581
+#: eelf32_x86_64.c:5701 eelf32am33lin.c:444 eelf32b4300.c:689 eelf32bfin.c:462
+#: eelf32bfinfd.c:487 eelf32bmip.c:689 eelf32bmipn32.c:703 eelf32briscv.c:542
+#: eelf32briscv_ilp32.c:542 eelf32briscv_ilp32f.c:542 eelf32bsmip.c:703
+#: eelf32btsmip.c:689 eelf32btsmip_fbsd.c:689 eelf32btsmipn32.c:689
+#: eelf32btsmipn32_fbsd.c:689 eelf32cr16.c:442 eelf32crx.c:329
+#: eelf32ebmip.c:689 eelf32ebmipvxworks.c:724 eelf32elmip.c:689
+#: eelf32elmipvxworks.c:724 eelf32epiphany.c:307 eelf32epiphany_4x4.c:294
+#: eelf32frvfd.c:469 eelf32ip2k.c:307 eelf32l4300.c:689 eelf32lm32.c:307
+#: eelf32lm32fd.c:469 eelf32lmip.c:689 eelf32loongarch.c:524 eelf32lppc.c:743
+#: eelf32lppclinux.c:743 eelf32lppcnto.c:743 eelf32lppcsim.c:743
+#: eelf32lr5900.c:548 eelf32lr5900n32.c:547 eelf32lriscv.c:542
+#: eelf32lriscv_ilp32.c:542 eelf32lriscv_ilp32f.c:542 eelf32lsmip.c:689
+#: eelf32ltsmip.c:689 eelf32ltsmip_fbsd.c:689 eelf32ltsmipn32.c:689
+#: eelf32ltsmipn32_fbsd.c:689 eelf32m32c.c:318 eelf32mb_linux.c:474
+#: eelf32mbel_linux.c:474 eelf32mcore.c:313 eelf32mep.c:292 eelf32metag.c:723
+#: eelf32microblaze.c:292 eelf32microblazeel.c:292 eelf32mipswindiss.c:522
+#: eelf32moxie.c:307 eelf32or1k.c:308 eelf32or1k_linux.c:474 eelf32ppc.c:743
+#: eelf32ppc_fbsd.c:743 eelf32ppchaiku.c:743 eelf32ppclinux.c:743
+#: eelf32ppcnto.c:743 eelf32ppcsim.c:743 eelf32ppcvxworks.c:717
+#: eelf32ppcwindiss.c:743 eelf32rl78.c:307 eelf32rx.c:335 eelf32rx_linux.c:320
+#: eelf32tilegx.c:474 eelf32tilegx_be.c:474 eelf32tilepro.c:474
+#: eelf32vax.c:444 eelf32visium.c:292 eelf32xstormy16.c:303
+#: eelf32xtensa.c:2387 eelf32z80.c:319 eelf64_aix.c:444 eelf64_ia64.c:501
+#: eelf64_ia64_fbsd.c:501 eelf64_s390.c:544 eelf64_sparc.c:474
+#: eelf64_sparc_fbsd.c:474 eelf64_sparc_sol2.c:606 eelf64alpha.c:567
+#: eelf64alpha_fbsd.c:567 eelf64alpha_nbsd.c:567 eelf64bmip.c:703
+#: eelf64bpf.c:292 eelf64briscv.c:542 eelf64briscv_lp64.c:542
+#: eelf64briscv_lp64f.c:542 eelf64btsmip.c:689 eelf64btsmip_fbsd.c:689
+#: eelf64hppa.c:414 eelf64loongarch.c:524 eelf64lppc.c:1197
+#: eelf64lppc_fbsd.c:1197 eelf64lriscv.c:542 eelf64lriscv_lp64.c:542
+#: eelf64lriscv_lp64f.c:542 eelf64ltsmip.c:689 eelf64ltsmip_fbsd.c:689
+#: eelf64mmix.c:555 eelf64ppc.c:1197 eelf64ppc_fbsd.c:1197 eelf64rdos.c:499
+#: eelf64tilegx.c:474 eelf64tilegx_be.c:474 eelf_i386.c:5320
+#: eelf_i386_be.c:515 eelf_i386_fbsd.c:597 eelf_i386_haiku.c:597
+#: eelf_i386_ldso.c:530 eelf_i386_sol2.c:687 eelf_i386_vxworks.c:582
+#: eelf_iamcu.c:555 eelf_mipsel_haiku.c:689 eelf_s390.c:474 eelf_x86_64.c:5751
+#: eelf_x86_64_cloudabi.c:650 eelf_x86_64_fbsd.c:650 eelf_x86_64_haiku.c:650
+#: eelf_x86_64_sol2.c:782 eh8300elf.c:307 eh8300elf_linux.c:307
+#: eh8300helf.c:307 eh8300helf_linux.c:307 eh8300hnelf.c:307 eh8300self.c:307
+#: eh8300self_linux.c:307 eh8300snelf.c:307 eh8300sxelf.c:307
+#: eh8300sxelf_linux.c:307 eh8300sxnelf.c:307 ehppa64linux.c:444
+#: ehppaelf.c:575 ehppalinux.c:757 ehppanbsd.c:757 ehppaobsd.c:757
+#: ei386lynx.c:459 ei386moss.c:459 ei386nto.c:459 em32relf.c:307
+#: em32relf_linux.c:469 em32rlelf.c:307 em32rlelf_linux.c:469
+#: em68hc11elf.c:577 em68hc11elfb.c:577 em68hc12elf.c:577 em68hc12elfb.c:577
+#: em68kelf.c:631 em68kelfnbsd.c:631 emn10300.c:444 ends32belf.c:428
+#: ends32belf16m.c:428 ends32belf_linux.c:561 ends32elf.c:428
+#: ends32elf16m.c:428 ends32elf_linux.c:561 enios2elf.c:594 enios2linux.c:735
+#: epruelf.c:313 escore3_elf.c:466 escore7_elf.c:466 eshelf.c:444
+#: eshelf_fd.c:474 eshelf_linux.c:474 eshelf_nbsd.c:444 eshelf_nto.c:444
+#: eshelf_uclinux.c:444 eshelf_vxworks.c:481 eshlelf.c:444 eshlelf_fd.c:474
+#: eshlelf_linux.c:474 eshlelf_nbsd.c:444 eshlelf_nto.c:444
+#: eshlelf_vxworks.c:481 ev850.c:339 ev850_rh850.c:339
 msgid "%P: warning: -z %s ignored\n"
 msgstr ""
 
-#: eaarch64cloudabi.c:834 eaarch64cloudabib.c:834 eaarch64elf.c:829
-#: eaarch64elf32.c:829 eaarch64elf32b.c:829 eaarch64elfb.c:829
-#: eaarch64fbsd.c:834 eaarch64fbsdb.c:834 eaarch64haiku.c:834
-#: eaarch64linux.c:834 eaarch64linux32.c:834 eaarch64linux32b.c:834
-#: eaarch64linuxb.c:834 eaarch64nto.c:931
+#: eaarch64cloudabi.c:830 eaarch64cloudabib.c:830 eaarch64elf.c:825
+#: eaarch64elf32.c:825 eaarch64elf32b.c:825 eaarch64elfb.c:825
+#: eaarch64fbsd.c:830 eaarch64fbsdb.c:830 eaarch64haiku.c:830
+#: eaarch64linux.c:830 eaarch64linux32.c:830 eaarch64linux32b.c:830
+#: eaarch64linuxb.c:830
 msgid "%P: error: unrecognized option for --fix-cortex-a53-843419: %s\n"
 msgstr ""
 
+#: eaarch64cloudabi.c:859 eaarch64cloudabib.c:859 eaarch64elf.c:854
+#: eaarch64elf32.c:854 eaarch64elf32b.c:854 eaarch64elfb.c:854
+#: eaarch64fbsd.c:859 eaarch64fbsdb.c:859 eaarch64haiku.c:859
+#: eaarch64linux.c:859 eaarch64linux32.c:859 eaarch64linux32b.c:859
+#: eaarch64linuxb.c:859 earmelf.c:1159 earmelf_fbsd.c:1159
+#: earmelf_fuchsia.c:1164 earmelf_haiku.c:1164 earmelf_linux.c:1164
+#: earmelf_linux_eabi.c:1164 earmelf_linux_fdpiceabi.c:1164
+#: earmelf_nacl.c:1164 earmelf_nbsd.c:1159 earmelf_phoenix.c:1164
+#: earmelf_vxworks.c:1199 earmelfb.c:1159 earmelfb_fbsd.c:1159
+#: earmelfb_fuchsia.c:1164 earmelfb_linux.c:1164 earmelfb_linux_eabi.c:1164
+#: earmelfb_linux_fdpiceabi.c:1164 earmelfb_nacl.c:1164 earmelfb_nbsd.c:1159
+#: earmnto.c:1134
+#, c-format
+msgid ""
+"  --no-enum-size-warning      Don't warn about objects with incompatible\n"
+"                                enum sizes\n"
+msgstr ""
+
+#: eaarch64cloudabi.c:861 eaarch64cloudabib.c:861 eaarch64elf.c:856
+#: eaarch64elf32.c:856 eaarch64elf32b.c:856 eaarch64elfb.c:856
+#: eaarch64fbsd.c:861 eaarch64fbsdb.c:861 eaarch64haiku.c:861
+#: eaarch64linux.c:861 eaarch64linux32.c:861 eaarch64linux32b.c:861
+#: eaarch64linuxb.c:861 earmelf.c:1161 earmelf_fbsd.c:1161
+#: earmelf_fuchsia.c:1166 earmelf_haiku.c:1166 earmelf_linux.c:1166
+#: earmelf_linux_eabi.c:1166 earmelf_linux_fdpiceabi.c:1166
+#: earmelf_nacl.c:1166 earmelf_nbsd.c:1161 earmelf_phoenix.c:1166
+#: earmelf_vxworks.c:1201 earmelfb.c:1161 earmelfb_fbsd.c:1161
+#: earmelfb_fuchsia.c:1166 earmelfb_linux.c:1166 earmelfb_linux_eabi.c:1166
+#: earmelfb_linux_fdpiceabi.c:1166 earmelfb_nacl.c:1166 earmelfb_nbsd.c:1161
+#: earmnto.c:1136
+#, c-format
+msgid ""
+"  --no-wchar-size-warning     Don't warn about objects with incompatible\n"
+"                                wchar_t sizes\n"
+msgstr ""
+
 #: eaarch64cloudabi.c:863 eaarch64cloudabib.c:863 eaarch64elf.c:858
 #: eaarch64elf32.c:858 eaarch64elf32b.c:858 eaarch64elfb.c:858
 #: eaarch64fbsd.c:863 eaarch64fbsdb.c:863 eaarch64haiku.c:863
 #: eaarch64linux.c:863 eaarch64linux32.c:863 eaarch64linux32b.c:863
-#: eaarch64linuxb.c:863 eaarch64nto.c:976 earmelf.c:1163 earmelf_fbsd.c:1163
+#: eaarch64linuxb.c:863 earmelf.c:1163 earmelf_fbsd.c:1163
 #: earmelf_fuchsia.c:1168 earmelf_haiku.c:1168 earmelf_linux.c:1168
 #: earmelf_linux_eabi.c:1168 earmelf_linux_fdpiceabi.c:1168
 #: earmelf_nacl.c:1168 earmelf_nbsd.c:1163 earmelf_phoenix.c:1168
@@ -4296,57 +4242,21 @@ msgstr ""
 #: earmnto.c:1138
 #, c-format
 msgid ""
-"  --no-enum-size-warning      Don't warn about objects with incompatible\n"
-"                                enum sizes\n"
-msgstr ""
-
-#: eaarch64cloudabi.c:865 eaarch64cloudabib.c:865 eaarch64elf.c:860
-#: eaarch64elf32.c:860 eaarch64elf32b.c:860 eaarch64elfb.c:860
-#: eaarch64fbsd.c:865 eaarch64fbsdb.c:865 eaarch64haiku.c:865
-#: eaarch64linux.c:865 eaarch64linux32.c:865 eaarch64linux32b.c:865
-#: eaarch64linuxb.c:865 eaarch64nto.c:978 earmelf.c:1165 earmelf_fbsd.c:1165
-#: earmelf_fuchsia.c:1170 earmelf_haiku.c:1170 earmelf_linux.c:1170
-#: earmelf_linux_eabi.c:1170 earmelf_linux_fdpiceabi.c:1170
-#: earmelf_nacl.c:1170 earmelf_nbsd.c:1165 earmelf_phoenix.c:1170
-#: earmelf_vxworks.c:1205 earmelfb.c:1165 earmelfb_fbsd.c:1165
-#: earmelfb_fuchsia.c:1170 earmelfb_linux.c:1170 earmelfb_linux_eabi.c:1170
-#: earmelfb_linux_fdpiceabi.c:1170 earmelfb_nacl.c:1170 earmelfb_nbsd.c:1165
-#: earmnto.c:1140
-#, c-format
-msgid ""
-"  --no-wchar-size-warning     Don't warn about objects with incompatible\n"
-"                                wchar_t sizes\n"
-msgstr ""
-
-#: eaarch64cloudabi.c:867 eaarch64cloudabib.c:867 eaarch64elf.c:862
-#: eaarch64elf32.c:862 eaarch64elf32b.c:862 eaarch64elfb.c:862
-#: eaarch64fbsd.c:867 eaarch64fbsdb.c:867 eaarch64haiku.c:867
-#: eaarch64linux.c:867 eaarch64linux32.c:867 eaarch64linux32b.c:867
-#: eaarch64linuxb.c:867 eaarch64nto.c:980 earmelf.c:1167 earmelf_fbsd.c:1167
-#: earmelf_fuchsia.c:1172 earmelf_haiku.c:1172 earmelf_linux.c:1172
-#: earmelf_linux_eabi.c:1172 earmelf_linux_fdpiceabi.c:1172
-#: earmelf_nacl.c:1172 earmelf_nbsd.c:1167 earmelf_phoenix.c:1172
-#: earmelf_vxworks.c:1207 earmelfb.c:1167 earmelfb_fbsd.c:1167
-#: earmelfb_fuchsia.c:1172 earmelfb_linux.c:1172 earmelfb_linux_eabi.c:1172
-#: earmelfb_linux_fdpiceabi.c:1172 earmelfb_nacl.c:1172 earmelfb_nbsd.c:1167
-#: earmnto.c:1142
-#, c-format
-msgid ""
 "  --pic-veneer                Always generate PIC interworking veneers\n"
 msgstr ""
 
-#: eaarch64cloudabi.c:868 eaarch64cloudabib.c:868 eaarch64elf.c:863
-#: eaarch64elf32.c:863 eaarch64elf32b.c:863 eaarch64elfb.c:863
-#: eaarch64fbsd.c:868 eaarch64fbsdb.c:868 eaarch64haiku.c:868
-#: eaarch64linux.c:868 eaarch64linux32.c:868 eaarch64linux32b.c:868
-#: eaarch64linuxb.c:868 eaarch64nto.c:981 earmelf.c:1174 earmelf_fbsd.c:1174
-#: earmelf_fuchsia.c:1179 earmelf_haiku.c:1179 earmelf_linux.c:1179
-#: earmelf_linux_eabi.c:1179 earmelf_linux_fdpiceabi.c:1179
-#: earmelf_nacl.c:1179 earmelf_nbsd.c:1174 earmelf_phoenix.c:1179
-#: earmelf_vxworks.c:1214 earmelfb.c:1174 earmelfb_fbsd.c:1174
-#: earmelfb_fuchsia.c:1179 earmelfb_linux.c:1179 earmelfb_linux_eabi.c:1179
-#: earmelfb_linux_fdpiceabi.c:1179 earmelfb_nacl.c:1179 earmelfb_nbsd.c:1174
-#: earmnto.c:1149
+#: eaarch64cloudabi.c:864 eaarch64cloudabib.c:864 eaarch64elf.c:859
+#: eaarch64elf32.c:859 eaarch64elf32b.c:859 eaarch64elfb.c:859
+#: eaarch64fbsd.c:864 eaarch64fbsdb.c:864 eaarch64haiku.c:864
+#: eaarch64linux.c:864 eaarch64linux32.c:864 eaarch64linux32b.c:864
+#: eaarch64linuxb.c:864 earmelf.c:1170 earmelf_fbsd.c:1170
+#: earmelf_fuchsia.c:1175 earmelf_haiku.c:1175 earmelf_linux.c:1175
+#: earmelf_linux_eabi.c:1175 earmelf_linux_fdpiceabi.c:1175
+#: earmelf_nacl.c:1175 earmelf_nbsd.c:1170 earmelf_phoenix.c:1175
+#: earmelf_vxworks.c:1210 earmelfb.c:1170 earmelfb_fbsd.c:1170
+#: earmelfb_fuchsia.c:1175 earmelfb_linux.c:1175 earmelfb_linux_eabi.c:1175
+#: earmelfb_linux_fdpiceabi.c:1175 earmelfb_nacl.c:1175 earmelfb_nbsd.c:1170
+#: earmnto.c:1145
 #, c-format
 msgid ""
 "  --stub-group-size=N         Maximum size of a group of input sections "
@@ -4363,20 +4273,20 @@ msgid ""
 "                                choose suitable defaults.\n"
 msgstr ""
 
-#: eaarch64cloudabi.c:877 eaarch64cloudabib.c:877 eaarch64elf.c:872
-#: eaarch64elf32.c:872 eaarch64elf32b.c:872 eaarch64elfb.c:872
-#: eaarch64fbsd.c:877 eaarch64fbsdb.c:877 eaarch64haiku.c:877
-#: eaarch64linux.c:877 eaarch64linux32.c:877 eaarch64linux32b.c:877
-#: eaarch64linuxb.c:877 eaarch64nto.c:990
+#: eaarch64cloudabi.c:873 eaarch64cloudabib.c:873 eaarch64elf.c:868
+#: eaarch64elf32.c:868 eaarch64elf32b.c:868 eaarch64elfb.c:868
+#: eaarch64fbsd.c:873 eaarch64fbsdb.c:873 eaarch64haiku.c:873
+#: eaarch64linux.c:873 eaarch64linux32.c:873 eaarch64linux32b.c:873
+#: eaarch64linuxb.c:873
 #, c-format
 msgid "  --fix-cortex-a53-835769      Fix erratum 835769\n"
 msgstr ""
 
-#: eaarch64cloudabi.c:878 eaarch64cloudabib.c:878 eaarch64elf.c:873
-#: eaarch64elf32.c:873 eaarch64elf32b.c:873 eaarch64elfb.c:873
-#: eaarch64fbsd.c:878 eaarch64fbsdb.c:878 eaarch64haiku.c:878
-#: eaarch64linux.c:878 eaarch64linux32.c:878 eaarch64linux32b.c:878
-#: eaarch64linuxb.c:878 eaarch64nto.c:991
+#: eaarch64cloudabi.c:874 eaarch64cloudabib.c:874 eaarch64elf.c:869
+#: eaarch64elf32.c:869 eaarch64elf32b.c:869 eaarch64elfb.c:869
+#: eaarch64fbsd.c:874 eaarch64fbsdb.c:874 eaarch64haiku.c:874
+#: eaarch64linux.c:874 eaarch64linux32.c:874 eaarch64linux32b.c:874
+#: eaarch64linuxb.c:874
 #, c-format
 msgid ""
 "  --fix-cortex-a53-843419[=full|adr|adrp]      Fix erratum 843419 and "
@@ -4401,22 +4311,22 @@ msgid ""
 "you both a performance and size overhead.\n"
 msgstr ""
 
-#: eaarch64cloudabi.c:889 eaarch64cloudabib.c:889 eaarch64elf.c:884
-#: eaarch64elf32.c:884 eaarch64elf32b.c:884 eaarch64elfb.c:884
-#: eaarch64fbsd.c:889 eaarch64fbsdb.c:889 eaarch64haiku.c:889
-#: eaarch64linux.c:889 eaarch64linux32.c:889 eaarch64linux32b.c:889
-#: eaarch64linuxb.c:889 eaarch64nto.c:1002
+#: eaarch64cloudabi.c:885 eaarch64cloudabib.c:885 eaarch64elf.c:880
+#: eaarch64elf32.c:880 eaarch64elf32b.c:880 eaarch64elfb.c:880
+#: eaarch64fbsd.c:885 eaarch64fbsdb.c:885 eaarch64haiku.c:885
+#: eaarch64linux.c:885 eaarch64linux32.c:885 eaarch64linux32b.c:885
+#: eaarch64linuxb.c:885
 #, c-format
 msgid ""
 "  --no-apply-dynamic-relocs    Do not apply link-time values for dynamic "
 "relocations\n"
 msgstr ""
 
-#: eaarch64cloudabi.c:890 eaarch64cloudabib.c:890 eaarch64elf.c:885
-#: eaarch64elf32.c:885 eaarch64elf32b.c:885 eaarch64elfb.c:885
-#: eaarch64fbsd.c:890 eaarch64fbsdb.c:890 eaarch64haiku.c:890
-#: eaarch64linux.c:890 eaarch64linux32.c:890 eaarch64linux32b.c:890
-#: eaarch64linuxb.c:890 eaarch64nto.c:1003
+#: eaarch64cloudabi.c:886 eaarch64cloudabib.c:886 eaarch64elf.c:881
+#: eaarch64elf32.c:881 eaarch64elf32b.c:881 eaarch64elfb.c:881
+#: eaarch64fbsd.c:886 eaarch64fbsdb.c:886 eaarch64haiku.c:886
+#: eaarch64linux.c:886 eaarch64linux32.c:886 eaarch64linux32b.c:886
+#: eaarch64linuxb.c:886
 #, c-format
 msgid ""
 "  -z force-bti                  Turn on Branch Target Identification "
@@ -4424,251 +4334,232 @@ msgid ""
 "inputs\n"
 msgstr ""
 
-#: eaarch64cloudabi.c:891 eaarch64cloudabib.c:891 eaarch64elf.c:886
-#: eaarch64elf32.c:886 eaarch64elf32b.c:886 eaarch64elfb.c:886
-#: eaarch64fbsd.c:891 eaarch64fbsdb.c:891 eaarch64haiku.c:891
-#: eaarch64linux.c:891 eaarch64linux32.c:891 eaarch64linux32b.c:891
-#: eaarch64linuxb.c:891 eaarch64nto.c:1004
+#: eaarch64cloudabi.c:887 eaarch64cloudabib.c:887 eaarch64elf.c:882
+#: eaarch64elf32.c:882 eaarch64elf32b.c:882 eaarch64elfb.c:882
+#: eaarch64fbsd.c:887 eaarch64fbsdb.c:887 eaarch64haiku.c:887
+#: eaarch64linux.c:887 eaarch64linux32.c:887 eaarch64linux32b.c:887
+#: eaarch64linuxb.c:887
 #, c-format
 msgid ""
 "  -z pac-plt                    Protect PLTs with Pointer Authentication.\n"
 msgstr ""
 
-#: eaarch64nto.c:405
-msgid "%F%P: cannot create .note section in stub BFD.\n"
-msgstr ""
-
-#: eaarch64nto.c:411
-msgid "%F%P: error: --lazy-stack must follow -zstack-size=<size>\n"
-msgstr ""
-
-#: eaarch64nto.c:420
-msgid "%F%P: failed to create .note section\n"
-msgstr ""
-
-#: eaarch64nto.c:1006
-#, c-format
-msgid ""
-"  --stack <size>              Set size of the initial stack\n"
-"  --lazy-stack\t\t      Set lazy allocation of stack\n"
-msgstr ""
-
-#: eaarch64pe.c:423 earm64pe.c:423 earm_wince_pe.c:416 earmpe.c:416
-#: ei386pe.c:416 ei386pe_posix.c:416 ei386pep.c:423 emcorepe.c:416 eshpe.c:416
+#: eaarch64pe.c:424 earm64pe.c:424 earm_wince_pe.c:414 earmpe.c:414
+#: ei386pe.c:414 ei386pe_posix.c:414 ei386pep.c:424 emcorepe.c:414 eshpe.c:414
 #, c-format
 msgid ""
 "  --base_file <basefile>             Generate a base file for relocatable "
 "DLLs\n"
 msgstr ""
 
-#: eaarch64pe.c:424 earm64pe.c:424 earm_wince_pe.c:417 earmpe.c:417
-#: ei386pe.c:417 ei386pe_posix.c:417 ei386pep.c:424 emcorepe.c:417 eshpe.c:417
+#: eaarch64pe.c:425 earm64pe.c:425 earm_wince_pe.c:415 earmpe.c:415
+#: ei386pe.c:415 ei386pe_posix.c:415 ei386pep.c:425 emcorepe.c:415 eshpe.c:415
 #, c-format
 msgid ""
 "  --dll                              Set image base to the default for DLLs\n"
 msgstr ""
 
-#: eaarch64pe.c:425 earm64pe.c:425 earm_wince_pe.c:418 earmpe.c:418
-#: ei386pe.c:418 ei386pe_posix.c:418 ei386pep.c:425 emcorepe.c:418 eshpe.c:418
+#: eaarch64pe.c:426 earm64pe.c:426 earm_wince_pe.c:416 earmpe.c:416
+#: ei386pe.c:416 ei386pe_posix.c:416 ei386pep.c:426 emcorepe.c:416 eshpe.c:416
 #, c-format
 msgid "  --file-alignment <size>            Set file alignment\n"
 msgstr ""
 
-#: eaarch64pe.c:426 earm64pe.c:426 earm_wince_pe.c:419 earmpe.c:419
-#: ei386pe.c:419 ei386pe_posix.c:419 ei386pep.c:426 emcorepe.c:419 eshpe.c:419
+#: eaarch64pe.c:427 earm64pe.c:427 earm_wince_pe.c:417 earmpe.c:417
+#: ei386pe.c:417 ei386pe_posix.c:417 ei386pep.c:427 emcorepe.c:417 eshpe.c:417
 #, c-format
 msgid "  --heap <size>                      Set initial size of the heap\n"
 msgstr ""
 
-#: eaarch64pe.c:427 earm64pe.c:427 earm_wince_pe.c:420 earmpe.c:420
-#: ei386pe.c:420 ei386pe_posix.c:420 ei386pep.c:427 emcorepe.c:420 eshpe.c:420
+#: eaarch64pe.c:428 earm64pe.c:428 earm_wince_pe.c:418 earmpe.c:418
+#: ei386pe.c:418 ei386pe_posix.c:418 ei386pep.c:428 emcorepe.c:418 eshpe.c:418
 #, c-format
 msgid ""
 "  --image-base <address>             Set start address of the executable\n"
 msgstr ""
 
-#: eaarch64pe.c:428 earm64pe.c:428 earm_wince_pe.c:421 earmpe.c:421
-#: ei386pe.c:421 ei386pe_posix.c:421 ei386pep.c:428 emcorepe.c:421 eshpe.c:421
+#: eaarch64pe.c:429 earm64pe.c:429 earm_wince_pe.c:419 earmpe.c:419
+#: ei386pe.c:419 ei386pe_posix.c:419 ei386pep.c:429 emcorepe.c:419 eshpe.c:419
 #, c-format
 msgid ""
 "  --major-image-version <number>     Set version number of the executable\n"
 msgstr ""
 
-#: eaarch64pe.c:429 earm64pe.c:429 earm_wince_pe.c:422 earmpe.c:422
-#: ei386pe.c:422 ei386pe_posix.c:422 ei386pep.c:429 emcorepe.c:422 eshpe.c:422
+#: eaarch64pe.c:430 earm64pe.c:430 earm_wince_pe.c:420 earmpe.c:420
+#: ei386pe.c:420 ei386pe_posix.c:420 ei386pep.c:430 emcorepe.c:420 eshpe.c:420
 #, c-format
 msgid "  --major-os-version <number>        Set minimum required OS version\n"
 msgstr ""
 
-#: eaarch64pe.c:430 earm64pe.c:430 earm_wince_pe.c:423 earmpe.c:423
-#: ei386pe.c:423 ei386pe_posix.c:423 ei386pep.c:430 emcorepe.c:423 eshpe.c:423
+#: eaarch64pe.c:431 earm64pe.c:431 earm_wince_pe.c:421 earmpe.c:421
+#: ei386pe.c:421 ei386pe_posix.c:421 ei386pep.c:431 emcorepe.c:421 eshpe.c:421
 #, c-format
 msgid ""
 "  --major-subsystem-version <number> Set minimum required OS subsystem "
 "version\n"
 msgstr ""
 
-#: eaarch64pe.c:431 earm64pe.c:431 earm_wince_pe.c:424 earmpe.c:424
-#: ei386pe.c:424 ei386pe_posix.c:424 ei386pep.c:431 emcorepe.c:424 eshpe.c:424
+#: eaarch64pe.c:432 earm64pe.c:432 earm_wince_pe.c:422 earmpe.c:422
+#: ei386pe.c:422 ei386pe_posix.c:422 ei386pep.c:432 emcorepe.c:422 eshpe.c:422
 #, c-format
 msgid ""
 "  --minor-image-version <number>     Set revision number of the executable\n"
 msgstr ""
 
-#: eaarch64pe.c:432 earm64pe.c:432 earm_wince_pe.c:425 earmpe.c:425
-#: ei386pe.c:425 ei386pe_posix.c:425 ei386pep.c:432 emcorepe.c:425 eshpe.c:425
+#: eaarch64pe.c:433 earm64pe.c:433 earm_wince_pe.c:423 earmpe.c:423
+#: ei386pe.c:423 ei386pe_posix.c:423 ei386pep.c:433 emcorepe.c:423 eshpe.c:423
 #, c-format
 msgid "  --minor-os-version <number>        Set minimum required OS revision\n"
 msgstr ""
 
-#: eaarch64pe.c:433 earm64pe.c:433 earm_wince_pe.c:426 earmpe.c:426
-#: ei386pe.c:426 ei386pe_posix.c:426 ei386pep.c:433 emcorepe.c:426 eshpe.c:426
+#: eaarch64pe.c:434 earm64pe.c:434 earm_wince_pe.c:424 earmpe.c:424
+#: ei386pe.c:424 ei386pe_posix.c:424 ei386pep.c:434 emcorepe.c:424 eshpe.c:424
 #, c-format
 msgid ""
 "  --minor-subsystem-version <number> Set minimum required OS subsystem "
 "revision\n"
 msgstr ""
 
-#: eaarch64pe.c:434 earm64pe.c:434 earm_wince_pe.c:427 earmpe.c:427
-#: ei386pe.c:427 ei386pe_posix.c:427 ei386pep.c:434 emcorepe.c:427 eshpe.c:427
+#: eaarch64pe.c:435 earm64pe.c:435 earm_wince_pe.c:425 earmpe.c:425
+#: ei386pe.c:425 ei386pe_posix.c:425 ei386pep.c:435 emcorepe.c:425 eshpe.c:425
 #, c-format
 msgid "  --section-alignment <size>         Set section alignment\n"
 msgstr ""
 
-#: eaarch64pe.c:435 earm64pe.c:435 earm_wince_pe.c:428 earmpe.c:428
-#: ei386pe.c:428 ei386pe_posix.c:428 ei386pep.c:435 emcorepe.c:428 eshpe.c:428
+#: eaarch64pe.c:436 earm64pe.c:436 earm_wince_pe.c:426 earmpe.c:426
+#: ei386pe.c:426 ei386pe_posix.c:426 ei386pep.c:436 emcorepe.c:426 eshpe.c:426
 #, c-format
 msgid "  --stack <size>                     Set size of the initial stack\n"
 msgstr ""
 
-#: eaarch64pe.c:436 earm64pe.c:436 earm_wince_pe.c:429 earmpe.c:429
-#: ei386pe.c:429 ei386pe_posix.c:429 ei386pep.c:436 emcorepe.c:429 eshpe.c:429
+#: eaarch64pe.c:437 earm64pe.c:437 earm_wince_pe.c:427 earmpe.c:427
+#: ei386pe.c:427 ei386pe_posix.c:427 ei386pep.c:437 emcorepe.c:427 eshpe.c:427
 #, c-format
 msgid ""
 "  --subsystem <name>[:<version>]     Set required OS subsystem [& version]\n"
 msgstr ""
 
-#: eaarch64pe.c:437 earm64pe.c:437 earm_wince_pe.c:430 earmpe.c:430
-#: ei386pe.c:430 ei386pe_posix.c:430 ei386pep.c:437 emcorepe.c:430 eshpe.c:430
+#: eaarch64pe.c:438 earm64pe.c:438 earm_wince_pe.c:428 earmpe.c:428
+#: ei386pe.c:428 ei386pe_posix.c:428 ei386pep.c:438 emcorepe.c:428 eshpe.c:428
 #, c-format
 msgid ""
 "  --support-old-code                 Support interworking with old code\n"
 msgstr ""
 
-#: eaarch64pe.c:438 earm64pe.c:438 earm_wince_pe.c:431 earmpe.c:431
-#: ei386pe.c:431 ei386pe_posix.c:431 ei386pep.c:438 emcorepe.c:431 eshpe.c:431
+#: eaarch64pe.c:439 earm64pe.c:439 earm_wince_pe.c:429 earmpe.c:429
+#: ei386pe.c:429 ei386pe_posix.c:429 ei386pep.c:439 emcorepe.c:429 eshpe.c:429
 #, c-format
 msgid ""
 "  --[no-]leading-underscore          Set explicit symbol underscore prefix "
 "mode\n"
 msgstr ""
 
-#: eaarch64pe.c:439 earm64pe.c:439 ei386pep.c:439
+#: eaarch64pe.c:440 earm64pe.c:440 ei386pep.c:440
 #, c-format
 msgid ""
 "  --[no-]insert-timestamp            Use a real timestamp rather than zero "
 "(default)\n"
 msgstr ""
 
-#: eaarch64pe.c:440 earm64pe.c:440 earm_wince_pe.c:434 earmpe.c:434
-#: ei386pe.c:434 ei386pe_posix.c:434 ei386pep.c:440 emcorepe.c:434 eshpe.c:434
+#: eaarch64pe.c:441 earm64pe.c:441 earm_wince_pe.c:432 earmpe.c:432
+#: ei386pe.c:432 ei386pe_posix.c:432 ei386pep.c:441 emcorepe.c:432 eshpe.c:432
 #, c-format
 msgid ""
 "                                     This makes binaries non-deterministic\n"
 msgstr ""
 
-#: eaarch64pe.c:442 earm64pe.c:442 earm_wince_pe.c:436 earmpe.c:436
-#: ei386pe.c:436 ei386pe_posix.c:436 ei386pep.c:442 emcorepe.c:436 eshpe.c:436
+#: eaarch64pe.c:443 earm64pe.c:443 earm_wince_pe.c:434 earmpe.c:434
+#: ei386pe.c:434 ei386pe_posix.c:434 ei386pep.c:443 emcorepe.c:434 eshpe.c:434
 #, c-format
 msgid ""
 "  --add-stdcall-alias                Export symbols with and without @nn\n"
 msgstr ""
 
-#: eaarch64pe.c:443 earm64pe.c:443 earm_wince_pe.c:437 earmpe.c:437
-#: ei386pe.c:437 ei386pe_posix.c:437 ei386pep.c:443 emcorepe.c:437 eshpe.c:437
+#: eaarch64pe.c:444 earm64pe.c:444 earm_wince_pe.c:435 earmpe.c:435
+#: ei386pe.c:435 ei386pe_posix.c:435 ei386pep.c:444 emcorepe.c:435 eshpe.c:435
 #, c-format
 msgid "  --disable-stdcall-fixup            Don't link _sym to _sym@nn\n"
 msgstr ""
 
-#: eaarch64pe.c:444 earm64pe.c:444 earm_wince_pe.c:438 earmpe.c:438
-#: ei386pe.c:438 ei386pe_posix.c:438 ei386pep.c:444 emcorepe.c:438 eshpe.c:438
+#: eaarch64pe.c:445 earm64pe.c:445 earm_wince_pe.c:436 earmpe.c:436
+#: ei386pe.c:436 ei386pe_posix.c:436 ei386pep.c:445 emcorepe.c:436 eshpe.c:436
 #, c-format
 msgid ""
 "  --enable-stdcall-fixup             Link _sym to _sym@nn without warnings\n"
 msgstr ""
 
-#: eaarch64pe.c:445 earm64pe.c:445 earm_wince_pe.c:439 earmpe.c:439
-#: ei386pe.c:439 ei386pe_posix.c:439 ei386pep.c:445 emcorepe.c:439 eshpe.c:439
+#: eaarch64pe.c:446 earm64pe.c:446 earm_wince_pe.c:437 earmpe.c:437
+#: ei386pe.c:437 ei386pe_posix.c:437 ei386pep.c:446 emcorepe.c:437 eshpe.c:437
 #, c-format
 msgid ""
 "  --exclude-symbols sym,sym,...      Exclude symbols from automatic export\n"
 msgstr ""
 
-#: eaarch64pe.c:446 earm64pe.c:446 earm_wince_pe.c:440 earmpe.c:440
-#: ei386pe.c:440 ei386pe_posix.c:440 ei386pep.c:446 emcorepe.c:440 eshpe.c:440
+#: eaarch64pe.c:447 earm64pe.c:447 earm_wince_pe.c:438 earmpe.c:438
+#: ei386pe.c:438 ei386pe_posix.c:438 ei386pep.c:447 emcorepe.c:438 eshpe.c:438
 #, c-format
 msgid ""
 "  --exclude-all-symbols              Exclude all symbols from automatic "
 "export\n"
 msgstr ""
 
-#: eaarch64pe.c:447 earm64pe.c:447 earm_wince_pe.c:441 earmpe.c:441
-#: ei386pe.c:441 ei386pe_posix.c:441 ei386pep.c:447 emcorepe.c:441 eshpe.c:441
+#: eaarch64pe.c:448 earm64pe.c:448 earm_wince_pe.c:439 earmpe.c:439
+#: ei386pe.c:439 ei386pe_posix.c:439 ei386pep.c:448 emcorepe.c:439 eshpe.c:439
 #, c-format
 msgid ""
 "  --exclude-libs lib,lib,...         Exclude libraries from automatic "
 "export\n"
 msgstr ""
 
-#: eaarch64pe.c:448 earm64pe.c:448 earm_wince_pe.c:442 earmpe.c:442
-#: ei386pe.c:442 ei386pe_posix.c:442 ei386pep.c:448 emcorepe.c:442 eshpe.c:442
+#: eaarch64pe.c:449 earm64pe.c:449 earm_wince_pe.c:440 earmpe.c:440
+#: ei386pe.c:440 ei386pe_posix.c:440 ei386pep.c:449 emcorepe.c:440 eshpe.c:440
 #, c-format
 msgid "  --exclude-modules-for-implib mod,mod,...\n"
 msgstr ""
 
-#: eaarch64pe.c:449 earm64pe.c:449 earm_wince_pe.c:443 earmpe.c:443
-#: ei386pe.c:443 ei386pe_posix.c:443 ei386pep.c:449 emcorepe.c:443 eshpe.c:443
+#: eaarch64pe.c:450 earm64pe.c:450 earm_wince_pe.c:441 earmpe.c:441
+#: ei386pe.c:441 ei386pe_posix.c:441 ei386pep.c:450 emcorepe.c:441 eshpe.c:441
 #, c-format
 msgid ""
 "                                     Exclude objects, archive members from "
 "auto\n"
 msgstr ""
 
-#: eaarch64pe.c:450 earm64pe.c:450 ei386pep.c:450
+#: eaarch64pe.c:451 earm64pe.c:451 ei386pep.c:451
 #, c-format
 msgid ""
 "                                     export, place into import library "
 "instead\n"
 msgstr ""
 
-#: eaarch64pe.c:451 earm64pe.c:451 earm_wince_pe.c:445 earmpe.c:445
-#: ei386pe.c:445 ei386pe_posix.c:445 ei386pep.c:451 emcorepe.c:445 eshpe.c:445
+#: eaarch64pe.c:452 earm64pe.c:452 earm_wince_pe.c:443 earmpe.c:443
+#: ei386pe.c:443 ei386pe_posix.c:443 ei386pep.c:452 emcorepe.c:443 eshpe.c:443
 #, c-format
 msgid ""
 "  --export-all-symbols               Automatically export all globals to "
 "DLL\n"
 msgstr ""
 
-#: eaarch64pe.c:452 earm64pe.c:452 earm_wince_pe.c:446 earmpe.c:446
-#: ei386pe.c:446 ei386pe_posix.c:446 ei386pep.c:452 emcorepe.c:446 eshpe.c:446
+#: eaarch64pe.c:453 earm64pe.c:453 earm_wince_pe.c:444 earmpe.c:444
+#: ei386pe.c:444 ei386pe_posix.c:444 ei386pep.c:453 emcorepe.c:444 eshpe.c:444
 #, c-format
 msgid "  --kill-at                          Remove @nn from exported symbols\n"
 msgstr ""
 
-#: eaarch64pe.c:453 earm64pe.c:453 earm_wince_pe.c:447 earmpe.c:447
-#: ei386pe.c:447 ei386pe_posix.c:447 ei386pep.c:453 emcorepe.c:447 eshpe.c:447
+#: eaarch64pe.c:454 earm64pe.c:454 earm_wince_pe.c:445 earmpe.c:445
+#: ei386pe.c:445 ei386pe_posix.c:445 ei386pep.c:454 emcorepe.c:445 eshpe.c:445
 #, c-format
 msgid ""
 "  --output-def <file>                Generate a .DEF file for the built DLL\n"
 msgstr ""
 
-#: eaarch64pe.c:454 earm64pe.c:454 earm_wince_pe.c:448 earmpe.c:448
-#: ei386pe.c:448 ei386pe_posix.c:448 ei386pep.c:454 emcorepe.c:448 eshpe.c:448
+#: eaarch64pe.c:455 earm64pe.c:455 earm_wince_pe.c:446 earmpe.c:446
+#: ei386pe.c:446 ei386pe_posix.c:446 ei386pep.c:455 emcorepe.c:446 eshpe.c:446
 #, c-format
 msgid "  --warn-duplicate-exports           Warn about duplicate exports\n"
 msgstr ""
 
-#: eaarch64pe.c:455 earm64pe.c:455 ei386pep.c:455
+#: eaarch64pe.c:456 earm64pe.c:456 ei386pep.c:456
 #, c-format
 msgid ""
 "  --compat-implib                    Create backward compatible import "
@@ -4676,7 +4567,7 @@ msgid ""
 "                                       create __imp_<SYMBOL> as well\n"
 msgstr ""
 
-#: eaarch64pe.c:456 earm64pe.c:456 ei386pep.c:456
+#: eaarch64pe.c:457 earm64pe.c:457 ei386pep.c:457
 #, c-format
 msgid ""
 "  --enable-auto-image-base           Automatically choose image base for "
@@ -4684,15 +4575,15 @@ msgid ""
 "                                       unless user specifies one\n"
 msgstr ""
 
-#: eaarch64pe.c:457 earm64pe.c:457 ei386pep.c:457
+#: eaarch64pe.c:458 earm64pe.c:458 ei386pep.c:458
 #, c-format
 msgid ""
 "  --disable-auto-image-base          Do not auto-choose image base "
 "(default)\n"
 msgstr ""
 
-#: eaarch64pe.c:458 earm64pe.c:458 earm_wince_pe.c:452 earmpe.c:452
-#: ei386pe.c:452 ei386pe_posix.c:452 ei386pep.c:458 emcorepe.c:452 eshpe.c:452
+#: eaarch64pe.c:459 earm64pe.c:459 earm_wince_pe.c:450 earmpe.c:450
+#: ei386pe.c:450 ei386pe_posix.c:450 ei386pep.c:459 emcorepe.c:450 eshpe.c:450
 #, c-format
 msgid ""
 "  --dll-search-prefix=<string>       When linking dynamically to a dll "
@@ -4702,23 +4593,23 @@ msgid ""
 "                                       in preference to lib<basename>.dll \n"
 msgstr ""
 
-#: eaarch64pe.c:459 earm64pe.c:459 earm_wince_pe.c:453 earmpe.c:453
-#: ei386pe.c:453 ei386pe_posix.c:453 ei386pep.c:459 emcorepe.c:453 eshpe.c:453
+#: eaarch64pe.c:460 earm64pe.c:460 earm_wince_pe.c:451 earmpe.c:451
+#: ei386pe.c:451 ei386pe_posix.c:451 ei386pep.c:460 emcorepe.c:451 eshpe.c:451
 #, c-format
 msgid ""
 "  --enable-auto-import               Do sophisticated linking of _sym to\n"
 "                                       __imp_sym for DATA references\n"
 msgstr ""
 
-#: eaarch64pe.c:460 earm64pe.c:460 earm_wince_pe.c:454 earmpe.c:454
-#: ei386pe.c:454 ei386pe_posix.c:454 ei386pep.c:460 emcorepe.c:454 eshpe.c:454
+#: eaarch64pe.c:461 earm64pe.c:461 earm_wince_pe.c:452 earmpe.c:452
+#: ei386pe.c:452 ei386pe_posix.c:452 ei386pep.c:461 emcorepe.c:452 eshpe.c:452
 #, c-format
 msgid ""
 "  --disable-auto-import              Do not auto-import DATA items from "
 "DLLs\n"
 msgstr ""
 
-#: eaarch64pe.c:461 earm64pe.c:461 ei386pep.c:461
+#: eaarch64pe.c:462 earm64pe.c:462 ei386pep.c:462
 #, c-format
 msgid ""
 "  --enable-runtime-pseudo-reloc      Work around auto-import limitations by\n"
@@ -4727,7 +4618,7 @@ msgid ""
 "                                       runtime\n"
 msgstr ""
 
-#: eaarch64pe.c:462 earm64pe.c:462 ei386pep.c:462
+#: eaarch64pe.c:463 earm64pe.c:463 ei386pep.c:463
 #, c-format
 msgid ""
 "  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations "
@@ -4735,7 +4626,7 @@ msgid ""
 "                                       auto-imported DATA\n"
 msgstr ""
 
-#: eaarch64pe.c:463 earm64pe.c:463 ei386pep.c:463
+#: eaarch64pe.c:464 earm64pe.c:464 ei386pep.c:464
 #, c-format
 msgid ""
 "  --enable-extra-pep-debug            Enable verbose debug output when "
@@ -4744,16 +4635,16 @@ msgid ""
 "import)\n"
 msgstr ""
 
-#: eaarch64pe.c:464 earm64pe.c:464 earm_wince_pe.c:461 earmpe.c:461
-#: ei386pe.c:461 ei386pe_posix.c:461 ei386pep.c:464 emcorepe.c:461 eshpe.c:461
+#: eaarch64pe.c:465 earm64pe.c:465 earm_wince_pe.c:459 earmpe.c:459
+#: ei386pe.c:459 ei386pe_posix.c:459 ei386pep.c:465 emcorepe.c:459 eshpe.c:459
 #, c-format
 msgid ""
 "  --enable-long-section-names        Use long COFF section names even in\n"
 "                                       executable image files\n"
 msgstr ""
 
-#: eaarch64pe.c:465 earm64pe.c:465 earm_wince_pe.c:462 earmpe.c:462
-#: ei386pe.c:462 ei386pe_posix.c:462 ei386pep.c:465 emcorepe.c:462 eshpe.c:462
+#: eaarch64pe.c:466 earm64pe.c:466 earm_wince_pe.c:460 earmpe.c:460
+#: ei386pe.c:460 ei386pe_posix.c:460 ei386pep.c:466 emcorepe.c:460 eshpe.c:460
 #, c-format
 msgid ""
 "  --disable-long-section-names       Never use long COFF section names, "
@@ -4761,7 +4652,7 @@ msgid ""
 "                                       in object files\n"
 msgstr ""
 
-#: eaarch64pe.c:466 earm64pe.c:466 ei386pep.c:466
+#: eaarch64pe.c:467 earm64pe.c:467 ei386pep.c:467
 #, c-format
 msgid ""
 "  --[disable-]high-entropy-va        Image is compatible with 64-bit address "
@@ -4769,8 +4660,8 @@ msgid ""
 "                                       layout randomization (ASLR)\n"
 msgstr ""
 
-#: eaarch64pe.c:467 earm64pe.c:467 earm_wince_pe.c:463 earmpe.c:463
-#: ei386pe.c:463 ei386pe_posix.c:463 ei386pep.c:467 emcorepe.c:463 eshpe.c:463
+#: eaarch64pe.c:468 earm64pe.c:468 earm_wince_pe.c:461 earmpe.c:461
+#: ei386pe.c:461 ei386pe_posix.c:461 ei386pep.c:468 emcorepe.c:461 eshpe.c:461
 #, c-format
 msgid ""
 "  --[disable-]dynamicbase            Image base address may be relocated "
@@ -4779,29 +4670,29 @@ msgid ""
 "(ASLR)\n"
 msgstr ""
 
-#: eaarch64pe.c:468 earm64pe.c:468 earm_wince_pe.c:464 earmpe.c:464
-#: ei386pe.c:464 ei386pe_posix.c:464 ei386pep.c:468 emcorepe.c:464 eshpe.c:464
+#: eaarch64pe.c:469 earm64pe.c:469 earm_wince_pe.c:462 earmpe.c:462
+#: ei386pe.c:462 ei386pe_posix.c:462 ei386pep.c:469 emcorepe.c:462 eshpe.c:462
 #, c-format
 msgid "  --enable-reloc-section             Create the base relocation table\n"
 msgstr ""
 
-#: eaarch64pe.c:469 earm64pe.c:469 earm_wince_pe.c:465 earmpe.c:465
-#: ei386pe.c:465 ei386pe_posix.c:465 ei386pep.c:469 emcorepe.c:465 eshpe.c:465
+#: eaarch64pe.c:470 earm64pe.c:470 earm_wince_pe.c:463 earmpe.c:463
+#: ei386pe.c:463 ei386pe_posix.c:463 ei386pep.c:470 emcorepe.c:463 eshpe.c:463
 #, c-format
 msgid ""
 "  --disable-reloc-section            Do not create the base relocation "
 "table\n"
 msgstr ""
 
-#: eaarch64pe.c:470 earm64pe.c:470 earm_wince_pe.c:466 earmpe.c:466
-#: ei386pe.c:466 ei386pe_posix.c:466 ei386pep.c:470 emcorepe.c:466 eshpe.c:466
+#: eaarch64pe.c:471 earm64pe.c:471 earm_wince_pe.c:464 earmpe.c:464
+#: ei386pe.c:464 ei386pe_posix.c:464 ei386pep.c:471 emcorepe.c:464 eshpe.c:464
 #, c-format
 msgid ""
 "  --[disable-]forceinteg             Code integrity checks are enforced\n"
 msgstr ""
 
-#: eaarch64pe.c:471 earm64pe.c:471 earm_wince_pe.c:467 earmpe.c:467
-#: ei386pe.c:467 ei386pe_posix.c:467 ei386pep.c:471 emcorepe.c:467 eshpe.c:467
+#: eaarch64pe.c:472 earm64pe.c:472 earm_wince_pe.c:465 earmpe.c:465
+#: ei386pe.c:465 ei386pe_posix.c:465 ei386pep.c:472 emcorepe.c:465 eshpe.c:465
 #, c-format
 msgid ""
 "  --[disable-]nxcompat               Image is compatible with data "
@@ -4809,15 +4700,15 @@ msgid ""
 "                                       prevention\n"
 msgstr ""
 
-#: eaarch64pe.c:472 earm64pe.c:472 earm_wince_pe.c:468 earmpe.c:468
-#: ei386pe.c:468 ei386pe_posix.c:468 ei386pep.c:472 emcorepe.c:468 eshpe.c:468
+#: eaarch64pe.c:473 earm64pe.c:473 earm_wince_pe.c:466 earmpe.c:466
+#: ei386pe.c:466 ei386pe_posix.c:466 ei386pep.c:473 emcorepe.c:466 eshpe.c:466
 #, c-format
 msgid ""
 "  --[disable-]no-isolation           Image understands isolation but do not\n"
 "                                       isolate the image\n"
 msgstr ""
 
-#: eaarch64pe.c:473 earm64pe.c:473 ei386pep.c:473
+#: eaarch64pe.c:474 earm64pe.c:474 ei386pep.c:474
 #, c-format
 msgid ""
 "  --[disable-]no-seh                 Image does not use SEH; no SE handler "
@@ -4825,129 +4716,123 @@ msgid ""
 "                                       be called in this image\n"
 msgstr ""
 
-#: eaarch64pe.c:474 earm64pe.c:474 earm_wince_pe.c:470 earmpe.c:470
-#: ei386pe.c:470 ei386pe_posix.c:470 ei386pep.c:474 emcorepe.c:470 eshpe.c:470
+#: eaarch64pe.c:475 earm64pe.c:475 earm_wince_pe.c:468 earmpe.c:468
+#: ei386pe.c:468 ei386pe_posix.c:468 ei386pep.c:475 emcorepe.c:468 eshpe.c:468
 #, c-format
 msgid "  --[disable-]no-bind                Do not bind this image\n"
 msgstr ""
 
-#: eaarch64pe.c:475 earm64pe.c:475 earm_wince_pe.c:471 earmpe.c:471
-#: ei386pe.c:471 ei386pe_posix.c:471 ei386pep.c:475 emcorepe.c:471 eshpe.c:471
+#: eaarch64pe.c:476 earm64pe.c:476 earm_wince_pe.c:469 earmpe.c:469
+#: ei386pe.c:469 ei386pe_posix.c:469 ei386pep.c:476 emcorepe.c:469 eshpe.c:469
 #, c-format
 msgid "  --[disable-]wdmdriver              Driver uses the WDM model\n"
 msgstr ""
 
-#: eaarch64pe.c:476 earm64pe.c:476 earm_wince_pe.c:472 earmpe.c:472
-#: ei386pe.c:472 ei386pe_posix.c:472 ei386pep.c:476 emcorepe.c:472 eshpe.c:472
+#: eaarch64pe.c:477 earm64pe.c:477 earm_wince_pe.c:470 earmpe.c:470
+#: ei386pe.c:470 ei386pe_posix.c:470 ei386pep.c:477 emcorepe.c:470 eshpe.c:470
 #, c-format
 msgid "  --[disable-]tsaware                Image is Terminal Server aware\n"
 msgstr ""
 
-#: eaarch64pe.c:477 earm64pe.c:477 earm_wince_pe.c:473 earmpe.c:473
-#: ei386pe.c:473 ei386pe_posix.c:473 ei386pep.c:477 emcorepe.c:473 eshpe.c:473
+#: eaarch64pe.c:478 earm64pe.c:478 earm_wince_pe.c:471 earmpe.c:471
+#: ei386pe.c:471 ei386pe_posix.c:471 ei386pep.c:478 emcorepe.c:471 eshpe.c:471
 #, c-format
 msgid "  --build-id[=STYLE]                 Generate build ID\n"
 msgstr ""
 
-#: eaarch64pe.c:479 earm64pe.c:479 earm_wince_pe.c:475 earmpe.c:475
-#: ei386pe.c:475 ei386pe_posix.c:475 ei386pep.c:479 emcorepe.c:475 eshpe.c:475
+#: eaarch64pe.c:480 earm64pe.c:480 earm_wince_pe.c:473 earmpe.c:473
+#: ei386pe.c:473 ei386pe_posix.c:473 ei386pep.c:480 emcorepe.c:473 eshpe.c:473
 #, c-format
 msgid "  --pdb=[FILENAME]                   Generate PDB file\n"
 msgstr ""
 
-#: eaarch64pe.c:608 earm64pe.c:608 earm_wince_pe.c:624 earmpe.c:624
-#: ei386beos.c:205 ei386pe.c:624 ei386pe_posix.c:624 ei386pep.c:608
-#: emcorepe.c:624 eshpe.c:624
+#: eaarch64pe.c:606 earm64pe.c:606 earm_wince_pe.c:619 earmpe.c:619
+#: ei386beos.c:205 ei386pe.c:619 ei386pe_posix.c:619 ei386pep.c:606
+#: emcorepe.c:619 eshpe.c:619
 msgid "%P: warning: bad version number in -subsystem option\n"
 msgstr ""
 
-#: eaarch64pe.c:633 earm64pe.c:633 earm_wince_pe.c:649 earmpe.c:649
-#: ei386beos.c:222 ei386pe.c:649 ei386pe_posix.c:649 ei386pep.c:633
-#: emcorepe.c:649 eshpe.c:649
+#: eaarch64pe.c:631 earm64pe.c:631 earm_wince_pe.c:644 earmpe.c:644
+#: ei386beos.c:222 ei386pe.c:644 ei386pe_posix.c:644 ei386pep.c:631
+#: emcorepe.c:644 eshpe.c:644
 msgid "%F%P: invalid subsystem type %s\n"
 msgstr ""
 
-#: eaarch64pe.c:654 earm64pe.c:654 earm_wince_pe.c:670 earmpe.c:670
-#: ei386beos.c:233 ei386pe.c:670 ei386pe_posix.c:670 ei386pep.c:654
-#: emcorepe.c:670 eshpe.c:670
+#: eaarch64pe.c:652 earm64pe.c:652 earm_wince_pe.c:665 earmpe.c:665
+#: ei386beos.c:233 ei386pe.c:665 ei386pe_posix.c:665 ei386pep.c:652
+#: emcorepe.c:665 eshpe.c:665
 msgid "%F%P: invalid hex number for PE parameter '%s'\n"
 msgstr ""
 
-#: eaarch64pe.c:671 earm64pe.c:671 earm_wince_pe.c:687 earmpe.c:687
-#: ei386beos.c:250 ei386pe.c:687 ei386pe_posix.c:687 ei386pep.c:671
-#: emcorepe.c:687 eshpe.c:687
+#: eaarch64pe.c:669 earm64pe.c:669 earm_wince_pe.c:682 earmpe.c:682
+#: ei386beos.c:250 ei386pe.c:682 ei386pe_posix.c:682 ei386pep.c:669
+#: emcorepe.c:682 eshpe.c:682
 msgid "%F%P: strange hex info for PE parameter '%s'\n"
 msgstr ""
 
-#: eaarch64pe.c:688 earm64pe.c:688 earm_wince_pe.c:703 earmpe.c:703
-#: eelf32mcore.c:323 ei386beos.c:266 ei386pe.c:703 ei386pe_posix.c:703
-#: ei386pep.c:688 emcorepe.c:703 eshpe.c:703
+#: eaarch64pe.c:686 earm64pe.c:686 earm_wince_pe.c:698 earmpe.c:698
+#: eelf32mcore.c:319 ei386beos.c:266 ei386pe.c:698 ei386pe_posix.c:698
+#: ei386pep.c:686 emcorepe.c:698 eshpe.c:698
 msgid "%F%P: cannot open base file %s\n"
 msgstr ""
 
-#: eaarch64pe.c:1005 earm64pe.c:1005 earm_wince_pe.c:1033 earmpe.c:1033
-#: ei386beos.c:362 ei386pe.c:1033 ei386pe_posix.c:1033 ei386pep.c:1005
-#: emcorepe.c:1033 eshpe.c:1033
+#: eaarch64pe.c:1003 earm64pe.c:1003 earm_wince_pe.c:1028 earmpe.c:1028
+#: ei386beos.c:362 ei386pe.c:1028 ei386pe_posix.c:1028 ei386pep.c:1003
+#: emcorepe.c:1028 eshpe.c:1028
 msgid "%P: warning, file alignment > section alignment\n"
 msgstr ""
 
-#: eaarch64pe.c:1018 earm64pe.c:1018 ei386pep.c:1018
+#: eaarch64pe.c:1016 earm64pe.c:1016 ei386pep.c:1016
 msgid ""
 "%P: warning: --export-dynamic is not supported for PE+ targets, did you mean "
 "--export-all-symbols?\n"
 msgstr ""
 
-#: eaarch64pe.c:1070 earm64pe.c:1070 earm_wince_pe.c:1127 earmpe.c:1127
-#: ei386pe.c:1127 ei386pe_posix.c:1127 ei386pep.c:1070 emcorepe.c:1127
-#: eshpe.c:1127
-msgid "%P: warning: overwriting decorated name %s with %s\n"
-msgstr ""
-
-#: eaarch64pe.c:1115 eaarch64pe.c:1143 earm64pe.c:1115 earm64pe.c:1143
-#: ei386pep.c:1115 ei386pep.c:1143
+#: eaarch64pe.c:1089 eaarch64pe.c:1116 earm64pe.c:1089 earm64pe.c:1116
+#: ei386pep.c:1089 ei386pep.c:1116
 #, c-format
 msgid "warning: resolving %s by linking to %s\n"
 msgstr ""
 
-#: eaarch64pe.c:1120 eaarch64pe.c:1148 earm64pe.c:1120 earm64pe.c:1148
-#: earm_wince_pe.c:1101 earmpe.c:1101 ei386pe.c:1101 ei386pe_posix.c:1101
-#: ei386pep.c:1120 ei386pep.c:1148 emcorepe.c:1101 eshpe.c:1101
+#: eaarch64pe.c:1094 eaarch64pe.c:1121 earm64pe.c:1094 earm64pe.c:1121
+#: earm_wince_pe.c:1096 earmpe.c:1096 ei386pe.c:1096 ei386pe_posix.c:1096
+#: ei386pep.c:1094 ei386pep.c:1121 emcorepe.c:1096 eshpe.c:1096
 msgid "Use --enable-stdcall-fixup to disable these warnings\n"
 msgstr ""
 
-#: eaarch64pe.c:1121 eaarch64pe.c:1149 earm64pe.c:1121 earm64pe.c:1149
-#: earm_wince_pe.c:1102 earmpe.c:1102 ei386pe.c:1102 ei386pe_posix.c:1102
-#: ei386pep.c:1121 ei386pep.c:1149 emcorepe.c:1102 eshpe.c:1102
+#: eaarch64pe.c:1095 eaarch64pe.c:1122 earm64pe.c:1095 earm64pe.c:1122
+#: earm_wince_pe.c:1097 earmpe.c:1097 ei386pe.c:1097 ei386pe_posix.c:1097
+#: ei386pep.c:1095 ei386pep.c:1122 emcorepe.c:1097 eshpe.c:1097
 msgid "Use --disable-stdcall-fixup to disable these fixups\n"
 msgstr ""
 
-#: eaarch64pe.c:1204 earm64pe.c:1204 earm_wince_pe.c:1193 earmpe.c:1193
-#: ei386pe.c:1193 ei386pe_posix.c:1193 ei386pep.c:1204 emcorepe.c:1193
-#: eshpe.c:1193
-msgid "%P: %H: cannot get section contents - auto-import exception\n"
+#: eaarch64pe.c:1173 earm64pe.c:1173 earm_wince_pe.c:1166 earmpe.c:1166
+#: ei386pe.c:1166 ei386pe_posix.c:1166 ei386pep.c:1173 emcorepe.c:1166
+#: eshpe.c:1166
+msgid "%P: %C: cannot get section contents - auto-import exception\n"
 msgstr ""
 
-#: eaarch64pe.c:1334 earm64pe.c:1334 earm_wince_pe.c:1324 earmpe.c:1324
-#: ei386pe.c:1324 ei386pe_posix.c:1324 ei386pep.c:1334 emcorepe.c:1324
-#: eshpe.c:1324
+#: eaarch64pe.c:1267 earm64pe.c:1267 earm_wince_pe.c:1251 earmpe.c:1251
+#: ei386pe.c:1251 ei386pe_posix.c:1251 ei386pep.c:1267 emcorepe.c:1251
+#: eshpe.c:1251
 msgid "%P: warning: .buildid section discarded, --build-id ignored\n"
 msgstr ""
 
-#: eaarch64pe.c:1455 earm64pe.c:1455 earm_wince_pe.c:1445 earmpe.c:1445
-#: ei386pe.c:1445 ei386pe_posix.c:1445 ei386pep.c:1455 emcorepe.c:1445
-#: eshpe.c:1445
+#: eaarch64pe.c:1385 earm64pe.c:1385 earm_wince_pe.c:1369 earmpe.c:1369
+#: ei386pe.c:1369 ei386pe_posix.c:1369 ei386pep.c:1385 emcorepe.c:1369
+#: eshpe.c:1369
 msgid "%P: warning: cannot create .buildid section, --build-id ignored\n"
 msgstr ""
 
-#: eaarch64pe.c:1541 earm64pe.c:1541 earm_wince_pe.c:1530 earmpe.c:1530
-#: ei386pe.c:1530 ei386pe_posix.c:1530 ei386pep.c:1541 emcorepe.c:1530
-#: eshpe.c:1530
+#: eaarch64pe.c:1461 earm64pe.c:1461 earm_wince_pe.c:1444 earmpe.c:1444
+#: ei386pe.c:1444 ei386pe_posix.c:1444 ei386pep.c:1461 emcorepe.c:1444
+#: eshpe.c:1444
 msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n"
 msgstr ""
 
-#: eaarch64pe.c:1665 earm64pe.c:1665 earm_wince_pe.c:1673 earmpe.c:1673
-#: ei386pe.c:1673 ei386pe_posix.c:1673 ei386pep.c:1665 emcorepe.c:1673
-#: eshpe.c:1673
+#: eaarch64pe.c:1585 earm64pe.c:1585 earm_wince_pe.c:1587 earmpe.c:1587
+#: ei386pe.c:1587 ei386pe_posix.c:1587 ei386pep.c:1585 emcorepe.c:1587
+#: eshpe.c:1587
 msgid "%X%P: unable to process relocs: %E\n"
 msgstr ""
 
@@ -5084,32 +4969,32 @@ msgid ""
 "  --identification <string>          Set the identification of the output\n"
 msgstr ""
 
-#: earm_wince_pe.c:432 earmpe.c:432 ei386pe.c:432 ei386pe_posix.c:432
-#: emcorepe.c:432 eshpe.c:432
+#: earm_wince_pe.c:430 earmpe.c:430 ei386pe.c:430 ei386pe_posix.c:430
+#: emcorepe.c:430 eshpe.c:430
 #, c-format
 msgid ""
 "  --thumb-entry=<symbol>             Set the entry point to be Thumb "
 "<symbol>\n"
 msgstr ""
 
-#: earm_wince_pe.c:433 earmpe.c:433 ei386pe.c:433 ei386pe_posix.c:433
-#: emcorepe.c:433 eshpe.c:433
+#: earm_wince_pe.c:431 earmpe.c:431 ei386pe.c:431 ei386pe_posix.c:431
+#: emcorepe.c:431 eshpe.c:431
 #, c-format
 msgid ""
 "  --[no-]insert-timestamp            Use a real timestamp rather than zero "
 "(default).\n"
 msgstr ""
 
-#: earm_wince_pe.c:444 earmpe.c:444 ei386pe.c:444 ei386pe_posix.c:444
-#: emcorepe.c:444 eshpe.c:444
+#: earm_wince_pe.c:442 earmpe.c:442 ei386pe.c:442 ei386pe_posix.c:442
+#: emcorepe.c:442 eshpe.c:442
 #, c-format
 msgid ""
 "                                     export, place into import library "
 "instead.\n"
 msgstr ""
 
-#: earm_wince_pe.c:449 earmpe.c:449 ei386pe.c:449 ei386pe_posix.c:449
-#: emcorepe.c:449 eshpe.c:449
+#: earm_wince_pe.c:447 earmpe.c:447 ei386pe.c:447 ei386pe_posix.c:447
+#: emcorepe.c:447 eshpe.c:447
 #, c-format
 msgid ""
 "  --compat-implib                    Create backward compatible import "
@@ -5117,8 +5002,8 @@ msgid ""
 "                                       create __imp_<SYMBOL> as well.\n"
 msgstr ""
 
-#: earm_wince_pe.c:450 earmpe.c:450 ei386pe.c:450 ei386pe_posix.c:450
-#: emcorepe.c:450 eshpe.c:450
+#: earm_wince_pe.c:448 earmpe.c:448 ei386pe.c:448 ei386pe_posix.c:448
+#: emcorepe.c:448 eshpe.c:448
 #, c-format
 msgid ""
 "  --enable-auto-image-base[=<address>] Automatically choose image base for "
@@ -5128,16 +5013,16 @@ msgid ""
 "                                       specifically set with --image-base\n"
 msgstr ""
 
-#: earm_wince_pe.c:451 earmpe.c:451 ei386pe.c:451 ei386pe_posix.c:451
-#: emcorepe.c:451 eshpe.c:451
+#: earm_wince_pe.c:449 earmpe.c:449 ei386pe.c:449 ei386pe_posix.c:449
+#: emcorepe.c:449 eshpe.c:449
 #, c-format
 msgid ""
 "  --disable-auto-image-base          Do not auto-choose image base. "
 "(default)\n"
 msgstr ""
 
-#: earm_wince_pe.c:455 earmpe.c:455 ei386pe.c:455 ei386pe_posix.c:455
-#: emcorepe.c:455 eshpe.c:455
+#: earm_wince_pe.c:453 earmpe.c:453 ei386pe.c:453 ei386pe_posix.c:453
+#: emcorepe.c:453 eshpe.c:453
 #, c-format
 msgid ""
 "  --enable-runtime-pseudo-reloc      Work around auto-import limitations by\n"
@@ -5146,8 +5031,8 @@ msgid ""
 "                                       runtime.\n"
 msgstr ""
 
-#: earm_wince_pe.c:456 earmpe.c:456 ei386pe.c:456 ei386pe_posix.c:456
-#: emcorepe.c:456 eshpe.c:456
+#: earm_wince_pe.c:454 earmpe.c:454 ei386pe.c:454 ei386pe_posix.c:454
+#: emcorepe.c:454 eshpe.c:454
 #, c-format
 msgid ""
 "  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations "
@@ -5155,8 +5040,8 @@ msgid ""
 "                                       auto-imported DATA.\n"
 msgstr ""
 
-#: earm_wince_pe.c:457 earmpe.c:457 ei386pe.c:457 ei386pe_posix.c:457
-#: emcorepe.c:457 eshpe.c:457
+#: earm_wince_pe.c:455 earmpe.c:455 ei386pe.c:455 ei386pe_posix.c:455
+#: emcorepe.c:455 eshpe.c:455
 #, c-format
 msgid ""
 "  --enable-extra-pe-debug            Enable verbose debug output when "
@@ -5165,24 +5050,24 @@ msgid ""
 "import)\n"
 msgstr ""
 
-#: earm_wince_pe.c:459 earmpe.c:459 ei386pe.c:459 ei386pe_posix.c:459
-#: emcorepe.c:459 eshpe.c:459
+#: earm_wince_pe.c:457 earmpe.c:457 ei386pe.c:457 ei386pe_posix.c:457
+#: emcorepe.c:457 eshpe.c:457
 #, c-format
 msgid ""
 "  --large-address-aware              Executable supports virtual addresses\n"
 "                                       greater than 2 gigabytes\n"
 msgstr ""
 
-#: earm_wince_pe.c:460 earmpe.c:460 ei386pe.c:460 ei386pe_posix.c:460
-#: emcorepe.c:460 eshpe.c:460
+#: earm_wince_pe.c:458 earmpe.c:458 ei386pe.c:458 ei386pe_posix.c:458
+#: emcorepe.c:458 eshpe.c:458
 #, c-format
 msgid ""
 "  --disable-large-address-aware      Executable does not support virtual\n"
 "                                       addresses greater than 2 gigabytes\n"
 msgstr ""
 
-#: earm_wince_pe.c:469 earmpe.c:469 ei386pe.c:469 ei386pe_posix.c:469
-#: emcorepe.c:469 eshpe.c:469
+#: earm_wince_pe.c:467 earmpe.c:467 ei386pe.c:467 ei386pe_posix.c:467
+#: emcorepe.c:467 eshpe.c:467
 #, c-format
 msgid ""
 "  --[disable-]no-seh                 Image does not use SEH. No SE handler "
@@ -5190,43 +5075,43 @@ msgid ""
 "                                       be called in this image\n"
 msgstr ""
 
-#: earm_wince_pe.c:1046 earmpe.c:1046 ei386pe.c:1046 ei386pe_posix.c:1046
-#: emcorepe.c:1046 eshpe.c:1046
+#: earm_wince_pe.c:1041 earmpe.c:1041 ei386pe.c:1041 ei386pe_posix.c:1041
+#: emcorepe.c:1041 eshpe.c:1041
 msgid ""
 "%P: warning: --export-dynamic is not supported for PE targets, did you mean "
 "--export-all-symbols?\n"
 msgstr ""
 
-#: earm_wince_pe.c:1096 earmpe.c:1096 ei386pe.c:1096 ei386pe_posix.c:1096
-#: emcorepe.c:1096 eshpe.c:1096
+#: earm_wince_pe.c:1091 earmpe.c:1091 ei386pe.c:1091 ei386pe_posix.c:1091
+#: emcorepe.c:1091 eshpe.c:1091
 msgid "%P: warning: resolving %s by linking to %s\n"
 msgstr ""
 
-#: earm_wince_pe.c:1882 earmpe.c:1882 ei386pe.c:1882 ei386pe_posix.c:1882
-#: emcorepe.c:1882 eshpe.c:1882
+#: earm_wince_pe.c:1796 earmpe.c:1796 ei386pe.c:1796 ei386pe_posix.c:1796
+#: emcorepe.c:1796 eshpe.c:1796
 #, c-format
 msgid "%P: errors encountered processing file %s for interworking\n"
 msgstr ""
 
-#: earm_wince_pe.c:2046 earmelf.c:523 earmelf_fbsd.c:523 earmelf_fuchsia.c:524
+#: earm_wince_pe.c:1960 earmelf.c:523 earmelf_fbsd.c:523 earmelf_fuchsia.c:524
 #: earmelf_haiku.c:524 earmelf_linux.c:524 earmelf_linux_eabi.c:524
 #: earmelf_linux_fdpiceabi.c:524 earmelf_nacl.c:524 earmelf_nbsd.c:523
 #: earmelf_phoenix.c:524 earmelf_vxworks.c:523 earmelfb.c:523
 #: earmelfb_fbsd.c:523 earmelfb_fuchsia.c:524 earmelfb_linux.c:524
 #: earmelfb_linux_eabi.c:524 earmelfb_linux_fdpiceabi.c:524
-#: earmelfb_nacl.c:524 earmelfb_nbsd.c:523 earmnto.c:523 earmpe.c:2046
-#: ei386pe.c:2046 ei386pe_posix.c:2046 emcorepe.c:2046 eshpe.c:2046
+#: earmelfb_nacl.c:524 earmelfb_nbsd.c:523 earmnto.c:523 earmpe.c:1960
+#: ei386pe.c:1960 ei386pe_posix.c:1960 emcorepe.c:1960 eshpe.c:1960
 msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
 msgstr ""
 
-#: earm_wince_pe.c:2051 earmelf.c:528 earmelf_fbsd.c:528 earmelf_fuchsia.c:529
+#: earm_wince_pe.c:1965 earmelf.c:528 earmelf_fbsd.c:528 earmelf_fuchsia.c:529
 #: earmelf_haiku.c:529 earmelf_linux.c:529 earmelf_linux_eabi.c:529
 #: earmelf_linux_fdpiceabi.c:529 earmelf_nacl.c:529 earmelf_nbsd.c:528
 #: earmelf_phoenix.c:529 earmelf_vxworks.c:528 earmelfb.c:528
 #: earmelfb_fbsd.c:528 earmelfb_fuchsia.c:529 earmelfb_linux.c:529
 #: earmelfb_linux_eabi.c:529 earmelfb_linux_fdpiceabi.c:529
-#: earmelfb_nacl.c:529 earmelfb_nbsd.c:528 earmnto.c:528 earmpe.c:2051
-#: ei386pe.c:2051 ei386pe_posix.c:2051 emcorepe.c:2051 eshpe.c:2051
+#: earmelfb_nacl.c:529 earmelfb_nbsd.c:528 earmnto.c:528 earmpe.c:1965
+#: ei386pe.c:1965 ei386pe_posix.c:1965 emcorepe.c:1965 eshpe.c:1965
 msgid "%P: warning: cannot find thumb start symbol %s\n"
 msgstr ""
 
@@ -5261,26 +5146,71 @@ msgstr ""
 msgid "%F%P: %s: not a relocatable file: %E\n"
 msgstr ""
 
-#: earmelf.c:1073 earmelf_fbsd.c:1073 earmelf_fuchsia.c:1078
-#: earmelf_haiku.c:1078 earmelf_linux.c:1078 earmelf_linux_eabi.c:1078
-#: earmelf_linux_fdpiceabi.c:1078 earmelf_nacl.c:1078 earmelf_nbsd.c:1073
-#: earmelf_phoenix.c:1078 earmelf_vxworks.c:1109 earmelfb.c:1073
-#: earmelfb_fbsd.c:1073 earmelfb_fuchsia.c:1078 earmelfb_linux.c:1078
-#: earmelfb_linux_eabi.c:1078 earmelfb_linux_fdpiceabi.c:1078
-#: earmelfb_nacl.c:1078 earmelfb_nbsd.c:1073 earmnto.c:1048
+#: earmelf.c:1069 earmelf_fbsd.c:1069 earmelf_fuchsia.c:1074
+#: earmelf_haiku.c:1074 earmelf_linux.c:1074 earmelf_linux_eabi.c:1074
+#: earmelf_linux_fdpiceabi.c:1074 earmelf_nacl.c:1074 earmelf_nbsd.c:1069
+#: earmelf_phoenix.c:1074 earmelf_vxworks.c:1105 earmelfb.c:1069
+#: earmelfb_fbsd.c:1069 earmelfb_fuchsia.c:1074 earmelfb_linux.c:1074
+#: earmelfb_linux_eabi.c:1074 earmelfb_linux_fdpiceabi.c:1074
+#: earmelfb_nacl.c:1074 earmelfb_nbsd.c:1069 earmnto.c:1044
 msgid "%P: unrecognized VFP11 fix type '%s'\n"
 msgstr ""
 
-#: earmelf.c:1086 earmelf_fbsd.c:1086 earmelf_fuchsia.c:1091
-#: earmelf_haiku.c:1091 earmelf_linux.c:1091 earmelf_linux_eabi.c:1091
-#: earmelf_linux_fdpiceabi.c:1091 earmelf_nacl.c:1091 earmelf_nbsd.c:1086
-#: earmelf_phoenix.c:1091 earmelf_vxworks.c:1122 earmelfb.c:1086
-#: earmelfb_fbsd.c:1086 earmelfb_fuchsia.c:1091 earmelfb_linux.c:1091
-#: earmelfb_linux_eabi.c:1091 earmelfb_linux_fdpiceabi.c:1091
-#: earmelfb_nacl.c:1091 earmelfb_nbsd.c:1086 earmnto.c:1061
+#: earmelf.c:1082 earmelf_fbsd.c:1082 earmelf_fuchsia.c:1087
+#: earmelf_haiku.c:1087 earmelf_linux.c:1087 earmelf_linux_eabi.c:1087
+#: earmelf_linux_fdpiceabi.c:1087 earmelf_nacl.c:1087 earmelf_nbsd.c:1082
+#: earmelf_phoenix.c:1087 earmelf_vxworks.c:1118 earmelfb.c:1082
+#: earmelfb_fbsd.c:1082 earmelfb_fuchsia.c:1087 earmelfb_linux.c:1087
+#: earmelfb_linux_eabi.c:1087 earmelfb_linux_fdpiceabi.c:1087
+#: earmelfb_nacl.c:1087 earmelfb_nbsd.c:1082 earmnto.c:1057
 msgid "%P: unrecognized STM32L4XX fix type '%s'\n"
 msgstr ""
 
+#: earmelf.c:1149 earmelf_fbsd.c:1149 earmelf_fuchsia.c:1154
+#: earmelf_haiku.c:1154 earmelf_linux.c:1154 earmelf_linux_eabi.c:1154
+#: earmelf_linux_fdpiceabi.c:1154 earmelf_nacl.c:1154 earmelf_nbsd.c:1149
+#: earmelf_phoenix.c:1154 earmelf_vxworks.c:1189 earmelfb.c:1149
+#: earmelfb_fbsd.c:1149 earmelfb_fuchsia.c:1154 earmelfb_linux.c:1154
+#: earmelfb_linux_eabi.c:1154 earmelfb_linux_fdpiceabi.c:1154
+#: earmelfb_nacl.c:1154 earmelfb_nbsd.c:1149 earmnto.c:1124
+#, c-format
+msgid ""
+"  --thumb-entry=<sym>         Set the entry point to be Thumb symbol <sym>\n"
+msgstr ""
+
+#: earmelf.c:1150 earmelf_fbsd.c:1150 earmelf_fuchsia.c:1155
+#: earmelf_haiku.c:1155 earmelf_linux.c:1155 earmelf_linux_eabi.c:1155
+#: earmelf_linux_fdpiceabi.c:1155 earmelf_nacl.c:1155 earmelf_nbsd.c:1150
+#: earmelf_phoenix.c:1155 earmelf_vxworks.c:1190 earmelfb.c:1150
+#: earmelfb_fbsd.c:1150 earmelfb_fuchsia.c:1155 earmelfb_linux.c:1155
+#: earmelfb_linux_eabi.c:1155 earmelfb_linux_fdpiceabi.c:1155
+#: earmelfb_nacl.c:1155 earmelfb_nbsd.c:1150 earmnto.c:1125
+#, c-format
+msgid "  --be8                       Output BE8 format image\n"
+msgstr ""
+
+#: earmelf.c:1151 earmelf_fbsd.c:1151 earmelf_fuchsia.c:1156
+#: earmelf_haiku.c:1156 earmelf_linux.c:1156 earmelf_linux_eabi.c:1156
+#: earmelf_linux_fdpiceabi.c:1156 earmelf_nacl.c:1156 earmelf_nbsd.c:1151
+#: earmelf_phoenix.c:1156 earmelf_vxworks.c:1191 earmelfb.c:1151
+#: earmelfb_fbsd.c:1151 earmelfb_fuchsia.c:1156 earmelfb_linux.c:1156
+#: earmelfb_linux_eabi.c:1156 earmelfb_linux_fdpiceabi.c:1156
+#: earmelfb_nacl.c:1156 earmelfb_nbsd.c:1151 earmnto.c:1126
+#, c-format
+msgid "  --target1-rel               Interpret R_ARM_TARGET1 as R_ARM_REL32\n"
+msgstr ""
+
+#: earmelf.c:1152 earmelf_fbsd.c:1152 earmelf_fuchsia.c:1157
+#: earmelf_haiku.c:1157 earmelf_linux.c:1157 earmelf_linux_eabi.c:1157
+#: earmelf_linux_fdpiceabi.c:1157 earmelf_nacl.c:1157 earmelf_nbsd.c:1152
+#: earmelf_phoenix.c:1157 earmelf_vxworks.c:1192 earmelfb.c:1152
+#: earmelfb_fbsd.c:1152 earmelfb_fuchsia.c:1157 earmelfb_linux.c:1157
+#: earmelfb_linux_eabi.c:1157 earmelfb_linux_fdpiceabi.c:1157
+#: earmelfb_nacl.c:1157 earmelfb_nbsd.c:1152 earmnto.c:1127
+#, c-format
+msgid "  --target1-abs               Interpret R_ARM_TARGET1 as R_ARM_ABS32\n"
+msgstr ""
+
 #: earmelf.c:1153 earmelf_fbsd.c:1153 earmelf_fuchsia.c:1158
 #: earmelf_haiku.c:1158 earmelf_linux.c:1158 earmelf_linux_eabi.c:1158
 #: earmelf_linux_fdpiceabi.c:1158 earmelf_nacl.c:1158 earmelf_nbsd.c:1153
@@ -5289,8 +5219,7 @@ msgstr ""
 #: earmelfb_linux_eabi.c:1158 earmelfb_linux_fdpiceabi.c:1158
 #: earmelfb_nacl.c:1158 earmelfb_nbsd.c:1153 earmnto.c:1128
 #, c-format
-msgid ""
-"  --thumb-entry=<sym>         Set the entry point to be Thumb symbol <sym>\n"
+msgid "  --target2=<type>            Specify definition of R_ARM_TARGET2\n"
 msgstr ""
 
 #: earmelf.c:1154 earmelf_fbsd.c:1154 earmelf_fuchsia.c:1159
@@ -5301,7 +5230,7 @@ msgstr ""
 #: earmelfb_linux_eabi.c:1159 earmelfb_linux_fdpiceabi.c:1159
 #: earmelfb_nacl.c:1159 earmelfb_nbsd.c:1154 earmnto.c:1129
 #, c-format
-msgid "  --be8                       Output BE8 format image\n"
+msgid "  --fix-v4bx                  Rewrite BX rn as MOV pc, rn for ARMv4\n"
 msgstr ""
 
 #: earmelf.c:1155 earmelf_fbsd.c:1155 earmelf_fuchsia.c:1160
@@ -5312,7 +5241,9 @@ msgstr ""
 #: earmelfb_linux_eabi.c:1160 earmelfb_linux_fdpiceabi.c:1160
 #: earmelfb_nacl.c:1160 earmelfb_nbsd.c:1155 earmnto.c:1130
 #, c-format
-msgid "  --target1-rel               Interpret R_ARM_TARGET1 as R_ARM_REL32\n"
+msgid ""
+"  --fix-v4bx-interworking     Rewrite BX rn branch to ARMv4 interworking "
+"veneer\n"
 msgstr ""
 
 #: earmelf.c:1156 earmelf_fbsd.c:1156 earmelf_fuchsia.c:1161
@@ -5323,7 +5254,7 @@ msgstr ""
 #: earmelfb_linux_eabi.c:1161 earmelfb_linux_fdpiceabi.c:1161
 #: earmelfb_nacl.c:1161 earmelfb_nbsd.c:1156 earmnto.c:1131
 #, c-format
-msgid "  --target1-abs               Interpret R_ARM_TARGET1 as R_ARM_ABS32\n"
+msgid "  --use-blx                   Enable use of BLX instructions\n"
 msgstr ""
 
 #: earmelf.c:1157 earmelf_fbsd.c:1157 earmelf_fuchsia.c:1162
@@ -5334,7 +5265,7 @@ msgstr ""
 #: earmelfb_linux_eabi.c:1162 earmelfb_linux_fdpiceabi.c:1162
 #: earmelfb_nacl.c:1162 earmelfb_nbsd.c:1157 earmnto.c:1132
 #, c-format
-msgid "  --target2=<type>            Specify definition of R_ARM_TARGET2\n"
+msgid "  --vfp11-denorm-fix          Specify how to fix VFP11 denorm erratum\n"
 msgstr ""
 
 #: earmelf.c:1158 earmelf_fbsd.c:1158 earmelf_fuchsia.c:1163
@@ -5345,56 +5276,37 @@ msgstr ""
 #: earmelfb_linux_eabi.c:1163 earmelfb_linux_fdpiceabi.c:1163
 #: earmelfb_nacl.c:1163 earmelfb_nbsd.c:1158 earmnto.c:1133
 #, c-format
-msgid "  --fix-v4bx                  Rewrite BX rn as MOV pc, rn for ARMv4\n"
-msgstr ""
-
-#: earmelf.c:1159 earmelf_fbsd.c:1159 earmelf_fuchsia.c:1164
-#: earmelf_haiku.c:1164 earmelf_linux.c:1164 earmelf_linux_eabi.c:1164
-#: earmelf_linux_fdpiceabi.c:1164 earmelf_nacl.c:1164 earmelf_nbsd.c:1159
-#: earmelf_phoenix.c:1164 earmelf_vxworks.c:1199 earmelfb.c:1159
-#: earmelfb_fbsd.c:1159 earmelfb_fuchsia.c:1164 earmelfb_linux.c:1164
-#: earmelfb_linux_eabi.c:1164 earmelfb_linux_fdpiceabi.c:1164
-#: earmelfb_nacl.c:1164 earmelfb_nbsd.c:1159 earmnto.c:1134
-#, c-format
-msgid ""
-"  --fix-v4bx-interworking     Rewrite BX rn branch to ARMv4 interworking "
-"veneer\n"
-msgstr ""
-
-#: earmelf.c:1160 earmelf_fbsd.c:1160 earmelf_fuchsia.c:1165
-#: earmelf_haiku.c:1165 earmelf_linux.c:1165 earmelf_linux_eabi.c:1165
-#: earmelf_linux_fdpiceabi.c:1165 earmelf_nacl.c:1165 earmelf_nbsd.c:1160
-#: earmelf_phoenix.c:1165 earmelf_vxworks.c:1200 earmelfb.c:1160
-#: earmelfb_fbsd.c:1160 earmelfb_fuchsia.c:1165 earmelfb_linux.c:1165
-#: earmelfb_linux_eabi.c:1165 earmelfb_linux_fdpiceabi.c:1165
-#: earmelfb_nacl.c:1165 earmelfb_nbsd.c:1160 earmnto.c:1135
-#, c-format
-msgid "  --use-blx                   Enable use of BLX instructions\n"
-msgstr ""
-
-#: earmelf.c:1161 earmelf_fbsd.c:1161 earmelf_fuchsia.c:1166
-#: earmelf_haiku.c:1166 earmelf_linux.c:1166 earmelf_linux_eabi.c:1166
-#: earmelf_linux_fdpiceabi.c:1166 earmelf_nacl.c:1166 earmelf_nbsd.c:1161
-#: earmelf_phoenix.c:1166 earmelf_vxworks.c:1201 earmelfb.c:1161
-#: earmelfb_fbsd.c:1161 earmelfb_fuchsia.c:1166 earmelfb_linux.c:1166
-#: earmelfb_linux_eabi.c:1166 earmelfb_linux_fdpiceabi.c:1166
-#: earmelfb_nacl.c:1166 earmelfb_nbsd.c:1161 earmnto.c:1136
-#, c-format
-msgid "  --vfp11-denorm-fix          Specify how to fix VFP11 denorm erratum\n"
-msgstr ""
-
-#: earmelf.c:1162 earmelf_fbsd.c:1162 earmelf_fuchsia.c:1167
-#: earmelf_haiku.c:1167 earmelf_linux.c:1167 earmelf_linux_eabi.c:1167
-#: earmelf_linux_fdpiceabi.c:1167 earmelf_nacl.c:1167 earmelf_nbsd.c:1162
-#: earmelf_phoenix.c:1167 earmelf_vxworks.c:1202 earmelfb.c:1162
-#: earmelfb_fbsd.c:1162 earmelfb_fuchsia.c:1167 earmelfb_linux.c:1167
-#: earmelfb_linux_eabi.c:1167 earmelfb_linux_fdpiceabi.c:1167
-#: earmelfb_nacl.c:1167 earmelfb_nbsd.c:1162 earmnto.c:1137
-#, c-format
 msgid ""
 "  --fix-stm32l4xx-629360      Specify how to fix STM32L4XX 629360 erratum\n"
 msgstr ""
 
+#: earmelf.c:1164 earmelf_fbsd.c:1164 earmelf_fuchsia.c:1169
+#: earmelf_haiku.c:1169 earmelf_linux.c:1169 earmelf_linux_eabi.c:1169
+#: earmelf_linux_fdpiceabi.c:1169 earmelf_nacl.c:1169 earmelf_nbsd.c:1164
+#: earmelf_phoenix.c:1169 earmelf_vxworks.c:1204 earmelfb.c:1164
+#: earmelfb_fbsd.c:1164 earmelfb_fuchsia.c:1169 earmelfb_linux.c:1169
+#: earmelfb_linux_eabi.c:1169 earmelfb_linux_fdpiceabi.c:1169
+#: earmelfb_nacl.c:1169 earmelfb_nbsd.c:1164 earmnto.c:1139
+#, c-format
+msgid ""
+"  --long-plt                  Generate long .plt entries\n"
+"                              to handle large .plt/.got displacements\n"
+msgstr ""
+
+#: earmelf.c:1166 earmelf_fbsd.c:1166 earmelf_fuchsia.c:1171
+#: earmelf_haiku.c:1171 earmelf_linux.c:1171 earmelf_linux_eabi.c:1171
+#: earmelf_linux_fdpiceabi.c:1171 earmelf_nacl.c:1171 earmelf_nbsd.c:1166
+#: earmelf_phoenix.c:1171 earmelf_vxworks.c:1206 earmelfb.c:1166
+#: earmelfb_fbsd.c:1166 earmelfb_fuchsia.c:1171 earmelfb_linux.c:1171
+#: earmelfb_linux_eabi.c:1171 earmelfb_linux_fdpiceabi.c:1171
+#: earmelfb_nacl.c:1171 earmelfb_nbsd.c:1166 earmnto.c:1141
+#, c-format
+msgid ""
+"  --cmse-implib               Make import library to be a secure gateway "
+"import\n"
+"                                library as per ARMv8-M Security Extensions\n"
+msgstr ""
+
 #: earmelf.c:1168 earmelf_fbsd.c:1168 earmelf_fuchsia.c:1173
 #: earmelf_haiku.c:1173 earmelf_linux.c:1173 earmelf_linux_eabi.c:1173
 #: earmelf_linux_fdpiceabi.c:1173 earmelf_nacl.c:1173 earmelf_nbsd.c:1168
@@ -5404,68 +5316,41 @@ msgstr ""
 #: earmelfb_nacl.c:1173 earmelfb_nbsd.c:1168 earmnto.c:1143
 #, c-format
 msgid ""
-"  --long-plt                  Generate long .plt entries\n"
-"                              to handle large .plt/.got displacements\n"
-msgstr ""
-
-#: earmelf.c:1170 earmelf_fbsd.c:1170 earmelf_fuchsia.c:1175
-#: earmelf_haiku.c:1175 earmelf_linux.c:1175 earmelf_linux_eabi.c:1175
-#: earmelf_linux_fdpiceabi.c:1175 earmelf_nacl.c:1175 earmelf_nbsd.c:1170
-#: earmelf_phoenix.c:1175 earmelf_vxworks.c:1210 earmelfb.c:1170
-#: earmelfb_fbsd.c:1170 earmelfb_fuchsia.c:1175 earmelfb_linux.c:1175
-#: earmelfb_linux_eabi.c:1175 earmelfb_linux_fdpiceabi.c:1175
-#: earmelfb_nacl.c:1175 earmelfb_nbsd.c:1170 earmnto.c:1145
-#, c-format
-msgid ""
-"  --cmse-implib               Make import library to be a secure gateway "
-"import\n"
-"                                library as per ARMv8-M Security Extensions\n"
-msgstr ""
-
-#: earmelf.c:1172 earmelf_fbsd.c:1172 earmelf_fuchsia.c:1177
-#: earmelf_haiku.c:1177 earmelf_linux.c:1177 earmelf_linux_eabi.c:1177
-#: earmelf_linux_fdpiceabi.c:1177 earmelf_nacl.c:1177 earmelf_nbsd.c:1172
-#: earmelf_phoenix.c:1177 earmelf_vxworks.c:1212 earmelfb.c:1172
-#: earmelfb_fbsd.c:1172 earmelfb_fuchsia.c:1177 earmelfb_linux.c:1177
-#: earmelfb_linux_eabi.c:1177 earmelfb_linux_fdpiceabi.c:1177
-#: earmelfb_nacl.c:1177 earmelfb_nbsd.c:1172 earmnto.c:1147
-#, c-format
-msgid ""
 "  --in-implib                 Import library whose symbols address must\n"
 "                                remain stable\n"
 msgstr ""
 
-#: earmelf.c:1183 earmelf_fbsd.c:1183 earmelf_fuchsia.c:1188
-#: earmelf_haiku.c:1188 earmelf_linux.c:1188 earmelf_linux_eabi.c:1188
-#: earmelf_linux_fdpiceabi.c:1188 earmelf_nacl.c:1188 earmelf_nbsd.c:1183
-#: earmelf_phoenix.c:1188 earmelf_vxworks.c:1223 earmelfb.c:1183
-#: earmelfb_fbsd.c:1183 earmelfb_fuchsia.c:1188 earmelfb_linux.c:1188
-#: earmelfb_linux_eabi.c:1188 earmelfb_linux_fdpiceabi.c:1188
-#: earmelfb_nacl.c:1188 earmelfb_nbsd.c:1183 earmnto.c:1158
+#: earmelf.c:1179 earmelf_fbsd.c:1179 earmelf_fuchsia.c:1184
+#: earmelf_haiku.c:1184 earmelf_linux.c:1184 earmelf_linux_eabi.c:1184
+#: earmelf_linux_fdpiceabi.c:1184 earmelf_nacl.c:1184 earmelf_nbsd.c:1179
+#: earmelf_phoenix.c:1184 earmelf_vxworks.c:1219 earmelfb.c:1179
+#: earmelfb_fbsd.c:1179 earmelfb_fuchsia.c:1184 earmelfb_linux.c:1184
+#: earmelfb_linux_eabi.c:1184 earmelfb_linux_fdpiceabi.c:1184
+#: earmelfb_nacl.c:1184 earmelfb_nbsd.c:1179 earmnto.c:1154
 #, c-format
 msgid ""
 "  --[no-]fix-cortex-a8        Disable/enable Cortex-A8 Thumb-2 branch "
 "erratum fix\n"
 msgstr ""
 
-#: earmelf.c:1184 earmelf_fbsd.c:1184 earmelf_fuchsia.c:1189
-#: earmelf_haiku.c:1189 earmelf_linux.c:1189 earmelf_linux_eabi.c:1189
-#: earmelf_linux_fdpiceabi.c:1189 earmelf_nacl.c:1189 earmelf_nbsd.c:1184
-#: earmelf_phoenix.c:1189 earmelf_vxworks.c:1224 earmelfb.c:1184
-#: earmelfb_fbsd.c:1184 earmelfb_fuchsia.c:1189 earmelfb_linux.c:1189
-#: earmelfb_linux_eabi.c:1189 earmelfb_linux_fdpiceabi.c:1189
-#: earmelfb_nacl.c:1189 earmelfb_nbsd.c:1184 earmnto.c:1159
+#: earmelf.c:1180 earmelf_fbsd.c:1180 earmelf_fuchsia.c:1185
+#: earmelf_haiku.c:1185 earmelf_linux.c:1185 earmelf_linux_eabi.c:1185
+#: earmelf_linux_fdpiceabi.c:1185 earmelf_nacl.c:1185 earmelf_nbsd.c:1180
+#: earmelf_phoenix.c:1185 earmelf_vxworks.c:1220 earmelfb.c:1180
+#: earmelfb_fbsd.c:1180 earmelfb_fuchsia.c:1185 earmelfb_linux.c:1185
+#: earmelfb_linux_eabi.c:1185 earmelfb_linux_fdpiceabi.c:1185
+#: earmelfb_nacl.c:1185 earmelfb_nbsd.c:1180 earmnto.c:1155
 #, c-format
 msgid "  --no-merge-exidx-entries    Disable merging exidx entries\n"
 msgstr ""
 
-#: earmelf.c:1185 earmelf_fbsd.c:1185 earmelf_fuchsia.c:1190
-#: earmelf_haiku.c:1190 earmelf_linux.c:1190 earmelf_linux_eabi.c:1190
-#: earmelf_linux_fdpiceabi.c:1190 earmelf_nacl.c:1190 earmelf_nbsd.c:1185
-#: earmelf_phoenix.c:1190 earmelf_vxworks.c:1225 earmelfb.c:1185
-#: earmelfb_fbsd.c:1185 earmelfb_fuchsia.c:1190 earmelfb_linux.c:1190
-#: earmelfb_linux_eabi.c:1190 earmelfb_linux_fdpiceabi.c:1190
-#: earmelfb_nacl.c:1190 earmelfb_nbsd.c:1185 earmnto.c:1160
+#: earmelf.c:1181 earmelf_fbsd.c:1181 earmelf_fuchsia.c:1186
+#: earmelf_haiku.c:1186 earmelf_linux.c:1186 earmelf_linux_eabi.c:1186
+#: earmelf_linux_fdpiceabi.c:1186 earmelf_nacl.c:1186 earmelf_nbsd.c:1181
+#: earmelf_phoenix.c:1186 earmelf_vxworks.c:1221 earmelfb.c:1181
+#: earmelfb_fbsd.c:1181 earmelfb_fuchsia.c:1186 earmelfb_linux.c:1186
+#: earmelfb_linux_eabi.c:1186 earmelfb_linux_fdpiceabi.c:1186
+#: earmelfb_nacl.c:1186 earmelfb_nbsd.c:1181 earmnto.c:1156
 #, c-format
 msgid ""
 "  --[no-]fix-arm1176          Disable/enable ARM1176 BLX immediate erratum "
@@ -5473,20 +5358,20 @@ msgid ""
 msgstr ""
 
 #: earmelf_vxworks.c:603 eelf32_sparc_vxworks.c:73 eelf32ebmipvxworks.c:269
-#: eelf32elmipvxworks.c:269 eelf32ppcvxworks.c:226 eelf_i386_vxworks.c:97
+#: eelf32elmipvxworks.c:269 eelf32ppcvxworks.c:238 eelf_i386_vxworks.c:97
 #: eshelf_vxworks.c:73 eshlelf_vxworks.c:73
 msgid "%X%P: cannot create dynamic sections %E\n"
 msgstr ""
 
 #: earmelf_vxworks.c:609 eelf32_sparc_vxworks.c:79 eelf32ebmipvxworks.c:275
-#: eelf32elmipvxworks.c:275 eelf32ppcvxworks.c:232 eelf_i386_vxworks.c:103
+#: eelf32elmipvxworks.c:275 eelf32ppcvxworks.c:244 eelf_i386_vxworks.c:103
 #: eshelf_vxworks.c:79 eshlelf_vxworks.c:79
 msgid "%X%P: dynamic sections created in non-dynamic link\n"
 msgstr ""
 
-#: earmelf_vxworks.c:1227 eelf32_sparc_vxworks.c:532 eelf32ebmipvxworks.c:790
-#: eelf32elmipvxworks.c:790 eelf32ppcvxworks.c:843 eelf_i386_vxworks.c:617
-#: eshelf_vxworks.c:502 eshlelf_vxworks.c:502
+#: earmelf_vxworks.c:1223 eelf32_sparc_vxworks.c:528 eelf32ebmipvxworks.c:786
+#: eelf32elmipvxworks.c:786 eelf32ppcvxworks.c:851 eelf_i386_vxworks.c:613
+#: eshelf_vxworks.c:498 eshlelf_vxworks.c:498
 #, c-format
 msgid "  --force-dynamic             Always create dynamic sections\n"
 msgstr ""
@@ -5505,10 +5390,10 @@ msgstr ""
 msgid "%X%P: can not create stub BFD: %E\n"
 msgstr ""
 
-#: eavr1.c:569 eavr2.c:569 eavr25.c:569 eavr3.c:569 eavr31.c:569 eavr35.c:569
-#: eavr4.c:569 eavr5.c:569 eavr51.c:569 eavr6.c:569 eavrtiny.c:569
-#: eavrxmega1.c:569 eavrxmega2.c:569 eavrxmega3.c:569 eavrxmega4.c:569
-#: eavrxmega5.c:569 eavrxmega6.c:569 eavrxmega7.c:569
+#: eavr1.c:565 eavr2.c:565 eavr25.c:565 eavr3.c:565 eavr31.c:565 eavr35.c:565
+#: eavr4.c:565 eavr5.c:565 eavr51.c:565 eavr6.c:565 eavrtiny.c:565
+#: eavrxmega1.c:565 eavrxmega2.c:565 eavrxmega3.c:565 eavrxmega4.c:565
+#: eavrxmega5.c:565 eavrxmega6.c:565 eavrxmega7.c:565
 #, c-format
 msgid ""
 "  --pmem-wrap-around=<val>    Make the linker relaxation machine assume that "
@@ -5519,10 +5404,10 @@ msgid ""
 "64k.\n"
 msgstr ""
 
-#: eavr1.c:575 eavr2.c:575 eavr25.c:575 eavr3.c:575 eavr31.c:575 eavr35.c:575
-#: eavr4.c:575 eavr5.c:575 eavr51.c:575 eavr6.c:575 eavrtiny.c:575
-#: eavrxmega1.c:575 eavrxmega2.c:575 eavrxmega3.c:575 eavrxmega4.c:575
-#: eavrxmega5.c:575 eavrxmega6.c:575 eavrxmega7.c:575
+#: eavr1.c:571 eavr2.c:571 eavr25.c:571 eavr3.c:571 eavr31.c:571 eavr35.c:571
+#: eavr4.c:571 eavr5.c:571 eavr51.c:571 eavr6.c:571 eavrtiny.c:571
+#: eavrxmega1.c:571 eavrxmega2.c:571 eavrxmega3.c:571 eavrxmega4.c:571
+#: eavrxmega5.c:571 eavrxmega6.c:571 eavrxmega7.c:571
 #, c-format
 msgid ""
 "  --no-call-ret-replacement   The relaxation machine normally will\n"
@@ -5532,10 +5417,10 @@ msgid ""
 "                                This option disables this optimization.\n"
 msgstr ""
 
-#: eavr1.c:583 eavr2.c:583 eavr25.c:583 eavr3.c:583 eavr31.c:583 eavr35.c:583
-#: eavr4.c:583 eavr5.c:583 eavr51.c:583 eavr6.c:583 eavrtiny.c:583
-#: eavrxmega1.c:583 eavrxmega2.c:583 eavrxmega3.c:583 eavrxmega4.c:583
-#: eavrxmega5.c:583 eavrxmega6.c:583 eavrxmega7.c:583
+#: eavr1.c:579 eavr2.c:579 eavr25.c:579 eavr3.c:579 eavr31.c:579 eavr35.c:579
+#: eavr4.c:579 eavr5.c:579 eavr51.c:579 eavr6.c:579 eavrtiny.c:579
+#: eavrxmega1.c:579 eavrxmega2.c:579 eavrxmega3.c:579 eavrxmega4.c:579
+#: eavrxmega5.c:579 eavrxmega6.c:579 eavrxmega7.c:579
 #, c-format
 msgid ""
 "  --no-stubs                  If the linker detects to attempt to access\n"
@@ -5545,18 +5430,18 @@ msgid ""
 "switch.\n"
 msgstr ""
 
-#: eavr1.c:591 eavr2.c:591 eavr25.c:591 eavr3.c:591 eavr31.c:591 eavr35.c:591
-#: eavr4.c:591 eavr5.c:591 eavr51.c:591 eavr6.c:591 eavrtiny.c:591
-#: eavrxmega1.c:591 eavrxmega2.c:591 eavrxmega3.c:591 eavrxmega4.c:591
-#: eavrxmega5.c:591 eavrxmega6.c:591 eavrxmega7.c:591
+#: eavr1.c:587 eavr2.c:587 eavr25.c:587 eavr3.c:587 eavr31.c:587 eavr35.c:587
+#: eavr4.c:587 eavr5.c:587 eavr51.c:587 eavr6.c:587 eavrtiny.c:587
+#: eavrxmega1.c:587 eavrxmega2.c:587 eavrxmega3.c:587 eavrxmega4.c:587
+#: eavrxmega5.c:587 eavrxmega6.c:587 eavrxmega7.c:587
 #, c-format
 msgid "  --debug-stubs               Used for debugging avr-ld.\n"
 msgstr ""
 
-#: eavr1.c:593 eavr2.c:593 eavr25.c:593 eavr3.c:593 eavr31.c:593 eavr35.c:593
-#: eavr4.c:593 eavr5.c:593 eavr51.c:593 eavr6.c:593 eavrtiny.c:593
-#: eavrxmega1.c:593 eavrxmega2.c:593 eavrxmega3.c:593 eavrxmega4.c:593
-#: eavrxmega5.c:593 eavrxmega6.c:593 eavrxmega7.c:593
+#: eavr1.c:589 eavr2.c:589 eavr25.c:589 eavr3.c:589 eavr31.c:589 eavr35.c:589
+#: eavr4.c:589 eavr5.c:589 eavr51.c:589 eavr6.c:589 eavrtiny.c:589
+#: eavrxmega1.c:589 eavrxmega2.c:589 eavrxmega3.c:589 eavrxmega4.c:589
+#: eavrxmega5.c:589 eavrxmega6.c:589 eavrxmega7.c:589
 #, c-format
 msgid "  --debug-relax               Used for debugging avr-ld.\n"
 msgstr ""
@@ -5569,14 +5454,14 @@ msgstr ""
 msgid "%X%P: cannot build stubs: %E\n"
 msgstr ""
 
-#: ecskyelf.c:585 ecskyelf_linux.c:752
+#: ecskyelf.c:581 ecskyelf_linux.c:748
 #, c-format
 msgid ""
 "  --[no-]branch-stub          Disable/enable use of stubs to expand branch\n"
 "                                instructions that cannot reach the target.\n"
 msgstr ""
 
-#: ecskyelf.c:589 ecskyelf_linux.c:756
+#: ecskyelf.c:585 ecskyelf_linux.c:752
 #, c-format
 msgid ""
 "  --stub-group-size=N         Maximum size of a group of input sections\n"
@@ -5630,118 +5515,123 @@ msgstr ""
 msgid "%P: --auto-overlay ignored with zero local store range\n"
 msgstr ""
 
-#: eelf32_spu.c:926
+#: eelf32_spu.c:677
+#, c-format
+msgid "running: %s \"%s\" \"%s\" \"%s\" \"%s\"\n"
+msgstr ""
+
+#: eelf32_spu.c:1058
 msgid "%F%P: invalid --local-store address range `%s'\n"
 msgstr ""
 
-#: eelf32_spu.c:962
+#: eelf32_spu.c:1094
 msgid "%F%P: invalid --num-lines/--num-regions `%u'\n"
 msgstr ""
 
-#: eelf32_spu.c:967
+#: eelf32_spu.c:1099
 msgid "%F%P: invalid --line-size/--region-size `%u'\n"
 msgstr ""
 
-#: eelf32_spu.c:988
+#: eelf32_spu.c:1120
 msgid "%F%P: invalid --num-lines/--num-regions `%s'\n"
 msgstr ""
 
-#: eelf32_spu.c:1001
+#: eelf32_spu.c:1133
 msgid "%F%P: invalid --line-size/--region-size `%s'\n"
 msgstr ""
 
-#: eelf32_spu.c:1010
+#: eelf32_spu.c:1142
 msgid "%F%P: invalid --fixed-space value `%s'\n"
 msgstr ""
 
-#: eelf32_spu.c:1019
+#: eelf32_spu.c:1151
 msgid "%F%P: invalid --reserved-space value `%s'\n"
 msgstr ""
 
-#: eelf32_spu.c:1028
+#: eelf32_spu.c:1160
 msgid "%F%P: invalid --extra-stack-space value `%s'\n"
 msgstr ""
 
-#: eelf32_spu.c:1065
+#: eelf32_spu.c:1197
 #, c-format
 msgid "  --plugin                    Make SPU plugin\n"
 msgstr ""
 
-#: eelf32_spu.c:1067
+#: eelf32_spu.c:1199
 #, c-format
 msgid "  --no-overlays               No overlay handling\n"
 msgstr ""
 
-#: eelf32_spu.c:1069
+#: eelf32_spu.c:1201
 #, c-format
 msgid ""
 "  --compact-stubs             Use smaller and possibly slower call stubs\n"
 msgstr ""
 
-#: eelf32_spu.c:1071
+#: eelf32_spu.c:1203
 #, c-format
 msgid "  --emit-stub-syms            Add symbols on overlay call stubs\n"
 msgstr ""
 
-#: eelf32_spu.c:1073
+#: eelf32_spu.c:1205
 #, c-format
 msgid ""
 "  --extra-overlay-stubs       Add stubs on all calls out of overlay regions\n"
 msgstr ""
 
-#: eelf32_spu.c:1075
+#: eelf32_spu.c:1207
 #, c-format
 msgid "  --local-store=lo:hi         Valid address range\n"
 msgstr ""
 
-#: eelf32_spu.c:1077
+#: eelf32_spu.c:1209
 #, c-format
 msgid "  --stack-analysis            Estimate maximum stack requirement\n"
 msgstr ""
 
-#: eelf32_spu.c:1079
+#: eelf32_spu.c:1211
 #, c-format
 msgid ""
 "  --emit-stack-syms           Add sym giving stack needed for each func\n"
 msgstr ""
 
-#: eelf32_spu.c:1081
+#: eelf32_spu.c:1213
 #, c-format
 msgid ""
 "  --auto-overlay [=filename]  Create an overlay script in filename if\n"
 "                                executable does not fit in local store\n"
 msgstr ""
 
-#: eelf32_spu.c:1084
+#: eelf32_spu.c:1216
 #, c-format
 msgid "  --auto-relink               Rerun linker using auto-overlay script\n"
 msgstr ""
 
-#: eelf32_spu.c:1086
+#: eelf32_spu.c:1218
 #, c-format
 msgid ""
 "  --overlay-rodata            Place read-only data with associated function\n"
 "                                code in overlays\n"
 msgstr ""
 
-#: eelf32_spu.c:1089
+#: eelf32_spu.c:1221
 #, c-format
 msgid "  --num-regions               Number of overlay buffers (default 1)\n"
 msgstr ""
 
-#: eelf32_spu.c:1091
+#: eelf32_spu.c:1223
 #, c-format
 msgid ""
 "  --region-size               Size of overlay buffers (default 0, auto)\n"
 msgstr ""
 
-#: eelf32_spu.c:1093
+#: eelf32_spu.c:1225
 #, c-format
 msgid ""
 "  --fixed-space=bytes         Local store for non-overlay code and data\n"
 msgstr ""
 
-#: eelf32_spu.c:1095
+#: eelf32_spu.c:1227
 #, c-format
 msgid ""
 "  --reserved-space=bytes      Local store for stack and heap.  If not "
@@ -5750,7 +5640,7 @@ msgid ""
 "heap\n"
 msgstr ""
 
-#: eelf32_spu.c:1098
+#: eelf32_spu.c:1230
 #, c-format
 msgid ""
 "  --extra-stack-space=bytes   Space for negative sp access (default 2000) "
@@ -5758,28 +5648,28 @@ msgid ""
 "                                --reserved-space not given\n"
 msgstr ""
 
-#: eelf32_spu.c:1101
+#: eelf32_spu.c:1233
 #, c-format
 msgid "  --soft-icache               Generate software icache overlays\n"
 msgstr ""
 
-#: eelf32_spu.c:1103
+#: eelf32_spu.c:1235
 #, c-format
 msgid ""
 "  --num-lines                 Number of soft-icache lines (default 32)\n"
 msgstr ""
 
-#: eelf32_spu.c:1105
+#: eelf32_spu.c:1237
 #, c-format
 msgid "  --line-size                 Size of soft-icache lines (default 1k)\n"
 msgstr ""
 
-#: eelf32_spu.c:1107
+#: eelf32_spu.c:1239
 #, c-format
 msgid "  --non-ia-text               Allow non-icache code in icache lines\n"
 msgstr ""
 
-#: eelf32_spu.c:1109
+#: eelf32_spu.c:1241
 #, c-format
 msgid "  --lrlive-analysis           Scan function prologue for lr liveness\n"
 msgstr ""
@@ -5789,85 +5679,105 @@ msgstr ""
 msgid "%F%P: invalid --dsbt-index %d, outside DSBT size\n"
 msgstr ""
 
-#: eelf32_tic6x_be.c:595 eelf32_tic6x_elf_be.c:595 eelf32_tic6x_elf_le.c:595
-#: eelf32_tic6x_le.c:595 eelf32_tic6x_linux_be.c:595
-#: eelf32_tic6x_linux_le.c:595
+#: eelf32_tic6x_be.c:591 eelf32_tic6x_elf_be.c:591 eelf32_tic6x_elf_le.c:591
+#: eelf32_tic6x_le.c:591 eelf32_tic6x_linux_be.c:591
+#: eelf32_tic6x_linux_le.c:591
 msgid "%F%P: invalid --dsbt-index %s\n"
 msgstr ""
 
-#: eelf32_tic6x_be.c:605 eelf32_tic6x_elf_be.c:605 eelf32_tic6x_elf_le.c:605
-#: eelf32_tic6x_le.c:605 eelf32_tic6x_linux_be.c:605
-#: eelf32_tic6x_linux_le.c:605
+#: eelf32_tic6x_be.c:601 eelf32_tic6x_elf_be.c:601 eelf32_tic6x_elf_le.c:601
+#: eelf32_tic6x_le.c:601 eelf32_tic6x_linux_be.c:601
+#: eelf32_tic6x_linux_le.c:601
 msgid "%F%P: invalid --dsbt-size %s\n"
 msgstr ""
 
-#: eelf32_tic6x_be.c:621 eelf32_tic6x_elf_be.c:621 eelf32_tic6x_elf_le.c:621
-#: eelf32_tic6x_le.c:621 eelf32_tic6x_linux_be.c:621
-#: eelf32_tic6x_linux_le.c:621
+#: eelf32_tic6x_be.c:617 eelf32_tic6x_elf_be.c:617 eelf32_tic6x_elf_le.c:617
+#: eelf32_tic6x_le.c:617 eelf32_tic6x_linux_be.c:617
+#: eelf32_tic6x_linux_le.c:617
 #, c-format
 msgid ""
 "  --dsbt-index <index>    Use this as the DSBT index for the output object\n"
 msgstr ""
 
-#: eelf32_tic6x_be.c:622 eelf32_tic6x_elf_be.c:622 eelf32_tic6x_elf_le.c:622
-#: eelf32_tic6x_le.c:622 eelf32_tic6x_linux_be.c:622
-#: eelf32_tic6x_linux_le.c:622
+#: eelf32_tic6x_be.c:618 eelf32_tic6x_elf_be.c:618 eelf32_tic6x_elf_le.c:618
+#: eelf32_tic6x_le.c:618 eelf32_tic6x_linux_be.c:618
+#: eelf32_tic6x_linux_le.c:618
 #, c-format
 msgid ""
 "  --dsbt-size <index>     Use this as the number of entries in the DSBT "
 "table\n"
 msgstr ""
 
-#: eelf32_tic6x_be.c:623 eelf32_tic6x_elf_be.c:623 eelf32_tic6x_elf_le.c:623
-#: eelf32_tic6x_le.c:623 eelf32_tic6x_linux_be.c:623
-#: eelf32_tic6x_linux_le.c:623
+#: eelf32_tic6x_be.c:619 eelf32_tic6x_elf_be.c:619 eelf32_tic6x_elf_le.c:619
+#: eelf32_tic6x_le.c:619 eelf32_tic6x_linux_be.c:619
+#: eelf32_tic6x_linux_le.c:619
 #, c-format
 msgid "  --no-merge-exidx-entries\n"
 msgstr ""
 
-#: eelf32_tic6x_be.c:624 eelf32_tic6x_elf_be.c:624 eelf32_tic6x_elf_le.c:624
-#: eelf32_tic6x_le.c:624 eelf32_tic6x_linux_be.c:624
-#: eelf32_tic6x_linux_le.c:624
+#: eelf32_tic6x_be.c:620 eelf32_tic6x_elf_be.c:620 eelf32_tic6x_elf_le.c:620
+#: eelf32_tic6x_le.c:620 eelf32_tic6x_linux_be.c:620
+#: eelf32_tic6x_linux_le.c:620
 #, c-format
 msgid "                          Disable merging exidx entries\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5645 eelf_i386.c:5264 eelf_i386_be.c:501
-#: eelf_i386_fbsd.c:541 eelf_i386_haiku.c:541 eelf_i386_ldso.c:516
-#: eelf_i386_sol2.c:673 eelf_i386_vxworks.c:568 eelf_iamcu.c:541
-#: eelf_x86_64.c:5645 eelf_x86_64_cloudabi.c:544 eelf_x86_64_fbsd.c:544
-#: eelf_x86_64_haiku.c:544 eelf_x86_64_sol2.c:676
+#: eelf32_x86_64.c:5641 eelf_i386.c:5260 eelf_i386_be.c:497
+#: eelf_i386_fbsd.c:537 eelf_i386_haiku.c:537 eelf_i386_ldso.c:512
+#: eelf_i386_sol2.c:669 eelf_i386_vxworks.c:564 eelf_iamcu.c:537
+#: eelf_x86_64.c:5641 eelf_x86_64_cloudabi.c:540 eelf_x86_64_fbsd.c:540
+#: eelf_x86_64_haiku.c:540 eelf_x86_64_sol2.c:672
 msgid "%F%P: invalid number for -z call-nop=prefix-: %s\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5654 eelf_i386.c:5273 eelf_i386_be.c:510
-#: eelf_i386_fbsd.c:550 eelf_i386_haiku.c:550 eelf_i386_ldso.c:525
-#: eelf_i386_sol2.c:682 eelf_i386_vxworks.c:577 eelf_iamcu.c:550
-#: eelf_x86_64.c:5654 eelf_x86_64_cloudabi.c:553 eelf_x86_64_fbsd.c:553
-#: eelf_x86_64_haiku.c:553 eelf_x86_64_sol2.c:685
+#: eelf32_x86_64.c:5650 eelf_i386.c:5269 eelf_i386_be.c:506
+#: eelf_i386_fbsd.c:546 eelf_i386_haiku.c:546 eelf_i386_ldso.c:521
+#: eelf_i386_sol2.c:678 eelf_i386_vxworks.c:573 eelf_iamcu.c:546
+#: eelf_x86_64.c:5650 eelf_x86_64_cloudabi.c:549 eelf_x86_64_fbsd.c:549
+#: eelf_x86_64_haiku.c:549 eelf_x86_64_sol2.c:681
 msgid "%F%P: invalid number for -z call-nop=suffix-: %s\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5659 eelf_i386.c:5278 eelf_i386_be.c:515
-#: eelf_i386_fbsd.c:555 eelf_i386_haiku.c:555 eelf_i386_ldso.c:530
-#: eelf_i386_sol2.c:687 eelf_i386_vxworks.c:582 eelf_iamcu.c:555
-#: eelf_x86_64.c:5659 eelf_x86_64_cloudabi.c:558 eelf_x86_64_fbsd.c:558
-#: eelf_x86_64_haiku.c:558 eelf_x86_64_sol2.c:690
+#: eelf32_x86_64.c:5655 eelf_i386.c:5274 eelf_i386_be.c:511
+#: eelf_i386_fbsd.c:551 eelf_i386_haiku.c:551 eelf_i386_ldso.c:526
+#: eelf_i386_sol2.c:683 eelf_i386_vxworks.c:578 eelf_iamcu.c:551
+#: eelf_x86_64.c:5655 eelf_x86_64_cloudabi.c:554 eelf_x86_64_fbsd.c:554
+#: eelf_x86_64_haiku.c:554 eelf_x86_64_sol2.c:686
 msgid "%F%P: unsupported option: -z %s\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5681 eelf_i386.c:5300 eelf_i386_fbsd.c:577
-#: eelf_i386_haiku.c:577 eelf_x86_64.c:5681 eelf_x86_64_cloudabi.c:580
-#: eelf_x86_64_fbsd.c:580 eelf_x86_64_haiku.c:580 eelf_x86_64_sol2.c:712
+#: eelf32_x86_64.c:5677 eelf_i386.c:5296 eelf_i386_fbsd.c:573
+#: eelf_i386_haiku.c:573 eelf_x86_64.c:5677 eelf_x86_64_cloudabi.c:576
+#: eelf_x86_64_fbsd.c:576 eelf_x86_64_haiku.c:576 eelf_x86_64_sol2.c:708
 msgid "%F%P: invalid option for -z cet-report=: %s\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5695 eelf_i386.c:5314 eelf_i386_fbsd.c:591
-#: eelf_i386_haiku.c:591 eelf_x86_64.c:5695 eelf_x86_64_cloudabi.c:594
-#: eelf_x86_64_fbsd.c:594 eelf_x86_64_haiku.c:594 eelf_x86_64_sol2.c:726
+#: eelf32_x86_64.c:5691 eelf_i386.c:5310 eelf_i386_fbsd.c:587
+#: eelf_i386_haiku.c:587 eelf_x86_64.c:5691 eelf_x86_64_cloudabi.c:590
+#: eelf_x86_64_fbsd.c:590 eelf_x86_64_haiku.c:590 eelf_x86_64_sol2.c:722
 msgid "%F%P: invalid x86-64 ISA level: %s\n"
 msgstr ""
 
+#: eelf32_x86_64.c:5733 eelf_i386.c:5352 eelf_i386_be.c:527
+#: eelf_i386_fbsd.c:629 eelf_i386_haiku.c:629 eelf_i386_ldso.c:551
+#: eelf_i386_sol2.c:708 eelf_i386_vxworks.c:599 eelf_iamcu.c:576
+#: eelf_x86_64.c:5783 eelf_x86_64_cloudabi.c:682 eelf_x86_64_fbsd.c:682
+#: eelf_x86_64_haiku.c:682 eelf_x86_64_sol2.c:814
+#, c-format
+msgid ""
+"  -z noextern-protected-data  Do not treat protected data symbol as "
+"external\n"
+msgstr ""
+
+#: eelf32_x86_64.c:5735 eelf_i386.c:5354 eelf_i386_be.c:529
+#: eelf_i386_fbsd.c:631 eelf_i386_haiku.c:631 eelf_i386_ldso.c:553
+#: eelf_i386_sol2.c:710 eelf_i386_vxworks.c:601 eelf_iamcu.c:578
+#: eelf_x86_64.c:5785 eelf_x86_64_cloudabi.c:684 eelf_x86_64_fbsd.c:684
+#: eelf_x86_64_haiku.c:684 eelf_x86_64_sol2.c:816
+#, c-format
+msgid "  -z indirect-extern-access   Enable indirect external access\n"
+msgstr ""
+
 #: eelf32_x86_64.c:5737 eelf_i386.c:5356 eelf_i386_be.c:531
 #: eelf_i386_fbsd.c:633 eelf_i386_haiku.c:633 eelf_i386_ldso.c:555
 #: eelf_i386_sol2.c:712 eelf_i386_vxworks.c:603 eelf_iamcu.c:580
@@ -5875,153 +5785,148 @@ msgstr ""
 #: eelf_x86_64_haiku.c:686 eelf_x86_64_sol2.c:818
 #, c-format
 msgid ""
-"  -z noextern-protected-data  Do not treat protected data symbol as "
-"external\n"
-msgstr ""
-
-#: eelf32_x86_64.c:5739 eelf_i386.c:5358 eelf_i386_be.c:533
-#: eelf_i386_fbsd.c:635 eelf_i386_haiku.c:635 eelf_i386_ldso.c:557
-#: eelf_i386_sol2.c:714 eelf_i386_vxworks.c:605 eelf_iamcu.c:582
-#: eelf_x86_64.c:5789 eelf_x86_64_cloudabi.c:688 eelf_x86_64_fbsd.c:688
-#: eelf_x86_64_haiku.c:688 eelf_x86_64_sol2.c:820
-#, c-format
-msgid "  -z indirect-extern-access   Enable indirect external access\n"
-msgstr ""
-
-#: eelf32_x86_64.c:5741 eelf_i386.c:5360 eelf_i386_be.c:535
-#: eelf_i386_fbsd.c:637 eelf_i386_haiku.c:637 eelf_i386_ldso.c:559
-#: eelf_i386_sol2.c:716 eelf_i386_vxworks.c:607 eelf_iamcu.c:584
-#: eelf_x86_64.c:5791 eelf_x86_64_cloudabi.c:690 eelf_x86_64_fbsd.c:690
-#: eelf_x86_64_haiku.c:690 eelf_x86_64_sol2.c:822
-#, c-format
-msgid ""
 "  -z noindirect-extern-access Disable indirect external access (default)\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5744 eelf32lppc.c:835 eelf32lppclinux.c:835
-#: eelf32lppcnto.c:835 eelf32lppcsim.c:835 eelf32ppc.c:835
-#: eelf32ppc_fbsd.c:835 eelf32ppchaiku.c:835 eelf32ppclinux.c:835
-#: eelf32ppcnto.c:835 eelf32ppcsim.c:835 eelf32ppcvxworks.c:813
-#: eelf32ppcwindiss.c:835 eelf64lppc.c:1365 eelf64lppc_fbsd.c:1365
-#: eelf64ppc.c:1365 eelf64ppc_fbsd.c:1365 eelf_i386.c:5363 eelf_i386_be.c:538
-#: eelf_i386_fbsd.c:640 eelf_i386_haiku.c:640 eelf_i386_ldso.c:562
-#: eelf_i386_sol2.c:719 eelf_i386_vxworks.c:610 eelf_iamcu.c:587
-#: eelf_x86_64.c:5794 eelf_x86_64_cloudabi.c:693 eelf_x86_64_fbsd.c:693
-#: eelf_x86_64_haiku.c:693 eelf_x86_64_sol2.c:825
+#: eelf32_x86_64.c:5740 eelf32lppc.c:843 eelf32lppclinux.c:843
+#: eelf32lppcnto.c:843 eelf32lppcsim.c:843 eelf32ppc.c:843
+#: eelf32ppc_fbsd.c:843 eelf32ppchaiku.c:843 eelf32ppclinux.c:843
+#: eelf32ppcnto.c:843 eelf32ppcsim.c:843 eelf32ppcvxworks.c:821
+#: eelf32ppcwindiss.c:843 eelf64lppc.c:1372 eelf64lppc_fbsd.c:1372
+#: eelf64ppc.c:1372 eelf64ppc_fbsd.c:1372 eelf_i386.c:5359 eelf_i386_be.c:534
+#: eelf_i386_fbsd.c:636 eelf_i386_haiku.c:636 eelf_i386_ldso.c:558
+#: eelf_i386_sol2.c:715 eelf_i386_vxworks.c:606 eelf_iamcu.c:583
+#: eelf_x86_64.c:5790 eelf_x86_64_cloudabi.c:689 eelf_x86_64_fbsd.c:689
+#: eelf_x86_64_haiku.c:689 eelf_x86_64_sol2.c:821
 #, c-format
 msgid ""
 "  -z dynamic-undefined-weak   Make undefined weak symbols dynamic\n"
 "  -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5748 eelf_x86_64.c:5798 eelf_x86_64_cloudabi.c:697
-#: eelf_x86_64_fbsd.c:697 eelf_x86_64_haiku.c:697 eelf_x86_64_sol2.c:829
+#: eelf32_x86_64.c:5744 eelf_x86_64.c:5794 eelf_x86_64_cloudabi.c:693
+#: eelf_x86_64_fbsd.c:693 eelf_x86_64_haiku.c:693 eelf_x86_64_sol2.c:825
 #, c-format
 msgid "  -z noreloc-overflow         Disable relocation overflow check\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5751 eelf_i386.c:5367 eelf_i386_be.c:542
-#: eelf_i386_fbsd.c:644 eelf_i386_haiku.c:644 eelf_i386_ldso.c:566
-#: eelf_i386_sol2.c:723 eelf_i386_vxworks.c:614 eelf_iamcu.c:591
-#: eelf_x86_64.c:5801 eelf_x86_64_cloudabi.c:700 eelf_x86_64_fbsd.c:700
-#: eelf_x86_64_haiku.c:700 eelf_x86_64_sol2.c:832
+#: eelf32_x86_64.c:5747 eelf_i386.c:5363 eelf_i386_be.c:538
+#: eelf_i386_fbsd.c:640 eelf_i386_haiku.c:640 eelf_i386_ldso.c:562
+#: eelf_i386_sol2.c:719 eelf_i386_vxworks.c:610 eelf_iamcu.c:587
+#: eelf_x86_64.c:5797 eelf_x86_64_cloudabi.c:696 eelf_x86_64_fbsd.c:696
+#: eelf_x86_64_haiku.c:696 eelf_x86_64_sol2.c:828
 #, c-format
 msgid "  -z call-nop=PADDING         Use PADDING as 1-byte NOP for branch\n"
 msgstr ""
 
+#: eelf32_x86_64.c:5750 eelf_i386.c:5366 eelf_i386_fbsd.c:643
+#: eelf_i386_haiku.c:643 eelf_x86_64.c:5800 eelf_x86_64_cloudabi.c:699
+#: eelf_x86_64_fbsd.c:699 eelf_x86_64_haiku.c:699 eelf_x86_64_sol2.c:831
+#, c-format
+msgid "  -z ibtplt                   Generate IBT-enabled PLT entries\n"
+msgstr ""
+
+#: eelf32_x86_64.c:5752 eelf_i386.c:5368 eelf_i386_fbsd.c:645
+#: eelf_i386_haiku.c:645 eelf_x86_64.c:5802 eelf_x86_64_cloudabi.c:701
+#: eelf_x86_64_fbsd.c:701 eelf_x86_64_haiku.c:701 eelf_x86_64_sol2.c:833
+#, c-format
+msgid "  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT\n"
+msgstr ""
+
 #: eelf32_x86_64.c:5754 eelf_i386.c:5370 eelf_i386_fbsd.c:647
 #: eelf_i386_haiku.c:647 eelf_x86_64.c:5804 eelf_x86_64_cloudabi.c:703
 #: eelf_x86_64_fbsd.c:703 eelf_x86_64_haiku.c:703 eelf_x86_64_sol2.c:835
 #, c-format
-msgid "  -z ibtplt                   Generate IBT-enabled PLT entries\n"
+msgid ""
+"  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK\n"
 msgstr ""
 
 #: eelf32_x86_64.c:5756 eelf_i386.c:5372 eelf_i386_fbsd.c:649
 #: eelf_i386_haiku.c:649 eelf_x86_64.c:5806 eelf_x86_64_cloudabi.c:705
 #: eelf_x86_64_fbsd.c:705 eelf_x86_64_haiku.c:705 eelf_x86_64_sol2.c:837
 #, c-format
-msgid "  -z ibt                      Generate GNU_PROPERTY_X86_FEATURE_1_IBT\n"
-msgstr ""
-
-#: eelf32_x86_64.c:5758 eelf_i386.c:5374 eelf_i386_fbsd.c:651
-#: eelf_i386_haiku.c:651 eelf_x86_64.c:5808 eelf_x86_64_cloudabi.c:707
-#: eelf_x86_64_fbsd.c:707 eelf_x86_64_haiku.c:707 eelf_x86_64_sol2.c:839
-#, c-format
 msgid ""
-"  -z shstk                    Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK\n"
+"  -z cet-report=[none|warning|error] (default: none)\n"
+"                              Report missing IBT and SHSTK properties\n"
 msgstr ""
 
 #: eelf32_x86_64.c:5760 eelf_i386.c:5376 eelf_i386_fbsd.c:653
 #: eelf_i386_haiku.c:653 eelf_x86_64.c:5810 eelf_x86_64_cloudabi.c:709
 #: eelf_x86_64_fbsd.c:709 eelf_x86_64_haiku.c:709 eelf_x86_64_sol2.c:841
 #, c-format
-msgid ""
-"  -z cet-report=[none|warning|error] (default: none)\n"
-"                              Report missing IBT and SHSTK properties\n"
-msgstr ""
-
-#: eelf32_x86_64.c:5764 eelf_i386.c:5380 eelf_i386_fbsd.c:657
-#: eelf_i386_haiku.c:657 eelf_x86_64.c:5814 eelf_x86_64_cloudabi.c:713
-#: eelf_x86_64_fbsd.c:713 eelf_x86_64_haiku.c:713 eelf_x86_64_sol2.c:845
-#, c-format
 msgid "  -z report-relative-reloc    Report relative relocations\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5767 eelf_i386.c:5383 eelf_i386_fbsd.c:660
-#: eelf_i386_haiku.c:660 eelf_x86_64.c:5817 eelf_x86_64_cloudabi.c:716
-#: eelf_x86_64_fbsd.c:716 eelf_x86_64_haiku.c:716 eelf_x86_64_sol2.c:848
+#: eelf32_x86_64.c:5763 eelf_i386.c:5379 eelf_i386_fbsd.c:656
+#: eelf_i386_haiku.c:656 eelf_x86_64.c:5813 eelf_x86_64_cloudabi.c:712
+#: eelf_x86_64_fbsd.c:712 eelf_x86_64_haiku.c:712 eelf_x86_64_sol2.c:844
 #, c-format
 msgid ""
 "  -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as "
 "needed\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5770 eelf64lppc.c:1369 eelf64lppc_fbsd.c:1369
-#: eelf64ppc.c:1369 eelf64ppc_fbsd.c:1369 eelf_i386.c:5386
-#: eelf_i386_fbsd.c:663 eelf_i386_haiku.c:663 eelf_x86_64.c:5834
-#: eelf_x86_64_cloudabi.c:733 eelf_x86_64_fbsd.c:733 eelf_x86_64_haiku.c:733
-#: eelf_x86_64_sol2.c:865
+#: eelf32_x86_64.c:5766 eelf64lppc.c:1376 eelf64lppc_fbsd.c:1376
+#: eelf64ppc.c:1376 eelf64ppc_fbsd.c:1376 eelf_i386.c:5382
+#: eelf_i386_fbsd.c:659 eelf_i386_haiku.c:659 eelf_x86_64.c:5830
+#: eelf_x86_64_cloudabi.c:729 eelf_x86_64_fbsd.c:729 eelf_x86_64_haiku.c:729
+#: eelf_x86_64_sol2.c:861
 #, c-format
 msgid "  -z pack-relative-relocs     Pack relative relocations\n"
 msgstr ""
 
-#: eelf32_x86_64.c:5772 eelf64lppc.c:1371 eelf64lppc_fbsd.c:1371
-#: eelf64ppc.c:1371 eelf64ppc_fbsd.c:1371 eelf_i386.c:5388
-#: eelf_i386_fbsd.c:665 eelf_i386_haiku.c:665 eelf_x86_64.c:5836
-#: eelf_x86_64_cloudabi.c:735 eelf_x86_64_fbsd.c:735 eelf_x86_64_haiku.c:735
-#: eelf_x86_64_sol2.c:867
+#: eelf32_x86_64.c:5768 eelf64lppc.c:1378 eelf64lppc_fbsd.c:1378
+#: eelf64ppc.c:1378 eelf64ppc_fbsd.c:1378 eelf_i386.c:5384
+#: eelf_i386_fbsd.c:661 eelf_i386_haiku.c:661 eelf_x86_64.c:5832
+#: eelf_x86_64_cloudabi.c:731 eelf_x86_64_fbsd.c:731 eelf_x86_64_haiku.c:731
+#: eelf_x86_64_sol2.c:863
 #, c-format
 msgid ""
 "  -z nopack-relative-relocs   Do not pack relative relocations (default)\n"
 msgstr ""
 
-#: eelf32b4300.c:730 eelf32bmip.c:730 eelf32bmipn32.c:744 eelf32bsmip.c:744
-#: eelf32btsmip.c:730 eelf32btsmip_fbsd.c:730 eelf32btsmipn32.c:730
-#: eelf32btsmipn32_fbsd.c:730 eelf32ebmip.c:730 eelf32ebmipvxworks.c:769
-#: eelf32elmip.c:730 eelf32elmipvxworks.c:769 eelf32l4300.c:730
-#: eelf32lmip.c:730 eelf32lr5900.c:589 eelf32lr5900n32.c:588 eelf32lsmip.c:730
-#: eelf32ltsmip.c:730 eelf32ltsmip_fbsd.c:730 eelf32ltsmipn32.c:730
-#: eelf32ltsmipn32_fbsd.c:730 eelf32mipswindiss.c:563 eelf64bmip.c:744
-#: eelf64btsmip.c:730 eelf64btsmip_fbsd.c:730 eelf64ltsmip.c:730
-#: eelf64ltsmip_fbsd.c:730 eelf_mipsel_haiku.c:730
+#: eelf32b4300.c:726 eelf32bmip.c:726 eelf32bmipn32.c:740 eelf32bsmip.c:740
+#: eelf32btsmip.c:726 eelf32btsmip_fbsd.c:726 eelf32btsmipn32.c:726
+#: eelf32btsmipn32_fbsd.c:726 eelf32ebmip.c:726 eelf32ebmipvxworks.c:765
+#: eelf32elmip.c:726 eelf32elmipvxworks.c:765 eelf32l4300.c:726
+#: eelf32lmip.c:726 eelf32lr5900.c:585 eelf32lr5900n32.c:584 eelf32lsmip.c:726
+#: eelf32ltsmip.c:726 eelf32ltsmip_fbsd.c:726 eelf32ltsmipn32.c:726
+#: eelf32ltsmipn32_fbsd.c:726 eelf32mipswindiss.c:559 eelf64bmip.c:740
+#: eelf64btsmip.c:726 eelf64btsmip_fbsd.c:726 eelf64ltsmip.c:726
+#: eelf64ltsmip_fbsd.c:726 eelf_mipsel_haiku.c:726
 #, c-format
 msgid ""
 "  --insn32                    Only generate 32-bit microMIPS instructions\n"
 msgstr ""
 
-#: eelf32b4300.c:733 eelf32bmip.c:733 eelf32bmipn32.c:747 eelf32bsmip.c:747
-#: eelf32btsmip.c:733 eelf32btsmip_fbsd.c:733 eelf32btsmipn32.c:733
-#: eelf32btsmipn32_fbsd.c:733 eelf32ebmip.c:733 eelf32ebmipvxworks.c:772
-#: eelf32elmip.c:733 eelf32elmipvxworks.c:772 eelf32l4300.c:733
-#: eelf32lmip.c:733 eelf32lr5900.c:592 eelf32lr5900n32.c:591 eelf32lsmip.c:733
-#: eelf32ltsmip.c:733 eelf32ltsmip_fbsd.c:733 eelf32ltsmipn32.c:733
-#: eelf32ltsmipn32_fbsd.c:733 eelf32mipswindiss.c:566 eelf64bmip.c:747
-#: eelf64btsmip.c:733 eelf64btsmip_fbsd.c:733 eelf64ltsmip.c:733
-#: eelf64ltsmip_fbsd.c:733 eelf_mipsel_haiku.c:733
+#: eelf32b4300.c:729 eelf32bmip.c:729 eelf32bmipn32.c:743 eelf32bsmip.c:743
+#: eelf32btsmip.c:729 eelf32btsmip_fbsd.c:729 eelf32btsmipn32.c:729
+#: eelf32btsmipn32_fbsd.c:729 eelf32ebmip.c:729 eelf32ebmipvxworks.c:768
+#: eelf32elmip.c:729 eelf32elmipvxworks.c:768 eelf32l4300.c:729
+#: eelf32lmip.c:729 eelf32lr5900.c:588 eelf32lr5900n32.c:587 eelf32lsmip.c:729
+#: eelf32ltsmip.c:729 eelf32ltsmip_fbsd.c:729 eelf32ltsmipn32.c:729
+#: eelf32ltsmipn32_fbsd.c:729 eelf32mipswindiss.c:562 eelf64bmip.c:743
+#: eelf64btsmip.c:729 eelf64btsmip_fbsd.c:729 eelf64ltsmip.c:729
+#: eelf64ltsmip_fbsd.c:729 eelf_mipsel_haiku.c:729
 #, c-format
 msgid "  --no-insn32                 Generate all microMIPS instructions\n"
 msgstr ""
 
+#: eelf32b4300.c:732 eelf32bmip.c:732 eelf32bmipn32.c:746 eelf32bsmip.c:746
+#: eelf32btsmip.c:732 eelf32btsmip_fbsd.c:732 eelf32btsmipn32.c:732
+#: eelf32btsmipn32_fbsd.c:732 eelf32ebmip.c:732 eelf32ebmipvxworks.c:771
+#: eelf32elmip.c:732 eelf32elmipvxworks.c:771 eelf32l4300.c:732
+#: eelf32lmip.c:732 eelf32lr5900.c:591 eelf32lr5900n32.c:590 eelf32lsmip.c:732
+#: eelf32ltsmip.c:732 eelf32ltsmip_fbsd.c:732 eelf32ltsmipn32.c:732
+#: eelf32ltsmipn32_fbsd.c:732 eelf32mipswindiss.c:565 eelf64bmip.c:746
+#: eelf64btsmip.c:732 eelf64btsmip_fbsd.c:732 eelf64ltsmip.c:732
+#: eelf64ltsmip_fbsd.c:732 eelf_mipsel_haiku.c:732
+#, c-format
+msgid ""
+"  --ignore-branch-isa         Accept invalid branch relocations requiring\n"
+"                              an ISA mode switch\n"
+msgstr ""
+
 #: eelf32b4300.c:736 eelf32bmip.c:736 eelf32bmipn32.c:750 eelf32bsmip.c:750
 #: eelf32btsmip.c:736 eelf32btsmip_fbsd.c:736 eelf32btsmipn32.c:736
 #: eelf32btsmipn32_fbsd.c:736 eelf32ebmip.c:736 eelf32ebmipvxworks.c:775
@@ -6033,7 +5938,7 @@ msgstr ""
 #: eelf64ltsmip_fbsd.c:736 eelf_mipsel_haiku.c:736
 #, c-format
 msgid ""
-"  --ignore-branch-isa         Accept invalid branch relocations requiring\n"
+"  --no-ignore-branch-isa      Reject invalid branch relocations requiring\n"
 "                              an ISA mode switch\n"
 msgstr ""
 
@@ -6048,65 +5953,34 @@ msgstr ""
 #: eelf64ltsmip_fbsd.c:740 eelf_mipsel_haiku.c:740
 #, c-format
 msgid ""
-"  --no-ignore-branch-isa      Reject invalid branch relocations requiring\n"
-"                              an ISA mode switch\n"
-msgstr ""
-
-#: eelf32b4300.c:744 eelf32bmip.c:744 eelf32bmipn32.c:758 eelf32bsmip.c:758
-#: eelf32btsmip.c:744 eelf32btsmip_fbsd.c:744 eelf32btsmipn32.c:744
-#: eelf32btsmipn32_fbsd.c:744 eelf32ebmip.c:744 eelf32ebmipvxworks.c:783
-#: eelf32elmip.c:744 eelf32elmipvxworks.c:783 eelf32l4300.c:744
-#: eelf32lmip.c:744 eelf32lr5900.c:603 eelf32lr5900n32.c:602 eelf32lsmip.c:744
-#: eelf32ltsmip.c:744 eelf32ltsmip_fbsd.c:744 eelf32ltsmipn32.c:744
-#: eelf32ltsmipn32_fbsd.c:744 eelf32mipswindiss.c:577 eelf64bmip.c:758
-#: eelf64btsmip.c:744 eelf64btsmip_fbsd.c:744 eelf64ltsmip.c:744
-#: eelf64ltsmip_fbsd.c:744 eelf_mipsel_haiku.c:744
-#, c-format
-msgid ""
 "  --compact-branches          Generate compact branches/jumps for MIPS R6\n"
 msgstr ""
 
-#: eelf32b4300.c:747 eelf32bmip.c:747 eelf32bmipn32.c:761 eelf32bsmip.c:761
-#: eelf32btsmip.c:747 eelf32btsmip_fbsd.c:747 eelf32btsmipn32.c:747
-#: eelf32btsmipn32_fbsd.c:747 eelf32ebmip.c:747 eelf32ebmipvxworks.c:786
-#: eelf32elmip.c:747 eelf32elmipvxworks.c:786 eelf32l4300.c:747
-#: eelf32lmip.c:747 eelf32lr5900.c:606 eelf32lr5900n32.c:605 eelf32lsmip.c:747
-#: eelf32ltsmip.c:747 eelf32ltsmip_fbsd.c:747 eelf32ltsmipn32.c:747
-#: eelf32ltsmipn32_fbsd.c:747 eelf32mipswindiss.c:580 eelf64bmip.c:761
-#: eelf64btsmip.c:747 eelf64btsmip_fbsd.c:747 eelf64ltsmip.c:747
-#: eelf64ltsmip_fbsd.c:747 eelf_mipsel_haiku.c:747
+#: eelf32b4300.c:743 eelf32bmip.c:743 eelf32bmipn32.c:757 eelf32bsmip.c:757
+#: eelf32btsmip.c:743 eelf32btsmip_fbsd.c:743 eelf32btsmipn32.c:743
+#: eelf32btsmipn32_fbsd.c:743 eelf32ebmip.c:743 eelf32ebmipvxworks.c:782
+#: eelf32elmip.c:743 eelf32elmipvxworks.c:782 eelf32l4300.c:743
+#: eelf32lmip.c:743 eelf32lr5900.c:602 eelf32lr5900n32.c:601 eelf32lsmip.c:743
+#: eelf32ltsmip.c:743 eelf32ltsmip_fbsd.c:743 eelf32ltsmipn32.c:743
+#: eelf32ltsmipn32_fbsd.c:743 eelf32mipswindiss.c:576 eelf64bmip.c:757
+#: eelf64btsmip.c:743 eelf64btsmip_fbsd.c:743 eelf64ltsmip.c:743
+#: eelf64ltsmip_fbsd.c:743 eelf_mipsel_haiku.c:743
 #, c-format
 msgid ""
 "  --no-compact-branches       Generate delay slot branches/jumps for MIPS "
 "R6\n"
 msgstr ""
 
-#: eelf32bfin.c:486 eelf32bfinfd.c:511
+#: eelf32bfin.c:482 eelf32bfinfd.c:507
 #, c-format
 msgid "  --code-in-l1                Put code in L1\n"
 msgstr ""
 
-#: eelf32bfin.c:488 eelf32bfinfd.c:513
+#: eelf32bfin.c:484 eelf32bfinfd.c:509
 #, c-format
 msgid "  --data-in-l1                Put data in L1\n"
 msgstr ""
 
-#: eelf32briscv.c:581 eelf32briscv_ilp32.c:581 eelf32briscv_ilp32f.c:581
-#: eelf32lriscv.c:581 eelf32lriscv_ilp32.c:581 eelf32lriscv_ilp32f.c:581
-#: eelf64briscv.c:581 eelf64briscv_lp64.c:581 eelf64briscv_lp64f.c:581
-#: eelf64lriscv.c:581 eelf64lriscv_lp64.c:581 eelf64lriscv_lp64f.c:581
-#, c-format
-msgid "  --relax-gp                  Perform GP relaxation\n"
-msgstr ""
-
-#: eelf32briscv.c:582 eelf32briscv_ilp32.c:582 eelf32briscv_ilp32f.c:582
-#: eelf32lriscv.c:582 eelf32lriscv_ilp32.c:582 eelf32lriscv_ilp32f.c:582
-#: eelf64briscv.c:582 eelf64briscv_lp64.c:582 eelf64briscv_lp64f.c:582
-#: eelf64lriscv.c:582 eelf64lriscv_lp64.c:582 eelf64lriscv_lp64f.c:582
-#, c-format
-msgid "  --no-relax-gp               Don't perform GP relaxation\n"
-msgstr ""
-
 #: eelf32cr16.c:87
 msgid ""
 "%F%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
@@ -6159,157 +6033,157 @@ msgstr ""
 msgid "%X%P: ppc_finish_symbols problem %E\n"
 msgstr ""
 
-#: eelf32lppc.c:776 eelf32lppclinux.c:776 eelf32lppcnto.c:776
-#: eelf32lppcsim.c:776 eelf32ppc.c:776 eelf32ppc_fbsd.c:776
-#: eelf32ppchaiku.c:776 eelf32ppclinux.c:776 eelf32ppcnto.c:776
-#: eelf32ppcsim.c:776 eelf32ppcvxworks.c:750 eelf32ppcwindiss.c:776
-#: eelf64lppc.c:1232 eelf64lppc_fbsd.c:1232 eelf64ppc.c:1232
-#: eelf64ppc_fbsd.c:1232
+#: eelf32lppc.c:784 eelf32lppclinux.c:784 eelf32lppcnto.c:784
+#: eelf32lppcsim.c:784 eelf32ppc.c:784 eelf32ppc_fbsd.c:784
+#: eelf32ppchaiku.c:784 eelf32ppclinux.c:784 eelf32ppcnto.c:784
+#: eelf32ppcsim.c:784 eelf32ppcvxworks.c:758 eelf32ppcwindiss.c:784
+#: eelf64lppc.c:1239 eelf64lppc_fbsd.c:1239 eelf64ppc.c:1239
+#: eelf64ppc_fbsd.c:1239
 msgid "%F%P: invalid --plt-align `%s'\n"
 msgstr ""
 
-#: eelf32lppc.c:809 eelf32lppclinux.c:809 eelf32lppcnto.c:809
-#: eelf32lppcsim.c:809 eelf32ppc.c:809 eelf32ppc_fbsd.c:809
-#: eelf32ppchaiku.c:809 eelf32ppclinux.c:809 eelf32ppcnto.c:809
-#: eelf32ppcsim.c:809 eelf32ppcvxworks.c:783 eelf32ppcwindiss.c:809
+#: eelf32lppc.c:817 eelf32lppclinux.c:817 eelf32lppcnto.c:817
+#: eelf32lppcsim.c:817 eelf32ppc.c:817 eelf32ppc_fbsd.c:817
+#: eelf32ppchaiku.c:817 eelf32ppclinux.c:817 eelf32ppcnto.c:817
+#: eelf32ppcsim.c:817 eelf32ppcvxworks.c:791 eelf32ppcwindiss.c:817
 msgid "%F%P: invalid pagesize `%s'\n"
 msgstr ""
 
-#: eelf32lppc.c:839 eelf32lppclinux.c:839 eelf32lppcnto.c:839
-#: eelf32lppcsim.c:839 eelf32ppc.c:839 eelf32ppc_fbsd.c:839
-#: eelf32ppchaiku.c:839 eelf32ppclinux.c:839 eelf32ppcnto.c:839
-#: eelf32ppcsim.c:839 eelf32ppcvxworks.c:817 eelf32ppcwindiss.c:839
-#: eelf64lppc.c:1417 eelf64lppc_fbsd.c:1417 eelf64ppc.c:1417
-#: eelf64ppc_fbsd.c:1417
+#: eelf32lppc.c:847 eelf32lppclinux.c:847 eelf32lppcnto.c:847
+#: eelf32lppcsim.c:847 eelf32ppc.c:847 eelf32ppc_fbsd.c:847
+#: eelf32ppchaiku.c:847 eelf32ppclinux.c:847 eelf32ppcnto.c:847
+#: eelf32ppcsim.c:847 eelf32ppcvxworks.c:825 eelf32ppcwindiss.c:847
+#: eelf64lppc.c:1424 eelf64lppc_fbsd.c:1424 eelf64ppc.c:1424
+#: eelf64ppc_fbsd.c:1424
 #, c-format
 msgid "  --emit-stub-syms            Label linker stubs with a symbol\n"
 msgstr ""
 
-#: eelf32lppc.c:842 eelf32lppclinux.c:842 eelf32lppcnto.c:842
-#: eelf32lppcsim.c:842 eelf32ppc.c:842 eelf32ppc_fbsd.c:842
-#: eelf32ppchaiku.c:842 eelf32ppclinux.c:842 eelf32ppcnto.c:842
-#: eelf32ppcsim.c:842 eelf32ppcvxworks.c:820 eelf32ppcwindiss.c:842
-#: eelf64lppc.c:1420 eelf64lppc_fbsd.c:1420 eelf64ppc.c:1420
-#: eelf64ppc_fbsd.c:1420
+#: eelf32lppc.c:850 eelf32lppclinux.c:850 eelf32lppcnto.c:850
+#: eelf32lppcsim.c:850 eelf32ppc.c:850 eelf32ppc_fbsd.c:850
+#: eelf32ppchaiku.c:850 eelf32ppclinux.c:850 eelf32ppcnto.c:850
+#: eelf32ppcsim.c:850 eelf32ppcvxworks.c:828 eelf32ppcwindiss.c:850
+#: eelf64lppc.c:1427 eelf64lppc_fbsd.c:1427 eelf64ppc.c:1427
+#: eelf64ppc_fbsd.c:1427
 #, c-format
 msgid "  --no-emit-stub-syms         Don't label linker stubs with a symbol\n"
 msgstr ""
 
-#: eelf32lppc.c:845 eelf32lppclinux.c:845 eelf32lppcnto.c:845
-#: eelf32lppcsim.c:845 eelf32ppc.c:845 eelf32ppc_fbsd.c:845
-#: eelf32ppchaiku.c:845 eelf32ppclinux.c:845 eelf32ppcnto.c:845
-#: eelf32ppcsim.c:845 eelf32ppcvxworks.c:823 eelf32ppcwindiss.c:845
-#: eelf64lppc.c:1440 eelf64lppc_fbsd.c:1440 eelf64ppc.c:1440
-#: eelf64ppc_fbsd.c:1440
+#: eelf32lppc.c:853 eelf32lppclinux.c:853 eelf32lppcnto.c:853
+#: eelf32lppcsim.c:853 eelf32ppc.c:853 eelf32ppc_fbsd.c:853
+#: eelf32ppchaiku.c:853 eelf32ppclinux.c:853 eelf32ppcnto.c:853
+#: eelf32ppcsim.c:853 eelf32ppcvxworks.c:831 eelf32ppcwindiss.c:853
+#: eelf64lppc.c:1447 eelf64lppc_fbsd.c:1447 eelf64ppc.c:1447
+#: eelf64ppc_fbsd.c:1447
 #, c-format
 msgid "  --no-tls-optimize           Don't try to optimize TLS accesses\n"
 msgstr ""
 
-#: eelf32lppc.c:848 eelf32lppclinux.c:848 eelf32lppcnto.c:848
-#: eelf32lppcsim.c:848 eelf32ppc.c:848 eelf32ppc_fbsd.c:848
-#: eelf32ppchaiku.c:848 eelf32ppclinux.c:848 eelf32ppcnto.c:848
-#: eelf32ppcsim.c:848 eelf32ppcvxworks.c:826 eelf32ppcwindiss.c:848
-#: eelf64lppc.c:1446 eelf64lppc_fbsd.c:1446 eelf64ppc.c:1446
-#: eelf64ppc_fbsd.c:1446
+#: eelf32lppc.c:856 eelf32lppclinux.c:856 eelf32lppcnto.c:856
+#: eelf32lppcsim.c:856 eelf32ppc.c:856 eelf32ppc_fbsd.c:856
+#: eelf32ppchaiku.c:856 eelf32ppclinux.c:856 eelf32ppcnto.c:856
+#: eelf32ppcsim.c:856 eelf32ppcvxworks.c:834 eelf32ppcwindiss.c:856
+#: eelf64lppc.c:1453 eelf64lppc_fbsd.c:1453 eelf64ppc.c:1453
+#: eelf64ppc_fbsd.c:1453
 #, c-format
 msgid "  --no-tls-get-addr-optimize  Don't use a special __tls_get_addr call\n"
 msgstr ""
 
-#: eelf32lppc.c:851 eelf32lppclinux.c:851 eelf32lppcnto.c:851
-#: eelf32lppcsim.c:851 eelf32ppc.c:851 eelf32ppc_fbsd.c:851
-#: eelf32ppchaiku.c:851 eelf32ppclinux.c:851 eelf32ppcnto.c:851
-#: eelf32ppcsim.c:851 eelf32ppcwindiss.c:851
+#: eelf32lppc.c:859 eelf32lppclinux.c:859 eelf32lppcnto.c:859
+#: eelf32lppcsim.c:859 eelf32ppc.c:859 eelf32ppc_fbsd.c:859
+#: eelf32ppchaiku.c:859 eelf32ppclinux.c:859 eelf32ppcnto.c:859
+#: eelf32ppcsim.c:859 eelf32ppcwindiss.c:859
 #, c-format
 msgid "  --secure-plt                Use new-style PLT if possible\n"
 msgstr ""
 
-#: eelf32lppc.c:854 eelf32lppclinux.c:854 eelf32lppcnto.c:854
-#: eelf32lppcsim.c:854 eelf32ppc.c:854 eelf32ppc_fbsd.c:854
-#: eelf32ppchaiku.c:854 eelf32ppclinux.c:854 eelf32ppcnto.c:854
-#: eelf32ppcsim.c:854 eelf32ppcwindiss.c:854
+#: eelf32lppc.c:862 eelf32lppclinux.c:862 eelf32lppcnto.c:862
+#: eelf32lppcsim.c:862 eelf32ppc.c:862 eelf32ppc_fbsd.c:862
+#: eelf32ppchaiku.c:862 eelf32ppclinux.c:862 eelf32ppcnto.c:862
+#: eelf32ppcsim.c:862 eelf32ppcwindiss.c:862
 #, c-format
 msgid "  --bss-plt                   Force old-style BSS PLT\n"
 msgstr ""
 
-#: eelf32lppc.c:857 eelf32lppclinux.c:857 eelf32lppcnto.c:857
-#: eelf32lppcsim.c:857 eelf32ppc.c:857 eelf32ppc_fbsd.c:857
-#: eelf32ppchaiku.c:857 eelf32ppclinux.c:857 eelf32ppcnto.c:857
-#: eelf32ppcsim.c:857 eelf32ppcwindiss.c:857
+#: eelf32lppc.c:865 eelf32lppclinux.c:865 eelf32lppcnto.c:865
+#: eelf32lppcsim.c:865 eelf32ppc.c:865 eelf32ppc_fbsd.c:865
+#: eelf32ppchaiku.c:865 eelf32ppclinux.c:865 eelf32ppcnto.c:865
+#: eelf32ppcsim.c:865 eelf32ppcwindiss.c:865
 #, c-format
 msgid "  --plt-align                 Align PLT call stubs to fit cache lines\n"
 msgstr ""
 
-#: eelf32lppc.c:860 eelf32lppclinux.c:860 eelf32lppcnto.c:860
-#: eelf32lppcsim.c:860 eelf32ppc.c:860 eelf32ppc_fbsd.c:860
-#: eelf32ppchaiku.c:860 eelf32ppclinux.c:860 eelf32ppcnto.c:860
-#: eelf32ppcsim.c:860 eelf32ppcwindiss.c:860 eelf64lppc.c:1399
-#: eelf64lppc_fbsd.c:1399 eelf64ppc.c:1399 eelf64ppc_fbsd.c:1399
+#: eelf32lppc.c:868 eelf32lppclinux.c:868 eelf32lppcnto.c:868
+#: eelf32lppcsim.c:868 eelf32ppc.c:868 eelf32ppc_fbsd.c:868
+#: eelf32ppchaiku.c:868 eelf32ppclinux.c:868 eelf32ppcnto.c:868
+#: eelf32ppcsim.c:868 eelf32ppcwindiss.c:868 eelf64lppc.c:1406
+#: eelf64lppc_fbsd.c:1406 eelf64ppc.c:1406 eelf64ppc_fbsd.c:1406
 #, c-format
 msgid "  --no-plt-align              Dont't align individual PLT call stubs\n"
 msgstr ""
 
-#: eelf32lppc.c:863 eelf32lppclinux.c:863 eelf32lppcnto.c:863
-#: eelf32lppcsim.c:863 eelf32ppc.c:863 eelf32ppc_fbsd.c:863
-#: eelf32ppchaiku.c:863 eelf32ppclinux.c:863 eelf32ppcnto.c:863
-#: eelf32ppcsim.c:863 eelf32ppcwindiss.c:863 eelf64lppc.c:1458
-#: eelf64lppc_fbsd.c:1458 eelf64ppc.c:1458 eelf64ppc_fbsd.c:1458
+#: eelf32lppc.c:871 eelf32lppclinux.c:871 eelf32lppcnto.c:871
+#: eelf32lppcsim.c:871 eelf32ppc.c:871 eelf32ppc_fbsd.c:871
+#: eelf32ppchaiku.c:871 eelf32ppclinux.c:871 eelf32ppcnto.c:871
+#: eelf32ppcsim.c:871 eelf32ppcwindiss.c:871 eelf64lppc.c:1465
+#: eelf64lppc_fbsd.c:1465 eelf64ppc.c:1465 eelf64ppc_fbsd.c:1465
 #, c-format
 msgid ""
 "  --no-inline-optimize        Don't convert inline PLT to direct calls\n"
 msgstr ""
 
-#: eelf32lppc.c:866 eelf32lppclinux.c:866 eelf32lppcnto.c:866
-#: eelf32lppcsim.c:866 eelf32ppc.c:866 eelf32ppc_fbsd.c:866
-#: eelf32ppchaiku.c:866 eelf32ppclinux.c:866 eelf32ppcnto.c:866
-#: eelf32ppcsim.c:866 eelf32ppcwindiss.c:866
+#: eelf32lppc.c:874 eelf32lppclinux.c:874 eelf32lppcnto.c:874
+#: eelf32lppcsim.c:874 eelf32ppc.c:874 eelf32ppc_fbsd.c:874
+#: eelf32ppchaiku.c:874 eelf32ppclinux.c:874 eelf32ppcnto.c:874
+#: eelf32ppcsim.c:874 eelf32ppcwindiss.c:874
 #, c-format
 msgid "  --sdata-got                 Force GOT location just before .sdata\n"
 msgstr ""
 
-#: eelf32lppc.c:869 eelf32lppclinux.c:869 eelf32lppcnto.c:869
-#: eelf32lppcsim.c:869 eelf32ppc.c:869 eelf32ppc_fbsd.c:869
-#: eelf32ppchaiku.c:869 eelf32ppclinux.c:869 eelf32ppcnto.c:869
-#: eelf32ppcsim.c:869 eelf32ppcvxworks.c:829 eelf32ppcwindiss.c:869
+#: eelf32lppc.c:877 eelf32lppclinux.c:877 eelf32lppcnto.c:877
+#: eelf32lppcsim.c:877 eelf32ppc.c:877 eelf32ppc_fbsd.c:877
+#: eelf32ppchaiku.c:877 eelf32ppclinux.c:877 eelf32ppcnto.c:877
+#: eelf32ppcsim.c:877 eelf32ppcvxworks.c:837 eelf32ppcwindiss.c:877
 #, c-format
 msgid ""
 "  --ppc476-workaround [=pagesize]\n"
 "                              Avoid a cache bug on ppc476\n"
 msgstr ""
 
-#: eelf32lppc.c:873 eelf32lppclinux.c:873 eelf32lppcnto.c:873
-#: eelf32lppcsim.c:873 eelf32ppc.c:873 eelf32ppc_fbsd.c:873
-#: eelf32ppchaiku.c:873 eelf32ppclinux.c:873 eelf32ppcnto.c:873
-#: eelf32ppcsim.c:873 eelf32ppcvxworks.c:833 eelf32ppcwindiss.c:873
+#: eelf32lppc.c:881 eelf32lppclinux.c:881 eelf32lppcnto.c:881
+#: eelf32lppcsim.c:881 eelf32ppc.c:881 eelf32ppc_fbsd.c:881
+#: eelf32ppchaiku.c:881 eelf32ppclinux.c:881 eelf32ppcnto.c:881
+#: eelf32ppcsim.c:881 eelf32ppcvxworks.c:841 eelf32ppcwindiss.c:881
 #, c-format
 msgid "  --no-ppc476-workaround      Disable workaround\n"
 msgstr ""
 
-#: eelf32lppc.c:876 eelf32lppclinux.c:876 eelf32lppcnto.c:876
-#: eelf32lppcsim.c:876 eelf32ppc.c:876 eelf32ppc_fbsd.c:876
-#: eelf32ppchaiku.c:876 eelf32ppclinux.c:876 eelf32ppcnto.c:876
-#: eelf32ppcsim.c:876 eelf32ppcvxworks.c:836 eelf32ppcwindiss.c:876
+#: eelf32lppc.c:884 eelf32lppclinux.c:884 eelf32lppcnto.c:884
+#: eelf32lppcsim.c:884 eelf32ppc.c:884 eelf32ppc_fbsd.c:884
+#: eelf32ppchaiku.c:884 eelf32ppclinux.c:884 eelf32ppcnto.c:884
+#: eelf32ppcsim.c:884 eelf32ppcvxworks.c:844 eelf32ppcwindiss.c:884
 #, c-format
 msgid "  --no-pic-fixup              Don't edit non-pic to pic\n"
 msgstr ""
 
-#: eelf32lppc.c:879 eelf32lppclinux.c:879 eelf32lppcnto.c:879
-#: eelf32lppcsim.c:879 eelf32ppc.c:879 eelf32ppc_fbsd.c:879
-#: eelf32ppchaiku.c:879 eelf32ppclinux.c:879 eelf32ppcnto.c:879
-#: eelf32ppcsim.c:879 eelf32ppcvxworks.c:839 eelf32ppcwindiss.c:879
+#: eelf32lppc.c:887 eelf32lppclinux.c:887 eelf32lppcnto.c:887
+#: eelf32lppcsim.c:887 eelf32ppc.c:887 eelf32ppc_fbsd.c:887
+#: eelf32ppchaiku.c:887 eelf32ppclinux.c:887 eelf32ppcnto.c:887
+#: eelf32ppcsim.c:887 eelf32ppcvxworks.c:847 eelf32ppcwindiss.c:887
 #, c-format
 msgid ""
 "  --vle-reloc-fixup           Correct old object file 16A/16D relocation\n"
 msgstr ""
 
-#: eelf32mcore.c:336
+#: eelf32mcore.c:332
 #, c-format
 msgid ""
 "  --base_file <basefile>      Generate a base file for relocatable DLLs\n"
 msgstr ""
 
-#: eelf32metag.c:749 eelf64lppc.c:1374 eelf64lppc_fbsd.c:1374 eelf64ppc.c:1374
-#: eelf64ppc_fbsd.c:1374 ehppaelf.c:609 ehppalinux.c:791 ehppanbsd.c:791
-#: ehppaobsd.c:791
+#: eelf32metag.c:745 eelf64lppc.c:1381 eelf64lppc_fbsd.c:1381 eelf64ppc.c:1381
+#: eelf64ppc_fbsd.c:1381 ehppaelf.c:605 ehppalinux.c:787 ehppanbsd.c:787
+#: ehppaobsd.c:787
 #, c-format
 msgid ""
 "  --stub-group-size=N         Maximum size of a group of input sections "
@@ -6326,28 +6200,28 @@ msgid ""
 "                                choose suitable defaults.\n"
 msgstr ""
 
-#: eelf32rx.c:368
+#: eelf32rx.c:364
 #, c-format
 msgid ""
 "  --no-flag-mismatch-warnings Don't warn about objects with incompatible\n"
 "                                endian or dsp settings\n"
 msgstr ""
 
-#: eelf32rx.c:370
+#: eelf32rx.c:366
 #, c-format
 msgid ""
 "  --flag-mismatch-warnings    Warn about objects with incompatible\n"
 "                                endian, dsp or ABI settings\n"
 msgstr ""
 
-#: eelf32rx.c:372
+#: eelf32rx.c:368
 #, c-format
 msgid ""
 "  --ignore-lma                Ignore segment LMAs [default]\n"
 "                                (for Renesas Tools compatibility)\n"
 msgstr ""
 
-#: eelf32rx.c:374
+#: eelf32rx.c:370
 #, c-format
 msgid "  --no-ignore-lma             Don't ignore segment LMAs\n"
 msgstr ""
@@ -6410,20 +6284,20 @@ msgstr ""
 msgid "%F%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
 msgstr ""
 
-#: eelf32xtensa.c:2420
+#: eelf32xtensa.c:2416
 #, c-format
 msgid ""
 "  --size-opt                  When relaxing longcalls, prefer size\n"
 "                                optimization over branch target alignment\n"
 msgstr ""
 
-#: eelf32xtensa.c:2423
+#: eelf32xtensa.c:2419
 #, c-format
 msgid ""
 "  --abi-windowed              Choose windowed ABI for the output object\n"
 msgstr ""
 
-#: eelf32xtensa.c:2425
+#: eelf32xtensa.c:2421
 #, c-format
 msgid "  --abi-call0                 Choose call0 ABI for the output object\n"
 msgstr ""
@@ -6432,19 +6306,19 @@ msgstr ""
 msgid "%F%P: %pB: Instruction sets of object files incompatible\n"
 msgstr ""
 
-#: eelf64_ia64.c:522 eelf64_ia64_fbsd.c:522
+#: eelf64_ia64.c:518 eelf64_ia64_fbsd.c:518
 #, c-format
 msgid ""
 "  --itanium                   Generate code for Intel Itanium processor\n"
 msgstr ""
 
-#: eelf64_s390.c:565
+#: eelf64_s390.c:561
 #, c-format
 msgid ""
 "  --s390-pgste                Tell the kernel to allocate 4k page tables\n"
 msgstr ""
 
-#: eelf64alpha.c:594 eelf64alpha_fbsd.c:594 eelf64alpha_nbsd.c:594
+#: eelf64alpha.c:590 eelf64alpha_fbsd.c:590 eelf64alpha_nbsd.c:590
 #, c-format
 msgid ""
 "  --taso                      Load executable in the lower 31-bit "
@@ -6452,12 +6326,12 @@ msgid ""
 "                                virtual address range\n"
 msgstr ""
 
-#: eelf64alpha.c:597 eelf64alpha_fbsd.c:597 eelf64alpha_nbsd.c:597
+#: eelf64alpha.c:593 eelf64alpha_fbsd.c:593 eelf64alpha_nbsd.c:593
 #, c-format
 msgid "  --secureplt                 Force PLT in text segment\n"
 msgstr ""
 
-#: eelf64alpha.c:599 eelf64alpha_fbsd.c:599 eelf64alpha_nbsd.c:599
+#: eelf64alpha.c:595 eelf64alpha_fbsd.c:595 eelf64alpha_nbsd.c:595
 #, c-format
 msgid "  --no-secureplt              Force PLT in data segment\n"
 msgstr ""
@@ -6476,76 +6350,76 @@ msgstr ""
 msgid "%P: .init/.fini fragments use differing TOC pointers\n"
 msgstr ""
 
-#: eelf64lppc.c:1261 eelf64lppc_fbsd.c:1261 eelf64ppc.c:1261
-#: eelf64ppc_fbsd.c:1261
+#: eelf64lppc.c:1268 eelf64lppc_fbsd.c:1268 eelf64ppc.c:1268
+#: eelf64ppc_fbsd.c:1268
 msgid "%F%P: invalid --power10-stubs argument `%s'\n"
 msgstr ""
 
-#: eelf64lppc.c:1384 eelf64ppc.c:1384
+#: eelf64lppc.c:1391 eelf64ppc.c:1391
 #, c-format
 msgid ""
 "  --plt-static-chain          PLT call stubs should load r11 (default)\n"
 msgstr ""
 
-#: eelf64lppc.c:1387 eelf64ppc.c:1387
+#: eelf64lppc.c:1394 eelf64ppc.c:1394
 #, c-format
 msgid "  --no-plt-static-chain       PLT call stubs should not load r11\n"
 msgstr ""
 
-#: eelf64lppc.c:1390 eelf64lppc_fbsd.c:1390 eelf64ppc.c:1390
-#: eelf64ppc_fbsd.c:1390
+#: eelf64lppc.c:1397 eelf64lppc_fbsd.c:1397 eelf64ppc.c:1397
+#: eelf64ppc_fbsd.c:1397
 #, c-format
 msgid "  --plt-thread-safe           PLT call stubs with load-load barrier\n"
 msgstr ""
 
-#: eelf64lppc.c:1393 eelf64lppc_fbsd.c:1393 eelf64ppc.c:1393
-#: eelf64ppc_fbsd.c:1393
+#: eelf64lppc.c:1400 eelf64lppc_fbsd.c:1400 eelf64ppc.c:1400
+#: eelf64ppc_fbsd.c:1400
 #, c-format
 msgid "  --no-plt-thread-safe        PLT call stubs without barrier\n"
 msgstr ""
 
-#: eelf64lppc.c:1396 eelf64lppc_fbsd.c:1396 eelf64ppc.c:1396
-#: eelf64ppc_fbsd.c:1396
+#: eelf64lppc.c:1403 eelf64lppc_fbsd.c:1403 eelf64ppc.c:1403
+#: eelf64ppc_fbsd.c:1403
 #, c-format
 msgid "  --plt-align [=<align>]      Align PLT call stubs to fit cache lines\n"
 msgstr ""
 
-#: eelf64lppc.c:1402 eelf64lppc_fbsd.c:1402 eelf64ppc.c:1402
-#: eelf64ppc_fbsd.c:1402
+#: eelf64lppc.c:1409 eelf64lppc_fbsd.c:1409 eelf64ppc.c:1409
+#: eelf64ppc_fbsd.c:1409
 #, c-format
 msgid ""
 "  --plt-localentry            Optimize calls to ELFv2 localentry:0 "
 "functions\n"
 msgstr ""
 
-#: eelf64lppc.c:1405 eelf64lppc_fbsd.c:1405 eelf64ppc.c:1405
-#: eelf64ppc_fbsd.c:1405
+#: eelf64lppc.c:1412 eelf64lppc_fbsd.c:1412 eelf64ppc.c:1412
+#: eelf64ppc_fbsd.c:1412
 #, c-format
 msgid "  --no-plt-localentry         Don't optimize ELFv2 calls\n"
 msgstr ""
 
-#: eelf64lppc.c:1408 eelf64lppc_fbsd.c:1408 eelf64ppc.c:1408
-#: eelf64ppc_fbsd.c:1408
+#: eelf64lppc.c:1415 eelf64lppc_fbsd.c:1415 eelf64ppc.c:1415
+#: eelf64ppc_fbsd.c:1415
 #, c-format
 msgid ""
 "  --power10-stubs [=auto]     Use Power10 PLT call stubs (default auto)\n"
 msgstr ""
 
-#: eelf64lppc.c:1411 eelf64lppc_fbsd.c:1411 eelf64ppc.c:1411
-#: eelf64ppc_fbsd.c:1411
+#: eelf64lppc.c:1418 eelf64lppc_fbsd.c:1418 eelf64ppc.c:1418
+#: eelf64ppc_fbsd.c:1418
 #, c-format
 msgid ""
 "  --no-pcrel-optimize         Don't perform R_PPC64_PCREL_OPT optimization\n"
 msgstr ""
 
-#: eelf64lppc.c:1414 eelf64lppc_fbsd.c:1414 eelf64ppc.c:1414
-#: eelf64ppc_fbsd.c:1414
+#: eelf64lppc.c:1421 eelf64lppc_fbsd.c:1421 eelf64ppc.c:1421
+#: eelf64ppc_fbsd.c:1421
 #, c-format
 msgid "  --no-power10-stubs          Don't use Power10 PLT call stubs\n"
 msgstr ""
 
-#: eelf64lppc.c:1423 eelf64lppc_fbsd.c:1423 eelf64ppc.c:1423
-#: eelf64ppc_fbsd.c:1423
+#: eelf64lppc.c:1430 eelf64lppc_fbsd.c:1430 eelf64ppc.c:1430
+#: eelf64ppc_fbsd.c:1430
 #, c-format
 msgid ""
 "  --dotsyms                   For every version pattern \"foo\" in a "
@@ -6555,15 +6429,15 @@ msgid ""
 "                                descriptor symbols.  Defaults to on.\n"
 msgstr ""
 
-#: eelf64lppc.c:1429 eelf64lppc_fbsd.c:1429 eelf64ppc.c:1429
-#: eelf64ppc_fbsd.c:1429
+#: eelf64lppc.c:1436 eelf64lppc_fbsd.c:1436 eelf64ppc.c:1436
+#: eelf64ppc_fbsd.c:1436
 #, c-format
 msgid ""
 "  --no-dotsyms                Don't do anything special in version scripts\n"
 msgstr ""
 
-#: eelf64lppc.c:1432 eelf64lppc_fbsd.c:1432 eelf64ppc.c:1432
-#: eelf64ppc_fbsd.c:1432
+#: eelf64lppc.c:1439 eelf64lppc_fbsd.c:1439 eelf64ppc.c:1439
+#: eelf64ppc_fbsd.c:1439
 #, c-format
 msgid ""
 "  --save-restore-funcs        Provide register save and restore routines "
@@ -6572,71 +6446,71 @@ msgid ""
 "                                final link, off for ld -r.\n"
 msgstr ""
 
-#: eelf64lppc.c:1437 eelf64lppc_fbsd.c:1437 eelf64ppc.c:1437
-#: eelf64ppc_fbsd.c:1437
+#: eelf64lppc.c:1444 eelf64lppc_fbsd.c:1444 eelf64ppc.c:1444
+#: eelf64ppc_fbsd.c:1444
 #, c-format
 msgid "  --no-save-restore-funcs     Don't provide these routines\n"
 msgstr ""
 
-#: eelf64lppc.c:1443 eelf64lppc_fbsd.c:1443 eelf64ppc.c:1443
-#: eelf64ppc_fbsd.c:1443
+#: eelf64lppc.c:1450 eelf64lppc_fbsd.c:1450 eelf64ppc.c:1450
+#: eelf64ppc_fbsd.c:1450
 #, c-format
 msgid ""
 "  --tls-get-addr-optimize     Force use of special __tls_get_addr call\n"
 msgstr ""
 
-#: eelf64lppc.c:1449 eelf64lppc_fbsd.c:1449 eelf64ppc.c:1449
-#: eelf64ppc_fbsd.c:1449
+#: eelf64lppc.c:1456 eelf64lppc_fbsd.c:1456 eelf64ppc.c:1456
+#: eelf64ppc_fbsd.c:1456
 #, c-format
 msgid "  --tls-get-addr-regsave      Force register save __tls_get_addr stub\n"
 msgstr ""
 
-#: eelf64lppc.c:1452 eelf64lppc_fbsd.c:1452 eelf64ppc.c:1452
-#: eelf64ppc_fbsd.c:1452
+#: eelf64lppc.c:1459 eelf64lppc_fbsd.c:1459 eelf64ppc.c:1459
+#: eelf64ppc_fbsd.c:1459
 #, c-format
 msgid ""
 "  --no-tls-get-addr-regsave   Don't use register save __tls_get_addr stub\n"
 msgstr ""
 
-#: eelf64lppc.c:1455 eelf64lppc_fbsd.c:1455 eelf64ppc.c:1455
-#: eelf64ppc_fbsd.c:1455
+#: eelf64lppc.c:1462 eelf64lppc_fbsd.c:1462 eelf64ppc.c:1462
+#: eelf64ppc_fbsd.c:1462
 #, c-format
 msgid "  --no-opd-optimize           Don't optimize the OPD section\n"
 msgstr ""
 
-#: eelf64lppc.c:1461 eelf64lppc_fbsd.c:1461 eelf64ppc.c:1461
-#: eelf64ppc_fbsd.c:1461
+#: eelf64lppc.c:1468 eelf64lppc_fbsd.c:1468 eelf64ppc.c:1468
+#: eelf64ppc_fbsd.c:1468
 #, c-format
 msgid "  --no-toc-optimize           Don't optimize the TOC section\n"
 msgstr ""
 
-#: eelf64lppc.c:1464 eelf64lppc_fbsd.c:1464 eelf64ppc.c:1464
-#: eelf64ppc_fbsd.c:1464
+#: eelf64lppc.c:1471 eelf64lppc_fbsd.c:1471 eelf64ppc.c:1471
+#: eelf64ppc_fbsd.c:1471
 #, c-format
 msgid ""
 "  --no-multi-toc              Disallow automatic multiple toc sections\n"
 msgstr ""
 
-#: eelf64lppc.c:1467 eelf64lppc_fbsd.c:1467 eelf64ppc.c:1467
-#: eelf64ppc_fbsd.c:1467
+#: eelf64lppc.c:1474 eelf64lppc_fbsd.c:1474 eelf64ppc.c:1474
+#: eelf64ppc_fbsd.c:1474
 #, c-format
 msgid "  --no-toc-sort               Don't sort TOC and GOT sections\n"
 msgstr ""
 
-#: eelf64lppc.c:1470 eelf64lppc_fbsd.c:1470 eelf64ppc.c:1470
-#: eelf64ppc_fbsd.c:1470
+#: eelf64lppc.c:1477 eelf64lppc_fbsd.c:1477 eelf64ppc.c:1477
+#: eelf64ppc_fbsd.c:1477
 #, c-format
 msgid ""
 "  --non-overlapping-opd       Canonicalize .opd, so that there are no\n"
 "                                overlapping .opd entries\n"
 msgstr ""
 
-#: eelf64lppc_fbsd.c:1384 eelf64ppc_fbsd.c:1384
+#: eelf64lppc_fbsd.c:1391 eelf64ppc_fbsd.c:1391
 #, c-format
 msgid "  --plt-static-chain          PLT call stubs should load r111\n"
 msgstr ""
 
-#: eelf64lppc_fbsd.c:1387 eelf64ppc_fbsd.c:1387
+#: eelf64lppc_fbsd.c:1394 eelf64ppc_fbsd.c:1394
 #, c-format
 msgid ""
 "  --no-plt-static-chain       PLT call stubs should not load r11 (default)\n"
@@ -6655,53 +6529,53 @@ msgstr ""
 msgid "%F%P: can't finalize linker-allocated global registers\n"
 msgstr ""
 
-#: eelf_x86_64.c:5710 eelf_x86_64_cloudabi.c:609 eelf_x86_64_fbsd.c:609
-#: eelf_x86_64_haiku.c:609 eelf_x86_64_sol2.c:741
+#: eelf_x86_64.c:5706 eelf_x86_64_cloudabi.c:605 eelf_x86_64_fbsd.c:605
+#: eelf_x86_64_haiku.c:605 eelf_x86_64_sol2.c:737
 msgid "%F%P: invalid option for -z lam-u48-report=: %s\n"
 msgstr ""
 
-#: eelf_x86_64.c:5724 eelf_x86_64_cloudabi.c:623 eelf_x86_64_fbsd.c:623
-#: eelf_x86_64_haiku.c:623 eelf_x86_64_sol2.c:755
+#: eelf_x86_64.c:5720 eelf_x86_64_cloudabi.c:619 eelf_x86_64_fbsd.c:619
+#: eelf_x86_64_haiku.c:619 eelf_x86_64_sol2.c:751
 msgid "%F%P: invalid option for -z lam-u57-report=: %s\n"
 msgstr ""
 
-#: eelf_x86_64.c:5745 eelf_x86_64_cloudabi.c:644 eelf_x86_64_fbsd.c:644
-#: eelf_x86_64_haiku.c:644 eelf_x86_64_sol2.c:776
+#: eelf_x86_64.c:5741 eelf_x86_64_cloudabi.c:640 eelf_x86_64_fbsd.c:640
+#: eelf_x86_64_haiku.c:640 eelf_x86_64_sol2.c:772
 msgid "%F%P: invalid option for -z lam-report=: %s\n"
 msgstr ""
 
-#: eelf_x86_64.c:5820 eelf_x86_64_cloudabi.c:719 eelf_x86_64_fbsd.c:719
-#: eelf_x86_64_haiku.c:719 eelf_x86_64_sol2.c:851
+#: eelf_x86_64.c:5816 eelf_x86_64_cloudabi.c:715 eelf_x86_64_fbsd.c:715
+#: eelf_x86_64_haiku.c:715 eelf_x86_64_sol2.c:847
 #, c-format
 msgid ""
 "  -z lam-u48                  Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48\n"
 msgstr ""
 
-#: eelf_x86_64.c:5822 eelf_x86_64_cloudabi.c:721 eelf_x86_64_fbsd.c:721
-#: eelf_x86_64_haiku.c:721 eelf_x86_64_sol2.c:853
+#: eelf_x86_64.c:5818 eelf_x86_64_cloudabi.c:717 eelf_x86_64_fbsd.c:717
+#: eelf_x86_64_haiku.c:717 eelf_x86_64_sol2.c:849
 #, c-format
 msgid ""
 "  -z lam-u48-report=[none|warning|error] (default: none)\n"
 "                              Report missing LAM_U48 property\n"
 msgstr ""
 
-#: eelf_x86_64.c:5825 eelf_x86_64_cloudabi.c:724 eelf_x86_64_fbsd.c:724
-#: eelf_x86_64_haiku.c:724 eelf_x86_64_sol2.c:856
+#: eelf_x86_64.c:5821 eelf_x86_64_cloudabi.c:720 eelf_x86_64_fbsd.c:720
+#: eelf_x86_64_haiku.c:720 eelf_x86_64_sol2.c:852
 #, c-format
 msgid ""
 "  -z lam-u57                  Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57\n"
 msgstr ""
 
-#: eelf_x86_64.c:5827 eelf_x86_64_cloudabi.c:726 eelf_x86_64_fbsd.c:726
-#: eelf_x86_64_haiku.c:726 eelf_x86_64_sol2.c:858
+#: eelf_x86_64.c:5823 eelf_x86_64_cloudabi.c:722 eelf_x86_64_fbsd.c:722
+#: eelf_x86_64_haiku.c:722 eelf_x86_64_sol2.c:854
 #, c-format
 msgid ""
 "  -z lam-u57-report=[none|warning|error] (default: none)\n"
 "                              Report missing LAM_U57 property\n"
 msgstr ""
 
-#: eelf_x86_64.c:5830 eelf_x86_64_cloudabi.c:729 eelf_x86_64_fbsd.c:729
-#: eelf_x86_64_haiku.c:729 eelf_x86_64_sol2.c:861
+#: eelf_x86_64.c:5826 eelf_x86_64_cloudabi.c:725 eelf_x86_64_fbsd.c:725
+#: eelf_x86_64_haiku.c:725 eelf_x86_64_sol2.c:857
 #, c-format
 msgid ""
 "  -z lam-report=[none|warning|error] (default: none)\n"
@@ -6712,7 +6586,7 @@ msgstr ""
 msgid "%X%P: can not set gp\n"
 msgstr ""
 
-#: ehppaelf.c:605 ehppalinux.c:787 ehppanbsd.c:787 ehppaobsd.c:787
+#: ehppaelf.c:601 ehppalinux.c:783 ehppanbsd.c:783 ehppaobsd.c:783
 #, c-format
 msgid ""
 "  --multi-subspace            Generate import and export stubs to support\n"
@@ -6745,7 +6619,7 @@ msgstr ""
 msgid "%X%P: changing output format whilst linking is not supported\n"
 msgstr ""
 
-#: em68hc11elf.c:602 em68hc11elfb.c:602 em68hc12elf.c:602 em68hc12elfb.c:602
+#: em68hc11elf.c:598 em68hc11elfb.c:598 em68hc12elf.c:598 em68hc12elfb.c:598
 #, c-format
 msgid ""
 "  --no-trampoline             Do not generate the far trampolines used to "
@@ -6753,7 +6627,7 @@ msgid ""
 "                                a far function using jsr or bsr\n"
 msgstr ""
 
-#: em68hc11elf.c:605 em68hc11elfb.c:605 em68hc12elf.c:605 em68hc12elfb.c:605
+#: em68hc11elf.c:601 em68hc11elfb.c:601 em68hc12elf.c:601 em68hc12elfb.c:601
 #, c-format
 msgid ""
 "  --bank-window NAME          Specify the name of the memory region "
@@ -6765,11 +6639,11 @@ msgstr ""
 msgid "%F%P: %pB: all input objects must be ELF for --embedded-relocs\n"
 msgstr ""
 
-#: em68kelf.c:648 em68kelfnbsd.c:648
+#: em68kelf.c:644 em68kelfnbsd.c:644
 msgid "%P: unrecognized --got argument '%s'\n"
 msgstr ""
 
-#: em68kelf.c:661 em68kelfnbsd.c:661
+#: em68kelf.c:657 em68kelfnbsd.c:657
 #, c-format
 msgid "  --got=<type>                Specify GOT handling scheme\n"
 msgstr ""
@@ -6836,50 +6710,50 @@ msgstr ""
 msgid "%F%P: %pB: ABI version of object files mismatched\n"
 msgstr ""
 
-#: ends32belf.c:436 ends32belf16m.c:436 ends32belf_linux.c:569 ends32elf.c:436
-#: ends32elf16m.c:436 ends32elf_linux.c:569
+#: ends32belf.c:432 ends32belf16m.c:432 ends32belf_linux.c:565 ends32elf.c:432
+#: ends32elf16m.c:432 ends32elf_linux.c:565
 msgid "%P: --mbaseline is not used anymore\n"
 msgstr ""
 
+#: ends32belf.c:443 ends32belf16m.c:443 ends32belf_linux.c:576 ends32elf.c:443
+#: ends32elf16m.c:443 ends32elf_linux.c:576
+msgid "%P: --relax-[no-]reduce-fp-updat is not used anymore\n"
+msgstr ""
+
 #: ends32belf.c:447 ends32belf16m.c:447 ends32belf_linux.c:580 ends32elf.c:447
 #: ends32elf16m.c:447 ends32elf_linux.c:580
-msgid "%P: --relax-[no-]reduce-fp-updat is not used anymore\n"
-msgstr ""
-
-#: ends32belf.c:451 ends32belf16m.c:451 ends32belf_linux.c:584 ends32elf.c:451
-#: ends32elf16m.c:451 ends32elf_linux.c:584
 msgid "%P: missing file for --mexport-symbols\n"
 msgstr ""
 
-#: ends32belf.c:464 ends32belf.c:473 ends32belf16m.c:464 ends32belf16m.c:473
-#: ends32belf_linux.c:597 ends32belf_linux.c:606 ends32elf.c:464
-#: ends32elf.c:473 ends32elf16m.c:464 ends32elf16m.c:473 ends32elf_linux.c:597
-#: ends32elf_linux.c:606
+#: ends32belf.c:460 ends32belf.c:469 ends32belf16m.c:460 ends32belf16m.c:469
+#: ends32belf_linux.c:593 ends32belf_linux.c:602 ends32elf.c:460
+#: ends32elf.c:469 ends32elf16m.c:460 ends32elf16m.c:469 ends32elf_linux.c:593
+#: ends32elf_linux.c:602
 msgid "%P: valid arguments to --mhyper-relax=(low|medium|high)\n"
 msgstr ""
 
-#: ends32belf.c:493 ends32belf16m.c:493 ends32belf_linux.c:626 ends32elf.c:493
-#: ends32elf16m.c:493 ends32elf_linux.c:626
+#: ends32belf.c:489 ends32belf16m.c:489 ends32belf_linux.c:622 ends32elf.c:489
+#: ends32elf16m.c:489 ends32elf_linux.c:622
 #, c-format
 msgid "  --m[no-]fp-as-gp            Disable/enable fp-as-gp relaxation\n"
 msgstr ""
 
-#: ends32belf.c:495 ends32belf16m.c:495 ends32belf_linux.c:628 ends32elf.c:495
-#: ends32elf16m.c:495 ends32elf_linux.c:628
+#: ends32belf.c:491 ends32belf16m.c:491 ends32belf_linux.c:624 ends32elf.c:491
+#: ends32elf16m.c:491 ends32elf_linux.c:624
 #, c-format
 msgid "  --mexport-symbols=FILE      Exporting symbols in linker script\n"
 msgstr ""
 
-#: ends32belf.c:497 ends32belf16m.c:497 ends32belf_linux.c:630 ends32elf.c:497
-#: ends32elf16m.c:497 ends32elf_linux.c:630
+#: ends32belf.c:493 ends32belf16m.c:493 ends32belf_linux.c:626 ends32elf.c:493
+#: ends32elf16m.c:493 ends32elf_linux.c:626
 #, c-format
 msgid ""
 "  --mhyper-relax=level        Adjust relax level (low|medium|high). default: "
 "medium\n"
 msgstr ""
 
-#: ends32belf.c:499 ends32belf16m.c:499 ends32belf_linux.c:632 ends32elf.c:499
-#: ends32elf16m.c:499 ends32elf_linux.c:632
+#: ends32belf.c:495 ends32belf16m.c:495 ends32belf_linux.c:628 ends32elf.c:495
+#: ends32elf16m.c:495 ends32elf_linux.c:628
 #, c-format
 msgid "  --m[no-]tlsdesc-trampoline  Disable/enable TLS DESC trampoline\n"
 msgstr ""
diff --git a/ld/scripttempl/arclinux.sc b/ld/scripttempl/arclinux.sc
index 20429df45a8..3c27625fedb 100644
--- a/ld/scripttempl/arclinux.sc
+++ b/ld/scripttempl/arclinux.sc
@@ -613,7 +613,7 @@ cat <<EOF
   ${DATA_SDATA-${SDATA}}
   ${DATA_SDATA-${OTHER_SDATA_SECTIONS}}
   ${RELOCATING+${DATA_END_SYMBOLS-${USER_LABEL_PREFIX}_edata = .; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
-  ${RELOCATING+. = .;}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+${USER_LABEL_PREFIX}__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${DATA_SDATA-${SBSS}}
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index 1e3c5aa8504..fe921cd587a 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -78,6 +78,8 @@
 #	USER_LABEL_PREFIX - prefix to add to user-visible symbols.
 #	RODATA_NAME, SDATA_NAME, SBSS_NAME, BSS_NAME - base parts of names
 #		for standard sections, without initial "." or suffixes.
+#       SYMBOL_ABI_ALIGNMENT - minimum alignment in bytes which needs to be
+#               applied to every symbol definition
 #
 # When adding sections, do note that the names of some sections are used
 # when specifying the start address of the next.
@@ -165,19 +167,29 @@ if test -z "$GOT"; then
     GOTPLT=".got.plt      ${RELOCATING-0} : { *(.got.plt)${RELOCATING+ *(.igot.plt)} }"
   fi
 fi
+
+def_symbol()
+{
+    if [ -z "${SYMBOL_ABI_ALIGNMENT}" ]; then
+	echo "${USER_LABEL_PREFIX}$1 = ."
+    else
+	echo "${USER_LABEL_PREFIX}$1 = ALIGN(${SYMBOL_ABI_ALIGNMENT})"
+    fi
+}
+
 REL_IFUNC=".rel.ifunc    ${RELOCATING-0} : { *(.rel.ifunc) }"
 RELA_IFUNC=".rela.ifunc   ${RELOCATING-0} : { *(.rela.ifunc) }"
 REL_IPLT=".rel.iplt     ${RELOCATING-0} :
     {
-      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_start = .);}}
+      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rel_iplt_start"));}}
       *(.rel.iplt)
-      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_end = .);}}
+      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rel_iplt_end"));}}
     }"
 RELA_IPLT=".rela.iplt    ${RELOCATING-0} :
     {
-      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_start = .);}}
+      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rela_iplt_start"));}}
       *(.rela.iplt)
-      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_end = .);}}
+      ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rela_iplt_end"));}}
     }"
 DYNAMIC=".dynamic      ${RELOCATING-0} : { *(.dynamic) }"
 RODATA=".${RODATA_NAME}       ${RELOCATING-0} : { *(.${RODATA_NAME}${RELOCATING+ .${RODATA_NAME}.* .gnu.linkonce.r.*}) }"
@@ -267,23 +279,23 @@ else
 fi
 PREINIT_ARRAY=".preinit_array    :
   {
-    ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_start = .);}
+    ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__preinit_array_start"));}
     KEEP (*(.preinit_array))
-    ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_end = .);}
+    ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__preinit_array_end"));}
   }"
 INIT_ARRAY=".init_array    :
   {
-    ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_start = .);}
+    ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__init_array_start"));}
     ${SORT_INIT_ARRAY}
     KEEP (*(.init_array ${CTORS_IN_INIT_ARRAY}))
-    ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_end = .);}
+    ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__init_array_end"));}
   }"
 FINI_ARRAY=".fini_array    :
   {
-    ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}
+    ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__fini_array_start"));}
     ${SORT_FINI_ARRAY}
     KEEP (*(.fini_array ${DTORS_IN_FINI_ARRAY}))
-    ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}
+    ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__fini_array_end"));}
   }"
 CTOR=".ctors        ${CONSTRUCTING-0} :
   {
@@ -323,16 +335,15 @@ DTOR=".dtors        ${CONSTRUCTING-0} :
   }"
 STACK=".stack        ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
   {
-    ${RELOCATING+${USER_LABEL_PREFIX}_stack = .;}
+    ${RELOCATING+$(def_symbol "_stack");}
     *(.stack)
     ${RELOCATING+${STACK_SENTINEL}}
   }"
 test "${HAVE_NOINIT}" = "yes" && NOINIT="
   /* This section contains data that is not initialized during load,
      or during the application's initialization sequence.  */
-  .noinit (NOLOAD) :
+  .noinit ${RELOCATING-0} (NOLOAD) : ${RELOCATING+ALIGN(${ALIGNMENT})}
   {
-    ${RELOCATING+. = ALIGN(${ALIGNMENT});}
     ${RELOCATING+PROVIDE (__noinit_start = .);}
     *(.noinit${RELOCATING+ .noinit.* .gnu.linkonce.n.*})
     ${RELOCATING+. = ALIGN(${ALIGNMENT});}
@@ -341,9 +352,8 @@ test "${HAVE_NOINIT}" = "yes" && NOINIT="
 test "${HAVE_PERSISTENT}" = "yes" && PERSISTENT="
   /* This section contains data that is initialized during load,
      but not during the application's initialization sequence.  */
-  .persistent :
+  .persistent ${RELOCATING-0} : ${RELOCATING+ALIGN(${ALIGNMENT})}
   {
-    ${RELOCATING+. = ALIGN(${ALIGNMENT});}
     ${RELOCATING+PROVIDE (__persistent_start = .);}
     *(.persistent${RELOCATING+ .persistent.* .gnu.linkonce.p.*})
     ${RELOCATING+. = ALIGN(${ALIGNMENT});}
@@ -494,16 +504,16 @@ cat >> ldscripts/dyntmp.$$ <<EOF
   .rel.plt      ${RELOCATING-0} :
     {
       *(.rel.plt)
-      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_start = .);}}}
+      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rel_iplt_start"));}}}
       ${IREL_IN_PLT+${RELOCATING+*(.rel.iplt)}}
-      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_end = .);}}}
+      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rel_iplt_end"));}}}
     }
   .rela.plt     ${RELOCATING-0} :
     {
       *(.rela.plt)
-      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_start = .);}}}
+      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rela_iplt_start"));}}}
       ${IREL_IN_PLT+${RELOCATING+*(.rela.iplt)}}
-      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_end = .);}}}
+      ${IREL_IN_PLT+${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rela_iplt_end"));}}}
     }
   ${OTHER_PLT_RELOC_SECTIONS}
 EOF
@@ -628,7 +638,7 @@ cat <<EOF
   /* Thread Local Storage sections  */
   .tdata	${RELOCATING-0} :
    {
-     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__tdata_start = .);}}
+     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__tdata_start"));}}
      *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*})
    }
   .tbss		${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
@@ -676,10 +686,11 @@ cat <<EOF
   ${SDATA_GOT+${OTHER_GOT_SECTIONS}}
   ${DATA_SDATA-${SDATA}}
   ${DATA_SDATA-${OTHER_SDATA_SECTIONS}}
-  ${RELOCATING+${DATA_END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}_edata = .${CREATE_SHLIB+)}; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
+  ${RELOCATING+${SYMBOL_ABI_ALIGNMENT+. = ALIGN(${SYMBOL_ABI_ALIGNMENT});}}
+  ${RELOCATING+${DATA_END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}$(def_symbol "_edata")${CREATE_SHLIB+)}; PROVIDE ($(def_symbol "edata"));}}
   ${PERSISTENT}
-  ${RELOCATING+. = .;}
-  ${RELOCATING+${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}__bss_start = .${CREATE_SHLIB+)};}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
+  ${RELOCATING+${CREATE_SHLIB+PROVIDE (}$(def_symbol "__bss_start")${CREATE_SHLIB+)};}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${DATA_SDATA-${SBSS}}
   ${BSS_PLT+${PLT}}
@@ -713,7 +724,7 @@ cat <<EOF
   ${LARGE_BSS_AFTER_BSS-${LARGE_BSS}}
   ${RELOCATING+. = ALIGN(${ALIGNMENT});}
   ${RELOCATING+${OTHER_END_SYMBOLS}}
-  ${RELOCATING+${END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}_end = .${CREATE_SHLIB+)}; PROVIDE (${USER_LABEL_PREFIX}end = .);}}
+  ${RELOCATING+${END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}$(def_symbol "_end")${CREATE_SHLIB+)}; PROVIDE ($(def_symbol "end"));}}
   ${RELOCATING+${DATA_SEGMENT_END}}
   ${TINY_DATA_SECTION}
   ${TINY_BSS_SECTION}
diff --git a/ld/scripttempl/elf32msp430.sc b/ld/scripttempl/elf32msp430.sc
index 6edc908a2a0..7d5391d9f8c 100644
--- a/ld/scripttempl/elf32msp430.sc
+++ b/ld/scripttempl/elf32msp430.sc
@@ -137,9 +137,9 @@ SECTIONS
   .rela.plt    ${RELOCATING-0} : { *(.rela.plt)         }
 
   /* Internal text space.  */
-  .text ${RELOCATING-0} :
+  .text ${RELOCATING-0} : ${RELOCATING+ALIGN(2)}
   {
-    ${RELOCATING+. = ALIGN(2);
+    ${RELOCATING+
     *(SORT_NONE(.init))
     *(SORT_NONE(.init0))  /* Start here after reset.  */
     *(SORT_NONE(.init1))
@@ -189,9 +189,9 @@ SECTIONS
     _etext = .;}
   } ${RELOCATING+ > text}
 
-  .rodata ${RELOCATING-0} :
+  .rodata ${RELOCATING-0} : ${RELOCATING+ALIGN(2)}
   {
-    ${RELOCATING+. = ALIGN(2);
+    ${RELOCATING+
     *(.lower.rodata.* .lower.rodata)
 
     . = ALIGN(2);
@@ -254,11 +254,11 @@ SECTIONS
     ${RELOCATING+ _vectors_end = . ; }
   } ${RELOCATING+ > vectors}
 
-  .data ${RELOCATING-0} :
+  .data ${RELOCATING-0} : ${RELOCATING+ALIGN(2)}
   {
-    ${RELOCATING+ PROVIDE (__data_start = .) ; }
-    ${RELOCATING+ PROVIDE (__datastart = .) ; }
-    ${RELOCATING+. = ALIGN(2);
+    ${RELOCATING+
+    PROVIDE (__data_start = .) ;
+    PROVIDE (__datastart = .) ;
 
     KEEP (*(.jcr))
     *(.data.rel.ro.local) *(.data.rel.ro*)
@@ -287,9 +287,8 @@ SECTIONS
   ${RELOCATING+__romdatastart = LOADADDR(.data);
   __romdatacopysize = SIZEOF(.data);}
 
-  .bss ${RELOCATING-0}${RELOCATING+SIZEOF(.data) + ADDR(.data)} :
+  .bss ${RELOCATING-0}${RELOCATING+ALIGN(SIZEOF(.data) + ADDR(.data), 2)} :
   {
-    ${RELOCATING+. = ALIGN(2);}
     ${RELOCATING+ PROVIDE (__bss_start = .); }
     ${RELOCATING+ PROVIDE (__bssstart = .);
     *(.lower.bss.* .lower.bss)
@@ -304,9 +303,8 @@ SECTIONS
 
   /* This section contains data that is not initialized during load,
      or during the application's initialization sequence.  */
-  .noinit ${RELOCATING-0}${RELOCATING+SIZEOF(.bss) + ADDR(.bss)} :
+  .noinit ${RELOCATING-0}${RELOCATING+ALIGN(SIZEOF(.bss) + ADDR(.bss), 2)} :
   {
-    ${RELOCATING+. = ALIGN(2);}
     ${RELOCATING+ PROVIDE (__noinit_start = .) ; }
     *(.noinit${RELOCATING+ .noinit.* .gnu.linkonce.n.*})
     ${RELOCATING+. = ALIGN(2);}
@@ -315,9 +313,8 @@ SECTIONS
 
   /* This section contains data that is initialized during load,
      but not during the application's initialization sequence.  */
-  .persistent ${RELOCATING-0}${RELOCATING+SIZEOF(.noinit) + ADDR(.noinit)} :
+  .persistent ${RELOCATING-0}${RELOCATING+ALIGN(SIZEOF(.noinit) + ADDR(.noinit), 2)} :
   {
-    ${RELOCATING+. = ALIGN(2);}
     ${RELOCATING+ PROVIDE (__persistent_start = .) ; }
     *(.persistent${RELOCATING+ .persistent.* .gnu.linkonce.p.*})
     ${RELOCATING+. = ALIGN(2);}
diff --git a/ld/scripttempl/elf64bpf.sc b/ld/scripttempl/elf64bpf.sc
index 74154585125..07a0726384c 100644
--- a/ld/scripttempl/elf64bpf.sc
+++ b/ld/scripttempl/elf64bpf.sc
@@ -636,7 +636,7 @@ cat <<EOF
   ${DATA_SDATA-${SDATA}}
   ${DATA_SDATA-${OTHER_SDATA_SECTIONS}}
   ${RELOCATING+${DATA_END_SYMBOLS-${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}_edata = .${CREATE_SHLIB+)}; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
-  ${RELOCATING+. = .;}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+${CREATE_SHLIB+PROVIDE (}${USER_LABEL_PREFIX}__bss_start = .${CREATE_SHLIB+)};}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${DATA_SDATA-${SBSS}}
diff --git a/ld/scripttempl/elf64hppa.sc b/ld/scripttempl/elf64hppa.sc
index e85dd397993..b3be5a22dac 100644
--- a/ld/scripttempl/elf64hppa.sc
+++ b/ld/scripttempl/elf64hppa.sc
@@ -490,6 +490,7 @@ cat <<EOF
   ${SDATA}
   ${OTHER_SDATA_SECTIONS}
   ${RELOCATING+${DATA_END_SYMBOLS-${USER_LABEL_PREFIX}_edata = .; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${SBSS}
diff --git a/ld/scripttempl/elf_chaos.sc b/ld/scripttempl/elf_chaos.sc
index 72f91c9c9fc..88b573c131f 100644
--- a/ld/scripttempl/elf_chaos.sc
+++ b/ld/scripttempl/elf_chaos.sc
@@ -303,6 +303,7 @@ cat <<EOF
   ${OTHER_SDATA_SECTIONS}
   ${RELOCATING+_edata = .;}
   ${RELOCATING+PROVIDE (edata = .);}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${SBSS}
diff --git a/ld/scripttempl/elfarc.sc b/ld/scripttempl/elfarc.sc
index 57cd0a561a0..1ae0248a900 100644
--- a/ld/scripttempl/elfarc.sc
+++ b/ld/scripttempl/elfarc.sc
@@ -365,6 +365,7 @@ cat <<EOF
   ${OTHER_SDATA_SECTIONS}
   ${RELOCATING+_edata = .;}
   ${RELOCATING+PROVIDE (edata = .);}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${SBSS}
diff --git a/ld/scripttempl/elfd10v.sc b/ld/scripttempl/elfd10v.sc
index e52aaedeac0..316fa896329 100644
--- a/ld/scripttempl/elfd10v.sc
+++ b/ld/scripttempl/elfd10v.sc
@@ -156,6 +156,7 @@ SECTIONS
 
   ${RELOCATING+_edata = .;}
   ${RELOCATING+PROVIDE (edata = .);}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   .sbss    ${RELOCATING-0} : { *(.sbss)${RELOCATING+ *(.scommon)} } ${RELOCATING+ >DATA}
   .bss     ${RELOCATING-0} :
diff --git a/ld/scripttempl/elfxtensa.sc b/ld/scripttempl/elfxtensa.sc
index 7c71525cbeb..9c85d157881 100644
--- a/ld/scripttempl/elfxtensa.sc
+++ b/ld/scripttempl/elfxtensa.sc
@@ -500,6 +500,7 @@ cat <<EOF
   ${SDATA}
   ${OTHER_SDATA_SECTIONS}
   ${RELOCATING+${DATA_END_SYMBOLS-${USER_LABEL_PREFIX}_edata = .; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${SBSS}
diff --git a/ld/scripttempl/epiphany_4x4.sc b/ld/scripttempl/epiphany_4x4.sc
index 0f4e74f9e06..ee253af256e 100644
--- a/ld/scripttempl/epiphany_4x4.sc
+++ b/ld/scripttempl/epiphany_4x4.sc
@@ -578,7 +578,7 @@ cat <<EOF
   /* Align ___bss_start and _end to a multiple of 8 so that we can use strd
      to clear bss.  N.B., without adding any extra alignment, we would have
      to clear the bss byte by byte.  */
-  ${RELOCATING+. = ALIGN(8);}
+  ${RELOCATING+. = ALIGN(MAX(8,ALIGNOF(NEXT_SECTION)));}
   ${RELOCATING+___bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${SBSS}
diff --git a/ld/scripttempl/iq2000.sc b/ld/scripttempl/iq2000.sc
index 47bd777327e..c3d3620bc78 100644
--- a/ld/scripttempl/iq2000.sc
+++ b/ld/scripttempl/iq2000.sc
@@ -373,6 +373,7 @@ cat <<EOF
   ${RELOCATING+${OTHER_SDATA_SECTIONS}}
   ${RELOCATING+_edata = .;}
   ${RELOCATING+PROVIDE (edata = .);}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   .sbss    ${RELOCATING-0} :
diff --git a/ld/scripttempl/mep.sc b/ld/scripttempl/mep.sc
index 6b80c36066b..d49f848bf69 100644
--- a/ld/scripttempl/mep.sc
+++ b/ld/scripttempl/mep.sc
@@ -385,6 +385,7 @@ cat <<EOF
   ${OTHER_SDATA_SECTIONS}
   ${RELOCATING+_edata = .;}
   ${RELOCATING+PROVIDE (edata = .);}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${SBSS}
diff --git a/ld/scripttempl/nds32elf.sc b/ld/scripttempl/nds32elf.sc
index 9645e80c567..36d04cd1ca4 100644
--- a/ld/scripttempl/nds32elf.sc
+++ b/ld/scripttempl/nds32elf.sc
@@ -557,7 +557,7 @@ cat <<EOF
   ${OTHER_SDATA_SECTIONS}
   ${RELOCATING+. = ALIGN(4);}
   ${RELOCATING+${DATA_END_SYMBOLS-${USER_LABEL_PREFIX}_edata = .; PROVIDE (${USER_LABEL_PREFIX}edata = .);}}
-  ${RELOCATING+. = .;}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+${USER_LABEL_PREFIX}__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   ${SBSS}
diff --git a/ld/scripttempl/xstormy16.sc b/ld/scripttempl/xstormy16.sc
index ccae0a2e04f..b29f7201cb1 100644
--- a/ld/scripttempl/xstormy16.sc
+++ b/ld/scripttempl/xstormy16.sc
@@ -143,6 +143,7 @@ SECTIONS
   ${RELOCATING+${OTHER_GOT_SECTIONS}}
   ${RELOCATING+_edata = .;}
   ${RELOCATING+PROVIDE (edata = .);}
+  ${RELOCATING+. = ALIGN(ALIGNOF(NEXT_SECTION));}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
   .bss     ${RELOCATING-0} :
diff --git a/ld/testsuite/ld-bpf/call-1.d b/ld/testsuite/ld-bpf/call-1.d
index aad51d5cedc..ae455882e0f 100644
--- a/ld/testsuite/ld-bpf/call-1.d
+++ b/ld/testsuite/ld-bpf/call-1.d
@@ -1,7 +1,7 @@
-#as: --EL
+#as: --EL -mdialect=normal
 #source: foo.s
 #source: bar.s
-#objdump: -dr
+#objdump: -dr -M dec
 #ld: -EL
 #name: CALL with 64_32 reloc
 
diff --git a/ld/testsuite/ld-bpf/call-2.d b/ld/testsuite/ld-bpf/call-2.d
index 3d09095f6be..d00fabaa9b1 100644
--- a/ld/testsuite/ld-bpf/call-2.d
+++ b/ld/testsuite/ld-bpf/call-2.d
@@ -1,7 +1,7 @@
 #as: --EL
 #source: call-2.s
 #source: bar.s
-#objdump: -dr
+#objdump: -dr -M dec
 #ld: -EL
 #name: CALL with disp32 reloc and addend
 
diff --git a/ld/testsuite/ld-bpf/reloc-insn-external-be.d b/ld/testsuite/ld-bpf/reloc-insn-external-be.d
index 455daa701f7..b22ebbd99a2 100644
--- a/ld/testsuite/ld-bpf/reloc-insn-external-be.d
+++ b/ld/testsuite/ld-bpf/reloc-insn-external-be.d
@@ -1,7 +1,7 @@
-#as: --EB
+#as: -EB -mdialect=normal
 #source: reloc-data.s
 #source: reloc-insn-external.s
-#objdump: -dr
+#objdump: -dr -M hex
 #ld: -Tdata=0x20 -EB
 #name: reloc insn external BE
 
diff --git a/ld/testsuite/ld-bpf/reloc-insn-external-le.d b/ld/testsuite/ld-bpf/reloc-insn-external-le.d
index 51066388e84..ba9c305851d 100644
--- a/ld/testsuite/ld-bpf/reloc-insn-external-le.d
+++ b/ld/testsuite/ld-bpf/reloc-insn-external-le.d
@@ -1,7 +1,7 @@
-#as: --EL
+#as: -EL -mdialect=normal
 #source: reloc-data.s
 #source: reloc-insn-external.s
-#objdump: -dr
+#objdump: -dr -M hex
 #ld: -Tdata=0x20 -EL
 #name: reloc insn external LE
 
diff --git a/ld/testsuite/ld-elf/expr1.t b/ld/testsuite/ld-elf/expr1.t
index 9670e255bbd..684cffb862c 100644
--- a/ld/testsuite/ld-elf/expr1.t
+++ b/ld/testsuite/ld-elf/expr1.t
@@ -2,5 +2,5 @@ SECTIONS
 {
   .bar : AT ((ADDR(.foo) + 4095) & ~(4095)) { *(.bar) }
   .foo : { *(.foo) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/flags1.ld b/ld/testsuite/ld-elf/flags1.ld
index c003ce72c19..14d17cbe443 100644
--- a/ld/testsuite/ld-elf/flags1.ld
+++ b/ld/testsuite/ld-elf/flags1.ld
@@ -9,5 +9,5 @@ SECTIONS
   {
     . += 0x160;
   }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/loadaddr.t b/ld/testsuite/ld-elf/loadaddr.t
index 91e9ef294f0..e4036f15425 100644
--- a/ld/testsuite/ld-elf/loadaddr.t
+++ b/ld/testsuite/ld-elf/loadaddr.t
@@ -6,5 +6,5 @@ SECTIONS
   .foo : { *(.foo) }
   . = ALIGN(8192);
   .data : AT (ADDR(.data)) { *(.data) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/loadaddr3.t b/ld/testsuite/ld-elf/loadaddr3.t
index 789f61eda1e..c70e36301f1 100644
--- a/ld/testsuite/ld-elf/loadaddr3.t
+++ b/ld/testsuite/ld-elf/loadaddr3.t
@@ -12,5 +12,5 @@ SECTIONS
   .data : {data_load = LOADADDR (.data);
 	   data_start = ADDR (.data);
 	   *(.data .data.*)} >ram AT>rom
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/noload-1.t b/ld/testsuite/ld-elf/noload-1.t
index 768cd423e02..7c5c26dcb3e 100644
--- a/ld/testsuite/ld-elf/noload-1.t
+++ b/ld/testsuite/ld-elf/noload-1.t
@@ -5,5 +5,5 @@ SECTIONS
   {
     *(TEST)
   }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/overlay.t b/ld/testsuite/ld-elf/overlay.t
index 640af9650fb..ee37d05d2b5 100644
--- a/ld/testsuite/ld-elf/overlay.t
+++ b/ld/testsuite/ld-elf/overlay.t
@@ -11,7 +11,7 @@ SECTIONS
   } = 0
   .silly-name3 : { *(.silly-name3) } = 0
   .silly-name4 : { *(.silly-name4) } = 0
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
   ASSERT(ADDR(.text1)==ADDR(.text2), "overlay error")
   ASSERT(ADDR(.silly-name1)==ADDR(.silly-name2), "silly overlay error")
 }
diff --git a/ld/testsuite/ld-elf/pr13839.t b/ld/testsuite/ld-elf/pr13839.t
index 6baa2288193..59997198ae5 100644
--- a/ld/testsuite/ld-elf/pr13839.t
+++ b/ld/testsuite/ld-elf/pr13839.t
@@ -4,6 +4,6 @@ SECTIONS {
 		*(.text)
 	}
 	_end = .;
-	/DISCARD/ : { *(.*) }
+	/DISCARD/ : { *(*) }
 }
 . = ASSERT((_end - _text <= (512 * 1024 * 1024)), "foo");
diff --git a/ld/testsuite/ld-elf/pr14052.t b/ld/testsuite/ld-elf/pr14052.t
index 84fffbd499b..ebc40f124ef 100644
--- a/ld/testsuite/ld-elf/pr14052.t
+++ b/ld/testsuite/ld-elf/pr14052.t
@@ -8,5 +8,5 @@ SECTIONS {
 		_data_start = .;
 		*(.data)
 	}
-	/DISCARD/ : { *(.*) }
+	/DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/pr14156c.t b/ld/testsuite/ld-elf/pr14156c.t
index c8be2c57bfb..adf1f0a5076 100644
--- a/ld/testsuite/ld-elf/pr14156c.t
+++ b/ld/testsuite/ld-elf/pr14156c.t
@@ -1,5 +1,5 @@
 SECTIONS {
   .text : { *(.text) }
   .foo : { *(SORT_NONE(.foo)) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/pr19005.t b/ld/testsuite/ld-elf/pr19005.t
index 0e89e0b6342..e9170c37132 100644
--- a/ld/testsuite/ld-elf/pr19005.t
+++ b/ld/testsuite/ld-elf/pr19005.t
@@ -2,5 +2,5 @@ SECTIONS
 {
   .foo : { *(.foo) }
   .bar : { *(.bar) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-elf/relocatable.t b/ld/testsuite/ld-elf/relocatable.t
index 2ec056ae338..0839555b731 100644
--- a/ld/testsuite/ld-elf/relocatable.t
+++ b/ld/testsuite/ld-elf/relocatable.t
@@ -4,5 +4,5 @@ SECTIONS
   .text : { *(.text) }
   . = 0x900000;
   .data : { *(.data) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-i386/alloc.t b/ld/testsuite/ld-i386/alloc.t
index f7dd17a3001..1bbb9a6be17 100644
--- a/ld/testsuite/ld-i386/alloc.t
+++ b/ld/testsuite/ld-i386/alloc.t
@@ -8,5 +8,5 @@ SECTIONS
   .bar : AT(ADDR(.bar) - 0xC0000000) { *(.bar) } :text
   .bss : AT(ADDR(.bss) - 0xC0000000) { *(.bss) }
   .foo 0 : AT(ADDR(.bss) + SIZEOF(.bss) - 0xC0000000) { *(.foo) } :text
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-i386/ifunc-textrel-1a.d b/ld/testsuite/ld-i386/ifunc-textrel-1a.d
index 15f545db03d..aad77e7d230 100644
--- a/ld/testsuite/ld-i386/ifunc-textrel-1a.d
+++ b/ld/testsuite/ld-i386/ifunc-textrel-1a.d
@@ -1,4 +1,4 @@
 #source: ../ld-x86-64/ifunc-textrel-1.s
 #as: --32
-#ld: -m elf_i386 -pie
+#ld: -m elf_i386 -pie -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIE
diff --git a/ld/testsuite/ld-i386/ifunc-textrel-1b.d b/ld/testsuite/ld-i386/ifunc-textrel-1b.d
index 6e4a67c48f0..bf0f2ac5df9 100644
--- a/ld/testsuite/ld-i386/ifunc-textrel-1b.d
+++ b/ld/testsuite/ld-i386/ifunc-textrel-1b.d
@@ -1,4 +1,4 @@
 #source: ../ld-x86-64/ifunc-textrel-1.s
 #as: --32
-#ld: -m elf_i386 -shared
+#ld: -m elf_i386 -shared -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIC
diff --git a/ld/testsuite/ld-i386/pr18801a.d b/ld/testsuite/ld-i386/pr18801a.d
index 73cb5d17beb..b1ef145a882 100644
--- a/ld/testsuite/ld-i386/pr18801a.d
+++ b/ld/testsuite/ld-i386/pr18801a.d
@@ -1,4 +1,4 @@
 #source: pr18801.s
 #as: --32
-#ld: -m elf_i386 -pie
+#ld: -m elf_i386 -pie -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIE
diff --git a/ld/testsuite/ld-i386/pr18801b.d b/ld/testsuite/ld-i386/pr18801b.d
index 0bf7fb729cb..983346ca248 100644
--- a/ld/testsuite/ld-i386/pr18801b.d
+++ b/ld/testsuite/ld-i386/pr18801b.d
@@ -1,4 +1,4 @@
 #source: pr18801.s
 #as: --32
-#ld: -m elf_i386 -shared
+#ld: -m elf_i386 -shared -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIC
diff --git a/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d b/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d
index 29f2d3f36d3..bf73d9f2875 100644
--- a/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d
+++ b/ld/testsuite/ld-loongarch-elf/local-ifunc-reloc.d
@@ -6,5 +6,5 @@
 
 DYNAMIC RELOCATION RECORDS
 OFFSET +TYPE +VALUE
-[[:xdigit:]]+ R_LARCH_IRELATIVE +\*ABS\*\+0x[[:xdigit:]]+
 [[:xdigit:]]+ R_LARCH_64 +test
+[[:xdigit:]]+ R_LARCH_IRELATIVE +\*ABS\*\+0x[[:xdigit:]]+
diff --git a/ld/testsuite/ld-pe/image_size.t b/ld/testsuite/ld-pe/image_size.t
index f646eca5921..93f2f50b10f 100644
--- a/ld/testsuite/ld-pe/image_size.t
+++ b/ld/testsuite/ld-pe/image_size.t
@@ -11,5 +11,5 @@ SECTIONS
   {
     *(.data)
   }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/empty-address-1.d b/ld/testsuite/ld-scripts/empty-address-1.d
index dbaf778024e..210b70f7097 100644
--- a/ld/testsuite/ld-scripts/empty-address-1.d
+++ b/ld/testsuite/ld-scripts/empty-address-1.d
@@ -5,5 +5,6 @@
 0+0 [AT] _start
 #...
 0+200 [ADT] __data_end
+#...
 0+200 [ADT] __data_start
 #pass
diff --git a/ld/testsuite/ld-scripts/empty-address-1.t b/ld/testsuite/ld-scripts/empty-address-1.t
index a24f25a138b..a5796836935 100644
--- a/ld/testsuite/ld-scripts/empty-address-1.t
+++ b/ld/testsuite/ld-scripts/empty-address-1.t
@@ -8,5 +8,5 @@ SECTIONS
   }
   __data_end = .;
   .bss : { *(.bss) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/empty-address-2a.d b/ld/testsuite/ld-scripts/empty-address-2a.d
index 4471a1be6a3..a619ea19a07 100644
--- a/ld/testsuite/ld-scripts/empty-address-2a.d
+++ b/ld/testsuite/ld-scripts/empty-address-2a.d
@@ -1,7 +1,7 @@
 #source: empty-address-2.s
 #ld: -Ttext 0x0000000 -Tdata 0x200 -T empty-address-2a.t
 #nm: -n
-#xfail: bfin-*-linux* frv-*-*linux* riscv64*-*-* tic54x-*-*
+#xfail: bfin-*-linux* frv-*-*linux* riscv64*-*-* tic54x-*-* [is_xcoff_format]
 #...
 0+0 T _start
 #...
diff --git a/ld/testsuite/ld-scripts/empty-address-2a.t b/ld/testsuite/ld-scripts/empty-address-2a.t
index 0ab29a4db28..bc531158eb3 100644
--- a/ld/testsuite/ld-scripts/empty-address-2a.t
+++ b/ld/testsuite/ld-scripts/empty-address-2a.t
@@ -4,5 +4,5 @@ SECTIONS
   .data : { *(.data) }
   __data_end = .;
   .bss : { *(.bss) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/empty-address-2b.d b/ld/testsuite/ld-scripts/empty-address-2b.d
index 8dfe888b63d..c9b97b8b809 100644
--- a/ld/testsuite/ld-scripts/empty-address-2b.d
+++ b/ld/testsuite/ld-scripts/empty-address-2b.d
@@ -1,7 +1,7 @@
 #source: empty-address-2.s
 #ld: -Ttext 0x0000000 -Tdata 0x200 -T empty-address-2b.t
 #nm: -n
-#xfail: bfin-*-linux* frv-*-*linux* riscv64*-*-* tic54x-*-*
+#xfail: bfin-*-linux* frv-*-*linux* riscv64*-*-* tic54x-*-* [is_xcoff_format]
 #...
 0+0 T _start
 #...
diff --git a/ld/testsuite/ld-scripts/empty-address-2b.t b/ld/testsuite/ld-scripts/empty-address-2b.t
index c6d1e523fc2..788cd65da48 100644
--- a/ld/testsuite/ld-scripts/empty-address-2b.t
+++ b/ld/testsuite/ld-scripts/empty-address-2b.t
@@ -8,5 +8,5 @@ SECTIONS
   }
   __data_end = .;
   .bss : { *(.bss) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/empty-address-3a.d b/ld/testsuite/ld-scripts/empty-address-3a.d
index b3135bf9231..fe87ebc34ac 100644
--- a/ld/testsuite/ld-scripts/empty-address-3a.d
+++ b/ld/testsuite/ld-scripts/empty-address-3a.d
@@ -1,6 +1,7 @@
 #source: empty-address-3.s
 #ld: -T empty-address-3a.t
 #nm: -n
+#xfail: [is_xcoff_format]
 
 #...
 0+0 T _start
diff --git a/ld/testsuite/ld-scripts/empty-address-3a.t b/ld/testsuite/ld-scripts/empty-address-3a.t
index 28767a19c51..42128f8c0c0 100644
--- a/ld/testsuite/ld-scripts/empty-address-3a.t
+++ b/ld/testsuite/ld-scripts/empty-address-3a.t
@@ -7,5 +7,5 @@ SECTIONS
   }
   __data_end = .;
   .bss : { *(.bss) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/empty-address-3b.d b/ld/testsuite/ld-scripts/empty-address-3b.d
index 1e68e29b428..0d9babef6f7 100644
--- a/ld/testsuite/ld-scripts/empty-address-3b.d
+++ b/ld/testsuite/ld-scripts/empty-address-3b.d
@@ -1,6 +1,7 @@
 #source: empty-address-3.s
 #ld: -T empty-address-3b.t
 #nm: -n
+#xfail: [is_xcoff_format]
 
 #...
 0+0 T _start
diff --git a/ld/testsuite/ld-scripts/empty-address-3b.t b/ld/testsuite/ld-scripts/empty-address-3b.t
index 6da24218858..2b9e27d926a 100644
--- a/ld/testsuite/ld-scripts/empty-address-3b.t
+++ b/ld/testsuite/ld-scripts/empty-address-3b.t
@@ -8,5 +8,5 @@ SECTIONS
   }
   __data_end = .;
   .bss : { *(.bss) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/empty-address-3c.t b/ld/testsuite/ld-scripts/empty-address-3c.t
index 0829c58a3e4..13fe34e6cd2 100644
--- a/ld/testsuite/ld-scripts/empty-address-3c.t
+++ b/ld/testsuite/ld-scripts/empty-address-3c.t
@@ -8,5 +8,5 @@ SECTIONS
   }
   __data_end = .;
   .bss : { *(.bss) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/empty-address-4.t b/ld/testsuite/ld-scripts/empty-address-4.t
index f25bbfea8ac..bb0c2f6aebc 100644
--- a/ld/testsuite/ld-scripts/empty-address-4.t
+++ b/ld/testsuite/ld-scripts/empty-address-4.t
@@ -7,5 +7,5 @@ SECTIONS
     ASSERT (. < 0x400, oops);
   }
   .bss : { *(.bss) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/phdrs.t b/ld/testsuite/ld-scripts/phdrs.t
index 283e30c6799..1267322694a 100644
--- a/ld/testsuite/ld-scripts/phdrs.t
+++ b/ld/testsuite/ld-scripts/phdrs.t
@@ -12,5 +12,5 @@ SECTIONS
   . = 0x800000 + SIZEOF_HEADERS;
   .text : { *(.text) } :text
   .data : { *(.data) } :data
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/phdrs2.t b/ld/testsuite/ld-scripts/phdrs2.t
index bccbcecbc8c..d5a4c2a34d7 100644
--- a/ld/testsuite/ld-scripts/phdrs2.t
+++ b/ld/testsuite/ld-scripts/phdrs2.t
@@ -19,5 +19,5 @@ SECTIONS
 	LONG(EMPTY_START) ;
 	 } : Bar
 	
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/phdrs3.t b/ld/testsuite/ld-scripts/phdrs3.t
index 4bd4e858cf0..d86e2068962 100644
--- a/ld/testsuite/ld-scripts/phdrs3.t
+++ b/ld/testsuite/ld-scripts/phdrs3.t
@@ -12,5 +12,5 @@ SECTIONS
   . = 0x800000 + SIZEOF_HEADERS;
   .text : { *(.text) } :text
   .data : { *(.data) } :data
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/phdrs3a.t b/ld/testsuite/ld-scripts/phdrs3a.t
index c07ff34b71f..4853b7b1018 100644
--- a/ld/testsuite/ld-scripts/phdrs3a.t
+++ b/ld/testsuite/ld-scripts/phdrs3a.t
@@ -11,5 +11,5 @@ SECTIONS
   . = 0x800000 + SIZEOF_HEADERS;
   .text : { *(.text) } :text
   .data : { *(.data) } :data
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/provide-9.t b/ld/testsuite/ld-scripts/provide-9.t
index 00d906aa80a..b26051a22b8 100644
--- a/ld/testsuite/ld-scripts/provide-9.t
+++ b/ld/testsuite/ld-scripts/provide-9.t
@@ -20,6 +20,6 @@ SECTIONS
     *(.bss .bss.*)
   } >FOO
 
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
 
diff --git a/ld/testsuite/ld-scripts/sort-file.t b/ld/testsuite/ld-scripts/sort-file.t
index 559a0009256..f46f5748d3e 100644
--- a/ld/testsuite/ld-scripts/sort-file.t
+++ b/ld/testsuite/ld-scripts/sort-file.t
@@ -2,5 +2,5 @@ SECTIONS
 {
   .text : { SORT_BY_NAME(*)(.text*) }
   .data : { *(.data*) }
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort.t b/ld/testsuite/ld-scripts/sort.t
index c53481f2f3d..a7bb88fe652 100644
--- a/ld/testsuite/ld-scripts/sort.t
+++ b/ld/testsuite/ld-scripts/sort.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(.text .text.*)}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort_b_a.t b/ld/testsuite/ld-scripts/sort_b_a.t
index cbfd3c3a9e9..c53f6c2c30d 100644
--- a/ld/testsuite/ld-scripts/sort_b_a.t
+++ b/ld/testsuite/ld-scripts/sort_b_a.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(SORT_BY_ALIGNMENT(.text*))}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort_b_a_a.t b/ld/testsuite/ld-scripts/sort_b_a_a.t
index 359cdffdd4e..df0b190bba1 100644
--- a/ld/testsuite/ld-scripts/sort_b_a_a.t
+++ b/ld/testsuite/ld-scripts/sort_b_a_a.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT(.text*)))}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort_b_a_n.t b/ld/testsuite/ld-scripts/sort_b_a_n.t
index 04c3917b4b4..f5661bb0d78 100644
--- a/ld/testsuite/ld-scripts/sort_b_a_n.t
+++ b/ld/testsuite/ld-scripts/sort_b_a_n.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.text*)))}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort_b_n.t b/ld/testsuite/ld-scripts/sort_b_n.t
index 26c2b6ea5dd..344d7f3218a 100644
--- a/ld/testsuite/ld-scripts/sort_b_n.t
+++ b/ld/testsuite/ld-scripts/sort_b_n.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(SORT_BY_NAME(.text*))}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort_b_n_a.t b/ld/testsuite/ld-scripts/sort_b_n_a.t
index 49cbdd36047..532ba5276b9 100644
--- a/ld/testsuite/ld-scripts/sort_b_n_a.t
+++ b/ld/testsuite/ld-scripts/sort_b_n_a.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(SORT_BY_NAME(SORT_BY_ALIGNMENT(.text*)))}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort_b_n_n.t b/ld/testsuite/ld-scripts/sort_b_n_n.t
index b4eabfe256c..b8b091491b5 100644
--- a/ld/testsuite/ld-scripts/sort_b_n_n.t
+++ b/ld/testsuite/ld-scripts/sort_b_n_n.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(SORT_BY_NAME(SORT_BY_NAME(.text*)))}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-scripts/sort_no.t b/ld/testsuite/ld-scripts/sort_no.t
index d797c796e29..7ddc3524f23 100644
--- a/ld/testsuite/ld-scripts/sort_no.t
+++ b/ld/testsuite/ld-scripts/sort_no.t
@@ -1,5 +1,5 @@
 SECTIONS
 {
   .text : {*(.text*)}
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-x86-64/ifunc-textrel-1a.d b/ld/testsuite/ld-x86-64/ifunc-textrel-1a.d
index 64a1e7021fd..667366091b9 100644
--- a/ld/testsuite/ld-x86-64/ifunc-textrel-1a.d
+++ b/ld/testsuite/ld-x86-64/ifunc-textrel-1a.d
@@ -1,4 +1,4 @@
 #source: ifunc-textrel-1.s
 #as: --64 -defsym __x86_64__=1
-#ld: -m elf_x86_64 -pie
+#ld: -m elf_x86_64 -pie -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIE
diff --git a/ld/testsuite/ld-x86-64/ifunc-textrel-1b.d b/ld/testsuite/ld-x86-64/ifunc-textrel-1b.d
index aeb31fdb3dc..f7b8e02a72c 100644
--- a/ld/testsuite/ld-x86-64/ifunc-textrel-1b.d
+++ b/ld/testsuite/ld-x86-64/ifunc-textrel-1b.d
@@ -1,4 +1,4 @@
 #source: ifunc-textrel-1.s
 #as: --64 -defsym __x86_64__=1
-#ld: -m elf_x86_64 -shared
+#ld: -m elf_x86_64 -shared -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIC
diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-5.od b/ld/testsuite/ld-x86-64/pe-x86-64-5.od
index ffd6622dc0d..2a1b69b7857 100644
--- a/ld/testsuite/ld-x86-64/pe-x86-64-5.od
+++ b/ld/testsuite/ld-x86-64/pe-x86-64-5.od
@@ -6,7 +6,7 @@ SYMBOL TABLE:
 0+402010 g       .data	0000000000000000 initdummy
 0+400000 g       .text\$mn	0000000000000000 __executable_start
 0+401000 g       .text\$mn	0000000000000000 begin
-0+402012 g       .bss	0000000000000000 __bss_start
+0+402014 g       .bss	0000000000000000 __bss_start
 0+402000 g       .data	0000000000000000 Struct
 0+402011 g       .data	0000000000000000 initializedVar
 0+402012 g       .data	0000000000000000 _edata
diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-5.rd b/ld/testsuite/ld-x86-64/pe-x86-64-5.rd
index 237052805e9..060233ea4d7 100644
--- a/ld/testsuite/ld-x86-64/pe-x86-64-5.rd
+++ b/ld/testsuite/ld-x86-64/pe-x86-64-5.rd
@@ -6,7 +6,7 @@ Symbol table '.symtab' contains 11 entries:
  +[a-f0-9]+: 0000000000402010     0 NOTYPE  GLOBAL DEFAULT    2 initdummy
  +[a-f0-9]+: 0000000000400000     0 NOTYPE  GLOBAL DEFAULT    1 __executable_start
  +[a-f0-9]+: 0000000000401000     0 NOTYPE  GLOBAL DEFAULT    1 begin
- +[a-f0-9]+: 0000000000402012     0 NOTYPE  GLOBAL DEFAULT    3 __bss_start
+ +[a-f0-9]+: 0000000000402014     0 NOTYPE  GLOBAL DEFAULT    3 __bss_start
  +[a-f0-9]+: 0000000000402000     0 NOTYPE  GLOBAL DEFAULT    2 Struct
  +[a-f0-9]+: 0000000000402011     0 NOTYPE  GLOBAL DEFAULT    2 initializedVar
  +[a-f0-9]+: 0000000000402012     0 NOTYPE  GLOBAL DEFAULT    2 _edata
diff --git a/ld/testsuite/ld-x86-64/pr18176.t b/ld/testsuite/ld-x86-64/pr18176.t
index 480c0cd99a7..0004a5e3607 100644
--- a/ld/testsuite/ld-x86-64/pr18176.t
+++ b/ld/testsuite/ld-x86-64/pr18176.t
@@ -35,5 +35,5 @@ SECTIONS
   . = ALIGN(64 / 8);
   _end = .; PROVIDE (end = .);
   . = DATA_SEGMENT_END (.);
-  /DISCARD/ : { *(.*) }
+  /DISCARD/ : { *(*) }
 }
diff --git a/ld/testsuite/ld-x86-64/pr18801a.d b/ld/testsuite/ld-x86-64/pr18801a.d
index 2b4159d3044..61f9d991185 100644
--- a/ld/testsuite/ld-x86-64/pr18801a.d
+++ b/ld/testsuite/ld-x86-64/pr18801a.d
@@ -1,4 +1,4 @@
 #source: pr18801.s
 #as: --64
-#ld: -melf_x86_64 -pie
+#ld: -melf_x86_64 -pie -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIE
diff --git a/ld/testsuite/ld-x86-64/pr18801b.d b/ld/testsuite/ld-x86-64/pr18801b.d
index 34dab1aa6cb..967a339f90b 100644
--- a/ld/testsuite/ld-x86-64/pr18801b.d
+++ b/ld/testsuite/ld-x86-64/pr18801b.d
@@ -1,4 +1,4 @@
 #source: pr18801.s
 #as: --64
-#ld: -melf_x86_64 -shared
+#ld: -melf_x86_64 -shared -z notext
 #warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with -fPIC
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index a0e55822751..99f95c64568 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,8 +1,49 @@
-2023-07-30  Nick Clifton  <nickc@redhat.com>
+2023-07-31  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
-	This is the 2.41 release.
-	* configure: Regenerate.
-	* po/opcodes.pot: Regenerate.
+	PR 30705
+	* bpf-dis.c (print_insn_bpf): Check that info->section->owner is
+	actually available before using it.
+
+2023-07-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* bpf-dis.c: Initialize asm_bpf_version to -1.
+	(print_insn_bpf): Set BPF ISA version from the cpu version ELF
+	header flags if no explicit version set in the command line.
+	* disassemble.c (disassemble_init_for_target): Remove unused code.
+
+2023-07-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* bpf-opc.c (bpf_opcodes): Fix BPF_INSN_NEGR to not use a src
+	register.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* bpf-opc.c (bpf_opcodes): Add entries for the BSWAP*
+	instructions.
+
+2023-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* bpf-opc.c (bpf_opcodes): Fix pseudo-c syntax for MOVS* and LDXS*
+	instructions.
+
+2023-07-23  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* bpf-opc.c (bpf_opcodes): Add entry for jal.
+
+2023-07-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* bpf-opc.c (bpf_opcodes): Add entries for LDXS{B,W,H,DW}
+	instructions.
+
+2023-07-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* bpf-opc.c (bpf_opcodes): Add entries for MOVS{8,16,32}R and
+	MOVS32{8,16,32}R instructions.  and MOVS32I instructions.
+
+2023-07-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* Makefile.am (TARGET64_LIBOPCODES_CFILES): Add missing bpf-dis.c
+	* Makefile.in: Regenerate.
 
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index 578fdc056c5..eaeb33a2f3f 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -59,7 +59,6 @@ BUILD_LIB_DEPS = @BUILD_LIB_DEPS@
 # Header files.
 HFILES = \
 	aarch64-asm.h aarch64-dis.h aarch64-opc.h aarch64-tbl.h \
-	bpf-desc.h bpf-opc.h \
 	cris-desc.h cris-opc.h \
 	epiphany-desc.h epiphany-opc.h \
 	fr30-desc.h fr30-opc.h \
@@ -94,10 +93,7 @@ TARGET64_LIBOPCODES_CFILES = \
 	aarch64-opc-2.c \
 	alpha-dis.c \
 	alpha-opc.c \
-	bpf-asm.c \
-	bpf-desc.c \
 	bpf-dis.c \
-	bpf-ibld.c \
 	bpf-opc.c \
 	ia64-dis.c \
 	ia64-opc.c \
@@ -352,7 +348,6 @@ CGENDEPS = \
 CGEN_CPUS = cris epiphany fr30 frv ip2k iq2000 lm32 m32c m32r mep mt or1k xstormy16
 
 if CGEN_MAINT
-BPF_DEPS = stamp-bpf
 CRIS_DEPS = stamp-cris
 EPIPHANY_DEPS = stamp-epiphany
 FR30_DEPS = stamp-fr30
@@ -367,7 +362,6 @@ MT_DEPS = stamp-mt
 OR1K_DEPS = stamp-or1k
 XSTORMY16_DEPS = stamp-xstormy16
 else
-BPF_DEPS =
 CRIS_DEPS =
 EPIPHANY_DEPS =
 FR30_DEPS =
@@ -400,15 +394,6 @@ run-cgen-all:
 
 # For now, require developers to configure with --enable-cgen-maint.
 
-$(srcdir)/bpf-desc.h $(srcdir)/bpf-desc.c $(srcdir)/bpf-opc.h \
-		$(srcdir)/bpf-opc.c $(srcdir)/bpf-ibld.c \
-		$(srcdir)/bpf-asm.c $(srcdir)/bpf-dis.c: $(BPF_DEPS)
-	@true
-
-stamp-bpf: $(CGENDEPS) $(CPUDIR)/bpf.cpu $(CPUDIR)/bpf.opc
-	$(MAKE) run-cgen arch=bpf prefix=bpf \
-		archfile=$(CPUDIR)/bpf.cpu opcfile=$(CPUDIR)/bpf.opc
-
 $(srcdir)/cris-desc.h $(srcdir)/cris-desc.c $(srcdir)/cris-opc.h: $(CRIS_DEPS)
 	@true
 
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index 2db307e8d7c..1edd2cedf8e 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -450,7 +450,6 @@ BFD_H = ../bfd/bfd.h
 # Header files.
 HFILES = \
 	aarch64-asm.h aarch64-dis.h aarch64-opc.h aarch64-tbl.h \
-	bpf-desc.h bpf-opc.h \
 	cris-desc.h cris-opc.h \
 	epiphany-desc.h epiphany-opc.h \
 	fr30-desc.h fr30-opc.h \
@@ -486,10 +485,7 @@ TARGET64_LIBOPCODES_CFILES = \
 	aarch64-opc-2.c \
 	alpha-dis.c \
 	alpha-opc.c \
-	bpf-asm.c \
-	bpf-desc.c \
 	bpf-dis.c \
-	bpf-ibld.c \
 	bpf-opc.c \
 	ia64-dis.c \
 	ia64-opc.c \
@@ -708,8 +704,6 @@ CGENDEPS = \
 	cgen-asm.in cgen-dis.in cgen-ibld.in
 
 CGEN_CPUS = cris epiphany fr30 frv ip2k iq2000 lm32 m32c m32r mep mt or1k xstormy16
-@CGEN_MAINT_FALSE@BPF_DEPS = 
-@CGEN_MAINT_TRUE@BPF_DEPS = stamp-bpf
 @CGEN_MAINT_FALSE@CRIS_DEPS = 
 @CGEN_MAINT_TRUE@CRIS_DEPS = stamp-cris
 @CGEN_MAINT_FALSE@EPIPHANY_DEPS = 
@@ -883,10 +877,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm-dis.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avr-dis.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bfin-dis.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-asm.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-desc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-dis.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-ibld.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-opc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cgen-asm.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cgen-bitset.Plo@am__quote@
@@ -1385,15 +1376,6 @@ run-cgen-all:
 
 # For now, require developers to configure with --enable-cgen-maint.
 
-$(srcdir)/bpf-desc.h $(srcdir)/bpf-desc.c $(srcdir)/bpf-opc.h \
-		$(srcdir)/bpf-opc.c $(srcdir)/bpf-ibld.c \
-		$(srcdir)/bpf-asm.c $(srcdir)/bpf-dis.c: $(BPF_DEPS)
-	@true
-
-stamp-bpf: $(CGENDEPS) $(CPUDIR)/bpf.cpu $(CPUDIR)/bpf.opc
-	$(MAKE) run-cgen arch=bpf prefix=bpf \
-		archfile=$(CPUDIR)/bpf.cpu opcfile=$(CPUDIR)/bpf.opc
-
 $(srcdir)/cris-desc.h $(srcdir)/cris-desc.c $(srcdir)/cris-opc.h: $(CRIS_DEPS)
 	@true
 
diff --git a/opcodes/arc-tbl.h b/opcodes/arc-tbl.h
index 529edd02ea7..b90413de7ef 100644
--- a/opcodes/arc-tbl.h
+++ b/opcodes/arc-tbl.h
@@ -14242,7 +14242,7 @@
 { "neg", 0x204E0000, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB }, { C_F }},
 
 /* neg<.f> 0,b 00100bbb01001110FBBB000000111110.  */
-{ "neg", 0x204E0000, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB }, { C_F }},
+{ "neg", 0x204E003E, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB }, { C_F }},
 
 /* neg<.f><.cc> b,b 00100bbb11001110FBBB0000001QQQQQ.  */
 { "neg", 0x20CE0020, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup }, { C_F, C_CC }},
diff --git a/opcodes/bpf-dis.c b/opcodes/bpf-dis.c
index 0a345179569..1b1a532df74 100644
--- a/opcodes/bpf-dis.c
+++ b/opcodes/bpf-dis.c
@@ -1,631 +1,312 @@
-/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
-/* Disassembler interface for targets using CGEN. -*- C -*-
-   CGEN: Cpu tools GENerator
+/* bpf-dis.c - BPF disassembler.
+   Copyright (C) 2023 Free Software Foundation, Inc.
 
-   THIS FILE IS MACHINE GENERATED WITH CGEN.
-   - the resultant file is machine generated, cgen-dis.in isn't
+   Contributed by Oracle Inc.
 
-   Copyright (C) 1996-2023 Free Software Foundation, Inc.
+   This file is part of the GNU binutils.
 
-   This file is part of libopcodes.
-
-   This library is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
+   This is free software; you can redistribute them and/or modify them
+   under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
-   It is distributed in the hope that it will be useful, but WITHOUT
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-   License for more details.
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* ??? Eventually more and more of this stuff can go to cpu-independent files.
-   Keep that in mind.  */
+   along with this program; see the file COPYING3. If not,
+   see <http://www.gnu.org/licenses/>.  */
 
 #include "sysdep.h"
-#include <stdio.h>
-#include "ansidecl.h"
 #include "disassemble.h"
-#include "bfd.h"
-#include "symcat.h"
 #include "libiberty.h"
-#include "bpf-desc.h"
-#include "bpf-opc.h"
 #include "opintl.h"
+#include "opcode/bpf.h"
+#include "elf-bfd.h"
+#include "elf/bpf.h"
 
-/* Default text to print if an instruction isn't recognized.  */
-#define UNKNOWN_INSN_MSG _("*unknown*")
+#include <string.h>
+#include <inttypes.h>
 
-static void print_normal
-  (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
-static void print_address
-  (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int) ATTRIBUTE_UNUSED;
-static void print_keyword
-  (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int) ATTRIBUTE_UNUSED;
-static void print_insn_normal
-  (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
-static int print_insn
-  (CGEN_CPU_DESC, bfd_vma,  disassemble_info *, bfd_byte *, unsigned);
-static int default_print_insn
-  (CGEN_CPU_DESC, bfd_vma, disassemble_info *) ATTRIBUTE_UNUSED;
-static int read_insn
-  (CGEN_CPU_DESC, bfd_vma, disassemble_info *, bfd_byte *, int, CGEN_EXTRACT_INFO *,
-   unsigned long *);
-
-/* -- disassembler routines inserted here.  */
+/* This disassembler supports two different syntaxes for BPF assembly.
+   One is called "normal" and has the typical form for assembly
+   languages, with mnemonics and the like.  The othe is called
+   "pseudoc" and looks like C.  */
 
-/* -- dis.c */
-
-/* We need to customize the disassembler a bit:
-   - Use 8 bytes per line by default.
-*/
-
-#define CGEN_PRINT_INSN bpf_print_insn
-
-static int
-bpf_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
+enum bpf_dialect
 {
-  bfd_byte buf[CGEN_MAX_INSN_SIZE];
-  int buflen;
-  int status;
-
-  info->bytes_per_chunk = 1;
-  info->bytes_per_line = 8;
-
-  /* Attempt to read the base part of the insn.  */
-  buflen = cd->base_insn_bitsize / 8;
-  status = (*info->read_memory_func) (pc, buf, buflen, info);
-
-  /* Try again with the minimum part, if min < base.  */
-  if (status != 0 && (cd->min_insn_bitsize < cd->base_insn_bitsize))
-    {
-      buflen = cd->min_insn_bitsize / 8;
-      status = (*info->read_memory_func) (pc, buf, buflen, info);
-    }
-
-  if (status != 0)
-    {
-      (*info->memory_error_func) (status, pc, info);
-      return -1;
-    }
-
-  return print_insn (cd, pc, info, buf, buflen);
-}
-
-/* Signed immediates should be printed in hexadecimal.  */
-
-static void
-print_immediate (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
-                 void *dis_info,
-                 int64_t value,
-                 unsigned int attrs ATTRIBUTE_UNUSED,
-                 bfd_vma pc ATTRIBUTE_UNUSED,
-                 int length ATTRIBUTE_UNUSED)
-{
-  disassemble_info *info = (disassemble_info *) dis_info;
-
-  if (value <= 9)
-    (*info->fprintf_func) (info->stream, "%" PRId64, value);
-  else
-    (*info->fprintf_func) (info->stream, "%#" PRIx64, value);
-
-  /* This is to avoid -Wunused-function for print_normal.  */
-  if (0)
-    print_normal (cd, dis_info, value, attrs, pc, length);
-}
-
-/* Endianness bit sizes should be printed in decimal.  */
-
-static void
-print_endsize (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
-               void *dis_info,
-               unsigned long value,
-               unsigned int attrs ATTRIBUTE_UNUSED,
-               bfd_vma pc ATTRIBUTE_UNUSED,
-               int length ATTRIBUTE_UNUSED)
-{
-  disassemble_info *info = (disassemble_info *) dis_info;
-  (*info->fprintf_func) (info->stream, "%lu", value);
-}
-
-
-/* -- */
-
-void bpf_cgen_print_operand
-  (CGEN_CPU_DESC, int, void *, CGEN_FIELDS *, void const *, bfd_vma, int);
-
-/* Main entry point for printing operands.
-   XINFO is a `void *' and not a `disassemble_info *' to not put a requirement
-   of dis-asm.h on cgen.h.
-
-   This function is basically just a big switch statement.  Earlier versions
-   used tables to look up the function to use, but
-   - if the table contains both assembler and disassembler functions then
-     the disassembler contains much of the assembler and vice-versa,
-   - there's a lot of inlining possibilities as things grow,
-   - using a switch statement avoids the function call overhead.
-
-   This function could be moved into `print_insn_normal', but keeping it
-   separate makes clear the interface between `print_insn_normal' and each of
-   the handlers.  */
-
-void
-bpf_cgen_print_operand (CGEN_CPU_DESC cd,
-			   int opindex,
-			   void * xinfo,
-			   CGEN_FIELDS *fields,
-			   void const *attrs ATTRIBUTE_UNUSED,
-			   bfd_vma pc,
-			   int length)
-{
-  disassemble_info *info = (disassemble_info *) xinfo;
-
-  switch (opindex)
-    {
-    case BPF_OPERAND_DISP16 :
-      print_normal (cd, info, fields->f_offset16, 0|(1<<CGEN_OPERAND_SIGNED)|(1<<CGEN_OPERAND_PCREL_ADDR), pc, length);
-      break;
-    case BPF_OPERAND_DISP32 :
-      print_normal (cd, info, fields->f_imm32, 0|(1<<CGEN_OPERAND_SIGNED)|(1<<CGEN_OPERAND_PCREL_ADDR), pc, length);
-      break;
-    case BPF_OPERAND_DSTBE :
-      print_keyword (cd, info, & bpf_cgen_opval_h_gpr, fields->f_dstbe, 0);
-      break;
-    case BPF_OPERAND_DSTLE :
-      print_keyword (cd, info, & bpf_cgen_opval_h_gpr, fields->f_dstle, 0);
-      break;
-    case BPF_OPERAND_ENDSIZE :
-      print_endsize (cd, info, fields->f_imm32, 0, pc, length);
-      break;
-    case BPF_OPERAND_IMM32 :
-      print_immediate (cd, info, fields->f_imm32, 0|(1<<CGEN_OPERAND_SIGNED), pc, length);
-      break;
-    case BPF_OPERAND_IMM64 :
-      print_immediate (cd, info, fields->f_imm64, 0|(1<<CGEN_OPERAND_SIGNED)|(1<<CGEN_OPERAND_VIRTUAL), pc, length);
-      break;
-    case BPF_OPERAND_OFFSET16 :
-      print_immediate (cd, info, fields->f_offset16, 0|(1<<CGEN_OPERAND_SIGNED), pc, length);
-      break;
-    case BPF_OPERAND_SRCBE :
-      print_keyword (cd, info, & bpf_cgen_opval_h_gpr, fields->f_srcbe, 0);
-      break;
-    case BPF_OPERAND_SRCLE :
-      print_keyword (cd, info, & bpf_cgen_opval_h_gpr, fields->f_srcle, 0);
-      break;
-
-    default :
-      /* xgettext:c-format */
-      opcodes_error_handler
-	(_("internal error: unrecognized field %d while printing insn"),
-	 opindex);
-      abort ();
-  }
-}
-
-cgen_print_fn * const bpf_cgen_print_handlers[] =
-{
-  print_insn_normal,
+  BPF_DIALECT_NORMAL,
+  BPF_DIALECT_PSEUDOC
 };
 
+/* Global configuration for the disassembler.  */
+
+static enum bpf_dialect asm_dialect = BPF_DIALECT_NORMAL;
+static int asm_bpf_version = -1;
+static int asm_obase = 10;
+
+/* Print BPF specific command-line options.  */
 
 void
-bpf_cgen_init_dis (CGEN_CPU_DESC cd)
+print_bpf_disassembler_options (FILE *stream)
 {
-  bpf_cgen_init_opcode_table (cd);
-  bpf_cgen_init_ibld_table (cd);
-  cd->print_handlers = & bpf_cgen_print_handlers[0];
-  cd->print_operand = bpf_cgen_print_operand;
+  fprintf (stream, _("\n\
+The following BPF specific disassembler options are supported for use\n\
+with the -M switch (multiple options should be separated by commas):\n"));
+  fprintf (stream, "\n");
+  fprintf (stream, _("\
+      pseudoc                  Use pseudo-c syntax.\n\
+      v1,v2,v3,v4,xbpf         Version of the BPF ISA to use.\n\
+      hex,oct,dec              Output numerical base for immediates.\n"));
 }
 
-
-/* Default print handler.  */
+/* Parse BPF specific command-line options.  */
 
 static void
-print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
-	      void *dis_info,
-	      long value,
-	      unsigned int attrs,
-	      bfd_vma pc ATTRIBUTE_UNUSED,
-	      int length ATTRIBUTE_UNUSED)
+parse_bpf_dis_option (const char *option)
 {
-  disassemble_info *info = (disassemble_info *) dis_info;
-
-  /* Print the operand as directed by the attributes.  */
-  if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SEM_ONLY))
-    ; /* nothing to do */
-  else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SIGNED))
-    (*info->fprintf_func) (info->stream, "%ld", value);
+  if (strcmp (option, "pseudoc") == 0)
+    asm_dialect = BPF_DIALECT_PSEUDOC;
+  else if (strcmp (option, "v1") == 0)
+    asm_bpf_version = BPF_V1;
+  else if (strcmp (option, "v2") == 0)
+    asm_bpf_version = BPF_V2;
+  else if (strcmp (option, "v3") == 0)
+    asm_bpf_version = BPF_V3;
+  else if (strcmp (option, "v4") == 0)
+    asm_bpf_version = BPF_V4;
+  else if (strcmp (option, "xbpf") == 0)
+    asm_bpf_version = BPF_XBPF;
+  else if (strcmp (option, "hex") == 0)
+    asm_obase = 16;
+  else if (strcmp (option, "oct") == 0)
+    asm_obase = 8;
+  else if (strcmp (option, "dec") == 0)
+    asm_obase = 10;
   else
-    (*info->fprintf_func) (info->stream, "0x%lx", value);
+    /* xgettext:c-format */
+    opcodes_error_handler (_("unrecognized disassembler option: %s"), option);
 }
 
-/* Default address handler.  */
-
 static void
-print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
-	       void *dis_info,
-	       bfd_vma value,
-	       unsigned int attrs,
-	       bfd_vma pc ATTRIBUTE_UNUSED,
-	       int length ATTRIBUTE_UNUSED)
+parse_bpf_dis_options (const char *opts_in)
 {
-  disassemble_info *info = (disassemble_info *) dis_info;
+  char *opts = xstrdup (opts_in), *opt = opts, *opt_end = opts;
 
-  /* Print the operand as directed by the attributes.  */
-  if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SEM_ONLY))
-    ; /* Nothing to do.  */
-  else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_PCREL_ADDR))
-    (*info->print_address_func) (value, info);
-  else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_ABS_ADDR))
-    (*info->print_address_func) (value, info);
-  else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SIGNED))
-    (*info->fprintf_func) (info->stream, "%ld", (long) value);
-  else
-    (*info->fprintf_func) (info->stream, "0x%lx", (long) value);
+  for ( ; opt_end != NULL; opt = opt_end + 1)
+    {
+      if ((opt_end = strchr (opt, ',')) != NULL)
+	*opt_end = 0;
+      parse_bpf_dis_option (opt);
+    }
+
+  free (opts);
 }
 
-/* Keyword print handler.  */
+/* Auxiliary function used in print_insn_bpf below.  */
 
 static void
-print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
-	       void *dis_info,
-	       CGEN_KEYWORD *keyword_table,
-	       long value,
-	       unsigned int attrs ATTRIBUTE_UNUSED)
+print_register (disassemble_info *info,
+                const char *tag, uint8_t regno)
 {
-  disassemble_info *info = (disassemble_info *) dis_info;
-  const CGEN_KEYWORD_ENTRY *ke;
+  const char *fmt
+    = (asm_dialect == BPF_DIALECT_NORMAL
+       ? "%%r%d"
+       : ((*(tag + 2) == 'w')
+          ? "w%d"
+          : "r%d"));
 
-  ke = cgen_keyword_lookup_value (keyword_table, value);
-  if (ke != NULL)
-    (*info->fprintf_func) (info->stream, "%s", ke->name);
-  else
-    (*info->fprintf_func) (info->stream, "???");
-}
-
-/* Default insn printer.
-
-   DIS_INFO is defined as `void *' so the disassembler needn't know anything
-   about disassemble_info.  */
-
-static void
-print_insn_normal (CGEN_CPU_DESC cd,
-		   void *dis_info,
-		   const CGEN_INSN *insn,
-		   CGEN_FIELDS *fields,
-		   bfd_vma pc,
-		   int length)
-{
-  const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
-  disassemble_info *info = (disassemble_info *) dis_info;
-  const CGEN_SYNTAX_CHAR_TYPE *syn;
-
-  CGEN_INIT_PRINT (cd);
-
-  for (syn = CGEN_SYNTAX_STRING (syntax); *syn; ++syn)
-    {
-      if (CGEN_SYNTAX_MNEMONIC_P (*syn))
-	{
-	  (*info->fprintf_func) (info->stream, "%s", CGEN_INSN_MNEMONIC (insn));
-	  continue;
-	}
-      if (CGEN_SYNTAX_CHAR_P (*syn))
-	{
-	  (*info->fprintf_func) (info->stream, "%c", CGEN_SYNTAX_CHAR (*syn));
-	  continue;
-	}
-
-      /* We have an operand.  */
-      bpf_cgen_print_operand (cd, CGEN_SYNTAX_FIELD (*syn), info,
-				 fields, CGEN_INSN_ATTRS (insn), pc, length);
-    }
-}
-
-/* Subroutine of print_insn. Reads an insn into the given buffers and updates
-   the extract info.
-   Returns 0 if all is well, non-zero otherwise.  */
-
-static int
-read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
-	   bfd_vma pc,
-	   disassemble_info *info,
-	   bfd_byte *buf,
-	   int buflen,
-	   CGEN_EXTRACT_INFO *ex_info,
-	   unsigned long *insn_value)
-{
-  int status = (*info->read_memory_func) (pc, buf, buflen, info);
-
-  if (status != 0)
-    {
-      (*info->memory_error_func) (status, pc, info);
-      return -1;
-    }
-
-  ex_info->dis_info = info;
-  ex_info->valid = (1 << buflen) - 1;
-  ex_info->insn_bytes = buf;
-
-  *insn_value = bfd_get_bits (buf, buflen * 8, info->endian == BFD_ENDIAN_BIG);
-  return 0;
-}
-
-/* Utility to print an insn.
-   BUF is the base part of the insn, target byte order, BUFLEN bytes long.
-   The result is the size of the insn in bytes or zero for an unknown insn
-   or -1 if an error occurs fetching data (memory_error_func will have
-   been called).  */
-
-static int
-print_insn (CGEN_CPU_DESC cd,
-	    bfd_vma pc,
-	    disassemble_info *info,
-	    bfd_byte *buf,
-	    unsigned int buflen)
-{
-  CGEN_INSN_INT insn_value;
-  const CGEN_INSN_LIST *insn_list;
-  CGEN_EXTRACT_INFO ex_info;
-  int basesize;
-
-  /* Extract base part of instruction, just in case CGEN_DIS_* uses it. */
-  basesize = cd->base_insn_bitsize < buflen * 8 ?
-                                     cd->base_insn_bitsize : buflen * 8;
-  insn_value = cgen_get_insn_value (cd, buf, basesize, cd->insn_endian);
-
-
-  /* Fill in ex_info fields like read_insn would.  Don't actually call
-     read_insn, since the incoming buffer is already read (and possibly
-     modified a la m32r).  */
-  ex_info.valid = (1 << buflen) - 1;
-  ex_info.dis_info = info;
-  ex_info.insn_bytes = buf;
-
-  /* The instructions are stored in hash lists.
-     Pick the first one and keep trying until we find the right one.  */
-
-  insn_list = CGEN_DIS_LOOKUP_INSN (cd, (char *) buf, insn_value);
-  while (insn_list != NULL)
-    {
-      const CGEN_INSN *insn = insn_list->insn;
-      CGEN_FIELDS fields;
-      int length;
-      unsigned long insn_value_cropped;
-
-#ifdef CGEN_VALIDATE_INSN_SUPPORTED
-      /* Not needed as insn shouldn't be in hash lists if not supported.  */
-      /* Supported by this cpu?  */
-      if (! bpf_cgen_insn_supported (cd, insn))
-        {
-          insn_list = CGEN_DIS_NEXT_INSN (insn_list);
-	  continue;
-        }
-#endif
-
-      /* Basic bit mask must be correct.  */
-      /* ??? May wish to allow target to defer this check until the extract
-	 handler.  */
-
-      /* Base size may exceed this instruction's size.  Extract the
-         relevant part from the buffer. */
-      if ((unsigned) (CGEN_INSN_BITSIZE (insn) / 8) < buflen &&
-	  (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
-	insn_value_cropped = bfd_get_bits (buf, CGEN_INSN_BITSIZE (insn),
-					   info->endian == BFD_ENDIAN_BIG);
-      else
-	insn_value_cropped = insn_value;
-
-      if ((insn_value_cropped & CGEN_INSN_BASE_MASK (insn))
-	  == CGEN_INSN_BASE_VALUE (insn))
-	{
-	  /* Printing is handled in two passes.  The first pass parses the
-	     machine insn and extracts the fields.  The second pass prints
-	     them.  */
-
-	  /* Make sure the entire insn is loaded into insn_value, if it
-	     can fit.  */
-	  if (((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize) &&
-	      (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long))
-	    {
-	      unsigned long full_insn_value;
-	      int rc = read_insn (cd, pc, info, buf,
-				  CGEN_INSN_BITSIZE (insn) / 8,
-				  & ex_info, & full_insn_value);
-	      if (rc != 0)
-		return rc;
-	      length = CGEN_EXTRACT_FN (cd, insn)
-		(cd, insn, &ex_info, full_insn_value, &fields, pc);
-	    }
-	  else
-	    length = CGEN_EXTRACT_FN (cd, insn)
-	      (cd, insn, &ex_info, insn_value_cropped, &fields, pc);
-
-	  /* Length < 0 -> error.  */
-	  if (length < 0)
-	    return length;
-	  if (length > 0)
-	    {
-	      CGEN_PRINT_FN (cd, insn) (cd, info, insn, &fields, pc, length);
-	      /* Length is in bits, result is in bytes.  */
-	      return length / 8;
-	    }
-	}
-
-      insn_list = CGEN_DIS_NEXT_INSN (insn_list);
-    }
-
-  return 0;
-}
-
-/* Default value for CGEN_PRINT_INSN.
-   The result is the size of the insn in bytes or zero for an unknown insn
-   or -1 if an error occured fetching bytes.  */
-
-#ifndef CGEN_PRINT_INSN
-#define CGEN_PRINT_INSN default_print_insn
-#endif
-
-static int
-default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
-{
-  bfd_byte buf[CGEN_MAX_INSN_SIZE];
-  int buflen;
-  int status;
-
-  /* Attempt to read the base part of the insn.  */
-  buflen = cd->base_insn_bitsize / 8;
-  status = (*info->read_memory_func) (pc, buf, buflen, info);
-
-  /* Try again with the minimum part, if min < base.  */
-  if (status != 0 && (cd->min_insn_bitsize < cd->base_insn_bitsize))
-    {
-      buflen = cd->min_insn_bitsize / 8;
-      status = (*info->read_memory_func) (pc, buf, buflen, info);
-    }
-
-  if (status != 0)
-    {
-      (*info->memory_error_func) (status, pc, info);
-      return -1;
-    }
-
-  return print_insn (cd, pc, info, buf, buflen);
+  (*info->fprintf_styled_func) (info->stream, dis_style_register, fmt, regno);
 }
 
 /* Main entry point.
    Print one instruction from PC on INFO->STREAM.
    Return the size of the instruction (in bytes).  */
 
-typedef struct cpu_desc_list
-{
-  struct cpu_desc_list *next;
-  CGEN_BITSET *isa;
-  int mach;
-  int endian;
-  int insn_endian;
-  CGEN_CPU_DESC cd;
-} cpu_desc_list;
-
 int
 print_insn_bpf (bfd_vma pc, disassemble_info *info)
 {
-  static cpu_desc_list *cd_list = 0;
-  cpu_desc_list *cl = 0;
-  static CGEN_CPU_DESC cd = 0;
-  static CGEN_BITSET *prev_isa;
-  static int prev_mach;
-  static int prev_endian;
-  static int prev_insn_endian;
-  int length;
-  CGEN_BITSET *isa;
-  int mach;
-  int endian = (info->endian == BFD_ENDIAN_BIG
-		? CGEN_ENDIAN_BIG
-		: CGEN_ENDIAN_LITTLE);
-  int insn_endian = (info->endian_code == BFD_ENDIAN_BIG
-                     ? CGEN_ENDIAN_BIG
-                     : CGEN_ENDIAN_LITTLE);
-  enum bfd_architecture arch;
+  int insn_size = 8, status;
+  bfd_byte insn_bytes[16];
+  bpf_insn_word word = 0;
+  const struct bpf_opcode *insn = NULL;
+  enum bpf_endian endian = (info->endian == BFD_ENDIAN_LITTLE
+                            ? BPF_ENDIAN_LITTLE : BPF_ENDIAN_BIG);
 
-  /* ??? gdb will set mach but leave the architecture as "unknown" */
-#ifndef CGEN_BFD_ARCH
-#define CGEN_BFD_ARCH bfd_arch_bpf
-#endif
-  arch = info->arch;
-  if (arch == bfd_arch_unknown)
-    arch = CGEN_BFD_ARCH;
-
-  /* There's no standard way to compute the machine or isa number
-     so we leave it to the target.  */
-#ifdef CGEN_COMPUTE_MACH
-  mach = CGEN_COMPUTE_MACH (info);
-#else
-  mach = info->mach;
-#endif
-
-#ifdef CGEN_COMPUTE_ISA
-  {
-    static CGEN_BITSET *permanent_isa;
-
-    if (!permanent_isa)
-      permanent_isa = cgen_bitset_create (MAX_ISAS);
-    isa = permanent_isa;
-    cgen_bitset_clear (isa);
-    cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
-  }
-#else
-  isa = info->private_data;
-#endif
-
-  /* If we've switched cpu's, try to find a handle we've used before */
-  if (cd
-      && (cgen_bitset_compare (isa, prev_isa) != 0
-	  || mach != prev_mach
-	  || endian != prev_endian))
+  /* Handle bpf-specific command-line options.  */
+  if (info->disassembler_options != NULL)
     {
-      cd = 0;
-      for (cl = cd_list; cl; cl = cl->next)
-	{
-	  if (cgen_bitset_compare (cl->isa, isa) == 0 &&
-	      cl->mach == mach &&
-	      cl->endian == endian)
-	    {
-	      cd = cl->cd;
- 	      prev_isa = cd->isas;
-	      break;
-	    }
-	}
+      parse_bpf_dis_options (info->disassembler_options);
+      /* Avoid repeteadly parsing the options.  */
+      info->disassembler_options = NULL;
     }
 
-  /* If we haven't initialized yet, initialize the opcode table.  */
-  if (! cd)
+  /* Determine what version of the BPF ISA to use when disassembling.
+     If the user didn't explicitly specify an ISA version, then derive
+     it from the CPU Version flag in the ELF header.  A CPU version of
+     0 in the header means "latest version".  */
+  if (asm_bpf_version == -1 && info->section && info->section->owner)
     {
-      const bfd_arch_info_type *arch_type = bfd_lookup_arch (arch, mach);
-      const char *mach_name;
+      struct bfd *abfd = info->section->owner;
+      Elf_Internal_Ehdr *header = elf_elfheader (abfd);
+      int cpu_version = header->e_flags & EF_BPF_CPUVER;
 
-      if (!arch_type)
-	abort ();
-      mach_name = arch_type->printable_name;
-
-      prev_isa = cgen_bitset_copy (isa);
-      prev_mach = mach;
-      prev_endian = endian;
-      prev_insn_endian = insn_endian;
-      cd = bpf_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa,
-				 CGEN_CPU_OPEN_BFDMACH, mach_name,
-				 CGEN_CPU_OPEN_ENDIAN, prev_endian,
-                                 CGEN_CPU_OPEN_INSN_ENDIAN, prev_insn_endian,
-				 CGEN_CPU_OPEN_END);
-      if (!cd)
-	abort ();
-
-      /* Save this away for future reference.  */
-      cl = xmalloc (sizeof (struct cpu_desc_list));
-      cl->cd = cd;
-      cl->isa = prev_isa;
-      cl->mach = mach;
-      cl->endian = endian;
-      cl->next = cd_list;
-      cd_list = cl;
-
-      bpf_cgen_init_dis (cd);
+      switch (cpu_version)
+        {
+        case 0: asm_bpf_version = BPF_V4; break;
+        case 1: asm_bpf_version = BPF_V1; break;
+        case 2: asm_bpf_version = BPF_V2; break;
+        case 3: asm_bpf_version = BPF_V3; break;
+        case 4: asm_bpf_version = BPF_V4; break;
+        case 0xf: asm_bpf_version = BPF_XBPF; break;
+        default:
+          /* xgettext:c-format */
+          opcodes_error_handler (_("unknown BPF CPU version %u\n"),
+                                 cpu_version);
+          break;
+        }
     }
 
-  /* We try to have as much common code as possible.
-     But at this point some targets need to take over.  */
-  /* ??? Some targets may need a hook elsewhere.  Try to avoid this,
-     but if not possible try to move this hook elsewhere rather than
-     have two hooks.  */
-  length = CGEN_PRINT_INSN (cd, pc, info);
-  if (length > 0)
-    return length;
-  if (length < 0)
-    return -1;
+  /* Print eight bytes per line.  */
+  info->bytes_per_chunk = 1;
+  info->bytes_per_line = 8;
 
-  (*info->fprintf_func) (info->stream, UNKNOWN_INSN_MSG);
-  return cd->default_insn_bitsize / 8;
+  /* Read an instruction word.  */
+  status = (*info->read_memory_func) (pc, insn_bytes, 8, info);
+  if (status != 0)
+    {
+      (*info->memory_error_func) (status, pc, info);
+      return -1;
+    }
+  word = (bpf_insn_word) bfd_getb64 (insn_bytes);
+
+  /* Try to match an instruction with it.  */
+  insn = bpf_match_insn (word, endian, asm_bpf_version);
+
+  /* Print it out.  */
+  if (insn)
+    {
+      const char *insn_tmpl
+        = asm_dialect == BPF_DIALECT_NORMAL ? insn->normal : insn->pseudoc;
+      const char *p = insn_tmpl;
+
+      /* Print the template contents completed with the instruction
+         operands.  */
+      for (p = insn_tmpl; *p != '\0';)
+        {
+          switch (*p)
+            {
+            case ' ':
+              /* Single space prints to nothing.  */
+              p += 1;
+              break;
+            case '%':
+              if (*(p + 1) == '%')
+                {
+                  (*info->fprintf_styled_func) (info->stream, dis_style_text, "%%");
+                  p += 2;
+                }
+              else if (*(p + 1) == 'w' || *(p + 1) == 'W')
+                {
+                  /* %W prints to a single space.  */
+                  (*info->fprintf_styled_func) (info->stream, dis_style_text, " ");
+                  p += 2;
+                }
+              else if (strncmp (p, "%dr", 3) == 0)
+                {
+                  print_register (info, p, bpf_extract_dst (word, endian));
+                  p += 3;
+                }
+              else if (strncmp (p, "%sr", 3) == 0)
+                {
+                  print_register (info, p, bpf_extract_src (word, endian));
+                  p += 3;
+                }
+              else if (strncmp (p, "%dw", 3) == 0)
+                {
+                  print_register (info, p, bpf_extract_dst (word, endian));
+                  p += 3;
+                }
+              else if (strncmp (p, "%sw", 3) == 0)
+                {
+                  print_register (info, p, bpf_extract_src (word, endian));
+                  p += 3;
+                }
+              else if (strncmp (p, "%i32", 4) == 0
+                       || strncmp (p, "%d32", 4) == 0
+                       || strncmp (p, "%I32", 4) == 0)
+                {
+                  int32_t imm32 = bpf_extract_imm32 (word, endian);
+
+                  if (p[1] == 'I')
+                    (*info->fprintf_styled_func) (info->stream, dis_style_immediate,
+                                                  "%s",
+						  asm_obase != 10 || imm32 >= 0 ? "+" : "");
+                  (*info->fprintf_styled_func) (info->stream, dis_style_immediate,
+                                                asm_obase == 10 ? "%" PRIi32
+                                                : asm_obase == 8 ? "%" PRIo32
+                                                : "0x%" PRIx32,
+                                                imm32);
+                  p += 4;
+                }
+              else if (strncmp (p, "%o16", 4) == 0
+                       || strncmp (p, "%d16", 4) == 0)
+                {
+                  int16_t offset16 = bpf_extract_offset16 (word, endian);
+
+                  if (p[1] == 'o')
+                    (*info->fprintf_styled_func) (info->stream, dis_style_immediate,
+                                                  "%s",
+						  asm_obase != 10 || offset16 >= 0 ? "+" : "");
+                  if (asm_obase == 16 || asm_obase == 8)
+                    (*info->fprintf_styled_func) (info->stream, dis_style_immediate,
+                                                  asm_obase == 8 ? "0%" PRIo16 : "0x%" PRIx16,
+                                                  (uint16_t) offset16);
+                  else
+                    (*info->fprintf_styled_func) (info->stream, dis_style_immediate,
+                                                  "%" PRIi16, offset16);
+                  p += 4;
+                }
+              else if (strncmp (p, "%i64", 4) == 0)
+                {
+                  bpf_insn_word word2 = 0;
+
+                  status = (*info->read_memory_func) (pc + 8, insn_bytes + 8,
+                                                          8, info);
+                  if (status != 0)
+                    {
+                      (*info->memory_error_func) (status, pc + 8, info);
+                      return -1;
+                    }
+                  word2 = (bpf_insn_word) bfd_getb64 (insn_bytes + 8);
+
+                  (*info->fprintf_styled_func) (info->stream, dis_style_immediate,
+                                                asm_obase == 10 ? "%" PRIi64
+                                                : asm_obase == 8 ? "0%" PRIo64
+                                                : "0x%" PRIx64,
+                                                bpf_extract_imm64 (word, word2, endian));
+                  insn_size = 16;
+                  p += 4;
+                }
+              else
+                {
+                  /* xgettext:c-format */
+                  opcodes_error_handler (_("# internal error, unknown tag in opcode template (%s)"),
+                                         insn_tmpl);
+                  return -1;
+                }
+              break;
+            default:
+              /* Any other character is printed literally.  */
+              (*info->fprintf_styled_func) (info->stream, dis_style_text, "%c", *p);
+              p += 1;
+            }
+        }
+    }
+  else
+    (*info->fprintf_styled_func) (info->stream, dis_style_text, "<unknown>");
+
+  return insn_size;
 }
diff --git a/opcodes/bpf-opc.c b/opcodes/bpf-opc.c
index 1cc06f7cbf6..3f42680c661 100644
--- a/opcodes/bpf-opc.c
+++ b/opcodes/bpf-opc.c
@@ -1,1863 +1,530 @@
-/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
-/* Instruction opcode table for bpf.
+/* bpf-opc.c - BPF opcodes.
+   Copyright (C) 2023 Free Software Foundation, Inc.
 
-THIS FILE IS MACHINE GENERATED WITH CGEN.
+   Contributed by Oracle Inc.
 
-Copyright (C) 1996-2023 Free Software Foundation, Inc.
+   This file is part of the GNU binutils.
 
-This file is part of the GNU Binutils and/or GDB, the GNU debugger.
-
-   This file is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
+   This is free software; you can redistribute them and/or modify them
+   under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
-   It is distributed in the hope that it will be useful, but WITHOUT
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-   License for more details.
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
 
-   You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING3. If not,
+   see <http://www.gnu.org/licenses/>.  */
 
-*/
+#include "config.h"
+#include <stdlib.h>
+#include "opcode/bpf.h"
 
-#include "sysdep.h"
-#include "ansidecl.h"
-#include "bfd.h"
-#include "symcat.h"
-#include "bpf-desc.h"
-#include "bpf-opc.h"
-#include "libiberty.h"
+/* Note that the entries in the opcodes table below are accessed
+   sequentially when matching instructions per opcode, and also when
+   parsing.  Please take care to keep the entries sorted
+   accordingly!  */
 
-/* -- opc.c */
-
-/* -- asm.c */
-/* The hash functions are recorded here to help keep assembler code out of
-   the disassembler and vice versa.  */
-
-static int asm_hash_insn_p        (const CGEN_INSN *);
-static unsigned int asm_hash_insn (const char *);
-static int dis_hash_insn_p        (const CGEN_INSN *);
-static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
-
-/* Instruction formats.  */
-
-#define F(f) & bpf_cgen_ifld_table[BPF_##f]
-static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
-  0, 0, 0x0, { { 0 } }
-};
-
-static const CGEN_IFMT ifmt_addile ATTRIBUTE_UNUSED = {
-  64, 64, 0xfffff0ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_addrle ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffffffff00ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_negle ATTRIBUTE_UNUSED = {
-  64, 64, 0xfffffffffffff0ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_addibe ATTRIBUTE_UNUSED = {
-  64, 64, 0xffff0fff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_CODE) }, { F (F_SRCBE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_addrbe ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffffffff00ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_CODE) }, { F (F_SRCBE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_negbe ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffffffff0fff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_CODE) }, { F (F_SRCBE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_endlele ATTRIBUTE_UNUSED = {
-  64, 64, 0xfffff0ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_endlebe ATTRIBUTE_UNUSED = {
-  64, 64, 0xffff0fff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_CODE) }, { F (F_SRCBE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_lddwle ATTRIBUTE_UNUSED = {
-  64, 128, 0xfffff0ff, { { F (F_IMM64) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_DSTLE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_lddwbe ATTRIBUTE_UNUSED = {
-  64, 128, 0xffff0fff, { { F (F_IMM64) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_SRCBE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_ldabsw ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_REGS) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_ldindwle ATTRIBUTE_UNUSED = {
-  64, 64, 0xffff0fff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_DSTLE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_ldindwbe ATTRIBUTE_UNUSED = {
-  64, 64, 0xfffff0ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_SRCBE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_ldxwle ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffff000000ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_DSTLE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_ldxwbe ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffff000000ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_SRCBE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_stble ATTRIBUTE_UNUSED = {
-  64, 64, 0xf0ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_DSTLE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_stbbe ATTRIBUTE_UNUSED = {
-  64, 64, 0xfff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_MODE) }, { F (F_OP_SIZE) }, { F (F_SRCBE) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_jeqile ATTRIBUTE_UNUSED = {
-  64, 64, 0xf0ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_jeqrle ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffff000000ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_jeqibe ATTRIBUTE_UNUSED = {
-  64, 64, 0xfff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_CODE) }, { F (F_SRCBE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_jeqrbe ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffff000000ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_CODE) }, { F (F_SRCBE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_callle ATTRIBUTE_UNUSED = {
-  64, 64, 0xffff0fff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_callbe ATTRIBUTE_UNUSED = {
-  64, 64, 0xfffff0ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_DSTBE) }, { F (F_OP_CODE) }, { F (F_SRCBE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_ja ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffff0000ffff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_REGS) }, { F (F_OP_CODE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-static const CGEN_IFMT ifmt_exit ATTRIBUTE_UNUSED = {
-  64, 64, 0xffffffffffffffff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_REGS) }, { F (F_OP_CODE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
-};
-
-#undef F
-
-#define A(a) (1 << CGEN_INSN_##a)
-#define OPERAND(op) BPF_OPERAND_##op
-#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
-#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
-
-/* The instruction table.  */
-
-static const CGEN_OPCODE bpf_cgen_insn_opcode_table[MAX_INSNS] =
+const struct bpf_opcode bpf_opcodes[] =
 {
-  /* Special null first entry.
-     A `num' value of zero is thus invalid.
-     Also, the special `invalid' insn resides here.  */
-  { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
-/* add $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x7 }
-  },
-/* add $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xf }
-  },
-/* add32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x4 }
-  },
-/* add32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xc }
-  },
-/* sub $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x17 }
-  },
-/* sub $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x1f }
-  },
-/* sub32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x14 }
-  },
-/* sub32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x1c }
-  },
-/* mul $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x27 }
-  },
-/* mul $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x2f }
-  },
-/* mul32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x24 }
-  },
-/* mul32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x2c }
-  },
-/* div $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x37 }
-  },
-/* div $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x3f }
-  },
-/* div32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x34 }
-  },
-/* div32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x3c }
-  },
-/* or $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x47 }
-  },
-/* or $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x4f }
-  },
-/* or32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x44 }
-  },
-/* or32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x4c }
-  },
-/* and $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x57 }
-  },
-/* and $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x5f }
-  },
-/* and32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x54 }
-  },
-/* and32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x5c }
-  },
-/* lsh $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x67 }
-  },
-/* lsh $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x6f }
-  },
-/* lsh32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x64 }
-  },
-/* lsh32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x6c }
-  },
-/* rsh $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x77 }
-  },
-/* rsh $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x7f }
-  },
-/* rsh32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x74 }
-  },
-/* rsh32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x7c }
-  },
-/* mod $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x97 }
-  },
-/* mod $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x9f }
-  },
-/* mod32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0x94 }
-  },
-/* mod32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0x9c }
-  },
-/* xor $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xa7 }
-  },
-/* xor $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xaf }
-  },
-/* xor32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xa4 }
-  },
-/* xor32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xac }
-  },
-/* arsh $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xc7 }
-  },
-/* arsh $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xcf }
-  },
-/* arsh32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xc4 }
-  },
-/* arsh32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xcc }
-  },
-/* sdiv $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xe7 }
-  },
-/* sdiv $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xef }
-  },
-/* sdiv32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xe4 }
-  },
-/* sdiv32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xec }
-  },
-/* smod $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xf7 }
-  },
-/* smod $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xff }
-  },
-/* smod32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xf4 }
-  },
-/* smod32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xfc }
-  },
-/* neg $dstle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), 0 } },
-    & ifmt_negle, { 0x87 }
-  },
-/* neg32 $dstle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), 0 } },
-    & ifmt_negle, { 0x84 }
-  },
-/* mov $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xb7 }
-  },
-/* mov $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xbf }
-  },
-/* mov32 $dstle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), 0 } },
-    & ifmt_addile, { 0xb4 }
-  },
-/* mov32 $dstle,$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), 0 } },
-    & ifmt_addrle, { 0xbc }
-  },
-/* add $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x7 }
-  },
-/* add $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xf }
-  },
-/* add32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x4 }
-  },
-/* add32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xc }
-  },
-/* sub $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x17 }
-  },
-/* sub $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x1f }
-  },
-/* sub32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x14 }
-  },
-/* sub32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x1c }
-  },
-/* mul $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x27 }
-  },
-/* mul $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x2f }
-  },
-/* mul32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x24 }
-  },
-/* mul32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x2c }
-  },
-/* div $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x37 }
-  },
-/* div $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x3f }
-  },
-/* div32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x34 }
-  },
-/* div32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x3c }
-  },
-/* or $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x47 }
-  },
-/* or $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x4f }
-  },
-/* or32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x44 }
-  },
-/* or32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x4c }
-  },
-/* and $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x57 }
-  },
-/* and $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x5f }
-  },
-/* and32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x54 }
-  },
-/* and32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x5c }
-  },
-/* lsh $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x67 }
-  },
-/* lsh $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x6f }
-  },
-/* lsh32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x64 }
-  },
-/* lsh32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x6c }
-  },
-/* rsh $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x77 }
-  },
-/* rsh $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x7f }
-  },
-/* rsh32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x74 }
-  },
-/* rsh32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x7c }
-  },
-/* mod $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x97 }
-  },
-/* mod $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x9f }
-  },
-/* mod32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0x94 }
-  },
-/* mod32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0x9c }
-  },
-/* xor $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xa7 }
-  },
-/* xor $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xaf }
-  },
-/* xor32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xa4 }
-  },
-/* xor32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xac }
-  },
-/* arsh $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xc7 }
-  },
-/* arsh $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xcf }
-  },
-/* arsh32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xc4 }
-  },
-/* arsh32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xcc }
-  },
-/* sdiv $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xe7 }
-  },
-/* sdiv $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xef }
-  },
-/* sdiv32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xe4 }
-  },
-/* sdiv32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xec }
-  },
-/* smod $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xf7 }
-  },
-/* smod $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xff }
-  },
-/* smod32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xf4 }
-  },
-/* smod32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xfc }
-  },
-/* neg $dstbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), 0 } },
-    & ifmt_negbe, { 0x87 }
-  },
-/* neg32 $dstbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), 0 } },
-    & ifmt_negbe, { 0x84 }
-  },
-/* mov $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xb7 }
-  },
-/* mov $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xbf }
-  },
-/* mov32 $dstbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), 0 } },
-    & ifmt_addibe, { 0xb4 }
-  },
-/* mov32 $dstbe,$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), 0 } },
-    & ifmt_addrbe, { 0xbc }
-  },
-/* endle $dstle,$endsize */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (ENDSIZE), 0 } },
-    & ifmt_endlele, { 0xd4 }
-  },
-/* endbe $dstle,$endsize */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (ENDSIZE), 0 } },
-    & ifmt_endlele, { 0xdc }
-  },
-/* endle $dstbe,$endsize */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (ENDSIZE), 0 } },
-    & ifmt_endlebe, { 0xd4 }
-  },
-/* endbe $dstbe,$endsize */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (ENDSIZE), 0 } },
-    & ifmt_endlebe, { 0xdc }
-  },
-/* lddw $dstle,$imm64 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM64), 0 } },
-    & ifmt_lddwle, { 0x18 }
-  },
-/* lddw $dstbe,$imm64 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM64), 0 } },
-    & ifmt_lddwbe, { 0x18 }
-  },
-/* ldabsw $imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (IMM32), 0 } },
-    & ifmt_ldabsw, { 0x20 }
-  },
-/* ldabsh $imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (IMM32), 0 } },
-    & ifmt_ldabsw, { 0x28 }
-  },
-/* ldabsb $imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (IMM32), 0 } },
-    & ifmt_ldabsw, { 0x30 }
-  },
-/* ldabsdw $imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (IMM32), 0 } },
-    & ifmt_ldabsw, { 0x38 }
-  },
-/* ldindw $srcle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCLE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwle, { 0x40 }
-  },
-/* ldindh $srcle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCLE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwle, { 0x48 }
-  },
-/* ldindb $srcle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCLE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwle, { 0x50 }
-  },
-/* ldinddw $srcle,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCLE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwle, { 0x58 }
-  },
-/* ldindw $srcbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCBE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwbe, { 0x40 }
-  },
-/* ldindh $srcbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCBE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwbe, { 0x48 }
-  },
-/* ldindb $srcbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCBE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwbe, { 0x50 }
-  },
-/* ldinddw $srcbe,$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (SRCBE), ',', OP (IMM32), 0 } },
-    & ifmt_ldindwbe, { 0x58 }
-  },
-/* ldxw $dstle,[$srcle+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', '[', OP (SRCLE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwle, { 0x61 }
-  },
-/* ldxh $dstle,[$srcle+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', '[', OP (SRCLE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwle, { 0x69 }
-  },
-/* ldxb $dstle,[$srcle+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', '[', OP (SRCLE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwle, { 0x71 }
-  },
-/* ldxdw $dstle,[$srcle+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', '[', OP (SRCLE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwle, { 0x79 }
-  },
-/* stxw [$dstle+$offset16],$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (SRCLE), 0 } },
-    & ifmt_ldxwle, { 0x63 }
-  },
-/* stxh [$dstle+$offset16],$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (SRCLE), 0 } },
-    & ifmt_ldxwle, { 0x6b }
-  },
-/* stxb [$dstle+$offset16],$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (SRCLE), 0 } },
-    & ifmt_ldxwle, { 0x73 }
-  },
-/* stxdw [$dstle+$offset16],$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (SRCLE), 0 } },
-    & ifmt_ldxwle, { 0x7b }
-  },
-/* ldxw $dstbe,[$srcbe+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', '[', OP (SRCBE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwbe, { 0x61 }
-  },
-/* ldxh $dstbe,[$srcbe+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', '[', OP (SRCBE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwbe, { 0x69 }
-  },
-/* ldxb $dstbe,[$srcbe+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', '[', OP (SRCBE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwbe, { 0x71 }
-  },
-/* ldxdw $dstbe,[$srcbe+$offset16] */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', '[', OP (SRCBE), '+', OP (OFFSET16), ']', 0 } },
-    & ifmt_ldxwbe, { 0x79 }
-  },
-/* stxw [$dstbe+$offset16],$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (SRCBE), 0 } },
-    & ifmt_ldxwbe, { 0x63 }
-  },
-/* stxh [$dstbe+$offset16],$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (SRCBE), 0 } },
-    & ifmt_ldxwbe, { 0x6b }
-  },
-/* stxb [$dstbe+$offset16],$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (SRCBE), 0 } },
-    & ifmt_ldxwbe, { 0x73 }
-  },
-/* stxdw [$dstbe+$offset16],$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (SRCBE), 0 } },
-    & ifmt_ldxwbe, { 0x7b }
-  },
-/* stb [$dstle+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stble, { 0x72 }
-  },
-/* sth [$dstle+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stble, { 0x6a }
-  },
-/* stw [$dstle+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stble, { 0x62 }
-  },
-/* stdw [$dstle+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stble, { 0x7a }
-  },
-/* stb [$dstbe+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stbbe, { 0x72 }
-  },
-/* sth [$dstbe+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stbbe, { 0x6a }
-  },
-/* stw [$dstbe+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stbbe, { 0x62 }
-  },
-/* stdw [$dstbe+$offset16],$imm32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (IMM32), 0 } },
-    & ifmt_stbbe, { 0x7a }
-  },
-/* jeq $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x15 }
-  },
-/* jeq $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x1d }
-  },
-/* jeq32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x16 }
-  },
-/* jeq32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x1e }
-  },
-/* jgt $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x25 }
-  },
-/* jgt $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x2d }
-  },
-/* jgt32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x26 }
-  },
-/* jgt32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x2e }
-  },
-/* jge $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x35 }
-  },
-/* jge $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x3d }
-  },
-/* jge32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x36 }
-  },
-/* jge32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x3e }
-  },
-/* jlt $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xa5 }
-  },
-/* jlt $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xad }
-  },
-/* jlt32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xa6 }
-  },
-/* jlt32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xae }
-  },
-/* jle $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xb5 }
-  },
-/* jle $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xbd }
-  },
-/* jle32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xb6 }
-  },
-/* jle32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xbe }
-  },
-/* jset $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x45 }
-  },
-/* jset $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x4d }
-  },
-/* jset32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x46 }
-  },
-/* jset32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x4e }
-  },
-/* jne $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x55 }
-  },
-/* jne $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x5d }
-  },
-/* jne32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x56 }
-  },
-/* jne32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x5e }
-  },
-/* jsgt $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x65 }
-  },
-/* jsgt $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x6d }
-  },
-/* jsgt32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x66 }
-  },
-/* jsgt32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x6e }
-  },
-/* jsge $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x75 }
-  },
-/* jsge $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x7d }
-  },
-/* jsge32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0x76 }
-  },
-/* jsge32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0x7e }
-  },
-/* jslt $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xc5 }
-  },
-/* jslt $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xcd }
-  },
-/* jslt32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xc6 }
-  },
-/* jslt32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xce }
-  },
-/* jsle $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xd5 }
-  },
-/* jsle $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xdd }
-  },
-/* jsle32 $dstle,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqile, { 0xd6 }
-  },
-/* jsle32 $dstle,$srcle,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), ',', OP (SRCLE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrle, { 0xde }
-  },
-/* jeq $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x15 }
-  },
-/* jeq $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x1d }
-  },
-/* jeq32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x16 }
-  },
-/* jeq32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x1e }
-  },
-/* jgt $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x25 }
-  },
-/* jgt $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x2d }
-  },
-/* jgt32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x26 }
-  },
-/* jgt32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x2e }
-  },
-/* jge $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x35 }
-  },
-/* jge $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x3d }
-  },
-/* jge32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x36 }
-  },
-/* jge32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x3e }
-  },
-/* jlt $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xa5 }
-  },
-/* jlt $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xad }
-  },
-/* jlt32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xa6 }
-  },
-/* jlt32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xae }
-  },
-/* jle $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xb5 }
-  },
-/* jle $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xbd }
-  },
-/* jle32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xb6 }
-  },
-/* jle32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xbe }
-  },
-/* jset $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x45 }
-  },
-/* jset $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x4d }
-  },
-/* jset32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x46 }
-  },
-/* jset32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x4e }
-  },
-/* jne $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x55 }
-  },
-/* jne $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x5d }
-  },
-/* jne32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x56 }
-  },
-/* jne32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x5e }
-  },
-/* jsgt $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x65 }
-  },
-/* jsgt $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x6d }
-  },
-/* jsgt32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x66 }
-  },
-/* jsgt32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x6e }
-  },
-/* jsge $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x75 }
-  },
-/* jsge $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x7d }
-  },
-/* jsge32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0x76 }
-  },
-/* jsge32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0x7e }
-  },
-/* jslt $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xc5 }
-  },
-/* jslt $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xcd }
-  },
-/* jslt32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xc6 }
-  },
-/* jslt32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xce }
-  },
-/* jsle $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xd5 }
-  },
-/* jsle $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xdd }
-  },
-/* jsle32 $dstbe,$imm32,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (IMM32), ',', OP (DISP16), 0 } },
-    & ifmt_jeqibe, { 0xd6 }
-  },
-/* jsle32 $dstbe,$srcbe,$disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), ',', OP (SRCBE), ',', OP (DISP16), 0 } },
-    & ifmt_jeqrbe, { 0xde }
-  },
-/* call $disp32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DISP32), 0 } },
-    & ifmt_callle, { 0x85 }
-  },
-/* call $disp32 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DISP32), 0 } },
-    & ifmt_callbe, { 0x85 }
-  },
-/* call $dstle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTLE), 0 } },
-    & ifmt_negle, { 0x8d }
-  },
-/* call $dstbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DSTBE), 0 } },
-    & ifmt_negbe, { 0x8d }
-  },
-/* ja $disp16 */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', OP (DISP16), 0 } },
-    & ifmt_ja, { 0x5 }
-  },
-/* exit */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, 0 } },
-    & ifmt_exit, { 0x95 }
-  },
-/* xadddw [$dstle+$offset16],$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (SRCLE), 0 } },
-    & ifmt_ldxwle, { 0xdb }
-  },
-/* xaddw [$dstle+$offset16],$srcle */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTLE), '+', OP (OFFSET16), ']', ',', OP (SRCLE), 0 } },
-    & ifmt_ldxwle, { 0xc3 }
-  },
-/* xadddw [$dstbe+$offset16],$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (SRCBE), 0 } },
-    & ifmt_ldxwbe, { 0xdb }
-  },
-/* xaddw [$dstbe+$offset16],$srcbe */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, ' ', '[', OP (DSTBE), '+', OP (OFFSET16), ']', ',', OP (SRCBE), 0 } },
-    & ifmt_ldxwbe, { 0xc3 }
-  },
-/* brkpt */
-  {
-    { 0, 0, 0, 0 },
-    { { MNEM, 0 } },
-    & ifmt_exit, { 0x8c }
-  },
+  /* id, normal, pseudoc, version, mask, opcodes */
+
+  /* ALU instructions.  */
+  {BPF_INSN_ADDR, "add%W%dr , %sr", "%dr += %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_ADD|BPF_SRC_X},
+  {BPF_INSN_ADDI, "add%W%dr , %i32", "%dr += %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_ADD|BPF_SRC_K},
+  {BPF_INSN_SUBR, "sub%W%dr , %sr", "%dr -= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_SUB|BPF_SRC_X},
+  {BPF_INSN_SUBI, "sub%W%dr , %i32", "%dr -= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_SUB|BPF_SRC_K},
+  {BPF_INSN_MULR, "mul%W%dr , %sr", "%dr *= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_MUL|BPF_SRC_X},
+  {BPF_INSN_MULI, "mul%W%dr , %i32", "%dr *= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_MUL|BPF_SRC_K},
+  {BPF_INSN_SDIVR, "sdiv%W%dr, %sr", "%dr s/= %sr",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU64|BPF_CODE_DIV|BPF_SRC_X|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_SDIVI, "sdiv%W%dr , %i32","%dr s/= %i32",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU64|BPF_CODE_DIV|BPF_SRC_K|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_SMODR, "smod%W%dr , %sr", "%dr s%%= %sr",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU64|BPF_CODE_MOD|BPF_SRC_X|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_SMODI, "smod%W%dr , %i32", "%dr s%%= %i32",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU64|BPF_CODE_MOD|BPF_SRC_K|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_DIVR, "div%W%dr , %sr", "%dr /= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_DIV|BPF_SRC_X},
+  {BPF_INSN_DIVI, "div%W%dr , %i32", "%dr /= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_DIV|BPF_SRC_K},
+  {BPF_INSN_MODR, "mod%W%dr , %sr", "%dr %%= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_MOD|BPF_SRC_X},
+  {BPF_INSN_MODI, "mod%W%dr , %i32", "%dr %%= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_MOD|BPF_SRC_K},
+  {BPF_INSN_ORR, "or%W%dr , %sr", "%dr |= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_OR|BPF_SRC_X},
+  {BPF_INSN_ORI, "or%W%dr , %i32", "%dr |= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_OR|BPF_SRC_K},
+  {BPF_INSN_ANDR, "and%W%dr , %sr", "%dr &= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_AND|BPF_SRC_X},
+  {BPF_INSN_ANDI, "and%W%dr , %i32", "%dr &= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_AND|BPF_SRC_K},
+  {BPF_INSN_XORR, "xor%W%dr , %sr", "%dr ^= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_XOR|BPF_SRC_X},
+  {BPF_INSN_XORI, "xor%W%dr , %i32", "%dr ^= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_XOR|BPF_SRC_K},
+  {BPF_INSN_NEGR, "neg%W%dr", "%dr = - %dr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_NEG|BPF_SRC_X},
+  {BPF_INSN_NEGI, "neg%W%dr , %i32", "%dr = -%W%i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_NEG|BPF_SRC_K},
+  {BPF_INSN_LSHR, "lsh%W%dr , %sr", "%dr <<= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_LSH|BPF_SRC_X},
+  {BPF_INSN_LSHI, "lsh%W%dr , %i32", "%dr <<= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_LSH|BPF_SRC_K},
+  {BPF_INSN_RSHR, "rsh%W%dr , %sr", "%dr >>= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_RSH|BPF_SRC_X},
+  {BPF_INSN_RSHI, "rsh%W%dr , %i32", "%dr >>= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_RSH|BPF_SRC_K},
+  {BPF_INSN_ARSHR, "arsh%W%dr , %sr", "%dr%ws>>= %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_ARSH|BPF_SRC_X},
+  {BPF_INSN_ARSHI, "arsh%W%dr , %i32", "%dr%ws>>= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_ARSH|BPF_SRC_K},
+  {BPF_INSN_MOVS8R, "movs%W%dr , %sr , 8", "%dr%w=%w( s8 )%w%sr",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU64|BPF_CODE_MOV|BPF_SRC_X|BPF_OFFSET16_MOVS8},
+  {BPF_INSN_MOVS16R, "movs%W%dr , %sr , 16", "%dr%w=%w( s16 )%w%sr",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU64|BPF_CODE_MOV|BPF_SRC_X|BPF_OFFSET16_MOVS16},
+  {BPF_INSN_MOVS32R, "movs%W%dr , %sr , 32", "%dr%w=%w( s32 )%w%sr",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU64|BPF_CODE_MOV|BPF_SRC_X|BPF_OFFSET16_MOVS32},
+  {BPF_INSN_MOVR, "mov%W%dr , %sr", "%dr = %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_MOV|BPF_SRC_X},
+  {BPF_INSN_MOVI, "mov%W%dr , %i32", "%dr = %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU64|BPF_CODE_MOV|BPF_SRC_K},
+
+  /* ALU32 instructions.  */
+  {BPF_INSN_ADD32R, "add32%W%dr , %sr", "%dw += %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_ADD|BPF_SRC_X},
+  {BPF_INSN_ADD32I, "add32%W%dr , %i32", "%dw += %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_ADD|BPF_SRC_K},
+  {BPF_INSN_SUB32R, "sub32%W%dr , %sr", "%dw -= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_SUB|BPF_SRC_X},
+  {BPF_INSN_SUB32I, "sub32%W%dr , %i32", "%dw -= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_SUB|BPF_SRC_K},
+  {BPF_INSN_MUL32R, "mul32%W%dr , %sr", "%dw *= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_MUL|BPF_SRC_X},
+  {BPF_INSN_MUL32I, "mul32%W%dr , %i32", "%dw *= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_MUL|BPF_SRC_K},
+  {BPF_INSN_SDIV32R, "sdiv32%W%dr , %sr", "%dw s/= %sw",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU|BPF_CODE_DIV|BPF_SRC_X|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_SDIV32I, "sdiv32%W%dr , %i32", "%dw s/= %i32",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU|BPF_CODE_DIV|BPF_SRC_K|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_SMOD32R, "smod32%W%dr , %sr", "%dw s%%= %sw",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU|BPF_CODE_MOD|BPF_SRC_X|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_SMOD32I, "smod32%W%dr , %i32", "%dw s%%= %i32",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU|BPF_CODE_MOD|BPF_SRC_K|BPF_OFFSET16_SDIVMOD},
+  {BPF_INSN_DIV32R, "div32%W%dr , %sr", "%dw /= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_DIV|BPF_SRC_X},
+  {BPF_INSN_DIV32I, "div32%W%dr , %i32", "%dw /= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_DIV|BPF_SRC_K},
+  {BPF_INSN_MOD32R, "mod32%W%dr , %sr", "%dw %%= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_MOD|BPF_SRC_X},
+  {BPF_INSN_MOD32I, "mod32%W%dr , %i32", "%dw %%= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_MOD|BPF_SRC_K},
+  {BPF_INSN_OR32R, "or32%W%dr , %sr",  "%dw |= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_OR|BPF_SRC_X},
+  {BPF_INSN_OR32I, "or32%W%dr , %i32", "%dw |= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_OR|BPF_SRC_K},
+  {BPF_INSN_AND32R, "and32%W%dr , %sr", "%dw &= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_AND|BPF_SRC_X},
+  {BPF_INSN_AND32I, "and32%W%dr , %i32", "%dw &= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_AND|BPF_SRC_K},
+  {BPF_INSN_XOR32R, "xor32%W%dr , %sr", "%dw ^= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_XOR|BPF_SRC_X},
+  {BPF_INSN_XOR32I, "xor32%W%dr , %i32", "%dw ^= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_XOR|BPF_SRC_K},
+  {BPF_INSN_NEG32R, "neg32%W%dr", "%dw = - %dw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_NEG|BPF_SRC_X},
+  {BPF_INSN_NEG32I, "neg32%W%dr , %i32", "%dw = -%W%i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_NEG|BPF_SRC_K},
+  {BPF_INSN_LSH32R, "lsh32%W%dr , %sr", "%dw <<= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_LSH|BPF_SRC_X},
+  {BPF_INSN_LSH32I, "lsh32%W%dr , %i32", "%dw <<= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_LSH|BPF_SRC_K},
+  {BPF_INSN_RSH32R, "rsh32%W%dr , %sr", "%dw >>= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_RSH|BPF_SRC_X},
+  {BPF_INSN_RSH32I, "rsh32%W%dr , %i32", "%dw >>= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_RSH|BPF_SRC_K},
+  {BPF_INSN_ARSH32R, "arsh32%W%dr , %sr", "%dw%ws>>= %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_ARSH|BPF_SRC_X},
+  {BPF_INSN_ARSH32I, "arsh32%W%dr , %i32", "%dw%Ws>>= %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_ARSH|BPF_SRC_K},
+  {BPF_INSN_MOVS328R, "movs32%W%dr , %sr , 8", "%dw%w=%w( s8 )%w%sw",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU|BPF_CODE_MOV|BPF_SRC_X|BPF_OFFSET16_MOVS8},
+  {BPF_INSN_MOVS3216R, "movs32%W%dr , %sr , 16", "%dw%w=%w( s16 )%w%sw",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU|BPF_CODE_MOV|BPF_SRC_X|BPF_OFFSET16_MOVS16},
+  {BPF_INSN_MOVS3232R, "movs32%W%dr , %sr , 32", "%dw%w=%w( s32 )%w%sw",
+   BPF_V4, BPF_CODE|BPF_OFFSET16, BPF_CLASS_ALU|BPF_CODE_MOV|BPF_SRC_X|BPF_OFFSET16_MOVS32},
+  {BPF_INSN_MOV32R, "mov32%W%dr , %sr", "%dw = %sw",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_MOV|BPF_SRC_X},
+  {BPF_INSN_MOV32I, "mov32%W%dr , %i32", "%dw = %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ALU|BPF_CODE_MOV|BPF_SRC_K},
+
+  /* Endianness conversion instructions.  */
+  {BPF_INSN_ENDLE16, "endle%W%dr , 16", "%dr = le16%w%dr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU|BPF_CODE_END|BPF_SRC_K|BPF_IMM32_END16},
+  {BPF_INSN_ENDLE32, "endle%W%dr , 32", "%dr = le32%w%dr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU|BPF_CODE_END|BPF_SRC_K|BPF_IMM32_END32},
+  {BPF_INSN_ENDLE64, "endle%W%dr , 64", "%dr = le64%w%dr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU|BPF_CODE_END|BPF_SRC_K|BPF_IMM32_END64},
+  {BPF_INSN_ENDBE16, "endbe%W%dr , 16", "%dr = be16%w%dr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU|BPF_CODE_END|BPF_SRC_X|BPF_IMM32_END16},
+  {BPF_INSN_ENDBE32, "endbe%W%dr , 32", "%dr = be32%w%dr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU|BPF_CODE_END|BPF_SRC_X|BPF_IMM32_END32},
+  {BPF_INSN_ENDBE64, "endbe%W%dr , 64", "%dr = be64%w%dr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU|BPF_CODE_END|BPF_SRC_X|BPF_IMM32_END64},
+
+  /* Byte-swap instructions.  */
+  {BPF_INSN_BSWAP16, "bswap%W%dr , 16", "%dr%w=%wbswap16%w%dr",
+   BPF_V4, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU64|BPF_CODE_END|BPF_SRC_K|BPF_IMM32_BSWAP16},
+  {BPF_INSN_BSWAP32, "bswap%W%dr , 32", "%dr%w=%wbswap32%w%dr",
+   BPF_V4, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU64|BPF_CODE_END|BPF_SRC_K|BPF_IMM32_BSWAP32},
+  {BPF_INSN_BSWAP64, "bswap%W%dr , 64", "%dr%w=%wbswap64%w%dr",
+   BPF_V4, BPF_CODE|BPF_IMM32, BPF_CLASS_ALU64|BPF_CODE_END|BPF_SRC_K|BPF_IMM32_BSWAP64},
+
+  /* 64-bit load instruction.  */
+  {BPF_INSN_LDDW, "lddw%W%dr , %i64", "%dr = %i64%wll",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_DW|BPF_MODE_IMM},
+
+  /* Indirect load instructions, designed to be used in socket
+     filters.  */
+  {BPF_INSN_LDINDB, "ldindb%W%sr , %i32", "r0 = * ( u8 * ) skb [ %sr %I32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_B|BPF_MODE_IND},
+  {BPF_INSN_LDINDH, "ldindh%W%sr , %i32", "r0 = * ( u16 * ) skb [ %sr %I32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_H|BPF_MODE_IND},
+  {BPF_INSN_LDINDW, "ldindw%W%sr , %i32", "r0 = * ( u32 * ) skb [ %sr %I32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_W|BPF_MODE_IND},
+  {BPF_INSN_LDINDDW, "ldinddw%W%sr , %i32", "r0 = * ( u64 * ) skb [ %sr %I32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_DW|BPF_MODE_IND},
+
+  /* Absolute load instructions, designed to be used in socket filters.  */
+  {BPF_INSN_LDABSB, "ldabsb%W%i32", "r0 = * ( u8 * ) skb [ %i32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_B|BPF_MODE_ABS},
+  {BPF_INSN_LDABSH, "ldabsh%W%i32", "r0 = * ( u16 * ) skb [ %i32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_H|BPF_MODE_ABS},
+  {BPF_INSN_LDABSW, "ldabsw%W%i32", "r0 = * ( u32 * ) skb [ %i32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_W|BPF_MODE_ABS},
+  {BPF_INSN_LDABSDW, "ldabsdw%W%i32", "r0 = * ( u64 * ) skb [ %i32 ]",
+   BPF_V1, BPF_CODE, BPF_CLASS_LD|BPF_SIZE_DW|BPF_MODE_ABS},
+
+  /* Generic load instructions (to register.)  */
+  {BPF_INSN_LDXB, "ldxb%W%dr , [ %sr %o16 ]", "%dr = * ( u8 * ) ( %sr %o16 )",
+   BPF_V1, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_B|BPF_MODE_MEM},
+  {BPF_INSN_LDXH, "ldxh%W%dr , [ %sr %o16 ]", "%dr = * ( u16 * ) ( %sr %o16 )",
+   BPF_V1, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_H|BPF_MODE_MEM},
+  {BPF_INSN_LDXW, "ldxw%W%dr , [ %sr %o16 ]", "%dr = * ( u32 * ) ( %sr %o16 )",
+   BPF_V1, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_W|BPF_MODE_MEM},
+  {BPF_INSN_LDXDW, "ldxdw%W%dr , [ %sr %o16 ]","%dr = * ( u64 * ) ( %sr %o16 )",
+   BPF_V1, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_DW|BPF_MODE_MEM},
+
+  /* Generic signed load instructions (to register.)  */
+  {BPF_INSN_LDXSB, "ldxsb%W%dr , [ %sr %o16 ]", "%dr = * ( s8 * ) ( %sr %o16 )",
+   BPF_V4, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_B|BPF_MODE_SMEM},
+  {BPF_INSN_LDXSH, "ldxsh%W%dr , [ %sr %o16 ]", "%dr = * ( s16 * ) ( %sr %o16 )",
+   BPF_V4, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_H|BPF_MODE_SMEM},
+  {BPF_INSN_LDXSW, "ldxsw%W%dr , [ %sr %o16 ]", "%dr = * ( s32 * ) ( %sr %o16 )",
+   BPF_V4, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_W|BPF_MODE_SMEM},
+  {BPF_INSN_LDXSDW, "ldxsdw%W%dr , [ %sr %o16 ]","%dr = * ( s64 * ) ( %sr %o16 )",
+   BPF_V4, BPF_CODE, BPF_CLASS_LDX|BPF_SIZE_DW|BPF_MODE_SMEM},
+
+  /* Generic store instructions (from register.)  */
+  {BPF_INSN_STXBR, "stxb%W[ %dr %o16 ] , %sr", "* ( u8 * ) ( %dr %o16 ) = %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_STX|BPF_SIZE_B|BPF_MODE_MEM},
+  {BPF_INSN_STXHR, "stxh%W[ %dr %o16 ] , %sr", "* ( u16 * ) ( %dr %o16 ) = %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_STX|BPF_SIZE_H|BPF_MODE_MEM},
+  {BPF_INSN_STXWR, "stxw%W[ %dr %o16 ], %sr", "* ( u32 * ) ( %dr %o16 ) = %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_MEM},
+  {BPF_INSN_STXDWR, "stxdw%W[ %dr %o16 ] , %sr", "* ( u64 * ) ( %dr %o16 ) = %sr",
+   BPF_V1, BPF_CODE, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_MEM},
+
+  /* Generic store instructions (from 32-bit immediate.)  */
+  {BPF_INSN_STXBI, "stb%W[ %dr %o16 ] , %i32", "* ( u8 * ) ( %dr %o16 ) = %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ST|BPF_SIZE_B|BPF_MODE_MEM},
+  {BPF_INSN_STXHI, "sth%W[ %dr %o16 ] , %i32", "* ( u16 * ) ( %dr %o16 ) = %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ST|BPF_SIZE_H|BPF_MODE_MEM},
+  {BPF_INSN_STXWI, "stw%W[ %dr %o16 ] , %i32", "* ( u32 * ) ( %dr %o16 ) = %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ST|BPF_SIZE_W|BPF_MODE_MEM},
+  {BPF_INSN_STXDWI, "stdw%W[ %dr %o16 ] , %i32", "* ( u64 * ) ( %dr %o16 ) = %i32",
+   BPF_V1, BPF_CODE, BPF_CLASS_ST|BPF_SIZE_DW|BPF_MODE_MEM},
+
+  /* Compare-and-jump instructions (reg OP reg).  */
+  {BPF_INSN_JAR, "ja%W%d16", "goto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JA|BPF_SRC_K},
+  {BPF_INSN_JEQR, "jeq%W%dr , %sr , %d16", "if%w%dr == %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JEQ|BPF_SRC_X},
+  {BPF_INSN_JGTR, "jgt%W%dr , %sr , %d16", "if%w%dr > %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JGT|BPF_SRC_X},
+  {BPF_INSN_JSGTR, "jsgt%W%dr, %sr , %d16", "if%w%dr s> %sr%wgoto%w%d16",
+      BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSGT|BPF_SRC_X},
+  {BPF_INSN_JGER, "jge%W%dr , %sr , %d16", "if%w%dr >= %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JGE|BPF_SRC_X},
+  {BPF_INSN_JSGER, "jsge%W%dr , %sr , %d16", "if%w%dr s>= %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSGE|BPF_SRC_X},
+  {BPF_INSN_JLTR, "jlt%W%dr , %sr , %d16", "if%w%dr < %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JLT|BPF_SRC_X},
+  {BPF_INSN_JSLTR, "jslt%W%dr , %sr , %d16", "if%w%dr s< %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSLT|BPF_SRC_X},
+  {BPF_INSN_JLER, "jle%W%dr , %sr , %d16", "if%w%dr <= %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JLE|BPF_SRC_X},
+  {BPF_INSN_JSLER, "jsle%W%dr , %sr , %d16", "if%w%dr s<= %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSLE|BPF_SRC_X},
+  {BPF_INSN_JSETR, "jset%W%dr , %sr , %d16", "if%w%dr & %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSET|BPF_SRC_X},
+  {BPF_INSN_JNER, "jne%W%dr , %sr , %d16", "if%w%dr != %sr%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JNE|BPF_SRC_X},
+  {BPF_INSN_CALLR, "call%W%dr", "callx%w%dr",
+   BPF_XBPF, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_CALL|BPF_SRC_X},
+  {BPF_INSN_CALL, "call%W%d32", "call%w%d32",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_CALL|BPF_SRC_K},
+  {BPF_INSN_EXIT, "exit", "exit",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_EXIT|BPF_SRC_K},
+
+  /* Compare-and-jump instructions (reg OP imm).  */
+  {BPF_INSN_JEQI, "jeq%W%dr , %i32 , %d16", "if%w%dr == %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JEQ|BPF_SRC_K},
+  {BPF_INSN_JGTI, "jgt%W%dr , %i32 , %d16", "if%w%dr > %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JGT|BPF_SRC_K},
+  {BPF_INSN_JSGTI, "jsgt%W%dr, %i32 , %d16", "if%w%dr s> %i32%wgoto%w%d16",
+      BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSGT|BPF_SRC_K},
+  {BPF_INSN_JGEI, "jge%W%dr , %i32 , %d16", "if%w%dr >= %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JGE|BPF_SRC_K},
+  {BPF_INSN_JSGEI, "jsge%W%dr , %i32 , %d16", "if%w%dr s>= %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSGE|BPF_SRC_K},
+  {BPF_INSN_JLTI, "jlt%W%dr , %i32 , %d16", "if%w%dr < %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JLT|BPF_SRC_K},
+  {BPF_INSN_JSLTI, "jslt%W%dr , %i32, %d16", "if%w%dr s< %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSLT|BPF_SRC_K},
+  {BPF_INSN_JLEI, "jle%W%dr , %i32 , %d16", "if%w%dr <= %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JLE|BPF_SRC_K},
+  {BPF_INSN_JSLEI, "jsle%W%dr , %i32 , %d16", "if%w%dr s<= %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSLE|BPF_SRC_K},
+  {BPF_INSN_JSETI, "jset%W%dr , %i32 , %d16", "if%w%dr & %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JSET|BPF_SRC_K},
+  {BPF_INSN_JNEI, "jne%W%dr , %i32 , %d16", "if%w%dr != %i32%wgoto%w%d16",
+   BPF_V1, BPF_CODE, BPF_CLASS_JMP|BPF_CODE_JNE|BPF_SRC_K},
+
+  /* 32-bit jump-always.  */
+  {BPF_INSN_JAL, "jal%W%d32", "gotol%w%d32",
+   BPF_V4, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JA|BPF_SRC_K},
+
+  /* 32-bit compare-and-jump instructions (reg OP reg).  */
+  {BPF_INSN_JEQ32R, "jeq32%W%dr , %sr , %d16", "if%w%dw == %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JEQ|BPF_SRC_X},
+  {BPF_INSN_JGT32R, "jgt32%W%dr , %sr , %d16", "if%w%dw > %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JGT|BPF_SRC_X},
+  {BPF_INSN_JSGT32R, "jsgt32%W%dr, %sr , %d16", "if%w%dw s> %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSGT|BPF_SRC_X},
+  {BPF_INSN_JGE32R, "jge32%W%dr , %sr , %d16", "if%w%dw >= %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JGE|BPF_SRC_X},
+  {BPF_INSN_JSGE32R, "jsge32%W%dr , %sr , %d16", "if%w%dw s>= %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSGE|BPF_SRC_X},
+  {BPF_INSN_JLT32R, "jlt32%W%dr , %sr , %d16", "if%w%dw < %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JLT|BPF_SRC_X},
+  {BPF_INSN_JSLT32R, "jslt32%W%dr , %sr , %d16", "if%w%dw s< %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSLT|BPF_SRC_X},
+  {BPF_INSN_JLE32R, "jle32%W%dr , %sr , %d16", "if%w%dw <= %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JLE|BPF_SRC_X},
+  {BPF_INSN_JSLE32R, "jsle32%W%dr , %sr , %d16", "if%w%dw s<= %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSLE|BPF_SRC_X},
+  {BPF_INSN_JSET32R, "jset32%W%dr , %sr , %d16", "if%w%dw & %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSET|BPF_SRC_X},
+  {BPF_INSN_JNE32R, "jne32%W%dr , %sr , %d16", "if%w%dw != %sw%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JNE|BPF_SRC_X},
+
+  /* 32-bit compare-and-jump instructions (reg OP imm).  */
+  {BPF_INSN_JEQ32I, "jeq32%W%dr , %i32 , %d16", "if%w%dw == %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JEQ|BPF_SRC_K},
+  {BPF_INSN_JGT32I, "jgt32%W%dr , %i32 , %d16", "if%w%dw > %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JGT|BPF_SRC_K},
+  {BPF_INSN_JSGT32I, "jsgt32%W%dr, %i32 , %d16", "if%w%dw s> %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSGT|BPF_SRC_K},
+  {BPF_INSN_JGE32I, "jge32%W%dr , %i32 , %d16", "if%w%dw >= %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JGE|BPF_SRC_K},
+  {BPF_INSN_JSGE32I, "jsge32%W%dr , %i32 , %d16", "if%w%dw s>= %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSGE|BPF_SRC_K},
+  {BPF_INSN_JLT32I, "jlt32%W%dr , %i32 , %d16", "if%w%dw < %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JLT|BPF_SRC_K},
+  {BPF_INSN_JSLT32I, "jslt32%W%dr , %i32, %d16", "if%w%dw s< %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSLT|BPF_SRC_K},
+  {BPF_INSN_JLE32I, "jle32%W%dr , %i32 , %d16", "if%w%dw <= %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JLE|BPF_SRC_K},
+  {BPF_INSN_JSLE32I, "jsle32%W%dr , %i32 , %d16", "if%w%dw s<= %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSLE|BPF_SRC_K},
+  {BPF_INSN_JSET32I, "jset32%W%dr , %i32 , %d16", "if%w%dw & %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JSET|BPF_SRC_K},
+  {BPF_INSN_JNE32I, "jne32%W%dr , %i32 , %d16", "if%w%dw != %i32%wgoto%w%d16",
+   BPF_V3, BPF_CODE, BPF_CLASS_JMP32|BPF_CODE_JNE|BPF_SRC_K},
+
+  /* Atomic instructions.  */
+  {BPF_INSN_AADD, "aadd%W[ %dr %o16 ] , %sr", "lock%w* ( u64 * ) ( %dr %o16 ) += %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AADD},
+  {BPF_INSN_AOR, "aor%W[ %dr %o16 ] , %sr", "lock%w* ( u64 * ) ( %dr %o16 ) |= %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AOR},
+  {BPF_INSN_AAND, "aand%W[ %dr %o16 ] , %sr", "lock%w* ( u64 * ) ( %dr %o16 ) &= %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AAND},
+  {BPF_INSN_AXOR, "axor%W[ %dr %o16 ] , %sr", "lock%w* ( u64 * ) ( %dr %o16 ) ^= %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AXOR},
+
+  /* Atomic instructions with fetching.  */
+  {BPF_INSN_AFADD, "afadd%W[ %dr %o16 ] , %sr", "%sr = atomic_fetch_add ( ( u64 * ) ( %dr %o16 ) , %sr )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AFADD},
+  {BPF_INSN_AFOR, "afor%W[ %dr %o16 ] , %sr", "%sr = atomic_fetch_or ( ( u64 * ) ( %dr %o16 ) , %sr )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AFOR},
+  {BPF_INSN_AFAND, "afand%W[ %dr %o16 ] , %sr", "%sr = atomic_fetch_and ( ( u64 * ) ( %dr %o16 ) , %sr )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AFAND},
+  {BPF_INSN_AFXOR, "afxor%W[ %dr %o16 ] , %sr", "%sr = atomic_fetch_xor ( ( u64 * ) ( %dr %o16 ) , %sr )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AFXOR},
+
+  /* Atomic instructions (32-bit.) */
+  {BPF_INSN_AADD32, "aadd32%W[ %dr %o16 ] , %sr", "lock%w* ( u32 * ) ( %dr %o16 ) += %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AADD},
+  {BPF_INSN_AOR32, "aor32%W[ %dr %o16 ] , %sr", "lock%w* ( u32 * ) ( %dr %o16 ) |= %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AOR},
+  {BPF_INSN_AAND32, "aand32%W[ %dr %o16 ] , %sr", "lock%w* ( u32 * ) ( %dr %o16 ) &= %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AAND},
+  {BPF_INSN_AXOR32, "axor32%W[ %dr %o16 ] , %sr", "lock%w* ( u32 * ) ( %dr %o16 ) ^= %sr",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AXOR},
+
+  /* Atomic instructions with fetching (32-bit.) */
+  {BPF_INSN_AFADD32, "afadd32%W[ %dr %o16 ] , %sr", "%sw = atomic_fetch_add ( ( u32 * ) ( %dr %o16 ) , %sw )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AFADD},
+  {BPF_INSN_AFOR32, "afor32%W[ %dr %o16 ] , %sr", "%sw = atomic_fetch_or ( ( u32 * ) ( %dr %o16 ) , %sw )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AFOR},
+  {BPF_INSN_AFAND32, "afand32%W[ %dr %o16 ] , %sr", "%sw = atomic_fetch_and ( ( u32 * ) ( %dr %o16 ) , %sw )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AFAND},
+  {BPF_INSN_AFXOR32, "afxor32%W[ %dr %o16 ] , %sr", "%sw = atomic_fetch_xor ( ( u32 * ) ( %dr %o16 ) , %sw )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AFXOR},
+
+  /* Atomic compare-and-swap, atomic exchange.  */
+  {BPF_INSN_ACMP, "acmp%W[ %dr %o16 ] , %sr", "r0 = cmpxchg_64 ( %dr %o16 , r0 , %sr )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_ACMP},
+  {BPF_INSN_AXCHG, "axchg%W[ %dr %o16 ] , %sr", "%sr = xchg_64 ( %dr %o16 , %sr )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AXCHG},
+
+  /* Atomic compare-and-swap, atomic exchange (32-bit).  */
+  {BPF_INSN_ACMP32, "acmp32%W[ %dr %o16 ], %sr", "w0 = cmpxchg32_32 ( %dr %o16 , w0 , %sw )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_ACMP},
+  {BPF_INSN_AXCHG32, "axchg32%W[ %dr %o16 ], %sr", "%sw = xchg32_32 ( %dr %o16 , %sw )",
+   BPF_V3, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AXCHG},
+
+  /* Old versions of aadd and aadd32.  */
+  {BPF_INSN_AADD, "xadddw%W[ %dr %o16 ] , %sr", "* ( u64 * ) ( %dr %o16 ) += %sr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_DW|BPF_MODE_ATOMIC|BPF_IMM32_AADD},
+  {BPF_INSN_AADD32, "xaddw%W[ %dr %o16 ] , %sr", "* ( u32 * ) ( %dr %o16 ) += %sr",
+   BPF_V1, BPF_CODE|BPF_IMM32, BPF_CLASS_STX|BPF_SIZE_W|BPF_MODE_ATOMIC|BPF_IMM32_AADD},
+
+  /* the brkpt instruction is used by the BPF simulator and it doesn't
+     really belong to the BPF instruction set.  */
+  {BPF_INSN_BRKPT, "brkpt", "brkpt",
+   BPF_XBPF, BPF_CODE, BPF_CLASS_ALU|BPF_SRC_X|BPF_CODE_NEG},
+
+  /* Sentinel.  */
+  {BPF_NOINSN, NULL, NULL, 0, 0UL, 0UL},
 };
 
-#undef A
-#undef OPERAND
-#undef MNEM
-#undef OP
-
-/* Formats for ALIAS macro-insns.  */
-
-#define F(f) & bpf_cgen_ifld_table[BPF_##f]
-#undef F
-
-/* Each non-simple macro entry points to an array of expansion possibilities.  */
-
-#define A(a) (1 << CGEN_INSN_##a)
-#define OPERAND(op) BPF_OPERAND_##op
-#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
-#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
-
-/* The macro instruction table.  */
-
-static const CGEN_IBASE bpf_cgen_macro_insn_table[] =
+static bpf_insn_word
+bpf_handle_endianness (bpf_insn_word word, enum bpf_endian endian)
 {
-};
-
-/* The macro instruction opcode table.  */
-
-static const CGEN_OPCODE bpf_cgen_macro_insn_opcode_table[] =
-{
-};
-
-#undef A
-#undef OPERAND
-#undef MNEM
-#undef OP
-
-#ifndef CGEN_ASM_HASH_P
-#define CGEN_ASM_HASH_P(insn) 1
-#endif
-
-#ifndef CGEN_DIS_HASH_P
-#define CGEN_DIS_HASH_P(insn) 1
-#endif
-
-/* Return non-zero if INSN is to be added to the hash table.
-   Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file.  */
-
-static int
-asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
-{
-  return CGEN_ASM_HASH_P (insn);
-}
-
-static int
-dis_hash_insn_p (const CGEN_INSN *insn)
-{
-  /* If building the hash table and the NO-DIS attribute is present,
-     ignore.  */
-  if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
-    return 0;
-  return CGEN_DIS_HASH_P (insn);
-}
-
-#ifndef CGEN_ASM_HASH
-#define CGEN_ASM_HASH_SIZE 127
-#ifdef CGEN_MNEMONIC_OPERANDS
-#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
-#else
-#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
-#endif
-#endif
-
-/* It doesn't make much sense to provide a default here,
-   but while this is under development we do.
-   BUFFER is a pointer to the bytes of the insn, target order.
-   VALUE is the first base_insn_bitsize bits as an int in host order.  */
-
-#ifndef CGEN_DIS_HASH
-#define CGEN_DIS_HASH_SIZE 256
-#define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
-#endif
-
-/* The result is the hash value of the insn.
-   Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file.  */
-
-static unsigned int
-asm_hash_insn (const char *mnem)
-{
-  return CGEN_ASM_HASH (mnem);
-}
-
-/* BUF is a pointer to the bytes of the insn, target order.
-   VALUE is the first base_insn_bitsize bits as an int in host order.  */
-
-static unsigned int
-dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
-		     CGEN_INSN_INT value ATTRIBUTE_UNUSED)
-{
-  return CGEN_DIS_HASH (buf, value);
-}
-
-/* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
-
-static void
-set_fields_bitsize (CGEN_FIELDS *fields, int size)
-{
-  CGEN_FIELDS_BITSIZE (fields) = size;
-}
-
-/* Function to call before using the operand instance table.
-   This plugs the opcode entries and macro instructions into the cpu table.  */
-
-void
-bpf_cgen_init_opcode_table (CGEN_CPU_DESC cd)
-{
-  int i;
-  int num_macros = (sizeof (bpf_cgen_macro_insn_table) /
-		    sizeof (bpf_cgen_macro_insn_table[0]));
-  const CGEN_IBASE *ib = & bpf_cgen_macro_insn_table[0];
-  const CGEN_OPCODE *oc = & bpf_cgen_macro_insn_opcode_table[0];
-  CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
-
-  /* This test has been added to avoid a warning generated
-     if memset is called with a third argument of value zero.  */
-  if (num_macros >= 1)
-    memset (insns, 0, num_macros * sizeof (CGEN_INSN));
-  for (i = 0; i < num_macros; ++i)
+  if (endian == BPF_ENDIAN_LITTLE)
     {
-      insns[i].base = &ib[i];
-      insns[i].opcode = &oc[i];
-      bpf_cgen_build_insn_regex (& insns[i]);
-    }
-  cd->macro_insn_table.init_entries = insns;
-  cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
-  cd->macro_insn_table.num_init_entries = num_macros;
+      /* Endianness groups: 8 | 4 | 4 | 16 | 32  */
 
-  oc = & bpf_cgen_insn_opcode_table[0];
-  insns = (CGEN_INSN *) cd->insn_table.init_entries;
-  for (i = 0; i < MAX_INSNS; ++i)
-    {
-      insns[i].opcode = &oc[i];
-      bpf_cgen_build_insn_regex (& insns[i]);
+      bpf_insn_word code = (word >> 56) & 0xff;
+      bpf_insn_word dst = (word >> 48) & 0xf;
+      bpf_insn_word src = (word >> 52) & 0xf;
+      bpf_insn_word offset16 = (word >> 32) & 0xffff;
+      bpf_insn_word imm32 = word & 0xffffffff;
+
+      return ((code << 56)
+              | dst << 52
+              | src << 48
+              | (offset16 & 0xff) << 40
+              | ((offset16 >> 8) & 0xff) << 32
+              | (imm32 & 0xff) << 24
+              | ((imm32 >> 8) & 0xff) << 16
+              | ((imm32 >> 16) & 0xff) << 8
+              | ((imm32 >> 24) & 0xff));
     }
 
-  cd->sizeof_fields = sizeof (CGEN_FIELDS);
-  cd->set_fields_bitsize = set_fields_bitsize;
-
-  cd->asm_hash_p = asm_hash_insn_p;
-  cd->asm_hash = asm_hash_insn;
-  cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
-
-  cd->dis_hash_p = dis_hash_insn_p;
-  cd->dis_hash = dis_hash_insn;
-  cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
+  return word;
+}
+
+const struct bpf_opcode *
+bpf_match_insn (bpf_insn_word word,
+                enum bpf_endian endian,
+                int version)
+{
+  unsigned int i = 0;
+
+  while (bpf_opcodes[i].normal != NULL)
+    {
+      bpf_insn_word cword
+        = bpf_handle_endianness (word, endian);
+
+      /* Attempt match using mask and opcodes.  */
+      if (bpf_opcodes[i].version <= version
+          && (cword & bpf_opcodes[i].mask) == bpf_opcodes[i].opcode)
+        return &bpf_opcodes[i];
+      i++;
+    }
+
+  /* No maching instruction found.  */
+  return NULL;
+}
+
+uint8_t
+bpf_extract_src (bpf_insn_word word, enum bpf_endian endian)
+{
+  word = bpf_handle_endianness (word, endian);
+  return (uint8_t) ((word >> 48) & 0xf);
+}
+
+uint8_t
+bpf_extract_dst (bpf_insn_word word, enum bpf_endian endian)
+{
+  word = bpf_handle_endianness (word, endian);
+  return (uint8_t) ((word >> 52) & 0xf);
+}
+
+int16_t
+bpf_extract_offset16 (bpf_insn_word word, enum bpf_endian endian)
+{
+  word = bpf_handle_endianness (word, endian);
+  return (int16_t) ((word >> 32) & 0xffff);
+}
+
+int32_t
+bpf_extract_imm32 (bpf_insn_word word, enum bpf_endian endian)
+{
+  word = bpf_handle_endianness (word, endian);
+  return (int32_t) (word & 0xffffffff);
+}
+
+int64_t
+bpf_extract_imm64 (bpf_insn_word word1, bpf_insn_word word2,
+                   enum bpf_endian endian)
+{
+  word1 = bpf_handle_endianness (word1, endian);
+  word2 = bpf_handle_endianness (word2, endian);
+  return (int64_t) (((word2 & 0xffffffff) << 32) | (word1 & 0xffffffff));
+}
+
+const struct bpf_opcode *
+bpf_get_opcode (unsigned int index)
+{
+  unsigned int i = 0;
+
+  while (bpf_opcodes[i].normal != NULL && i < index)
+    ++i;
+  return (bpf_opcodes[i].normal == NULL
+          ? NULL
+          : &bpf_opcodes[i]);
 }
diff --git a/opcodes/configure b/opcodes/configure
index fa81f1d6bac..a9648baccb9 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for opcodes 2.41.
+# Generated by GNU Autoconf 2.69 for opcodes 2.41.50.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='opcodes'
 PACKAGE_TARNAME='opcodes'
-PACKAGE_VERSION='2.41'
-PACKAGE_STRING='opcodes 2.41'
+PACKAGE_VERSION='2.41.50'
+PACKAGE_STRING='opcodes 2.41.50'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1360,7 +1360,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures opcodes 2.41 to adapt to many kinds of systems.
+\`configure' configures opcodes 2.41.50 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1431,7 +1431,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of opcodes 2.41:";;
+     short | recursive ) echo "Configuration of opcodes 2.41.50:";;
    esac
   cat <<\_ACEOF
 
@@ -1545,7 +1545,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-opcodes configure 2.41
+opcodes configure 2.41.50
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2139,7 +2139,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by opcodes $as_me 2.41, which was
+It was created by opcodes $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3118,7 +3118,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='opcodes'
- VERSION='2.41'
+ VERSION='2.41.50'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12597,7 +12597,7 @@ if test x${all_targets} = xfalse ; then
 	bfd_xtensa_arch)	ta="$ta xtensa-dis.lo" ;;
 	bfd_z80_arch)		ta="$ta z80-dis.lo" ;;
 	bfd_z8k_arch)		ta="$ta z8k-dis.lo" ;;
-	bfd_bpf_arch)		ta="$ta bpf-asm.lo bpf-desc.lo bpf-dis.lo bpf-ibld.lo bpf-opc.lo" using_cgen=yes ;;
+	bfd_bpf_arch)		ta="$ta bpf-dis.lo bpf-opc.lo" ;;
 	bfd_loongarch_arch)	ta="$ta loongarch-dis.lo loongarch-opc.lo loongarch-coder.lo" ;;
 
 	"")			;;
@@ -13191,7 +13191,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by opcodes $as_me 2.41, which was
+This file was extended by opcodes $as_me 2.41.50, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13257,7 +13257,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-opcodes config.status 2.41
+opcodes config.status 2.41.50
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/opcodes/configure.ac b/opcodes/configure.ac
index 1beb72e87e0..7f508089c6f 100644
--- a/opcodes/configure.ac
+++ b/opcodes/configure.ac
@@ -345,7 +345,7 @@ if test x${all_targets} = xfalse ; then
 	bfd_xtensa_arch)	ta="$ta xtensa-dis.lo" ;;
 	bfd_z80_arch)		ta="$ta z80-dis.lo" ;;
 	bfd_z8k_arch)		ta="$ta z8k-dis.lo" ;;
-	bfd_bpf_arch)		ta="$ta bpf-asm.lo bpf-desc.lo bpf-dis.lo bpf-ibld.lo bpf-opc.lo" using_cgen=yes ;;
+	bfd_bpf_arch)		ta="$ta bpf-dis.lo bpf-opc.lo" ;;
 	bfd_loongarch_arch)	ta="$ta loongarch-dis.lo loongarch-opc.lo loongarch-coder.lo" ;;
 
 	"")			;;
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 7a4a641c2b9..8aac42ec96c 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -108,23 +108,6 @@
 #include "m32c-desc.h"
 #endif
 
-#ifdef ARCH_bpf
-/* XXX this should be including bpf-desc.h instead of this hackery,
-   but at the moment it is not possible to include several CGEN
-   generated *-desc.h files simultaneously.  To be fixed in
-   CGEN...  */
-
-# ifdef ARCH_m32c
-enum epbf_isa_attr
-{
-  ISA_EBPFLE, ISA_EBPFBE, ISA_XBPFLE, ISA_XBPFBE, ISA_EBPFMAX
-};
-# else
-#  include "bpf-desc.h"
-#  define ISA_EBPFMAX ISA_MAX
-# endif
-#endif /* ARCH_bpf */
-
 disassembler_ftype
 disassembler (enum bfd_architecture a,
 	      bool big ATTRIBUTE_UNUSED,
@@ -594,7 +577,9 @@ disassembler_usage (FILE *stream ATTRIBUTE_UNUSED)
 #ifdef ARCH_loongarch
   print_loongarch_disassembler_options (stream);
 #endif
-
+#ifdef ARCH_bpf
+  print_bpf_disassembler_options (stream);
+#endif
   return;
 }
 
@@ -695,23 +680,7 @@ disassemble_init_for_target (struct disassemble_info * info)
 #endif
 #ifdef ARCH_bpf
     case bfd_arch_bpf:
-      info->endian_code = BFD_ENDIAN_LITTLE;
-      if (!info->private_data)
-	{
-	  info->private_data = cgen_bitset_create (ISA_MAX);
-	  if (info->endian == BFD_ENDIAN_BIG)
-	    {
-	      cgen_bitset_set (info->private_data, ISA_EBPFBE);
-	      if (info->mach == bfd_mach_xbpf)
-		cgen_bitset_set (info->private_data, ISA_XBPFBE);
-	    }
-	  else
-	    {
-	      cgen_bitset_set (info->private_data, ISA_EBPFLE);
-	      if (info->mach == bfd_mach_xbpf)
-		cgen_bitset_set (info->private_data, ISA_XBPFLE);
-	    }
-	}
+      info->created_styled_output = true;
       break;
 #endif
 #ifdef ARCH_pru
@@ -768,13 +737,10 @@ disassemble_free_target (struct disassemble_info *info)
     default:
       return;
 
-#ifdef ARCH_bpf
-    case bfd_arch_bpf:
-#endif
 #ifdef ARCH_m32c
     case bfd_arch_m32c:
 #endif
-#if defined ARCH_bpf || defined ARCH_m32c
+#if defined ARCH_m32c
       if (info->private_data)
 	{
 	  CGEN_BITSET *mask = info->private_data;
diff --git a/opcodes/i386-dis-evex-len.h b/opcodes/i386-dis-evex-len.h
index e69c02484be..a02609c50f2 100644
--- a/opcodes/i386-dis-evex-len.h
+++ b/opcodes/i386-dis-evex-len.h
@@ -13,18 +13,18 @@ static const struct dis386 evex_len_table[][3] = {
     { VEX_W_TABLE (EVEX_W_0F3819_L_n) },
   },
 
-  /* EVEX_LEN_0F381A_M_0 */
+  /* EVEX_LEN_0F381A */
   {
     { Bad_Opcode },
-    { VEX_W_TABLE (EVEX_W_0F381A_M_0_L_n) },
-    { VEX_W_TABLE (EVEX_W_0F381A_M_0_L_n) },
+    { VEX_W_TABLE (EVEX_W_0F381A_L_n) },
+    { VEX_W_TABLE (EVEX_W_0F381A_L_n) },
   },
 
-  /* EVEX_LEN_0F381B_M_0 */
+  /* EVEX_LEN_0F381B */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_W_TABLE (EVEX_W_0F381B_M_0_L_2) },
+    { VEX_W_TABLE (EVEX_W_0F381B_L_2) },
   },
 
   /* EVEX_LEN_0F3836 */
@@ -34,32 +34,32 @@ static const struct dis386 evex_len_table[][3] = {
     { "vperm%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
   },
 
-  /* EVEX_LEN_0F385A_M_0 */
+  /* EVEX_LEN_0F385A */
   {
     { Bad_Opcode },
-    { VEX_W_TABLE (EVEX_W_0F385A_M_0_L_n) },
-    { VEX_W_TABLE (EVEX_W_0F385A_M_0_L_n) },
+    { VEX_W_TABLE (EVEX_W_0F385A_L_n) },
+    { VEX_W_TABLE (EVEX_W_0F385A_L_n) },
   },
 
-  /* EVEX_LEN_0F385B_M_0 */
+  /* EVEX_LEN_0F385B */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_W_TABLE (EVEX_W_0F385B_M_0_L_2) },
+    { VEX_W_TABLE (EVEX_W_0F385B_L_2) },
   },
 
-  /* EVEX_LEN_0F38C6_M_0 */
+  /* EVEX_LEN_0F38C6 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { REG_TABLE (REG_EVEX_0F38C6_M_0_L_2) },
+    { REG_TABLE (REG_EVEX_0F38C6_L_2) },
   },
 
-  /* EVEX_LEN_0F38C7_M_0 */
+  /* EVEX_LEN_0F38C7 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { REG_TABLE (REG_EVEX_0F38C7_M_0_L_2) },
+    { REG_TABLE (REG_EVEX_0F38C7_L_2) },
   },
 
   /* EVEX_LEN_0F3A00 */
diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h
index b3af48e421d..f9f912c5094 100644
--- a/opcodes/i386-dis-evex-mod.h
+++ b/opcodes/i386-dis-evex-mod.h
@@ -1,59 +1 @@
-  /* MOD_EVEX_0F381A */
-  {
-    { EVEX_LEN_TABLE (EVEX_LEN_0F381A_M_0) },
-  },
-  /* MOD_EVEX_0F381B */
-  {
-    { EVEX_LEN_TABLE (EVEX_LEN_0F381B_M_0) },
-  },
-  /* MOD_EVEX_0F3828_P_1 */
-  {
-    { Bad_Opcode },
-    { "vpmovm2%BW",	{ XM, MaskE }, 0 },
-  },
-  /* MOD_EVEX_0F382A_P_1_W_1 */
-  {
-    { Bad_Opcode },
-    { "vpbroadcastmb2q",	{ XM, MaskE }, 0 },
-  },
-  /* MOD_EVEX_0F3838_P_1 */
-  {
-    { Bad_Opcode },
-    { "vpmovm2%DQ",	{ XM, MaskE }, 0 },
-  },
-  /* MOD_EVEX_0F383A_P_1_W_0 */
-  {
-    { Bad_Opcode },
-    { "vpbroadcastmw2d",	{ XM, MaskE }, 0 },
-  },
-  /* MOD_EVEX_0F385A */
-  {
-    { EVEX_LEN_TABLE (EVEX_LEN_0F385A_M_0) },
-  },
-  /* MOD_EVEX_0F385B */
-  {
-    { EVEX_LEN_TABLE (EVEX_LEN_0F385B_M_0) },
-  },
-  /* MOD_EVEX_0F387A_W_0 */
-  {
-    { Bad_Opcode },
-    { "vpbroadcastb",	{ XM, Ed }, PREFIX_DATA },
-  },
-  /* MOD_EVEX_0F387B_W_0 */
-  {
-    { Bad_Opcode },
-    { "vpbroadcastw",	{ XM, Ed }, PREFIX_DATA },
-  },
-  /* MOD_EVEX_0F387C */
-  {
-    { Bad_Opcode },
-    { "vpbroadcastK",	{ XM, Edq }, PREFIX_DATA },
-  },
-  {
-    /* MOD_EVEX_0F38C6 */
-    { EVEX_LEN_TABLE (EVEX_LEN_0F38C6_M_0) },
-  },
-  {
-    /* MOD_EVEX_0F38C7 */
-    { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_M_0) },
-  },
+/* Nothing at present.  */
diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h
index a6fdca7b9f9..28da54922c7 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -42,9 +42,9 @@
   /* PREFIX_EVEX_0F7B */
   {
     { Bad_Opcode },
-    { "vcvtusi2ss{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
+    { "vcvtusi2ssY{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
     { VEX_W_TABLE (EVEX_W_0F7B_P_2) },
-    { "vcvtusi2sd{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
+    { "vcvtusi2sdY{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
   },
   /* PREFIX_EVEX_0F7E */
   {
@@ -160,13 +160,13 @@
   /* PREFIX_EVEX_0F3828 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_EVEX_0F3828_P_1) },
+    { "vpmovm2Y%BW",	{ XM, MaskR }, 0 },
     { VEX_W_TABLE (EVEX_W_0F3828_P_2) },
   },
   /* PREFIX_EVEX_0F3829 */
   {
     { Bad_Opcode },
-    { "vpmov%BW2m",	{ MaskG, EXx }, 0 },
+    { "vpmov%BW2mY",	{ MaskG, Ux }, 0 },
     { VEX_W_TABLE (EVEX_W_0F3829_P_2) },
   },
   /* PREFIX_EVEX_0F382A */
@@ -214,13 +214,13 @@
   /* PREFIX_EVEX_0F3838 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_EVEX_0F3838_P_1) },
+    { "vpmovm2Y%DQ",	{ XM, MaskR }, 0 },
     { "%XEvpminsb",	{ XM, Vex, EXx }, 0 },
   },
   /* PREFIX_EVEX_0F3839 */
   {
     { Bad_Opcode },
-    { "vpmov%DQ2m",	{ MaskG, EXx }, 0 },
+    { "vpmov%DQ2mY",	{ MaskG, Ux }, 0 },
     { "%XEvpmins%DQ",	{ XM, Vex, EXx }, 0 },
   },
   /* PREFIX_EVEX_0F383A */
@@ -248,7 +248,7 @@
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vp2intersect%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 },
+    { "vp2intersectY%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 },
   },
   /* PREFIX_EVEX_0F3872 */
   {
@@ -357,7 +357,7 @@
   /* PREFIX_EVEX_MAP5_2A */
   {
     { Bad_Opcode },
-    { "vcvtsi2sh{%LQ|}",        { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
+    { "vcvtsi2shY{%LQ|}",        { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
   },
   /* PREFIX_EVEX_MAP5_2C */
   {
@@ -371,11 +371,11 @@
   },
   /* PREFIX_EVEX_MAP5_2E */
   {
-    { "vucomis%XH",       { XMScalar, EXw, EXxEVexS }, 0 },
+    { "vucomisY%XH",       { XMScalar, EXw, EXxEVexS }, 0 },
   },
   /* PREFIX_EVEX_MAP5_2F */
   {
-    { "vcomis%XH",        { XMScalar, EXw, EXxEVexS }, 0 },
+    { "vcomisY%XH",        { XMScalar, EXw, EXxEVexS }, 0 },
   },
   /* PREFIX_EVEX_MAP5_51 */
   {
@@ -447,7 +447,7 @@
   /* PREFIX_EVEX_MAP5_7B */
   {
     { Bad_Opcode },
-    { "vcvtusi2sh{%LQ|}",       { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
+    { "vcvtusi2shY{%LQ|}",       { XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
     { "vcvtp%XH2qq",    { XM, EXxmmqdh, EXxEVexR }, 0 },
   },
   /* PREFIX_EVEX_MAP5_7C */
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index c0f55c3c0e0..2885063628b 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -23,13 +23,13 @@
     { Bad_Opcode },
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F73_R_2) },
-    { "%XEvpsrldq",	{ Vex, EXx, Ib }, PREFIX_DATA },
+    { "%XEvpsrldqY",	{ Vex, EXx, Ib }, PREFIX_DATA },
     { Bad_Opcode },
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F73_R_6) },
-    { "%XEvpslldq",	{ Vex, EXx, Ib }, PREFIX_DATA },
+    { "%XEvpslldqY",	{ Vex, EXx, Ib }, PREFIX_DATA },
   },
-  /* REG_EVEX_0F38C6_M_0_L_2 */
+  /* REG_EVEX_0F38C6_L_2 */
   {
     { Bad_Opcode },
     { "vgatherpf0dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
@@ -39,7 +39,7 @@
     { "vscatterpf0dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
     { "vscatterpf1dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
   },
-  /* REG_EVEX_0F38C7_M_0_L_2_W_0 */
+  /* REG_EVEX_0F38C7_L_2 */
   {
     { Bad_Opcode },
     { "vgatherpf0qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
diff --git a/opcodes/i386-dis-evex-w.h b/opcodes/i386-dis-evex-w.h
index ba3b1959675..b828277d413 100644
--- a/opcodes/i386-dis-evex-w.h
+++ b/opcodes/i386-dis-evex-w.h
@@ -156,7 +156,7 @@
   },
   /* EVEX_W_0FE7 */
   {
-    { "%XEvmovntdq",	{ EXEvexXNoBcst, XM }, PREFIX_DATA },
+    { "%XEvmovntdq",	{ Mx, XM }, PREFIX_DATA },
   },
   /* EVEX_W_0FF2 */
   {
@@ -229,15 +229,15 @@
     { "vbroadcastf32x2",	{ XM, EXq }, PREFIX_DATA },
     { "%XEvbroadcastsd",	{ XM, EXq }, PREFIX_DATA },
   },
-  /* EVEX_W_0F381A_M_0_L_n */
+  /* EVEX_W_0F381A_L_n */
   {
-    { "vbroadcastf32x4",	{ XM, EXxmm }, PREFIX_DATA },
-    { "vbroadcastf64x2",	{ XM, EXxmm }, PREFIX_DATA },
+    { "vbroadcastf32x4",	{ XM, Mxmm }, PREFIX_DATA },
+    { "vbroadcastf64x2",	{ XM, Mxmm }, PREFIX_DATA },
   },
-  /* EVEX_W_0F381B_M_0_L_2 */
+  /* EVEX_W_0F381B_L_2 */
   {
-    { "vbroadcastf32x8",	{ XM, EXymm }, PREFIX_DATA },
-    { "vbroadcastf64x4",	{ XM, EXymm }, PREFIX_DATA },
+    { "vbroadcastf32x8",	{ XM, Mymm }, PREFIX_DATA },
+    { "vbroadcastf64x4",	{ XM, Mymm }, PREFIX_DATA },
   },
   /* EVEX_W_0F381E */
   {
@@ -289,11 +289,11 @@
   /* EVEX_W_0F382A_P_1 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_EVEX_0F382A_P_1_W_1) },
+    { "vpbroadcastmb2qY", { XM, MaskR }, 0 },
   },
   /* EVEX_W_0F382A_P_2 */
   {
-    { "%XEvmovntdqa",	{ XM, EXEvexXNoBcst }, 0 },
+    { "%XEvmovntdqaY",	{ XM, Mx }, 0 },
   },
   /* EVEX_W_0F382B */
   {
@@ -334,22 +334,22 @@
   },
   /* EVEX_W_0F383A_P_1 */
   {
-    { MOD_TABLE (MOD_EVEX_0F383A_P_1_W_0) },
+    { "vpbroadcastmw2dY",	{ XM, MaskR }, 0 },
   },
   /* EVEX_W_0F3859 */
   {
     { "vbroadcasti32x2",	{ XM, EXq }, PREFIX_DATA },
     { "%XEvpbroadcastq",	{ XM, EXq }, PREFIX_DATA },
   },
-  /* EVEX_W_0F385A_M_0_L_n */
+  /* EVEX_W_0F385A_L_n */
   {
-    { "vbroadcasti32x4",	{ XM, EXxmm }, PREFIX_DATA },
-    { "vbroadcasti64x2",	{ XM, EXxmm }, PREFIX_DATA },
+    { "vbroadcasti32x4",	{ XM, Mxmm }, PREFIX_DATA },
+    { "vbroadcasti64x2",	{ XM, Mxmm }, PREFIX_DATA },
   },
-  /* EVEX_W_0F385B_M_0_L_2 */
+  /* EVEX_W_0F385B_L_2 */
   {
-    { "vbroadcasti32x8",	{ XM, EXymm }, PREFIX_DATA },
-    { "vbroadcasti64x4",	{ XM, EXymm }, PREFIX_DATA },
+    { "vbroadcasti32x8",	{ XM, Mymm }, PREFIX_DATA },
+    { "vbroadcasti64x4",	{ XM, Mymm }, PREFIX_DATA },
   },
   /* EVEX_W_0F3870 */
   {
@@ -363,11 +363,11 @@
   },
   /* EVEX_W_0F387A */
   {
-    { MOD_TABLE (MOD_EVEX_0F387A_W_0) },
+    { "vpbroadcastb",	{ XM, Rd }, PREFIX_DATA },
   },
   /* EVEX_W_0F387B */
   {
-    { MOD_TABLE (MOD_EVEX_0F387B_W_0) },
+    { "vpbroadcastw",	{ XM, Rd }, PREFIX_DATA },
   },
   /* EVEX_W_0F3883 */
   {
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 65935a328c5..e6295119d2b 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -20,14 +20,14 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 10 */
-    { PREFIX_TABLE (PREFIX_VEX_0F10) },
-    { PREFIX_TABLE (PREFIX_VEX_0F11) },
+    { PREFIX_TABLE (PREFIX_0F10) },
+    { PREFIX_TABLE (PREFIX_0F11) },
     { PREFIX_TABLE (PREFIX_VEX_0F12) },
-    { MOD_TABLE (MOD_VEX_0F13) },
+    { VEX_LEN_TABLE (VEX_LEN_0F13) },
     { "%XEvunpcklpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     { "%XEvunpckhpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     { PREFIX_TABLE (PREFIX_VEX_0F16) },
-    { MOD_TABLE (MOD_VEX_0F17) },
+    { VEX_LEN_TABLE (VEX_LEN_0F17) },
     /* 18 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -50,11 +50,11 @@ static const struct dis386 evex_table[][256] = {
     { "%XEvmovapX",	{ XM, EXx }, PREFIX_OPCODE },
     { "%XEvmovapX",	{ EXxS, XM }, PREFIX_OPCODE },
     { PREFIX_TABLE (PREFIX_VEX_0F2A) },
-    { MOD_TABLE (MOD_VEX_0F2B) },
+    { "%XEvmovntpX",	{ Mx, XM }, PREFIX_OPCODE },
     { PREFIX_TABLE (PREFIX_VEX_0F2C) },
     { PREFIX_TABLE (PREFIX_VEX_0F2D) },
-    { PREFIX_TABLE (PREFIX_VEX_0F2E) },
-    { PREFIX_TABLE (PREFIX_VEX_0F2F) },
+    { PREFIX_TABLE (PREFIX_0F2E) },
+    { PREFIX_TABLE (PREFIX_0F2F) },
     /* 30 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -93,7 +93,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     /* 50 */
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_VEX_0F51) },
+    { PREFIX_TABLE (PREFIX_0F51) },
     { Bad_Opcode },
     { Bad_Opcode },
     { "%XEvandpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
@@ -101,14 +101,14 @@ static const struct dis386 evex_table[][256] = {
     { "%XEvorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     { "%XEvxorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     /* 58 */
-    { PREFIX_TABLE (PREFIX_VEX_0F58) },
-    { PREFIX_TABLE (PREFIX_VEX_0F59) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5A) },
+    { PREFIX_TABLE (PREFIX_0F58) },
+    { PREFIX_TABLE (PREFIX_0F59) },
+    { PREFIX_TABLE (PREFIX_0F5A) },
     { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5C) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5D) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5E) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5F) },
+    { PREFIX_TABLE (PREFIX_0F5C) },
+    { PREFIX_TABLE (PREFIX_0F5D) },
+    { PREFIX_TABLE (PREFIX_0F5E) },
+    { PREFIX_TABLE (PREFIX_0F5F) },
     /* 60 */
     { "%XEvpunpcklbw",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "%XEvpunpcklwd",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -223,7 +223,7 @@ static const struct dis386 evex_table[][256] = {
     { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
     { Bad_Opcode },
     { VEX_LEN_TABLE (VEX_LEN_0FC4) },
-    { VEX_LEN_TABLE (VEX_LEN_0FC5) },
+    { "%XEvpextrw",	{ Gd, Uxmm, Ib }, PREFIX_DATA },
     { "%XEvshufpX",	{ XM, Vex, EXx, Ib }, PREFIX_OPCODE },
     { Bad_Opcode },
     /* C8 */
@@ -278,7 +278,7 @@ static const struct dis386 evex_table[][256] = {
     { VEX_W_TABLE (EVEX_W_0FF3) },
     { VEX_W_TABLE (EVEX_W_0FF4) },
     { "%XEvpmaddwd",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { "%XEvpsadbw",	{ XM, Vex, EXx }, PREFIX_DATA },
+    { "%XEvpsadbwY",	{ XM, Vex, EXx }, PREFIX_DATA },
     { Bad_Opcode },
     /* F8 */
     { "%XEvpsubb",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -322,8 +322,8 @@ static const struct dis386 evex_table[][256] = {
     /* 18 */
     { VEX_W_TABLE (VEX_W_0F3818) },
     { EVEX_LEN_TABLE (EVEX_LEN_0F3819) },
-    { MOD_TABLE (MOD_EVEX_0F381A) },
-    { MOD_TABLE (MOD_EVEX_0F381B) },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F381A) },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F381B) },
     { "%XEvpabsb",		{ XM, EXx }, PREFIX_DATA },
     { "%XEvpabsw",		{ XM, EXx }, PREFIX_DATA },
     { VEX_W_TABLE (EVEX_W_0F381E) },
@@ -394,8 +394,8 @@ static const struct dis386 evex_table[][256] = {
     /* 58 */
     { VEX_W_TABLE (VEX_W_0F3858) },
     { VEX_W_TABLE (EVEX_W_0F3859) },
-    { MOD_TABLE (MOD_EVEX_0F385A) },
-    { MOD_TABLE (MOD_EVEX_0F385B) },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F385A) },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F385B) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -432,7 +432,7 @@ static const struct dis386 evex_table[][256] = {
     { VEX_W_TABLE (VEX_W_0F3879) },
     { VEX_W_TABLE (EVEX_W_0F387A) },
     { VEX_W_TABLE (EVEX_W_0F387B) },
-    { MOD_TABLE (MOD_EVEX_0F387C) },
+    { "vpbroadcastK",	{ XM, Rdq }, PREFIX_DATA },
     { "vpermt2%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpermt2%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpermt2p%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -515,8 +515,8 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { "vpconflict%DQ",	{ XM, EXx }, PREFIX_DATA },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_EVEX_0F38C6) },
-    { MOD_TABLE (MOD_EVEX_0F38C7) },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F38C6) },
+    { EVEX_LEN_TABLE (EVEX_LEN_0F38C7) },
     /* C8 */
     { "vexp2p%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
     { Bad_Opcode },
@@ -540,10 +540,10 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "%XEvaesenc",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { "%XEvaesenclast",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { "%XEvaesdec",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { "%XEvaesdeclast",	{ XM, Vex, EXx }, PREFIX_DATA },
+    { "%XEvaesencY",	{ XM, Vex, EXx }, PREFIX_DATA },
+    { "%XEvaesenclastY", { XM, Vex, EXx }, PREFIX_DATA },
+    { "%XEvaesdecY",	{ XM, Vex, EXx }, PREFIX_DATA },
+    { "%XEvaesdeclastY", { XM, Vex, EXx }, PREFIX_DATA },
     /* E0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -660,7 +660,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F3A42) },
     { EVEX_LEN_TABLE (EVEX_LEN_0F3A43) },
-    { "%XEvpclmulqdq",	{ XM, Vex, EXx, PCLMUL }, PREFIX_DATA },
+    { "%XEvpclmulqdqY",	{ XM, Vex, EXx, PCLMUL }, PREFIX_DATA },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -998,7 +998,7 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vmovw", { XMScalar, Edw }, PREFIX_DATA },
+    { "vmovwY", { XMScalar, Edw }, PREFIX_DATA },
     { Bad_Opcode },
     /* 70 */
     { Bad_Opcode },
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 15a0e1b1080..87ecf0f5e23 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -74,8 +74,7 @@ static bool OP_EM (instr_info *, int, int);
 static bool OP_EX (instr_info *, int, int);
 static bool OP_EMC (instr_info *, int,int);
 static bool OP_MXC (instr_info *, int,int);
-static bool OP_MS (instr_info *, int, int);
-static bool OP_XS (instr_info *, int, int);
+static bool OP_R (instr_info *, int, int);
 static bool OP_M (instr_info *, int, int);
 static bool OP_VEX (instr_info *, int, int);
 static bool OP_VexR (instr_info *, int, int);
@@ -146,7 +145,7 @@ struct instr_info
   uint8_t rex_used;
 
   bool need_modrm;
-  bool need_vex;
+  unsigned char need_vex;
   bool has_sib;
 
   /* Flags for ins->prefixes which we somehow handled when printing the
@@ -219,6 +218,9 @@ struct instr_info
 
   bool two_source_ops;
 
+  /* Record whether EVEX masking is used incorrectly.  */
+  bool illegal_masking;
+
   unsigned char op_ad;
   signed char op_index[MAX_OPERANDS];
   bool op_riprel[MAX_OPERANDS];
@@ -410,6 +412,7 @@ fetch_error (const instr_info *ins)
 #define Mw { OP_M, w_mode }
 #define Mx { OP_M, x_mode }
 #define Mxmm { OP_M, xmm_mode }
+#define Mymm { OP_M, ymm_mode }
 #define Gb { OP_G, b_mode }
 #define Gbnd { OP_G, bnd_mode }
 #define Gv { OP_G, v_mode }
@@ -513,7 +516,6 @@ fetch_error (const instr_info *ins)
 #define EXxS { OP_EX, x_swap_mode }
 #define EXxmm { OP_EX, xmm_mode }
 #define EXymm { OP_EX, ymm_mode }
-#define EXtmm { OP_EX, tmm_mode }
 #define EXxmmq { OP_EX, xmmq_mode }
 #define EXxmmqh { OP_EX, evex_half_bcst_xmmqh_mode }
 #define EXEvexHalfBcstXmmq { OP_EX, evex_half_bcst_xmmq_mode }
@@ -523,8 +525,14 @@ fetch_error (const instr_info *ins)
 #define EXymmq { OP_EX, ymmq_mode }
 #define EXEvexXGscat { OP_EX, evex_x_gscat_mode }
 #define EXEvexXNoBcst { OP_EX, evex_x_nobcst_mode }
-#define MS { OP_MS, v_mode }
-#define XS { OP_XS, v_mode }
+#define Rd { OP_R, d_mode }
+#define Rdq { OP_R, dq_mode }
+#define Nq { OP_R, q_mode }
+#define Ux { OP_R, x_mode }
+#define Uxmm { OP_R, xmm_mode }
+#define Rxmmq { OP_R, xmmq_mode }
+#define Rymm { OP_R, ymm_mode }
+#define Rtmm { OP_R, tmm_mode }
 #define EMCq { OP_EMC, q_mode }
 #define MXC { OP_MXC, 0 }
 #define OPSUF { OP_3DNowSuffix, 0 }
@@ -554,6 +562,7 @@ fetch_error (const instr_info *ins)
 
 #define MaskG { OP_G, mask_mode }
 #define MaskE { OP_E, mask_mode }
+#define MaskR { OP_R, mask_mode }
 #define MaskBDE { OP_E, mask_bd_mode }
 #define MaskVex { OP_VEX, mask_mode }
 
@@ -782,20 +791,18 @@ enum
 #define FLOAT			NULL, { { NULL, FLOATCODE } }, 0
 
 #define DIS386(T, I)		NULL, { { NULL, (T)}, { NULL,  (I) } }, 0
-#define DIS386_PREFIX(T, I, P)		NULL, { { NULL, (T)}, { NULL,  (I) } }, P
 #define REG_TABLE(I)		DIS386 (USE_REG_TABLE, (I))
 #define MOD_TABLE(I)		DIS386 (USE_MOD_TABLE, (I))
 #define RM_TABLE(I)		DIS386 (USE_RM_TABLE, (I))
 #define PREFIX_TABLE(I)		DIS386 (USE_PREFIX_TABLE, (I))
 #define X86_64_TABLE(I)		DIS386 (USE_X86_64_TABLE, (I))
 #define THREE_BYTE_TABLE(I)	DIS386 (USE_3BYTE_TABLE, (I))
-#define THREE_BYTE_TABLE_PREFIX(I, P)	DIS386_PREFIX (USE_3BYTE_TABLE, (I), P)
-#define XOP_8F_TABLE(I)		DIS386 (USE_XOP_8F_TABLE, (I))
-#define VEX_C4_TABLE(I)		DIS386 (USE_VEX_C4_TABLE, (I))
-#define VEX_C5_TABLE(I)		DIS386 (USE_VEX_C5_TABLE, (I))
+#define XOP_8F_TABLE()		DIS386 (USE_XOP_8F_TABLE, 0)
+#define VEX_C4_TABLE()		DIS386 (USE_VEX_C4_TABLE, 0)
+#define VEX_C5_TABLE()		DIS386 (USE_VEX_C5_TABLE, 0)
 #define VEX_LEN_TABLE(I)	DIS386 (USE_VEX_LEN_TABLE, (I))
 #define VEX_W_TABLE(I)		DIS386 (USE_VEX_W_TABLE, (I))
-#define EVEX_TABLE(I)		DIS386 (USE_EVEX_TABLE, (I))
+#define EVEX_TABLE()		DIS386 (USE_EVEX_TABLE, 0)
 #define EVEX_LEN_TABLE(I)	DIS386 (USE_EVEX_LEN_TABLE, (I))
 
 enum
@@ -823,58 +830,47 @@ enum
   REG_0F1C_P_0_MOD_0,
   REG_0F1E_P_1_MOD_3,
   REG_0F38D8_PREFIX_1,
-  REG_0F3A0F_PREFIX_1_MOD_3,
-  REG_0F71_MOD_0,
-  REG_0F72_MOD_0,
-  REG_0F73_MOD_0,
+  REG_0F3A0F_P_1,
+  REG_0F71,
+  REG_0F72,
+  REG_0F73,
   REG_0FA6,
   REG_0FA7,
   REG_0FAE,
   REG_0FBA,
   REG_0FC7,
-  REG_VEX_0F71_M_0,
-  REG_VEX_0F72_M_0,
-  REG_VEX_0F73_M_0,
+  REG_VEX_0F71,
+  REG_VEX_0F72,
+  REG_VEX_0F73,
   REG_VEX_0FAE,
   REG_VEX_0F3849_X86_64_L_0_W_0_M_1_P_0,
   REG_VEX_0F38F3_L_0,
 
   REG_XOP_09_01_L_0,
   REG_XOP_09_02_L_0,
-  REG_XOP_09_12_M_1_L_0,
+  REG_XOP_09_12_L_0,
   REG_XOP_0A_12_L_0,
 
   REG_EVEX_0F71,
   REG_EVEX_0F72,
   REG_EVEX_0F73,
-  REG_EVEX_0F38C6_M_0_L_2,
-  REG_EVEX_0F38C7_M_0_L_2
+  REG_EVEX_0F38C6_L_2,
+  REG_EVEX_0F38C7_L_2
 };
 
 enum
 {
   MOD_62_32BIT = 0,
-  MOD_8D,
   MOD_C4_32BIT,
   MOD_C5_32BIT,
-  MOD_C6_REG_7,
-  MOD_C7_REG_7,
-  MOD_FF_REG_3,
-  MOD_FF_REG_5,
   MOD_0F01_REG_0,
   MOD_0F01_REG_1,
   MOD_0F01_REG_2,
   MOD_0F01_REG_3,
   MOD_0F01_REG_5,
   MOD_0F01_REG_7,
-  MOD_0F02,
-  MOD_0F03,
   MOD_0F12_PREFIX_0,
-  MOD_0F12_PREFIX_2,
-  MOD_0F13,
   MOD_0F16_PREFIX_0,
-  MOD_0F16_PREFIX_2,
-  MOD_0F17,
   MOD_0F18_REG_0,
   MOD_0F18_REG_1,
   MOD_0F18_REG_2,
@@ -886,14 +882,6 @@ enum
   MOD_0F1B_PREFIX_1,
   MOD_0F1C_PREFIX_0,
   MOD_0F1E_PREFIX_1,
-  MOD_0F2B_PREFIX_0,
-  MOD_0F2B_PREFIX_1,
-  MOD_0F2B_PREFIX_2,
-  MOD_0F2B_PREFIX_3,
-  MOD_0F50,
-  MOD_0F71,
-  MOD_0F72,
-  MOD_0F73,
   MOD_0FAE_REG_0,
   MOD_0FAE_REG_1,
   MOD_0FAE_REG_2,
@@ -902,96 +890,11 @@ enum
   MOD_0FAE_REG_5,
   MOD_0FAE_REG_6,
   MOD_0FAE_REG_7,
-  MOD_0FB2,
-  MOD_0FB4,
-  MOD_0FB5,
-  MOD_0FC3,
-  MOD_0FC7_REG_3,
-  MOD_0FC7_REG_4,
-  MOD_0FC7_REG_5,
   MOD_0FC7_REG_6,
   MOD_0FC7_REG_7,
-  MOD_0FD7,
-  MOD_0FE7_PREFIX_2,
-  MOD_0FF0_PREFIX_3,
-  MOD_0F382A,
   MOD_0F38DC_PREFIX_1,
-  MOD_0F38DD_PREFIX_1,
-  MOD_0F38DE_PREFIX_1,
-  MOD_0F38DF_PREFIX_1,
-  MOD_0F38F5,
-  MOD_0F38F6_PREFIX_0,
-  MOD_0F38F8_PREFIX_1,
-  MOD_0F38F8_PREFIX_2,
-  MOD_0F38F8_PREFIX_3,
-  MOD_0F38F9,
-  MOD_0F38FA_PREFIX_1,
-  MOD_0F38FB_PREFIX_1,
-  MOD_0F3A0F_PREFIX_1,
 
-  MOD_VEX_0F12_PREFIX_0,
-  MOD_VEX_0F12_PREFIX_2,
-  MOD_VEX_0F13,
-  MOD_VEX_0F16_PREFIX_0,
-  MOD_VEX_0F16_PREFIX_2,
-  MOD_VEX_0F17,
-  MOD_VEX_0F2B,
-  MOD_VEX_0F41_L_1,
-  MOD_VEX_0F42_L_1,
-  MOD_VEX_0F44_L_0,
-  MOD_VEX_0F45_L_1,
-  MOD_VEX_0F46_L_1,
-  MOD_VEX_0F47_L_1,
-  MOD_VEX_0F4A_L_1,
-  MOD_VEX_0F4B_L_1,
-  MOD_VEX_0F50,
-  MOD_VEX_0F71,
-  MOD_VEX_0F72,
-  MOD_VEX_0F73,
-  MOD_VEX_0F91_L_0,
-  MOD_VEX_0F92_L_0,
-  MOD_VEX_0F93_L_0,
-  MOD_VEX_0F98_L_0,
-  MOD_VEX_0F99_L_0,
-  MOD_VEX_0FAE_REG_2,
-  MOD_VEX_0FAE_REG_3,
-  MOD_VEX_0FD7,
-  MOD_VEX_0FE7,
-  MOD_VEX_0FF0_PREFIX_3,
-  MOD_VEX_0F381A,
-  MOD_VEX_0F382A,
-  MOD_VEX_0F382C,
-  MOD_VEX_0F382D,
-  MOD_VEX_0F382E,
-  MOD_VEX_0F382F,
   MOD_VEX_0F3849_X86_64_L_0_W_0,
-  MOD_VEX_0F384B_X86_64_L_0_W_0,
-  MOD_VEX_0F385A,
-  MOD_VEX_0F385C_X86_64,
-  MOD_VEX_0F385E_X86_64,
-  MOD_VEX_0F386C_X86_64,
-  MOD_VEX_0F388C,
-  MOD_VEX_0F388E,
-  MOD_VEX_0F3A30_L_0,
-  MOD_VEX_0F3A31_L_0,
-  MOD_VEX_0F3A32_L_0,
-  MOD_VEX_0F3A33_L_0,
-
-  MOD_XOP_09_12,
-
-  MOD_EVEX_0F381A,
-  MOD_EVEX_0F381B,
-  MOD_EVEX_0F3828_P_1,
-  MOD_EVEX_0F382A_P_1_W_1,
-  MOD_EVEX_0F3838_P_1,
-  MOD_EVEX_0F383A_P_1_W_0,
-  MOD_EVEX_0F385A,
-  MOD_EVEX_0F385B,
-  MOD_EVEX_0F387A_W_0,
-  MOD_EVEX_0F387B_W_0,
-  MOD_EVEX_0F387C,
-  MOD_EVEX_0F38C6,
-  MOD_EVEX_0F38C7,
 };
 
 enum
@@ -1007,7 +910,7 @@ enum
   RM_0F1E_P_1_MOD_3_REG_7,
   RM_0FAE_REG_6_MOD_3_P_0,
   RM_0FAE_REG_7_MOD_3,
-  RM_0F3A0F_P_1_MOD_3_REG_0,
+  RM_0F3A0F_P_1_R_0,
 
   RM_VEX_0F3849_X86_64_L_0_W_0_M_1_P_0_R_0,
   RM_VEX_0F3849_X86_64_L_0_W_0_M_1_P_3,
@@ -1018,6 +921,7 @@ enum
   PREFIX_90 = 0,
   PREFIX_0F00_REG_6_X86_64,
   PREFIX_0F01_REG_0_MOD_3_RM_6,
+  PREFIX_0F01_REG_0_MOD_3_RM_7,
   PREFIX_0F01_REG_1_RM_2,
   PREFIX_0F01_REG_1_RM_4,
   PREFIX_0F01_REG_1_RM_5,
@@ -1111,75 +1015,60 @@ enum
   PREFIX_0F38FB,
   PREFIX_0F38FC,
   PREFIX_0F3A0F,
-  PREFIX_VEX_0F10,
-  PREFIX_VEX_0F11,
   PREFIX_VEX_0F12,
   PREFIX_VEX_0F16,
   PREFIX_VEX_0F2A,
   PREFIX_VEX_0F2C,
   PREFIX_VEX_0F2D,
-  PREFIX_VEX_0F2E,
-  PREFIX_VEX_0F2F,
-  PREFIX_VEX_0F41_L_1_M_1_W_0,
-  PREFIX_VEX_0F41_L_1_M_1_W_1,
-  PREFIX_VEX_0F42_L_1_M_1_W_0,
-  PREFIX_VEX_0F42_L_1_M_1_W_1,
-  PREFIX_VEX_0F44_L_0_M_1_W_0,
-  PREFIX_VEX_0F44_L_0_M_1_W_1,
-  PREFIX_VEX_0F45_L_1_M_1_W_0,
-  PREFIX_VEX_0F45_L_1_M_1_W_1,
-  PREFIX_VEX_0F46_L_1_M_1_W_0,
-  PREFIX_VEX_0F46_L_1_M_1_W_1,
-  PREFIX_VEX_0F47_L_1_M_1_W_0,
-  PREFIX_VEX_0F47_L_1_M_1_W_1,
-  PREFIX_VEX_0F4A_L_1_M_1_W_0,
-  PREFIX_VEX_0F4A_L_1_M_1_W_1,
-  PREFIX_VEX_0F4B_L_1_M_1_W_0,
-  PREFIX_VEX_0F4B_L_1_M_1_W_1,
-  PREFIX_VEX_0F51,
-  PREFIX_VEX_0F52,
-  PREFIX_VEX_0F53,
-  PREFIX_VEX_0F58,
-  PREFIX_VEX_0F59,
-  PREFIX_VEX_0F5A,
-  PREFIX_VEX_0F5B,
-  PREFIX_VEX_0F5C,
-  PREFIX_VEX_0F5D,
-  PREFIX_VEX_0F5E,
-  PREFIX_VEX_0F5F,
+  PREFIX_VEX_0F41_L_1_W_0,
+  PREFIX_VEX_0F41_L_1_W_1,
+  PREFIX_VEX_0F42_L_1_W_0,
+  PREFIX_VEX_0F42_L_1_W_1,
+  PREFIX_VEX_0F44_L_0_W_0,
+  PREFIX_VEX_0F44_L_0_W_1,
+  PREFIX_VEX_0F45_L_1_W_0,
+  PREFIX_VEX_0F45_L_1_W_1,
+  PREFIX_VEX_0F46_L_1_W_0,
+  PREFIX_VEX_0F46_L_1_W_1,
+  PREFIX_VEX_0F47_L_1_W_0,
+  PREFIX_VEX_0F47_L_1_W_1,
+  PREFIX_VEX_0F4A_L_1_W_0,
+  PREFIX_VEX_0F4A_L_1_W_1,
+  PREFIX_VEX_0F4B_L_1_W_0,
+  PREFIX_VEX_0F4B_L_1_W_1,
   PREFIX_VEX_0F6F,
   PREFIX_VEX_0F70,
-  PREFIX_VEX_0F7C,
-  PREFIX_VEX_0F7D,
   PREFIX_VEX_0F7E,
   PREFIX_VEX_0F7F,
   PREFIX_VEX_0F90_L_0_W_0,
   PREFIX_VEX_0F90_L_0_W_1,
-  PREFIX_VEX_0F91_L_0_M_0_W_0,
-  PREFIX_VEX_0F91_L_0_M_0_W_1,
-  PREFIX_VEX_0F92_L_0_M_1_W_0,
-  PREFIX_VEX_0F92_L_0_M_1_W_1,
-  PREFIX_VEX_0F93_L_0_M_1_W_0,
-  PREFIX_VEX_0F93_L_0_M_1_W_1,
-  PREFIX_VEX_0F98_L_0_M_1_W_0,
-  PREFIX_VEX_0F98_L_0_M_1_W_1,
-  PREFIX_VEX_0F99_L_0_M_1_W_0,
-  PREFIX_VEX_0F99_L_0_M_1_W_1,
-  PREFIX_VEX_0FC2,
-  PREFIX_VEX_0FD0,
-  PREFIX_VEX_0FE6,
-  PREFIX_VEX_0FF0,
+  PREFIX_VEX_0F91_L_0_W_0,
+  PREFIX_VEX_0F91_L_0_W_1,
+  PREFIX_VEX_0F92_L_0_W_0,
+  PREFIX_VEX_0F92_L_0_W_1,
+  PREFIX_VEX_0F93_L_0_W_0,
+  PREFIX_VEX_0F93_L_0_W_1,
+  PREFIX_VEX_0F98_L_0_W_0,
+  PREFIX_VEX_0F98_L_0_W_1,
+  PREFIX_VEX_0F99_L_0_W_0,
+  PREFIX_VEX_0F99_L_0_W_1,
   PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0,
   PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_1,
-  PREFIX_VEX_0F384B_X86_64_L_0_W_0_M_0,
+  PREFIX_VEX_0F384B_X86_64_L_0_W_0,
   PREFIX_VEX_0F3850_W_0,
   PREFIX_VEX_0F3851_W_0,
-  PREFIX_VEX_0F385C_X86_64_M_1_L_0_W_0,
-  PREFIX_VEX_0F385E_X86_64_M_1_L_0_W_0,
-  PREFIX_VEX_0F386C_X86_64_M_1_L_0_W_0,
+  PREFIX_VEX_0F385C_X86_64_L_0_W_0,
+  PREFIX_VEX_0F385E_X86_64_L_0_W_0,
+  PREFIX_VEX_0F386C_X86_64_L_0_W_0,
   PREFIX_VEX_0F3872,
   PREFIX_VEX_0F38B0_W_0,
   PREFIX_VEX_0F38B1_W_0,
+  PREFIX_VEX_0F38D2_W_0,
+  PREFIX_VEX_0F38D3_W_0,
+  PREFIX_VEX_0F38CB,
+  PREFIX_VEX_0F38CC,
+  PREFIX_VEX_0F38CD,
+  PREFIX_VEX_0F38DA_W_0,
   PREFIX_VEX_0F38F5_L_0,
   PREFIX_VEX_0F38F6_L_0,
   PREFIX_VEX_0F38F7_L_0,
@@ -1307,6 +1196,7 @@ enum
   X86_64_0F01_REG_0,
   X86_64_0F01_REG_0_MOD_3_RM_6_P_1,
   X86_64_0F01_REG_0_MOD_3_RM_6_P_3,
+  X86_64_0F01_REG_0_MOD_3_RM_7_P_0,
   X86_64_0F01_REG_1,
   X86_64_0F01_REG_1_RM_2_PREFIX_1,
   X86_64_0F01_REG_1_RM_2_PREFIX_3,
@@ -1383,14 +1273,12 @@ enum
 
 enum
 {
-  VEX_LEN_0F12_P_0_M_0 = 0,
-  VEX_LEN_0F12_P_0_M_1,
-#define VEX_LEN_0F12_P_2_M_0 VEX_LEN_0F12_P_0_M_0
-  VEX_LEN_0F13_M_0,
-  VEX_LEN_0F16_P_0_M_0,
-  VEX_LEN_0F16_P_0_M_1,
-#define VEX_LEN_0F16_P_2_M_0 VEX_LEN_0F16_P_0_M_0
-  VEX_LEN_0F17_M_0,
+  VEX_LEN_0F12_P_0 = 0,
+  VEX_LEN_0F12_P_2,
+  VEX_LEN_0F13,
+  VEX_LEN_0F16_P_0,
+  VEX_LEN_0F16_P_2,
+  VEX_LEN_0F17,
   VEX_LEN_0F41,
   VEX_LEN_0F42,
   VEX_LEN_0F44,
@@ -1409,23 +1297,26 @@ enum
   VEX_LEN_0F93,
   VEX_LEN_0F98,
   VEX_LEN_0F99,
-  VEX_LEN_0FAE_R_2_M_0,
-  VEX_LEN_0FAE_R_3_M_0,
+  VEX_LEN_0FAE_R_2,
+  VEX_LEN_0FAE_R_3,
   VEX_LEN_0FC4,
-  VEX_LEN_0FC5,
   VEX_LEN_0FD6,
-  VEX_LEN_0FF7,
   VEX_LEN_0F3816,
   VEX_LEN_0F3819,
-  VEX_LEN_0F381A_M_0,
+  VEX_LEN_0F381A,
   VEX_LEN_0F3836,
   VEX_LEN_0F3841,
   VEX_LEN_0F3849_X86_64,
   VEX_LEN_0F384B_X86_64,
-  VEX_LEN_0F385A_M_0,
-  VEX_LEN_0F385C_X86_64_M_1,
-  VEX_LEN_0F385E_X86_64_M_1,
-  VEX_LEN_0F386C_X86_64_M_1,
+  VEX_LEN_0F385A,
+  VEX_LEN_0F385C_X86_64,
+  VEX_LEN_0F385E_X86_64,
+  VEX_LEN_0F386C_X86_64,
+  VEX_LEN_0F38CB_P_3_W_0,
+  VEX_LEN_0F38CC_P_3_W_0,
+  VEX_LEN_0F38CD_P_3_W_0,
+  VEX_LEN_0F38DA_W_0_P_0,
+  VEX_LEN_0F38DA_W_0_P_2,
   VEX_LEN_0F38DB,
   VEX_LEN_0F38F2,
   VEX_LEN_0F38F3,
@@ -1456,79 +1347,80 @@ enum
   VEX_LEN_0F3A61,
   VEX_LEN_0F3A62,
   VEX_LEN_0F3A63,
+  VEX_LEN_0F3ADE_W_0,
   VEX_LEN_0F3ADF,
   VEX_LEN_0F3AF0,
-  VEX_LEN_0FXOP_08_85,
-  VEX_LEN_0FXOP_08_86,
-  VEX_LEN_0FXOP_08_87,
-  VEX_LEN_0FXOP_08_8E,
-  VEX_LEN_0FXOP_08_8F,
-  VEX_LEN_0FXOP_08_95,
-  VEX_LEN_0FXOP_08_96,
-  VEX_LEN_0FXOP_08_97,
-  VEX_LEN_0FXOP_08_9E,
-  VEX_LEN_0FXOP_08_9F,
-  VEX_LEN_0FXOP_08_A3,
-  VEX_LEN_0FXOP_08_A6,
-  VEX_LEN_0FXOP_08_B6,
-  VEX_LEN_0FXOP_08_C0,
-  VEX_LEN_0FXOP_08_C1,
-  VEX_LEN_0FXOP_08_C2,
-  VEX_LEN_0FXOP_08_C3,
-  VEX_LEN_0FXOP_08_CC,
-  VEX_LEN_0FXOP_08_CD,
-  VEX_LEN_0FXOP_08_CE,
-  VEX_LEN_0FXOP_08_CF,
-  VEX_LEN_0FXOP_08_EC,
-  VEX_LEN_0FXOP_08_ED,
-  VEX_LEN_0FXOP_08_EE,
-  VEX_LEN_0FXOP_08_EF,
-  VEX_LEN_0FXOP_09_01,
-  VEX_LEN_0FXOP_09_02,
-  VEX_LEN_0FXOP_09_12_M_1,
-  VEX_LEN_0FXOP_09_82_W_0,
-  VEX_LEN_0FXOP_09_83_W_0,
-  VEX_LEN_0FXOP_09_90,
-  VEX_LEN_0FXOP_09_91,
-  VEX_LEN_0FXOP_09_92,
-  VEX_LEN_0FXOP_09_93,
-  VEX_LEN_0FXOP_09_94,
-  VEX_LEN_0FXOP_09_95,
-  VEX_LEN_0FXOP_09_96,
-  VEX_LEN_0FXOP_09_97,
-  VEX_LEN_0FXOP_09_98,
-  VEX_LEN_0FXOP_09_99,
-  VEX_LEN_0FXOP_09_9A,
-  VEX_LEN_0FXOP_09_9B,
-  VEX_LEN_0FXOP_09_C1,
-  VEX_LEN_0FXOP_09_C2,
-  VEX_LEN_0FXOP_09_C3,
-  VEX_LEN_0FXOP_09_C6,
-  VEX_LEN_0FXOP_09_C7,
-  VEX_LEN_0FXOP_09_CB,
-  VEX_LEN_0FXOP_09_D1,
-  VEX_LEN_0FXOP_09_D2,
-  VEX_LEN_0FXOP_09_D3,
-  VEX_LEN_0FXOP_09_D6,
-  VEX_LEN_0FXOP_09_D7,
-  VEX_LEN_0FXOP_09_DB,
-  VEX_LEN_0FXOP_09_E1,
-  VEX_LEN_0FXOP_09_E2,
-  VEX_LEN_0FXOP_09_E3,
-  VEX_LEN_0FXOP_0A_12,
+  VEX_LEN_XOP_08_85,
+  VEX_LEN_XOP_08_86,
+  VEX_LEN_XOP_08_87,
+  VEX_LEN_XOP_08_8E,
+  VEX_LEN_XOP_08_8F,
+  VEX_LEN_XOP_08_95,
+  VEX_LEN_XOP_08_96,
+  VEX_LEN_XOP_08_97,
+  VEX_LEN_XOP_08_9E,
+  VEX_LEN_XOP_08_9F,
+  VEX_LEN_XOP_08_A3,
+  VEX_LEN_XOP_08_A6,
+  VEX_LEN_XOP_08_B6,
+  VEX_LEN_XOP_08_C0,
+  VEX_LEN_XOP_08_C1,
+  VEX_LEN_XOP_08_C2,
+  VEX_LEN_XOP_08_C3,
+  VEX_LEN_XOP_08_CC,
+  VEX_LEN_XOP_08_CD,
+  VEX_LEN_XOP_08_CE,
+  VEX_LEN_XOP_08_CF,
+  VEX_LEN_XOP_08_EC,
+  VEX_LEN_XOP_08_ED,
+  VEX_LEN_XOP_08_EE,
+  VEX_LEN_XOP_08_EF,
+  VEX_LEN_XOP_09_01,
+  VEX_LEN_XOP_09_02,
+  VEX_LEN_XOP_09_12,
+  VEX_LEN_XOP_09_82_W_0,
+  VEX_LEN_XOP_09_83_W_0,
+  VEX_LEN_XOP_09_90,
+  VEX_LEN_XOP_09_91,
+  VEX_LEN_XOP_09_92,
+  VEX_LEN_XOP_09_93,
+  VEX_LEN_XOP_09_94,
+  VEX_LEN_XOP_09_95,
+  VEX_LEN_XOP_09_96,
+  VEX_LEN_XOP_09_97,
+  VEX_LEN_XOP_09_98,
+  VEX_LEN_XOP_09_99,
+  VEX_LEN_XOP_09_9A,
+  VEX_LEN_XOP_09_9B,
+  VEX_LEN_XOP_09_C1,
+  VEX_LEN_XOP_09_C2,
+  VEX_LEN_XOP_09_C3,
+  VEX_LEN_XOP_09_C6,
+  VEX_LEN_XOP_09_C7,
+  VEX_LEN_XOP_09_CB,
+  VEX_LEN_XOP_09_D1,
+  VEX_LEN_XOP_09_D2,
+  VEX_LEN_XOP_09_D3,
+  VEX_LEN_XOP_09_D6,
+  VEX_LEN_XOP_09_D7,
+  VEX_LEN_XOP_09_DB,
+  VEX_LEN_XOP_09_E1,
+  VEX_LEN_XOP_09_E2,
+  VEX_LEN_XOP_09_E3,
+  VEX_LEN_XOP_0A_12,
 };
 
 enum
 {
   EVEX_LEN_0F3816 = 0,
   EVEX_LEN_0F3819,
-  EVEX_LEN_0F381A_M_0,
-  EVEX_LEN_0F381B_M_0,
+  EVEX_LEN_0F381A,
+  EVEX_LEN_0F381B,
   EVEX_LEN_0F3836,
-  EVEX_LEN_0F385A_M_0,
-  EVEX_LEN_0F385B_M_0,
-  EVEX_LEN_0F38C6_M_0,
-  EVEX_LEN_0F38C7_M_0,
+  EVEX_LEN_0F385A,
+  EVEX_LEN_0F385B,
+  EVEX_LEN_0F38C6,
+  EVEX_LEN_0F38C7,
   EVEX_LEN_0F3A00,
   EVEX_LEN_0F3A01,
   EVEX_LEN_0F3A18,
@@ -1545,20 +1437,20 @@ enum
 
 enum
 {
-  VEX_W_0F41_L_1_M_1 = 0,
-  VEX_W_0F42_L_1_M_1,
-  VEX_W_0F44_L_0_M_1,
-  VEX_W_0F45_L_1_M_1,
-  VEX_W_0F46_L_1_M_1,
-  VEX_W_0F47_L_1_M_1,
-  VEX_W_0F4A_L_1_M_1,
-  VEX_W_0F4B_L_1_M_1,
+  VEX_W_0F41_L_1 = 0,
+  VEX_W_0F42_L_1,
+  VEX_W_0F44_L_0,
+  VEX_W_0F45_L_1,
+  VEX_W_0F46_L_1,
+  VEX_W_0F47_L_1,
+  VEX_W_0F4A_L_1,
+  VEX_W_0F4B_L_1,
   VEX_W_0F90_L_0,
-  VEX_W_0F91_L_0_M_0,
-  VEX_W_0F92_L_0_M_1,
-  VEX_W_0F93_L_0_M_1,
-  VEX_W_0F98_L_0_M_1,
-  VEX_W_0F99_L_0_M_1,
+  VEX_W_0F91_L_0,
+  VEX_W_0F92_L_0,
+  VEX_W_0F93_L_0,
+  VEX_W_0F98_L_0,
+  VEX_W_0F99_L_0,
   VEX_W_0F380C,
   VEX_W_0F380D,
   VEX_W_0F380E,
@@ -1567,11 +1459,11 @@ enum
   VEX_W_0F3816_L_1,
   VEX_W_0F3818,
   VEX_W_0F3819_L_1,
-  VEX_W_0F381A_M_0_L_1,
-  VEX_W_0F382C_M_0,
-  VEX_W_0F382D_M_0,
-  VEX_W_0F382E_M_0,
-  VEX_W_0F382F_M_0,
+  VEX_W_0F381A_L_1,
+  VEX_W_0F382C,
+  VEX_W_0F382D,
+  VEX_W_0F382E,
+  VEX_W_0F382F,
   VEX_W_0F3836,
   VEX_W_0F3846,
   VEX_W_0F3849_X86_64_L_0,
@@ -1582,10 +1474,10 @@ enum
   VEX_W_0F3853,
   VEX_W_0F3858,
   VEX_W_0F3859,
-  VEX_W_0F385A_M_0_L_0,
-  VEX_W_0F385C_X86_64_M_1_L_0,
-  VEX_W_0F385E_X86_64_M_1_L_0,
-  VEX_W_0F386C_X86_64_M_1_L_0,
+  VEX_W_0F385A_L_0,
+  VEX_W_0F385C_X86_64_L_0,
+  VEX_W_0F385E_X86_64_L_0,
+  VEX_W_0F386C_X86_64_L_0,
   VEX_W_0F3872_P_1,
   VEX_W_0F3878,
   VEX_W_0F3879,
@@ -1593,7 +1485,13 @@ enum
   VEX_W_0F38B1,
   VEX_W_0F38B4,
   VEX_W_0F38B5,
+  VEX_W_0F38CB_P_3,
+  VEX_W_0F38CC_P_3,
+  VEX_W_0F38CD_P_3,
   VEX_W_0F38CF,
+  VEX_W_0F38D2,
+  VEX_W_0F38D3,
+  VEX_W_0F38DA,
   VEX_W_0F3A00_L_1,
   VEX_W_0F3A01_L_1,
   VEX_W_0F3A02,
@@ -1611,51 +1509,52 @@ enum
   VEX_W_0F3A4C,
   VEX_W_0F3ACE,
   VEX_W_0F3ACF,
+  VEX_W_0F3ADE,
 
-  VEX_W_0FXOP_08_85_L_0,
-  VEX_W_0FXOP_08_86_L_0,
-  VEX_W_0FXOP_08_87_L_0,
-  VEX_W_0FXOP_08_8E_L_0,
-  VEX_W_0FXOP_08_8F_L_0,
-  VEX_W_0FXOP_08_95_L_0,
-  VEX_W_0FXOP_08_96_L_0,
-  VEX_W_0FXOP_08_97_L_0,
-  VEX_W_0FXOP_08_9E_L_0,
-  VEX_W_0FXOP_08_9F_L_0,
-  VEX_W_0FXOP_08_A6_L_0,
-  VEX_W_0FXOP_08_B6_L_0,
-  VEX_W_0FXOP_08_C0_L_0,
-  VEX_W_0FXOP_08_C1_L_0,
-  VEX_W_0FXOP_08_C2_L_0,
-  VEX_W_0FXOP_08_C3_L_0,
-  VEX_W_0FXOP_08_CC_L_0,
-  VEX_W_0FXOP_08_CD_L_0,
-  VEX_W_0FXOP_08_CE_L_0,
-  VEX_W_0FXOP_08_CF_L_0,
-  VEX_W_0FXOP_08_EC_L_0,
-  VEX_W_0FXOP_08_ED_L_0,
-  VEX_W_0FXOP_08_EE_L_0,
-  VEX_W_0FXOP_08_EF_L_0,
+  VEX_W_XOP_08_85_L_0,
+  VEX_W_XOP_08_86_L_0,
+  VEX_W_XOP_08_87_L_0,
+  VEX_W_XOP_08_8E_L_0,
+  VEX_W_XOP_08_8F_L_0,
+  VEX_W_XOP_08_95_L_0,
+  VEX_W_XOP_08_96_L_0,
+  VEX_W_XOP_08_97_L_0,
+  VEX_W_XOP_08_9E_L_0,
+  VEX_W_XOP_08_9F_L_0,
+  VEX_W_XOP_08_A6_L_0,
+  VEX_W_XOP_08_B6_L_0,
+  VEX_W_XOP_08_C0_L_0,
+  VEX_W_XOP_08_C1_L_0,
+  VEX_W_XOP_08_C2_L_0,
+  VEX_W_XOP_08_C3_L_0,
+  VEX_W_XOP_08_CC_L_0,
+  VEX_W_XOP_08_CD_L_0,
+  VEX_W_XOP_08_CE_L_0,
+  VEX_W_XOP_08_CF_L_0,
+  VEX_W_XOP_08_EC_L_0,
+  VEX_W_XOP_08_ED_L_0,
+  VEX_W_XOP_08_EE_L_0,
+  VEX_W_XOP_08_EF_L_0,
 
-  VEX_W_0FXOP_09_80,
-  VEX_W_0FXOP_09_81,
-  VEX_W_0FXOP_09_82,
-  VEX_W_0FXOP_09_83,
-  VEX_W_0FXOP_09_C1_L_0,
-  VEX_W_0FXOP_09_C2_L_0,
-  VEX_W_0FXOP_09_C3_L_0,
-  VEX_W_0FXOP_09_C6_L_0,
-  VEX_W_0FXOP_09_C7_L_0,
-  VEX_W_0FXOP_09_CB_L_0,
-  VEX_W_0FXOP_09_D1_L_0,
-  VEX_W_0FXOP_09_D2_L_0,
-  VEX_W_0FXOP_09_D3_L_0,
-  VEX_W_0FXOP_09_D6_L_0,
-  VEX_W_0FXOP_09_D7_L_0,
-  VEX_W_0FXOP_09_DB_L_0,
-  VEX_W_0FXOP_09_E1_L_0,
-  VEX_W_0FXOP_09_E2_L_0,
-  VEX_W_0FXOP_09_E3_L_0,
+  VEX_W_XOP_09_80,
+  VEX_W_XOP_09_81,
+  VEX_W_XOP_09_82,
+  VEX_W_XOP_09_83,
+  VEX_W_XOP_09_C1_L_0,
+  VEX_W_XOP_09_C2_L_0,
+  VEX_W_XOP_09_C3_L_0,
+  VEX_W_XOP_09_C6_L_0,
+  VEX_W_XOP_09_C7_L_0,
+  VEX_W_XOP_09_CB_L_0,
+  VEX_W_XOP_09_D1_L_0,
+  VEX_W_XOP_09_D2_L_0,
+  VEX_W_XOP_09_D3_L_0,
+  VEX_W_XOP_09_D6_L_0,
+  VEX_W_XOP_09_D7_L_0,
+  VEX_W_XOP_09_DB_L_0,
+  VEX_W_XOP_09_E1_L_0,
+  VEX_W_XOP_09_E2_L_0,
+  VEX_W_XOP_09_E3_L_0,
 
   EVEX_W_0F5B_P_0,
   EVEX_W_0F62,
@@ -1708,8 +1607,8 @@ enum
   EVEX_W_0F3814_P_1,
   EVEX_W_0F3815_P_1,
   EVEX_W_0F3819_L_n,
-  EVEX_W_0F381A_M_0_L_n,
-  EVEX_W_0F381B_M_0_L_2,
+  EVEX_W_0F381A_L_n,
+  EVEX_W_0F381B_L_2,
   EVEX_W_0F381E,
   EVEX_W_0F381F,
   EVEX_W_0F3820_P_1,
@@ -1734,8 +1633,8 @@ enum
   EVEX_W_0F3837,
   EVEX_W_0F383A_P_1,
   EVEX_W_0F3859,
-  EVEX_W_0F385A_M_0_L_n,
-  EVEX_W_0F385B_M_0_L_2,
+  EVEX_W_0F385A_L_n,
+  EVEX_W_0F385B_L_2,
   EVEX_W_0F3870,
   EVEX_W_0F3872_P_2,
   EVEX_W_0F387A,
@@ -1800,10 +1699,10 @@ struct dis386 {
    'T' => print 'w', 'l'/'d', or 'q' if instruction has an operand size
 	  prefix or if suffix_always is true.
    'U' unused.
-   'V' unused.
+   'V' => print 'v' for VEX/EVEX and nothing for legacy encodings.
    'W' => print 'b', 'w' or 'l' ('d' in Intel mode)
    'X' => print 's', 'd' depending on data16 prefix (for XMM)
-   'Y' unused.
+   'Y' => no output, mark EVEX.aaa != 0 as bad.
    'Z' => print 'q' in 64bit mode and 'l' otherwise, if suffix_always is true.
    '!' => change condition from true to false or from false to true.
    '%' => add 1 upper case letter to the macro.
@@ -1825,6 +1724,8 @@ struct dis386 {
    "XV" => print "{vex} " pseudo prefix
    "XE" => print "{evex} " pseudo prefix if no EVEX-specific functionality is
 	   is used by an EVEX-encoded (AVX512VL) instruction.
+   "YK" keep unused, to avoid ambiguity with the combined use of Y and K.
+   "YX" keep unused, to avoid ambiguity with the combined use of Y and X.
    "LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand, cond
 	   being false, or no operand at all in 64bit mode, or if suffix_always
 	   is true.
@@ -2003,7 +1904,7 @@ static const struct dis386 dis386[] = {
   { "movB",		{ Gb, EbS }, 0 },
   { "movS",		{ Gv, EvS }, 0 },
   { "movD",		{ Sv, Sw }, 0 },
-  { MOD_TABLE (MOD_8D) },
+  { "leaS",		{ Gv, M }, 0 },
   { "movD",		{ Sw, Sv }, 0 },
   { REG_TABLE (REG_8F) },
   /* 90 */
@@ -2138,8 +2039,8 @@ static const struct dis386 dis386_twobyte[] = {
   /* 00 */
   { REG_TABLE (REG_0F00 ) },
   { REG_TABLE (REG_0F01 ) },
-  { MOD_TABLE (MOD_0F02) },
-  { MOD_TABLE (MOD_0F03) },
+  { "larS",		{ Gv, Sv }, 0 },
+  { "lslS",		{ Gv, Sv }, 0 },
   { Bad_Opcode },
   { "syscall",		{ XX }, 0 },
   { "clts",		{ XX }, 0 },
@@ -2157,11 +2058,11 @@ static const struct dis386 dis386_twobyte[] = {
   { PREFIX_TABLE (PREFIX_0F10) },
   { PREFIX_TABLE (PREFIX_0F11) },
   { PREFIX_TABLE (PREFIX_0F12) },
-  { MOD_TABLE (MOD_0F13) },
+  { "movlpX",		{ Mq, XM }, PREFIX_OPCODE },
   { "unpcklpX",		{ XM, EXx }, PREFIX_OPCODE },
   { "unpckhpX",		{ XM, EXx }, PREFIX_OPCODE },
   { PREFIX_TABLE (PREFIX_0F16) },
-  { MOD_TABLE (MOD_0F17) },
+  { "movhpX",		{ Mq, XM }, PREFIX_OPCODE },
   /* 18 */
   { REG_TABLE (REG_0F18) },
   { "nopQ",		{ Ev }, 0 },
@@ -2199,9 +2100,9 @@ static const struct dis386 dis386_twobyte[] = {
   { Bad_Opcode },
   { "getsec",		{ XX }, 0 },
   /* 38 */
-  { THREE_BYTE_TABLE_PREFIX (THREE_BYTE_0F38, PREFIX_OPCODE) },
+  { THREE_BYTE_TABLE (THREE_BYTE_0F38) },
   { Bad_Opcode },
-  { THREE_BYTE_TABLE_PREFIX (THREE_BYTE_0F3A, PREFIX_OPCODE) },
+  { THREE_BYTE_TABLE (THREE_BYTE_0F3A) },
   { Bad_Opcode },
   { Bad_Opcode },
   { Bad_Opcode },
@@ -2226,7 +2127,7 @@ static const struct dis386 dis386_twobyte[] = {
   { "cmovleS",		{ Gv, Ev }, 0 },
   { "cmovgS",		{ Gv, Ev }, 0 },
   /* 50 */
-  { MOD_TABLE (MOD_0F50) },
+  { "movmskpX",		{ Gdq, Ux }, PREFIX_OPCODE },
   { PREFIX_TABLE (PREFIX_0F51) },
   { PREFIX_TABLE (PREFIX_0F52) },
   { PREFIX_TABLE (PREFIX_0F53) },
@@ -2263,9 +2164,9 @@ static const struct dis386 dis386_twobyte[] = {
   { PREFIX_TABLE (PREFIX_0F6F) },
   /* 70 */
   { PREFIX_TABLE (PREFIX_0F70) },
-  { MOD_TABLE (MOD_0F71) },
-  { MOD_TABLE (MOD_0F72) },
-  { MOD_TABLE (MOD_0F73) },
+  { REG_TABLE (REG_0F71) },
+  { REG_TABLE (REG_0F72) },
+  { REG_TABLE (REG_0F73) },
   { "pcmpeqb",		{ MX, EM }, PREFIX_OPCODE },
   { "pcmpeqw",		{ MX, EM }, PREFIX_OPCODE },
   { "pcmpeqd",		{ MX, EM }, PREFIX_OPCODE },
@@ -2336,10 +2237,10 @@ static const struct dis386 dis386_twobyte[] = {
   /* b0 */
   { "cmpxchgB",		{ Ebh1, Gb }, 0 },
   { "cmpxchgS",		{ Evh1, Gv }, 0 },
-  { MOD_TABLE (MOD_0FB2) },
+  { "lssS",		{ Gv, Mp }, 0 },
   { "btrS",		{ Evh1, Gv }, 0 },
-  { MOD_TABLE (MOD_0FB4) },
-  { MOD_TABLE (MOD_0FB5) },
+  { "lfsS",		{ Gv, Mp }, 0 },
+  { "lgsS",		{ Gv, Mp }, 0 },
   { "movz{bR|x}",	{ Gv, Eb }, 0 },
   { "movz{wR|x}",	{ Gv, Ew }, 0 }, /* yes, there really is movzww ! */
   /* b8 */
@@ -2355,9 +2256,9 @@ static const struct dis386 dis386_twobyte[] = {
   { "xaddB",		{ Ebh1, Gb }, 0 },
   { "xaddS",		{ Evh1, Gv }, 0 },
   { PREFIX_TABLE (PREFIX_0FC2) },
-  { MOD_TABLE (MOD_0FC3) },
+  { "movntiS",		{ Mdq, Gdq }, PREFIX_OPCODE },
   { "pinsrw",		{ MX, Edw, Ib }, PREFIX_OPCODE },
-  { "pextrw",		{ Gd, MS, Ib }, PREFIX_OPCODE },
+  { "pextrw",		{ Gd, Nq, Ib }, PREFIX_OPCODE },
   { "shufpX",		{ XM, EXx, Ib }, PREFIX_OPCODE },
   { REG_TABLE (REG_0FC7) },
   /* c8 */
@@ -2377,7 +2278,7 @@ static const struct dis386 dis386_twobyte[] = {
   { "paddq",		{ MX, EM }, PREFIX_OPCODE },
   { "pmullw",		{ MX, EM }, PREFIX_OPCODE },
   { PREFIX_TABLE (PREFIX_0FD6) },
-  { MOD_TABLE (MOD_0FD7) },
+  { "pmovmskb",		{ Gdq, Nq }, PREFIX_OPCODE },
   /* d8 */
   { "psubusb",		{ MX, EM }, PREFIX_OPCODE },
   { "psubusw",		{ MX, EM }, PREFIX_OPCODE },
@@ -2611,11 +2512,11 @@ static const struct dis386 reg_table[][8] = {
   /* REG_8F */
   {
     { "pop{P|}", { stackEv }, 0 },
-    { XOP_8F_TABLE (XOP_09) },
+    { XOP_8F_TABLE () },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { XOP_8F_TABLE (XOP_09) },
+    { XOP_8F_TABLE () },
   },
   /* REG_C0 */
   {
@@ -2648,7 +2549,7 @@ static const struct dis386 reg_table[][8] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_C6_REG_7) },
+    { RM_TABLE (RM_C6_REG_7) },
   },
   /* REG_C7 */
   {
@@ -2659,7 +2560,7 @@ static const struct dis386 reg_table[][8] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_C7_REG_7) },
+    { RM_TABLE (RM_C7_REG_7) },
   },
   /* REG_D0 */
   {
@@ -2737,9 +2638,9 @@ static const struct dis386 reg_table[][8] = {
     { "incQ",	{ Evh1 }, 0 },
     { "decQ",	{ Evh1 }, 0 },
     { "call{@|}", { NOTRACK, indirEv, BND }, 0 },
-    { MOD_TABLE (MOD_FF_REG_3) },
+    { "{l|}call^", { indirEp }, 0 },
     { "jmp{@|}", { NOTRACK, indirEv, BND }, 0 },
-    { MOD_TABLE (MOD_FF_REG_5) },
+    { "{l|}jmp^", { indirEp }, 0 },
     { "push{P|}", { stackEv }, 0 },
     { Bad_Opcode },
   },
@@ -2747,10 +2648,10 @@ static const struct dis386 reg_table[][8] = {
   {
     { "sldtD",	{ Sv }, 0 },
     { "strD",	{ Sv }, 0 },
-    { "lldt",	{ Ew }, 0 },
-    { "ltr",	{ Ew }, 0 },
-    { "verr",	{ Ew }, 0 },
-    { "verw",	{ Ew }, 0 },
+    { "lldtD",	{ Sv }, 0 },
+    { "ltrD",	{ Sv }, 0 },
+    { "verrD",	{ Sv }, 0 },
+    { "verwD",	{ Sv }, 0 },
     { X86_64_TABLE (X86_64_0F00_REG_6) },
     { Bad_Opcode },
   },
@@ -2816,40 +2717,40 @@ static const struct dis386 reg_table[][8] = {
     { "aesencwide256kl",	{ M }, 0 },
     { "aesdecwide256kl",	{ M }, 0 },
   },
-  /* REG_0F3A0F_PREFIX_1_MOD_3 */
+  /* REG_0F3A0F_P_1 */
   {
-    { RM_TABLE (RM_0F3A0F_P_1_MOD_3_REG_0) },
+    { RM_TABLE (RM_0F3A0F_P_1_R_0) },
   },
-  /* REG_0F71_MOD_0 */
+  /* REG_0F71 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "psrlw",		{ MS, Ib }, PREFIX_OPCODE },
+    { "psrlw",		{ Nq, Ib }, PREFIX_OPCODE },
     { Bad_Opcode },
-    { "psraw",		{ MS, Ib }, PREFIX_OPCODE },
+    { "psraw",		{ Nq, Ib }, PREFIX_OPCODE },
     { Bad_Opcode },
-    { "psllw",		{ MS, Ib }, PREFIX_OPCODE },
+    { "psllw",		{ Nq, Ib }, PREFIX_OPCODE },
   },
-  /* REG_0F72_MOD_0 */
+  /* REG_0F72 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "psrld",		{ MS, Ib }, PREFIX_OPCODE },
+    { "psrld",		{ Nq, Ib }, PREFIX_OPCODE },
     { Bad_Opcode },
-    { "psrad",		{ MS, Ib }, PREFIX_OPCODE },
+    { "psrad",		{ Nq, Ib }, PREFIX_OPCODE },
     { Bad_Opcode },
-    { "pslld",		{ MS, Ib }, PREFIX_OPCODE },
+    { "pslld",		{ Nq, Ib }, PREFIX_OPCODE },
   },
-  /* REG_0F73_MOD_0 */
+  /* REG_0F73 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "psrlq",		{ MS, Ib }, PREFIX_OPCODE },
-    { "psrldq",		{ XS, Ib }, PREFIX_DATA },
+    { "psrlq",		{ Nq, Ib }, PREFIX_OPCODE },
+    { "psrldq",		{ Ux, Ib }, PREFIX_DATA },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "psllq",		{ MS, Ib }, PREFIX_OPCODE },
-    { "pslldq",		{ XS, Ib }, PREFIX_DATA },
+    { "psllq",		{ Nq, Ib }, PREFIX_OPCODE },
+    { "pslldq",		{ Ux, Ib }, PREFIX_DATA },
   },
   /* REG_0FA6 */
   {
@@ -2893,49 +2794,49 @@ static const struct dis386 reg_table[][8] = {
     { Bad_Opcode },
     { "cmpxchg8b", { { CMPXCHG8B_Fixup, q_mode } }, 0 },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0FC7_REG_3) },
-    { MOD_TABLE (MOD_0FC7_REG_4) },
-    { MOD_TABLE (MOD_0FC7_REG_5) },
+    { "xrstors", { FXSAVE }, 0 },
+    { "xsavec", { FXSAVE }, 0 },
+    { "xsaves", { FXSAVE }, 0 },
     { MOD_TABLE (MOD_0FC7_REG_6) },
     { MOD_TABLE (MOD_0FC7_REG_7) },
   },
-  /* REG_VEX_0F71_M_0 */
+  /* REG_VEX_0F71 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpsrlw",		{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpsrlw",		{ Vex, Ux, Ib }, PREFIX_DATA },
     { Bad_Opcode },
-    { "vpsraw",		{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpsraw",		{ Vex, Ux, Ib }, PREFIX_DATA },
     { Bad_Opcode },
-    { "vpsllw",		{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpsllw",		{ Vex, Ux, Ib }, PREFIX_DATA },
   },
-  /* REG_VEX_0F72_M_0 */
+  /* REG_VEX_0F72 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpsrld",		{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpsrld",		{ Vex, Ux, Ib }, PREFIX_DATA },
     { Bad_Opcode },
-    { "vpsrad",		{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpsrad",		{ Vex, Ux, Ib }, PREFIX_DATA },
     { Bad_Opcode },
-    { "vpslld",		{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpslld",		{ Vex, Ux, Ib }, PREFIX_DATA },
   },
-  /* REG_VEX_0F73_M_0 */
+  /* REG_VEX_0F73 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpsrlq",		{ Vex, XS, Ib }, PREFIX_DATA },
-    { "vpsrldq",	{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpsrlq",		{ Vex, Ux, Ib }, PREFIX_DATA },
+    { "vpsrldq",	{ Vex, Ux, Ib }, PREFIX_DATA },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpsllq",		{ Vex, XS, Ib }, PREFIX_DATA },
-    { "vpslldq",	{ Vex, XS, Ib }, PREFIX_DATA },
+    { "vpsllq",		{ Vex, Ux, Ib }, PREFIX_DATA },
+    { "vpslldq",	{ Vex, Ux, Ib }, PREFIX_DATA },
   },
   /* REG_VEX_0FAE */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0FAE_REG_2) },
-    { MOD_TABLE (MOD_VEX_0FAE_REG_3) },
+    { VEX_LEN_TABLE (VEX_LEN_0FAE_R_2) },
+    { VEX_LEN_TABLE (VEX_LEN_0FAE_R_3) },
   },
   /* REG_VEX_0F3849_X86_64_L_0_W_0_M_1_P_0 */
   {
@@ -2969,10 +2870,10 @@ static const struct dis386 reg_table[][8] = {
     { Bad_Opcode },
     { "blci",	{ VexGdq, Edq }, 0 },
   },
-  /* REG_XOP_09_12_M_1_L_0 */
+  /* REG_XOP_09_12_L_0 */
   {
-    { "llwpcb",	{ Edq }, 0 },
-    { "slwpcb",	{ Edq }, 0 },
+    { "llwpcb",	{ Rdq }, 0 },
+    { "slwpcb",	{ Rdq }, 0 },
   },
   /* REG_XOP_0A_12_L_0 */
   {
@@ -2997,7 +2898,7 @@ static const struct dis386 prefix_table[][4] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "lkgs",  { Ew }, 0 },
+    { "lkgsD", { Sv }, 0 },
   },
 
   /* PREFIX_0F01_REG_0_MOD_3_RM_6 */
@@ -3008,6 +2909,11 @@ static const struct dis386 prefix_table[][4] = {
     { X86_64_TABLE (X86_64_0F01_REG_0_MOD_3_RM_6_P_3) },
   },
 
+  /* PREFIX_0F01_REG_0_MOD_3_RM_7 */
+  {
+    { X86_64_TABLE (X86_64_0F01_REG_0_MOD_3_RM_7_P_0) },
+  },
+
   /* PREFIX_0F01_REG_1_RM_2 */
   {
     { "clac",		{ Skip_MODRM }, 0 },
@@ -3144,33 +3050,33 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_0F10 */
   {
-    { "movups",	{ XM, EXx }, PREFIX_OPCODE },
-    { "movss",	{ XM, EXd }, PREFIX_OPCODE },
-    { "movupd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "movsd",	{ XM, EXq }, PREFIX_OPCODE },
+    { "%XEVmovupX",	{ XM, EXEvexXNoBcst }, 0 },
+    { "%XEVmovs%XS",	{ XMScalar, VexScalarR, EXd }, 0 },
+    { "%XEVmovupX",	{ XM, EXEvexXNoBcst }, 0 },
+    { "%XEVmovs%XD",	{ XMScalar, VexScalarR, EXq }, 0 },
   },
 
   /* PREFIX_0F11 */
   {
-    { "movups",	{ EXxS, XM }, PREFIX_OPCODE },
-    { "movss",	{ EXdS, XM }, PREFIX_OPCODE },
-    { "movupd",	{ EXxS, XM }, PREFIX_OPCODE },
-    { "movsd",	{ EXqS, XM }, PREFIX_OPCODE },
+    { "%XEVmovupX",	{ EXxS, XM }, 0 },
+    { "%XEVmovs%XS",	{ EXdS, VexScalarR, XMScalar }, 0 },
+    { "%XEVmovupX",	{ EXxS, XM }, 0 },
+    { "%XEVmovs%XD",	{ EXqS, VexScalarR, XMScalar }, 0 },
   },
 
   /* PREFIX_0F12 */
   {
     { MOD_TABLE (MOD_0F12_PREFIX_0) },
-    { "movsldup", { XM, EXx }, PREFIX_OPCODE },
-    { MOD_TABLE (MOD_0F12_PREFIX_2) },
-    { "movddup", { XM, EXq }, PREFIX_OPCODE },
+    { "movsldup",	{ XM, EXx }, 0 },
+    { "%XEVmovlpYX",	{ XM, Vex, Mq }, 0 },
+    { "movddup",	{ XM, EXq }, 0 },
   },
 
   /* PREFIX_0F16 */
   {
     { MOD_TABLE (MOD_0F16_PREFIX_0) },
-    { "movshdup", { XM, EXx }, PREFIX_OPCODE },
-    { MOD_TABLE (MOD_0F16_PREFIX_2) },
+    { "movshdup",	{ XM, EXx }, 0 },
+    { "%XEVmovhpYX",	{ XM, Vex, Mq }, 0 },
   },
 
   /* PREFIX_0F18_REG_6_MOD_0_X86_64 */
@@ -3231,10 +3137,10 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_0F2B */
   {
-    { MOD_TABLE (MOD_0F2B_PREFIX_0) },
-    { MOD_TABLE (MOD_0F2B_PREFIX_1) },
-    { MOD_TABLE (MOD_0F2B_PREFIX_2) },
-    { MOD_TABLE (MOD_0F2B_PREFIX_3) },
+    { "movntps", { Mx, XM }, 0 },
+    { "movntss", { Md, XM }, 0 },
+    { "movntpd", { Mx, XM }, 0 },
+    { "movntsd", { Mq, XM }, 0 },
   },
 
   /* PREFIX_0F2C */
@@ -3255,99 +3161,99 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_0F2E */
   {
-    { "ucomiss",{ XM, EXd }, 0 },
+    { "%XEVucomisYX",	{ XMScalar, EXd, EXxEVexS }, 0 },
     { Bad_Opcode },
-    { "ucomisd",{ XM, EXq }, 0 },
+    { "%XEVucomisYX",	{ XMScalar, EXq, EXxEVexS }, 0 },
   },
 
   /* PREFIX_0F2F */
   {
-    { "comiss",	{ XM, EXd }, 0 },
+    { "%XEVcomisYX",	{ XMScalar, EXd, EXxEVexS }, 0 },
     { Bad_Opcode },
-    { "comisd",	{ XM, EXq }, 0 },
+    { "%XEVcomisYX",	{ XMScalar, EXq, EXxEVexS }, 0 },
   },
 
   /* PREFIX_0F51 */
   {
-    { "sqrtps", { XM, EXx }, PREFIX_OPCODE },
-    { "sqrtss", { XM, EXd }, PREFIX_OPCODE },
-    { "sqrtpd", { XM, EXx }, PREFIX_OPCODE },
-    { "sqrtsd",	{ XM, EXq }, PREFIX_OPCODE },
+    { "%XEVsqrtpX",	{ XM, EXx, EXxEVexR }, 0 },
+    { "%XEVsqrts%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
+    { "%XEVsqrtpX",	{ XM, EXx, EXxEVexR }, 0 },
+    { "%XEVsqrts%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
   },
 
   /* PREFIX_0F52 */
   {
-    { "rsqrtps",{ XM, EXx }, PREFIX_OPCODE },
-    { "rsqrtss",{ XM, EXd }, PREFIX_OPCODE },
+    { "Vrsqrtps",	{ XM, EXx }, 0 },
+    { "Vrsqrtss",	{ XMScalar, VexScalar, EXd }, 0 },
   },
 
   /* PREFIX_0F53 */
   {
-    { "rcpps",	{ XM, EXx }, PREFIX_OPCODE },
-    { "rcpss",	{ XM, EXd }, PREFIX_OPCODE },
+    { "Vrcpps",		{ XM, EXx }, 0 },
+    { "Vrcpss",		{ XMScalar, VexScalar, EXd }, 0 },
   },
 
   /* PREFIX_0F58 */
   {
-    { "addps", { XM, EXx }, PREFIX_OPCODE },
-    { "addss", { XM, EXd }, PREFIX_OPCODE },
-    { "addpd", { XM, EXx }, PREFIX_OPCODE },
-    { "addsd", { XM, EXq }, PREFIX_OPCODE },
+    { "%XEVaddpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVadds%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
+    { "%XEVaddpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVadds%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
   },
 
   /* PREFIX_0F59 */
   {
-    { "mulps",	{ XM, EXx }, PREFIX_OPCODE },
-    { "mulss",	{ XM, EXd }, PREFIX_OPCODE },
-    { "mulpd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "mulsd",	{ XM, EXq }, PREFIX_OPCODE },
+    { "%XEVmulpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVmuls%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
+    { "%XEVmulpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVmuls%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
   },
 
   /* PREFIX_0F5A */
   {
-    { "cvtps2pd", { XM, EXq }, PREFIX_OPCODE },
-    { "cvtss2sd", { XM, EXd }, PREFIX_OPCODE },
-    { "cvtpd2ps", { XM, EXx }, PREFIX_OPCODE },
-    { "cvtsd2ss", { XM, EXq }, PREFIX_OPCODE },
+    { "%XEVcvtp%XS2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
+    { "%XEVcvts%XS2sd", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 },
+    { "%XEVcvtp%XD2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
+    { "%XEVcvts%XD2ss", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
   },
 
   /* PREFIX_0F5B */
   {
-    { "cvtdq2ps", { XM, EXx }, PREFIX_OPCODE },
-    { "cvttps2dq", { XM, EXx }, PREFIX_OPCODE },
-    { "cvtps2dq", { XM, EXx }, PREFIX_OPCODE },
+    { "Vcvtdq2ps",	{ XM, EXx }, 0 },
+    { "Vcvttps2dq",	{ XM, EXx }, 0 },
+    { "Vcvtps2dq",	{ XM, EXx }, 0 },
   },
 
   /* PREFIX_0F5C */
   {
-    { "subps",	{ XM, EXx }, PREFIX_OPCODE },
-    { "subss",	{ XM, EXd }, PREFIX_OPCODE },
-    { "subpd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "subsd",	{ XM, EXq }, PREFIX_OPCODE },
+    { "%XEVsubpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVsubs%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
+    { "%XEVsubpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVsubs%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
   },
 
   /* PREFIX_0F5D */
   {
-    { "minps",	{ XM, EXx }, PREFIX_OPCODE },
-    { "minss",	{ XM, EXd }, PREFIX_OPCODE },
-    { "minpd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "minsd",	{ XM, EXq }, PREFIX_OPCODE },
+    { "%XEVminpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
+    { "%XEVmins%XS",	{ XMScalar, VexScalar, EXd, EXxEVexS }, 0 },
+    { "%XEVminpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
+    { "%XEVmins%XD",	{ XMScalar, VexScalar, EXq, EXxEVexS }, 0 },
   },
 
   /* PREFIX_0F5E */
   {
-    { "divps",	{ XM, EXx }, PREFIX_OPCODE },
-    { "divss",	{ XM, EXd }, PREFIX_OPCODE },
-    { "divpd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "divsd",	{ XM, EXq }, PREFIX_OPCODE },
+    { "%XEVdivpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVdivs%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
+    { "%XEVdivpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
+    { "%XEVdivs%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
   },
 
   /* PREFIX_0F5F */
   {
-    { "maxps",	{ XM, EXx }, PREFIX_OPCODE },
-    { "maxss",	{ XM, EXd }, PREFIX_OPCODE },
-    { "maxpd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "maxsd",	{ XM, EXq }, PREFIX_OPCODE },
+    { "%XEVmaxpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
+    { "%XEVmaxs%XS",	{ XMScalar, VexScalar, EXd, EXxEVexS }, 0 },
+    { "%XEVmaxpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
+    { "%XEVmaxs%XD",	{ XMScalar, VexScalar, EXq, EXxEVexS }, 0 },
   },
 
   /* PREFIX_0F60 */
@@ -3390,32 +3296,32 @@ static const struct dis386 prefix_table[][4] = {
   {
     {"vmread",	{ Em, Gm }, 0 },
     { Bad_Opcode },
-    {"extrq",	{ XS, Ib, Ib }, 0 },
-    {"insertq",	{ XM, XS, Ib, Ib }, 0 },
+    {"extrq",	{ Uxmm, Ib, Ib }, 0 },
+    {"insertq",	{ XM, Uxmm, Ib, Ib }, 0 },
   },
 
   /* PREFIX_0F79 */
   {
     {"vmwrite",	{ Gm, Em }, 0 },
     { Bad_Opcode },
-    {"extrq",	{ XM, XS }, 0 },
-    {"insertq",	{ XM, XS }, 0 },
+    {"extrq",	{ XM, Uxmm }, 0 },
+    {"insertq",	{ XM, Uxmm }, 0 },
   },
 
   /* PREFIX_0F7C */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "haddpd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "haddps",	{ XM, EXx }, PREFIX_OPCODE },
+    { "Vhaddpd",	{ XM, Vex, EXx }, 0 },
+    { "Vhaddps",	{ XM, Vex, EXx }, 0 },
   },
 
   /* PREFIX_0F7D */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "hsubpd",	{ XM, EXx }, PREFIX_OPCODE },
-    { "hsubps",	{ XM, EXx }, PREFIX_OPCODE },
+    { "Vhsubpd",	{ XM, Vex, EXx }, 0 },
+    { "Vhsubps",	{ XM, Vex, EXx }, 0 },
   },
 
   /* PREFIX_0F7E */
@@ -3518,10 +3424,10 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_0FC2 */
   {
-    { "cmpps",	{ XM, EXx, CMP }, PREFIX_OPCODE },
-    { "cmpss",	{ XM, EXd, CMP }, PREFIX_OPCODE },
-    { "cmppd",	{ XM, EXx, CMP }, PREFIX_OPCODE },
-    { "cmpsd",	{ XM, EXq, CMP }, PREFIX_OPCODE },
+    { "VcmppX",	{ XM, Vex, EXx, CMP }, 0 },
+    { "Vcmpss",	{ XMScalar, VexScalar, EXd, CMP }, 0 },
+    { "VcmppX",	{ XM, Vex, EXx, CMP }, 0 },
+    { "Vcmpsd",	{ XMScalar, VexScalar, EXq, CMP }, 0 },
   },
 
   /* PREFIX_0FC7_REG_6_MOD_0 */
@@ -3549,31 +3455,31 @@ static const struct dis386 prefix_table[][4] = {
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "addsubpd", { XM, EXx }, 0 },
-    { "addsubps", { XM, EXx }, 0 },
+    { "VaddsubpX",	{ XM, Vex, EXx }, 0 },
+    { "VaddsubpX",	{ XM, Vex, EXx }, 0 },
   },
 
   /* PREFIX_0FD6 */
   {
     { Bad_Opcode },
-    { "movq2dq",{ XM, MS }, 0 },
+    { "movq2dq",{ XM, Nq }, 0 },
     { "movq",	{ EXqS, XM }, 0 },
-    { "movdq2q",{ MX, XS }, 0 },
+    { "movdq2q",{ MX, Ux }, 0 },
   },
 
   /* PREFIX_0FE6 */
   {
     { Bad_Opcode },
-    { "cvtdq2pd", { XM, EXq }, PREFIX_OPCODE },
-    { "cvttpd2dq", { XM, EXx }, PREFIX_OPCODE },
-    { "cvtpd2dq", { XM, EXx }, PREFIX_OPCODE },
+    { "Vcvtdq2pd",	{ XM, EXxmmq }, 0 },
+    { "Vcvttpd2dq%XY",	{ XMM, EXx }, 0 },
+    { "Vcvtpd2dq%XY",	{ XMM, EXx }, 0 },
   },
 
   /* PREFIX_0FE7 */
   {
-    { "movntq",	{ Mq, MX }, PREFIX_OPCODE },
+    { "movntq",		{ Mq, MX }, 0 },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0FE7_PREFIX_2) },
+    { "movntdq",	{ Mx, XM }, 0 },
   },
 
   /* PREFIX_0FF0 */
@@ -3581,14 +3487,14 @@ static const struct dis386 prefix_table[][4] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0FF0_PREFIX_3) },
+    { "Vlddqu",		{ XM, M }, 0 },
   },
 
   /* PREFIX_0FF7 */
   {
-    { "maskmovq", { MX, MS }, PREFIX_OPCODE },
+    { "maskmovq", { MX, Nq }, PREFIX_OPCODE },
     { Bad_Opcode },
-    { "maskmovdqu", { XM, XS }, PREFIX_OPCODE },
+    { "maskmovdqu", { XM, Ux }, PREFIX_OPCODE },
   },
 
   /* PREFIX_0F38D8 */
@@ -3607,21 +3513,21 @@ static const struct dis386 prefix_table[][4] = {
   /* PREFIX_0F38DD */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F38DD_PREFIX_1) },
+    { "aesdec128kl", { XM, M }, 0 },
     { "aesenclast", { XM, EXx }, 0 },
   },
 
   /* PREFIX_0F38DE */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F38DE_PREFIX_1) },
+    { "aesenc256kl", { XM, M }, 0 },
     { "aesdec", { XM, EXx }, 0 },
   },
 
   /* PREFIX_0F38DF */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F38DF_PREFIX_1) },
+    { "aesdec256kl", { XM, M }, 0 },
     { "aesdeclast", { XM, EXx }, 0 },
   },
 
@@ -3643,29 +3549,29 @@ static const struct dis386 prefix_table[][4] = {
 
   /* PREFIX_0F38F6 */
   {
-    { MOD_TABLE (MOD_0F38F6_PREFIX_0) },
-    { "adoxS",	{ Gdq, Edq}, PREFIX_OPCODE },
-    { "adcxS",	{ Gdq, Edq}, PREFIX_OPCODE },
+    { "wrssK",	{ M, Gdq }, 0 },
+    { "adoxS",	{ Gdq, Edq}, 0 },
+    { "adcxS",	{ Gdq, Edq}, 0 },
     { Bad_Opcode },
   },
 
   /* PREFIX_0F38F8 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F38F8_PREFIX_1) },
-    { MOD_TABLE (MOD_0F38F8_PREFIX_2) },
-    { MOD_TABLE (MOD_0F38F8_PREFIX_3) },
+    { "enqcmds", { Gva, M }, 0 },
+    { "movdir64b", { Gva, M }, 0 },
+    { "enqcmd",	{ Gva, M }, 0 },
   },
   /* PREFIX_0F38FA */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F38FA_PREFIX_1) },
+    { "encodekey128", { Gd, Rd }, 0 },
   },
 
   /* PREFIX_0F38FB */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F38FB_PREFIX_1) },
+    { "encodekey256", { Gd, Rd }, 0 },
   },
 
   /* PREFIX_0F38FC */
@@ -3679,46 +3585,30 @@ static const struct dis386 prefix_table[][4] = {
   /* PREFIX_0F3A0F */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F3A0F_PREFIX_1)},
-  },
-
-  /* PREFIX_VEX_0F10 */
-  {
-    { "%XEvmovupX",	{ XM, EXEvexXNoBcst }, 0 },
-    { "%XEvmovs%XS",	{ XMScalar, VexScalarR, EXd }, 0 },
-    { "%XEvmovupX",	{ XM, EXEvexXNoBcst }, 0 },
-    { "%XEvmovs%XD",	{ XMScalar, VexScalarR, EXq }, 0 },
-  },
-
-  /* PREFIX_VEX_0F11 */
-  {
-    { "%XEvmovupX",	{ EXxS, XM }, 0 },
-    { "%XEvmovs%XS",	{ EXdS, VexScalarR, XMScalar }, 0 },
-    { "%XEvmovupX",	{ EXxS, XM }, 0 },
-    { "%XEvmovs%XD",	{ EXqS, VexScalarR, XMScalar }, 0 },
+    { REG_TABLE (REG_0F3A0F_P_1) },
   },
 
   /* PREFIX_VEX_0F12 */
   {
-    { MOD_TABLE (MOD_VEX_0F12_PREFIX_0) },
+    { VEX_LEN_TABLE (VEX_LEN_0F12_P_0) },
     { "%XEvmov%XSldup",	{ XM, EXEvexXNoBcst }, 0 },
-    { MOD_TABLE (MOD_VEX_0F12_PREFIX_2) },
+    { VEX_LEN_TABLE (VEX_LEN_0F12_P_2) },
     { "%XEvmov%XDdup",	{ XM, EXymmq }, 0 },
   },
 
   /* PREFIX_VEX_0F16 */
   {
-    { MOD_TABLE (MOD_VEX_0F16_PREFIX_0) },
+    { VEX_LEN_TABLE (VEX_LEN_0F16_P_0) },
     { "%XEvmov%XShdup",	{ XM, EXEvexXNoBcst }, 0 },
-    { MOD_TABLE (MOD_VEX_0F16_PREFIX_2) },
+    { VEX_LEN_TABLE (VEX_LEN_0F16_P_2) },
   },
 
   /* PREFIX_VEX_0F2A */
   {
     { Bad_Opcode },
-    { "%XEvcvtsi2ss{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
+    { "%XEvcvtsi2ssY{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR, Edq }, 0 },
     { Bad_Opcode },
-    { "%XEvcvtsi2sd{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
+    { "%XEvcvtsi2sdY{%LQ|}",	{ XMScalar, VexScalar, EXxEVexR64, Edq }, 0 },
   },
 
   /* PREFIX_VEX_0F2C */
@@ -3737,211 +3627,114 @@ static const struct dis386 prefix_table[][4] = {
     { "%XEvcvtsd2si",	{ Gdq, EXq, EXxEVexR }, 0 },
   },
 
-  /* PREFIX_VEX_0F2E */
+  /* PREFIX_VEX_0F41_L_1_W_0 */
   {
-    { "%XEvucomisX",	{ XMScalar, EXd, EXxEVexS }, 0 },
+    { "kandw",          { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "%XEvucomisX",	{ XMScalar, EXq, EXxEVexS }, 0 },
+    { "kandb",          { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F2F */
+  /* PREFIX_VEX_0F41_L_1_W_1 */
   {
-    { "%XEvcomisX",	{ XMScalar, EXd, EXxEVexS }, 0 },
+    { "kandq",          { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "%XEvcomisX",	{ XMScalar, EXq, EXxEVexS }, 0 },
+    { "kandd",          { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F41_L_1_M_1_W_0 */
+  /* PREFIX_VEX_0F42_L_1_W_0 */
   {
-    { "kandw",          { MaskG, MaskVex, MaskE }, 0 },
+    { "kandnw",         { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kandb",          { MaskG, MaskVex, MaskE }, 0 },
+    { "kandnb",         { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F41_L_1_M_1_W_1 */
+  /* PREFIX_VEX_0F42_L_1_W_1 */
   {
-    { "kandq",          { MaskG, MaskVex, MaskE }, 0 },
+    { "kandnq",         { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kandd",          { MaskG, MaskVex, MaskE }, 0 },
+    { "kandnd",         { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F42_L_1_M_1_W_0 */
+  /* PREFIX_VEX_0F44_L_0_W_0 */
   {
-    { "kandnw",         { MaskG, MaskVex, MaskE }, 0 },
+    { "knotw",          { MaskG, MaskR }, 0 },
     { Bad_Opcode },
-    { "kandnb",         { MaskG, MaskVex, MaskE }, 0 },
+    { "knotb",          { MaskG, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F42_L_1_M_1_W_1 */
+  /* PREFIX_VEX_0F44_L_0_W_1 */
   {
-    { "kandnq",         { MaskG, MaskVex, MaskE }, 0 },
+    { "knotq",          { MaskG, MaskR }, 0 },
     { Bad_Opcode },
-    { "kandnd",         { MaskG, MaskVex, MaskE }, 0 },
+    { "knotd",          { MaskG, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F44_L_0_M_1_W_0 */
+  /* PREFIX_VEX_0F45_L_1_W_0 */
   {
-    { "knotw",          { MaskG, MaskE }, 0 },
+    { "korw",       { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "knotb",          { MaskG, MaskE }, 0 },
+    { "korb",       { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F44_L_0_M_1_W_1 */
+  /* PREFIX_VEX_0F45_L_1_W_1 */
   {
-    { "knotq",          { MaskG, MaskE }, 0 },
+    { "korq",       { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "knotd",          { MaskG, MaskE }, 0 },
+    { "kord",       { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F45_L_1_M_1_W_0 */
+  /* PREFIX_VEX_0F46_L_1_W_0 */
   {
-    { "korw",       { MaskG, MaskVex, MaskE }, 0 },
+    { "kxnorw",     { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "korb",       { MaskG, MaskVex, MaskE }, 0 },
+    { "kxnorb",     { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F45_L_1_M_1_W_1 */
+  /* PREFIX_VEX_0F46_L_1_W_1 */
   {
-    { "korq",       { MaskG, MaskVex, MaskE }, 0 },
+    { "kxnorq",     { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kord",       { MaskG, MaskVex, MaskE }, 0 },
+    { "kxnord",     { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F46_L_1_M_1_W_0 */
+  /* PREFIX_VEX_0F47_L_1_W_0 */
   {
-    { "kxnorw",     { MaskG, MaskVex, MaskE }, 0 },
+    { "kxorw",      { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kxnorb",     { MaskG, MaskVex, MaskE }, 0 },
+    { "kxorb",      { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F46_L_1_M_1_W_1 */
+  /* PREFIX_VEX_0F47_L_1_W_1 */
   {
-    { "kxnorq",     { MaskG, MaskVex, MaskE }, 0 },
+    { "kxorq",      { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kxnord",     { MaskG, MaskVex, MaskE }, 0 },
+    { "kxord",      { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F47_L_1_M_1_W_0 */
+  /* PREFIX_VEX_0F4A_L_1_W_0 */
   {
-    { "kxorw",      { MaskG, MaskVex, MaskE }, 0 },
+    { "kaddw",          { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kxorb",      { MaskG, MaskVex, MaskE }, 0 },
+    { "kaddb",          { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F47_L_1_M_1_W_1 */
+  /* PREFIX_VEX_0F4A_L_1_W_1 */
   {
-    { "kxorq",      { MaskG, MaskVex, MaskE }, 0 },
+    { "kaddq",          { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kxord",      { MaskG, MaskVex, MaskE }, 0 },
+    { "kaddd",          { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F4A_L_1_M_1_W_0 */
+  /* PREFIX_VEX_0F4B_L_1_W_0 */
   {
-    { "kaddw",          { MaskG, MaskVex, MaskE }, 0 },
+    { "kunpckwd",   { MaskG, MaskVex, MaskR }, 0 },
     { Bad_Opcode },
-    { "kaddb",          { MaskG, MaskVex, MaskE }, 0 },
+    { "kunpckbw",   { MaskG, MaskVex, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F4A_L_1_M_1_W_1 */
+  /* PREFIX_VEX_0F4B_L_1_W_1 */
   {
-    { "kaddq",          { MaskG, MaskVex, MaskE }, 0 },
-    { Bad_Opcode },
-    { "kaddd",          { MaskG, MaskVex, MaskE }, 0 },
-  },
-
-  /* PREFIX_VEX_0F4B_L_1_M_1_W_0 */
-  {
-    { "kunpckwd",   { MaskG, MaskVex, MaskE }, 0 },
-    { Bad_Opcode },
-    { "kunpckbw",   { MaskG, MaskVex, MaskE }, 0 },
-  },
-
-  /* PREFIX_VEX_0F4B_L_1_M_1_W_1 */
-  {
-    { "kunpckdq",   { MaskG, MaskVex, MaskE }, 0 },
-  },
-
-  /* PREFIX_VEX_0F51 */
-  {
-    { "%XEvsqrtpX",	{ XM, EXx, EXxEVexR }, 0 },
-    { "%XEvsqrts%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
-    { "%XEvsqrtpX",	{ XM, EXx, EXxEVexR }, 0 },
-    { "%XEvsqrts%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
-  },
-
-  /* PREFIX_VEX_0F52 */
-  {
-    { "vrsqrtps",	{ XM, EXx }, 0 },
-    { "vrsqrtss",	{ XMScalar, VexScalar, EXd }, 0 },
-  },
-
-  /* PREFIX_VEX_0F53 */
-  {
-    { "vrcpps",		{ XM, EXx }, 0 },
-    { "vrcpss",		{ XMScalar, VexScalar, EXd }, 0 },
-  },
-
-  /* PREFIX_VEX_0F58 */
-  {
-    { "%XEvaddpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvadds%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
-    { "%XEvaddpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvadds%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
-  },
-
-  /* PREFIX_VEX_0F59 */
-  {
-    { "%XEvmulpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvmuls%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
-    { "%XEvmulpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvmuls%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
-  },
-
-  /* PREFIX_VEX_0F5A */
-  {
-    { "%XEvcvtp%XS2pd", { XM, EXEvexHalfBcstXmmq, EXxEVexS }, 0 },
-    { "%XEvcvts%XS2sd", { XMScalar, VexScalar, EXd, EXxEVexS }, 0 },
-    { "%XEvcvtp%XD2ps%XY", { XMxmmq, EXx, EXxEVexR }, 0 },
-    { "%XEvcvts%XD2ss", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
-  },
-
-  /* PREFIX_VEX_0F5B */
-  {
-    { "vcvtdq2ps",	{ XM, EXx }, 0 },
-    { "vcvttps2dq",	{ XM, EXx }, 0 },
-    { "vcvtps2dq",	{ XM, EXx }, 0 },
-  },
-
-  /* PREFIX_VEX_0F5C */
-  {
-    { "%XEvsubpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvsubs%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
-    { "%XEvsubpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvsubs%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
-  },
-
-  /* PREFIX_VEX_0F5D */
-  {
-    { "%XEvminpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
-    { "%XEvmins%XS",	{ XMScalar, VexScalar, EXd, EXxEVexS }, 0 },
-    { "%XEvminpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
-    { "%XEvmins%XD",	{ XMScalar, VexScalar, EXq, EXxEVexS }, 0 },
-  },
-
-  /* PREFIX_VEX_0F5E */
-  {
-    { "%XEvdivpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvdivs%XS",	{ XMScalar, VexScalar, EXd, EXxEVexR }, 0 },
-    { "%XEvdivpX",	{ XM, Vex, EXx, EXxEVexR }, 0 },
-    { "%XEvdivs%XD",	{ XMScalar, VexScalar, EXq, EXxEVexR }, 0 },
-  },
-
-  /* PREFIX_VEX_0F5F */
-  {
-    { "%XEvmaxpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
-    { "%XEvmaxs%XS",	{ XMScalar, VexScalar, EXd, EXxEVexS }, 0 },
-    { "%XEvmaxpX",	{ XM, Vex, EXx, EXxEVexS }, 0 },
-    { "%XEvmaxs%XD",	{ XMScalar, VexScalar, EXq, EXxEVexS }, 0 },
+    { "kunpckdq",   { MaskG, MaskVex, MaskR }, 0 },
   },
 
   /* PREFIX_VEX_0F6F */
@@ -3959,22 +3752,6 @@ static const struct dis386 prefix_table[][4] = {
     { "vpshuflw",	{ XM, EXx, Ib }, 0 },
   },
 
-  /* PREFIX_VEX_0F7C */
-  {
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { "vhaddpd",	{ XM, Vex, EXx }, 0 },
-    { "vhaddps",	{ XM, Vex, EXx }, 0 },
-  },
-
-  /* PREFIX_VEX_0F7D */
-  {
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { "vhsubpd",	{ XM, Vex, EXx }, 0 },
-    { "vhsubps",	{ XM, Vex, EXx }, 0 },
-  },
-
   /* PREFIX_VEX_0F7E */
   {
     { Bad_Opcode },
@@ -4003,110 +3780,78 @@ static const struct dis386 prefix_table[][4] = {
     { "kmovd",		{ MaskG, MaskBDE }, 0 },
   },
 
-  /* PREFIX_VEX_0F91_L_0_M_0_W_0 */
+  /* PREFIX_VEX_0F91_L_0_W_0 */
   {
-    { "kmovw",		{ Ew, MaskG }, 0 },
+    { "kmovw",		{ Mw, MaskG }, 0 },
     { Bad_Opcode },
-    { "kmovb",		{ Eb, MaskG }, 0 },
+    { "kmovb",		{ Mb, MaskG }, 0 },
   },
 
-  /* PREFIX_VEX_0F91_L_0_M_0_W_1 */
+  /* PREFIX_VEX_0F91_L_0_W_1 */
   {
-    { "kmovq",		{ Eq, MaskG }, 0 },
+    { "kmovq",		{ Mq, MaskG }, 0 },
     { Bad_Opcode },
-    { "kmovd",		{ Ed, MaskG }, 0 },
+    { "kmovd",		{ Md, MaskG }, 0 },
   },
 
-  /* PREFIX_VEX_0F92_L_0_M_1_W_0 */
+  /* PREFIX_VEX_0F92_L_0_W_0 */
   {
-    { "kmovw",		{ MaskG, Edq }, 0 },
+    { "kmovw",		{ MaskG, Rdq }, 0 },
     { Bad_Opcode },
-    { "kmovb",		{ MaskG, Edq }, 0 },
-    { "kmovd",		{ MaskG, Edq }, 0 },
+    { "kmovb",		{ MaskG, Rdq }, 0 },
+    { "kmovd",		{ MaskG, Rdq }, 0 },
   },
 
-  /* PREFIX_VEX_0F92_L_0_M_1_W_1 */
+  /* PREFIX_VEX_0F92_L_0_W_1 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "kmovK",		{ MaskG, Edq }, 0 },
+    { "kmovK",		{ MaskG, Rdq }, 0 },
   },
 
-  /* PREFIX_VEX_0F93_L_0_M_1_W_0 */
+  /* PREFIX_VEX_0F93_L_0_W_0 */
   {
-    { "kmovw",		{ Gdq, MaskE }, 0 },
+    { "kmovw",		{ Gdq, MaskR }, 0 },
     { Bad_Opcode },
-    { "kmovb",		{ Gdq, MaskE }, 0 },
-    { "kmovd",		{ Gdq, MaskE }, 0 },
+    { "kmovb",		{ Gdq, MaskR }, 0 },
+    { "kmovd",		{ Gdq, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F93_L_0_M_1_W_1 */
+  /* PREFIX_VEX_0F93_L_0_W_1 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "kmovK",		{ Gdq, MaskE }, 0 },
+    { "kmovK",		{ Gdq, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F98_L_0_M_1_W_0 */
+  /* PREFIX_VEX_0F98_L_0_W_0 */
   {
-    { "kortestw", { MaskG, MaskE }, 0 },
+    { "kortestw", { MaskG, MaskR }, 0 },
     { Bad_Opcode },
-    { "kortestb", { MaskG, MaskE }, 0 },
+    { "kortestb", { MaskG, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F98_L_0_M_1_W_1 */
+  /* PREFIX_VEX_0F98_L_0_W_1 */
   {
-    { "kortestq", { MaskG, MaskE }, 0 },
+    { "kortestq", { MaskG, MaskR }, 0 },
     { Bad_Opcode },
-    { "kortestd", { MaskG, MaskE }, 0 },
+    { "kortestd", { MaskG, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F99_L_0_M_1_W_0 */
+  /* PREFIX_VEX_0F99_L_0_W_0 */
   {
-    { "ktestw", { MaskG, MaskE }, 0 },
+    { "ktestw", { MaskG, MaskR }, 0 },
     { Bad_Opcode },
-    { "ktestb", { MaskG, MaskE }, 0 },
+    { "ktestb", { MaskG, MaskR }, 0 },
   },
 
-  /* PREFIX_VEX_0F99_L_0_M_1_W_1 */
+  /* PREFIX_VEX_0F99_L_0_W_1 */
   {
-    { "ktestq", { MaskG, MaskE }, 0 },
+    { "ktestq", { MaskG, MaskR }, 0 },
     { Bad_Opcode },
-    { "ktestd", { MaskG, MaskE }, 0 },
-  },
-
-  /* PREFIX_VEX_0FC2 */
-  {
-    { "vcmpps",		{ XM, Vex, EXx, CMP }, 0 },
-    { "vcmpss",		{ XMScalar, VexScalar, EXd, CMP }, 0 },
-    { "vcmppd",		{ XM, Vex, EXx, CMP }, 0 },
-    { "vcmpsd",		{ XMScalar, VexScalar, EXq, CMP }, 0 },
-  },
-
-  /* PREFIX_VEX_0FD0 */
-  {
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { "vaddsubpd",	{ XM, Vex, EXx }, 0 },
-    { "vaddsubps",	{ XM, Vex, EXx }, 0 },
-  },
-
-  /* PREFIX_VEX_0FE6 */
-  {
-    { Bad_Opcode },
-    { "vcvtdq2pd",	{ XM, EXxmmq }, 0 },
-    { "vcvttpd2dq%XY",	{ XMM, EXx }, 0 },
-    { "vcvtpd2dq%XY",	{ XMM, EXx }, 0 },
-  },
-
-  /* PREFIX_VEX_0FF0 */
-  {
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0FF0_PREFIX_3) },
+    { "ktestd", { MaskG, MaskR }, 0 },
   },
 
   /* PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0 */
@@ -4124,7 +3869,7 @@ static const struct dis386 prefix_table[][4] = {
     { RM_TABLE (RM_VEX_0F3849_X86_64_L_0_W_0_M_1_P_3) },
   },
 
-  /* PREFIX_VEX_0F384B_X86_64_L_0_W_0_M_0 */
+  /* PREFIX_VEX_0F384B_X86_64_L_0_W_0 */
   {
     { Bad_Opcode },
     { "tilestored",	{ MVexSIBMEM, TMM }, 0 },
@@ -4147,27 +3892,27 @@ static const struct dis386 prefix_table[][4] = {
     { "%XVvpdpbusds",	{ XM, Vex, EXx }, 0 },
     { "vpdpbssds",	{ XM, Vex, EXx }, 0 },
   },
-  /* PREFIX_VEX_0F385C_X86_64_M_1_L_0_W_0 */
+  /* PREFIX_VEX_0F385C_X86_64_L_0_W_0 */
   {
     { Bad_Opcode },
-    { "tdpbf16ps", { TMM, EXtmm, VexTmm }, 0 },
+    { "tdpbf16ps", { TMM, Rtmm, VexTmm }, 0 },
     { Bad_Opcode },
-    { "tdpfp16ps", { TMM, EXtmm, VexTmm }, 0 },
+    { "tdpfp16ps", { TMM, Rtmm, VexTmm }, 0 },
   },
 
-  /* PREFIX_VEX_0F385E_X86_64_M_1_L_0_W_0 */
+  /* PREFIX_VEX_0F385E_X86_64_L_0_W_0 */
   {
-    { "tdpbuud", {TMM, EXtmm, VexTmm }, 0 },
-    { "tdpbsud", {TMM, EXtmm, VexTmm }, 0 },
-    { "tdpbusd", {TMM, EXtmm, VexTmm }, 0 },
-    { "tdpbssd", {TMM, EXtmm, VexTmm }, 0 },
+    { "tdpbuud", {TMM, Rtmm, VexTmm }, 0 },
+    { "tdpbsud", {TMM, Rtmm, VexTmm }, 0 },
+    { "tdpbusd", {TMM, Rtmm, VexTmm }, 0 },
+    { "tdpbssd", {TMM, Rtmm, VexTmm }, 0 },
   },
 
-  /* PREFIX_VEX_0F386C_X86_64_M_1_L_0_W_0 */
+  /* PREFIX_VEX_0F386C_X86_64_L_0_W_0 */
   {
-    { "tcmmrlfp16ps", { TMM, EXtmm, VexTmm }, 0 },
+    { "tcmmrlfp16ps", { TMM, Rtmm, VexTmm }, 0 },
     { Bad_Opcode },
-    { "tcmmimfp16ps", { TMM, EXtmm, VexTmm }, 0 },
+    { "tcmmimfp16ps", { TMM, Rtmm, VexTmm }, 0 },
   },
 
   /* PREFIX_VEX_0F3872 */
@@ -4191,6 +3936,52 @@ static const struct dis386 prefix_table[][4] = {
     { "vbcstnesh2ps", { XM, Mw }, 0 },
   },
  
+  /* PREFIX_VEX_0F38D2_W_0 */
+  {
+    { "vpdpwuud",	{ XM, Vex, EXx }, 0 },
+    { "vpdpwsud",	{ XM, Vex, EXx }, 0 },
+    { "vpdpwusd",	{ XM, Vex, EXx }, 0 },
+  },
+
+  /* PREFIX_VEX_0F38D3_W_0 */
+  {
+    { "vpdpwuuds",	{ XM, Vex, EXx }, 0 },
+    { "vpdpwsuds",	{ XM, Vex, EXx }, 0 },
+    { "vpdpwusds",	{ XM, Vex, EXx }, 0 },
+  },
+
+  /* PREFIX_VEX_0F38CB */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F38CB_P_3) },
+  },
+
+  /* PREFIX_VEX_0F38CC */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F38CC_P_3) },
+  },
+
+  /* PREFIX_VEX_0F38CD */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F38CD_P_3) },
+  },
+
+  /* PREFIX_VEX_0F38DA_W_0 */
+  {
+    { VEX_LEN_TABLE (VEX_LEN_0F38DA_W_0_P_0) },
+    { "vsm4key4", { XM, Vex, EXx }, 0 },
+    { VEX_LEN_TABLE (VEX_LEN_0F38DA_W_0_P_2) },
+    { "vsm4rnds4", { XM, Vex, EXx }, 0 },
+  },
+
   /* PREFIX_VEX_0F38F5_L_0 */
   {
     { "bzhiS",		{ Gdq, Edq, VexGdq }, 0 },
@@ -4295,12 +4086,12 @@ static const struct dis386 x86_64_table[][2] = {
   /* X86_64_62 */
   {
     { MOD_TABLE (MOD_62_32BIT) },
-    { EVEX_TABLE (EVEX_0F) },
+    { EVEX_TABLE () },
   },
 
   /* X86_64_63 */
   {
-    { "arpl", { Ew, Gw }, 0 },
+    { "arplS", { Sv, Gv }, 0 },
     { "movs", { Gv, { MOVSXD_Fixup, movsxd_mode } }, 0 },
   },
 
@@ -4342,13 +4133,13 @@ static const struct dis386 x86_64_table[][2] = {
   /* X86_64_C4 */
   {
     { MOD_TABLE (MOD_C4_32BIT) },
-    { VEX_C4_TABLE (VEX_0F) },
+    { VEX_C4_TABLE () },
   },
 
   /* X86_64_C5 */
   {
     { MOD_TABLE (MOD_C5_32BIT) },
-    { VEX_C5_TABLE (VEX_0F) },
+    { VEX_C5_TABLE () },
   },
 
   /* X86_64_CE */
@@ -4407,6 +4198,12 @@ static const struct dis386 x86_64_table[][2] = {
     { "rdmsrlist",	{ Skip_MODRM }, 0 },
   },
 
+  /* X86_64_0F01_REG_0_MOD_3_RM_7_P_0 */
+  {
+    { Bad_Opcode },
+    { "pbndkb",		{ Skip_MODRM }, 0 },
+  },
+
   /* X86_64_0F01_REG_1 */
   {
     { "sidt{Q|Q}", { M }, 0 },
@@ -4546,19 +4343,19 @@ static const struct dis386 x86_64_table[][2] = {
   /* X86_64_VEX_0F385C */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F385C_X86_64) },
+    { VEX_LEN_TABLE (VEX_LEN_0F385C_X86_64) },
   },
 
   /* X86_64_VEX_0F385E */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F385E_X86_64) },
+    { VEX_LEN_TABLE (VEX_LEN_0F385E_X86_64) },
   },
 
   /* X86_64_VEX_0F386C */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F386C_X86_64) },
+    { VEX_LEN_TABLE (VEX_LEN_0F386C_X86_64) },
   },
 
   /* X86_64_VEX_0F38E0 */
@@ -4710,7 +4507,7 @@ static const struct dis386 three_byte_table[][256] = {
     /* 28 */
     { "pmuldq", { XM, EXx }, PREFIX_DATA },
     { "pcmpeqq", { XM, EXx }, PREFIX_DATA },
-    { MOD_TABLE (MOD_0F382A) },
+    { "movntdqa", { XM, Mx }, PREFIX_DATA },
     { "packusdw", { XM, EXx }, PREFIX_DATA },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -4938,12 +4735,12 @@ static const struct dis386 three_byte_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_0F38F5) },
+    { "wrussK",		{ M, Gdq }, PREFIX_DATA },
     { PREFIX_TABLE (PREFIX_0F38F6) },
     { Bad_Opcode },
     /* f8 */
     { PREFIX_TABLE (PREFIX_0F38F8) },
-    { MOD_TABLE (MOD_0F38F9) },
+    { "movdiri",	{ Mdq, Gdq }, PREFIX_OPCODE },
     { PREFIX_TABLE (PREFIX_0F38FA) },
     { PREFIX_TABLE (PREFIX_0F38FB) },
     { PREFIX_TABLE (PREFIX_0F38FC) },
@@ -5397,9 +5194,9 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_85) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_86) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_87) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_85) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_86) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_87) },
     /* 88 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5407,17 +5204,17 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_8E) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_8F) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_8E) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_8F) },
     /* 90 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_95) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_96) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_97) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_95) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_96) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_97) },
     /* 98 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5425,16 +5222,16 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_9E) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_9F) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_9E) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_9F) },
     /* a0 */
     { Bad_Opcode },
     { Bad_Opcode },
     { "vpcmov", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_A3) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_A3) },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_A6) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_A6) },
     { Bad_Opcode },
     /* a8 */
     { Bad_Opcode },
@@ -5452,7 +5249,7 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_B6) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_B6) },
     { Bad_Opcode },
     /* b8 */
     { Bad_Opcode },
@@ -5464,10 +5261,10 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* c0 */
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C0) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C1) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C2) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_C3) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_C0) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_C1) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_C2) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_C3) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5477,10 +5274,10 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CC) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CD) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CE) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CF) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_CC) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_CD) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_CE) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_CF) },
     /* d0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5513,10 +5310,10 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EC) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_ED) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EE) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EF) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_EC) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_ED) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_EE) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_08_EF) },
     /* f0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5540,8 +5337,8 @@ static const struct dis386 xop_table[][256] = {
   {
     /* 00 */
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_01) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_02) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_01) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_02) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5559,7 +5356,7 @@ static const struct dis386 xop_table[][256] = {
     /* 10 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_XOP_09_12) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_12) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5683,10 +5480,10 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 80 */
-    { VEX_W_TABLE (VEX_W_0FXOP_09_80) },
-    { VEX_W_TABLE (VEX_W_0FXOP_09_81) },
-    { VEX_W_TABLE (VEX_W_0FXOP_09_82) },
-    { VEX_W_TABLE (VEX_W_0FXOP_09_83) },
+    { VEX_W_TABLE (VEX_W_XOP_09_80) },
+    { VEX_W_TABLE (VEX_W_XOP_09_81) },
+    { VEX_W_TABLE (VEX_W_XOP_09_82) },
+    { VEX_W_TABLE (VEX_W_XOP_09_83) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5701,19 +5498,19 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 90 */
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_90) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_91) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_92) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_93) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_94) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_95) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_96) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_97) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_90) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_91) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_92) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_93) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_94) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_95) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_96) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_97) },
     /* 98 */
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_98) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_99) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_9A) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_9B) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_98) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_99) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_9A) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_9B) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5756,45 +5553,45 @@ static const struct dis386 xop_table[][256] = {
     { Bad_Opcode },
     /* c0 */
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C1) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C2) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C3) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_C1) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_C2) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_C3) },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C6) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_C7) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_C6) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_C7) },
     /* c8 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_CB) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_CB) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* d0 */
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D1) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D2) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D3) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_D1) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_D2) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_D3) },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D6) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_D7) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_D6) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_D7) },
     /* d8 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_DB) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_DB) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     /* e0 */
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_E1) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_E2) },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_E3) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_E1) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_E2) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_E3) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -5850,7 +5647,7 @@ static const struct dis386 xop_table[][256] = {
     /* 10 */
     { "bextrS",	{ Gdq, Edq, Id }, 0 },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_0A_12) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_0A_12) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -6142,14 +5939,14 @@ static const struct dis386 vex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 10 */
-    { PREFIX_TABLE (PREFIX_VEX_0F10) },
-    { PREFIX_TABLE (PREFIX_VEX_0F11) },
+    { PREFIX_TABLE (PREFIX_0F10) },
+    { PREFIX_TABLE (PREFIX_0F11) },
     { PREFIX_TABLE (PREFIX_VEX_0F12) },
-    { MOD_TABLE (MOD_VEX_0F13) },
+    { VEX_LEN_TABLE (VEX_LEN_0F13) },
     { "vunpcklpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     { "vunpckhpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     { PREFIX_TABLE (PREFIX_VEX_0F16) },
-    { MOD_TABLE (MOD_VEX_0F17) },
+    { VEX_LEN_TABLE (VEX_LEN_0F17) },
     /* 18 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -6172,11 +5969,11 @@ static const struct dis386 vex_table[][256] = {
     { "vmovapX",	{ XM, EXx }, PREFIX_OPCODE },
     { "vmovapX",	{ EXxS, XM }, PREFIX_OPCODE },
     { PREFIX_TABLE (PREFIX_VEX_0F2A) },
-    { MOD_TABLE (MOD_VEX_0F2B) },
+    { "vmovntpX",	{ Mx, XM }, PREFIX_OPCODE },
     { PREFIX_TABLE (PREFIX_VEX_0F2C) },
     { PREFIX_TABLE (PREFIX_VEX_0F2D) },
-    { PREFIX_TABLE (PREFIX_VEX_0F2E) },
-    { PREFIX_TABLE (PREFIX_VEX_0F2F) },
+    { PREFIX_TABLE (PREFIX_0F2E) },
+    { PREFIX_TABLE (PREFIX_0F2F) },
     /* 30 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -6214,23 +6011,23 @@ static const struct dis386 vex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* 50 */
-    { MOD_TABLE (MOD_VEX_0F50) },
-    { PREFIX_TABLE (PREFIX_VEX_0F51) },
-    { PREFIX_TABLE (PREFIX_VEX_0F52) },
-    { PREFIX_TABLE (PREFIX_VEX_0F53) },
+    { "vmovmskpX",	{ Gdq, Ux }, PREFIX_OPCODE },
+    { PREFIX_TABLE (PREFIX_0F51) },
+    { PREFIX_TABLE (PREFIX_0F52) },
+    { PREFIX_TABLE (PREFIX_0F53) },
     { "vandpX",		{ XM, Vex, EXx }, PREFIX_OPCODE },
     { "vandnpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     { "vorpX",		{ XM, Vex, EXx }, PREFIX_OPCODE },
     { "vxorpX",		{ XM, Vex, EXx }, PREFIX_OPCODE },
     /* 58 */
-    { PREFIX_TABLE (PREFIX_VEX_0F58) },
-    { PREFIX_TABLE (PREFIX_VEX_0F59) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5A) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5B) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5C) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5D) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5E) },
-    { PREFIX_TABLE (PREFIX_VEX_0F5F) },
+    { PREFIX_TABLE (PREFIX_0F58) },
+    { PREFIX_TABLE (PREFIX_0F59) },
+    { PREFIX_TABLE (PREFIX_0F5A) },
+    { PREFIX_TABLE (PREFIX_0F5B) },
+    { PREFIX_TABLE (PREFIX_0F5C) },
+    { PREFIX_TABLE (PREFIX_0F5D) },
+    { PREFIX_TABLE (PREFIX_0F5E) },
+    { PREFIX_TABLE (PREFIX_0F5F) },
     /* 60 */
     { "vpunpcklbw",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpunpcklwd",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -6251,9 +6048,9 @@ static const struct dis386 vex_table[][256] = {
     { PREFIX_TABLE (PREFIX_VEX_0F6F) },
     /* 70 */
     { PREFIX_TABLE (PREFIX_VEX_0F70) },
-    { MOD_TABLE (MOD_VEX_0F71) },
-    { MOD_TABLE (MOD_VEX_0F72) },
-    { MOD_TABLE (MOD_VEX_0F73) },
+    { REG_TABLE (REG_VEX_0F71) },
+    { REG_TABLE (REG_VEX_0F72) },
+    { REG_TABLE (REG_VEX_0F73) },
     { "vpcmpeqb",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpcmpeqw",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpcmpeqd",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -6263,8 +6060,8 @@ static const struct dis386 vex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_VEX_0F7C) },
-    { PREFIX_TABLE (PREFIX_VEX_0F7D) },
+    { PREFIX_TABLE (PREFIX_0F7C) },
+    { PREFIX_TABLE (PREFIX_0F7D) },
     { PREFIX_TABLE (PREFIX_VEX_0F7E) },
     { PREFIX_TABLE (PREFIX_VEX_0F7F) },
     /* 80 */
@@ -6342,10 +6139,10 @@ static const struct dis386 vex_table[][256] = {
     /* c0 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_VEX_0FC2) },
+    { PREFIX_TABLE (PREFIX_0FC2) },
     { Bad_Opcode },
     { VEX_LEN_TABLE (VEX_LEN_0FC4) },
-    { VEX_LEN_TABLE (VEX_LEN_0FC5) },
+    { "vpextrw",	{ Gd, Uxmm, Ib }, PREFIX_DATA },
     { "vshufpX",	{ XM, Vex, EXx, Ib }, PREFIX_OPCODE },
     { Bad_Opcode },
     /* c8 */
@@ -6358,14 +6155,14 @@ static const struct dis386 vex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     /* d0 */
-    { PREFIX_TABLE (PREFIX_VEX_0FD0) },
+    { PREFIX_TABLE (PREFIX_0FD0) },
     { "vpsrlw",		{ XM, Vex, EXxmm }, PREFIX_DATA },
     { "vpsrld",		{ XM, Vex, EXxmm }, PREFIX_DATA },
     { "vpsrlq",		{ XM, Vex, EXxmm }, PREFIX_DATA },
     { "vpaddq",		{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpmullw",	{ XM, Vex, EXx }, PREFIX_DATA },
     { VEX_LEN_TABLE (VEX_LEN_0FD6) },
-    { MOD_TABLE (MOD_VEX_0FD7) },
+    { "vpmovmskb",	{ Gdq, Ux }, PREFIX_DATA },
     /* d8 */
     { "vpsubusb",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpsubusw",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -6382,8 +6179,8 @@ static const struct dis386 vex_table[][256] = {
     { "vpavgw",		{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpmulhuw",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpmulhw",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { PREFIX_TABLE (PREFIX_VEX_0FE6) },
-    { MOD_TABLE (MOD_VEX_0FE7) },
+    { PREFIX_TABLE (PREFIX_0FE6) },
+    { "vmovntdq",	{ Mx, XM }, PREFIX_DATA },
     /* e8 */
     { "vpsubsb",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpsubsw",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -6394,14 +6191,14 @@ static const struct dis386 vex_table[][256] = {
     { "vpmaxsw",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpxor",		{ XM, Vex, EXx }, PREFIX_DATA },
     /* f0 */
-    { PREFIX_TABLE (PREFIX_VEX_0FF0) },
+    { PREFIX_TABLE (PREFIX_0FF0) },
     { "vpsllw",		{ XM, Vex, EXxmm }, PREFIX_DATA },
     { "vpslld",		{ XM, Vex, EXxmm }, PREFIX_DATA },
     { "vpsllq",		{ XM, Vex, EXxmm }, PREFIX_DATA },
     { "vpmuludq",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpmaddwd",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpsadbw",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { VEX_LEN_TABLE (VEX_LEN_0FF7) },
+    { "vmaskmovdqu",	{ XM, Uxmm }, PREFIX_DATA },
     /* f8 */
     { "vpsubb",		{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpsubw",		{ XM, Vex, EXx }, PREFIX_DATA },
@@ -6444,7 +6241,7 @@ static const struct dis386 vex_table[][256] = {
     /* 18 */
     { VEX_W_TABLE (VEX_W_0F3818) },
     { VEX_LEN_TABLE (VEX_LEN_0F3819) },
-    { MOD_TABLE (MOD_VEX_0F381A) },
+    { VEX_LEN_TABLE (VEX_LEN_0F381A) },
     { Bad_Opcode },
     { "vpabsb",		{ XM, EXx }, PREFIX_DATA },
     { "vpabsw",		{ XM, EXx }, PREFIX_DATA },
@@ -6462,12 +6259,12 @@ static const struct dis386 vex_table[][256] = {
     /* 28 */
     { "vpmuldq",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vpcmpeqq",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { MOD_TABLE (MOD_VEX_0F382A) },
+    { "vmovntdqa",	{ XM, Mx }, PREFIX_DATA },
     { "vpackusdw",	{ XM, Vex, EXx }, PREFIX_DATA },
-    { MOD_TABLE (MOD_VEX_0F382C) },
-    { MOD_TABLE (MOD_VEX_0F382D) },
-    { MOD_TABLE (MOD_VEX_0F382E) },
-    { MOD_TABLE (MOD_VEX_0F382F) },
+    { VEX_W_TABLE (VEX_W_0F382C) },
+    { VEX_W_TABLE (VEX_W_0F382D) },
+    { VEX_W_TABLE (VEX_W_0F382E) },
+    { VEX_W_TABLE (VEX_W_0F382F) },
     /* 30 */
     { "vpmovzxbw",	{ XM, EXxmmq }, PREFIX_DATA },
     { "vpmovzxbd",	{ XM, EXxmmqd }, PREFIX_DATA },
@@ -6516,7 +6313,7 @@ static const struct dis386 vex_table[][256] = {
     /* 58 */
     { VEX_W_TABLE (VEX_W_0F3858) },
     { VEX_W_TABLE (VEX_W_0F3859) },
-    { MOD_TABLE (MOD_VEX_0F385A) },
+    { VEX_LEN_TABLE (VEX_LEN_0F385A) },
     { Bad_Opcode },
     { X86_64_TABLE (X86_64_VEX_0F385C) },
     { Bad_Opcode },
@@ -6572,9 +6369,9 @@ static const struct dis386 vex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F388C) },
+    { "vpmaskmov%DQ",	{ XM, Vex, Mx }, PREFIX_DATA },
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F388E) },
+    { "vpmaskmov%DQ",	{ Mx, Vex, XM }, PREFIX_DATA },
     { Bad_Opcode },
     /* 90 */
     { "vpgatherd%DQ", { XM, MVexVSIBDWpX, VexGatherD }, PREFIX_DATA },
@@ -6643,16 +6440,16 @@ static const struct dis386 vex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_VEX_0F38CB) },
+    { PREFIX_TABLE (PREFIX_VEX_0F38CC) },
+    { PREFIX_TABLE (PREFIX_VEX_0F38CD) },
     { Bad_Opcode },
     { VEX_W_TABLE (VEX_W_0F38CF) },
     /* d0 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F38D2) },
+    { VEX_W_TABLE (VEX_W_0F38D3) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -6660,7 +6457,7 @@ static const struct dis386 vex_table[][256] = {
     /* d8 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F38DA) },
     { VEX_LEN_TABLE (VEX_LEN_0F38DB) },
     { "vaesenc",	{ XM, Vex, EXx }, PREFIX_DATA },
     { "vaesenclast",	{ XM, Vex, EXx }, PREFIX_DATA },
@@ -6955,7 +6752,7 @@ static const struct dis386 vex_table[][256] = {
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F3ADE) },
     { VEX_LEN_TABLE (VEX_LEN_0F3ADF) },
     /* e0 */
     { Bad_Opcode },
@@ -6999,86 +6796,86 @@ static const struct dis386 vex_table[][256] = {
 #include "i386-dis-evex.h"
 
 static const struct dis386 vex_len_table[][2] = {
-  /* VEX_LEN_0F12_P_0_M_0 / VEX_LEN_0F12_P_2_M_0 */
+  /* VEX_LEN_0F12_P_0 */
   {
-    { "%XEvmovlpX",	{ XM, Vex, EXq }, 0 },
+    { MOD_TABLE (MOD_0F12_PREFIX_0) },
   },
 
-  /* VEX_LEN_0F12_P_0_M_1 */
+  /* VEX_LEN_0F12_P_2 */
   {
-    { "%XEvmovhlp%XS",	{ XM, Vex, EXq }, 0 },
+    { "%XEVmovlpYX",	{ XM, Vex, Mq }, 0 },
   },
 
-  /* VEX_LEN_0F13_M_0 */
+  /* VEX_LEN_0F13 */
   {
-    { "%XEvmovlpX",	{ EXq, XM }, PREFIX_OPCODE },
+    { "%XEVmovlpYX",	{ Mq, XM }, PREFIX_OPCODE },
   },
 
-  /* VEX_LEN_0F16_P_0_M_0 / VEX_LEN_0F16_P_2_M_0 */
+  /* VEX_LEN_0F16_P_0 */
   {
-    { "%XEvmovhpX",	{ XM, Vex, EXq }, 0 },
+    { MOD_TABLE (MOD_0F16_PREFIX_0) },
   },
 
-  /* VEX_LEN_0F16_P_0_M_1 */
+  /* VEX_LEN_0F16_P_2 */
   {
-    { "%XEvmovlhp%XS",	{ XM, Vex, EXq }, 0 },
+    { "%XEVmovhpYX",	{ XM, Vex, Mq }, 0 },
   },
 
-  /* VEX_LEN_0F17_M_0 */
+  /* VEX_LEN_0F17 */
   {
-    { "%XEvmovhpX",	{ EXq, XM }, PREFIX_OPCODE },
+    { "%XEVmovhpYX",	{ Mq, XM }, PREFIX_OPCODE },
   },
 
   /* VEX_LEN_0F41 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F41_L_1) },
+    { VEX_W_TABLE (VEX_W_0F41_L_1) },
   },
 
   /* VEX_LEN_0F42 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F42_L_1) },
+    { VEX_W_TABLE (VEX_W_0F42_L_1) },
   },
 
   /* VEX_LEN_0F44 */
   {
-    { MOD_TABLE (MOD_VEX_0F44_L_0) },
+    { VEX_W_TABLE (VEX_W_0F44_L_0) },
   },
 
   /* VEX_LEN_0F45 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F45_L_1) },
+    { VEX_W_TABLE (VEX_W_0F45_L_1) },
   },
 
   /* VEX_LEN_0F46 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F46_L_1) },
+    { VEX_W_TABLE (VEX_W_0F46_L_1) },
   },
 
   /* VEX_LEN_0F47 */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F47_L_1) },
+    { VEX_W_TABLE (VEX_W_0F47_L_1) },
   },
 
   /* VEX_LEN_0F4A */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F4A_L_1) },
+    { VEX_W_TABLE (VEX_W_0F4A_L_1) },
   },
 
   /* VEX_LEN_0F4B */
   {
     { Bad_Opcode },
-    { MOD_TABLE (MOD_VEX_0F4B_L_1) },
+    { VEX_W_TABLE (VEX_W_0F4B_L_1) },
   },
 
   /* VEX_LEN_0F6E */
   {
-    { "%XEvmovK",	{ XMScalar, Edq }, PREFIX_DATA },
+    { "%XEvmovYK",	{ XMScalar, Edq }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F77 */
@@ -7089,7 +6886,7 @@ static const struct dis386 vex_len_table[][2] = {
 
   /* VEX_LEN_0F7E_P_1 */
   {
-    { "%XEvmovq",	{ XMScalar, EXq }, 0 },
+    { "%XEvmovqY",	{ XMScalar, EXq }, 0 },
   },
 
   /* VEX_LEN_0F7E_P_2 */
@@ -7104,57 +6901,47 @@ static const struct dis386 vex_len_table[][2] = {
 
   /* VEX_LEN_0F91 */
   {
-    { MOD_TABLE (MOD_VEX_0F91_L_0) },
+    { VEX_W_TABLE (VEX_W_0F91_L_0) },
   },
 
   /* VEX_LEN_0F92 */
   {
-    { MOD_TABLE (MOD_VEX_0F92_L_0) },
+    { VEX_W_TABLE (VEX_W_0F92_L_0) },
   },
 
   /* VEX_LEN_0F93 */
   {
-    { MOD_TABLE (MOD_VEX_0F93_L_0) },
+    { VEX_W_TABLE (VEX_W_0F93_L_0) },
   },
 
   /* VEX_LEN_0F98 */
   {
-    { MOD_TABLE (MOD_VEX_0F98_L_0) },
+    { VEX_W_TABLE (VEX_W_0F98_L_0) },
   },
 
   /* VEX_LEN_0F99 */
   {
-    { MOD_TABLE (MOD_VEX_0F99_L_0) },
+    { VEX_W_TABLE (VEX_W_0F99_L_0) },
   },
 
-  /* VEX_LEN_0FAE_R_2_M_0 */
+  /* VEX_LEN_0FAE_R_2 */
   {
     { "vldmxcsr",	{ Md }, 0 },
   },
 
-  /* VEX_LEN_0FAE_R_3_M_0 */
+  /* VEX_LEN_0FAE_R_3 */
   {
     { "vstmxcsr",	{ Md }, 0 },
   },
 
   /* VEX_LEN_0FC4 */
   {
-    { "%XEvpinsrw",	{ XM, Vex, Edw, Ib }, PREFIX_DATA },
-  },
-
-  /* VEX_LEN_0FC5 */
-  {
-    { "%XEvpextrw",	{ Gd, XS, Ib }, PREFIX_DATA },
+    { "%XEvpinsrwY",	{ XM, Vex, Edw, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0FD6 */
   {
-    { "%XEvmovq",	{ EXqS, XMScalar }, PREFIX_DATA },
-  },
-
-  /* VEX_LEN_0FF7 */
-  {
-    { "vmaskmovdqu",	{ XM, XS }, PREFIX_DATA },
+    { "%XEvmovqY",	{ EXqS, XMScalar }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3816 */
@@ -7169,10 +6956,10 @@ static const struct dis386 vex_len_table[][2] = {
     { VEX_W_TABLE (VEX_W_0F3819_L_1) },
   },
 
-  /* VEX_LEN_0F381A_M_0 */
+  /* VEX_LEN_0F381A */
   {
     { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F381A_M_0_L_1) },
+    { VEX_W_TABLE (VEX_W_0F381A_L_1) },
   },
 
   /* VEX_LEN_0F3836 */
@@ -7196,25 +6983,53 @@ static const struct dis386 vex_len_table[][2] = {
     { VEX_W_TABLE (VEX_W_0F384B_X86_64_L_0) },
   },
 
-  /* VEX_LEN_0F385A_M_0 */
+  /* VEX_LEN_0F385A */
   {
     { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F385A_M_0_L_0) },
+    { VEX_W_TABLE (VEX_W_0F385A_L_0) },
   },
 
-  /* VEX_LEN_0F385C_X86_64_M_1 */
+  /* VEX_LEN_0F385C_X86_64 */
   {
-    { VEX_W_TABLE (VEX_W_0F385C_X86_64_M_1_L_0) },
+    { VEX_W_TABLE (VEX_W_0F385C_X86_64_L_0) },
   },
 
-  /* VEX_LEN_0F385E_X86_64_M_1 */
+  /* VEX_LEN_0F385E_X86_64 */
   {
-    { VEX_W_TABLE (VEX_W_0F385E_X86_64_M_1_L_0) },
+    { VEX_W_TABLE (VEX_W_0F385E_X86_64_L_0) },
   },
 
-  /* VEX_LEN_0F386C_X86_64_M_1 */
+  /* VEX_LEN_0F386C_X86_64 */
   {
-    { VEX_W_TABLE (VEX_W_0F386C_X86_64_M_1_L_0) },
+    { VEX_W_TABLE (VEX_W_0F386C_X86_64_L_0) },
+  },
+
+  /* VEX_LEN_0F38CB_P_3_W_0 */
+  {
+    { Bad_Opcode },
+    { "vsha512rnds2", { XM, Vex, Rxmmq }, 0 },
+  },
+
+  /* VEX_LEN_0F38CC_P_3_W_0 */
+  {
+    { Bad_Opcode },
+    { "vsha512msg1", { XM, Rxmmq }, 0 },
+  },
+
+  /* VEX_LEN_0F38CD_P_3_W_0 */
+  {
+    { Bad_Opcode },
+    { "vsha512msg2", { XM, Rymm }, 0 },
+  },
+
+  /* VEX_LEN_0F38DA_W_0_P_0 */
+  {
+    { "vsm3msg1", { XM, Vex, EXxmm }, 0 },
+  },
+
+  /* VEX_LEN_0F38DA_W_0_P_2 */
+  {
+    { "vsm3msg2", { XM, Vex, EXxmm }, 0 },
   },
 
   /* VEX_LEN_0F38DB */
@@ -7299,37 +7114,37 @@ static const struct dis386 vex_len_table[][2] = {
 
   /* VEX_LEN_0F3A20 */
   {
-    { "%XEvpinsrb",	{ XM, Vex, Edb, Ib }, PREFIX_DATA },
+    { "%XEvpinsrbY",	{ XM, Vex, Edb, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3A21 */
   {
-    { "%XEvinsertps",	{ XM, Vex, EXd, Ib }, PREFIX_DATA },
+    { "%XEvinsertpsY",	{ XM, Vex, EXd, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3A22 */
   {
-    { "%XEvpinsrK",	{ XM, Vex, Edq, Ib }, PREFIX_DATA },
+    { "%XEvpinsrYK",	{ XM, Vex, Edq, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3A30 */
   {
-    { MOD_TABLE (MOD_VEX_0F3A30_L_0) },
+    { "kshiftr%BW",	{ MaskG, MaskR, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3A31 */
   {
-    { MOD_TABLE (MOD_VEX_0F3A31_L_0) },
+    { "kshiftr%DQ",	{ MaskG, MaskR, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3A32 */
   {
-    { MOD_TABLE (MOD_VEX_0F3A32_L_0) },
+    { "kshiftl%BW",	{ MaskG, MaskR, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3A33 */
   {
-    { MOD_TABLE (MOD_VEX_0F3A33_L_0) },
+    { "kshiftl%DQ",	{ MaskG, MaskR, Ib }, PREFIX_DATA },
   },
 
   /* VEX_LEN_0F3A38 */
@@ -7375,6 +7190,11 @@ static const struct dis386 vex_len_table[][2] = {
     { "vpcmpistri",	{ XM, EXx, Ib }, PREFIX_DATA },
   },
 
+  /* VEX_LEN_0F3ADE_W_0 */
+  {
+    { "vsm3rnds2", { XM, Vex, EXxmm, Ib }, PREFIX_DATA },
+  },
+
   /* VEX_LEN_0F3ADF */
   {
     { "vaeskeygenassist", { XM, EXx, Ib }, PREFIX_DATA },
@@ -7385,292 +7205,292 @@ static const struct dis386 vex_len_table[][2] = {
     { PREFIX_TABLE (PREFIX_VEX_0F3AF0_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_85 */
+  /* VEX_LEN_XOP_08_85 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_85_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_85_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_86 */
+  /* VEX_LEN_XOP_08_86 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_86_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_86_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_87 */
+  /* VEX_LEN_XOP_08_87 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_87_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_87_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_8E */
+  /* VEX_LEN_XOP_08_8E */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_8E_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_8E_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_8F */
+  /* VEX_LEN_XOP_08_8F */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_8F_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_8F_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_95 */
+  /* VEX_LEN_XOP_08_95 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_95_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_95_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_96 */
+  /* VEX_LEN_XOP_08_96 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_96_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_96_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_97 */
+  /* VEX_LEN_XOP_08_97 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_97_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_97_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_9E */
+  /* VEX_LEN_XOP_08_9E */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_9E_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_9E_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_9F */
+  /* VEX_LEN_XOP_08_9F */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_9F_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_9F_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_A3 */
+  /* VEX_LEN_XOP_08_A3 */
   {
     { "vpperm", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_08_A6 */
+  /* VEX_LEN_XOP_08_A6 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_A6_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_A6_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_B6 */
+  /* VEX_LEN_XOP_08_B6 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_B6_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_B6_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_C0 */
+  /* VEX_LEN_XOP_08_C0 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_C0_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_C0_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_C1 */
+  /* VEX_LEN_XOP_08_C1 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_C1_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_C1_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_C2 */
+  /* VEX_LEN_XOP_08_C2 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_C2_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_C2_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_C3 */
+  /* VEX_LEN_XOP_08_C3 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_C3_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_C3_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_CC */
+  /* VEX_LEN_XOP_08_CC */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_CC_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_CC_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_CD */
+  /* VEX_LEN_XOP_08_CD */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_CD_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_CD_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_CE */
+  /* VEX_LEN_XOP_08_CE */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_CE_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_CE_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_CF */
+  /* VEX_LEN_XOP_08_CF */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_CF_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_CF_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_EC */
+  /* VEX_LEN_XOP_08_EC */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_EC_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_EC_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_ED */
+  /* VEX_LEN_XOP_08_ED */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_ED_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_ED_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_EE */
+  /* VEX_LEN_XOP_08_EE */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_EE_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_EE_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_08_EF */
+  /* VEX_LEN_XOP_08_EF */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_08_EF_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_08_EF_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_01 */
+  /* VEX_LEN_XOP_09_01 */
   {
     { REG_TABLE (REG_XOP_09_01_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_02 */
+  /* VEX_LEN_XOP_09_02 */
   {
     { REG_TABLE (REG_XOP_09_02_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_12_M_1 */
+  /* VEX_LEN_XOP_09_12 */
   {
-    { REG_TABLE (REG_XOP_09_12_M_1_L_0) },
+    { REG_TABLE (REG_XOP_09_12_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_82_W_0 */
+  /* VEX_LEN_XOP_09_82_W_0 */
   {
     { "vfrczss", 	{ XM, EXd }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_83_W_0 */
+  /* VEX_LEN_XOP_09_83_W_0 */
   {
     { "vfrczsd", 	{ XM, EXq }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_90 */
+  /* VEX_LEN_XOP_09_90 */
   {
     { "vprotb",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_91 */
+  /* VEX_LEN_XOP_09_91 */
   {
     { "vprotw",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_92 */
+  /* VEX_LEN_XOP_09_92 */
   {
     { "vprotd",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_93 */
+  /* VEX_LEN_XOP_09_93 */
   {
     { "vprotq",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_94 */
+  /* VEX_LEN_XOP_09_94 */
   {
     { "vpshlb",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_95 */
+  /* VEX_LEN_XOP_09_95 */
   {
     { "vpshlw",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_96 */
+  /* VEX_LEN_XOP_09_96 */
   {
     { "vpshld",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_97 */
+  /* VEX_LEN_XOP_09_97 */
   {
     { "vpshlq",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_98 */
+  /* VEX_LEN_XOP_09_98 */
   {
     { "vpshab",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_99 */
+  /* VEX_LEN_XOP_09_99 */
   {
     { "vpshaw",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_9A */
+  /* VEX_LEN_XOP_09_9A */
   {
     { "vpshad",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_9B */
+  /* VEX_LEN_XOP_09_9B */
   {
     { "vpshaq",		{ XM, EXx, VexW }, 0 },
   },
 
-  /* VEX_LEN_0FXOP_09_C1 */
+  /* VEX_LEN_XOP_09_C1 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_C1_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_C1_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_C2 */
+  /* VEX_LEN_XOP_09_C2 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_C2_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_C2_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_C3 */
+  /* VEX_LEN_XOP_09_C3 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_C3_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_C3_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_C6 */
+  /* VEX_LEN_XOP_09_C6 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_C6_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_C6_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_C7 */
+  /* VEX_LEN_XOP_09_C7 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_C7_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_C7_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_CB */
+  /* VEX_LEN_XOP_09_CB */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_CB_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_CB_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_D1 */
+  /* VEX_LEN_XOP_09_D1 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_D1_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_D1_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_D2 */
+  /* VEX_LEN_XOP_09_D2 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_D2_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_D2_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_D3 */
+  /* VEX_LEN_XOP_09_D3 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_D3_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_D3_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_D6 */
+  /* VEX_LEN_XOP_09_D6 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_D6_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_D6_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_D7 */
+  /* VEX_LEN_XOP_09_D7 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_D7_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_D7_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_DB */
+  /* VEX_LEN_XOP_09_DB */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_DB_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_DB_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_E1 */
+  /* VEX_LEN_XOP_09_E1 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_E1_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_E1_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_E2 */
+  /* VEX_LEN_XOP_09_E2 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_E2_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_E2_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_09_E3 */
+  /* VEX_LEN_XOP_09_E3 */
   {
-    { VEX_W_TABLE (VEX_W_0FXOP_09_E3_L_0) },
+    { VEX_W_TABLE (VEX_W_XOP_09_E3_L_0) },
   },
 
-  /* VEX_LEN_0FXOP_0A_12 */
+  /* VEX_LEN_XOP_0A_12 */
   {
     { REG_TABLE (REG_XOP_0A_12_L_0) },
   },
@@ -7681,43 +7501,43 @@ static const struct dis386 vex_len_table[][2] = {
 static const struct dis386 vex_w_table[][2] = {
   {
     /* VEX_W_0F41_L_1_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F41_L_1_W_1) },
   },
   {
     /* VEX_W_0F42_L_1_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F42_L_1_W_1) },
   },
   {
     /* VEX_W_0F44_L_0_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F44_L_0_W_1) },
   },
   {
     /* VEX_W_0F45_L_1_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F45_L_1_W_1) },
   },
   {
     /* VEX_W_0F46_L_1_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F46_L_1_W_1) },
   },
   {
     /* VEX_W_0F47_L_1_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F47_L_1_W_1) },
   },
   {
     /* VEX_W_0F4A_L_1_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F4A_L_1_W_1) },
   },
   {
     /* VEX_W_0F4B_L_1_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F4B_L_1_W_1) },
   },
   {
     /* VEX_W_0F90_L_0 */
@@ -7726,28 +7546,28 @@ static const struct dis386 vex_w_table[][2] = {
   },
   {
     /* VEX_W_0F91_L_0_M_0 */
-    { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_M_0_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_M_0_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F91_L_0_W_1) },
   },
   {
     /* VEX_W_0F92_L_0_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F92_L_0_W_1) },
   },
   {
     /* VEX_W_0F93_L_0_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F93_L_0_W_1) },
   },
   {
     /* VEX_W_0F98_L_0_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F98_L_0_W_1) },
   },
   {
     /* VEX_W_0F99_L_0_M_1 */
-    { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_M_1_W_0) },
-    { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_M_1_W_1) },
+    { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F99_L_0_W_1) },
   },
   {
     /* VEX_W_0F380C  */
@@ -7782,23 +7602,23 @@ static const struct dis386 vex_w_table[][2] = {
     { "vbroadcastsd",	{ XM, EXq }, PREFIX_DATA },
   },
   {
-    /* VEX_W_0F381A_M_0_L_1 */
+    /* VEX_W_0F381A_L_1 */
     { "vbroadcastf128",	{ XM, Mxmm }, PREFIX_DATA },
   },
   {
-    /* VEX_W_0F382C_M_0 */
+    /* VEX_W_0F382C */
     { "vmaskmovps",	{ XM, Vex, Mx }, PREFIX_DATA },
   },
   {
-    /* VEX_W_0F382D_M_0 */
+    /* VEX_W_0F382D */
     { "vmaskmovpd",	{ XM, Vex, Mx }, PREFIX_DATA },
   },
   {
-    /* VEX_W_0F382E_M_0 */
+    /* VEX_W_0F382E */
     { "vmaskmovps",	{ Mx, Vex, XM }, PREFIX_DATA },
   },
   {
-    /* VEX_W_0F382F_M_0 */
+    /* VEX_W_0F382F */
     { "vmaskmovpd",	{ Mx, Vex, XM }, PREFIX_DATA },
   },
   {
@@ -7815,7 +7635,7 @@ static const struct dis386 vex_w_table[][2] = {
   },
   {
     /* VEX_W_0F384B_X86_64_L_0 */
-    { MOD_TABLE (MOD_VEX_0F384B_X86_64_L_0_W_0) },
+    { PREFIX_TABLE (PREFIX_VEX_0F384B_X86_64_L_0_W_0) },
   },
   {
     /* VEX_W_0F3850 */
@@ -7842,20 +7662,20 @@ static const struct dis386 vex_w_table[][2] = {
     { "vpbroadcastq", { XM, EXq }, PREFIX_DATA },
   },
   {
-    /* VEX_W_0F385A_M_0_L_0 */
+    /* VEX_W_0F385A_L_0 */
     { "vbroadcasti128", { XM, Mxmm }, PREFIX_DATA },
   },
   {
-    /* VEX_W_0F385C_X86_64_M_1_L_0 */
-    { PREFIX_TABLE (PREFIX_VEX_0F385C_X86_64_M_1_L_0_W_0) },
+    /* VEX_W_0F385C_X86_64_L_0 */
+    { PREFIX_TABLE (PREFIX_VEX_0F385C_X86_64_L_0_W_0) },
   },
   {
-    /* VEX_W_0F385E_X86_64_M_1_L_0 */
-    { PREFIX_TABLE (PREFIX_VEX_0F385E_X86_64_M_1_L_0_W_0) },
+    /* VEX_W_0F385E_X86_64_L_0 */
+    { PREFIX_TABLE (PREFIX_VEX_0F385E_X86_64_L_0_W_0) },
   },
   {
-    /* VEX_W_0F386C_X86_64_M_1_L_0 */
-    { PREFIX_TABLE (PREFIX_VEX_0F386C_X86_64_M_1_L_0_W_0) },
+    /* VEX_W_0F386C_X86_64_L_0 */
+    { PREFIX_TABLE (PREFIX_VEX_0F386C_X86_64_L_0_W_0) },
   },
   {
     /* VEX_W_0F3872_P_1 */
@@ -7887,10 +7707,34 @@ static const struct dis386 vex_w_table[][2] = {
     { Bad_Opcode },
     { "%XVvpmadd52huq",	{ XM, Vex, EXx }, PREFIX_DATA },
   },
+  {
+    /* VEX_W_0F38CB_P_3 */
+    { VEX_LEN_TABLE (VEX_LEN_0F38CB_P_3_W_0) },
+  },
+  {
+    /* VEX_W_0F38CC_P_3 */
+    { VEX_LEN_TABLE (VEX_LEN_0F38CC_P_3_W_0) },
+  },
+  {
+    /* VEX_W_0F38CD_P_3 */
+    { VEX_LEN_TABLE (VEX_LEN_0F38CD_P_3_W_0) },
+  },
   {
     /* VEX_W_0F38CF */
     { "%XEvgf2p8mulb", { XM, Vex, EXx }, PREFIX_DATA },
   },
+  {
+    /* VEX_W_0F38D2 */
+    { PREFIX_TABLE (PREFIX_VEX_0F38D2_W_0) },
+  },
+  {
+    /* VEX_W_0F38D3 */
+    { PREFIX_TABLE (PREFIX_VEX_0F38D3_W_0) },
+  },
+  {
+    /* VEX_W_0F38DA */
+    { PREFIX_TABLE (PREFIX_VEX_0F38DA_W_0) },
+  },
   {
     /* VEX_W_0F3A00_L_1 */
     { Bad_Opcode },
@@ -7963,175 +7807,179 @@ static const struct dis386 vex_w_table[][2] = {
     { Bad_Opcode },
     { "%XEvgf2p8affineinvqb",  { XM, Vex, EXx, Ib }, PREFIX_DATA },
   },
-  /* VEX_W_0FXOP_08_85_L_0 */
+  {
+    /* VEX_W_0F3ADE */
+    { VEX_LEN_TABLE (VEX_LEN_0F3ADE_W_0) },
+  },
+  /* VEX_W_XOP_08_85_L_0 */
   {
     { "vpmacssww", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_86_L_0 */
+  /* VEX_W_XOP_08_86_L_0 */
   {
     { "vpmacsswd", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_87_L_0 */
+  /* VEX_W_XOP_08_87_L_0 */
   {
     { "vpmacssdql", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_8E_L_0 */
+  /* VEX_W_XOP_08_8E_L_0 */
   {
     { "vpmacssdd", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_8F_L_0 */
+  /* VEX_W_XOP_08_8F_L_0 */
   {
     { "vpmacssdqh", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_95_L_0 */
+  /* VEX_W_XOP_08_95_L_0 */
   {
     { "vpmacsww", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_96_L_0 */
+  /* VEX_W_XOP_08_96_L_0 */
   {
     { "vpmacswd", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_97_L_0 */
+  /* VEX_W_XOP_08_97_L_0 */
   {
     { "vpmacsdql", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_9E_L_0 */
+  /* VEX_W_XOP_08_9E_L_0 */
   {
     { "vpmacsdd", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_9F_L_0 */
+  /* VEX_W_XOP_08_9F_L_0 */
   {
     { "vpmacsdqh", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_A6_L_0 */
+  /* VEX_W_XOP_08_A6_L_0 */
   {
     { "vpmadcsswd", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_B6_L_0 */
+  /* VEX_W_XOP_08_B6_L_0 */
   {
     { "vpmadcswd", 	{ XM, Vex, EXx, XMVexI4 }, 0 },
   },
-  /* VEX_W_0FXOP_08_C0_L_0 */
+  /* VEX_W_XOP_08_C0_L_0 */
   {
     { "vprotb", 	{ XM, EXx, Ib }, 0 },
   },
-  /* VEX_W_0FXOP_08_C1_L_0 */
+  /* VEX_W_XOP_08_C1_L_0 */
   {
     { "vprotw", 	{ XM, EXx, Ib }, 0 },
   },
-  /* VEX_W_0FXOP_08_C2_L_0 */
+  /* VEX_W_XOP_08_C2_L_0 */
   {
     { "vprotd", 	{ XM, EXx, Ib }, 0 },
   },
-  /* VEX_W_0FXOP_08_C3_L_0 */
+  /* VEX_W_XOP_08_C3_L_0 */
   {
     { "vprotq", 	{ XM, EXx, Ib }, 0 },
   },
-  /* VEX_W_0FXOP_08_CC_L_0 */
+  /* VEX_W_XOP_08_CC_L_0 */
   {
      { "vpcomb",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_08_CD_L_0 */
+  /* VEX_W_XOP_08_CD_L_0 */
   {
      { "vpcomw",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_08_CE_L_0 */
+  /* VEX_W_XOP_08_CE_L_0 */
   {
      { "vpcomd",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_08_CF_L_0 */
+  /* VEX_W_XOP_08_CF_L_0 */
   {
      { "vpcomq",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_08_EC_L_0 */
+  /* VEX_W_XOP_08_EC_L_0 */
   {
      { "vpcomub",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_08_ED_L_0 */
+  /* VEX_W_XOP_08_ED_L_0 */
   {
      { "vpcomuw",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_08_EE_L_0 */
+  /* VEX_W_XOP_08_EE_L_0 */
   {
      { "vpcomud",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_08_EF_L_0 */
+  /* VEX_W_XOP_08_EF_L_0 */
   {
      { "vpcomuq",	{ XM, Vex, EXx, VPCOM }, 0 },
   },
-  /* VEX_W_0FXOP_09_80 */
+  /* VEX_W_XOP_09_80 */
   {
     { "vfrczps",	{ XM, EXx }, 0 },
   },
-  /* VEX_W_0FXOP_09_81 */
+  /* VEX_W_XOP_09_81 */
   {
     { "vfrczpd",	{ XM, EXx }, 0 },
   },
-  /* VEX_W_0FXOP_09_82 */
+  /* VEX_W_XOP_09_82 */
   {
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_82_W_0) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_82_W_0) },
   },
-  /* VEX_W_0FXOP_09_83 */
+  /* VEX_W_XOP_09_83 */
   {
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_83_W_0) },
+    { VEX_LEN_TABLE (VEX_LEN_XOP_09_83_W_0) },
   },
-  /* VEX_W_0FXOP_09_C1_L_0 */
+  /* VEX_W_XOP_09_C1_L_0 */
   {
     { "vphaddbw",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_C2_L_0 */
+  /* VEX_W_XOP_09_C2_L_0 */
   {
     { "vphaddbd",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_C3_L_0 */
+  /* VEX_W_XOP_09_C3_L_0 */
   {
     { "vphaddbq",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_C6_L_0 */
+  /* VEX_W_XOP_09_C6_L_0 */
   {
     { "vphaddwd",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_C7_L_0 */
+  /* VEX_W_XOP_09_C7_L_0 */
   {
     { "vphaddwq",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_CB_L_0 */
+  /* VEX_W_XOP_09_CB_L_0 */
   {
     { "vphadddq",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_D1_L_0 */
+  /* VEX_W_XOP_09_D1_L_0 */
   {
     { "vphaddubw",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_D2_L_0 */
+  /* VEX_W_XOP_09_D2_L_0 */
   {
     { "vphaddubd",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_D3_L_0 */
+  /* VEX_W_XOP_09_D3_L_0 */
   {
     { "vphaddubq",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_D6_L_0 */
+  /* VEX_W_XOP_09_D6_L_0 */
   {
     { "vphadduwd",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_D7_L_0 */
+  /* VEX_W_XOP_09_D7_L_0 */
   {
     { "vphadduwq",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_DB_L_0 */
+  /* VEX_W_XOP_09_DB_L_0 */
   {
     { "vphaddudq",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_E1_L_0 */
+  /* VEX_W_XOP_09_E1_L_0 */
   {
     { "vphsubbw",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_E2_L_0 */
+  /* VEX_W_XOP_09_E2_L_0 */
   {
     { "vphsubwd",	{ XM, EXxmm }, 0 },
   },
-  /* VEX_W_0FXOP_09_E3_L_0 */
+  /* VEX_W_XOP_09_E3_L_0 */
   {
     { "vphsubdq",	{ XM, EXxmm }, 0 },
   },
@@ -8143,39 +7991,17 @@ static const struct dis386 mod_table[][2] = {
   {
     /* MOD_62_32BIT */
     { "bound{S|}",	{ Gv, Ma }, 0 },
-    { EVEX_TABLE (EVEX_0F) },
-  },
-  {
-    /* MOD_8D */
-    { "leaS",		{ Gv, M }, 0 },
+    { EVEX_TABLE () },
   },
   {
     /* MOD_C4_32BIT */
     { "lesS",		{ Gv, Mp }, 0 },
-    { VEX_C4_TABLE (VEX_0F) },
+    { VEX_C4_TABLE () },
   },
   {
     /* MOD_C5_32BIT */
     { "ldsS",		{ Gv, Mp }, 0 },
-    { VEX_C5_TABLE (VEX_0F) },
-  },
-  {
-    /* MOD_C6_REG_7 */
-    { Bad_Opcode },
-    { RM_TABLE (RM_C6_REG_7) },
-  },
-  {
-    /* MOD_C7_REG_7 */
-    { Bad_Opcode },
-    { RM_TABLE (RM_C7_REG_7) },
-  },
-  {
-    /* MOD_FF_REG_3 */
-    { "{l|}call^", { indirEp }, 0 },
-  },
-  {
-    /* MOD_FF_REG_5 */
-    { "{l|}jmp^", { indirEp }, 0 },
+    { VEX_C5_TABLE () },
   },
   {
     /* MOD_0F01_REG_0 */
@@ -8207,41 +8033,15 @@ static const struct dis386 mod_table[][2] = {
     { "invlpg",		{ Mb }, 0 },
     { RM_TABLE (RM_0F01_REG_7_MOD_3) },
   },
-  {
-    /* MOD_0F02 */
-    { "larS",		{ Gv, Mw }, 0 },
-    { "larS",		{ Gv, Ev }, 0 },
-  },
-  {
-    /* MOD_0F03 */
-    { "lslS",		{ Gv, Mw }, 0 },
-    { "lslS",		{ Gv, Ev }, 0 },
-  },
   {
     /* MOD_0F12_PREFIX_0 */
-    { "movlpX",		{ XM, EXq }, 0 },
-    { "movhlps",	{ XM, EXq }, 0 },
-  },
-  {
-    /* MOD_0F12_PREFIX_2 */
-    { "movlpX",	{ XM, EXq }, 0 },
-  },
-  {
-    /* MOD_0F13 */
-    { "movlpX",		{ EXq, XM }, PREFIX_OPCODE },
+    { "%XEVmovlpYX",	{ XM, Vex, EXq }, 0 },
+    { "%XEVmovhlpY%XS",	{ XM, Vex, EXq }, 0 },
   },
   {
     /* MOD_0F16_PREFIX_0 */
-    { "movhpX",		{ XM, EXq }, 0 },
-    { "movlhps",	{ XM, EXq }, 0 },
-  },
-  {
-    /* MOD_0F16_PREFIX_2 */
-    { "movhpX",	{ XM, EXq }, 0 },
-  },
-  {
-    /* MOD_0F17 */
-    { "movhpX",		{ EXq, XM }, PREFIX_OPCODE },
+    { "%XEVmovhpYX",	{ XM, Vex, EXq }, 0 },
+    { "%XEVmovlhpY%XS",	{ XM, Vex, EXq }, 0 },
   },
   {
     /* MOD_0F18_REG_0 */
@@ -8298,42 +8098,6 @@ static const struct dis386 mod_table[][2] = {
     { "nopQ",		{ Ev }, PREFIX_IGNORED },
     { REG_TABLE (REG_0F1E_P_1_MOD_3) },
   },
-  {
-    /* MOD_0F2B_PREFIX_0 */
-    {"movntps",		{ Mx, XM }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F2B_PREFIX_1 */
-    {"movntss",		{ Md, XM }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F2B_PREFIX_2 */
-    {"movntpd",		{ Mx, XM }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F2B_PREFIX_3 */
-    {"movntsd",		{ Mq, XM }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F50 */
-    { Bad_Opcode },
-    { "movmskpX",	{ Gdq, XS }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F71 */
-    { Bad_Opcode },
-    { REG_TABLE (REG_0F71_MOD_0) },
-  },
-  {
-    /* MOD_0F72 */
-    { Bad_Opcode },
-    { REG_TABLE (REG_0F72_MOD_0) },
-  },
-  {
-    /* MOD_0F73 */
-    { Bad_Opcode },
-    { REG_TABLE (REG_0F73_MOD_0) },
-  },
   {
     /* MOD_0FAE_REG_0 */
     { "fxsave",		{ FXSAVE }, 0 },
@@ -8374,34 +8138,6 @@ static const struct dis386 mod_table[][2] = {
     { PREFIX_TABLE (PREFIX_0FAE_REG_7_MOD_0) },
     { RM_TABLE (RM_0FAE_REG_7_MOD_3) },
   },
-  {
-    /* MOD_0FB2 */
-    { "lssS",		{ Gv, Mp }, 0 },
-  },
-  {
-    /* MOD_0FB4 */
-    { "lfsS",		{ Gv, Mp }, 0 },
-  },
-  {
-    /* MOD_0FB5 */
-    { "lgsS",		{ Gv, Mp }, 0 },
-  },
-  {
-    /* MOD_0FC3 */
-    { "movntiS", { Edq, Gdq }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0FC7_REG_3 */
-    { "xrstors",	{ FXSAVE }, 0 },
-  },
-  {
-    /* MOD_0FC7_REG_4 */
-    { "xsavec",		{ FXSAVE }, 0 },
-  },
-  {
-    /* MOD_0FC7_REG_5 */
-    { "xsaves",		{ FXSAVE }, 0 },
-  },
   {
     /* MOD_0FC7_REG_6 */
     { PREFIX_TABLE (PREFIX_0FC7_REG_6_MOD_0) },
@@ -8412,299 +8148,16 @@ static const struct dis386 mod_table[][2] = {
     { "vmptrst",	{ Mq }, 0 },
     { PREFIX_TABLE (PREFIX_0FC7_REG_7_MOD_3) }
   },
-  {
-    /* MOD_0FD7 */
-    { Bad_Opcode },
-    { "pmovmskb",	{ Gdq, MS }, 0 },
-  },
-  {
-    /* MOD_0FE7_PREFIX_2 */
-    { "movntdq",	{ Mx, XM }, 0 },
-  },
-  {
-    /* MOD_0FF0_PREFIX_3 */
-    { "lddqu",		{ XM, M }, 0 },
-  },
-  {
-    /* MOD_0F382A */
-    { "movntdqa",	{ XM, Mx }, PREFIX_DATA },
-  },
   {
     /* MOD_0F38DC_PREFIX_1 */
     { "aesenc128kl",    { XM, M }, 0 },
     { "loadiwkey",      { XM, EXx }, 0 },
   },
-  {
-    /* MOD_0F38DD_PREFIX_1 */
-    { "aesdec128kl",    { XM, M }, 0 },
-  },
-  {
-    /* MOD_0F38DE_PREFIX_1 */
-    { "aesenc256kl",    { XM, M }, 0 },
-  },
-  {
-    /* MOD_0F38DF_PREFIX_1 */
-    { "aesdec256kl",    { XM, M }, 0 },
-  },
-  {
-    /* MOD_0F38F5 */
-    { "wrussK",		{ M, Gdq }, PREFIX_DATA },
-  },
-  {
-    /* MOD_0F38F6_PREFIX_0 */
-    { "wrssK",		{ M, Gdq }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F38F8_PREFIX_1 */
-    { "enqcmds",	{ Gva, M }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F38F8_PREFIX_2 */
-    { "movdir64b",	{ Gva, M }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F38F8_PREFIX_3 */
-    { "enqcmd",		{ Gva, M }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F38F9 */
-    { "movdiri",	{ Edq, Gdq }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_0F38FA_PREFIX_1 */
-    { Bad_Opcode },
-    { "encodekey128", { Gd, Ed }, 0 },
-  },
-  {
-    /* MOD_0F38FB_PREFIX_1 */
-    { Bad_Opcode },
-    { "encodekey256", { Gd, Ed }, 0 },
-  },
-  {
-    /* MOD_0F3A0F_PREFIX_1 */
-    { Bad_Opcode },
-    { REG_TABLE (REG_0F3A0F_PREFIX_1_MOD_3) },
-  },
-  {
-    /* MOD_VEX_0F12_PREFIX_0 */
-    { VEX_LEN_TABLE (VEX_LEN_0F12_P_0_M_0) },
-    { VEX_LEN_TABLE (VEX_LEN_0F12_P_0_M_1) },
-  },
-  {
-    /* MOD_VEX_0F12_PREFIX_2 */
-    { VEX_LEN_TABLE (VEX_LEN_0F12_P_2_M_0) },
-  },
-  {
-    /* MOD_VEX_0F13 */
-    { VEX_LEN_TABLE (VEX_LEN_0F13_M_0) },
-  },
-  {
-    /* MOD_VEX_0F16_PREFIX_0 */
-    { VEX_LEN_TABLE (VEX_LEN_0F16_P_0_M_0) },
-    { VEX_LEN_TABLE (VEX_LEN_0F16_P_0_M_1) },
-  },
-  {
-    /* MOD_VEX_0F16_PREFIX_2 */
-    { VEX_LEN_TABLE (VEX_LEN_0F16_P_2_M_0) },
-  },
-  {
-    /* MOD_VEX_0F17 */
-    { VEX_LEN_TABLE (VEX_LEN_0F17_M_0) },
-  },
-  {
-    /* MOD_VEX_0F2B */
-    { "%XEvmovntpX",	{ Mx, XM }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_VEX_0F41_L_1 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F41_L_1_M_1) },
-  },
-  {
-    /* MOD_VEX_0F42_L_1 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F42_L_1_M_1) },
-  },
-  {
-    /* MOD_VEX_0F44_L_0 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F44_L_0_M_1) },
-  },
-  {
-    /* MOD_VEX_0F45_L_1 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F45_L_1_M_1) },
-  },
-  {
-    /* MOD_VEX_0F46_L_1 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F46_L_1_M_1) },
-  },
-  {
-    /* MOD_VEX_0F47_L_1 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F47_L_1_M_1) },
-  },
-  {
-    /* MOD_VEX_0F4A_L_1 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F4A_L_1_M_1) },
-  },
-  {
-    /* MOD_VEX_0F4B_L_1 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F4B_L_1_M_1) },
-  },
-  {
-    /* MOD_VEX_0F50 */
-    { Bad_Opcode },
-    { "vmovmskpX",	{ Gdq, XS }, PREFIX_OPCODE },
-  },
-  {
-    /* MOD_VEX_0F71 */
-    { Bad_Opcode },
-    { REG_TABLE (REG_VEX_0F71_M_0) },
-  },
-  {
-    /* MOD_VEX_0F72 */
-    { Bad_Opcode },
-    { REG_TABLE (REG_VEX_0F72_M_0) },
-  },
-  {
-    /* MOD_VEX_0F73 */
-    { Bad_Opcode },
-    { REG_TABLE (REG_VEX_0F73_M_0) },
-  },
-  {
-    /* MOD_VEX_0F91_L_0 */
-    { VEX_W_TABLE (VEX_W_0F91_L_0_M_0) },
-  },
-  {
-    /* MOD_VEX_0F92_L_0 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F92_L_0_M_1) },
-  },
-  {
-    /* MOD_VEX_0F93_L_0 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F93_L_0_M_1) },
-  },
-  {
-    /* MOD_VEX_0F98_L_0 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F98_L_0_M_1) },
-  },
-  {
-    /* MOD_VEX_0F99_L_0 */
-    { Bad_Opcode },
-    { VEX_W_TABLE (VEX_W_0F99_L_0_M_1) },
-  },
-  {
-    /* MOD_VEX_0FAE_REG_2 */
-    { VEX_LEN_TABLE (VEX_LEN_0FAE_R_2_M_0) },
-  },
-  {
-    /* MOD_VEX_0FAE_REG_3 */
-    { VEX_LEN_TABLE (VEX_LEN_0FAE_R_3_M_0) },
-  },
-  {
-    /* MOD_VEX_0FD7 */
-    { Bad_Opcode },
-    { "vpmovmskb",	{ Gdq, XS }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0FE7 */
-    { "vmovntdq",	{ Mx, XM }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0FF0_PREFIX_3 */
-    { "vlddqu",		{ XM, M }, 0 },
-  },
-  {
-    /* MOD_VEX_0F381A */
-    { VEX_LEN_TABLE (VEX_LEN_0F381A_M_0) },
-  },
-  {
-    /* MOD_VEX_0F382A */
-    { "vmovntdqa",	{ XM, Mx }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0F382C */
-    { VEX_W_TABLE (VEX_W_0F382C_M_0) },
-  },
-  {
-    /* MOD_VEX_0F382D */
-    { VEX_W_TABLE (VEX_W_0F382D_M_0) },
-  },
-  {
-    /* MOD_VEX_0F382E */
-    { VEX_W_TABLE (VEX_W_0F382E_M_0) },
-  },
-  {
-    /* MOD_VEX_0F382F */
-    { VEX_W_TABLE (VEX_W_0F382F_M_0) },
-  },
   {
     /* MOD_VEX_0F3849_X86_64_L_0_W_0 */
     { PREFIX_TABLE (PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_0) },
     { PREFIX_TABLE (PREFIX_VEX_0F3849_X86_64_L_0_W_0_M_1) },
   },
-  {
-    /* MOD_VEX_0F384B_X86_64_L_0_W_0 */
-    { PREFIX_TABLE (PREFIX_VEX_0F384B_X86_64_L_0_W_0_M_0) },
-  },
-  {
-    /* MOD_VEX_0F385A */
-    { VEX_LEN_TABLE (VEX_LEN_0F385A_M_0) },
-  },
-  {
-    /* MOD_VEX_0F385C_X86_64 */
-    { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F385C_X86_64_M_1) },
-  },
-  {
-    /* MOD_VEX_0F385E_X86_64 */
-    { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F385E_X86_64_M_1) },
-  },
-  {
-    /* MOD_VEX_0F386C_X86_64 */
-    { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F386C_X86_64_M_1) },
-  },
-  {
-    /* MOD_VEX_0F388C */
-    { "vpmaskmov%DQ",	{ XM, Vex, Mx }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0F388E */
-    { "vpmaskmov%DQ",	{ Mx, Vex, XM }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0F3A30_L_0 */
-    { Bad_Opcode },
-    { "kshiftr%BW",	{ MaskG, MaskE, Ib }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0F3A31_L_0 */
-    { Bad_Opcode },
-    { "kshiftr%DQ",	{ MaskG, MaskE, Ib }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0F3A32_L_0 */
-    { Bad_Opcode },
-    { "kshiftl%BW",	{ MaskG, MaskE, Ib }, PREFIX_DATA },
-  },
-  {
-    /* MOD_VEX_0F3A33_L_0 */
-    { Bad_Opcode },
-    { "kshiftl%DQ",	{ MaskG, MaskE, Ib }, PREFIX_DATA },
-  },
-  {
-    /* MOD_XOP_09_12 */
-    { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0FXOP_09_12_M_1) },
-  },
 
 #include "i386-dis-evex-mod.h"
 };
@@ -8727,6 +8180,7 @@ static const struct dis386 rm_table[][8] = {
     { "vmxoff",		{ Skip_MODRM }, 0 },
     { "pconfig",	{ Skip_MODRM }, 0 },
     { PREFIX_TABLE (PREFIX_0F01_REG_0_MOD_3_RM_6) },
+    { PREFIX_TABLE (PREFIX_0F01_REG_0_MOD_3_RM_7) },
   },
   {
     /* RM_0F01_REG_1 */
@@ -8803,7 +8257,7 @@ static const struct dis386 rm_table[][8] = {
     { "sfence",		{ Skip_MODRM }, 0 },
   },
   {
-    /* RM_0F3A0F_P_1_MOD_3_REG_0 */
+    /* RM_0F3A0F_P_1_R_0 */
     { "hreset",		{ Skip_MODRM, Ib }, 0 },
   },
   {
@@ -9281,7 +8735,7 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	  ins->vex.prefix = REPNE_PREFIX_OPCODE;
 	  break;
 	}
-      ins->need_vex = true;
+      ins->need_vex = 3;
       ins->codep++;
       vindex = *ins->codep++;
       dp = &xop_table[vex_table_index][vindex];
@@ -9346,7 +8800,7 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	  ins->vex.prefix = REPNE_PREFIX_OPCODE;
 	  break;
 	}
-      ins->need_vex = true;
+      ins->need_vex = 3;
       ins->codep++;
       vindex = *ins->codep++;
       dp = &vex_table[vex_table_index][vindex];
@@ -9381,10 +8835,10 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	  ins->vex.prefix = REPNE_PREFIX_OPCODE;
 	  break;
 	}
-      ins->need_vex = true;
+      ins->need_vex = 2;
       ins->codep++;
       vindex = *ins->codep++;
-      dp = &vex_table[dp->op[1].bytemode][vindex];
+      dp = &vex_table[VEX_0F][vindex];
       ins->end_codep = ins->codep;
       /* There is no MODRM byte for VEX 77.  */
       if (vindex != 0x77 && !fetch_modrm (ins))
@@ -9473,7 +8927,7 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
 	  ins->vex.r = true;
 	}
 
-      ins->need_vex = true;
+      ins->need_vex = 4;
       ins->codep++;
       vindex = *ins->codep++;
       dp = &evex_table[vex_table_index][vindex];
@@ -9905,9 +9359,21 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
 		      oappend (&ins, "{");
 		      oappend_register (&ins, reg_name);
 		      oappend (&ins, "}");
+
+		      if (ins.vex.zeroing)
+			oappend (&ins, "{z}");
 		    }
-		  if (ins.vex.zeroing)
-		    oappend (&ins, "{z}");
+		  else if (ins.vex.zeroing)
+		    {
+		      oappend (&ins, "{bad}");
+		      continue;
+		    }
+
+		  /* Instructions with a mask register destination allow for
+		     zeroing-masking only (if any masking at all), which is
+		     _not_ expressed by EVEX.z.  */
+		  if (ins.vex.zeroing && dp->op[0].bytemode == mask_mode)
+		    ins.illegal_masking = true;
 
 		  /* S/G insns require a mask and don't allow
 		     zeroing-masking.  */
@@ -9915,6 +9381,9 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
 		       || dp->op[0].bytemode == vex_vsib_q_w_dq_mode)
 		      && (ins.vex.mask_register_specifier == 0
 			  || ins.vex.zeroing))
+		    ins.illegal_masking = true;
+
+		  if (ins.illegal_masking)
 		    oappend (&ins, "/(bad)");
 		}
 	    }
@@ -9985,14 +9454,6 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
       goto out;
     }
 
-  /* If EVEX.z is set, there must be an actual mask register in use.  */
-  if (ins.vex.zeroing && ins.vex.mask_register_specifier == 0)
-    {
-      i386_dis_printf (info, dis_style_text, "(bad)");
-      ret = ins.end_codep - priv.the_buffer;
-      goto out;
-    }
-
   switch (dp->prefix_requirement)
     {
     case PREFIX_DATA:
@@ -10539,16 +10000,6 @@ swap_operand (instr_info *ins)
   ins->mnemonicendp += 2;
 }
 
-static bool
-OP_Skip_MODRM (instr_info *ins, int bytemode ATTRIBUTE_UNUSED,
-	       int sizeflag ATTRIBUTE_UNUSED)
-{
-  /* Skip mod/rm byte.  */
-  MODRM_CHECK;
-  ins->codep++;
-  return true;
-}
-
 static bool
 dofloat (instr_info *ins, int sizeflag)
 {
@@ -11039,7 +10490,10 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
 	  break;
 	case 'V':
 	  if (l == 0)
-	    abort ();
+	    {
+	      if (ins->need_vex)
+		*ins->obufp++ = 'v';
+	    }
 	  else if (l == 1)
 	    {
 	      switch (last[0])
@@ -11116,10 +10570,15 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
 	    *ins->obufp++ = 's';
 	  break;
 	case 'Y':
-	  if (l == 1 && last[0] == 'X')
+	  if (l == 0)
+	    {
+	      if (ins->vex.mask_register_specifier)
+		ins->illegal_masking = true;
+	    }
+	  else if (l == 1 && last[0] == 'X')
 	    {
 	      if (!ins->need_vex)
-		abort ();
+		break;
 	      if (ins->intel_syntax
 		  || ((ins->modrm.mod == 3 || ins->vex.b)
 		      && !(sizeflag & SUFFIX_ALWAYS)))
@@ -11296,14 +10755,6 @@ append_seg (instr_info *ins)
   oappend_char (ins, ':');
 }
 
-static bool
-OP_indirE (instr_info *ins, int bytemode, int sizeflag)
-{
-  if (!ins->intel_syntax)
-    oappend (ins, "*");
-  return OP_E (ins, bytemode, sizeflag);
-}
-
 static void
 print_operand_value (instr_info *ins, bfd_vma disp,
 		     enum disassembler_style style)
@@ -11514,11 +10965,9 @@ intel_operand_size (instr_info *ins, int bytemode, int sizeflag)
     case xmmq_mode:
     case evex_half_bcst_xmmqh_mode:
     case evex_half_bcst_xmmq_mode:
-      if (!ins->need_vex)
-	abort ();
-
       switch (ins->vex.length)
 	{
+	case 0:
 	case 128:
 	  oappend (ins, "QWORD PTR ");
 	  break;
@@ -11631,6 +11080,11 @@ print_register (instr_info *ins, unsigned int reg, unsigned int rexmask,
 {
   const char (*names)[8];
 
+  /* Masking is invalid for insns with GPR destination. Set the flag uniformly,
+     as the consumer will inspect it only for the destination operand.  */
+  if (bytemode != mask_mode && ins->vex.mask_register_specifier)
+    ins->illegal_masking = true;
+
   USED_REX (rexmask);
   if (ins->rex & rexmask)
     reg += 8;
@@ -11831,11 +11285,24 @@ BadOp (instr_info *ins)
   /* Throw away prefixes and 1st. opcode byte.  */
   struct dis_private *priv = ins->info->private_data;
 
-  ins->codep = priv->the_buffer + ins->nr_prefixes + 1;
+  ins->codep = priv->the_buffer + ins->nr_prefixes + ins->need_vex + 1;
   ins->obufp = stpcpy (ins->obufp, "(bad)");
   return true;
 }
 
+static bool
+OP_Skip_MODRM (instr_info *ins, int bytemode ATTRIBUTE_UNUSED,
+	       int sizeflag ATTRIBUTE_UNUSED)
+{
+  if (ins->modrm.mod != 3)
+    return BadOp (ins);
+
+  /* Skip mod/rm byte.  */
+  MODRM_CHECK;
+  ins->codep++;
+  return true;
+}
+
 static bool
 OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
 {
@@ -11845,6 +11312,13 @@ OP_E_memory (instr_info *ins, int bytemode, int sizeflag)
 
   if (ins->vex.evex)
     {
+
+      /* Zeroing-masking is invalid for memory destinations. Set the flag
+	 uniformly, as the consumer will inspect it only for the destination
+	 operand.  */
+      if (ins->vex.zeroing)
+	ins->illegal_masking = true;
+
       switch (bytemode)
 	{
 	case dw_mode:
@@ -12358,9 +11832,26 @@ OP_E (instr_info *ins, int bytemode, int sizeflag)
       return true;
     }
 
+  /* Masking is invalid for insns with GPR-like memory destination. Set the
+     flag uniformly, as the consumer will inspect it only for the destination
+     operand.  */
+  if (ins->vex.mask_register_specifier)
+    ins->illegal_masking = true;
+
   return OP_E_memory (ins, bytemode, sizeflag);
 }
 
+static bool
+OP_indirE (instr_info *ins, int bytemode, int sizeflag)
+{
+  if (ins->modrm.mod == 3 && bytemode == f_mode)
+    /* bad lcall/ljmp */
+    return BadOp (ins);
+  if (!ins->intel_syntax)
+    oappend (ins, "*");
+  return OP_E (ins, bytemode, sizeflag);
+}
+
 static bool
 OP_G (instr_info *ins, int bytemode, int sizeflag)
 {
@@ -12921,6 +12412,7 @@ print_vector_reg (instr_info *ins, unsigned int reg, int bytemode)
     {
       switch (ins->vex.length)
 	{
+	case 0:
 	case 128:
 	case 256:
 	  names = att_names_xmm;
@@ -13122,28 +12614,43 @@ OP_EX (instr_info *ins, int bytemode, int sizeflag)
 }
 
 static bool
-OP_MS (instr_info *ins, int bytemode, int sizeflag)
+OP_R (instr_info *ins, int bytemode, int sizeflag)
 {
-  if (ins->modrm.mod == 3)
-    return OP_EM (ins, bytemode, sizeflag);
-  return BadOp (ins);
-}
+  if (ins->modrm.mod != 3)
+    return BadOp (ins);
 
-static bool
-OP_XS (instr_info *ins, int bytemode, int sizeflag)
-{
-  if (ins->modrm.mod == 3)
-    return OP_EX (ins, bytemode, sizeflag);
-  return BadOp (ins);
+  switch (bytemode)
+    {
+    case d_mode:
+    case dq_mode:
+    case mask_mode:
+      return OP_E (ins, bytemode, sizeflag);
+    case q_mode:
+      return OP_EM (ins, x_mode, sizeflag);
+    case xmm_mode:
+      if (ins->vex.length <= 128)
+	break;
+      return BadOp (ins);
+    }
+
+  return OP_EX (ins, bytemode, sizeflag);
 }
 
 static bool
 OP_M (instr_info *ins, int bytemode, int sizeflag)
 {
+  /* Skip mod/rm byte.  */
+  MODRM_CHECK;
+  ins->codep++;
+
   if (ins->modrm.mod == 3)
     /* bad bound,lea,lds,les,lfs,lgs,lss,cmpxchg8b,vmptrst modrm */
     return BadOp (ins);
-  return OP_E (ins, bytemode, sizeflag);
+
+  if (bytemode == x_mode)
+    ins->vex.no_broadcast = true;
+
+  return OP_E_memory (ins, bytemode, sizeflag);
 }
 
 static bool
@@ -13586,7 +13093,7 @@ OP_VEX (instr_info *ins, int bytemode, int sizeflag ATTRIBUTE_UNUSED)
   const char (*names)[8];
 
   if (!ins->need_vex)
-    abort ();
+    return true;
 
   reg = ins->vex.register_specifier;
   ins->vex.register_specifier = 0;
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 1db555d8615..91c22c9e873 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -162,6 +162,8 @@ static const dependency isa_dependencies[] =
     "AVX2" },
   { "AVX_VNNI_INT8",
     "AVX2" },
+  { "AVX_VNNI_INT16",
+    "AVX2" },
   { "AVX_NE_CONVERT",
     "AVX2" },
   { "FRED",
@@ -212,6 +214,12 @@ static const dependency isa_dependencies[] =
     "XSAVE" },
   { "SHA",
     "SSE2" },
+  { "SHA512",
+    "AVX2" },
+  { "SM3",
+    "AVX" },
+  { "SM4",
+    "AVX2" },
   { "XSAVES",
     "XSAVEC" },
   { "XSAVEC",
@@ -336,6 +344,9 @@ static bitfield cpu_flags[] =
   BITFIELD (PRFCHW),
   BITFIELD (SMAP),
   BITFIELD (SHA),
+  BITFIELD (SHA512),
+  BITFIELD (SM3),
+  BITFIELD (SM4),
   BITFIELD (ClflushOpt),
   BITFIELD (XSAVES),
   BITFIELD (XSAVEC),
@@ -359,6 +370,7 @@ static bitfield cpu_flags[] =
   BITFIELD (PREFETCHI),
   BITFIELD (AVX_IFMA),
   BITFIELD (AVX_VNNI_INT8),
+  BITFIELD (AVX_VNNI_INT16),
   BITFIELD (CMPCCXADD),
   BITFIELD (WRMSRNS),
   BITFIELD (MSRLIST),
@@ -378,6 +390,7 @@ static bitfield cpu_flags[] =
   BITFIELD (VPCLMULQDQ),
   BITFIELD (WBNOINVD),
   BITFIELD (PCONFIG),
+  BITFIELD (PBNDKB),
   BITFIELD (WAITPKG),
   BITFIELD (UINTR),
   BITFIELD (CLDEMOTE),
diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h
index 4d8db4c0810..b0262736b47 100644
--- a/opcodes/i386-init.h
+++ b/opcodes/i386-init.h
@@ -25,7 +25,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_286_FLAGS \
   { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -34,7 +35,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_386_FLAGS \
   { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -43,7 +45,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_486_FLAGS \
   { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -52,7 +55,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_586_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
@@ -61,7 +65,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_686_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, \
@@ -70,7 +75,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CMOV_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -79,7 +85,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FXSR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -88,7 +95,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLFLUSH_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -97,7 +105,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_NOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -106,7 +115,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SYSCALL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -115,7 +125,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_8087_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -124,7 +135,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_287_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
@@ -133,7 +145,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_387_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
@@ -142,7 +155,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_687_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, \
@@ -151,7 +165,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FISTTP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, \
@@ -160,7 +175,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
@@ -169,7 +185,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
@@ -178,7 +195,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -187,7 +205,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_3DNOW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, \
@@ -196,7 +215,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_3DNOWA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, \
@@ -205,7 +225,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -214,7 +235,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PADLOCK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -223,7 +245,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SVME_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -232,7 +255,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -241,7 +265,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -250,7 +275,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -259,7 +285,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE4A_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -268,7 +295,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LZCNT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -277,7 +305,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_POPCNT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -286,7 +315,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MONITOR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -295,7 +325,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE4_1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -304,7 +335,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SSE4_2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -313,7 +345,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -322,7 +355,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -331,7 +365,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512F_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -340,7 +375,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512CD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -349,7 +385,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512ER_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -358,7 +395,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512PF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -367,7 +405,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512VL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -376,7 +415,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512DQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -385,7 +425,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512BW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -394,7 +435,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_IAMCU_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -403,7 +445,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XSAVE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -412,7 +455,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XSAVEOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -421,7 +465,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -430,7 +475,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PCLMUL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -439,7 +485,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -448,7 +495,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FMA4_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -457,7 +505,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_XOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -466,7 +515,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LWP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -475,7 +525,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -484,7 +535,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TBM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -493,7 +545,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MOVBE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -502,7 +555,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CX16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -511,7 +565,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LAHF_SAHF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -520,7 +575,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_EPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -529,7 +585,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDTSCP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -538,7 +595,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FSGSBASE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -547,7 +605,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDRND_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -556,7 +615,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_F16C_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -565,7 +625,8 @@
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BMI2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -574,7 +635,8 @@
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_HLE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -583,7 +645,8 @@
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RTM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -592,7 +655,8 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_INVPCID_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -601,7 +665,8 @@
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VMFUNC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -610,7 +675,8 @@
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MPX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -619,7 +685,8 @@
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -628,7 +695,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDSEED_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -637,7 +705,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ADX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -646,7 +715,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PRFCHW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -655,7 +725,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SMAP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -664,7 +735,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SHA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -673,250 +745,318 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_CLFLUSHOPT_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+#define CPU_SHA512_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_XSAVES_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_SM3_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_XSAVEC_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+#define CPU_SM4_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_PREFETCHWT1_FLAGS \
+#define CPU_CLFLUSHOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_XSAVES_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_XSAVEC_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_PREFETCHWT1_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SE1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLWB_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_AVX512IFMA_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
-      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_AVX512VBMI_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
-      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_AVX512_4FMAPS_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
-      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_AVX512_4VNNIW_FLAGS \
+#define CPU_AVX512IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_AVX512_VPOPCNTDQ_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
-      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0 } }
 
-#define CPU_AVX512_VBMI2_FLAGS \
+#define CPU_AVX512VBMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_AVX512_4FMAPS_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_AVX512_VNNI_FLAGS \
+#define CPU_AVX512_4VNNIW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_AVX512_BITALG_FLAGS \
+#define CPU_AVX512_VPOPCNTDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_AVX512_BF16_FLAGS \
+#define CPU_AVX512_VBMI2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_AVX512_VP2INTERSECT_FLAGS \
+#define CPU_AVX512_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_AVX512_BITALG_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_AVX512_BF16_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_AVX512_VP2INTERSECT_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TDX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX512_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PREFETCHI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AVX_VNNI_INT8_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_CMPCCXADD_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_WRMSRNS_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_MSRLIST_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_AVX_NE_CONVERT_FLAGS \
+#define CPU_AVX_VNNI_INT16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_RAO_INT_FLAGS \
+#define CPU_CMPCCXADD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_WRMSRNS_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_MSRLIST_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_AVX_NE_CONVERT_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_RAO_INT_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_FRED_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -924,8 +1064,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_LKGS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -933,8 +1074,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MWAITX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -942,8 +1084,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLZERO_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -951,8 +1094,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_OSPKE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -960,8 +1104,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDPID_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -969,8 +1114,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PTWRITE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -978,8 +1124,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_IBT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -987,8 +1134,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SHSTK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -996,8 +1144,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_INT8_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1005,8 +1154,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_BF16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1014,8 +1164,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1023,8 +1174,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_COMPLEX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1032,8 +1184,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMX_TILE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1041,8 +1194,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_GFNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -1050,8 +1204,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VAES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -1059,8 +1214,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_VPCLMULQDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -1068,8 +1224,9 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_WBNOINVD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1077,8 +1234,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PCONFIG_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1086,8 +1244,19 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_PBNDKB_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_WAITPKG_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1095,8 +1264,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_UINTR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1105,7 +1275,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CLDEMOTE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1114,7 +1285,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MOVDIRI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1123,7 +1295,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MOVDIR64B_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1132,7 +1305,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ENQCMD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1141,7 +1315,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SERIALIZE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1150,7 +1325,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_RDPRU_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1159,7 +1335,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_MCOMMIT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1168,7 +1345,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SEV_ES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1177,7 +1355,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TSXLDTRK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1186,7 +1365,8 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_KL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -1195,7 +1375,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_WIDEKL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -1204,7 +1385,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_HRESET_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1213,7 +1395,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_INVLPGB_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1222,7 +1405,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TLBSYNC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1231,7 +1415,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_SNP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1240,7 +1425,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      1, 0, 0, 0, 0 } }
 
 #define CPU_RMPQUERY_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1249,7 +1435,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      1, 1, 0, 0, 0 } }
 
 #define CPU_UNKNOWN_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
@@ -1258,7 +1445,8 @@
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 } }
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+      1, 1, 0, 0, 0 } }
 
 #define CPU_GENERIC32_FLAGS \
   { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1267,7 +1455,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_GENERIC64_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, \
@@ -1276,7 +1465,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_NONE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1285,7 +1475,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_PENTIUMPRO_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, \
@@ -1294,7 +1485,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_P2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, \
@@ -1303,7 +1495,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_P3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, \
@@ -1312,7 +1505,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_P4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, \
@@ -1321,7 +1515,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_NOCONA_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1330,7 +1525,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CORE_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1339,7 +1535,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_CORE2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1348,7 +1545,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_COREI7_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1357,7 +1555,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_K6_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, \
@@ -1366,7 +1565,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_K6_2_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, \
@@ -1375,7 +1575,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ATHLON_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, \
@@ -1384,7 +1585,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_K8_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, \
@@ -1393,7 +1595,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_AMDFAM10_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, \
@@ -1402,7 +1605,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1411,7 +1615,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1420,7 +1625,8 @@
       1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1429,7 +1635,8 @@
       1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BDVER4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1437,44 +1644,49 @@
       0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, \
       1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
       0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, \
-      1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
+      1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
       0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, \
-      1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
       0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, \
-      1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
-      0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 } }
+      1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, \
+      1, 0, 0, 0, 0 } }
 
 #define CPU_ZNVER4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
       0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, \
-      1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, \
-      1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, \
-      0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0 } }
+      1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, \
+      0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, \
+      1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, \
+      1, 1, 0, 0, 0 } }
 
 #define CPU_BTVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1483,7 +1695,8 @@
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_BTVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, \
@@ -1492,7 +1705,8 @@
       1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ABM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1501,7 +1715,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_TSX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1510,7 +1725,8 @@
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FXSR_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -1518,8 +1734,9 @@
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_8087_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, \
@@ -1528,7 +1745,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_287_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, \
@@ -1537,7 +1755,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_387_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, \
@@ -1546,7 +1765,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_687_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, \
@@ -1555,7 +1775,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FISTTP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
@@ -1564,7 +1785,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_MMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, \
@@ -1573,7 +1795,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
@@ -1581,8 +1804,9 @@
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
@@ -1590,8 +1814,9 @@
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_3DNOW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
@@ -1600,7 +1825,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_3DNOWA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1609,7 +1835,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1618,7 +1845,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SVME_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1627,7 +1855,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      1, 1, 0, 0, 0 } }
 
 #define CPU_ANY_VMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1636,7 +1865,8 @@
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1645,7 +1875,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE4A_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1654,7 +1885,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE4_1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1663,7 +1895,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SSE4_2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1672,34 +1905,38 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, \
+      0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, \
       1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, \
+      0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512F_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, \
       1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512CD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1708,7 +1945,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512ER_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1717,7 +1955,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512PF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1726,7 +1965,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512VL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1735,7 +1975,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512DQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1744,16 +1985,18 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512BW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_IAMCU_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1762,16 +2005,18 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XSAVE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, \
+      0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XSAVEOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1780,7 +2025,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1789,7 +2035,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_PCLMUL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1798,7 +2045,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1807,7 +2055,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FMA4_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1816,7 +2065,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1825,7 +2075,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_LWP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1834,7 +2085,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_EPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1843,7 +2095,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_F16C_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1852,7 +2105,8 @@
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_RTM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1861,7 +2115,8 @@
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_VMFUNC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1870,7 +2125,8 @@
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_MPX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1879,7 +2135,8 @@
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SHA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1888,160 +2145,218 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_XSAVES_FLAGS \
+#define CPU_ANY_SHA512_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_ANY_SM3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_ANY_SM4_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_ANY_XSAVES_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_XSAVEC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AVX512IFMA_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_ANY_AVX512VBMI_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_ANY_AVX512_4FMAPS_FLAGS \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-
-#define CPU_ANY_AVX512_4VNNIW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX512_VPOPCNTDQ_FLAGS \
+#define CPU_ANY_AVX512VBMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX512_VBMI2_FLAGS \
+#define CPU_ANY_AVX512_4FMAPS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX512_VNNI_FLAGS \
+#define CPU_ANY_AVX512_4VNNIW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX512_BITALG_FLAGS \
+#define CPU_ANY_AVX512_VPOPCNTDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX512_BF16_FLAGS \
+#define CPU_ANY_AVX512_VBMI2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX512_VP2INTERSECT_FLAGS \
+#define CPU_ANY_AVX512_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX_VNNI_FLAGS \
+#define CPU_ANY_AVX512_BITALG_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_ANY_AVX512_BF16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX512_FP16_FLAGS \
+#define CPU_ANY_AVX512_VP2INTERSECT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX_IFMA_FLAGS \
+#define CPU_ANY_AVX_VNNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX_VNNI_INT8_FLAGS \
+#define CPU_ANY_AVX512_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
-#define CPU_ANY_AVX_NE_CONVERT_FLAGS \
+#define CPU_ANY_AVX_IFMA_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_ANY_AVX_VNNI_INT8_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_ANY_AVX_VNNI_INT16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
+
+#define CPU_ANY_AVX_NE_CONVERT_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_FRED_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2049,8 +2364,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_LKGS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2058,8 +2374,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_OSPKE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2067,8 +2384,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_INT8_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2076,8 +2394,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_BF16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2085,8 +2404,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_FP16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2094,8 +2414,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_COMPLEX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2103,8 +2424,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_AMX_TILE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2112,8 +2434,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_GFNI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2121,8 +2444,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_VAES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2130,8 +2454,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_VPCLMULQDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2139,8 +2464,9 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SEV_ES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2149,7 +2475,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      1, 1, 0, 0, 0 } }
 
 #define CPU_ANY_TSXLDTRK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2158,7 +2485,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_KL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2167,7 +2495,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_WIDEKL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2176,7 +2505,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0 } }
 
 #define CPU_ANY_SNP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2185,7 +2515,8 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      1, 1, 0, 0, 0 } }
 
 #define CPU_ANY_RMPQUERY_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2194,5 +2525,6 @@
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 1, 0, 0, 0 } }
 
diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h
index 96bf2d2565d..5d0b4d10469 100644
--- a/opcodes/i386-mnem.h
+++ b/opcodes/i386-mnem.h
@@ -27,2321 +27,2336 @@ extern const char i386_mnemonics[];
 #define MN_fld1 0x22
 #define MN_ud1 0x27
 #define MN_sha1msg1 0x2b
-#define MN_sha256msg1 0x34
-#define MN_fprem1 0x3f
-#define MN_f2xm1 0x46
-#define MN_fyl2xp1 0x4c
-#define MN_tileloaddt1 0x54
-#define MN_prefetcht1 0x60
-#define MN_prefetchit1 0x6b
-#define MN_pfrcpit1 0x77
-#define MN_pfrsqit1 0x80
-#define MN_int1 0x89
-#define MN_prefetchwt1 0x8e
-#define MN_vmovdqa32 0x9a
-#define MN_data32 0xa4
-#define MN_crc32 0xab
-#define MN_endbr32 0xb1
-#define MN_addr32 0xb9
-#define MN_vmovdqu32 0xc0
-#define MN_ud2 0xca
-#define MN_fldlg2 0xce
-#define MN_sha1msg2 0xd5
-#define MN_sha256msg2 0xde
-#define MN_fldln2 0xe9
-#define MN_sha256rnds2 0xf0
-#define MN_prefetcht2 0xfc
-#define MN_pfrcpit2 0x107
-#define MN_vbroadcastf32x2 0x110
-#define MN_vbroadcasti32x2 0x120
-#define MN_vshuff64x2 0x130
-#define MN_vextractf64x2 0x13b
-#define MN_vinsertf64x2 0x149
-#define MN_vbroadcastf64x2 0x156
-#define MN_vshufi64x2 0x166
-#define MN_vextracti64x2 0x171
-#define MN_vinserti64x2 0x17f
-#define MN_vbroadcasti64x2 0x18c
-#define MN_int3 0x19c
-#define MN_vmovdqa64 0x1a1
-#define MN_xsavec64 0x1ab
+#define MN_vsha512msg1 0x34
+#define MN_vsm3msg1 0x40
+#define MN_sha256msg1 0x49
+#define MN_fprem1 0x54
+#define MN_f2xm1 0x5b
+#define MN_fyl2xp1 0x61
+#define MN_tileloaddt1 0x69
+#define MN_prefetcht1 0x75
+#define MN_prefetchit1 0x80
+#define MN_pfrcpit1 0x8c
+#define MN_pfrsqit1 0x95
+#define MN_int1 0x9e
+#define MN_prefetchwt1 0xa3
+#define MN_vmovdqa32 0xaf
+#define MN_data32 0xb9
+#define MN_crc32 0xc0
+#define MN_endbr32 0xc6
+#define MN_addr32 0xce
+#define MN_vmovdqu32 0xd5
+#define MN_ud2 0xdf
+#define MN_fldlg2 0xe3
+#define MN_sha1msg2 0xea
+#define MN_vsha512msg2 0xf3
+#define MN_vsm3msg2 0xff
+#define MN_sha256msg2 0x108
+#define MN_fldln2 0x113
+#define MN_vsha512rnds2 0x11a
+#define MN_vsm3rnds2 0x127
+#define MN_sha256rnds2 0x131
+#define MN_prefetcht2 0x13d
+#define MN_pfrcpit2 0x148
+#define MN_vbroadcastf32x2 0x151
+#define MN_vbroadcasti32x2 0x161
+#define MN_vshuff64x2 0x171
+#define MN_vextractf64x2 0x17c
+#define MN_vinsertf64x2 0x18a
+#define MN_vbroadcastf64x2 0x197
+#define MN_vshufi64x2 0x1a7
+#define MN_vextracti64x2 0x1b2
+#define MN_vinserti64x2 0x1c0
+#define MN_vbroadcasti64x2 0x1cd
+#define MN_int3 0x1dd
+#define MN_vmovdqa64 0x1e2
+#define MN_xsavec64 0x1ec
 #define MN_xsave64 (MN_fxsave64 + 1)
-#define MN_fxsave64 0x1b4
-#define MN_endbr64 0x1bd
+#define MN_fxsave64 0x1f5
+#define MN_endbr64 0x1fe
 #define MN_xrstor64 (MN_fxrstor64 + 1)
-#define MN_fxrstor64 0x1c5
-#define MN_xsaves64 0x1cf
-#define MN_xrstors64 0x1d8
-#define MN_xsaveopt64 0x1e2
-#define MN_vmovdqu64 0x1ed
-#define MN_rex64 0x1f7
-#define MN_sha1rnds4 0x1fd
-#define MN_vshuff32x4 0x207
-#define MN_vextractf32x4 0x212
-#define MN_vinsertf32x4 0x220
-#define MN_vbroadcastf32x4 0x22d
-#define MN_vshufi32x4 0x23d
-#define MN_vextracti32x4 0x248
-#define MN_vinserti32x4 0x256
-#define MN_vbroadcasti32x4 0x263
-#define MN_vextractf64x4 0x273
-#define MN_vinsertf64x4 0x281
-#define MN_vbroadcastf64x4 0x28e
-#define MN_vextracti64x4 0x29e
-#define MN_vinserti64x4 0x2ac
-#define MN_vbroadcasti64x4 0x2b9
-#define MN_data16 0x2c9
-#define MN_vcvtne2ps2bf16 0x2d0
-#define MN_vcvtneps2bf16 0x2df
-#define MN_addr16 0x2ed
-#define MN_vmovdqu16 0x2f4
-#define MN_xsha256 0x2fe
-#define MN_encodekey256 0x306
-#define MN_vperm2f128 0x313
-#define MN_vextractf128 0x31e
-#define MN_vinsertf128 0x32b
-#define MN_vbroadcastf128 0x337
-#define MN_vperm2i128 0x346
-#define MN_vextracti128 0x351
-#define MN_vinserti128 0x35e
-#define MN_vbroadcasti128 0x36a
-#define MN_encodekey128 0x379
-#define MN_vmovdqu8 0x386
-#define MN_vextractf32x8 0x38f
-#define MN_vinsertf32x8 0x39d
-#define MN_vbroadcastf32x8 0x3aa
-#define MN_vextracti32x8 0x3ba
-#define MN_vinserti32x8 0x3c8
-#define MN_vbroadcasti32x8 0x3d5
-#define MN_ud2a 0x3e5
-#define MN_aaa 0x3ea
-#define MN_daa 0x3ee
-#define MN_ssca 0x3f2
-#define MN_lea 0x3f7
-#define MN_invlpga 0x3fb
-#define MN_pusha 0x403
-#define MN_ja 0x409
-#define MN_jna 0x40c
-#define MN_setna 0x410
+#define MN_fxrstor64 0x206
+#define MN_xsaves64 0x210
+#define MN_xrstors64 0x219
+#define MN_xsaveopt64 0x223
+#define MN_vmovdqu64 0x22e
+#define MN_rex64 0x238
+#define MN_sha1rnds4 0x23e
+#define MN_vsm4rnds4 0x248
+#define MN_vshuff32x4 0x252
+#define MN_vextractf32x4 0x25d
+#define MN_vinsertf32x4 0x26b
+#define MN_vbroadcastf32x4 0x278
+#define MN_vshufi32x4 0x288
+#define MN_vextracti32x4 0x293
+#define MN_vinserti32x4 0x2a1
+#define MN_vbroadcasti32x4 0x2ae
+#define MN_vextractf64x4 0x2be
+#define MN_vinsertf64x4 0x2cc
+#define MN_vbroadcastf64x4 0x2d9
+#define MN_vextracti64x4 0x2e9
+#define MN_vinserti64x4 0x2f7
+#define MN_vbroadcasti64x4 0x304
+#define MN_vsm4key4 0x314
+#define MN_data16 0x31d
+#define MN_vcvtne2ps2bf16 0x324
+#define MN_vcvtneps2bf16 0x333
+#define MN_addr16 0x341
+#define MN_vmovdqu16 0x348
+#define MN_xsha256 0x352
+#define MN_encodekey256 0x35a
+#define MN_vperm2f128 0x367
+#define MN_vextractf128 0x372
+#define MN_vinsertf128 0x37f
+#define MN_vbroadcastf128 0x38b
+#define MN_vperm2i128 0x39a
+#define MN_vextracti128 0x3a5
+#define MN_vinserti128 0x3b2
+#define MN_vbroadcasti128 0x3be
+#define MN_encodekey128 0x3cd
+#define MN_vmovdqu8 0x3da
+#define MN_vextractf32x8 0x3e3
+#define MN_vinsertf32x8 0x3f1
+#define MN_vbroadcastf32x8 0x3fe
+#define MN_vextracti32x8 0x40e
+#define MN_vinserti32x8 0x41c
+#define MN_vbroadcasti32x8 0x429
+#define MN_ud2a 0x439
+#define MN_aaa 0x43e
+#define MN_daa 0x442
+#define MN_ssca 0x446
+#define MN_lea 0x44b
+#define MN_invlpga 0x44f
+#define MN_pusha 0x457
+#define MN_ja 0x45d
+#define MN_jna 0x460
+#define MN_setna 0x464
 #define MN_cmovna (MN_fcmovna + 1)
-#define MN_fcmovna 0x416
-#define MN_popa 0x41e
+#define MN_fcmovna 0x46a
+#define MN_popa 0x472
 #define MN_movntdqa (MN_vmovntdqa + 1)
-#define MN_vmovntdqa 0x423
+#define MN_vmovntdqa 0x477
 #define MN_movdqa (MN_vmovdqa + 1)
-#define MN_vmovdqa 0x42d
-#define MN_seta 0x435
-#define MN_prefetchnta 0x43a
+#define MN_vmovdqa 0x481
+#define MN_seta 0x489
+#define MN_prefetchnta 0x48e
 #define MN_cmova (MN_fcmova + 1)
-#define MN_fcmova 0x446
-#define MN_rex_b 0x44d
-#define MN_ud2b 0x453
-#define MN_vpermi2b 0x458
-#define MN_vpmovm2b 0x461
-#define MN_vpermt2b 0x46a
-#define MN_movdir64b 0x473
-#define MN_cmpxchg16b 0x47d
-#define MN_cmpxchg8b 0x488
-#define MN_vpshab 0x492
-#define MN_sbb 0x499
+#define MN_fcmova 0x49a
+#define MN_rex_b 0x4a1
+#define MN_ud2b 0x4a7
+#define MN_vpermi2b 0x4ac
+#define MN_vpmovm2b 0x4b5
+#define MN_vpermt2b 0x4be
+#define MN_movdir64b 0x4c7
+#define MN_cmpxchg16b 0x4d1
+#define MN_cmpxchg8b 0x4dc
+#define MN_vpshab 0x4e6
+#define MN_sbb 0x4ed
 #define MN_psubb (MN_vpsubb + 1)
-#define MN_vpsubb 0x49d
-#define MN_xcrypt_ecb 0x4a4
-#define MN_xcryptecb 0x4af
-#define MN_llwpcb 0x4b9
-#define MN_slwpcb 0x4c0
-#define MN_kaddb 0x4c7
+#define MN_vpsubb 0x4f1
+#define MN_xcrypt_ecb 0x4f8
+#define MN_xcryptecb 0x503
+#define MN_llwpcb 0x50d
+#define MN_slwpcb 0x514
+#define MN_kaddb 0x51b
 #define MN_paddb (MN_vpaddb + 1)
-#define MN_vpaddb 0x4cd
-#define MN_kandb 0x4d4
-#define MN_vpexpandb 0x4da
-#define MN_vpmovusdb 0x4e4
-#define MN_vpmovsdb 0x4ee
-#define MN_vpmovdb 0x4f7
-#define MN_vpcomgeb 0x4ff
-#define MN_vpcomleb 0x508
-#define MN_vpcmpnleb 0x511
-#define MN_vpcmpleb 0x51b
-#define MN_vpcomfalseb 0x524
-#define MN_vpcomtrueb 0x530
-#define MN_xcrypt_cfb 0x53b
-#define MN_xcryptcfb 0x546
-#define MN_xcrypt_ofb 0x550
-#define MN_xcryptofb 0x55b
+#define MN_vpaddb 0x521
+#define MN_kandb 0x528
+#define MN_vpexpandb 0x52e
+#define MN_vpmovusdb 0x538
+#define MN_vpmovsdb 0x542
+#define MN_vpmovdb 0x54b
+#define MN_vpcomgeb 0x553
+#define MN_vpcomleb 0x55c
+#define MN_vpcmpnleb 0x565
+#define MN_vpcmpleb 0x56f
+#define MN_vpcomfalseb 0x578
+#define MN_vpcomtrueb 0x584
+#define MN_xcrypt_cfb 0x58f
+#define MN_xcryptcfb 0x59a
+#define MN_xcrypt_ofb 0x5a4
+#define MN_xcryptofb 0x5af
 #define MN_pshufb (MN_vpshufb + 1)
-#define MN_vpshufb 0x565
-#define MN_invlpgb 0x56d
+#define MN_vpshufb 0x5b9
+#define MN_invlpgb 0x5c1
 #define MN_pavgb (MN_vpavgb + 1)
-#define MN_vpavgb 0x575
-#define MN_jb 0x57c
+#define MN_vpavgb 0x5c9
+#define MN_jb 0x5d0
+#define MN_pbndkb 0x5d3
 #define MN_pmovmskb (MN_vpmovmskb + 1)
-#define MN_vpmovmskb 0x57f
-#define MN_vpshlb 0x589
-#define MN_kshiftlb 0x590
+#define MN_vpmovmskb 0x5da
+#define MN_vpshlb 0x5e4
+#define MN_kshiftlb 0x5eb
 #define MN_gf2p8mulb (MN_vgf2p8mulb + 1)
-#define MN_vgf2p8mulb 0x599
-#define MN_vpblendmb 0x5a4
-#define MN_vptestnmb 0x5ae
-#define MN_vpcomb 0x5b8
-#define MN_vpshufbitqmb 0x5bf
-#define MN_vpermb 0x5cc
-#define MN_vptestmb 0x5d3
-#define MN_kandnb 0x5dc
+#define MN_vgf2p8mulb 0x5f4
+#define MN_vpblendmb 0x5ff
+#define MN_vptestnmb 0x609
+#define MN_vpcomb 0x613
+#define MN_vpshufbitqmb 0x61a
+#define MN_vpermb 0x627
+#define MN_vptestmb 0x62e
+#define MN_kandnb 0x637
 #define MN_psignb (MN_vpsignb + 1)
-#define MN_vpsignb 0x5e3
-#define MN_jnb 0x5eb
-#define MN_setnb 0x5ef
+#define MN_vpsignb 0x63e
+#define MN_jnb 0x646
+#define MN_setnb 0x64a
 #define MN_cmovnb (MN_fcmovnb + 1)
-#define MN_fcmovnb 0x5f5
-#define MN_vpcmpb 0x5fd
-#define MN_vpcomeqb 0x604
+#define MN_fcmovnb 0x650
+#define MN_vpcmpb 0x658
+#define MN_vpcomeqb 0x65f
 #define MN_gf2p8affineqb (MN_vgf2p8affineqb + 1)
-#define MN_vgf2p8affineqb 0x60d
-#define MN_vpcomneqb 0x61c
-#define MN_vpcmpneqb 0x626
+#define MN_vgf2p8affineqb 0x668
+#define MN_vpcomneqb 0x677
+#define MN_vpcmpneqb 0x681
 #define MN_pcmpeqb (MN_vpcmpeqb + 1)
-#define MN_vpcmpeqb 0x630
-#define MN_vpmovusqb 0x639
-#define MN_vpmovsqb 0x643
-#define MN_vpmultishiftqb 0x64c
+#define MN_vpcmpeqb 0x68b
+#define MN_vpmovusqb 0x694
+#define MN_vpmovsqb 0x69e
+#define MN_vpmultishiftqb 0x6a7
 #define MN_gf2p8affineinvqb (MN_vgf2p8affineinvqb + 1)
-#define MN_vgf2p8affineinvqb 0x65b
-#define MN_vpmovqb 0x66d
-#define MN_rex_rb 0x675
-#define MN_korb 0x67c
-#define MN_kxnorb 0x681
-#define MN_kxorb 0x688
+#define MN_vgf2p8affineinvqb 0x6b6
+#define MN_vpmovqb 0x6c8
+#define MN_rex_rb 0x6d0
+#define MN_korb 0x6d7
+#define MN_kxnorb 0x6dc
+#define MN_kxorb 0x6e3
 #define MN_pinsrb (MN_vpinsrb + 1)
-#define MN_vpinsrb 0x68e
-#define MN_kshiftrb 0x696
+#define MN_vpinsrb 0x6e9
+#define MN_kshiftrb 0x6f1
 #define MN_pextrb (MN_vpextrb + 1)
-#define MN_vpextrb 0x69f
-#define MN_rex_wrb 0x6a7
+#define MN_vpextrb 0x6fa
+#define MN_rex_wrb 0x702
 #define MN_pabsb (MN_vpabsb + 1)
-#define MN_vpabsb 0x6af
+#define MN_vpabsb 0x70a
 #define MN_psubsb (MN_vpsubsb + 1)
-#define MN_vpsubsb 0x6b6
+#define MN_vpsubsb 0x711
 #define MN_paddsb (MN_vpaddsb + 1)
-#define MN_vpaddsb 0x6be
+#define MN_vpaddsb 0x719
 #define MN_pminsb (MN_vpminsb + 1)
-#define MN_vpminsb 0x6c6
-#define MN_vpcompressb 0x6ce
+#define MN_vpminsb 0x721
+#define MN_vpcompressb 0x729
 #define MN_psubusb (MN_vpsubusb + 1)
-#define MN_vpsubusb 0x6da
+#define MN_vpsubusb 0x735
 #define MN_paddusb (MN_vpaddusb + 1)
-#define MN_vpaddusb 0x6e3
-#define MN_pavgusb 0x6ec
-#define MN_movsb 0x6f4
+#define MN_vpaddusb 0x73e
+#define MN_pavgusb 0x747
+#define MN_movsb 0x74f
 #define MN_pmaxsb (MN_vpmaxsb + 1)
-#define MN_vpmaxsb 0x6fa
-#define MN_setb 0x702
-#define MN_vpcomgtb 0x707
+#define MN_vpmaxsb 0x755
+#define MN_setb 0x75d
+#define MN_vpcomgtb 0x762
 #define MN_pcmpgtb (MN_vpcmpgtb + 1)
-#define MN_vpcmpgtb 0x710
-#define MN_vpcomltb 0x719
-#define MN_vpcmpnltb 0x722
-#define MN_vpcmpltb 0x72c
-#define MN_vpopcntb 0x735
-#define MN_knotb 0x73e
-#define MN_vprotb 0x744
-#define MN_vpbroadcastb 0x74b
-#define MN_ktestb 0x758
-#define MN_kortestb 0x75f
-#define MN_vpcomgeub 0x768
-#define MN_vpcomleub 0x772
-#define MN_vpcmpnleub 0x77c
-#define MN_vpcmpleub 0x787
-#define MN_vpcomfalseub 0x791
-#define MN_vpcomtrueub 0x79e
-#define MN_vpcomub 0x7aa
+#define MN_vpcmpgtb 0x76b
+#define MN_vpcomltb 0x774
+#define MN_vpcmpnltb 0x77d
+#define MN_vpcmpltb 0x787
+#define MN_vpopcntb 0x790
+#define MN_knotb 0x799
+#define MN_vprotb 0x79f
+#define MN_vpbroadcastb 0x7a6
+#define MN_ktestb 0x7b3
+#define MN_kortestb 0x7ba
+#define MN_vpcomgeub 0x7c3
+#define MN_vpcomleub 0x7cd
+#define MN_vpcmpnleub 0x7d7
+#define MN_vpcmpleub 0x7e2
+#define MN_vpcomfalseub 0x7ec
+#define MN_vpcomtrueub 0x7f9
+#define MN_vpcomub 0x805
 #define MN_pminub (MN_vpminub + 1)
-#define MN_vpminub 0x7b2
-#define MN_vpcmpub 0x7ba
-#define MN_vpcomequb 0x7c2
-#define MN_vpcomnequb 0x7cc
-#define MN_vpcmpnequb 0x7d7
-#define MN_vpcmpequb 0x7e2
+#define MN_vpminub 0x80d
+#define MN_vpcmpub 0x815
+#define MN_vpcomequb 0x81d
+#define MN_vpcomnequb 0x827
+#define MN_vpcmpnequb 0x832
+#define MN_vpcmpequb 0x83d
 #define MN_sub (MN_fsub + 1)
 #define MN_fsub (MN_pfsub + 1)
-#define MN_pfsub 0x7ec
-#define MN_fisub 0x7f2
-#define MN_vpcomgtub 0x7f8
-#define MN_vpcomltub 0x802
-#define MN_vpcmpnltub 0x80c
-#define MN_vpcmpltub 0x817
+#define MN_pfsub 0x847
+#define MN_fisub 0x84d
+#define MN_vpcomgtub 0x853
+#define MN_vpcomltub 0x85d
+#define MN_vpcmpnltub 0x867
+#define MN_vpcmpltub 0x872
 #define MN_pmaxub (MN_vpmaxub + 1)
-#define MN_vpmaxub 0x821
+#define MN_vpmaxub 0x87c
 #define MN_pblendvb (MN_vpblendvb + 1)
-#define MN_vpblendvb 0x829
+#define MN_vpblendvb 0x884
 #define MN_cmovb (MN_fcmovb + 1)
-#define MN_fcmovb 0x833
-#define MN_kmovb 0x83a
-#define MN_rex_wb 0x840
-#define MN_clwb 0x847
+#define MN_fcmovb 0x88e
+#define MN_kmovb 0x895
+#define MN_rex_wb 0x89b
+#define MN_clwb 0x8a2
 #define MN_packsswb (MN_vpacksswb + 1)
-#define MN_vpacksswb 0x84c
+#define MN_vpacksswb 0x8a7
 #define MN_packuswb (MN_vpackuswb + 1)
-#define MN_vpackuswb 0x856
-#define MN_vpmovuswb 0x860
-#define MN_vpmovswb 0x86a
-#define MN_vpmovwb 0x873
-#define MN_rex_xb 0x87b
-#define MN_rex_rxb 0x882
-#define MN_rex_wrxb 0x88a
-#define MN_rex_wxb 0x893
-#define MN_movzb 0x89b
-#define MN_clac 0x8a1
-#define MN_stac 0x8a6
-#define MN_xcrypt_cbc 0x8ab
-#define MN_xcryptcbc 0x8b6
-#define MN_pfacc 0x8c0
-#define MN_pfnacc 0x8c6
-#define MN_pfpnacc 0x8cd
-#define MN_adc 0x8d5
+#define MN_vpackuswb 0x8b1
+#define MN_vpmovuswb 0x8bb
+#define MN_vpmovswb 0x8c5
+#define MN_vpmovwb 0x8ce
+#define MN_rex_xb 0x8d6
+#define MN_rex_rxb 0x8dd
+#define MN_rex_wrxb 0x8e5
+#define MN_rex_wxb 0x8ee
+#define MN_movzb 0x8f6
+#define MN_clac 0x8fc
+#define MN_stac 0x901
+#define MN_xcrypt_cbc 0x906
+#define MN_xcryptcbc 0x911
+#define MN_pfacc 0x91b
+#define MN_pfnacc 0x921
+#define MN_pfpnacc 0x928
+#define MN_adc 0x930
 #define MN_dec (MN_aesdec + 3)
 #define MN_aesdec (MN_vaesdec + 1)
-#define MN_vaesdec 0x8d9
-#define MN_getsec 0x8e1
-#define MN_xsavec 0x8e8
-#define MN_blcic 0x8ef
-#define MN_blsic 0x8f5
-#define MN_jc 0x8fb
-#define MN_t1mskc 0x8fe
-#define MN_clc 0x905
-#define MN_cmc 0x909
+#define MN_vaesdec 0x934
+#define MN_getsec 0x93c
+#define MN_xsavec 0x943
+#define MN_blcic 0x94a
+#define MN_blsic 0x950
+#define MN_jc 0x956
+#define MN_t1mskc 0x959
+#define MN_clc 0x960
+#define MN_cmc 0x964
 #define MN_aesimc (MN_vaesimc + 1)
-#define MN_vaesimc 0x90d
-#define MN_rdpmc 0x915
+#define MN_vaesimc 0x968
+#define MN_rdpmc 0x970
 #define MN_aesenc (MN_vaesenc + 1)
-#define MN_vaesenc 0x91b
-#define MN_inc 0x923
-#define MN_jnc 0x927
-#define MN_setnc 0x92b
-#define MN_vmfunc 0x931
-#define MN_cmovnc 0x938
-#define MN_tlbsync 0x93f
-#define MN_rdtsc 0x947
-#define MN_btc 0x94d
-#define MN_setc 0x951
-#define MN_stc 0x956
-#define MN_cmovc 0x95a
-#define MN_vpermi2d 0x960
-#define MN_vpmovm2d 0x969
-#define MN_vpermt2d 0x972
-#define MN_vpbroadcastmw2d 0x97b
-#define MN_aad 0x98b
-#define MN_vmread 0x98f
-#define MN_vpshad 0x996
-#define MN_vmload 0x99d
+#define MN_vaesenc 0x976
+#define MN_inc 0x97e
+#define MN_jnc 0x982
+#define MN_setnc 0x986
+#define MN_vmfunc 0x98c
+#define MN_cmovnc 0x993
+#define MN_tlbsync 0x99a
+#define MN_rdtsc 0x9a2
+#define MN_btc 0x9a8
+#define MN_setc 0x9ac
+#define MN_stc 0x9b1
+#define MN_cmovc 0x9b5
+#define MN_vpermi2d 0x9bb
+#define MN_vpmovm2d 0x9c4
+#define MN_vpermt2d 0x9cd
+#define MN_vpbroadcastmw2d 0x9d6
+#define MN_aad 0x9e6
+#define MN_vmread 0x9ea
+#define MN_vpshad 0x9f1
+#define MN_vmload 0x9f8
 #define MN_psrad (MN_vpsrad + 1)
-#define MN_vpsrad 0x9a4
-#define MN_vphaddbd 0x9ab
-#define MN_vphaddubd 0x9b4
+#define MN_vpsrad 0x9ff
+#define MN_vphaddbd 0xa06
+#define MN_vphaddubd 0xa0f
 #define MN_phsubd (MN_vphsubd + 1)
-#define MN_vphsubd 0x9be
+#define MN_vphsubd 0xa19
 #define MN_psubd (MN_vpsubd + 1)
-#define MN_vpsubd 0x9c6
+#define MN_vpsubd 0xa21
 #define MN_pmovsxbd (MN_vpmovsxbd + 1)
-#define MN_vpmovsxbd 0x9cd
+#define MN_vpmovsxbd 0xa28
 #define MN_pmovzxbd (MN_vpmovzxbd + 1)
-#define MN_vpmovzxbd 0x9d7
+#define MN_vpmovzxbd 0xa32
 #define MN_add (MN_aadd + 1)
-#define MN_aadd 0x9e1
+#define MN_aadd 0xa3c
 #define MN_fadd (MN_pfadd + 1)
-#define MN_pfadd 0x9e6
-#define MN_fiadd 0x9ec
-#define MN_tileloadd 0x9f2
+#define MN_pfadd 0xa41
+#define MN_fiadd 0xa47
+#define MN_tileloadd 0xa4d
 #define MN_xadd (MN_cmpnaxadd + 5)
-#define MN_cmpnaxadd 0x9fc
-#define MN_cmpaxadd 0xa06
-#define MN_cmpnbxadd 0xa0f
-#define MN_cmpbxadd 0xa19
-#define MN_cmpncxadd 0xa22
-#define MN_cmpcxadd 0xa2c
-#define MN_cmpnaexadd 0xa35
-#define MN_cmpaexadd 0xa40
-#define MN_cmpnbexadd 0xa4a
-#define MN_cmpbexadd 0xa55
-#define MN_cmpngexadd 0xa5f
-#define MN_cmpgexadd 0xa6a
-#define MN_cmpnlexadd 0xa74
-#define MN_cmplexadd 0xa7f
-#define MN_cmpnexadd 0xa89
-#define MN_cmpexadd 0xa93
-#define MN_cmppexadd 0xa9c
-#define MN_cmpngxadd 0xaa6
-#define MN_cmpgxadd 0xab0
-#define MN_cmpnlxadd 0xab9
-#define MN_cmplxadd 0xac3
-#define MN_cmpnoxadd 0xacc
-#define MN_cmpoxadd 0xad6
-#define MN_cmppoxadd 0xadf
-#define MN_cmpnpxadd 0xae9
-#define MN_cmppxadd 0xaf3
-#define MN_cmpnsxadd 0xafc
-#define MN_cmpsxadd 0xb06
-#define MN_cmpnzxadd 0xb0f
-#define MN_cmpzxadd 0xb19
+#define MN_cmpnaxadd 0xa57
+#define MN_cmpaxadd 0xa61
+#define MN_cmpnbxadd 0xa6a
+#define MN_cmpbxadd 0xa74
+#define MN_cmpncxadd 0xa7d
+#define MN_cmpcxadd 0xa87
+#define MN_cmpnaexadd 0xa90
+#define MN_cmpaexadd 0xa9b
+#define MN_cmpnbexadd 0xaa5
+#define MN_cmpbexadd 0xab0
+#define MN_cmpngexadd 0xaba
+#define MN_cmpgexadd 0xac5
+#define MN_cmpnlexadd 0xacf
+#define MN_cmplexadd 0xada
+#define MN_cmpnexadd 0xae4
+#define MN_cmpexadd 0xaee
+#define MN_cmppexadd 0xaf7
+#define MN_cmpngxadd 0xb01
+#define MN_cmpgxadd 0xb0b
+#define MN_cmpnlxadd 0xb14
+#define MN_cmplxadd 0xb1e
+#define MN_cmpnoxadd 0xb27
+#define MN_cmpoxadd 0xb31
+#define MN_cmppoxadd 0xb3a
+#define MN_cmpnpxadd 0xb44
+#define MN_cmppxadd 0xb4e
+#define MN_cmpnsxadd 0xb57
+#define MN_cmpsxadd 0xb61
+#define MN_cmpnzxadd 0xb6a
+#define MN_cmpzxadd 0xb74
 #define MN_phaddd (MN_vphaddd + 1)
-#define MN_vphaddd 0xb22
-#define MN_kaddd 0xb2a
+#define MN_vphaddd 0xb7d
+#define MN_kaddd 0xb85
 #define MN_paddd (MN_vpaddd + 1)
-#define MN_vpaddd 0xb30
-#define MN_vpshldd 0xb37
-#define MN_kandd 0xb3f
-#define MN_vpandd 0xb45
-#define MN_vpexpandd 0xb4c
-#define MN_vpblendd 0xb56
-#define MN_vpgatherdd 0xb5f
-#define MN_vpscatterdd 0xb6a
-#define MN_vpshrdd 0xb76
-#define MN_vpmacsdd 0xb7e
-#define MN_vpmacssdd 0xb87
-#define MN_rdseed 0xb91
-#define MN_vpcomged 0xb98
-#define MN_vpcomled 0xba1
-#define MN_vpcmpnled 0xbaa
-#define MN_vpcmpled 0xbb4
-#define MN_tilestored 0xbbd
-#define MN_vpcomfalsed 0xbc8
-#define MN_vpcomtrued 0xbd4
-#define MN_pi2fd 0xbdf
+#define MN_vpaddd 0xb8b
+#define MN_vpshldd 0xb92
+#define MN_kandd 0xb9a
+#define MN_vpandd 0xba0
+#define MN_vpexpandd 0xba7
+#define MN_vpblendd 0xbb1
+#define MN_vpgatherdd 0xbba
+#define MN_vpscatterdd 0xbc5
+#define MN_vpshrdd 0xbd1
+#define MN_vpmacsdd 0xbd9
+#define MN_vpmacssdd 0xbe2
+#define MN_rdseed 0xbec
+#define MN_vpcomged 0xbf3
+#define MN_vpcomled 0xbfc
+#define MN_vpcmpnled 0xc05
+#define MN_vpcmpled 0xc0f
+#define MN_tilestored 0xc18
+#define MN_vpcomfalsed 0xc23
+#define MN_vpcomtrued 0xc2f
+#define MN_pi2fd 0xc3a
 #define MN_pshufd (MN_vpshufd + 1)
-#define MN_vpshufd 0xbe5
-#define MN_vpternlogd 0xbed
-#define MN_pf2id 0xbf8
-#define MN_invpcid 0xbfe
-#define MN_rdpid 0xc06
-#define MN_invvpid 0xc0c
-#define MN_cpuid 0xc14
-#define MN_fbld 0xc1a
-#define MN_cld 0xc1f
-#define MN_fld 0xc23
+#define MN_vpshufd 0xc40
+#define MN_vpternlogd 0xc48
+#define MN_pf2id 0xc53
+#define MN_invpcid 0xc59
+#define MN_rdpid 0xc61
+#define MN_invvpid 0xc67
+#define MN_cpuid 0xc6f
+#define MN_fbld 0xc75
+#define MN_cld 0xc7a
+#define MN_fld 0xc7e
 #define MN_shld (MN_vpshld + 2)
-#define MN_vpshld 0xc27
-#define MN_fild 0xc2e
+#define MN_vpshld 0xc82
+#define MN_fild 0xc89
 #define MN_pslld (MN_vpslld + 1)
-#define MN_vpslld 0xc33
+#define MN_vpslld 0xc8e
 #define MN_pmulld (MN_vpmulld + 1)
-#define MN_vpmulld 0xc3a
-#define MN_vprold 0xc42
+#define MN_vpmulld 0xc95
+#define MN_vprold 0xc9d
 #define MN_psrld (MN_vpsrld + 1)
-#define MN_vpsrld 0xc49
-#define MN_vmptrld 0xc50
-#define MN_kshiftld 0xc58
-#define MN_enqcmd 0xc61
-#define MN_vpblendmd 0xc68
-#define MN_vptestnmd 0xc72
-#define MN_vpcomd 0xc7c
-#define MN_vpermd 0xc83
-#define MN_vptestmd 0xc8a
+#define MN_vpsrld 0xca4
+#define MN_vmptrld 0xcab
+#define MN_kshiftld 0xcb3
+#define MN_enqcmd 0xcbc
+#define MN_vpblendmd 0xcc3
+#define MN_vptestnmd 0xccd
+#define MN_vpcomd 0xcd7
+#define MN_vpermd 0xcde
+#define MN_vptestmd 0xce5
 #define MN_and (MN_aand + 1)
-#define MN_aand 0xc93
+#define MN_aand 0xcee
 #define MN_pand (MN_vpand + 1)
-#define MN_vpand 0xc98
-#define MN_rdrand 0xc9e
-#define MN_bnd 0xca5
-#define MN_kandnd 0xca9
-#define MN_vpandnd 0xcb0
-#define MN_xend 0xcb8
-#define MN_valignd 0xcbd
+#define MN_vpand 0xcf3
+#define MN_rdrand 0xcf9
+#define MN_bnd 0xd00
+#define MN_kandnd 0xd04
+#define MN_vpandnd 0xd0b
+#define MN_xend 0xd13
+#define MN_valignd 0xd18
 #define MN_psignd (MN_vpsignd + 1)
-#define MN_vpsignd 0xcc5
-#define MN_bound 0xccd
-#define MN_slod 0xcd3
-#define MN_vfmaddsub231pd 0xcd8
-#define MN_vfmsub231pd 0xce7
-#define MN_vfnmsub231pd 0xcf3
-#define MN_vfmsubadd231pd 0xd00
-#define MN_vfmadd231pd 0xd0f
-#define MN_vfnmadd231pd 0xd1b
-#define MN_vfmaddsub132pd 0xd28
-#define MN_vfmsub132pd 0xd37
-#define MN_vfnmsub132pd 0xd43
-#define MN_vfmsubadd132pd 0xd50
-#define MN_vfmadd132pd 0xd5f
-#define MN_vfnmadd132pd 0xd6b
-#define MN_vcvtph2pd 0xd78
-#define MN_vpermi2pd 0xd82
-#define MN_cvtpi2pd 0xd8c
-#define MN_vpermil2pd 0xd95
-#define MN_vexp2pd 0xda0
+#define MN_vpsignd 0xd20
+#define MN_bound 0xd28
+#define MN_slod 0xd2e
+#define MN_vfmaddsub231pd 0xd33
+#define MN_vfmsub231pd 0xd42
+#define MN_vfnmsub231pd 0xd4e
+#define MN_vfmsubadd231pd 0xd5b
+#define MN_vfmadd231pd 0xd6a
+#define MN_vfnmadd231pd 0xd76
+#define MN_vfmaddsub132pd 0xd83
+#define MN_vfmsub132pd 0xd92
+#define MN_vfnmsub132pd 0xd9e
+#define MN_vfmsubadd132pd 0xdab
+#define MN_vfmadd132pd 0xdba
+#define MN_vfnmadd132pd 0xdc6
+#define MN_vcvtph2pd 0xdd3
+#define MN_vpermi2pd 0xddd
+#define MN_cvtpi2pd 0xde7
+#define MN_vpermil2pd 0xdf0
+#define MN_vexp2pd 0xdfb
 #define MN_cvtdq2pd (MN_vcvtdq2pd + 1)
-#define MN_vcvtdq2pd 0xda8
-#define MN_vcvtudq2pd 0xdb2
-#define MN_vcvtqq2pd 0xdbd
-#define MN_vcvtuqq2pd 0xdc7
+#define MN_vcvtdq2pd 0xe03
+#define MN_vcvtudq2pd 0xe0d
+#define MN_vcvtqq2pd 0xe18
+#define MN_vcvtuqq2pd 0xe22
 #define MN_cvtps2pd (MN_vcvtps2pd + 1)
-#define MN_vcvtps2pd 0xdd2
-#define MN_vpermt2pd 0xddc
-#define MN_vfmaddsub213pd 0xde6
-#define MN_vfmsub213pd 0xdf5
-#define MN_vfnmsub213pd 0xe01
-#define MN_vfmsubadd213pd 0xe0e
-#define MN_vfmadd213pd 0xe1d
-#define MN_vfnmadd213pd 0xe29
-#define MN_vrcp14pd 0xe36
-#define MN_vrsqrt14pd 0xe3f
-#define MN_vrcp28pd 0xe4a
-#define MN_vrsqrt28pd 0xe53
+#define MN_vcvtps2pd 0xe2d
+#define MN_vpermt2pd 0xe37
+#define MN_vfmaddsub213pd 0xe41
+#define MN_vfmsub213pd 0xe50
+#define MN_vfnmsub213pd 0xe5c
+#define MN_vfmsubadd213pd 0xe69
+#define MN_vfmadd213pd 0xe78
+#define MN_vfnmadd213pd 0xe84
+#define MN_vrcp14pd 0xe91
+#define MN_vrsqrt14pd 0xe9a
+#define MN_vrcp28pd 0xea5
+#define MN_vrsqrt28pd 0xeae
 #define MN_movapd (MN_vmovapd + 1)
-#define MN_vmovapd 0xe5e
-#define MN_pswapd 0xe66
+#define MN_vmovapd 0xeb9
+#define MN_pswapd 0xec1
 #define MN_subpd (MN_addsubpd + 3)
 #define MN_addsubpd (MN_vfmaddsubpd + 3)
-#define MN_vfmaddsubpd 0xe6d
-#define MN_vaddsubpd 0xe79
+#define MN_vfmaddsubpd 0xec8
+#define MN_vaddsubpd 0xed4
 #define MN_hsubpd (MN_vhsubpd + 1)
-#define MN_vhsubpd 0xe83
-#define MN_vfmsubpd 0xe8b
-#define MN_vfnmsubpd 0xe94
-#define MN_vsubpd 0xe9e
-#define MN_vgatherpf0dpd 0xea5
-#define MN_vscatterpf0dpd 0xeb3
-#define MN_vgatherpf1dpd 0xec2
-#define MN_vscatterpf1dpd 0xed0
+#define MN_vhsubpd 0xede
+#define MN_vfmsubpd 0xee6
+#define MN_vfnmsubpd 0xeef
+#define MN_vsubpd 0xef9
+#define MN_vgatherpf0dpd 0xf00
+#define MN_vscatterpf0dpd 0xf0e
+#define MN_vgatherpf1dpd 0xf1d
+#define MN_vscatterpf1dpd 0xf2b
 #define MN_addpd (MN_vfmsubaddpd + 6)
-#define MN_vfmsubaddpd 0xedf
+#define MN_vfmsubaddpd 0xf3a
 #define MN_haddpd (MN_vhaddpd + 1)
-#define MN_vhaddpd 0xeeb
-#define MN_vfmaddpd 0xef3
-#define MN_vfnmaddpd 0xefc
-#define MN_vaddpd 0xf06
+#define MN_vhaddpd 0xf46
+#define MN_vfmaddpd 0xf4e
+#define MN_vfnmaddpd 0xf57
+#define MN_vaddpd 0xf61
 #define MN_andpd (MN_vexpandpd + 4)
-#define MN_vexpandpd 0xf0d
-#define MN_vandpd 0xf17
+#define MN_vexpandpd 0xf68
+#define MN_vandpd 0xf72
 #define MN_blendpd (MN_vblendpd + 1)
-#define MN_vblendpd 0xf1e
+#define MN_vblendpd 0xf79
 #define MN_roundpd (MN_vroundpd + 1)
-#define MN_vroundpd 0xf27
-#define MN_vgatherdpd 0xf30
-#define MN_vscatterdpd 0xf3b
+#define MN_vroundpd 0xf82
+#define MN_vgatherdpd 0xf8b
+#define MN_vscatterdpd 0xf96
 #define MN_cmpunordpd (MN_vcmpunordpd + 1)
-#define MN_vcmpunordpd 0xf47
+#define MN_vcmpunordpd 0xfa2
 #define MN_cmpordpd (MN_vcmpordpd + 1)
-#define MN_vcmpordpd 0xf53
-#define MN_vreducepd 0xf5d
-#define MN_vrangepd 0xf67
-#define MN_vcmpngepd 0xf70
-#define MN_vcmpgepd 0xf7a
-#define MN_vrndscalepd 0xf83
+#define MN_vcmpordpd 0xfae
+#define MN_vreducepd 0xfb8
+#define MN_vrangepd 0xfc2
+#define MN_vcmpngepd 0xfcb
+#define MN_vcmpgepd 0xfd5
+#define MN_vrndscalepd 0xfde
 #define MN_cmpnlepd (MN_vcmpnlepd + 1)
-#define MN_vcmpnlepd 0xf8f
+#define MN_vcmpnlepd 0xfea
 #define MN_cmplepd (MN_vcmplepd + 1)
-#define MN_vcmplepd 0xf99
-#define MN_vcmpfalsepd 0xfa2
-#define MN_vcmptruepd 0xfae
-#define MN_vscalefpd 0xfb9
+#define MN_vcmplepd 0xff4
+#define MN_vcmpfalsepd 0xffd
+#define MN_vcmptruepd 0x1009
+#define MN_vscalefpd 0x1014
 #define MN_shufpd (MN_vshufpd + 1)
-#define MN_vshufpd 0xfc3
+#define MN_vshufpd 0x101e
 #define MN_unpckhpd (MN_vunpckhpd + 1)
-#define MN_vunpckhpd 0xfcb
+#define MN_vunpckhpd 0x1026
 #define MN_movhpd (MN_vmovhpd + 1)
-#define MN_vmovhpd 0xfd5
+#define MN_vmovhpd 0x1030
 #define MN_movmskpd (MN_vmovmskpd + 1)
-#define MN_vmovmskpd 0xfdd
-#define MN_vpermilpd 0xfe7
+#define MN_vmovmskpd 0x1038
+#define MN_vpermilpd 0x1042
 #define MN_unpcklpd (MN_vunpcklpd + 1)
-#define MN_vunpcklpd 0xff1
+#define MN_vunpcklpd 0x104c
 #define MN_mulpd (MN_vmulpd + 1)
-#define MN_vmulpd 0xffb
+#define MN_vmulpd 0x1056
 #define MN_movlpd (MN_vmovlpd + 1)
-#define MN_vmovlpd 0x1002
-#define MN_vpcmpd 0x100a
-#define MN_vblendmpd 0x1011
-#define MN_vfixupimmpd 0x101b
-#define MN_vpermpd 0x1027
+#define MN_vmovlpd 0x105d
+#define MN_vpcmpd 0x1065
+#define MN_vblendmpd 0x106c
+#define MN_vfixupimmpd 0x1076
+#define MN_vpermpd 0x1082
 #define MN_andnpd (MN_vandnpd + 1)
-#define MN_vandnpd 0x102f
+#define MN_vandnpd 0x108a
 #define MN_minpd (MN_vminpd + 1)
-#define MN_vminpd 0x1037
+#define MN_vminpd 0x1092
 #define MN_dppd (MN_vdppd + 1)
-#define MN_vdppd 0x103e
+#define MN_vdppd 0x1099
 #define MN_cmppd (MN_vcmppd + 1)
-#define MN_vcmppd 0x1044
-#define MN_vgetexppd 0x104b
-#define MN_vgatherpf0qpd 0x1055
-#define MN_vscatterpf0qpd 0x1063
-#define MN_vgatherpf1qpd 0x1072
-#define MN_vscatterpf1qpd 0x1080
-#define MN_vcmpunord_qpd 0x108f
-#define MN_vcmpord_qpd 0x109d
+#define MN_vcmppd 0x109f
+#define MN_vgetexppd 0x10a6
+#define MN_vgatherpf0qpd 0x10b0
+#define MN_vscatterpf0qpd 0x10be
+#define MN_vgatherpf1qpd 0x10cd
+#define MN_vscatterpf1qpd 0x10db
+#define MN_vcmpunord_qpd 0x10ea
+#define MN_vcmpord_qpd 0x10f8
 #define MN_cmpneqpd (MN_vcmpneqpd + 1)
-#define MN_vcmpneqpd 0x10a9
+#define MN_vcmpneqpd 0x1104
 #define MN_cmpeqpd (MN_vcmpeqpd + 1)
-#define MN_vcmpeqpd 0x10b3
-#define MN_vcmpge_oqpd 0x10bc
-#define MN_vcmple_oqpd 0x10c8
-#define MN_vcmpfalse_oqpd 0x10d4
-#define MN_vcmpneq_oqpd 0x10e3
-#define MN_vcmpeq_oqpd 0x10f0
-#define MN_vcmpgt_oqpd 0x10fc
-#define MN_vcmplt_oqpd 0x1108
-#define MN_vgatherqpd 0x1114
-#define MN_vscatterqpd 0x111f
-#define MN_vcmpnge_uqpd 0x112b
-#define MN_vcmpnle_uqpd 0x1138
-#define MN_vcmptrue_uqpd 0x1145
-#define MN_vcmpneq_uqpd 0x1153
-#define MN_vcmpeq_uqpd 0x1160
-#define MN_vcmpngt_uqpd 0x116c
-#define MN_vcmpnlt_uqpd 0x1179
+#define MN_vcmpeqpd 0x110e
+#define MN_vcmpge_oqpd 0x1117
+#define MN_vcmple_oqpd 0x1123
+#define MN_vcmpfalse_oqpd 0x112f
+#define MN_vcmpneq_oqpd 0x113e
+#define MN_vcmpeq_oqpd 0x114b
+#define MN_vcmpgt_oqpd 0x1157
+#define MN_vcmplt_oqpd 0x1163
+#define MN_vgatherqpd 0x116f
+#define MN_vscatterqpd 0x117a
+#define MN_vcmpnge_uqpd 0x1186
+#define MN_vcmpnle_uqpd 0x1193
+#define MN_vcmptrue_uqpd 0x11a0
+#define MN_vcmpneq_uqpd 0x11ae
+#define MN_vcmpeq_uqpd 0x11bb
+#define MN_vcmpngt_uqpd 0x11c7
+#define MN_vcmpnlt_uqpd 0x11d4
 #define MN_orpd (MN_vorpd + 1)
-#define MN_vorpd 0x1186
+#define MN_vorpd 0x11e1
 #define MN_xorpd (MN_vxorpd + 1)
-#define MN_vxorpd 0x118c
-#define MN_vcmpunord_spd 0x1193
-#define MN_vcmpord_spd 0x11a1
-#define MN_vcmpge_ospd 0x11ad
-#define MN_vcmple_ospd 0x11b9
-#define MN_vcmpfalse_ospd 0x11c5
-#define MN_vcmpneq_ospd 0x11d4
-#define MN_vcmpeq_ospd 0x11e1
-#define MN_vcmpgt_ospd 0x11ed
-#define MN_vcmplt_ospd 0x11f9
-#define MN_vfpclasspd 0x1205
-#define MN_incsspd 0x1210
-#define MN_rdsspd 0x1218
-#define MN_vcompresspd 0x121f
-#define MN_vcmpnge_uspd 0x122b
-#define MN_vcmpnle_uspd 0x1238
-#define MN_vcmptrue_uspd 0x1245
-#define MN_vcmpneq_uspd 0x1253
-#define MN_vcmpeq_uspd 0x1260
-#define MN_vcmpngt_uspd 0x126c
-#define MN_vcmpnlt_uspd 0x1279
-#define MN_vcmpngtpd 0x1286
-#define MN_vcmpgtpd 0x1290
+#define MN_vxorpd 0x11e7
+#define MN_vcmpunord_spd 0x11ee
+#define MN_vcmpord_spd 0x11fc
+#define MN_vcmpge_ospd 0x1208
+#define MN_vcmple_ospd 0x1214
+#define MN_vcmpfalse_ospd 0x1220
+#define MN_vcmpneq_ospd 0x122f
+#define MN_vcmpeq_ospd 0x123c
+#define MN_vcmpgt_ospd 0x1248
+#define MN_vcmplt_ospd 0x1254
+#define MN_vfpclasspd 0x1260
+#define MN_incsspd 0x126b
+#define MN_rdsspd 0x1273
+#define MN_vcompresspd 0x127a
+#define MN_vcmpnge_uspd 0x1286
+#define MN_vcmpnle_uspd 0x1293
+#define MN_vcmptrue_uspd 0x12a0
+#define MN_vcmpneq_uspd 0x12ae
+#define MN_vcmpeq_uspd 0x12bb
+#define MN_vcmpngt_uspd 0x12c7
+#define MN_vcmpnlt_uspd 0x12d4
+#define MN_vcmpngtpd 0x12e1
+#define MN_vcmpgtpd 0x12eb
 #define MN_cmpnltpd (MN_vcmpnltpd + 1)
-#define MN_vcmpnltpd 0x1299
+#define MN_vcmpnltpd 0x12f4
 #define MN_cmpltpd (MN_vcmpltpd + 1)
-#define MN_vcmpltpd 0x12a3
-#define MN_vgetmantpd 0x12ac
+#define MN_vcmpltpd 0x12fe
+#define MN_vgetmantpd 0x1307
 #define MN_movntpd (MN_vmovntpd + 1)
-#define MN_vmovntpd 0x12b7
+#define MN_vmovntpd 0x1312
 #define MN_sqrtpd (MN_vsqrtpd + 1)
-#define MN_vsqrtpd 0x12c0
-#define MN_vtestpd 0x12c8
+#define MN_vsqrtpd 0x131b
+#define MN_vtestpd 0x1323
 #define MN_movupd (MN_vmovupd + 1)
-#define MN_vmovupd 0x12d0
+#define MN_vmovupd 0x132b
 #define MN_blendvpd (MN_vblendvpd + 1)
-#define MN_vblendvpd 0x12d8
+#define MN_vblendvpd 0x1333
 #define MN_divpd (MN_vdivpd + 1)
-#define MN_vdivpd 0x12e2
-#define MN_vmaskmovpd 0x12e9
+#define MN_vdivpd 0x133d
+#define MN_vmaskmovpd 0x1344
 #define MN_maxpd (MN_vmaxpd + 1)
-#define MN_vmaxpd 0x12f4
-#define MN_vfrczpd 0x12fb
-#define MN_vpcomeqd 0x1303
-#define MN_vpcomneqd 0x130c
-#define MN_vpcmpneqd 0x1316
+#define MN_vmaxpd 0x134f
+#define MN_vfrczpd 0x1356
+#define MN_vpcomeqd 0x135e
+#define MN_vpcomneqd 0x1367
+#define MN_vpcmpneqd 0x1371
 #define MN_pcmpeqd (MN_vpcmpeqd + 1)
-#define MN_vpcmpeqd 0x1320
-#define MN_vpgatherqd 0x1329
-#define MN_vpscatterqd 0x1334
-#define MN_vpmovusqd 0x1340
-#define MN_vpmovsqd 0x134a
-#define MN_vpmovqd 0x1353
-#define MN_shrd 0x135b
-#define MN_kord 0x1360
-#define MN_kxnord 0x1365
-#define MN_vpord 0x136c
-#define MN_vprord 0x1372
+#define MN_vpcmpeqd 0x137b
+#define MN_vpgatherqd 0x1384
+#define MN_vpscatterqd 0x138f
+#define MN_vpmovusqd 0x139b
+#define MN_vpmovsqd 0x13a5
+#define MN_vpmovqd 0x13ae
+#define MN_shrd 0x13b6
+#define MN_kord 0x13bb
+#define MN_kxnord 0x13c0
+#define MN_vpord 0x13c7
+#define MN_vprord 0x13cd
 #define MN_word (MN_aword + 1)
-#define MN_aword 0x1379
+#define MN_aword 0x13d4
 #define MN_dword (MN_adword + 1)
-#define MN_adword 0x137f
-#define MN_kxord 0x1386
-#define MN_vpxord 0x138c
+#define MN_adword 0x13da
+#define MN_kxord 0x13e1
+#define MN_vpxord 0x13e7
 #define MN_pinsrd (MN_vpinsrd + 1)
-#define MN_vpinsrd 0x1393
-#define MN_kshiftrd 0x139b
+#define MN_vpinsrd 0x13ee
+#define MN_kshiftrd 0x13f6
 #define MN_pextrd (MN_vpextrd + 1)
-#define MN_vpextrd 0x13a4
-#define MN_vfmsub231sd 0x13ac
-#define MN_vfnmsub231sd 0x13b8
-#define MN_vfmadd231sd 0x13c5
-#define MN_vfnmadd231sd 0x13d1
-#define MN_vfmsub132sd 0x13de
-#define MN_vfnmsub132sd 0x13ea
-#define MN_vfmadd132sd 0x13f7
-#define MN_vfnmadd132sd 0x1403
-#define MN_vcvtsh2sd 0x1410
+#define MN_vpextrd 0x13ff
+#define MN_vfmsub231sd 0x1407
+#define MN_vfnmsub231sd 0x1413
+#define MN_vfmadd231sd 0x1420
+#define MN_vfnmadd231sd 0x142c
+#define MN_vfmsub132sd 0x1439
+#define MN_vfnmsub132sd 0x1445
+#define MN_vfmadd132sd 0x1452
+#define MN_vfnmadd132sd 0x145e
+#define MN_vcvtsh2sd 0x146b
 #define MN_cvtsi2sd (MN_vcvtsi2sd + 1)
-#define MN_vcvtsi2sd 0x141a
-#define MN_vcvtusi2sd 0x1424
+#define MN_vcvtsi2sd 0x1475
+#define MN_vcvtusi2sd 0x147f
 #define MN_cvtss2sd (MN_vcvtss2sd + 1)
-#define MN_vcvtss2sd 0x142f
-#define MN_vfmsub213sd 0x1439
-#define MN_vfnmsub213sd 0x1445
-#define MN_vfmadd213sd 0x1452
-#define MN_vfnmadd213sd 0x145e
-#define MN_vrcp14sd 0x146b
-#define MN_vrsqrt14sd 0x1474
-#define MN_vrcp28sd 0x147f
-#define MN_vrsqrt28sd 0x1488
+#define MN_vcvtss2sd 0x148a
+#define MN_vfmsub213sd 0x1494
+#define MN_vfnmsub213sd 0x14a0
+#define MN_vfmadd213sd 0x14ad
+#define MN_vfnmadd213sd 0x14b9
+#define MN_vrcp14sd 0x14c6
+#define MN_vrsqrt14sd 0x14cf
+#define MN_vrcp28sd 0x14da
+#define MN_vrsqrt28sd 0x14e3
 #define MN_pabsd (MN_vpabsd + 1)
-#define MN_vpabsd 0x1493
+#define MN_vpabsd 0x14ee
 #define MN_subsd (MN_vfmsubsd + 3)
-#define MN_vfmsubsd 0x149a
-#define MN_vfnmsubsd 0x14a3
-#define MN_vsubsd 0x14ad
+#define MN_vfmsubsd 0x14f5
+#define MN_vfnmsubsd 0x14fe
+#define MN_vsubsd 0x1508
 #define MN_addsd (MN_vfmaddsd + 3)
-#define MN_vfmaddsd 0x14b4
-#define MN_vfnmaddsd 0x14bd
-#define MN_vaddsd 0x14c7
+#define MN_vfmaddsd 0x150f
+#define MN_vfnmaddsd 0x1518
+#define MN_vaddsd 0x1522
 #define MN_roundsd (MN_vroundsd + 1)
-#define MN_vroundsd 0x14ce
+#define MN_vroundsd 0x1529
 #define MN_cmpunordsd (MN_vcmpunordsd + 1)
-#define MN_vcmpunordsd 0x14d7
+#define MN_vcmpunordsd 0x1532
 #define MN_cmpordsd (MN_vcmpordsd + 1)
-#define MN_vcmpordsd 0x14e3
-#define MN_vreducesd 0x14ed
-#define MN_vrangesd 0x14f7
-#define MN_vcmpngesd 0x1500
-#define MN_vcmpgesd 0x150a
-#define MN_vrndscalesd 0x1513
+#define MN_vcmpordsd 0x153e
+#define MN_vreducesd 0x1548
+#define MN_vrangesd 0x1552
+#define MN_vcmpngesd 0x155b
+#define MN_vcmpgesd 0x1565
+#define MN_vrndscalesd 0x156e
 #define MN_cmpnlesd (MN_vcmpnlesd + 1)
-#define MN_vcmpnlesd 0x151f
+#define MN_vcmpnlesd 0x157a
 #define MN_cmplesd (MN_vcmplesd + 1)
-#define MN_vcmplesd 0x1529
-#define MN_vcmpfalsesd 0x1532
-#define MN_vcmptruesd 0x153e
-#define MN_vscalefsd 0x1549
+#define MN_vcmplesd 0x1584
+#define MN_vcmpfalsesd 0x158d
+#define MN_vcmptruesd 0x1599
+#define MN_vscalefsd 0x15a4
 #define MN_comisd (MN_ucomisd + 1)
 #define MN_ucomisd (MN_vucomisd + 1)
-#define MN_vucomisd 0x1553
-#define MN_vcomisd 0x155c
+#define MN_vucomisd 0x15ae
+#define MN_vcomisd 0x15b7
 #define MN_mulsd (MN_vmulsd + 1)
-#define MN_vmulsd 0x1564
-#define MN_vfixupimmsd 0x156b
+#define MN_vmulsd 0x15bf
+#define MN_vfixupimmsd 0x15c6
 #define MN_minsd (MN_pminsd + 1)
 #define MN_pminsd (MN_vpminsd + 1)
-#define MN_vpminsd 0x1577
-#define MN_vminsd 0x157f
+#define MN_vpminsd 0x15d2
+#define MN_vminsd 0x15da
 #define MN_cmpsd (MN_vcmpsd + 1)
-#define MN_vcmpsd 0x1586
-#define MN_vgetexpsd 0x158d
-#define MN_vcmpunord_qsd 0x1597
-#define MN_vcmpord_qsd 0x15a5
+#define MN_vcmpsd 0x15e1
+#define MN_vgetexpsd 0x15e8
+#define MN_vcmpunord_qsd 0x15f2
+#define MN_vcmpord_qsd 0x1600
 #define MN_cmpneqsd (MN_vcmpneqsd + 1)
-#define MN_vcmpneqsd 0x15b1
+#define MN_vcmpneqsd 0x160c
 #define MN_cmpeqsd (MN_vcmpeqsd + 1)
-#define MN_vcmpeqsd 0x15bb
-#define MN_vcmpge_oqsd 0x15c4
-#define MN_vcmple_oqsd 0x15d0
-#define MN_vcmpfalse_oqsd 0x15dc
-#define MN_vcmpneq_oqsd 0x15eb
-#define MN_vcmpeq_oqsd 0x15f8
-#define MN_vcmpgt_oqsd 0x1604
-#define MN_vcmplt_oqsd 0x1610
-#define MN_vcmpnge_uqsd 0x161c
-#define MN_vcmpnle_uqsd 0x1629
-#define MN_vcmptrue_uqsd 0x1636
-#define MN_vcmpneq_uqsd 0x1644
-#define MN_vcmpeq_uqsd 0x1651
-#define MN_vcmpngt_uqsd 0x165d
-#define MN_vcmpnlt_uqsd 0x166a
-#define MN_vcmpunord_ssd 0x1677
-#define MN_vcmpord_ssd 0x1685
-#define MN_vpdpbssd 0x1691
-#define MN_tdpbssd 0x169a
-#define MN_vpcompressd 0x16a2
-#define MN_vcmpge_ossd 0x16ae
-#define MN_vcmple_ossd 0x16ba
-#define MN_vcmpfalse_ossd 0x16c6
-#define MN_vcmpneq_ossd 0x16d5
-#define MN_vcmpeq_ossd 0x16e2
-#define MN_vcmpgt_ossd 0x16ee
-#define MN_vcmplt_ossd 0x16fa
-#define MN_wrssd 0x1706
-#define MN_vfpclasssd 0x170c
-#define MN_vcmpnge_ussd 0x1717
-#define MN_vcmpnle_ussd 0x1724
-#define MN_vcmptrue_ussd 0x1731
-#define MN_vcmpneq_ussd 0x173f
-#define MN_vcmpeq_ussd 0x174c
-#define MN_vcmpngt_ussd 0x1758
-#define MN_vcmpnlt_ussd 0x1765
-#define MN_wrussd 0x1772
-#define MN_vp4dpwssd 0x1779
-#define MN_vpdpwssd 0x1783
-#define MN_vcmpngtsd 0x178c
-#define MN_vcmpgtsd 0x1796
+#define MN_vcmpeqsd 0x1616
+#define MN_vcmpge_oqsd 0x161f
+#define MN_vcmple_oqsd 0x162b
+#define MN_vcmpfalse_oqsd 0x1637
+#define MN_vcmpneq_oqsd 0x1646
+#define MN_vcmpeq_oqsd 0x1653
+#define MN_vcmpgt_oqsd 0x165f
+#define MN_vcmplt_oqsd 0x166b
+#define MN_vcmpnge_uqsd 0x1677
+#define MN_vcmpnle_uqsd 0x1684
+#define MN_vcmptrue_uqsd 0x1691
+#define MN_vcmpneq_uqsd 0x169f
+#define MN_vcmpeq_uqsd 0x16ac
+#define MN_vcmpngt_uqsd 0x16b8
+#define MN_vcmpnlt_uqsd 0x16c5
+#define MN_vcmpunord_ssd 0x16d2
+#define MN_vcmpord_ssd 0x16e0
+#define MN_vpdpbssd 0x16ec
+#define MN_tdpbssd 0x16f5
+#define MN_vpcompressd 0x16fd
+#define MN_vcmpge_ossd 0x1709
+#define MN_vcmple_ossd 0x1715
+#define MN_vcmpfalse_ossd 0x1721
+#define MN_vcmpneq_ossd 0x1730
+#define MN_vcmpeq_ossd 0x173d
+#define MN_vcmpgt_ossd 0x1749
+#define MN_vcmplt_ossd 0x1755
+#define MN_wrssd 0x1761
+#define MN_vfpclasssd 0x1767
+#define MN_vcmpnge_ussd 0x1772
+#define MN_vcmpnle_ussd 0x177f
+#define MN_vcmptrue_ussd 0x178c
+#define MN_vcmpneq_ussd 0x179a
+#define MN_vcmpeq_ussd 0x17a7
+#define MN_vcmpngt_ussd 0x17b3
+#define MN_vcmpnlt_ussd 0x17c0
+#define MN_wrussd 0x17cd
+#define MN_vp4dpwssd 0x17d4
+#define MN_vpdpwssd 0x17de
+#define MN_vcmpngtsd 0x17e7
+#define MN_vcmpgtsd 0x17f1
 #define MN_cmpnltsd (MN_vcmpnltsd + 1)
-#define MN_vcmpnltsd 0x179f
+#define MN_vcmpnltsd 0x17fa
 #define MN_cmpltsd (MN_vcmpltsd + 1)
-#define MN_vcmpltsd 0x17a9
-#define MN_vgetmantsd 0x17b2
-#define MN_movntsd 0x17bd
+#define MN_vcmpltsd 0x1804
+#define MN_vgetmantsd 0x180d
+#define MN_movntsd 0x1818
 #define MN_sqrtsd (MN_vsqrtsd + 1)
-#define MN_vsqrtsd 0x17c5
-#define MN_vbroadcastsd 0x17cd
-#define MN_vpdpbusd 0x17da
-#define MN_tdpbusd 0x17e3
+#define MN_vsqrtsd 0x1820
+#define MN_vbroadcastsd 0x1828
+#define MN_vpdpbusd 0x1835
+#define MN_tdpbusd 0x183e
+#define MN_vpdpwusd 0x1846
 #define MN_divsd (MN_vdivsd + 1)
-#define MN_vdivsd 0x17eb
+#define MN_vdivsd 0x184f
 #define MN_movsd (MN_vmovsd + 1)
-#define MN_vmovsd 0x17f2
+#define MN_vmovsd 0x1856
 #define MN_maxsd (MN_pmaxsd + 1)
 #define MN_pmaxsd (MN_vpmaxsd + 1)
-#define MN_vpmaxsd 0x17f9
-#define MN_vmaxsd 0x1801
-#define MN_vfrczsd 0x1808
-#define MN_vp2intersectd 0x1810
-#define MN_vpconflictd 0x181e
-#define MN_vpcomgtd 0x182a
+#define MN_vpmaxsd 0x185d
+#define MN_vmaxsd 0x1865
+#define MN_vfrczsd 0x186c
+#define MN_vp2intersectd 0x1874
+#define MN_vpconflictd 0x1882
+#define MN_vpcomgtd 0x188e
 #define MN_pcmpgtd (MN_vpcmpgtd + 1)
-#define MN_vpcmpgtd 0x1833
-#define MN_cltd 0x183c
-#define MN_vpcomltd 0x1841
-#define MN_vpcmpnltd 0x184a
-#define MN_vpcmpltd 0x1854
-#define MN_vpopcntd 0x185d
-#define MN_vplzcntd 0x1866
-#define MN_knotd 0x186f
-#define MN_vprotd 0x1875
+#define MN_vpcmpgtd 0x1897
+#define MN_cltd 0x18a0
+#define MN_vpcomltd 0x18a5
+#define MN_vpcmpnltd 0x18ae
+#define MN_vpcmpltd 0x18b8
+#define MN_vpopcntd 0x18c1
+#define MN_vplzcntd 0x18ca
+#define MN_knotd 0x18d3
+#define MN_vprotd 0x18d9
 #define MN_std (MN_vpbroadcastd + 9)
-#define MN_vpbroadcastd 0x187c
-#define MN_ktestd 0x1889
-#define MN_kortestd 0x1890
-#define MN_cwtd 0x1899
-#define MN_vpcomgeud 0x189e
-#define MN_vpcomleud 0x18a8
-#define MN_vpcmpnleud 0x18b2
-#define MN_vpcmpleud 0x18bd
-#define MN_vpcomfalseud 0x18c7
-#define MN_vpcomtrueud 0x18d4
-#define MN_vpcomud 0x18e0
+#define MN_vpbroadcastd 0x18e0
+#define MN_ktestd 0x18ed
+#define MN_kortestd 0x18f4
+#define MN_cwtd 0x18fd
+#define MN_vpcomgeud 0x1902
+#define MN_vpcomleud 0x190c
+#define MN_vpcmpnleud 0x1916
+#define MN_vpcmpleud 0x1921
+#define MN_vpcomfalseud 0x192b
+#define MN_vpcomtrueud 0x1938
+#define MN_vpcomud 0x1944
 #define MN_pminud (MN_vpminud + 1)
-#define MN_vpminud 0x18e8
-#define MN_vpcmpud 0x18f0
-#define MN_vpcomequd 0x18f8
-#define MN_vpcomnequd 0x1902
-#define MN_vpcmpnequd 0x190d
-#define MN_vpcmpequd 0x1918
-#define MN_vpdpbsud 0x1922
-#define MN_tdpbsud 0x192b
-#define MN_vpcomgtud 0x1933
-#define MN_vpcomltud 0x193d
-#define MN_vpcmpnltud 0x1947
-#define MN_vpcmpltud 0x1952
-#define MN_vpdpbuud 0x195c
-#define MN_tdpbuud 0x1965
+#define MN_vpminud 0x194c
+#define MN_vpcmpud 0x1954
+#define MN_vpcomequd 0x195c
+#define MN_vpcomnequd 0x1966
+#define MN_vpcmpnequd 0x1971
+#define MN_vpcmpequd 0x197c
+#define MN_vpdpbsud 0x1986
+#define MN_tdpbsud 0x198f
+#define MN_vpdpwsud 0x1997
+#define MN_vpcomgtud 0x19a0
+#define MN_vpcomltud 0x19aa
+#define MN_vpcmpnltud 0x19b4
+#define MN_vpcmpltud 0x19bf
+#define MN_vpdpbuud 0x19c9
+#define MN_tdpbuud 0x19d2
+#define MN_vpdpwuud 0x19da
 #define MN_pmaxud (MN_vpmaxud + 1)
-#define MN_vpmaxud 0x196d
-#define MN_vpsravd 0x1975
-#define MN_vpshldvd 0x197d
-#define MN_vpshrdvd 0x1986
-#define MN_vpsllvd 0x198f
-#define MN_vprolvd 0x1997
-#define MN_vpsrlvd 0x199f
+#define MN_vpmaxud 0x19e3
+#define MN_vpsravd 0x19eb
+#define MN_vpshldvd 0x19f3
+#define MN_vpshrdvd 0x19fc
+#define MN_vpsllvd 0x1a05
+#define MN_vprolvd 0x1a0d
+#define MN_vpsrlvd 0x1a15
 #define MN_invd (MN_wbinvd + 2)
-#define MN_wbinvd 0x19a7
-#define MN_wbnoinvd 0x19ae
+#define MN_wbinvd 0x1a1d
+#define MN_wbnoinvd 0x1a24
 #define MN_movd (MN_kmovd + 1)
 #define MN_kmovd (MN_vpmaskmovd + 5)
-#define MN_vpmaskmovd 0x19b7
-#define MN_vmovd 0x19c2
-#define MN_vprorvd 0x19c8
-#define MN_vphsubwd 0x19d0
-#define MN_cwd 0x19d9
-#define MN_vphaddwd 0x19dd
+#define MN_vpmaskmovd 0x1a2d
+#define MN_vmovd 0x1a38
+#define MN_vprorvd 0x1a3e
+#define MN_vphsubwd 0x1a46
+#define MN_cwd 0x1a4f
+#define MN_vphaddwd 0x1a53
 #define MN_pmaddwd (MN_vpmaddwd + 1)
-#define MN_vpmaddwd 0x19e6
+#define MN_vpmaddwd 0x1a5c
 #define MN_punpckhwd (MN_vpunpckhwd + 1)
-#define MN_vpunpckhwd 0x19ef
-#define MN_kunpckwd 0x19fa
+#define MN_vpunpckhwd 0x1a65
+#define MN_kunpckwd 0x1a70
 #define MN_punpcklwd (MN_vpunpcklwd + 1)
-#define MN_vpunpcklwd 0x1a03
-#define MN_vpmacswd 0x1a0e
-#define MN_vpmadcswd 0x1a17
-#define MN_vpmacsswd 0x1a21
-#define MN_vpmadcsswd 0x1a2b
-#define MN_vphadduwd 0x1a36
+#define MN_vpunpcklwd 0x1a79
+#define MN_vpmacswd 0x1a84
+#define MN_vpmadcswd 0x1a8d
+#define MN_vpmacsswd 0x1a97
+#define MN_vpmadcsswd 0x1aa1
+#define MN_vphadduwd 0x1aac
 #define MN_pmovsxwd (MN_vpmovsxwd + 1)
-#define MN_vpmovsxwd 0x1a40
+#define MN_vpmovsxwd 0x1ab6
 #define MN_pmovzxwd (MN_vpmovzxwd + 1)
-#define MN_vpmovzxwd 0x1a4a
-#define MN_movsxd 0x1a54
-#define MN_fldl2e 0x1a5b
-#define MN_jae 0x1a62
-#define MN_jnae 0x1a66
-#define MN_setnae 0x1a6b
+#define MN_vpmovzxwd 0x1ac0
+#define MN_movsxd 0x1aca
+#define MN_fldl2e 0x1ad1
+#define MN_jae 0x1ad8
+#define MN_jnae 0x1adc
+#define MN_setnae 0x1ae1
 #define MN_cmovnae (MN_fcmovnae + 1)
-#define MN_fcmovnae 0x1a72
-#define MN_setae 0x1a7b
+#define MN_fcmovnae 0x1ae8
+#define MN_setae 0x1af1
 #define MN_cmovae (MN_fcmovae + 1)
-#define MN_fcmovae 0x1a81
-#define MN_jbe 0x1a89
-#define MN_jnbe 0x1a8d
-#define MN_setnbe 0x1a92
+#define MN_fcmovae 0x1af7
+#define MN_jbe 0x1aff
+#define MN_jnbe 0x1b03
+#define MN_setnbe 0x1b08
 #define MN_cmovnbe (MN_fcmovnbe + 1)
-#define MN_fcmovnbe 0x1a99
-#define MN_setbe 0x1aa2
+#define MN_fcmovnbe 0x1b0f
+#define MN_setbe 0x1b18
 #define MN_movbe (MN_cmovbe + 1)
 #define MN_cmovbe (MN_fcmovbe + 1)
-#define MN_fcmovbe 0x1aa8
-#define MN_lfence 0x1ab0
-#define MN_mfence 0x1ab7
-#define MN_sfence 0x1abe
-#define MN_cwde 0x1ac5
-#define MN_ffree 0x1aca
-#define MN_jge 0x1ad0
-#define MN_jnge 0x1ad4
-#define MN_setnge 0x1ad9
-#define MN_cmovnge 0x1ae0
-#define MN_pfcmpge 0x1ae8
-#define MN_setge 0x1af0
-#define MN_cmovge 0x1af6
-#define MN_je 0x1afd
-#define MN_fscale 0x1b00
-#define MN_jle 0x1b07
-#define MN_jnle 0x1b0b
-#define MN_setnle 0x1b10
-#define MN_cmovnle 0x1b17
-#define MN_setle 0x1b1f
-#define MN_cmovle 0x1b25
-#define MN_vmresume 0x1b2c
-#define MN_jne 0x1b35
-#define MN_repne 0x1b39
-#define MN_loopne 0x1b3f
-#define MN_setne 0x1b46
+#define MN_fcmovbe 0x1b1e
+#define MN_lfence 0x1b26
+#define MN_mfence 0x1b2d
+#define MN_sfence 0x1b34
+#define MN_cwde 0x1b3b
+#define MN_ffree 0x1b40
+#define MN_jge 0x1b46
+#define MN_jnge 0x1b4a
+#define MN_setnge 0x1b4f
+#define MN_cmovnge 0x1b56
+#define MN_pfcmpge 0x1b5e
+#define MN_setge 0x1b66
+#define MN_cmovge 0x1b6c
+#define MN_je 0x1b73
+#define MN_fscale 0x1b76
+#define MN_jle 0x1b7d
+#define MN_jnle 0x1b81
+#define MN_setnle 0x1b86
+#define MN_cmovnle 0x1b8d
+#define MN_setle 0x1b95
+#define MN_cmovle 0x1b9b
+#define MN_vmresume 0x1ba2
+#define MN_jne 0x1bab
+#define MN_repne 0x1baf
+#define MN_loopne 0x1bb5
+#define MN_setne 0x1bbc
 #define MN_cmovne (MN_fcmovne + 1)
-#define MN_fcmovne 0x1b4c
-#define MN_repe 0x1b54
-#define MN_jpe 0x1b59
-#define MN_loope 0x1b5d
-#define MN_setpe 0x1b63
-#define MN_cmovpe 0x1b69
-#define MN_cdqe 0x1b70
-#define MN_xacquire 0x1b75
-#define MN_xstore 0x1b7e
-#define MN_rdfsbase 0x1b85
-#define MN_wrfsbase 0x1b8e
-#define MN_rdgsbase 0x1b97
-#define MN_wrgsbase 0x1ba0
-#define MN_tilerelease 0x1ba9
-#define MN_xrelease 0x1bb5
+#define MN_fcmovne 0x1bc2
+#define MN_repe 0x1bca
+#define MN_jpe 0x1bcf
+#define MN_loope 0x1bd3
+#define MN_setpe 0x1bd9
+#define MN_cmovpe 0x1bdf
+#define MN_cdqe 0x1be6
+#define MN_xacquire 0x1beb
+#define MN_xstore 0x1bf4
+#define MN_rdfsbase 0x1bfb
+#define MN_wrfsbase 0x1c04
+#define MN_rdgsbase 0x1c0d
+#define MN_wrgsbase 0x1c16
+#define MN_tilerelease 0x1c1f
+#define MN_xrelease 0x1c2b
 #define MN_pause (MN_tpause + 1)
-#define MN_tpause 0x1bbe
-#define MN_pvalidate 0x1bc5
-#define MN_rmpupdate 0x1bcf
-#define MN_sete 0x1bd9
-#define MN_vmwrite 0x1bde
-#define MN_ptwrite 0x1be6
-#define MN_cldemote 0x1bee
-#define MN_sha1nexte 0x1bf7
-#define MN_leave 0x1c01
-#define MN_fsave 0x1c07
-#define MN_vmsave 0x1c0d
-#define MN_fnsave 0x1c14
+#define MN_tpause 0x1c34
+#define MN_pvalidate 0x1c3b
+#define MN_rmpupdate 0x1c45
+#define MN_sete 0x1c4f
+#define MN_vmwrite 0x1c54
+#define MN_ptwrite 0x1c5c
+#define MN_cldemote 0x1c64
+#define MN_sha1nexte 0x1c6d
+#define MN_leave 0x1c77
+#define MN_fsave 0x1c7d
+#define MN_vmsave 0x1c83
+#define MN_fnsave 0x1c8a
 #define MN_xsave (MN_fxsave + 1)
-#define MN_fxsave 0x1c1b
+#define MN_fxsave 0x1c91
 #define MN_cmove (MN_fcmove + 1)
-#define MN_fcmove 0x1c22
-#define MN_serialize 0x1c29
-#define MN_vmxoff 0x1c33
-#define MN_lahf 0x1c3a
-#define MN_sahf 0x1c3f
-#define MN_pushf 0x1c44
-#define MN_popf 0x1c4a
-#define MN_bsf 0x1c4f
-#define MN_retf 0x1c53
-#define MN_neg 0x1c58
-#define MN_ldtilecfg 0x1c5c
-#define MN_sttilecfg 0x1c66
+#define MN_fcmove 0x1c98
+#define MN_serialize 0x1c9f
+#define MN_vmxoff 0x1ca9
+#define MN_lahf 0x1cb0
+#define MN_sahf 0x1cb5
+#define MN_pushf 0x1cba
+#define MN_popf 0x1cc0
+#define MN_bsf 0x1cc5
+#define MN_retf 0x1cc9
+#define MN_neg 0x1cce
+#define MN_ldtilecfg 0x1cd2
+#define MN_sttilecfg 0x1cdc
 #define MN_xchg (MN_cmpxchg + 3)
-#define MN_cmpxchg 0x1c70
-#define MN_pconfig 0x1c78
-#define MN_jg 0x1c80
-#define MN_jng 0x1c83
-#define MN_xstore_rng 0x1c87
-#define MN_xstorerng 0x1c92
-#define MN_setng 0x1c9c
-#define MN_cmovng 0x1ca2
-#define MN_invlpg 0x1ca9
-#define MN_setg 0x1cb0
-#define MN_cmovg 0x1cb5
-#define MN_vmlaunch 0x1cbb
-#define MN_prefetch 0x1cc4
-#define MN_fxch 0x1ccd
-#define MN_vfmaddsub231ph 0x1cd2
-#define MN_vfmsub231ph 0x1ce1
-#define MN_vfnmsub231ph 0x1ced
-#define MN_vfmsubadd231ph 0x1cfa
-#define MN_vfmadd231ph 0x1d09
-#define MN_vfnmadd231ph 0x1d15
-#define MN_vfmaddsub132ph 0x1d22
-#define MN_vfmsub132ph 0x1d31
-#define MN_vfnmsub132ph 0x1d3d
-#define MN_vfmsubadd132ph 0x1d4a
-#define MN_vfmadd132ph 0x1d59
-#define MN_vfnmadd132ph 0x1d65
-#define MN_vcvtpd2ph 0x1d72
-#define MN_vcvtdq2ph 0x1d7c
-#define MN_vcvtudq2ph 0x1d86
-#define MN_vcvtqq2ph 0x1d91
-#define MN_vcvtuqq2ph 0x1d9b
-#define MN_vcvtps2ph 0x1da6
-#define MN_vcvtw2ph 0x1db0
-#define MN_vcvtuw2ph 0x1db9
-#define MN_vfmaddsub213ph 0x1dc3
-#define MN_vfmsub213ph 0x1dd2
-#define MN_vfnmsub213ph 0x1dde
-#define MN_vfmsubadd213ph 0x1deb
-#define MN_vfmadd213ph 0x1dfa
-#define MN_vfnmadd213ph 0x1e06
-#define MN_vsubph 0x1e13
-#define MN_vfcmaddcph 0x1e1a
-#define MN_vfmaddcph 0x1e25
-#define MN_vfcmulcph 0x1e2f
-#define MN_vfmulcph 0x1e39
-#define MN_vaddph 0x1e42
-#define MN_vcmpunordph 0x1e49
-#define MN_vcmpordph 0x1e55
-#define MN_vreduceph 0x1e5f
-#define MN_vcmpngeph 0x1e69
-#define MN_vcmpgeph 0x1e73
-#define MN_vrndscaleph 0x1e7c
-#define MN_vcmpnleph 0x1e88
-#define MN_vcmpleph 0x1e92
-#define MN_vcmpfalseph 0x1e9b
-#define MN_vcmptrueph 0x1ea7
-#define MN_vscalefph 0x1eb2
-#define MN_vmulph 0x1ebc
-#define MN_vminph 0x1ec3
-#define MN_vrcpph 0x1eca
-#define MN_vcmpph 0x1ed1
-#define MN_vgetexpph 0x1ed8
-#define MN_vcmpunord_qph 0x1ee2
-#define MN_vcmpord_qph 0x1ef0
-#define MN_vcmpneqph 0x1efc
-#define MN_vcmpeqph 0x1f06
-#define MN_vcmpge_oqph 0x1f0f
-#define MN_vcmple_oqph 0x1f1b
-#define MN_vcmpfalse_oqph 0x1f27
-#define MN_vcmpneq_oqph 0x1f36
-#define MN_vcmpeq_oqph 0x1f43
-#define MN_vcmpgt_oqph 0x1f4f
-#define MN_vcmplt_oqph 0x1f5b
-#define MN_vcmpnge_uqph 0x1f67
-#define MN_vcmpnle_uqph 0x1f74
-#define MN_vcmptrue_uqph 0x1f81
-#define MN_vcmpneq_uqph 0x1f8f
-#define MN_vcmpeq_uqph 0x1f9c
-#define MN_vcmpngt_uqph 0x1fa8
-#define MN_vcmpnlt_uqph 0x1fb5
-#define MN_vcmpunord_sph 0x1fc2
-#define MN_vcmpord_sph 0x1fd0
-#define MN_vcmpge_osph 0x1fdc
-#define MN_vcmple_osph 0x1fe8
-#define MN_vcmpfalse_osph 0x1ff4
-#define MN_vcmpneq_osph 0x2003
-#define MN_vcmpeq_osph 0x2010
-#define MN_vcmpgt_osph 0x201c
-#define MN_vcmplt_osph 0x2028
-#define MN_vfpclassph 0x2034
-#define MN_vcmpnge_usph 0x203f
-#define MN_vcmpnle_usph 0x204c
-#define MN_vcmptrue_usph 0x2059
-#define MN_vcmpneq_usph 0x2067
-#define MN_vcmpeq_usph 0x2074
-#define MN_vcmpngt_usph 0x2080
-#define MN_vcmpnlt_usph 0x208d
-#define MN_vcmpngtph 0x209a
-#define MN_vcmpgtph 0x20a4
-#define MN_vcmpnltph 0x20ad
-#define MN_vcmpltph 0x20b7
-#define MN_vgetmantph 0x20c0
-#define MN_vrsqrtph 0x20cb
-#define MN_vsqrtph 0x20d4
-#define MN_vdivph 0x20dc
-#define MN_vmaxph 0x20e3
-#define MN_vpmacsdqh 0x20ea
-#define MN_vpmacssdqh 0x20f4
-#define MN_vfmsub231sh 0x20ff
-#define MN_vfnmsub231sh 0x210b
-#define MN_vfmadd231sh 0x2118
-#define MN_vfnmadd231sh 0x2124
-#define MN_vfmsub132sh 0x2131
-#define MN_vfnmsub132sh 0x213d
-#define MN_vfmadd132sh 0x214a
-#define MN_vfnmadd132sh 0x2156
-#define MN_vcvtsd2sh 0x2163
-#define MN_vcvtsi2sh 0x216d
-#define MN_vcvtusi2sh 0x2177
-#define MN_vcvtss2sh 0x2182
-#define MN_vfmsub213sh 0x218c
-#define MN_vfnmsub213sh 0x2198
-#define MN_vfmadd213sh 0x21a5
-#define MN_vfnmadd213sh 0x21b1
-#define MN_psmash 0x21be
-#define MN_vsubsh 0x21c5
-#define MN_vfcmaddcsh 0x21cc
-#define MN_vfmaddcsh 0x21d7
-#define MN_vfcmulcsh 0x21e1
-#define MN_vfmulcsh 0x21eb
-#define MN_vaddsh 0x21f4
-#define MN_vcmpunordsh 0x21fb
-#define MN_vcmpordsh 0x2207
-#define MN_vreducesh 0x2211
-#define MN_vcmpngesh 0x221b
-#define MN_vcmpgesh 0x2225
-#define MN_vrndscalesh 0x222e
-#define MN_vcmpnlesh 0x223a
-#define MN_vcmplesh 0x2244
-#define MN_vcmpfalsesh 0x224d
-#define MN_vcmptruesh 0x2259
-#define MN_vscalefsh 0x2264
-#define MN_vucomish 0x226e
-#define MN_vcomish 0x2277
-#define MN_vmulsh 0x227f
-#define MN_vminsh 0x2286
-#define MN_vrcpsh 0x228d
-#define MN_vcmpsh 0x2294
-#define MN_vgetexpsh 0x229b
-#define MN_vcmpunord_qsh 0x22a5
-#define MN_vcmpord_qsh 0x22b3
-#define MN_vcmpneqsh 0x22bf
-#define MN_vcmpeqsh 0x22c9
-#define MN_vcmpge_oqsh 0x22d2
-#define MN_vcmple_oqsh 0x22de
-#define MN_vcmpfalse_oqsh 0x22ea
-#define MN_vcmpneq_oqsh 0x22f9
-#define MN_vcmpeq_oqsh 0x2306
-#define MN_vcmpgt_oqsh 0x2312
-#define MN_vcmplt_oqsh 0x231e
-#define MN_vcmpnge_uqsh 0x232a
-#define MN_vcmpnle_uqsh 0x2337
-#define MN_vcmptrue_uqsh 0x2344
-#define MN_vcmpneq_uqsh 0x2352
-#define MN_vcmpeq_uqsh 0x235f
-#define MN_vcmpngt_uqsh 0x236b
-#define MN_vcmpnlt_uqsh 0x2378
-#define MN_vcmpunord_ssh 0x2385
-#define MN_vcmpord_ssh 0x2393
-#define MN_vcmpge_ossh 0x239f
-#define MN_vcmple_ossh 0x23ab
-#define MN_vcmpfalse_ossh 0x23b7
-#define MN_vcmpneq_ossh 0x23c6
-#define MN_vcmpeq_ossh 0x23d3
-#define MN_vcmpgt_ossh 0x23df
-#define MN_vcmplt_ossh 0x23eb
-#define MN_vfpclasssh 0x23f7
-#define MN_vcmpnge_ussh 0x2402
-#define MN_vcmpnle_ussh 0x240f
-#define MN_vcmptrue_ussh 0x241c
-#define MN_vcmpneq_ussh 0x242a
-#define MN_vcmpeq_ussh 0x2437
-#define MN_vcmpngt_ussh 0x2443
-#define MN_vcmpnlt_ussh 0x2450
-#define MN_vcmpngtsh 0x245d
-#define MN_vcmpgtsh 0x2467
-#define MN_vcmpnltsh 0x2470
-#define MN_vcmpltsh 0x247a
-#define MN_vgetmantsh 0x2483
-#define MN_vrsqrtsh 0x248e
-#define MN_vsqrtsh 0x2497
-#define MN_clflush 0x249f
-#define MN_push 0x24a7
-#define MN_vdivsh 0x24ac
-#define MN_vmovsh 0x24b3
-#define MN_vmaxsh 0x24ba
-#define MN_blci 0x24c1
-#define MN_clgi 0x24c6
-#define MN_stgi 0x24cb
-#define MN_bzhi 0x24d0
-#define MN_cli 0x24d5
-#define MN_fcomi 0x24d9
-#define MN_fucomi 0x24df
-#define MN_feni 0x24e6
-#define MN_fneni 0x24eb
-#define MN_cvttpd2pi 0x24f1
-#define MN_cvtpd2pi 0x24fb
-#define MN_cvttps2pi 0x2504
-#define MN_cvtps2pi 0x250e
-#define MN_fldpi 0x2517
-#define MN_senduipi 0x251d
-#define MN_fcompi 0x2526
-#define MN_fucompi 0x252d
-#define MN_movdiri 0x2535
+#define MN_cmpxchg 0x1ce6
+#define MN_pconfig 0x1cee
+#define MN_jg 0x1cf6
+#define MN_jng 0x1cf9
+#define MN_xstore_rng 0x1cfd
+#define MN_xstorerng 0x1d08
+#define MN_setng 0x1d12
+#define MN_cmovng 0x1d18
+#define MN_invlpg 0x1d1f
+#define MN_setg 0x1d26
+#define MN_cmovg 0x1d2b
+#define MN_vmlaunch 0x1d31
+#define MN_prefetch 0x1d3a
+#define MN_fxch 0x1d43
+#define MN_vfmaddsub231ph 0x1d48
+#define MN_vfmsub231ph 0x1d57
+#define MN_vfnmsub231ph 0x1d63
+#define MN_vfmsubadd231ph 0x1d70
+#define MN_vfmadd231ph 0x1d7f
+#define MN_vfnmadd231ph 0x1d8b
+#define MN_vfmaddsub132ph 0x1d98
+#define MN_vfmsub132ph 0x1da7
+#define MN_vfnmsub132ph 0x1db3
+#define MN_vfmsubadd132ph 0x1dc0
+#define MN_vfmadd132ph 0x1dcf
+#define MN_vfnmadd132ph 0x1ddb
+#define MN_vcvtpd2ph 0x1de8
+#define MN_vcvtdq2ph 0x1df2
+#define MN_vcvtudq2ph 0x1dfc
+#define MN_vcvtqq2ph 0x1e07
+#define MN_vcvtuqq2ph 0x1e11
+#define MN_vcvtps2ph 0x1e1c
+#define MN_vcvtw2ph 0x1e26
+#define MN_vcvtuw2ph 0x1e2f
+#define MN_vfmaddsub213ph 0x1e39
+#define MN_vfmsub213ph 0x1e48
+#define MN_vfnmsub213ph 0x1e54
+#define MN_vfmsubadd213ph 0x1e61
+#define MN_vfmadd213ph 0x1e70
+#define MN_vfnmadd213ph 0x1e7c
+#define MN_vsubph 0x1e89
+#define MN_vfcmaddcph 0x1e90
+#define MN_vfmaddcph 0x1e9b
+#define MN_vfcmulcph 0x1ea5
+#define MN_vfmulcph 0x1eaf
+#define MN_vaddph 0x1eb8
+#define MN_vcmpunordph 0x1ebf
+#define MN_vcmpordph 0x1ecb
+#define MN_vreduceph 0x1ed5
+#define MN_vcmpngeph 0x1edf
+#define MN_vcmpgeph 0x1ee9
+#define MN_vrndscaleph 0x1ef2
+#define MN_vcmpnleph 0x1efe
+#define MN_vcmpleph 0x1f08
+#define MN_vcmpfalseph 0x1f11
+#define MN_vcmptrueph 0x1f1d
+#define MN_vscalefph 0x1f28
+#define MN_vmulph 0x1f32
+#define MN_vminph 0x1f39
+#define MN_vrcpph 0x1f40
+#define MN_vcmpph 0x1f47
+#define MN_vgetexpph 0x1f4e
+#define MN_vcmpunord_qph 0x1f58
+#define MN_vcmpord_qph 0x1f66
+#define MN_vcmpneqph 0x1f72
+#define MN_vcmpeqph 0x1f7c
+#define MN_vcmpge_oqph 0x1f85
+#define MN_vcmple_oqph 0x1f91
+#define MN_vcmpfalse_oqph 0x1f9d
+#define MN_vcmpneq_oqph 0x1fac
+#define MN_vcmpeq_oqph 0x1fb9
+#define MN_vcmpgt_oqph 0x1fc5
+#define MN_vcmplt_oqph 0x1fd1
+#define MN_vcmpnge_uqph 0x1fdd
+#define MN_vcmpnle_uqph 0x1fea
+#define MN_vcmptrue_uqph 0x1ff7
+#define MN_vcmpneq_uqph 0x2005
+#define MN_vcmpeq_uqph 0x2012
+#define MN_vcmpngt_uqph 0x201e
+#define MN_vcmpnlt_uqph 0x202b
+#define MN_vcmpunord_sph 0x2038
+#define MN_vcmpord_sph 0x2046
+#define MN_vcmpge_osph 0x2052
+#define MN_vcmple_osph 0x205e
+#define MN_vcmpfalse_osph 0x206a
+#define MN_vcmpneq_osph 0x2079
+#define MN_vcmpeq_osph 0x2086
+#define MN_vcmpgt_osph 0x2092
+#define MN_vcmplt_osph 0x209e
+#define MN_vfpclassph 0x20aa
+#define MN_vcmpnge_usph 0x20b5
+#define MN_vcmpnle_usph 0x20c2
+#define MN_vcmptrue_usph 0x20cf
+#define MN_vcmpneq_usph 0x20dd
+#define MN_vcmpeq_usph 0x20ea
+#define MN_vcmpngt_usph 0x20f6
+#define MN_vcmpnlt_usph 0x2103
+#define MN_vcmpngtph 0x2110
+#define MN_vcmpgtph 0x211a
+#define MN_vcmpnltph 0x2123
+#define MN_vcmpltph 0x212d
+#define MN_vgetmantph 0x2136
+#define MN_vrsqrtph 0x2141
+#define MN_vsqrtph 0x214a
+#define MN_vdivph 0x2152
+#define MN_vmaxph 0x2159
+#define MN_vpmacsdqh 0x2160
+#define MN_vpmacssdqh 0x216a
+#define MN_vfmsub231sh 0x2175
+#define MN_vfnmsub231sh 0x2181
+#define MN_vfmadd231sh 0x218e
+#define MN_vfnmadd231sh 0x219a
+#define MN_vfmsub132sh 0x21a7
+#define MN_vfnmsub132sh 0x21b3
+#define MN_vfmadd132sh 0x21c0
+#define MN_vfnmadd132sh 0x21cc
+#define MN_vcvtsd2sh 0x21d9
+#define MN_vcvtsi2sh 0x21e3
+#define MN_vcvtusi2sh 0x21ed
+#define MN_vcvtss2sh 0x21f8
+#define MN_vfmsub213sh 0x2202
+#define MN_vfnmsub213sh 0x220e
+#define MN_vfmadd213sh 0x221b
+#define MN_vfnmadd213sh 0x2227
+#define MN_psmash 0x2234
+#define MN_vsubsh 0x223b
+#define MN_vfcmaddcsh 0x2242
+#define MN_vfmaddcsh 0x224d
+#define MN_vfcmulcsh 0x2257
+#define MN_vfmulcsh 0x2261
+#define MN_vaddsh 0x226a
+#define MN_vcmpunordsh 0x2271
+#define MN_vcmpordsh 0x227d
+#define MN_vreducesh 0x2287
+#define MN_vcmpngesh 0x2291
+#define MN_vcmpgesh 0x229b
+#define MN_vrndscalesh 0x22a4
+#define MN_vcmpnlesh 0x22b0
+#define MN_vcmplesh 0x22ba
+#define MN_vcmpfalsesh 0x22c3
+#define MN_vcmptruesh 0x22cf
+#define MN_vscalefsh 0x22da
+#define MN_vucomish 0x22e4
+#define MN_vcomish 0x22ed
+#define MN_vmulsh 0x22f5
+#define MN_vminsh 0x22fc
+#define MN_vrcpsh 0x2303
+#define MN_vcmpsh 0x230a
+#define MN_vgetexpsh 0x2311
+#define MN_vcmpunord_qsh 0x231b
+#define MN_vcmpord_qsh 0x2329
+#define MN_vcmpneqsh 0x2335
+#define MN_vcmpeqsh 0x233f
+#define MN_vcmpge_oqsh 0x2348
+#define MN_vcmple_oqsh 0x2354
+#define MN_vcmpfalse_oqsh 0x2360
+#define MN_vcmpneq_oqsh 0x236f
+#define MN_vcmpeq_oqsh 0x237c
+#define MN_vcmpgt_oqsh 0x2388
+#define MN_vcmplt_oqsh 0x2394
+#define MN_vcmpnge_uqsh 0x23a0
+#define MN_vcmpnle_uqsh 0x23ad
+#define MN_vcmptrue_uqsh 0x23ba
+#define MN_vcmpneq_uqsh 0x23c8
+#define MN_vcmpeq_uqsh 0x23d5
+#define MN_vcmpngt_uqsh 0x23e1
+#define MN_vcmpnlt_uqsh 0x23ee
+#define MN_vcmpunord_ssh 0x23fb
+#define MN_vcmpord_ssh 0x2409
+#define MN_vcmpge_ossh 0x2415
+#define MN_vcmple_ossh 0x2421
+#define MN_vcmpfalse_ossh 0x242d
+#define MN_vcmpneq_ossh 0x243c
+#define MN_vcmpeq_ossh 0x2449
+#define MN_vcmpgt_ossh 0x2455
+#define MN_vcmplt_ossh 0x2461
+#define MN_vfpclasssh 0x246d
+#define MN_vcmpnge_ussh 0x2478
+#define MN_vcmpnle_ussh 0x2485
+#define MN_vcmptrue_ussh 0x2492
+#define MN_vcmpneq_ussh 0x24a0
+#define MN_vcmpeq_ussh 0x24ad
+#define MN_vcmpngt_ussh 0x24b9
+#define MN_vcmpnlt_ussh 0x24c6
+#define MN_vcmpngtsh 0x24d3
+#define MN_vcmpgtsh 0x24dd
+#define MN_vcmpnltsh 0x24e6
+#define MN_vcmpltsh 0x24f0
+#define MN_vgetmantsh 0x24f9
+#define MN_vrsqrtsh 0x2504
+#define MN_vsqrtsh 0x250d
+#define MN_clflush 0x2515
+#define MN_push 0x251d
+#define MN_vdivsh 0x2522
+#define MN_vmovsh 0x2529
+#define MN_vmaxsh 0x2530
+#define MN_blci 0x2537
+#define MN_clgi 0x253c
+#define MN_stgi 0x2541
+#define MN_bzhi 0x2546
+#define MN_cli 0x254b
+#define MN_fcomi 0x254f
+#define MN_fucomi 0x2555
+#define MN_feni 0x255c
+#define MN_fneni 0x2561
+#define MN_cvttpd2pi 0x2567
+#define MN_cvtpd2pi 0x2571
+#define MN_cvttps2pi 0x257a
+#define MN_cvtps2pi 0x2584
+#define MN_fldpi 0x258d
+#define MN_senduipi 0x2593
+#define MN_fcompi 0x259c
+#define MN_fucompi 0x25a3
+#define MN_movdiri 0x25ab
 #define MN_pcmpestri (MN_vpcmpestri + 1)
-#define MN_vpcmpestri 0x253d
+#define MN_vpcmpestri 0x25b3
 #define MN_pcmpistri (MN_vpcmpistri + 1)
-#define MN_vpcmpistri 0x2548
+#define MN_vpcmpistri 0x25be
 #define MN_cvttsd2si (MN_vcvttsd2si + 1)
-#define MN_vcvttsd2si 0x2553
+#define MN_vcvttsd2si 0x25c9
 #define MN_cvtsd2si (MN_vcvtsd2si + 1)
-#define MN_vcvtsd2si 0x255e
-#define MN_vcvttsh2si 0x2568
-#define MN_vcvtsh2si 0x2573
+#define MN_vcvtsd2si 0x25d4
+#define MN_vcvttsh2si 0x25de
+#define MN_vcvtsh2si 0x25e9
 #define MN_cvttss2si (MN_vcvttss2si + 1)
-#define MN_vcvttss2si 0x257d
+#define MN_vcvttss2si 0x25f3
 #define MN_cvtss2si (MN_vcvtss2si + 1)
-#define MN_vcvtss2si 0x2588
-#define MN_fdisi 0x2592
-#define MN_fndisi 0x2598
-#define MN_blsi 0x259f
-#define MN_vcvttsd2usi 0x25a4
-#define MN_vcvtsd2usi 0x25b0
-#define MN_vcvttsh2usi 0x25bb
-#define MN_vcvtsh2usi 0x25c7
-#define MN_vcvttss2usi 0x25d2
-#define MN_vcvtss2usi 0x25de
-#define MN_movnti 0x25e9
-#define MN_sti 0x25f0
-#define MN_clui 0x25f4
+#define MN_vcvtss2si 0x25fe
+#define MN_fdisi 0x2608
+#define MN_fndisi 0x260e
+#define MN_blsi 0x2615
+#define MN_vcvttsd2usi 0x261a
+#define MN_vcvtsd2usi 0x2626
+#define MN_vcvttsh2usi 0x2631
+#define MN_vcvtsh2usi 0x263d
+#define MN_vcvttss2usi 0x2648
+#define MN_vcvtss2usi 0x2654
+#define MN_movnti 0x265f
+#define MN_sti 0x2666
+#define MN_clui 0x266a
 #define MN_stui (MN_testui + 2)
-#define MN_testui 0x25f9
-#define MN_notrack 0x2600
-#define MN_lock 0x2608
-#define MN_bndmk 0x260d
-#define MN_xresldtrk 0x2613
-#define MN_xsusldtrk 0x261d
-#define MN_blcmsk 0x2627
-#define MN_blsmsk 0x262e
-#define MN_tzmsk 0x2635
-#define MN_sal 0x263b
-#define MN_lwpval 0x263f
-#define MN_bndcl 0x2646
-#define MN_rcl 0x264c
-#define MN_shl 0x2650
-#define MN_jl 0x2654
-#define MN_aesdec256kl 0x2657
-#define MN_aesenc256kl 0x2663
-#define MN_aesdecwide256kl 0x266f
-#define MN_aesencwide256kl 0x267f
-#define MN_aesdec128kl 0x268f
-#define MN_aesenc128kl 0x269b
-#define MN_aesdecwide128kl 0x26a7
-#define MN_aesencwide128kl 0x26b7
+#define MN_testui 0x266f
+#define MN_notrack 0x2676
+#define MN_lock 0x267e
+#define MN_bndmk 0x2683
+#define MN_xresldtrk 0x2689
+#define MN_xsusldtrk 0x2693
+#define MN_blcmsk 0x269d
+#define MN_blsmsk 0x26a4
+#define MN_tzmsk 0x26ab
+#define MN_sal 0x26b1
+#define MN_lwpval 0x26b5
+#define MN_bndcl 0x26bc
+#define MN_rcl 0x26c2
+#define MN_shl 0x26c6
+#define MN_jl 0x26ca
+#define MN_aesdec256kl 0x26cd
+#define MN_aesenc256kl 0x26d9
+#define MN_aesdecwide256kl 0x26e5
+#define MN_aesencwide256kl 0x26f5
+#define MN_aesdec128kl 0x2705
+#define MN_aesenc128kl 0x2711
+#define MN_aesdecwide128kl 0x271d
+#define MN_aesencwide128kl 0x272d
 #define MN_call (MN_tdcall + 2)
-#define MN_tdcall 0x26c7
-#define MN_lcall 0x26ce
-#define MN_seamcall 0x26d4
-#define MN_vmmcall 0x26dd
-#define MN_vmcall 0x26e5
-#define MN_syscall 0x26ec
-#define MN_vzeroall 0x26f4
-#define MN_fildll 0x26fd
-#define MN_blcfill 0x2704
-#define MN_blsfill 0x270c
-#define MN_fistpll 0x2714
-#define MN_fisttpll 0x271c
-#define MN_jnl 0x2725
-#define MN_setnl 0x2729
-#define MN_cmovnl 0x272f
-#define MN_rol 0x2736
-#define MN_arpl 0x273a
-#define MN_vpmacsdql 0x273f
-#define MN_vpmacssdql 0x2749
-#define MN_lsl 0x2754
-#define MN_movsl 0x2758
-#define MN_setl 0x275e
-#define MN_cwtl 0x2763
+#define MN_tdcall 0x273d
+#define MN_lcall 0x2744
+#define MN_seamcall 0x274a
+#define MN_vmmcall 0x2753
+#define MN_vmcall 0x275b
+#define MN_syscall 0x2762
+#define MN_vzeroall 0x276a
+#define MN_fildll 0x2773
+#define MN_blcfill 0x277a
+#define MN_blsfill 0x2782
+#define MN_fistpll 0x278a
+#define MN_fisttpll 0x2792
+#define MN_jnl 0x279b
+#define MN_setnl 0x279f
+#define MN_cmovnl 0x27a5
+#define MN_rol 0x27ac
+#define MN_arpl 0x27b0
+#define MN_vpmacsdql 0x27b5
+#define MN_vpmacssdql 0x27bf
+#define MN_lsl 0x27ca
+#define MN_movsl 0x27ce
+#define MN_setl 0x27d4
+#define MN_cwtl 0x27d9
 #define MN_mul (MN_fmul + 1)
 #define MN_fmul (MN_pfmul + 1)
-#define MN_pfmul 0x2768
+#define MN_pfmul 0x27de
 #define MN_imul (MN_fimul + 1)
-#define MN_fimul 0x276e
-#define MN_montmul 0x2774
-#define MN_cmovl 0x277c
-#define MN_vpmovb2m 0x2782
-#define MN_vpmovd2m 0x278b
-#define MN_vpmovq2m 0x2794
-#define MN_vpmovw2m 0x279d
-#define MN_aam 0x27a6
-#define MN_fxam 0x27aa
-#define MN_fprem 0x27af
-#define MN_fcom 0x27b5
-#define MN_ficom 0x27ba
-#define MN_fucom 0x27c0
-#define MN_fsetpm 0x27c6
-#define MN_fnsetpm 0x27cd
-#define MN_frstpm 0x27d5
-#define MN_vpperm 0x27dc
+#define MN_fimul 0x27e4
+#define MN_montmul 0x27ea
+#define MN_cmovl 0x27f2
+#define MN_vpmovb2m 0x27f8
+#define MN_vpmovd2m 0x2801
+#define MN_vpmovq2m 0x280a
+#define MN_vpmovw2m 0x2813
+#define MN_aam 0x281c
+#define MN_fxam 0x2820
+#define MN_fprem 0x2825
+#define MN_fcom 0x282b
+#define MN_ficom 0x2830
+#define MN_fucom 0x2836
+#define MN_fsetpm 0x283c
+#define MN_fnsetpm 0x2843
+#define MN_frstpm 0x284b
+#define MN_vpperm 0x2852
 #define MN_pcmpestrm (MN_vpcmpestrm + 1)
-#define MN_vpcmpestrm 0x27e3
+#define MN_vpcmpestrm 0x2859
 #define MN_pcmpistrm (MN_vpcmpistrm + 1)
-#define MN_vpcmpistrm 0x27ee
-#define MN_rsm 0x27f9
-#define MN_fpatan 0x27fd
-#define MN_fptan 0x2804
-#define MN_bndcn 0x280a
+#define MN_vpcmpistrm 0x2864
+#define MN_rsm 0x286f
+#define MN_fpatan 0x2873
+#define MN_fptan 0x287a
+#define MN_bndcn 0x2880
 #define MN_andn (MN_pandn + 1)
 #define MN_pandn (MN_vpandn + 1)
-#define MN_vpandn 0x2810
+#define MN_vpandn 0x2886
 #define MN_in (MN_xbegin + 4)
-#define MN_xbegin 0x2817
-#define MN_pfmin 0x281e
-#define MN_fsin 0x2824
-#define MN_vmxon 0x2829
-#define MN_vmrun 0x282f
-#define MN_jo 0x2835
-#define MN_jno 0x2838
-#define MN_setno 0x283c
-#define MN_cmovno 0x2842
-#define MN_jpo 0x2849
-#define MN_setpo 0x284d
-#define MN_cmovpo 0x2853
-#define MN_cqo 0x285a
-#define MN_tilezero 0x285e
-#define MN_clzero 0x2867
-#define MN_seto 0x286e
-#define MN_into 0x2873
-#define MN_cqto 0x2878
-#define MN_ssto 0x287d
-#define MN_cmovo 0x2882
-#define MN_bswap 0x2888
-#define MN_fsubp 0x288e
-#define MN_pfrcp 0x2894
-#define MN_rdtscp 0x289a
-#define MN_faddp 0x28a1
-#define MN_pdep 0x28a7
-#define MN_ffreep 0x28ac
-#define MN_rep 0x28b3
-#define MN_fcomip 0x28b7
-#define MN_fucomip 0x28be
-#define MN_jp 0x28c6
-#define MN_fmulp 0x28c9
+#define MN_xbegin 0x288d
+#define MN_pfmin 0x2894
+#define MN_fsin 0x289a
+#define MN_vmxon 0x289f
+#define MN_vmrun 0x28a5
+#define MN_jo 0x28ab
+#define MN_jno 0x28ae
+#define MN_setno 0x28b2
+#define MN_cmovno 0x28b8
+#define MN_jpo 0x28bf
+#define MN_setpo 0x28c3
+#define MN_cmovpo 0x28c9
+#define MN_cqo 0x28d0
+#define MN_tilezero 0x28d4
+#define MN_clzero 0x28dd
+#define MN_seto 0x28e4
+#define MN_into 0x28e9
+#define MN_cqto 0x28ee
+#define MN_ssto 0x28f3
+#define MN_cmovo 0x28f8
+#define MN_bswap 0x28fe
+#define MN_fsubp 0x2904
+#define MN_pfrcp 0x290a
+#define MN_rdtscp 0x2910
+#define MN_faddp 0x2917
+#define MN_pdep 0x291d
+#define MN_ffreep 0x2922
+#define MN_rep 0x2929
+#define MN_fcomip 0x292d
+#define MN_fucomip 0x2934
+#define MN_jp 0x293c
+#define MN_fmulp 0x293f
 #define MN_cmp (MN_scmp + 1)
-#define MN_scmp 0x28cf
+#define MN_scmp 0x2945
 #define MN_jmp (MN_ljmp + 1)
-#define MN_ljmp 0x28d4
-#define MN_fcomp 0x28d9
-#define MN_ficomp 0x28df
-#define MN_fucomp 0x28e6
-#define MN_jnp 0x28ed
-#define MN_setnp 0x28f1
-#define MN_cmovnp 0x28f7
+#define MN_ljmp 0x294a
+#define MN_fcomp 0x294f
+#define MN_ficomp 0x2955
+#define MN_fucomp 0x295c
+#define MN_jnp 0x2963
+#define MN_setnp 0x2967
+#define MN_cmovnp 0x296d
 #define MN_nop (MN_fnop + 1)
-#define MN_fnop 0x28fe
-#define MN_loop 0x2903
-#define MN_pop 0x2908
-#define MN_fcompp 0x290c
-#define MN_fucompp 0x2913
-#define MN_fsubrp 0x291b
-#define MN_fdivrp 0x2922
-#define MN_rstorssp 0x2929
-#define MN_saveprevssp 0x2932
-#define MN_setp 0x293e
-#define MN_fbstp 0x2943
-#define MN_fdecstp 0x2949
-#define MN_fincstp 0x2951
-#define MN_fstp 0x2959
-#define MN_fistp 0x295e
-#define MN_fisttp 0x2964
+#define MN_fnop 0x2974
+#define MN_loop 0x2979
+#define MN_pop 0x297e
+#define MN_fcompp 0x2982
+#define MN_fucompp 0x2989
+#define MN_fsubrp 0x2991
+#define MN_fdivrp 0x2998
+#define MN_rstorssp 0x299f
+#define MN_saveprevssp 0x29a8
+#define MN_setp 0x29b4
+#define MN_fbstp 0x29b9
+#define MN_fdecstp 0x29bf
+#define MN_fincstp 0x29c7
+#define MN_fstp 0x29cf
+#define MN_fistp 0x29d4
+#define MN_fisttp 0x29da
 #define MN_movddup (MN_vmovddup + 1)
-#define MN_vmovddup 0x296b
+#define MN_vmovddup 0x29e1
 #define MN_movshdup (MN_vmovshdup + 1)
-#define MN_vmovshdup 0x2974
+#define MN_vmovshdup 0x29ea
 #define MN_movsldup (MN_vmovsldup + 1)
-#define MN_vmovsldup 0x297e
-#define MN_fdivp 0x2988
-#define MN_cmovp 0x298e
-#define MN_vpbroadcastmb2q 0x2994
-#define MN_vpermi2q 0x29a4
-#define MN_vpmovm2q 0x29ad
-#define MN_movdq2q 0x29b6
-#define MN_vpermt2q 0x29be
-#define MN_vpshaq 0x29c7
-#define MN_vpsraq 0x29ce
-#define MN_vphaddbq 0x29d5
-#define MN_vphaddubq 0x29de
+#define MN_vmovsldup 0x29f4
+#define MN_fdivp 0x29fe
+#define MN_cmovp 0x2a04
+#define MN_vpbroadcastmb2q 0x2a0a
+#define MN_vpermi2q 0x2a1a
+#define MN_vpmovm2q 0x2a23
+#define MN_movdq2q 0x2a2c
+#define MN_vpermt2q 0x2a34
+#define MN_vpshaq 0x2a3d
+#define MN_vpsraq 0x2a44
+#define MN_vphaddbq 0x2a4b
+#define MN_vphaddubq 0x2a54
 #define MN_psubq (MN_vpsubq + 1)
-#define MN_vpsubq 0x29e8
+#define MN_vpsubq 0x2a5e
 #define MN_pmovsxbq (MN_vpmovsxbq + 1)
-#define MN_vpmovsxbq 0x29ef
+#define MN_vpmovsxbq 0x2a65
 #define MN_pmovzxbq (MN_vpmovzxbq + 1)
-#define MN_vpmovzxbq 0x29f9
+#define MN_vpmovzxbq 0x2a6f
 #define MN_cvttpd2dq (MN_vcvttpd2dq + 1)
-#define MN_vcvttpd2dq 0x2a03
+#define MN_vcvttpd2dq 0x2a79
 #define MN_cvtpd2dq (MN_vcvtpd2dq + 1)
-#define MN_vcvtpd2dq 0x2a0e
-#define MN_vcvttph2dq 0x2a18
-#define MN_vcvtph2dq 0x2a23
-#define MN_movq2dq 0x2a2d
+#define MN_vcvtpd2dq 0x2a84
+#define MN_vcvttph2dq 0x2a8e
+#define MN_vcvtph2dq 0x2a99
+#define MN_movq2dq 0x2aa3
 #define MN_cvttps2dq (MN_vcvttps2dq + 1)
-#define MN_vcvttps2dq 0x2a35
+#define MN_vcvttps2dq 0x2aab
 #define MN_cvtps2dq (MN_vcvtps2dq + 1)
-#define MN_vcvtps2dq 0x2a40
-#define MN_vphsubdq 0x2a4a
-#define MN_cdq 0x2a53
-#define MN_kaddq 0x2a57
+#define MN_vcvtps2dq 0x2ab6
+#define MN_vphsubdq 0x2ac0
+#define MN_cdq 0x2ac9
+#define MN_kaddq 0x2acd
 #define MN_paddq (MN_vpaddq + 1)
-#define MN_vpaddq 0x2a5d
-#define MN_vphadddq 0x2a64
+#define MN_vpaddq 0x2ad3
+#define MN_vphadddq 0x2ada
 #define MN_punpckhdq (MN_vpunpckhdq + 1)
-#define MN_vpunpckhdq 0x2a6d
-#define MN_kunpckdq 0x2a78
-#define MN_vpshldq 0x2a81
+#define MN_vpunpckhdq 0x2ae3
+#define MN_kunpckdq 0x2aee
+#define MN_vpshldq 0x2af7
 #define MN_punpckldq (MN_vpunpckldq + 1)
-#define MN_vpunpckldq 0x2a89
+#define MN_vpunpckldq 0x2aff
 #define MN_pslldq (MN_vpslldq + 1)
-#define MN_vpslldq 0x2a94
+#define MN_vpslldq 0x2b0a
 #define MN_psrldq (MN_vpsrldq + 1)
-#define MN_vpsrldq 0x2a9c
+#define MN_vpsrldq 0x2b12
 #define MN_pmuldq (MN_vpmuldq + 1)
-#define MN_vpmuldq 0x2aa4
-#define MN_kandq 0x2aac
-#define MN_vpandq 0x2ab2
-#define MN_vpexpandq 0x2ab9
+#define MN_vpmuldq 0x2b1a
+#define MN_kandq 0x2b22
+#define MN_vpandq 0x2b28
+#define MN_vpexpandq 0x2b2f
 #define MN_punpckhqdq (MN_vpunpckhqdq + 1)
-#define MN_vpunpckhqdq 0x2ac3
+#define MN_vpunpckhqdq 0x2b39
 #define MN_pclmulhqhqdq (MN_vpclmulhqhqdq + 1)
-#define MN_vpclmulhqhqdq 0x2acf
+#define MN_vpclmulhqhqdq 0x2b45
 #define MN_pclmullqhqdq (MN_vpclmullqhqdq + 1)
-#define MN_vpclmullqhqdq 0x2add
+#define MN_vpclmullqhqdq 0x2b53
 #define MN_punpcklqdq (MN_vpunpcklqdq + 1)
-#define MN_vpunpcklqdq 0x2aeb
+#define MN_vpunpcklqdq 0x2b61
 #define MN_pclmulhqlqdq (MN_vpclmulhqlqdq + 1)
-#define MN_vpclmulhqlqdq 0x2af7
+#define MN_vpclmulhqlqdq 0x2b6d
 #define MN_pclmullqlqdq (MN_vpclmullqlqdq + 1)
-#define MN_vpclmullqlqdq 0x2b05
+#define MN_vpclmullqlqdq 0x2b7b
 #define MN_pclmulqdq (MN_vpclmulqdq + 1)
-#define MN_vpclmulqdq 0x2b13
-#define MN_vpgatherdq 0x2b1e
-#define MN_vpscatterdq 0x2b29
-#define MN_vpshrdq 0x2b35
+#define MN_vpclmulqdq 0x2b89
+#define MN_vpgatherdq 0x2b94
+#define MN_vpscatterdq 0x2b9f
+#define MN_vpshrdq 0x2bab
 #define MN_movntdq (MN_vmovntdq + 1)
-#define MN_vmovntdq 0x2b3d
-#define MN_vcvttpd2udq 0x2b46
-#define MN_vcvtpd2udq 0x2b52
-#define MN_vcvttph2udq 0x2b5d
-#define MN_vcvtph2udq 0x2b69
-#define MN_vcvttps2udq 0x2b74
-#define MN_vcvtps2udq 0x2b80
-#define MN_vphaddudq 0x2b8b
+#define MN_vmovntdq 0x2bb3
+#define MN_vcvttpd2udq 0x2bbc
+#define MN_vcvtpd2udq 0x2bc8
+#define MN_vcvttph2udq 0x2bd3
+#define MN_vcvtph2udq 0x2bdf
+#define MN_vcvttps2udq 0x2bea
+#define MN_vcvtps2udq 0x2bf6
+#define MN_vphaddudq 0x2c01
 #define MN_pmuludq (MN_vpmuludq + 1)
-#define MN_vpmuludq 0x2b95
+#define MN_vpmuludq 0x2c0b
 #define MN_pmovsxdq (MN_vpmovsxdq + 1)
-#define MN_vpmovsxdq 0x2b9e
+#define MN_vpmovsxdq 0x2c14
 #define MN_pmovzxdq (MN_vpmovzxdq + 1)
-#define MN_vpmovzxdq 0x2ba8
-#define MN_vpcomgeq 0x2bb2
-#define MN_vpcomleq 0x2bbb
-#define MN_vpcmpnleq 0x2bc4
-#define MN_vpcmpleq 0x2bce
-#define MN_pfcmpeq 0x2bd7
-#define MN_vpcomfalseq 0x2bdf
-#define MN_vpcomtrueq 0x2beb
-#define MN_vpternlogq 0x2bf6
-#define MN_vpshlq 0x2c01
+#define MN_vpmovzxdq 0x2c1e
+#define MN_vpcomgeq 0x2c28
+#define MN_vpcomleq 0x2c31
+#define MN_vpcmpnleq 0x2c3a
+#define MN_vpcmpleq 0x2c44
+#define MN_pfcmpeq 0x2c4d
+#define MN_vpcomfalseq 0x2c55
+#define MN_vpcomtrueq 0x2c61
+#define MN_vpternlogq 0x2c6c
+#define MN_vpshlq 0x2c77
 #define MN_psllq (MN_vpsllq + 1)
-#define MN_vpsllq 0x2c08
-#define MN_vpmullq 0x2c0f
-#define MN_vprolq 0x2c17
+#define MN_vpsllq 0x2c7e
+#define MN_vpmullq 0x2c85
+#define MN_vprolq 0x2c8d
 #define MN_psrlq (MN_vpsrlq + 1)
-#define MN_vpsrlq 0x2c1e
-#define MN_kshiftlq 0x2c25
-#define MN_vpblendmq 0x2c2e
-#define MN_vptestnmq 0x2c38
-#define MN_vpcomq 0x2c42
-#define MN_vpermq 0x2c49
-#define MN_vptestmq 0x2c50
-#define MN_kandnq 0x2c59
-#define MN_vpandnq 0x2c60
-#define MN_valignq 0x2c68
-#define MN_vpcmpq 0x2c70
-#define MN_incsspq 0x2c77
-#define MN_rdsspq 0x2c7f
-#define MN_vcvttpd2qq 0x2c86
-#define MN_vcvtpd2qq 0x2c91
-#define MN_vcvttph2qq 0x2c9b
-#define MN_vcvtph2qq 0x2ca6
-#define MN_vcvttps2qq 0x2cb0
-#define MN_vcvtps2qq 0x2cbb
-#define MN_vpcomeqq 0x2cc5
-#define MN_vpcomneqq 0x2cce
-#define MN_vpcmpneqq 0x2cd8
+#define MN_vpsrlq 0x2c94
+#define MN_kshiftlq 0x2c9b
+#define MN_vpblendmq 0x2ca4
+#define MN_vptestnmq 0x2cae
+#define MN_vpcomq 0x2cb8
+#define MN_vpermq 0x2cbf
+#define MN_vptestmq 0x2cc6
+#define MN_kandnq 0x2ccf
+#define MN_vpandnq 0x2cd6
+#define MN_valignq 0x2cde
+#define MN_vpcmpq 0x2ce6
+#define MN_incsspq 0x2ced
+#define MN_rdsspq 0x2cf5
+#define MN_vcvttpd2qq 0x2cfc
+#define MN_vcvtpd2qq 0x2d07
+#define MN_vcvttph2qq 0x2d11
+#define MN_vcvtph2qq 0x2d1c
+#define MN_vcvttps2qq 0x2d26
+#define MN_vcvtps2qq 0x2d31
+#define MN_vpcomeqq 0x2d3b
+#define MN_vpcomneqq 0x2d44
+#define MN_vpcmpneqq 0x2d4e
 #define MN_pcmpeqq (MN_vpcmpeqq + 1)
-#define MN_vpcmpeqq 0x2ce2
-#define MN_vpgatherqq 0x2ceb
-#define MN_vpscatterqq 0x2cf6
-#define MN_vcvttpd2uqq 0x2d02
-#define MN_vcvtpd2uqq 0x2d0e
-#define MN_vcvttph2uqq 0x2d19
-#define MN_vcvtph2uqq 0x2d25
-#define MN_vcvttps2uqq 0x2d30
-#define MN_vcvtps2uqq 0x2d3c
-#define MN_korq 0x2d47
-#define MN_kxnorq 0x2d4c
-#define MN_vporq 0x2d53
-#define MN_vprorq 0x2d59
-#define MN_kxorq 0x2d60
-#define MN_vpxorq 0x2d66
+#define MN_vpcmpeqq 0x2d58
+#define MN_vpgatherqq 0x2d61
+#define MN_vpscatterqq 0x2d6c
+#define MN_vcvttpd2uqq 0x2d78
+#define MN_vcvtpd2uqq 0x2d84
+#define MN_vcvttph2uqq 0x2d8f
+#define MN_vcvtph2uqq 0x2d9b
+#define MN_vcvttps2uqq 0x2da6
+#define MN_vcvtps2uqq 0x2db2
+#define MN_korq 0x2dbd
+#define MN_kxnorq 0x2dc2
+#define MN_vporq 0x2dc9
+#define MN_vprorq 0x2dcf
+#define MN_kxorq 0x2dd6
+#define MN_vpxorq 0x2ddc
 #define MN_pinsrq (MN_vpinsrq + 1)
-#define MN_vpinsrq 0x2d6d
-#define MN_kshiftrq 0x2d75
+#define MN_vpinsrq 0x2de3
+#define MN_kshiftrq 0x2deb
 #define MN_extrq (MN_pextrq + 1)
 #define MN_pextrq (MN_vpextrq + 1)
-#define MN_vpextrq 0x2d7e
-#define MN_vpabsq 0x2d86
-#define MN_vpminsq 0x2d8d
-#define MN_vpcompressq 0x2d95
-#define MN_wrssq 0x2da1
-#define MN_wrussq 0x2da7
-#define MN_vpmaxsq 0x2dae
-#define MN_vp2intersectq 0x2db6
-#define MN_vpconflictq 0x2dc4
-#define MN_vpcomgtq 0x2dd0
+#define MN_vpextrq 0x2df4
+#define MN_vpabsq 0x2dfc
+#define MN_vpminsq 0x2e03
+#define MN_vpcompressq 0x2e0b
+#define MN_wrssq 0x2e17
+#define MN_wrussq 0x2e1d
+#define MN_vpmaxsq 0x2e24
+#define MN_vp2intersectq 0x2e2c
+#define MN_vpconflictq 0x2e3a
+#define MN_vpcomgtq 0x2e46
 #define MN_pcmpgtq (MN_vpcmpgtq + 1)
-#define MN_vpcmpgtq 0x2dd9
-#define MN_cltq 0x2de2
-#define MN_vpcomltq 0x2de7
-#define MN_vpcmpnltq 0x2df0
-#define MN_vpcmpltq 0x2dfa
-#define MN_vpopcntq 0x2e03
-#define MN_vplzcntq 0x2e0c
-#define MN_movntq 0x2e15
-#define MN_knotq 0x2e1c
-#define MN_vprotq 0x2e22
-#define MN_insertq 0x2e29
-#define MN_vpbroadcastq 0x2e31
-#define MN_ktestq 0x2e3e
-#define MN_kortestq 0x2e45
-#define MN_vpcomgeuq 0x2e4e
-#define MN_vpcomleuq 0x2e58
-#define MN_vpcmpnleuq 0x2e62
-#define MN_vpcmpleuq 0x2e6d
-#define MN_vpcomfalseuq 0x2e77
-#define MN_vpcomtrueuq 0x2e84
-#define MN_vpmadd52huq 0x2e90
-#define MN_vpmadd52luq 0x2e9c
-#define MN_vpcomuq 0x2ea8
-#define MN_vpminuq 0x2eb0
-#define MN_vpcmpuq 0x2eb8
-#define MN_vpcomequq 0x2ec0
-#define MN_vpcomnequq 0x2eca
-#define MN_vpcmpnequq 0x2ed5
-#define MN_vpcmpequq 0x2ee0
-#define MN_vpcomgtuq 0x2eea
-#define MN_vpcomltuq 0x2ef4
-#define MN_vpcmpnltuq 0x2efe
-#define MN_vpcmpltuq 0x2f09
-#define MN_vpmaxuq 0x2f13
-#define MN_vpsravq 0x2f1b
-#define MN_vpshldvq 0x2f23
-#define MN_vpshrdvq 0x2f2c
-#define MN_vpsllvq 0x2f35
-#define MN_vprolvq 0x2f3d
-#define MN_vpsrlvq 0x2f45
+#define MN_vpcmpgtq 0x2e4f
+#define MN_cltq 0x2e58
+#define MN_vpcomltq 0x2e5d
+#define MN_vpcmpnltq 0x2e66
+#define MN_vpcmpltq 0x2e70
+#define MN_vpopcntq 0x2e79
+#define MN_vplzcntq 0x2e82
+#define MN_movntq 0x2e8b
+#define MN_knotq 0x2e92
+#define MN_vprotq 0x2e98
+#define MN_insertq 0x2e9f
+#define MN_vpbroadcastq 0x2ea7
+#define MN_ktestq 0x2eb4
+#define MN_kortestq 0x2ebb
+#define MN_vpcomgeuq 0x2ec4
+#define MN_vpcomleuq 0x2ece
+#define MN_vpcmpnleuq 0x2ed8
+#define MN_vpcmpleuq 0x2ee3
+#define MN_vpcomfalseuq 0x2eed
+#define MN_vpcomtrueuq 0x2efa
+#define MN_vpmadd52huq 0x2f06
+#define MN_vpmadd52luq 0x2f12
+#define MN_vpcomuq 0x2f1e
+#define MN_vpminuq 0x2f26
+#define MN_vpcmpuq 0x2f2e
+#define MN_vpcomequq 0x2f36
+#define MN_vpcomnequq 0x2f40
+#define MN_vpcmpnequq 0x2f4b
+#define MN_vpcmpequq 0x2f56
+#define MN_vpcomgtuq 0x2f60
+#define MN_vpcomltuq 0x2f6a
+#define MN_vpcmpnltuq 0x2f74
+#define MN_vpcmpltuq 0x2f7f
+#define MN_vpmaxuq 0x2f89
+#define MN_vpsravq 0x2f91
+#define MN_vpshldvq 0x2f99
+#define MN_vpshrdvq 0x2fa2
+#define MN_vpsllvq 0x2fab
+#define MN_vprolvq 0x2fb3
+#define MN_vpsrlvq 0x2fbb
 #define MN_movq (MN_kmovq + 1)
 #define MN_kmovq (MN_maskmovq + 3)
 #define MN_maskmovq (MN_vpmaskmovq + 2)
-#define MN_vpmaskmovq 0x2f4d
-#define MN_vmovq 0x2f58
-#define MN_vprorvq 0x2f5e
-#define MN_vphaddwq 0x2f66
-#define MN_vphadduwq 0x2f6f
+#define MN_vpmaskmovq 0x2fc3
+#define MN_vmovq 0x2fce
+#define MN_vprorvq 0x2fd4
+#define MN_vphaddwq 0x2fdc
+#define MN_vphadduwq 0x2fe5
 #define MN_pmovsxwq (MN_vpmovsxwq + 1)
-#define MN_vpmovsxwq 0x2f79
+#define MN_vpmovsxwq 0x2fef
 #define MN_pmovzxwq (MN_vpmovzxwq + 1)
-#define MN_vpmovzxwq 0x2f83
-#define MN_rex_r 0x2f8d
-#define MN_vmclear 0x2f93
-#define MN_lar 0x2f9b
-#define MN_sar 0x2f9f
+#define MN_vpmovzxwq 0x2ff9
+#define MN_rex_r 0x3003
+#define MN_vmclear 0x3009
+#define MN_lar 0x3011
+#define MN_sar 0x3015
 #define MN_fsubr (MN_pfsubr + 1)
-#define MN_pfsubr 0x2fa3
-#define MN_fisubr 0x2faa
-#define MN_rcr 0x2fb1
-#define MN_vzeroupper 0x2fb5
+#define MN_pfsubr 0x3019
+#define MN_fisubr 0x3020
+#define MN_rcr 0x3027
+#define MN_vzeroupper 0x302b
 #define MN_enter (MN_sysenter + 3)
-#define MN_sysenter 0x2fc0
-#define MN_shr 0x2fc9
-#define MN_clr 0x2fcd
+#define MN_sysenter 0x3036
+#define MN_shr 0x303f
+#define MN_clr 0x3043
 #define MN_palignr (MN_vpalignr + 1)
-#define MN_vpalignr 0x2fd1
+#define MN_vpalignr 0x3047
 #define MN_or (MN_aor + 1)
-#define MN_aor 0x2fda
+#define MN_aor 0x3050
 #define MN_por (MN_vpor + 1)
-#define MN_vpor 0x2fde
-#define MN_ror 0x2fe3
+#define MN_vpor 0x3054
+#define MN_ror 0x3059
 #define MN_monitor (MN_umonitor + 1)
-#define MN_umonitor 0x2fe7
-#define MN_frstor 0x2ff0
+#define MN_umonitor 0x305d
+#define MN_frstor 0x3066
 #define MN_xrstor (MN_fxrstor + 1)
-#define MN_fxrstor 0x2ff7
+#define MN_fxrstor 0x306d
 #define MN_xor (MN_axor + 1)
-#define MN_axor 0x2fff
+#define MN_axor 0x3075
 #define MN_pxor (MN_vpxor + 1)
-#define MN_vpxor 0x3004
-#define MN_verr 0x300a
-#define MN_bsr 0x300f
+#define MN_vpxor 0x307a
+#define MN_verr 0x3080
+#define MN_bsr 0x3085
 #define MN_ldmxcsr (MN_vldmxcsr + 1)
-#define MN_vldmxcsr 0x3013
+#define MN_vldmxcsr 0x3089
 #define MN_stmxcsr (MN_vstmxcsr + 1)
-#define MN_vstmxcsr 0x301c
-#define MN_blsr 0x3025
-#define MN_rdmsr 0x302a
-#define MN_wrmsr 0x3030
-#define MN_btr 0x3036
-#define MN_xcrypt_ctr 0x303a
-#define MN_xcryptctr 0x3045
-#define MN_ltr 0x304f
-#define MN_str 0x3053
-#define MN_bextr 0x3057
-#define MN_fdivr 0x305d
-#define MN_fidivr 0x3063
-#define MN_rex_wr 0x306a
-#define MN_aas 0x3071
-#define MN_scas 0x3075
-#define MN_das 0x307a
-#define MN_fabs 0x307e
-#define MN_movabs 0x3083
+#define MN_vstmxcsr 0x3092
+#define MN_blsr 0x309b
+#define MN_rdmsr 0x30a0
+#define MN_wrmsr 0x30a6
+#define MN_btr 0x30ac
+#define MN_xcrypt_ctr 0x30b0
+#define MN_xcryptctr 0x30bb
+#define MN_ltr 0x30c5
+#define MN_str 0x30c9
+#define MN_bextr 0x30cd
+#define MN_fdivr 0x30d3
+#define MN_fidivr 0x30d9
+#define MN_rex_wr 0x30e0
+#define MN_aas 0x30e7
+#define MN_scas 0x30eb
+#define MN_das 0x30f0
+#define MN_fabs 0x30f4
+#define MN_movabs 0x30f9
 #define MN_cs (MN_blcs + 2)
-#define MN_blcs 0x308a
+#define MN_blcs 0x3100
 #define MN_ds (MN_lds + 1)
-#define MN_lds 0x308f
-#define MN_enqcmds 0x3093
-#define MN_lods 0x309b
-#define MN_vpdpbssds 0x30a0
-#define MN_vp4dpwssds 0x30aa
-#define MN_vpdpwssds 0x30b5
-#define MN_vpdpbusds 0x30bf
-#define MN_vpdpbsuds 0x30c9
-#define MN_vpdpbuuds 0x30d3
+#define MN_lds 0x3105
+#define MN_enqcmds 0x3109
+#define MN_lods 0x3111
+#define MN_vpdpbssds 0x3116
+#define MN_vp4dpwssds 0x3120
+#define MN_vpdpwssds 0x312b
+#define MN_vpdpbusds 0x3135
+#define MN_vpdpwusds 0x313f
+#define MN_vpdpbsuds 0x3149
+#define MN_vpdpwsuds 0x3153
+#define MN_vpdpbuuds 0x315d
+#define MN_vpdpwuuds 0x3167
 #define MN_es (MN_les + 1)
-#define MN_les 0x30dd
-#define MN_xsaves 0x30e1
+#define MN_les 0x3171
+#define MN_xsaves 0x3175
 #define MN_fs (MN_lfs + 1)
-#define MN_lfs 0x30e8
+#define MN_lfs 0x317c
 #define MN_gs (MN_lkgs + 2)
-#define MN_lkgs 0x30ec
-#define MN_lgs 0x30f1
-#define MN_swapgs 0x30f5
-#define MN_fchs 0x30fc
-#define MN_js 0x3101
-#define MN_encls 0x3104
+#define MN_lkgs 0x3180
+#define MN_lgs 0x3185
+#define MN_swapgs 0x3189
+#define MN_fchs 0x3190
+#define MN_js 0x3195
+#define MN_encls 0x3198
 #define MN_emms (MN_femms + 1)
-#define MN_femms 0x310a
+#define MN_femms 0x319e
 #define MN_ins (MN_lwpins + 3)
-#define MN_lwpins 0x3110
-#define MN_jns 0x3117
-#define MN_wrmsrns 0x311b
-#define MN_setns 0x3123
-#define MN_cmovns 0x3129
-#define MN_fcos 0x3130
-#define MN_fsincos 0x3135
-#define MN_stos 0x313d
-#define MN_vfmaddsub231ps 0x3142
-#define MN_vfmsub231ps 0x3151
-#define MN_vfnmsub231ps 0x315d
-#define MN_vfmsubadd231ps 0x316a
-#define MN_vfmadd231ps 0x3179
-#define MN_vfnmadd231ps 0x3185
-#define MN_vfmaddsub132ps 0x3192
-#define MN_vfmsub132ps 0x31a1
-#define MN_vfnmsub132ps 0x31ad
-#define MN_vfmsubadd132ps 0x31ba
-#define MN_vfmadd132ps 0x31c9
-#define MN_vfnmadd132ps 0x31d5
-#define MN_vcvtneebf162ps 0x31e2
-#define MN_vbcstnebf162ps 0x31f1
-#define MN_vcvtneobf162ps 0x3200
+#define MN_lwpins 0x31a4
+#define MN_jns 0x31ab
+#define MN_wrmsrns 0x31af
+#define MN_setns 0x31b7
+#define MN_cmovns 0x31bd
+#define MN_fcos 0x31c4
+#define MN_fsincos 0x31c9
+#define MN_stos 0x31d1
+#define MN_vfmaddsub231ps 0x31d6
+#define MN_vfmsub231ps 0x31e5
+#define MN_vfnmsub231ps 0x31f1
+#define MN_vfmsubadd231ps 0x31fe
+#define MN_vfmadd231ps 0x320d
+#define MN_vfnmadd231ps 0x3219
+#define MN_vfmaddsub132ps 0x3226
+#define MN_vfmsub132ps 0x3235
+#define MN_vfnmsub132ps 0x3241
+#define MN_vfmsubadd132ps 0x324e
+#define MN_vfmadd132ps 0x325d
+#define MN_vfnmadd132ps 0x3269
+#define MN_vcvtneebf162ps 0x3276
+#define MN_vbcstnebf162ps 0x3285
+#define MN_vcvtneobf162ps 0x3294
 #define MN_cvtpd2ps (MN_vcvtpd2ps + 1)
-#define MN_vcvtpd2ps 0x320f
-#define MN_vcvtneeph2ps 0x3219
-#define MN_vcvtneoph2ps 0x3226
-#define MN_vcvtph2ps 0x3233
-#define MN_vbcstnesh2ps 0x323d
-#define MN_vpermi2ps 0x324a
-#define MN_cvtpi2ps 0x3254
-#define MN_vpermil2ps 0x325d
-#define MN_vexp2ps 0x3268
+#define MN_vcvtpd2ps 0x32a3
+#define MN_vcvtneeph2ps 0x32ad
+#define MN_vcvtneoph2ps 0x32ba
+#define MN_vcvtph2ps 0x32c7
+#define MN_vbcstnesh2ps 0x32d1
+#define MN_vpermi2ps 0x32de
+#define MN_cvtpi2ps 0x32e8
+#define MN_vpermil2ps 0x32f1
+#define MN_vexp2ps 0x32fc
 #define MN_cvtdq2ps (MN_vcvtdq2ps + 1)
-#define MN_vcvtdq2ps 0x3270
-#define MN_vcvtudq2ps 0x327a
-#define MN_vcvtqq2ps 0x3285
-#define MN_vcvtuqq2ps 0x328f
-#define MN_vpermt2ps 0x329a
-#define MN_vfmaddsub213ps 0x32a4
-#define MN_vfmsub213ps 0x32b3
-#define MN_vfnmsub213ps 0x32bf
-#define MN_vfmsubadd213ps 0x32cc
-#define MN_vfmadd213ps 0x32db
-#define MN_vfnmadd213ps 0x32e7
-#define MN_vrcp14ps 0x32f4
-#define MN_vrsqrt14ps 0x32fd
-#define MN_tdpbf16ps 0x3308
-#define MN_vdpbf16ps 0x3312
-#define MN_tcmmrlfp16ps 0x331c
-#define MN_tcmmimfp16ps 0x3329
-#define MN_tdpfp16ps 0x3336
-#define MN_vrcp28ps 0x3340
-#define MN_vrsqrt28ps 0x3349
+#define MN_vcvtdq2ps 0x3304
+#define MN_vcvtudq2ps 0x330e
+#define MN_vcvtqq2ps 0x3319
+#define MN_vcvtuqq2ps 0x3323
+#define MN_vpermt2ps 0x332e
+#define MN_vfmaddsub213ps 0x3338
+#define MN_vfmsub213ps 0x3347
+#define MN_vfnmsub213ps 0x3353
+#define MN_vfmsubadd213ps 0x3360
+#define MN_vfmadd213ps 0x336f
+#define MN_vfnmadd213ps 0x337b
+#define MN_vrcp14ps 0x3388
+#define MN_vrsqrt14ps 0x3391
+#define MN_tdpbf16ps 0x339c
+#define MN_vdpbf16ps 0x33a6
+#define MN_tcmmrlfp16ps 0x33b0
+#define MN_tcmmimfp16ps 0x33bd
+#define MN_tdpfp16ps 0x33ca
+#define MN_vrcp28ps 0x33d4
+#define MN_vrsqrt28ps 0x33dd
 #define MN_movaps (MN_vmovaps + 1)
-#define MN_vmovaps 0x3354
+#define MN_vmovaps 0x33e8
 #define MN_subps (MN_addsubps + 3)
 #define MN_addsubps (MN_vfmaddsubps + 3)
-#define MN_vfmaddsubps 0x335c
-#define MN_vaddsubps 0x3368
+#define MN_vfmaddsubps 0x33f0
+#define MN_vaddsubps 0x33fc
 #define MN_hsubps (MN_vhsubps + 1)
-#define MN_vhsubps 0x3372
-#define MN_vfmsubps 0x337a
-#define MN_vfnmsubps 0x3383
-#define MN_vsubps 0x338d
-#define MN_vgatherpf0dps 0x3394
-#define MN_vscatterpf0dps 0x33a2
-#define MN_vgatherpf1dps 0x33b1
-#define MN_vscatterpf1dps 0x33bf
+#define MN_vhsubps 0x3406
+#define MN_vfmsubps 0x340e
+#define MN_vfnmsubps 0x3417
+#define MN_vsubps 0x3421
+#define MN_vgatherpf0dps 0x3428
+#define MN_vscatterpf0dps 0x3436
+#define MN_vgatherpf1dps 0x3445
+#define MN_vscatterpf1dps 0x3453
 #define MN_addps (MN_vfmsubaddps + 6)
-#define MN_vfmsubaddps 0x33ce
+#define MN_vfmsubaddps 0x3462
 #define MN_haddps (MN_vhaddps + 1)
-#define MN_vhaddps 0x33da
-#define MN_v4fmaddps 0x33e2
-#define MN_vfmaddps 0x33ec
-#define MN_v4fnmaddps 0x33f5
-#define MN_vfnmaddps 0x3400
-#define MN_vaddps 0x340a
+#define MN_vhaddps 0x346e
+#define MN_v4fmaddps 0x3476
+#define MN_vfmaddps 0x3480
+#define MN_v4fnmaddps 0x3489
+#define MN_vfnmaddps 0x3494
+#define MN_vaddps 0x349e
 #define MN_andps (MN_vexpandps + 4)
-#define MN_vexpandps 0x3411
-#define MN_vandps 0x341b
+#define MN_vexpandps 0x34a5
+#define MN_vandps 0x34af
 #define MN_blendps (MN_vblendps + 1)
-#define MN_vblendps 0x3422
+#define MN_vblendps 0x34b6
 #define MN_roundps (MN_vroundps + 1)
-#define MN_vroundps 0x342b
-#define MN_vgatherdps 0x3434
-#define MN_vscatterdps 0x343f
+#define MN_vroundps 0x34bf
+#define MN_vgatherdps 0x34c8
+#define MN_vscatterdps 0x34d3
 #define MN_cmpunordps (MN_vcmpunordps + 1)
-#define MN_vcmpunordps 0x344b
+#define MN_vcmpunordps 0x34df
 #define MN_cmpordps (MN_vcmpordps + 1)
-#define MN_vcmpordps 0x3457
-#define MN_vreduceps 0x3461
-#define MN_vrangeps 0x346b
-#define MN_vcmpngeps 0x3474
-#define MN_vcmpgeps 0x347e
-#define MN_vrndscaleps 0x3487
+#define MN_vcmpordps 0x34eb
+#define MN_vreduceps 0x34f5
+#define MN_vrangeps 0x34ff
+#define MN_vcmpngeps 0x3508
+#define MN_vcmpgeps 0x3512
+#define MN_vrndscaleps 0x351b
 #define MN_cmpnleps (MN_vcmpnleps + 1)
-#define MN_vcmpnleps 0x3493
+#define MN_vcmpnleps 0x3527
 #define MN_cmpleps (MN_vcmpleps + 1)
-#define MN_vcmpleps 0x349d
-#define MN_vcmpfalseps 0x34a6
-#define MN_vcmptrueps 0x34b2
-#define MN_vscalefps 0x34bd
+#define MN_vcmpleps 0x3531
+#define MN_vcmpfalseps 0x353a
+#define MN_vcmptrueps 0x3546
+#define MN_vscalefps 0x3551
 #define MN_shufps (MN_vshufps + 1)
-#define MN_vshufps 0x34c7
+#define MN_vshufps 0x355b
 #define MN_unpckhps (MN_vunpckhps + 1)
-#define MN_vunpckhps 0x34cf
+#define MN_vunpckhps 0x3563
 #define MN_movlhps (MN_vmovlhps + 1)
-#define MN_vmovlhps 0x34d9
+#define MN_vmovlhps 0x356d
 #define MN_movhps (MN_vmovhps + 1)
-#define MN_vmovhps 0x34e2
+#define MN_vmovhps 0x3576
 #define MN_movmskps (MN_vmovmskps + 1)
-#define MN_vmovmskps 0x34ea
+#define MN_vmovmskps 0x357e
 #define MN_movhlps (MN_vmovhlps + 1)
-#define MN_vmovhlps 0x34f4
-#define MN_vpermilps 0x34fd
+#define MN_vmovhlps 0x3588
+#define MN_vpermilps 0x3591
 #define MN_unpcklps (MN_vunpcklps + 1)
-#define MN_vunpcklps 0x3507
+#define MN_vunpcklps 0x359b
 #define MN_mulps (MN_vmulps + 1)
-#define MN_vmulps 0x3511
+#define MN_vmulps 0x35a5
 #define MN_movlps (MN_vmovlps + 1)
-#define MN_vmovlps 0x3518
-#define MN_cmps 0x3520
-#define MN_vblendmps 0x3525
-#define MN_vfixupimmps 0x352f
-#define MN_vpermps 0x353b
+#define MN_vmovlps 0x35ac
+#define MN_cmps 0x35b4
+#define MN_vblendmps 0x35b9
+#define MN_vfixupimmps 0x35c3
+#define MN_vpermps 0x35cf
 #define MN_andnps (MN_vandnps + 1)
-#define MN_vandnps 0x3543
+#define MN_vandnps 0x35d7
 #define MN_minps (MN_vminps + 1)
-#define MN_vminps 0x354b
-#define MN_seamops 0x3552
+#define MN_vminps 0x35df
+#define MN_seamops 0x35e6
 #define MN_rcpps (MN_vrcpps + 1)
-#define MN_vrcpps 0x355a
+#define MN_vrcpps 0x35ee
 #define MN_dpps (MN_vdpps + 1)
-#define MN_vdpps 0x3561
+#define MN_vdpps 0x35f5
 #define MN_cmpps (MN_vcmpps + 1)
-#define MN_vcmpps 0x3567
-#define MN_vgetexpps 0x356e
-#define MN_vgatherpf0qps 0x3578
-#define MN_vscatterpf0qps 0x3586
-#define MN_vgatherpf1qps 0x3595
-#define MN_vscatterpf1qps 0x35a3
-#define MN_vcmpunord_qps 0x35b2
-#define MN_vcmpord_qps 0x35c0
+#define MN_vcmpps 0x35fb
+#define MN_vgetexpps 0x3602
+#define MN_vgatherpf0qps 0x360c
+#define MN_vscatterpf0qps 0x361a
+#define MN_vgatherpf1qps 0x3629
+#define MN_vscatterpf1qps 0x3637
+#define MN_vcmpunord_qps 0x3646
+#define MN_vcmpord_qps 0x3654
 #define MN_cmpneqps (MN_vcmpneqps + 1)
-#define MN_vcmpneqps 0x35cc
+#define MN_vcmpneqps 0x3660
 #define MN_cmpeqps (MN_vcmpeqps + 1)
-#define MN_vcmpeqps 0x35d6
-#define MN_vcmpge_oqps 0x35df
-#define MN_vcmple_oqps 0x35eb
-#define MN_vcmpfalse_oqps 0x35f7
-#define MN_vcmpneq_oqps 0x3606
-#define MN_vcmpeq_oqps 0x3613
-#define MN_vcmpgt_oqps 0x361f
-#define MN_vcmplt_oqps 0x362b
-#define MN_vgatherqps 0x3637
-#define MN_vscatterqps 0x3642
-#define MN_vcmpnge_uqps 0x364e
-#define MN_vcmpnle_uqps 0x365b
-#define MN_vcmptrue_uqps 0x3668
-#define MN_vcmpneq_uqps 0x3676
-#define MN_vcmpeq_uqps 0x3683
-#define MN_vcmpngt_uqps 0x368f
-#define MN_vcmpnlt_uqps 0x369c
+#define MN_vcmpeqps 0x366a
+#define MN_vcmpge_oqps 0x3673
+#define MN_vcmple_oqps 0x367f
+#define MN_vcmpfalse_oqps 0x368b
+#define MN_vcmpneq_oqps 0x369a
+#define MN_vcmpeq_oqps 0x36a7
+#define MN_vcmpgt_oqps 0x36b3
+#define MN_vcmplt_oqps 0x36bf
+#define MN_vgatherqps 0x36cb
+#define MN_vscatterqps 0x36d6
+#define MN_vcmpnge_uqps 0x36e2
+#define MN_vcmpnle_uqps 0x36ef
+#define MN_vcmptrue_uqps 0x36fc
+#define MN_vcmpneq_uqps 0x370a
+#define MN_vcmpeq_uqps 0x3717
+#define MN_vcmpngt_uqps 0x3723
+#define MN_vcmpnlt_uqps 0x3730
 #define MN_orps (MN_vorps + 1)
-#define MN_vorps 0x36a9
+#define MN_vorps 0x373d
 #define MN_xorps (MN_vxorps + 1)
-#define MN_vxorps 0x36af
-#define MN_vcmpunord_sps 0x36b6
-#define MN_vcmpord_sps 0x36c4
-#define MN_vcmpge_osps 0x36d0
-#define MN_vcmple_osps 0x36dc
-#define MN_vcmpfalse_osps 0x36e8
-#define MN_vcmpneq_osps 0x36f7
-#define MN_vcmpeq_osps 0x3704
-#define MN_vcmpgt_osps 0x3710
-#define MN_vcmplt_osps 0x371c
-#define MN_vfpclassps 0x3728
-#define MN_vcompressps 0x3733
-#define MN_vcmpnge_usps 0x373f
-#define MN_vcmpnle_usps 0x374c
-#define MN_vcmptrue_usps 0x3759
-#define MN_vcmpneq_usps 0x3767
-#define MN_vcmpeq_usps 0x3774
-#define MN_vcmpngt_usps 0x3780
-#define MN_vcmpnlt_usps 0x378d
+#define MN_vxorps 0x3743
+#define MN_vcmpunord_sps 0x374a
+#define MN_vcmpord_sps 0x3758
+#define MN_vcmpge_osps 0x3764
+#define MN_vcmple_osps 0x3770
+#define MN_vcmpfalse_osps 0x377c
+#define MN_vcmpneq_osps 0x378b
+#define MN_vcmpeq_osps 0x3798
+#define MN_vcmpgt_osps 0x37a4
+#define MN_vcmplt_osps 0x37b0
+#define MN_vfpclassps 0x37bc
+#define MN_vcompressps 0x37c7
+#define MN_vcmpnge_usps 0x37d3
+#define MN_vcmpnle_usps 0x37e0
+#define MN_vcmptrue_usps 0x37ed
+#define MN_vcmpneq_usps 0x37fb
+#define MN_vcmpeq_usps 0x3808
+#define MN_vcmpngt_usps 0x3814
+#define MN_vcmpnlt_usps 0x3821
 #define MN_extractps (MN_vextractps + 1)
-#define MN_vextractps 0x379a
-#define MN_vcmpngtps 0x37a5
-#define MN_vcmpgtps 0x37af
+#define MN_vextractps 0x382e
+#define MN_vcmpngtps 0x3839
+#define MN_vcmpgtps 0x3843
 #define MN_cmpnltps (MN_vcmpnltps + 1)
-#define MN_vcmpnltps 0x37b8
+#define MN_vcmpnltps 0x384c
 #define MN_cmpltps (MN_vcmpltps + 1)
-#define MN_vcmpltps 0x37c2
-#define MN_vgetmantps 0x37cb
+#define MN_vcmpltps 0x3856
+#define MN_vgetmantps 0x385f
 #define MN_movntps (MN_vmovntps + 1)
-#define MN_vmovntps 0x37d6
+#define MN_vmovntps 0x386a
 #define MN_insertps (MN_vinsertps + 1)
-#define MN_vinsertps 0x37df
+#define MN_vinsertps 0x3873
 #define MN_sqrtps (MN_rsqrtps + 1)
 #define MN_rsqrtps (MN_vrsqrtps + 1)
-#define MN_vrsqrtps 0x37e9
-#define MN_vsqrtps 0x37f2
-#define MN_vtestps 0x37fa
+#define MN_vrsqrtps 0x387d
+#define MN_vsqrtps 0x3886
+#define MN_vtestps 0x388e
 #define MN_movups (MN_vmovups + 1)
-#define MN_vmovups 0x3802
+#define MN_vmovups 0x3896
 #define MN_blendvps (MN_vblendvps + 1)
-#define MN_vblendvps 0x380a
+#define MN_vblendvps 0x389e
 #define MN_divps (MN_vdivps + 1)
-#define MN_vdivps 0x3814
-#define MN_vmaskmovps 0x381b
+#define MN_vdivps 0x38a8
+#define MN_vmaskmovps 0x38af
 #define MN_maxps (MN_vmaxps + 1)
-#define MN_vmaxps 0x3826
-#define MN_vfrczps 0x382d
-#define MN_xrstors 0x3835
+#define MN_vmaxps 0x38ba
+#define MN_vfrczps 0x38c1
+#define MN_xrstors 0x38c9
 #define MN_ss (MN_vfmsub231ss + 9)
-#define MN_vfmsub231ss 0x383d
-#define MN_vfnmsub231ss 0x3849
-#define MN_vfmadd231ss 0x3856
-#define MN_vfnmadd231ss 0x3862
-#define MN_vfmsub132ss 0x386f
-#define MN_vfnmsub132ss 0x387b
-#define MN_vfmadd132ss 0x3888
-#define MN_vfnmadd132ss 0x3894
+#define MN_vfmsub231ss 0x38d1
+#define MN_vfnmsub231ss 0x38dd
+#define MN_vfmadd231ss 0x38ea
+#define MN_vfnmadd231ss 0x38f6
+#define MN_vfmsub132ss 0x3903
+#define MN_vfnmsub132ss 0x390f
+#define MN_vfmadd132ss 0x391c
+#define MN_vfnmadd132ss 0x3928
 #define MN_cvtsd2ss (MN_vcvtsd2ss + 1)
-#define MN_vcvtsd2ss 0x38a1
-#define MN_vcvtsh2ss 0x38ab
+#define MN_vcvtsd2ss 0x3935
+#define MN_vcvtsh2ss 0x393f
 #define MN_cvtsi2ss (MN_vcvtsi2ss + 1)
-#define MN_vcvtsi2ss 0x38b5
-#define MN_vcvtusi2ss 0x38bf
-#define MN_vfmsub213ss 0x38ca
-#define MN_vfnmsub213ss 0x38d6
-#define MN_vfmadd213ss 0x38e3
-#define MN_vfnmadd213ss 0x38ef
-#define MN_vrcp14ss 0x38fc
-#define MN_vrsqrt14ss 0x3905
-#define MN_vrcp28ss 0x3910
-#define MN_vrsqrt28ss 0x3919
+#define MN_vcvtsi2ss 0x3949
+#define MN_vcvtusi2ss 0x3953
+#define MN_vfmsub213ss 0x395e
+#define MN_vfnmsub213ss 0x396a
+#define MN_vfmadd213ss 0x3977
+#define MN_vfnmadd213ss 0x3983
+#define MN_vrcp14ss 0x3990
+#define MN_vrsqrt14ss 0x3999
+#define MN_vrcp28ss 0x39a4
+#define MN_vrsqrt28ss 0x39ad
 #define MN_subss (MN_vfmsubss + 3)
-#define MN_vfmsubss 0x3924
-#define MN_vfnmsubss 0x392d
-#define MN_vsubss 0x3937
+#define MN_vfmsubss 0x39b8
+#define MN_vfnmsubss 0x39c1
+#define MN_vsubss 0x39cb
 #define MN_addss (MN_v4fmaddss + 4)
-#define MN_v4fmaddss 0x393e
-#define MN_vfmaddss 0x3948
-#define MN_v4fnmaddss 0x3951
-#define MN_vfnmaddss 0x395c
-#define MN_vaddss 0x3966
+#define MN_v4fmaddss 0x39d2
+#define MN_vfmaddss 0x39dc
+#define MN_v4fnmaddss 0x39e5
+#define MN_vfnmaddss 0x39f0
+#define MN_vaddss 0x39fa
 #define MN_roundss (MN_vroundss + 1)
-#define MN_vroundss 0x396d
+#define MN_vroundss 0x3a01
 #define MN_cmpunordss (MN_vcmpunordss + 1)
-#define MN_vcmpunordss 0x3976
+#define MN_vcmpunordss 0x3a0a
 #define MN_cmpordss (MN_vcmpordss + 1)
-#define MN_vcmpordss 0x3982
-#define MN_vreducess 0x398c
-#define MN_vrangess 0x3996
-#define MN_vcmpngess 0x399f
-#define MN_vcmpgess 0x39a9
-#define MN_vrndscaless 0x39b2
+#define MN_vcmpordss 0x3a16
+#define MN_vreducess 0x3a20
+#define MN_vrangess 0x3a2a
+#define MN_vcmpngess 0x3a33
+#define MN_vcmpgess 0x3a3d
+#define MN_vrndscaless 0x3a46
 #define MN_cmpnless (MN_vcmpnless + 1)
-#define MN_vcmpnless 0x39be
+#define MN_vcmpnless 0x3a52
 #define MN_cmpless (MN_vcmpless + 1)
-#define MN_vcmpless 0x39c8
-#define MN_vcmpfalsess 0x39d1
-#define MN_vcmptruess 0x39dd
-#define MN_vscalefss 0x39e8
+#define MN_vcmpless 0x3a5c
+#define MN_vcmpfalsess 0x3a65
+#define MN_vcmptruess 0x3a71
+#define MN_vscalefss 0x3a7c
 #define MN_comiss (MN_ucomiss + 1)
 #define MN_ucomiss (MN_vucomiss + 1)
-#define MN_vucomiss 0x39f2
-#define MN_vcomiss 0x39fb
+#define MN_vucomiss 0x3a86
+#define MN_vcomiss 0x3a8f
 #define MN_lss (MN_mulss + 2)
 #define MN_mulss (MN_vmulss + 1)
-#define MN_vmulss 0x3a03
-#define MN_vfixupimmss 0x3a0a
+#define MN_vmulss 0x3a97
+#define MN_vfixupimmss 0x3a9e
 #define MN_minss (MN_vminss + 1)
-#define MN_vminss 0x3a16
+#define MN_vminss 0x3aaa
 #define MN_rcpss (MN_vrcpss + 1)
-#define MN_vrcpss 0x3a1d
+#define MN_vrcpss 0x3ab1
 #define MN_cmpss (MN_vcmpss + 1)
-#define MN_vcmpss 0x3a24
-#define MN_vgetexpss 0x3a2b
-#define MN_vcmpunord_qss 0x3a35
-#define MN_vcmpord_qss 0x3a43
+#define MN_vcmpss 0x3ab8
+#define MN_vgetexpss 0x3abf
+#define MN_vcmpunord_qss 0x3ac9
+#define MN_vcmpord_qss 0x3ad7
 #define MN_cmpneqss (MN_vcmpneqss + 1)
-#define MN_vcmpneqss 0x3a4f
+#define MN_vcmpneqss 0x3ae3
 #define MN_cmpeqss (MN_vcmpeqss + 1)
-#define MN_vcmpeqss 0x3a59
-#define MN_vcmpge_oqss 0x3a62
-#define MN_vcmple_oqss 0x3a6e
-#define MN_vcmpfalse_oqss 0x3a7a
-#define MN_vcmpneq_oqss 0x3a89
-#define MN_vcmpeq_oqss 0x3a96
-#define MN_vcmpgt_oqss 0x3aa2
-#define MN_vcmplt_oqss 0x3aae
-#define MN_vcmpnge_uqss 0x3aba
-#define MN_vcmpnle_uqss 0x3ac7
-#define MN_vcmptrue_uqss 0x3ad4
-#define MN_vcmpneq_uqss 0x3ae2
-#define MN_vcmpeq_uqss 0x3aef
-#define MN_vcmpngt_uqss 0x3afb
-#define MN_vcmpnlt_uqss 0x3b08
-#define MN_vcmpunord_sss 0x3b15
-#define MN_vcmpord_sss 0x3b23
-#define MN_vcmpge_osss 0x3b2f
-#define MN_vcmple_osss 0x3b3b
-#define MN_vcmpfalse_osss 0x3b47
-#define MN_vcmpneq_osss 0x3b56
-#define MN_vcmpeq_osss 0x3b63
-#define MN_vcmpgt_osss 0x3b6f
-#define MN_vcmplt_osss 0x3b7b
-#define MN_vfpclassss 0x3b87
-#define MN_vcmpnge_usss 0x3b92
-#define MN_vcmpnle_usss 0x3b9f
-#define MN_vcmptrue_usss 0x3bac
-#define MN_vcmpneq_usss 0x3bba
-#define MN_vcmpeq_usss 0x3bc7
-#define MN_vcmpngt_usss 0x3bd3
-#define MN_vcmpnlt_usss 0x3be0
-#define MN_vcmpngtss 0x3bed
-#define MN_vcmpgtss 0x3bf7
+#define MN_vcmpeqss 0x3aed
+#define MN_vcmpge_oqss 0x3af6
+#define MN_vcmple_oqss 0x3b02
+#define MN_vcmpfalse_oqss 0x3b0e
+#define MN_vcmpneq_oqss 0x3b1d
+#define MN_vcmpeq_oqss 0x3b2a
+#define MN_vcmpgt_oqss 0x3b36
+#define MN_vcmplt_oqss 0x3b42
+#define MN_vcmpnge_uqss 0x3b4e
+#define MN_vcmpnle_uqss 0x3b5b
+#define MN_vcmptrue_uqss 0x3b68
+#define MN_vcmpneq_uqss 0x3b76
+#define MN_vcmpeq_uqss 0x3b83
+#define MN_vcmpngt_uqss 0x3b8f
+#define MN_vcmpnlt_uqss 0x3b9c
+#define MN_vcmpunord_sss 0x3ba9
+#define MN_vcmpord_sss 0x3bb7
+#define MN_vcmpge_osss 0x3bc3
+#define MN_vcmple_osss 0x3bcf
+#define MN_vcmpfalse_osss 0x3bdb
+#define MN_vcmpneq_osss 0x3bea
+#define MN_vcmpeq_osss 0x3bf7
+#define MN_vcmpgt_osss 0x3c03
+#define MN_vcmplt_osss 0x3c0f
+#define MN_vfpclassss 0x3c1b
+#define MN_vcmpnge_usss 0x3c26
+#define MN_vcmpnle_usss 0x3c33
+#define MN_vcmptrue_usss 0x3c40
+#define MN_vcmpneq_usss 0x3c4e
+#define MN_vcmpeq_usss 0x3c5b
+#define MN_vcmpngt_usss 0x3c67
+#define MN_vcmpnlt_usss 0x3c74
+#define MN_vcmpngtss 0x3c81
+#define MN_vcmpgtss 0x3c8b
 #define MN_cmpnltss (MN_vcmpnltss + 1)
-#define MN_vcmpnltss 0x3c00
+#define MN_vcmpnltss 0x3c94
 #define MN_cmpltss (MN_vcmpltss + 1)
-#define MN_vcmpltss 0x3c0a
-#define MN_vgetmantss 0x3c13
-#define MN_movntss 0x3c1e
+#define MN_vcmpltss 0x3c9e
+#define MN_vgetmantss 0x3ca7
+#define MN_movntss 0x3cb2
 #define MN_sqrtss (MN_rsqrtss + 1)
 #define MN_rsqrtss (MN_vrsqrtss + 1)
-#define MN_vrsqrtss 0x3c26
-#define MN_vsqrtss 0x3c2f
-#define MN_vbroadcastss 0x3c37
+#define MN_vrsqrtss 0x3cba
+#define MN_vsqrtss 0x3cc3
+#define MN_vbroadcastss 0x3ccb
 #define MN_divss (MN_vdivss + 1)
-#define MN_vdivss 0x3c44
+#define MN_vdivss 0x3cd8
 #define MN_movss (MN_vmovss + 1)
-#define MN_vmovss 0x3c4b
+#define MN_vmovss 0x3cdf
 #define MN_maxss (MN_vmaxss + 1)
-#define MN_vmaxss 0x3c52
-#define MN_vfrczss 0x3c59
-#define MN_bts 0x3c61
-#define MN_erets 0x3c65
-#define MN_sets 0x3c6b
-#define MN_clts 0x3c70
-#define MN_outs 0x3c75
+#define MN_vmaxss 0x3ce6
+#define MN_vfrczss 0x3ced
+#define MN_bts 0x3cf5
+#define MN_erets 0x3cf9
+#define MN_sets 0x3cff
+#define MN_clts 0x3d04
+#define MN_outs 0x3d09
 #define MN_movs (MN_cmovs + 1)
-#define MN_cmovs 0x3c7a
-#define MN_fldl2t 0x3c80
-#define MN_xlat 0x3c87
-#define MN_bt 0x3c8c
-#define MN_fxtract 0x3c8f
-#define MN_lgdt 0x3c97
-#define MN_sgdt 0x3c9c
-#define MN_lidt 0x3ca1
-#define MN_sidt 0x3ca6
-#define MN_fldt 0x3cab
-#define MN_lldt 0x3cb0
-#define MN_sldt 0x3cb5
+#define MN_cmovs 0x3d0e
+#define MN_fldl2t 0x3d14
+#define MN_xlat 0x3d1b
+#define MN_bt 0x3d20
+#define MN_fxtract 0x3d23
+#define MN_lgdt 0x3d2b
+#define MN_sgdt 0x3d30
+#define MN_lidt 0x3d35
+#define MN_sidt 0x3d3a
+#define MN_fldt 0x3d3f
+#define MN_lldt 0x3d44
+#define MN_sldt 0x3d49
 #define MN_ret (MN_iret + 1)
 #define MN_iret (MN_uiret + 1)
-#define MN_uiret 0x3cba
-#define MN_lret 0x3cc0
-#define MN_seamret 0x3cc5
-#define MN_sysret 0x3ccd
-#define MN_hreset 0x3cd4
-#define MN_pfcmpgt 0x3cdb
-#define MN_ht 0x3ce3
+#define MN_uiret 0x3d4e
+#define MN_lret 0x3d54
+#define MN_seamret 0x3d59
+#define MN_sysret 0x3d61
+#define MN_hreset 0x3d68
+#define MN_pfcmpgt 0x3d6f
+#define MN_ht 0x3d77
 #define MN_wait (MN_fwait + 1)
-#define MN_fwait 0x3ce6
+#define MN_fwait 0x3d7a
 #define MN_mwait (MN_umwait + 1)
-#define MN_umwait 0x3cec
-#define MN_mcommit 0x3cf3
-#define MN_finit 0x3cfb
-#define MN_skinit 0x3d01
-#define MN_fninit 0x3d08
-#define MN_vmgexit 0x3d0f
-#define MN_sysexit 0x3d17
-#define MN_hlt 0x3d1f
-#define MN_popcnt 0x3d23
-#define MN_lzcnt 0x3d2a
-#define MN_tzcnt 0x3d30
-#define MN_hnt 0x3d36
+#define MN_umwait 0x3d80
+#define MN_mcommit 0x3d87
+#define MN_finit 0x3d8f
+#define MN_skinit 0x3d95
+#define MN_fninit 0x3d9c
+#define MN_vmgexit 0x3da3
+#define MN_sysexit 0x3dab
+#define MN_hlt 0x3db3
+#define MN_popcnt 0x3db7
+#define MN_lzcnt 0x3dbe
+#define MN_tzcnt 0x3dc4
+#define MN_hnt 0x3dca
 #define MN_int (MN_frndint + 4)
-#define MN_frndint 0x3d3a
-#define MN_not 0x3d42
-#define MN_invept 0x3d46
-#define MN_xsaveopt 0x3d4d
-#define MN_clflushopt 0x3d56
-#define MN_fstpt 0x3d61
-#define MN_xabort 0x3d67
-#define MN_fsqrt 0x3d6e
-#define MN_pfrsqrt 0x3d74
+#define MN_frndint 0x3dce
+#define MN_not 0x3dd6
+#define MN_invept 0x3dda
+#define MN_xsaveopt 0x3de1
+#define MN_clflushopt 0x3dea
+#define MN_fstpt 0x3df5
+#define MN_xabort 0x3dfb
+#define MN_fsqrt 0x3e02
+#define MN_pfrsqrt 0x3e08
 #define MN_aesdeclast (MN_vaesdeclast + 1)
-#define MN_vaesdeclast 0x3d7c
+#define MN_vaesdeclast 0x3e10
 #define MN_aesenclast (MN_vaesenclast + 1)
-#define MN_vaesenclast 0x3d88
+#define MN_vaesenclast 0x3e1c
 #define MN_test (MN_ptest + 1)
 #define MN_ptest (MN_vptest + 1)
-#define MN_vptest 0x3d94
-#define MN_xtest 0x3d9b
-#define MN_fst 0x3da1
-#define MN_fist 0x3da5
-#define MN_rdmsrlist 0x3daa
-#define MN_wrmsrlist 0x3db4
+#define MN_vptest 0x3e28
+#define MN_xtest 0x3e2f
+#define MN_fst 0x3e35
+#define MN_fist 0x3e39
+#define MN_rdmsrlist 0x3e3e
+#define MN_wrmsrlist 0x3e48
 #define MN_aeskeygenassist (MN_vaeskeygenassist + 1)
-#define MN_vaeskeygenassist 0x3dbe
-#define MN_vmptrst 0x3dcf
-#define MN_ftst 0x3dd7
-#define MN_rmpadjust 0x3ddc
-#define MN_out 0x3de6
-#define MN_pext 0x3dea
-#define MN_bndcu 0x3def
-#define MN_enclu 0x3df5
-#define MN_fcmovnu 0x3dfb
+#define MN_vaeskeygenassist 0x3e52
+#define MN_vmptrst 0x3e63
+#define MN_ftst 0x3e6b
+#define MN_rmpadjust 0x3e70
+#define MN_out 0x3e7a
+#define MN_pext 0x3e7e
+#define MN_bndcu 0x3e83
+#define MN_enclu 0x3e89
+#define MN_fcmovnu 0x3e8f
 #define MN_lddqu (MN_vlddqu + 1)
-#define MN_vlddqu 0x3e03
+#define MN_vlddqu 0x3e97
 #define MN_movdqu (MN_maskmovdqu + 4)
 #define MN_maskmovdqu (MN_vmaskmovdqu + 1)
-#define MN_vmaskmovdqu 0x3e0a
-#define MN_vmovdqu 0x3e16
-#define MN_rdpkru 0x3e1e
-#define MN_wrpkru 0x3e25
-#define MN_rdpru 0x3e2c
-#define MN_eretu 0x3e32
-#define MN_fcmovu 0x3e38
-#define MN_xgetbv 0x3e3f
-#define MN_xsetbv 0x3e46
+#define MN_vmaskmovdqu 0x3e9e
+#define MN_vmovdqu 0x3eaa
+#define MN_rdpkru 0x3eb2
+#define MN_wrpkru 0x3eb9
+#define MN_rdpru 0x3ec0
+#define MN_eretu 0x3ec6
+#define MN_fcmovu 0x3ecc
+#define MN_xgetbv 0x3ed3
+#define MN_xsetbv 0x3eda
 #define MN_div (MN_fdiv + 1)
-#define MN_fdiv 0x3e4d
+#define MN_fdiv 0x3ee1
 #define MN_idiv (MN_fidiv + 1)
-#define MN_fidiv 0x3e52
-#define MN_enclv 0x3e58
-#define MN_fldenv 0x3e5e
-#define MN_fstenv 0x3e65
-#define MN_fnstenv 0x3e6c
+#define MN_fidiv 0x3ee6
+#define MN_enclv 0x3eec
+#define MN_fldenv 0x3ef2
+#define MN_fstenv 0x3ef9
+#define MN_fnstenv 0x3f00
 #define MN_mov (MN_vpcmov + 3)
-#define MN_vpcmov 0x3e74
-#define MN_bndmov 0x3e7b
-#define MN_smov 0x3e82
-#define MN_rex_w 0x3e87
-#define MN_vcvttph2w 0x3e8d
-#define MN_vcvtph2w 0x3e97
-#define MN_vpermi2w 0x3ea0
-#define MN_vpmovm2w 0x3ea9
-#define MN_vpermt2w 0x3eb2
-#define MN_vpshaw 0x3ebb
+#define MN_vpcmov 0x3f08
+#define MN_bndmov 0x3f0f
+#define MN_smov 0x3f16
+#define MN_rex_w 0x3f1b
+#define MN_vcvttph2w 0x3f21
+#define MN_vcvtph2w 0x3f2b
+#define MN_vpermi2w 0x3f34
+#define MN_vpmovm2w 0x3f3d
+#define MN_vpermt2w 0x3f46
+#define MN_vpshaw 0x3f4f
 #define MN_psraw (MN_vpsraw + 1)
-#define MN_vpsraw 0x3ec2
-#define MN_vphsubbw 0x3ec9
-#define MN_cbw 0x3ed2
+#define MN_vpsraw 0x3f56
+#define MN_vphsubbw 0x3f5d
+#define MN_cbw 0x3f66
 #define MN_psadbw (MN_vdbpsadbw + 3)
-#define MN_vdbpsadbw 0x3ed6
+#define MN_vdbpsadbw 0x3f6a
 #define MN_mpsadbw (MN_vmpsadbw + 1)
-#define MN_vmpsadbw 0x3ee0
-#define MN_vpsadbw 0x3ee9
-#define MN_vphaddbw 0x3ef1
+#define MN_vmpsadbw 0x3f74
+#define MN_vpsadbw 0x3f7d
+#define MN_vphaddbw 0x3f85
 #define MN_punpckhbw (MN_vpunpckhbw + 1)
-#define MN_vpunpckhbw 0x3efa
-#define MN_kunpckbw 0x3f05
+#define MN_vpunpckhbw 0x3f8e
+#define MN_kunpckbw 0x3f99
 #define MN_punpcklbw (MN_vpunpcklbw + 1)
-#define MN_vpunpcklbw 0x3f0e
-#define MN_vphaddubw 0x3f19
+#define MN_vpunpcklbw 0x3fa2
+#define MN_vphaddubw 0x3fad
 #define MN_phsubw (MN_vphsubw + 1)
-#define MN_vphsubw 0x3f23
+#define MN_vphsubw 0x3fb7
 #define MN_psubw (MN_vpsubw + 1)
-#define MN_vpsubw 0x3f2b
+#define MN_vpsubw 0x3fbf
 #define MN_pmovsxbw (MN_vpmovsxbw + 1)
-#define MN_vpmovsxbw 0x3f32
+#define MN_vpmovsxbw 0x3fc6
 #define MN_pmovzxbw (MN_vpmovzxbw + 1)
-#define MN_vpmovzxbw 0x3f3c
-#define MN_fldcw 0x3f46
-#define MN_fstcw 0x3f4c
-#define MN_fnstcw 0x3f52
+#define MN_vpmovzxbw 0x3fd0
+#define MN_fldcw 0x3fda
+#define MN_fstcw 0x3fe0
+#define MN_fnstcw 0x3fe6
 #define MN_phaddw (MN_vphaddw + 1)
-#define MN_vphaddw 0x3f59
-#define MN_kaddw 0x3f61
+#define MN_vphaddw 0x3fed
+#define MN_kaddw 0x3ff5
 #define MN_paddw (MN_vpaddw + 1)
-#define MN_vpaddw 0x3f67
-#define MN_vpshldw 0x3f6e
-#define MN_kandw 0x3f76
-#define MN_vpexpandw 0x3f7c
+#define MN_vpaddw 0x3ffb
+#define MN_vpshldw 0x4002
+#define MN_kandw 0x400a
+#define MN_vpexpandw 0x4010
 #define MN_pblendw (MN_vpblendw + 1)
-#define MN_vpblendw 0x3f86
-#define MN_vpshrdw 0x3f8f
+#define MN_vpblendw 0x401a
+#define MN_vpshrdw 0x4023
 #define MN_packssdw (MN_vpackssdw + 1)
-#define MN_vpackssdw 0x3f97
+#define MN_vpackssdw 0x402b
 #define MN_packusdw (MN_vpackusdw + 1)
-#define MN_vpackusdw 0x3fa1
-#define MN_vpmovusdw 0x3fab
-#define MN_vpmovsdw 0x3fb5
-#define MN_vpmovdw 0x3fbe
-#define MN_vpcomgew 0x3fc6
-#define MN_vpcomlew 0x3fcf
-#define MN_vpcmpnlew 0x3fd8
-#define MN_vpcmplew 0x3fe2
-#define MN_vpcomfalsew 0x3feb
-#define MN_vpcomtruew 0x3ff7
-#define MN_pi2fw 0x4002
-#define MN_pshufw 0x4008
+#define MN_vpackusdw 0x4035
+#define MN_vpmovusdw 0x403f
+#define MN_vpmovsdw 0x4049
+#define MN_vpmovdw 0x4052
+#define MN_vpcomgew 0x405a
+#define MN_vpcomlew 0x4063
+#define MN_vpcmpnlew 0x406c
+#define MN_vpcmplew 0x4076
+#define MN_vpcomfalsew 0x407f
+#define MN_vpcomtruew 0x408b
+#define MN_pi2fw 0x4096
+#define MN_pshufw 0x409c
 #define MN_pavgw (MN_vpavgw + 1)
-#define MN_vpavgw 0x400f
-#define MN_prefetchw 0x4016
+#define MN_vpavgw 0x40a3
+#define MN_prefetchw 0x40aa
 #define MN_pshufhw (MN_vpshufhw + 1)
-#define MN_vpshufhw 0x4020
+#define MN_vpshufhw 0x40b4
 #define MN_pmulhw (MN_vpmulhw + 1)
-#define MN_vpmulhw 0x4029
-#define MN_pf2iw 0x4031
+#define MN_vpmulhw 0x40bd
+#define MN_pf2iw 0x40c5
 #define MN_pshuflw (MN_vpshuflw + 1)
-#define MN_vpshuflw 0x4037
-#define MN_vpshlw 0x4040
+#define MN_vpshuflw 0x40cb
+#define MN_vpshlw 0x40d4
 #define MN_psllw (MN_vpsllw + 1)
-#define MN_vpsllw 0x4047
+#define MN_vpsllw 0x40db
 #define MN_pmullw (MN_vpmullw + 1)
-#define MN_vpmullw 0x404e
+#define MN_vpmullw 0x40e2
 #define MN_psrlw (MN_vpsrlw + 1)
-#define MN_vpsrlw 0x4056
-#define MN_kshiftlw 0x405d
-#define MN_vpblendmw 0x4066
-#define MN_vptestnmw 0x4070
-#define MN_vpcomw 0x407a
-#define MN_vpermw 0x4081
-#define MN_vptestmw 0x4088
-#define MN_kandnw 0x4091
+#define MN_vpsrlw 0x40ea
+#define MN_kshiftlw 0x40f1
+#define MN_vpblendmw 0x40fa
+#define MN_vptestnmw 0x4104
+#define MN_vpcomw 0x410e
+#define MN_vpermw 0x4115
+#define MN_vptestmw 0x411c
+#define MN_kandnw 0x4125
 #define MN_psignw (MN_vpsignw + 1)
-#define MN_vpsignw 0x4098
-#define MN_vpcmpw 0x40a0
-#define MN_vpcomeqw 0x40a7
-#define MN_vpcomneqw 0x40b0
-#define MN_vpcmpneqw 0x40ba
+#define MN_vpsignw 0x412c
+#define MN_vpcmpw 0x4134
+#define MN_vpcomeqw 0x413b
+#define MN_vpcomneqw 0x4144
+#define MN_vpcmpneqw 0x414e
 #define MN_pcmpeqw (MN_vpcmpeqw + 1)
-#define MN_vpcmpeqw 0x40c4
-#define MN_vpmovusqw 0x40cd
-#define MN_vpmovsqw 0x40d7
-#define MN_vpmovqw 0x40e0
-#define MN_verw 0x40e8
-#define MN_pmulhrw 0x40ed
-#define MN_korw 0x40f5
-#define MN_kxnorw 0x40fa
-#define MN_kxorw 0x4101
+#define MN_vpcmpeqw 0x4158
+#define MN_vpmovusqw 0x4161
+#define MN_vpmovsqw 0x416b
+#define MN_vpmovqw 0x4174
+#define MN_verw 0x417c
+#define MN_pmulhrw 0x4181
+#define MN_korw 0x4189
+#define MN_kxnorw 0x418e
+#define MN_kxorw 0x4195
 #define MN_pinsrw (MN_vpinsrw + 1)
-#define MN_vpinsrw 0x4107
-#define MN_kshiftrw 0x410f
+#define MN_vpinsrw 0x419b
+#define MN_kshiftrw 0x41a3
 #define MN_pextrw (MN_vpextrw + 1)
-#define MN_vpextrw 0x4118
+#define MN_vpextrw 0x41ac
 #define MN_pabsw (MN_vpabsw + 1)
-#define MN_vpabsw 0x4120
+#define MN_vpabsw 0x41b4
 #define MN_pmaddubsw (MN_vpmaddubsw + 1)
-#define MN_vpmaddubsw 0x4127
+#define MN_vpmaddubsw 0x41bb
 #define MN_phsubsw (MN_vphsubsw + 1)
-#define MN_vphsubsw 0x4132
+#define MN_vphsubsw 0x41c6
 #define MN_psubsw (MN_vpsubsw + 1)
-#define MN_vpsubsw 0x413b
+#define MN_vpsubsw 0x41cf
 #define MN_phaddsw (MN_vphaddsw + 1)
-#define MN_vphaddsw 0x4143
+#define MN_vphaddsw 0x41d7
 #define MN_paddsw (MN_vpaddsw + 1)
-#define MN_vpaddsw 0x414c
-#define MN_lmsw 0x4154
-#define MN_smsw 0x4159
+#define MN_vpaddsw 0x41e0
+#define MN_lmsw 0x41e8
+#define MN_smsw 0x41ed
 #define MN_pminsw (MN_vpminsw + 1)
-#define MN_vpminsw 0x415e
+#define MN_vpminsw 0x41f2
 #define MN_pmulhrsw (MN_vpmulhrsw + 1)
-#define MN_vpmulhrsw 0x4166
-#define MN_vpcompressw 0x4170
-#define MN_fstsw 0x417c
-#define MN_fnstsw 0x4182
+#define MN_vpmulhrsw 0x41fa
+#define MN_vpcompressw 0x4204
+#define MN_fstsw 0x4210
+#define MN_fnstsw 0x4216
 #define MN_psubusw (MN_vpsubusw + 1)
-#define MN_vpsubusw 0x4189
+#define MN_vpsubusw 0x421d
 #define MN_paddusw (MN_vpaddusw + 1)
-#define MN_vpaddusw 0x4192
-#define MN_movsw 0x419b
+#define MN_vpaddusw 0x4226
+#define MN_movsw 0x422f
 #define MN_pmaxsw (MN_vpmaxsw + 1)
-#define MN_vpmaxsw 0x41a1
-#define MN_cbtw 0x41a9
-#define MN_vpcomgtw 0x41ae
+#define MN_vpmaxsw 0x4235
+#define MN_cbtw 0x423d
+#define MN_vpcomgtw 0x4242
 #define MN_pcmpgtw (MN_vpcmpgtw + 1)
-#define MN_vpcmpgtw 0x41b7
-#define MN_vpcomltw 0x41c0
-#define MN_vpcmpnltw 0x41c9
-#define MN_vpcmpltw 0x41d3
-#define MN_vpopcntw 0x41dc
-#define MN_knotw 0x41e5
-#define MN_vprotw 0x41eb
-#define MN_vpbroadcastw 0x41f2
-#define MN_ktestw 0x41ff
-#define MN_kortestw 0x4206
-#define MN_vcvttph2uw 0x420f
-#define MN_vcvtph2uw 0x421a
-#define MN_vpcomgeuw 0x4224
-#define MN_vpcomleuw 0x422e
-#define MN_vpcmpnleuw 0x4238
-#define MN_vpcmpleuw 0x4243
-#define MN_vpcomfalseuw 0x424d
-#define MN_vpcomtrueuw 0x425a
+#define MN_vpcmpgtw 0x424b
+#define MN_vpcomltw 0x4254
+#define MN_vpcmpnltw 0x425d
+#define MN_vpcmpltw 0x4267
+#define MN_vpopcntw 0x4270
+#define MN_knotw 0x4279
+#define MN_vprotw 0x427f
+#define MN_vpbroadcastw 0x4286
+#define MN_ktestw 0x4293
+#define MN_kortestw 0x429a
+#define MN_vcvttph2uw 0x42a3
+#define MN_vcvtph2uw 0x42ae
+#define MN_vpcomgeuw 0x42b8
+#define MN_vpcomleuw 0x42c2
+#define MN_vpcmpnleuw 0x42cc
+#define MN_vpcmpleuw 0x42d7
+#define MN_vpcomfalseuw 0x42e1
+#define MN_vpcomtrueuw 0x42ee
 #define MN_pmulhuw (MN_vpmulhuw + 1)
-#define MN_vpmulhuw 0x4266
-#define MN_vpcomuw 0x426f
+#define MN_vpmulhuw 0x42fa
+#define MN_vpcomuw 0x4303
 #define MN_pminuw (MN_vpminuw + 1)
-#define MN_vpminuw 0x4277
-#define MN_vpcmpuw 0x427f
-#define MN_vpcomequw 0x4287
-#define MN_vpcomnequw 0x4291
-#define MN_vpcmpnequw 0x429c
-#define MN_vpcmpequw 0x42a7
+#define MN_vpminuw 0x430b
+#define MN_vpcmpuw 0x4313
+#define MN_vpcomequw 0x431b
+#define MN_vpcomnequw 0x4325
+#define MN_vpcmpnequw 0x4330
+#define MN_vpcmpequw 0x433b
 #define MN_phminposuw (MN_vphminposuw + 1)
-#define MN_vphminposuw 0x42b1
-#define MN_vpcomgtuw 0x42bd
-#define MN_vpcomltuw 0x42c7
-#define MN_vpcmpnltuw 0x42d1
-#define MN_vpcmpltuw 0x42dc
+#define MN_vphminposuw 0x4345
+#define MN_vpcomgtuw 0x4351
+#define MN_vpcomltuw 0x435b
+#define MN_vpcmpnltuw 0x4365
+#define MN_vpcmpltuw 0x4370
 #define MN_pmaxuw (MN_vpmaxuw + 1)
-#define MN_vpmaxuw 0x42e6
-#define MN_vpsravw 0x42ee
-#define MN_vpshldvw 0x42f6
-#define MN_vpshrdvw 0x42ff
-#define MN_vpsllvw 0x4308
-#define MN_vpsrlvw 0x4310
-#define MN_kmovw 0x4318
-#define MN_vmovw 0x431e
-#define MN_vpmacsww 0x4324
-#define MN_vpmacssww 0x432d
-#define MN_movzw 0x4337
-#define MN_rex_x 0x433d
-#define MN_fyl2x 0x4343
-#define MN_rex64x 0x4349
-#define MN_vcvtneps2bf16x 0x4350
-#define MN_pfmax 0x435f
-#define MN_adcx 0x4365
-#define MN_bndldx 0x436a
-#define MN_vfpclasspdx 0x4371
-#define MN_fclex 0x437d
-#define MN_fnclex 0x4383
-#define MN_rex 0x438a
-#define MN_vcvtpd2phx 0x438e
-#define MN_vcvtdq2phx 0x4399
-#define MN_vcvtudq2phx 0x43a4
-#define MN_vcvtqq2phx 0x43b0
-#define MN_vcvtuqq2phx 0x43bb
-#define MN_vcvtps2phx 0x43c7
-#define MN_vfpclassphx 0x43d2
-#define MN_shlx 0x43de
-#define MN_mulx 0x43e3
-#define MN_adox 0x43e8
-#define MN_vcvttpd2dqx 0x43ed
-#define MN_vcvtpd2dqx 0x43f9
-#define MN_vcvttpd2udqx 0x4404
-#define MN_vcvtpd2udqx 0x4411
-#define MN_rex_rx 0x441d
-#define MN_sarx 0x4424
-#define MN_shrx 0x4429
-#define MN_rorx 0x442e
-#define MN_monitorx 0x4433
-#define MN_rex_wrx 0x443c
-#define MN_vcvtpd2psx 0x4444
-#define MN_vcvtph2psx 0x444f
-#define MN_vcvtqq2psx 0x445a
-#define MN_vcvtuqq2psx 0x4465
-#define MN_vfpclasspsx 0x4471
-#define MN_movsx 0x447d
-#define MN_mwaitx 0x4483
-#define MN_bndstx 0x448a
-#define MN_rex_wx 0x4491
-#define MN_rexx 0x4498
-#define MN_vcvtps2phxx 0x449d
-#define MN_movzx 0x44a9
-#define MN_rex64y 0x44af
-#define MN_vcvtneps2bf16y 0x44b6
-#define MN_vfpclasspdy 0x44c5
-#define MN_loadiwkey 0x44d1
-#define MN_vcvtpd2phy 0x44db
-#define MN_vcvtdq2phy 0x44e6
-#define MN_vcvtudq2phy 0x44f1
-#define MN_vcvtqq2phy 0x44fd
-#define MN_vcvtuqq2phy 0x4508
-#define MN_vfpclassphy 0x4514
-#define MN_vcvttpd2dqy 0x4520
-#define MN_vcvtpd2dqy 0x452c
-#define MN_vcvttpd2udqy 0x4537
-#define MN_vcvtpd2udqy 0x4544
-#define MN_rmpquery 0x4550
-#define MN_clrssbsy 0x4559
-#define MN_setssbsy 0x4562
-#define MN_vcvtpd2psy 0x456b
-#define MN_vcvtqq2psy 0x4576
-#define MN_vcvtuqq2psy 0x4581
-#define MN_vfpclasspsy 0x458d
-#define MN_rex64xy 0x4599
-#define MN_rexy 0x45a1
-#define MN_vcvtps2phxy 0x45a6
-#define MN_rexxy 0x45b2
-#define MN_rex64z 0x45b8
-#define MN_fldz 0x45bf
-#define MN_vfpclasspdz 0x45c4
-#define MN_vcvtpd2phz 0x45d0
-#define MN_vcvtqq2phz 0x45db
-#define MN_vcvtuqq2phz 0x45e6
-#define MN_vfpclassphz 0x45f2
-#define MN_jz 0x45fe
-#define MN_jnz 0x4601
-#define MN_repnz 0x4605
-#define MN_loopnz 0x460b
-#define MN_setnz 0x4612
-#define MN_cmovnz 0x4618
-#define MN_repz 0x461f
-#define MN_loopz 0x4624
-#define MN_vfpclasspsz 0x462a
-#define MN_setz 0x4636
-#define MN_cmovz 0x463b
-#define MN_rex64xz 0x4641
-#define MN_jecxz 0x4649
-#define MN_jcxz 0x464f
-#define MN_jrcxz 0x4654
-#define MN_rexz 0x465a
-#define MN_rexxz 0x465f
-#define MN_rex64yz 0x4665
-#define MN_rex64xyz 0x466d
-#define MN_rexyz 0x4676
-#define MN_rexxyz 0x467c
-#define MN__disp32_ 0x4683
-#define MN__vex2_ 0x468c
-#define MN__vex3_ 0x4693
-#define MN__disp16_ 0x469a
-#define MN__disp8_ 0x46a3
-#define MN__load_ 0x46ab
-#define MN__store_ 0x46b2
-#define MN__nooptimize_ 0x46ba
-#define MN__rex_ 0x46c7
-#define MN__evex_ 0x46cd
-#define MN__vex_ 0x46d4
-#define MN__insn 0x46da
+#define MN_vpmaxuw 0x437a
+#define MN_vpsravw 0x4382
+#define MN_vpshldvw 0x438a
+#define MN_vpshrdvw 0x4393
+#define MN_vpsllvw 0x439c
+#define MN_vpsrlvw 0x43a4
+#define MN_kmovw 0x43ac
+#define MN_vmovw 0x43b2
+#define MN_vpmacsww 0x43b8
+#define MN_vpmacssww 0x43c1
+#define MN_movzw 0x43cb
+#define MN_rex_x 0x43d1
+#define MN_fyl2x 0x43d7
+#define MN_rex64x 0x43dd
+#define MN_vcvtneps2bf16x 0x43e4
+#define MN_pfmax 0x43f3
+#define MN_adcx 0x43f9
+#define MN_bndldx 0x43fe
+#define MN_vfpclasspdx 0x4405
+#define MN_fclex 0x4411
+#define MN_fnclex 0x4417
+#define MN_rex 0x441e
+#define MN_vcvtpd2phx 0x4422
+#define MN_vcvtdq2phx 0x442d
+#define MN_vcvtudq2phx 0x4438
+#define MN_vcvtqq2phx 0x4444
+#define MN_vcvtuqq2phx 0x444f
+#define MN_vcvtps2phx 0x445b
+#define MN_vfpclassphx 0x4466
+#define MN_shlx 0x4472
+#define MN_mulx 0x4477
+#define MN_adox 0x447c
+#define MN_vcvttpd2dqx 0x4481
+#define MN_vcvtpd2dqx 0x448d
+#define MN_vcvttpd2udqx 0x4498
+#define MN_vcvtpd2udqx 0x44a5
+#define MN_rex_rx 0x44b1
+#define MN_sarx 0x44b8
+#define MN_shrx 0x44bd
+#define MN_rorx 0x44c2
+#define MN_monitorx 0x44c7
+#define MN_rex_wrx 0x44d0
+#define MN_vcvtpd2psx 0x44d8
+#define MN_vcvtph2psx 0x44e3
+#define MN_vcvtqq2psx 0x44ee
+#define MN_vcvtuqq2psx 0x44f9
+#define MN_vfpclasspsx 0x4505
+#define MN_movsx 0x4511
+#define MN_mwaitx 0x4517
+#define MN_bndstx 0x451e
+#define MN_rex_wx 0x4525
+#define MN_rexx 0x452c
+#define MN_vcvtps2phxx 0x4531
+#define MN_movzx 0x453d
+#define MN_rex64y 0x4543
+#define MN_vcvtneps2bf16y 0x454a
+#define MN_vfpclasspdy 0x4559
+#define MN_loadiwkey 0x4565
+#define MN_vcvtpd2phy 0x456f
+#define MN_vcvtdq2phy 0x457a
+#define MN_vcvtudq2phy 0x4585
+#define MN_vcvtqq2phy 0x4591
+#define MN_vcvtuqq2phy 0x459c
+#define MN_vfpclassphy 0x45a8
+#define MN_vcvttpd2dqy 0x45b4
+#define MN_vcvtpd2dqy 0x45c0
+#define MN_vcvttpd2udqy 0x45cb
+#define MN_vcvtpd2udqy 0x45d8
+#define MN_rmpquery 0x45e4
+#define MN_clrssbsy 0x45ed
+#define MN_setssbsy 0x45f6
+#define MN_vcvtpd2psy 0x45ff
+#define MN_vcvtqq2psy 0x460a
+#define MN_vcvtuqq2psy 0x4615
+#define MN_vfpclasspsy 0x4621
+#define MN_rex64xy 0x462d
+#define MN_rexy 0x4635
+#define MN_vcvtps2phxy 0x463a
+#define MN_rexxy 0x4646
+#define MN_rex64z 0x464c
+#define MN_fldz 0x4653
+#define MN_vfpclasspdz 0x4658
+#define MN_vcvtpd2phz 0x4664
+#define MN_vcvtqq2phz 0x466f
+#define MN_vcvtuqq2phz 0x467a
+#define MN_vfpclassphz 0x4686
+#define MN_jz 0x4692
+#define MN_jnz 0x4695
+#define MN_repnz 0x4699
+#define MN_loopnz 0x469f
+#define MN_setnz 0x46a6
+#define MN_cmovnz 0x46ac
+#define MN_repz 0x46b3
+#define MN_loopz 0x46b8
+#define MN_vfpclasspsz 0x46be
+#define MN_setz 0x46ca
+#define MN_cmovz 0x46cf
+#define MN_rex64xz 0x46d5
+#define MN_jecxz 0x46dd
+#define MN_jcxz 0x46e3
+#define MN_jrcxz 0x46e8
+#define MN_rexz 0x46ee
+#define MN_rexxz 0x46f3
+#define MN_rex64yz 0x46f9
+#define MN_rex64xyz 0x4701
+#define MN_rexyz 0x470a
+#define MN_rexxyz 0x4710
+#define MN__disp32_ 0x4717
+#define MN__vex2_ 0x4720
+#define MN__vex3_ 0x4727
+#define MN__disp16_ 0x472e
+#define MN__disp8_ 0x4737
+#define MN__load_ 0x473f
+#define MN__store_ 0x4746
+#define MN__nooptimize_ 0x474e
+#define MN__rex_ 0x475b
+#define MN__evex_ 0x4761
+#define MN__vex_ 0x4768
+#define MN__insn 0x476e
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 3318bcfec33..284475076a1 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -175,6 +175,12 @@ enum
   CpuSMAP,
   /* SHA instructions required.  */
   CpuSHA,
+  /* SHA512 instructions required.  */
+  CpuSHA512,
+  /* SM3 instructions required.  */
+  CpuSM3,
+  /* SM4 instructions required.  */
+  CpuSM4,
   /* CLFLUSHOPT instruction required */
   CpuClflushOpt,
   /* XSAVES/XRSTORS instruction required */
@@ -219,6 +225,8 @@ enum
   CpuAVX_IFMA,
   /* Intel AVX VNNI-INT8 Instructions support required.  */
   CpuAVX_VNNI_INT8,
+  /* Intel AVX VNNI-INT16 Instructions support required.  */
+  CpuAVX_VNNI_INT16,
   /* Intel CMPccXADD instructions support required.  */
   CpuCMPCCXADD,
   /* Intel WRMSRNS Instructions support required */
@@ -266,6 +274,8 @@ enum
   CpuWBNOINVD,
   /* PCONFIG instructions required */
   CpuPCONFIG,
+  /* PBNDKB instructions required.  */
+  CpuPBNDKB,
   /* WAITPKG instructions required */
   CpuWAITPKG,
   /* UINTR instructions required */
@@ -401,6 +411,9 @@ typedef union i386_cpu_flags
       unsigned int cpuprfchw:1;
       unsigned int cpusmap:1;
       unsigned int cpusha:1;
+      unsigned int cpusha512:1;
+      unsigned int cpusm3:1;
+      unsigned int cpusm4:1;
       unsigned int cpuclflushopt:1;
       unsigned int cpuxsaves:1;
       unsigned int cpuxsavec:1;
@@ -423,6 +436,7 @@ typedef union i386_cpu_flags
       unsigned int cpuprefetchi:1;
       unsigned int cpuavx_ifma:1;
       unsigned int cpuavx_vnni_int8:1;
+      unsigned int cpuavx_vnni_int16:1;
       unsigned int cpucmpccxadd:1;
       unsigned int cpuwrmsrns:1;
       unsigned int cpumsrlist:1;
@@ -447,6 +461,7 @@ typedef union i386_cpu_flags
       unsigned int cpuvpclmulqdq:1;
       unsigned int cpuwbnoinvd:1;
       unsigned int cpupconfig:1;
+      unsigned int cpupbndkb:1;
       unsigned int cpuwaitpkg:1;
       unsigned int cpuuintr:1;
       unsigned int cpucldemote:1;
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 26fee21d10d..00967522371 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -1025,8 +1025,8 @@ pand<mmx>, 0x<mmx:pfx>0fdb, <mmx:cpu>, Modrm|<mmx:attr>|C|NoSuf, { <mmx:reg>|<mm
 pandn<mmx>, 0x<mmx:pfx>0fdf, <mmx:cpu>, Modrm|<mmx:attr>|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
 pcmpeq<bw><mmx>, 0x<mmx:pfx>0f74 | <bw:opc>, <mmx:cpu>, Modrm|<mmx:attr>|C|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
 pcmpeqd<mmx>, 0x<mmx:pfx>0f76, <mmx:cpu>, Modrm|<mmx:attr>|C|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
-pcmpgt<bw><mmx>, 0x<mmx:pfx>0f64 | <bw:opc>, <mmx:cpu>, Modrm|<mmx:attr>|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
-pcmpgtd<mmx>, 0x<mmx:pfx>0f66, <mmx:cpu>, Modrm|<mmx:attr>|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
+pcmpgt<bw><mmx>, 0x<mmx:pfx>0f64 | <bw:opc>, <mmx:cpu>, Modrm|<mmx:attr>|NoSuf|Optimize, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
+pcmpgtd<mmx>, 0x<mmx:pfx>0f66, <mmx:cpu>, Modrm|<mmx:attr>|NoSuf|Optimize, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
 pmaddwd<mmx>, 0x<mmx:pfx>0ff5, <mmx:cpu>, Modrm|<mmx:attr>|C|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
 pmulhw<mmx>, 0x<mmx:pfx>0fe5, <mmx:cpu>, Modrm|<mmx:attr>|C|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
 pmullw<mmx>, 0x<mmx:pfx>0fd5, <mmx:cpu>, Modrm|<mmx:attr>|C|NoSuf, { <mmx:reg>|<mmx:mem>|Unspecified|BaseIndex, <mmx:reg> }
@@ -1363,7 +1363,7 @@ pblendvb, 0x664c, AVX, Modrm|Vex128|Space0F3A|VexVVVV|VexW0|NoSuf|Implicit1stXmm
 pblendvb, 0x660f3810, SSE4_1, Modrm|NoSuf, { Acc|Xmmword, RegXMM|Unspecified|BaseIndex, RegXMM }
 pblendvb, 0x660f3810, SSE4_1, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
 pblendw<sse41>, 0x660f3a0e, <sse41:cpu>, Modrm|<sse41:attr>|<sse41:vvvv>|NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM }
-pcmpeqq<sse41>, 0x660f3829, <sse41:cpu>, Modrm|<sse41:attr>|<sse41:vvvv>|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+pcmpeqq<sse41>, 0x660f3829, <sse41:cpu>, Modrm|<sse41:attr>|<sse41:vvvv>|NoSuf|Optimize, { RegXMM|Unspecified|BaseIndex, RegXMM }
 pextr<bw><sse41>, 0x660f3a14 | <bw:opc>, <sse41:cpu>, RegMem|<sse41:attr>|NoSuf|IgnoreSize|NoRex64, { Imm8, RegXMM, Reg32|Reg64 }
 pextr<bw><sse41>, 0x660f3a14 | <bw:opc>, <sse41:cpu>, Modrm|<sse41:attr>|NoSuf, { Imm8, RegXMM, <bw:elem>|Unspecified|BaseIndex }
 pextrd<sse41>, 0x660f3a16, <sse41:cpu>, Modrm|<sse41:attr>|NoSuf|IgnoreSize, { Imm8, RegXMM, Reg32|Unspecified|BaseIndex }
@@ -1405,7 +1405,7 @@ rounds<sd><sse41>, 0x660f3a0a | <sd:opc>, <sse41:cpu>, Modrm|<sse41:scal>|<sse41
 
 <sse42:cpu:attr:vvvv, $avx:AVX:Vex128|VexW0|SSE2AVX:VexVVVV, $sse:SSE4_2::>
 
-pcmpgtq<sse42>, 0x660f3837, <sse42:cpu>, Modrm|<sse42:attr>|<sse42:vvvv>|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
+pcmpgtq<sse42>, 0x660f3837, <sse42:cpu>, Modrm|<sse42:attr>|<sse42:vvvv>|NoSuf|Optimize, { RegXMM|Unspecified|BaseIndex, RegXMM }
 pcmpestri<sse42>, 0x660f3a61, <sse42:cpu>|No64, Modrm|<sse42:attr>|NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
 pcmpestri, 0x6661, AVX|x64, Modrm|Vex|Space0F3A|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 pcmpestri, 0x660f3a61, SSE4_2|x64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
@@ -1592,14 +1592,14 @@ vpblendvb, 0x664c, AVX|AVX2, Modrm|Vex|Space0F3A|VexVVVV|VexWIG|CheckOperandSize
 vpblendw, 0x660e, AVX|AVX2, Modrm|Vex|Space0F3A|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vpcmpeq<bw>, 0x6674 | <bw:opc>, AVX|AVX2, Modrm|C|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vpcmpeqd, 0x6676, AVX|AVX2, Modrm|C|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
-vpcmpeqq, 0x6629, AVX|AVX2, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpcmpeqq, 0x6629, AVX|AVX2, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf|Optimize, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vpcmpestri, 0x6661, AVX|No64, Modrm|Vex|Space0F3A|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
 vpcmpestri, 0x6661, AVX|x64, Modrm|Vex|Space0F3A|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 vpcmpestrm, 0x6660, AVX|No64, Modrm|Vex|Space0F3A|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
 vpcmpestrm, 0x6660, AVX|x64, Modrm|Vex|Space0F3A|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
-vpcmpgt<bw>, 0x6664 | <bw:opc>, AVX|AVX2, Modrm|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
-vpcmpgtd, 0x6666, AVX|AVX2, Modrm|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
-vpcmpgtq, 0x6637, AVX|AVX2, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpcmpgt<bw>, 0x6664 | <bw:opc>, AVX|AVX2, Modrm|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf|Optimize, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpcmpgtd, 0x6666, AVX|AVX2, Modrm|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf|Optimize, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpcmpgtq, 0x6637, AVX|AVX2, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf|Optimize, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vpcmpistri, 0x6663, AVX, Modrm|Vex|Space0F3A|VexWIG|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
 vpcmpistrm, 0x6662, AVX, Modrm|Vex|Space0F3A|VexWIG|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }
 vperm2f128, 0x6606, AVX, Modrm|Vex256|Space0F3A|VexVVVV|VexW0|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
@@ -1734,7 +1734,7 @@ vbroadcastsd, 0x6619, AVX2, Modrm|Vex=2|Space0F38|VexW=1|NoSuf, { RegXMM, RegYMM
 vbroadcastss, 0x6618, AVX2, Modrm|Vex|Space0F38|VexW=1|NoSuf, { RegXMM, RegXMM|RegYMM }
 vpblendd, 0x6602, AVX2, Modrm|Vex|Space0F3A|VexVVVV|VexW0|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vpbroadcast<bw>, 0x6678 | <bw:opc>, AVX2, Modrm|Vex|Space0F38|VexW0|NoSuf, { <bw:elem>|Unspecified|BaseIndex|RegXMM, RegXMM|RegYMM }
-vpbroadcast<dq>, 0x6658 | <dq:opc>, AVX2, Modrm|Vex|Space0F38|VexW0|NoSuf, { <dq:elem>|Unspecified|BaseIndex|RegXMM, RegXMM|RegYMM }
+vpbroadcast<dq>, 0x6658 | <dq:opc>, AVX2, Modrm|Vex|Space0F38|VexW0|NoSuf|Optimize, { <dq:elem>|Unspecified|BaseIndex|RegXMM, RegXMM|RegYMM }
 vperm2i128, 0x6646, AVX2, Modrm|Vex=2|Space0F3A|VexVVVV|VexW0|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
 vpermd, 0x6636, AVX2, Modrm|Vex256|Space0F38|VexVVVV|VexW0|NoSuf, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
 vpermpd, 0x6601, AVX2, Modrm|Vex=2|Space0F3A|VexW1|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegYMM, RegYMM }
@@ -2043,6 +2043,28 @@ sha256rnds2, 0xf38cb, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
 sha256msg1, 0xf38cc, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
 sha256msg2, 0xf38cd, SHA, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM }
 
+// SHA512 instructions.
+
+vsha512rnds2, 0xf2cb, SHA512, Modrm|Vex256|Space0F38|VexVVVV|VexW0|NoSuf, { RegXMM, RegYMM, RegYMM }
+vsha512msg1, 0xf2cc, SHA512, Modrm|Vex256|Space0F38|VexW0|NoSuf, { RegXMM, RegYMM }
+vsha512msg2, 0xf2cd, SHA512, Modrm|Vex256|Space0F38|VexW0|NoSuf, { RegYMM, RegYMM }
+
+// SHA512 instructions end.
+
+// SM3 instructions.
+vsm3rnds2, 0x66de, SM3, Modrm|Space0F3A|Vex128|VexVVVV|VexW0|NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vsm3msg1, 0xda, SM3, Modrm|Space0F38|Vex128|VexVVVV|VexW0|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vsm3msg2, 0x66da, SM3, Modrm|Space0F38|Vex128|VexVVVV|VexW0|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+
+// SM3 instructions end.
+
+// SM4 instructions.
+
+vsm4key4, 0xf3da, SM4, Modrm|Space0F38|Vex|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vsm4rnds4, 0xf2da, SM4, Modrm|Space0F38|Vex|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+
+// SM4 instructions end.
+
 // VPCLMULQDQ instructions
 
 vpclmulqdq, 0x6644, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
@@ -2910,6 +2932,17 @@ vpdpbsuds, 0xf351, AVX_VNNI_INT8, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckOperand
 
 // AVX-VNNI-INT8 instructions end.
 
+// AVX-VNNI-INT16 instructions.
+
+vpdpwuud, 0xd2, AVX_VNNI_INT16, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vpdpwuuds, 0xd3, AVX_VNNI_INT16, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vpdpwusd, 0x66d2, AVX_VNNI_INT16, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vpdpwusds, 0x66d3, AVX_VNNI_INT16, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vpdpwsud, 0xf3d2, AVX_VNNI_INT16, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vpdpwsuds, 0xf3d3, AVX_VNNI_INT16, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+
+// AVX-VNNI-INT16 instructions end.
+
 // AVX512_BITALG instructions
 
 vpopcnt<bw>, 0x6654, AVX512_BITALG, Modrm|Masking|Space0F38|<bw:vexw>|Disp8ShiftVL|CheckOperandSize|NoSuf, { RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
@@ -3033,6 +3066,12 @@ pconfig, 0x0f01c5, PCONFIG, NoSuf, {}
 
 // PCONFIG instruction end.
 
+// PBNDKB instruction.
+
+pbndkb, 0x0f01c7, PBNDKB|x64, NoSuf, {}
+
+// PBNDKB instruction end.
+
 // WAITPKG instructions.
 
 umonitor, 0xf30fae/6, WAITPKG, Modrm|AddrPrefixOpReg|NoSuf, { Reg16|Reg32|Reg64 }
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index cecb084a335..35af836b251 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -33,7 +33,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -47,7 +48,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -61,7 +63,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -75,7 +78,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -89,7 +93,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -103,7 +108,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -117,7 +123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -131,7 +138,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -145,7 +153,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -159,7 +168,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -173,7 +183,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -187,7 +198,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -201,7 +213,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -215,7 +228,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -229,7 +243,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -243,7 +258,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -257,7 +273,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -271,7 +288,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -285,7 +303,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -299,7 +318,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -313,7 +333,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -327,7 +348,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -341,7 +363,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -355,7 +378,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -369,7 +393,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -383,7 +408,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -397,7 +423,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -411,7 +438,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -425,7 +453,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0xff, 1, SPACE_BASE, 6,
@@ -437,7 +466,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_push, 0x6a, 1, SPACE_BASE, None,
@@ -449,7 +479,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x68, 1, SPACE_BASE, None,
@@ -461,7 +492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x06, 1, SPACE_BASE, None,
@@ -473,7 +505,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x50, 1, SPACE_BASE, None,
@@ -485,7 +518,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0xff, 1, SPACE_BASE, 6,
@@ -497,7 +531,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_push, 0x6a, 1, SPACE_BASE, None,
@@ -509,7 +544,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0x68, 1, SPACE_BASE, None,
@@ -521,7 +557,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_push, 0xa0, 1, SPACE_0F, None,
@@ -533,7 +570,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pusha, 0x60, 0, SPACE_BASE, None,
@@ -545,7 +583,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x58, 1, SPACE_BASE, None,
@@ -557,7 +596,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x8f, 1, SPACE_BASE, 0,
@@ -569,7 +609,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_pop, 0x07, 1, SPACE_BASE, None,
@@ -581,7 +622,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x58, 1, SPACE_BASE, None,
@@ -593,7 +635,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pop, 0x8f, 1, SPACE_BASE, 0,
@@ -605,7 +648,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_pop, 0xa1, 1, SPACE_0F, None,
@@ -617,7 +661,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_popa, 0x61, 0, SPACE_BASE, None,
@@ -629,7 +674,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xchg, 0x90, 2, SPACE_BASE, None,
@@ -641,7 +687,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -655,7 +702,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -669,7 +717,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -683,7 +732,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
@@ -697,7 +747,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_in, 0xec, 1, SPACE_BASE, None,
@@ -709,7 +760,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_out, 0xe6, 2, SPACE_BASE, None,
@@ -721,7 +773,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -735,7 +788,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -749,7 +803,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_out, 0xee, 1, SPACE_BASE, None,
@@ -761,7 +816,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lea, 0x8d, 2, SPACE_BASE, None,
@@ -773,7 +829,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -787,7 +844,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -801,7 +859,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -815,7 +874,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -829,7 +889,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -843,7 +904,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -857,7 +919,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -871,7 +934,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -885,7 +949,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -899,7 +964,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cld, 0xfc, 0, SPACE_BASE, None,
@@ -911,7 +977,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cli, 0xfa, 0, SPACE_BASE, None,
@@ -923,7 +990,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clts, 0x06, 0, SPACE_0F, None,
@@ -935,7 +1003,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmc, 0xf5, 0, SPACE_BASE, None,
@@ -947,7 +1016,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lahf, 0x9f, 0, SPACE_BASE, None,
@@ -959,7 +1029,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lahf, 0x9f, 0, SPACE_BASE, None,
@@ -971,7 +1042,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sahf, 0x9e, 0, SPACE_BASE, None,
@@ -983,7 +1055,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sahf, 0x9e, 0, SPACE_BASE, None,
@@ -995,7 +1068,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pushf, 0x9c, 0, SPACE_BASE, None,
@@ -1007,7 +1081,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pushf, 0x9c, 0, SPACE_BASE, None,
@@ -1019,7 +1094,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_popf, 0x9d, 0, SPACE_BASE, None,
@@ -1031,7 +1107,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_popf, 0x9d, 0, SPACE_BASE, None,
@@ -1043,7 +1120,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stc, 0xf9, 0, SPACE_BASE, None,
@@ -1055,7 +1133,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_std, 0xfd, 0, SPACE_BASE, None,
@@ -1067,7 +1146,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sti, 0xfb, 0, SPACE_BASE, None,
@@ -1079,7 +1159,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_add, 0x00, 2, SPACE_BASE, None,
@@ -1091,7 +1172,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1105,7 +1187,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1119,7 +1202,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1133,7 +1217,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1147,7 +1232,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_inc, 0xfe, 1, SPACE_BASE, 0,
@@ -1159,7 +1245,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sub, 0x28, 2, SPACE_BASE, None,
@@ -1171,7 +1258,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1185,7 +1273,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1199,7 +1288,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1213,7 +1303,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1227,7 +1318,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_dec, 0xfe, 1, SPACE_BASE, 1,
@@ -1239,7 +1331,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sbb, 0x18, 2, SPACE_BASE, None,
@@ -1251,7 +1344,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1265,7 +1359,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1279,7 +1374,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1293,7 +1389,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1307,7 +1404,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1321,7 +1419,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1335,7 +1434,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1349,7 +1449,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1363,7 +1464,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1377,7 +1479,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1391,7 +1494,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1405,7 +1509,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1419,7 +1524,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1433,7 +1539,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1447,7 +1554,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1461,7 +1569,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1475,7 +1584,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1489,7 +1599,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1503,7 +1614,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1517,7 +1629,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1531,7 +1644,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1545,7 +1659,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1559,7 +1674,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1573,7 +1689,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_adc, 0x10, 2, SPACE_BASE, None,
@@ -1585,7 +1702,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1599,7 +1717,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1613,7 +1732,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -1627,7 +1747,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -1641,7 +1762,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_not, 0xf6, 1, SPACE_BASE, 2,
@@ -1653,7 +1775,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aaa, 0x37, 0, SPACE_BASE, None,
@@ -1665,7 +1788,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aas, 0x3f, 0, SPACE_BASE, None,
@@ -1677,7 +1801,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_daa, 0x27, 0, SPACE_BASE, None,
@@ -1689,7 +1814,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_das, 0x2f, 0, SPACE_BASE, None,
@@ -1701,7 +1827,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aad, 0xd50a, 0, SPACE_BASE, None,
@@ -1713,7 +1840,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aad, 0xd5, 1, SPACE_BASE, None,
@@ -1725,7 +1853,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aam, 0xd40a, 0, SPACE_BASE, None,
@@ -1737,7 +1866,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aam, 0xd4, 1, SPACE_BASE, None,
@@ -1749,7 +1879,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cbw, 0x98, 0, SPACE_BASE, None,
@@ -1761,7 +1892,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwde, 0x98, 0, SPACE_BASE, None,
@@ -1773,7 +1905,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cdqe, 0x98, 0, SPACE_BASE, None,
@@ -1785,7 +1918,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwd, 0x99, 0, SPACE_BASE, None,
@@ -1797,7 +1931,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cdq, 0x99, 0, SPACE_BASE, None,
@@ -1809,7 +1944,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cqo, 0x99, 0, SPACE_BASE, None,
@@ -1821,7 +1957,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cbtw, 0x98, 0, SPACE_BASE, None,
@@ -1833,7 +1970,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwtl, 0x98, 0, SPACE_BASE, None,
@@ -1845,7 +1983,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cltq, 0x98, 0, SPACE_BASE, None,
@@ -1857,7 +1996,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cwtd, 0x99, 0, SPACE_BASE, None,
@@ -1869,7 +2009,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cltd, 0x99, 0, SPACE_BASE, None,
@@ -1881,7 +2022,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cqto, 0x99, 0, SPACE_BASE, None,
@@ -1893,7 +2035,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mul, 0xf6, 1, SPACE_BASE, 4,
@@ -1905,7 +2048,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_imul, 0xf6, 1, SPACE_BASE, 5,
@@ -1917,7 +2061,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_imul, 0xaf, 2, SPACE_0F, None,
@@ -1929,7 +2074,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1943,7 +2089,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1959,7 +2106,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -1975,7 +2123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -1989,7 +2138,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2003,7 +2153,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_div, 0xf6, 2, SPACE_BASE, 6,
@@ -2015,7 +2166,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -2029,7 +2181,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_idiv, 0xf6, 2, SPACE_BASE, 7,
@@ -2041,7 +2194,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -2055,7 +2209,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2069,7 +2224,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2083,7 +2239,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2097,7 +2254,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ror, 0xd0, 2, SPACE_BASE, 1,
@@ -2109,7 +2267,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2123,7 +2282,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2137,7 +2297,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2151,7 +2312,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_rcl, 0xd0, 2, SPACE_BASE, 2,
@@ -2163,7 +2325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2177,7 +2340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2191,7 +2355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2205,7 +2370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_rcr, 0xd0, 2, SPACE_BASE, 3,
@@ -2217,7 +2383,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2231,7 +2398,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2245,7 +2413,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2259,7 +2428,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sal, 0xd0, 2, SPACE_BASE, 4,
@@ -2271,7 +2441,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2285,7 +2456,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2299,7 +2471,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2313,7 +2486,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_shl, 0xd0, 2, SPACE_BASE, 4,
@@ -2325,7 +2499,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2339,7 +2514,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2353,7 +2529,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2367,7 +2544,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_shr, 0xd0, 2, SPACE_BASE, 5,
@@ -2379,7 +2557,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2393,7 +2572,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2407,7 +2587,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2421,7 +2602,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sar, 0xd0, 2, SPACE_BASE, 7,
@@ -2433,7 +2615,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2447,7 +2630,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2461,7 +2645,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -2475,7 +2660,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_shld, 0xa4, 3, SPACE_0F, None,
@@ -2487,7 +2673,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2503,7 +2690,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2519,7 +2707,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2533,7 +2722,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2549,7 +2739,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -2565,7 +2756,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -2579,7 +2771,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xe8, 1, SPACE_BASE, None,
@@ -2591,7 +2784,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xe8, 1, SPACE_BASE, None,
@@ -2603,7 +2797,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 2,
@@ -2615,7 +2810,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 2,
@@ -2627,7 +2823,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 2,
@@ -2639,7 +2836,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_call, 0x9a, 2, SPACE_BASE, None,
@@ -2651,7 +2849,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2665,7 +2864,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_call, 0xff, 1, SPACE_BASE, 3,
@@ -2677,7 +2877,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lcall, 0x9a, 2, SPACE_BASE, None,
@@ -2689,7 +2890,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2703,7 +2905,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lcall, 0xff, 1, SPACE_BASE, 3,
@@ -2715,7 +2918,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xeb, 1, SPACE_BASE, None,
@@ -2727,7 +2931,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jmp, 0xeb, 1, SPACE_BASE, None,
@@ -2739,7 +2944,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 4,
@@ -2751,7 +2957,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 4,
@@ -2763,7 +2970,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 4,
@@ -2775,7 +2983,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_jmp, 0xea, 2, SPACE_BASE, None,
@@ -2787,7 +2996,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2801,7 +3011,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jmp, 0xff, 1, SPACE_BASE, 5,
@@ -2813,7 +3024,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ljmp, 0xea, 2, SPACE_BASE, None,
@@ -2825,7 +3037,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2839,7 +3052,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ljmp, 0xff, 1, SPACE_BASE, 5,
@@ -2851,7 +3065,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ret, 0xc3, 0, SPACE_BASE, None,
@@ -2863,7 +3078,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc2, 1, SPACE_BASE, None,
@@ -2875,7 +3091,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc3, 0, SPACE_BASE, None,
@@ -2887,7 +3104,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc2, 1, SPACE_BASE, None,
@@ -2899,7 +3117,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc3, 0, SPACE_BASE, None,
@@ -2911,7 +3130,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ret, 0xc2, 1, SPACE_BASE, None,
@@ -2923,7 +3143,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lret, 0xcb, 0, SPACE_BASE, None,
@@ -2935,7 +3156,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lret, 0xca, 1, SPACE_BASE, None,
@@ -2947,7 +3169,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_retf, 0xcb, 0, SPACE_BASE, None,
@@ -2959,7 +3182,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_retf, 0xca, 1, SPACE_BASE, None,
@@ -2971,7 +3195,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_enter, 0xc8, 2, SPACE_BASE, None,
@@ -2983,7 +3208,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2997,7 +3223,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3011,7 +3238,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_leave, 0xc9, 0, SPACE_BASE, None,
@@ -3023,7 +3251,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jo, 0x70, 1, SPACE_BASE, None,
@@ -3035,7 +3264,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jno, 0x71, 1, SPACE_BASE, None,
@@ -3047,7 +3277,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jb, 0x72, 1, SPACE_BASE, None,
@@ -3059,7 +3290,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jc, 0x72, 1, SPACE_BASE, None,
@@ -3071,7 +3303,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnae, 0x72, 1, SPACE_BASE, None,
@@ -3083,7 +3316,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnb, 0x73, 1, SPACE_BASE, None,
@@ -3095,7 +3329,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnc, 0x73, 1, SPACE_BASE, None,
@@ -3107,7 +3342,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jae, 0x73, 1, SPACE_BASE, None,
@@ -3119,7 +3355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_je, 0x74, 1, SPACE_BASE, None,
@@ -3131,7 +3368,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jz, 0x74, 1, SPACE_BASE, None,
@@ -3143,7 +3381,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jne, 0x75, 1, SPACE_BASE, None,
@@ -3155,7 +3394,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnz, 0x75, 1, SPACE_BASE, None,
@@ -3167,7 +3407,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jbe, 0x76, 1, SPACE_BASE, None,
@@ -3179,7 +3420,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jna, 0x76, 1, SPACE_BASE, None,
@@ -3191,7 +3433,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnbe, 0x77, 1, SPACE_BASE, None,
@@ -3203,7 +3446,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ja, 0x77, 1, SPACE_BASE, None,
@@ -3215,7 +3459,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_js, 0x78, 1, SPACE_BASE, None,
@@ -3227,7 +3472,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jns, 0x79, 1, SPACE_BASE, None,
@@ -3239,7 +3485,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jp, 0x7a, 1, SPACE_BASE, None,
@@ -3251,7 +3498,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jpe, 0x7a, 1, SPACE_BASE, None,
@@ -3263,7 +3511,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnp, 0x7b, 1, SPACE_BASE, None,
@@ -3275,7 +3524,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jpo, 0x7b, 1, SPACE_BASE, None,
@@ -3287,7 +3537,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jl, 0x7c, 1, SPACE_BASE, None,
@@ -3299,7 +3550,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnge, 0x7c, 1, SPACE_BASE, None,
@@ -3311,7 +3563,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnl, 0x7d, 1, SPACE_BASE, None,
@@ -3323,7 +3576,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jge, 0x7d, 1, SPACE_BASE, None,
@@ -3335,7 +3589,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jle, 0x7e, 1, SPACE_BASE, None,
@@ -3347,7 +3602,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jng, 0x7e, 1, SPACE_BASE, None,
@@ -3359,7 +3615,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jnle, 0x7f, 1, SPACE_BASE, None,
@@ -3371,7 +3628,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jg, 0x7f, 1, SPACE_BASE, None,
@@ -3383,7 +3641,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jcxz, 0xe3, 1, SPACE_BASE, None,
@@ -3395,7 +3654,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jecxz, 0xe3, 1, SPACE_BASE, None,
@@ -3407,7 +3667,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_jrcxz, 0xe3, 1, SPACE_BASE, None,
@@ -3419,7 +3680,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loop, 0xe2, 1, SPACE_BASE, None,
@@ -3431,7 +3693,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loop, 0xe2, 1, SPACE_BASE, None,
@@ -3443,7 +3706,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopz, 0xe1, 1, SPACE_BASE, None,
@@ -3455,7 +3719,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopz, 0xe1, 1, SPACE_BASE, None,
@@ -3467,7 +3732,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loope, 0xe1, 1, SPACE_BASE, None,
@@ -3479,7 +3745,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loope, 0xe1, 1, SPACE_BASE, None,
@@ -3491,7 +3758,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopnz, 0xe0, 1, SPACE_BASE, None,
@@ -3503,7 +3771,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopnz, 0xe0, 1, SPACE_BASE, None,
@@ -3515,7 +3784,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopne, 0xe0, 1, SPACE_BASE, None,
@@ -3527,7 +3797,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_loopne, 0xe0, 1, SPACE_BASE, None,
@@ -3539,7 +3810,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seto, 0x90, 1, SPACE_0F, 0,
@@ -3551,7 +3823,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setno, 0x91, 1, SPACE_0F, 0,
@@ -3563,7 +3836,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setb, 0x92, 1, SPACE_0F, 0,
@@ -3575,7 +3849,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setc, 0x92, 1, SPACE_0F, 0,
@@ -3587,7 +3862,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnae, 0x92, 1, SPACE_0F, 0,
@@ -3599,7 +3875,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnb, 0x93, 1, SPACE_0F, 0,
@@ -3611,7 +3888,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnc, 0x93, 1, SPACE_0F, 0,
@@ -3623,7 +3901,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setae, 0x93, 1, SPACE_0F, 0,
@@ -3635,7 +3914,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sete, 0x94, 1, SPACE_0F, 0,
@@ -3647,7 +3927,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setz, 0x94, 1, SPACE_0F, 0,
@@ -3659,7 +3940,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setne, 0x95, 1, SPACE_0F, 0,
@@ -3671,7 +3953,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnz, 0x95, 1, SPACE_0F, 0,
@@ -3683,7 +3966,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setbe, 0x96, 1, SPACE_0F, 0,
@@ -3695,7 +3979,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setna, 0x96, 1, SPACE_0F, 0,
@@ -3707,7 +3992,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnbe, 0x97, 1, SPACE_0F, 0,
@@ -3719,7 +4005,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_seta, 0x97, 1, SPACE_0F, 0,
@@ -3731,7 +4018,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sets, 0x98, 1, SPACE_0F, 0,
@@ -3743,7 +4031,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setns, 0x99, 1, SPACE_0F, 0,
@@ -3755,7 +4044,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setp, 0x9a, 1, SPACE_0F, 0,
@@ -3767,7 +4057,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setpe, 0x9a, 1, SPACE_0F, 0,
@@ -3779,7 +4070,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnp, 0x9b, 1, SPACE_0F, 0,
@@ -3791,7 +4083,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setpo, 0x9b, 1, SPACE_0F, 0,
@@ -3803,7 +4096,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setl, 0x9c, 1, SPACE_0F, 0,
@@ -3815,7 +4109,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnge, 0x9c, 1, SPACE_0F, 0,
@@ -3827,7 +4122,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnl, 0x9d, 1, SPACE_0F, 0,
@@ -3839,7 +4135,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setge, 0x9d, 1, SPACE_0F, 0,
@@ -3851,7 +4148,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setle, 0x9e, 1, SPACE_0F, 0,
@@ -3863,7 +4161,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setng, 0x9e, 1, SPACE_0F, 0,
@@ -3875,7 +4174,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setnle, 0x9f, 1, SPACE_0F, 0,
@@ -3887,7 +4187,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_setg, 0x9f, 1, SPACE_0F, 0,
@@ -3899,7 +4200,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_cmps, 0xa6, 0, SPACE_BASE, None,
@@ -3911,7 +4213,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmps, 0xa6, 2, SPACE_BASE, None,
@@ -3923,7 +4226,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -3937,7 +4241,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_scmp, 0xa6, 2, SPACE_BASE, None,
@@ -3949,7 +4254,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -3963,7 +4269,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ins, 0x6c, 2, SPACE_BASE, None,
@@ -3975,7 +4282,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0,
@@ -3989,7 +4297,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_outs, 0x6e, 2, SPACE_BASE, None,
@@ -4001,7 +4310,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -4015,7 +4325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lods, 0xac, 1, SPACE_BASE, None,
@@ -4027,7 +4338,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lods, 0xac, 2, SPACE_BASE, None,
@@ -4039,7 +4351,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -4053,7 +4366,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_slod, 0xac, 1, SPACE_BASE, None,
@@ -4065,7 +4379,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_slod, 0xac, 2, SPACE_BASE, None,
@@ -4077,7 +4392,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -4091,7 +4407,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movs, 0xa4, 2, SPACE_BASE, None,
@@ -4103,7 +4420,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -4117,7 +4435,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_smov, 0xa4, 2, SPACE_BASE, None,
@@ -4129,7 +4448,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -4143,7 +4463,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_scas, 0xae, 1, SPACE_BASE, None,
@@ -4155,7 +4476,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_scas, 0xae, 2, SPACE_BASE, None,
@@ -4167,7 +4489,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -4181,7 +4504,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ssca, 0xae, 1, SPACE_BASE, None,
@@ -4193,7 +4517,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ssca, 0xae, 2, SPACE_BASE, None,
@@ -4205,7 +4530,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
@@ -4219,7 +4545,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stos, 0xaa, 1, SPACE_BASE, None,
@@ -4231,7 +4558,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_stos, 0xaa, 2, SPACE_BASE, None,
@@ -4243,7 +4571,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -4257,7 +4586,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ssto, 0xaa, 1, SPACE_BASE, None,
@@ -4269,7 +4599,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ssto, 0xaa, 2, SPACE_BASE, None,
@@ -4281,7 +4612,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -4295,7 +4627,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xlat, 0xd7, 1, SPACE_BASE, None,
@@ -4307,7 +4640,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_bsf, 0xbc, 2, SPACE_0F, None,
@@ -4319,7 +4653,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4333,7 +4668,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4347,7 +4683,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4361,7 +4698,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4375,7 +4713,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4389,7 +4728,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4403,7 +4743,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4417,7 +4758,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4431,7 +4773,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4445,7 +4788,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
@@ -4459,7 +4803,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_int1, 0xf1, 0, SPACE_BASE, None,
@@ -4471,7 +4816,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_int3, 0xcc, 0, SPACE_BASE, None,
@@ -4483,7 +4829,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_into, 0xce, 0, SPACE_BASE, None,
@@ -4495,7 +4842,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_iret, 0xcf, 0, SPACE_BASE, None,
@@ -4507,7 +4855,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rsm, 0xaa, 0, SPACE_0F, None,
@@ -4519,7 +4868,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bound, 0x62, 2, SPACE_BASE, None,
@@ -4531,7 +4881,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -4545,7 +4896,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_nop, 0x1f, 1, SPACE_0F, 0,
@@ -4557,7 +4909,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_nop, 0x90, 0, SPACE_BASE, None,
@@ -4569,7 +4922,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_arpl, 0x63, 2, SPACE_BASE, None,
@@ -4581,7 +4935,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -4595,7 +4950,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -4609,7 +4965,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4623,7 +4980,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4637,7 +4995,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lgdt, 0x01, 1, SPACE_0F, 2,
@@ -4649,7 +5008,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lidt, 0x01, 1, SPACE_0F, 3,
@@ -4661,7 +5021,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lidt, 0x01, 1, SPACE_0F, 3,
@@ -4673,7 +5034,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lldt, 0x00, 1, SPACE_0F, 2,
@@ -4685,7 +5047,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lldt, 0x00, 1, SPACE_0F, 2,
@@ -4697,7 +5060,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lmsw, 0x01, 1, SPACE_0F, 6,
@@ -4709,7 +5073,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_lsl, 0x03, 2, SPACE_0F, None,
@@ -4721,7 +5086,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4735,7 +5101,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -4749,7 +5116,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ltr, 0x00, 1, SPACE_0F, 3,
@@ -4761,7 +5129,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sgdt, 0x01, 1, SPACE_0F, 0,
@@ -4773,7 +5142,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sgdt, 0x01, 1, SPACE_0F, 0,
@@ -4785,7 +5155,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sidt, 0x01, 1, SPACE_0F, 1,
@@ -4797,7 +5168,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sidt, 0x01, 1, SPACE_0F, 1,
@@ -4809,7 +5181,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sldt, 0x00, 1, SPACE_0F, 0,
@@ -4821,7 +5194,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sldt, 0x00, 1, SPACE_0F, 0,
@@ -4833,7 +5207,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_smsw, 0x01, 1, SPACE_0F, 4,
@@ -4845,7 +5220,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_smsw, 0x01, 1, SPACE_0F, 4,
@@ -4857,7 +5233,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_str, 0x00, 1, SPACE_0F, 1,
@@ -4869,7 +5246,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_str, 0x00, 1, SPACE_0F, 1,
@@ -4881,7 +5259,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_verr, 0x00, 1, SPACE_0F, 4,
@@ -4893,7 +5272,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_verr, 0x00, 1, SPACE_0F, 4,
@@ -4905,7 +5285,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_verw, 0x00, 1, SPACE_0F, 5,
@@ -4917,7 +5298,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_verw, 0x00, 1, SPACE_0F, 5,
@@ -4929,7 +5311,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fld, 0xd9, 1, SPACE_BASE, 0,
@@ -4941,7 +5324,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fld, 0xd9, 1, SPACE_BASE, 0,
@@ -4953,7 +5337,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fld, 0xd9, 1, SPACE_BASE, 0,
@@ -4965,7 +5350,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fld, 0xdb, 1, SPACE_BASE, 5,
@@ -4977,7 +5363,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fild, 0xdf, 1, SPACE_BASE, 0,
@@ -4989,7 +5376,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fild, 0xdf, 1, SPACE_BASE, 5,
@@ -5001,7 +5389,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fildll, 0xdf, 1, SPACE_BASE, 5,
@@ -5013,7 +5402,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fldt, 0xdb, 1, SPACE_BASE, 5,
@@ -5025,7 +5415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fbld, 0xdf, 1, SPACE_BASE, 4,
@@ -5037,7 +5428,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fst, 0xdd, 1, SPACE_BASE, 2,
@@ -5049,7 +5441,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fst, 0xd9, 1, SPACE_BASE, 2,
@@ -5061,7 +5454,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fst, 0xdd, 1, SPACE_BASE, 2,
@@ -5073,7 +5467,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fist, 0xdf, 1, SPACE_BASE, 2,
@@ -5085,7 +5480,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstp, 0xdd, 1, SPACE_BASE, 3,
@@ -5097,7 +5493,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstp, 0xd9, 1, SPACE_BASE, 3,
@@ -5109,7 +5506,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstp, 0xdd, 1, SPACE_BASE, 3,
@@ -5121,7 +5519,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstp, 0xdb, 1, SPACE_BASE, 7,
@@ -5133,7 +5532,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fistp, 0xdf, 1, SPACE_BASE, 3,
@@ -5145,7 +5545,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fistp, 0xdf, 1, SPACE_BASE, 7,
@@ -5157,7 +5558,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fistpll, 0xdf, 1, SPACE_BASE, 7,
@@ -5169,7 +5571,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstpt, 0xdb, 1, SPACE_BASE, 7,
@@ -5181,7 +5584,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fbstp, 0xdf, 1, SPACE_BASE, 6,
@@ -5193,7 +5597,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxch, 0xd9, 1, SPACE_BASE, 1,
@@ -5205,7 +5610,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxch, 0xd9c9, 0, SPACE_BASE, None,
@@ -5217,7 +5623,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcom, 0xd8, 1, SPACE_BASE, 2,
@@ -5229,7 +5636,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcom, 0xd8d1, 0, SPACE_BASE, None,
@@ -5241,7 +5649,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcom, 0xd8, 1, SPACE_BASE, 2,
@@ -5253,7 +5662,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcom, 0xd8, 1, SPACE_BASE, 2,
@@ -5265,7 +5675,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ficom, 0xde, 1, SPACE_BASE, 2,
@@ -5277,7 +5688,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcomp, 0xd8, 1, SPACE_BASE, 3,
@@ -5289,7 +5701,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomp, 0xd8d9, 0, SPACE_BASE, None,
@@ -5301,7 +5714,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomp, 0xd8, 1, SPACE_BASE, 3,
@@ -5313,7 +5727,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcomp, 0xd8, 1, SPACE_BASE, 3,
@@ -5325,7 +5740,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ficomp, 0xde, 1, SPACE_BASE, 3,
@@ -5337,7 +5753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fcompp, 0xded9, 0, SPACE_BASE, None,
@@ -5349,7 +5766,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucom, 0xdd, 1, SPACE_BASE, 4,
@@ -5361,7 +5779,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucom, 0xdde1, 0, SPACE_BASE, None,
@@ -5373,7 +5792,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomp, 0xdd, 1, SPACE_BASE, 5,
@@ -5385,7 +5805,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomp, 0xdde9, 0, SPACE_BASE, None,
@@ -5397,7 +5818,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucompp, 0xdae9, 0, SPACE_BASE, None,
@@ -5409,7 +5831,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ftst, 0xd9e4, 0, SPACE_BASE, None,
@@ -5421,7 +5844,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxam, 0xd9e5, 0, SPACE_BASE, None,
@@ -5433,7 +5857,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fld1, 0xd9e8, 0, SPACE_BASE, None,
@@ -5445,7 +5870,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldl2t, 0xd9e9, 0, SPACE_BASE, None,
@@ -5457,7 +5883,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldl2e, 0xd9ea, 0, SPACE_BASE, None,
@@ -5469,7 +5896,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldpi, 0xd9eb, 0, SPACE_BASE, None,
@@ -5481,7 +5909,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldlg2, 0xd9ec, 0, SPACE_BASE, None,
@@ -5493,7 +5922,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldln2, 0xd9ed, 0, SPACE_BASE, None,
@@ -5505,7 +5935,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldz, 0xd9ee, 0, SPACE_BASE, None,
@@ -5517,7 +5948,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fadd, 0xd8, 2, SPACE_BASE, 0,
@@ -5529,7 +5961,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5543,7 +5976,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fadd, 0xdec1, 0, SPACE_BASE, None,
@@ -5555,7 +5989,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fadd, 0xd8, 1, SPACE_BASE, 0,
@@ -5567,7 +6002,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fiadd, 0xde, 1, SPACE_BASE, 0,
@@ -5579,7 +6015,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_faddp, 0xde, 2, SPACE_BASE, 0,
@@ -5591,7 +6028,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5605,7 +6043,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_faddp, 0xdec1, 0, SPACE_BASE, None,
@@ -5617,7 +6056,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xd8, 1, SPACE_BASE, 4,
@@ -5629,7 +6069,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xd8, 2, SPACE_BASE, 4,
@@ -5641,7 +6082,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5655,7 +6097,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xdee9, 0, SPACE_BASE, None,
@@ -5667,7 +6110,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsub, 0xd8, 1, SPACE_BASE, 4,
@@ -5679,7 +6123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisub, 0xde, 1, SPACE_BASE, 4,
@@ -5691,7 +6136,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fsubp, 0xde, 2, SPACE_BASE, 4,
@@ -5703,7 +6149,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5717,7 +6164,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubp, 0xdee1, 0, SPACE_BASE, None,
@@ -5729,7 +6177,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubp, 0xde, 2, SPACE_BASE, 5,
@@ -5741,7 +6190,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5755,7 +6205,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubp, 0xdee9, 0, SPACE_BASE, None,
@@ -5767,7 +6218,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xd8, 1, SPACE_BASE, 5,
@@ -5779,7 +6231,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xd8, 2, SPACE_BASE, 5,
@@ -5791,7 +6244,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5805,7 +6259,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xdee1, 0, SPACE_BASE, None,
@@ -5817,7 +6272,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubr, 0xd8, 1, SPACE_BASE, 5,
@@ -5829,7 +6285,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisubr, 0xde, 1, SPACE_BASE, 5,
@@ -5841,7 +6298,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fsubrp, 0xde, 2, SPACE_BASE, 5,
@@ -5853,7 +6311,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5867,7 +6326,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubrp, 0xdee9, 0, SPACE_BASE, None,
@@ -5879,7 +6339,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubrp, 0xde, 2, SPACE_BASE, 4,
@@ -5891,7 +6352,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5905,7 +6367,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsubrp, 0xdee1, 0, SPACE_BASE, None,
@@ -5917,7 +6380,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmul, 0xd8, 2, SPACE_BASE, 1,
@@ -5929,7 +6393,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -5943,7 +6408,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmul, 0xdec9, 0, SPACE_BASE, None,
@@ -5955,7 +6421,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmul, 0xd8, 1, SPACE_BASE, 1,
@@ -5967,7 +6434,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fimul, 0xde, 1, SPACE_BASE, 1,
@@ -5979,7 +6447,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fmulp, 0xde, 2, SPACE_BASE, 1,
@@ -5991,7 +6460,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -6005,7 +6475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fmulp, 0xdec9, 0, SPACE_BASE, None,
@@ -6017,7 +6488,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xd8, 1, SPACE_BASE, 6,
@@ -6029,7 +6501,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xd8, 2, SPACE_BASE, 6,
@@ -6041,7 +6514,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -6055,7 +6529,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xdef9, 0, SPACE_BASE, None,
@@ -6067,7 +6542,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdiv, 0xd8, 1, SPACE_BASE, 6,
@@ -6079,7 +6555,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fidiv, 0xde, 1, SPACE_BASE, 6,
@@ -6091,7 +6568,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fdivp, 0xde, 2, SPACE_BASE, 6,
@@ -6103,7 +6581,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -6117,7 +6596,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivp, 0xdef1, 0, SPACE_BASE, None,
@@ -6129,7 +6609,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivp, 0xde, 2, SPACE_BASE, 7,
@@ -6141,7 +6622,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -6155,7 +6637,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivp, 0xdef9, 0, SPACE_BASE, None,
@@ -6167,7 +6650,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xd8, 1, SPACE_BASE, 7,
@@ -6179,7 +6663,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xd8, 2, SPACE_BASE, 7,
@@ -6191,7 +6676,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -6205,7 +6691,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xdef1, 0, SPACE_BASE, None,
@@ -6217,7 +6704,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivr, 0xd8, 1, SPACE_BASE, 7,
@@ -6229,7 +6717,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fidivr, 0xde, 1, SPACE_BASE, 7,
@@ -6241,7 +6730,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fdivrp, 0xde, 2, SPACE_BASE, 7,
@@ -6253,7 +6743,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -6267,7 +6758,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivrp, 0xdef9, 0, SPACE_BASE, None,
@@ -6279,7 +6771,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivrp, 0xde, 2, SPACE_BASE, 6,
@@ -6291,7 +6784,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -6305,7 +6799,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdivrp, 0xdef1, 0, SPACE_BASE, None,
@@ -6317,7 +6812,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_f2xm1, 0xd9f0, 0, SPACE_BASE, None,
@@ -6329,7 +6825,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fyl2x, 0xd9f1, 0, SPACE_BASE, None,
@@ -6341,7 +6838,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fptan, 0xd9f2, 0, SPACE_BASE, None,
@@ -6353,7 +6851,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fpatan, 0xd9f3, 0, SPACE_BASE, None,
@@ -6365,7 +6864,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxtract, 0xd9f4, 0, SPACE_BASE, None,
@@ -6377,7 +6877,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fprem1, 0xd9f5, 0, SPACE_BASE, None,
@@ -6389,7 +6890,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdecstp, 0xd9f6, 0, SPACE_BASE, None,
@@ -6401,7 +6903,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fincstp, 0xd9f7, 0, SPACE_BASE, None,
@@ -6413,7 +6916,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fprem, 0xd9f8, 0, SPACE_BASE, None,
@@ -6425,7 +6929,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fyl2xp1, 0xd9f9, 0, SPACE_BASE, None,
@@ -6437,7 +6942,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsqrt, 0xd9fa, 0, SPACE_BASE, None,
@@ -6449,7 +6955,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsincos, 0xd9fb, 0, SPACE_BASE, None,
@@ -6461,7 +6968,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_frndint, 0xd9fc, 0, SPACE_BASE, None,
@@ -6473,7 +6981,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fscale, 0xd9fd, 0, SPACE_BASE, None,
@@ -6485,7 +6994,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsin, 0xd9fe, 0, SPACE_BASE, None,
@@ -6497,7 +7007,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcos, 0xd9ff, 0, SPACE_BASE, None,
@@ -6509,7 +7020,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fchs, 0xd9e0, 0, SPACE_BASE, None,
@@ -6521,7 +7033,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fabs, 0xd9e1, 0, SPACE_BASE, None,
@@ -6533,7 +7046,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fninit, 0xdbe3, 0, SPACE_BASE, None,
@@ -6545,7 +7059,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_finit, 0xdbe3, 0, SPACE_BASE, None,
@@ -6557,7 +7072,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fldcw, 0xd9, 1, SPACE_BASE, 5,
@@ -6569,7 +7085,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnstcw, 0xd9, 1, SPACE_BASE, 7,
@@ -6581,7 +7098,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstcw, 0xd9, 1, SPACE_BASE, 7,
@@ -6593,7 +7111,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnstsw, 0xdfe0, 1, SPACE_BASE, None,
@@ -6605,7 +7124,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnstsw, 0xdd, 1, SPACE_BASE, 7,
@@ -6617,7 +7137,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnstsw, 0xdfe0, 0, SPACE_BASE, None,
@@ -6629,7 +7150,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstsw, 0xdfe0, 1, SPACE_BASE, None,
@@ -6641,7 +7163,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fstsw, 0xdd, 1, SPACE_BASE, 7,
@@ -6653,7 +7176,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstsw, 0xdfe0, 0, SPACE_BASE, None,
@@ -6665,7 +7189,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnclex, 0xdbe2, 0, SPACE_BASE, None,
@@ -6677,7 +7202,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fclex, 0xdbe2, 0, SPACE_BASE, None,
@@ -6689,7 +7215,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnstenv, 0xd9, 1, SPACE_BASE, 6,
@@ -6701,7 +7228,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fstenv, 0xd9, 1, SPACE_BASE, 6,
@@ -6713,7 +7241,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fldenv, 0xd9, 1, SPACE_BASE, 4,
@@ -6725,7 +7254,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fnsave, 0xdd, 1, SPACE_BASE, 6,
@@ -6737,7 +7267,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fsave, 0xdd, 1, SPACE_BASE, 6,
@@ -6749,7 +7280,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_frstor, 0xdd, 1, SPACE_BASE, 4,
@@ -6761,7 +7293,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fneni, 0xdbe0, 0, SPACE_BASE, None,
@@ -6773,7 +7306,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_feni, 0xdbe0, 0, SPACE_BASE, None,
@@ -6785,7 +7319,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fndisi, 0xdbe1, 0, SPACE_BASE, None,
@@ -6797,7 +7332,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fdisi, 0xdbe1, 0, SPACE_BASE, None,
@@ -6809,7 +7345,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnsetpm, 0xdbe4, 0, SPACE_BASE, None,
@@ -6821,7 +7358,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fsetpm, 0xdbe4, 0, SPACE_BASE, None,
@@ -6833,7 +7371,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_frstpm, 0xdbe5, 0, SPACE_BASE, None,
@@ -6845,7 +7384,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ffree, 0xdd, 1, SPACE_BASE, 0,
@@ -6857,7 +7397,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ffreep, 0xdf, 1, SPACE_BASE, 0,
@@ -6869,7 +7410,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fnop, 0xd9d0, 0, SPACE_BASE, None,
@@ -6881,7 +7423,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fwait, 0x9b, 0, SPACE_BASE, None,
@@ -6893,7 +7436,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_addr16, 0x67, 0, SPACE_BASE, None,
@@ -6905,7 +7449,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_addr32, 0x67, 0, SPACE_BASE, None,
@@ -6917,7 +7462,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aword, 0x67, 0, SPACE_BASE, None,
@@ -6929,7 +7475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_adword, 0x67, 0, SPACE_BASE, None,
@@ -6941,7 +7488,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_data16, 0x66, 0, SPACE_BASE, None,
@@ -6953,7 +7501,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_data32, 0x66, 0, SPACE_BASE, None,
@@ -6965,7 +7514,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_word, 0x66, 0, SPACE_BASE, None,
@@ -6977,7 +7527,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_dword, 0x66, 0, SPACE_BASE, None,
@@ -6989,7 +7540,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lock, 0xf0, 0, SPACE_BASE, None,
@@ -7001,7 +7553,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wait, 0x9b, 0, SPACE_BASE, None,
@@ -7013,7 +7566,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cs, 0x2e, 0, SPACE_BASE, None,
@@ -7025,7 +7579,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ds, 0x3e, 0, SPACE_BASE, None,
@@ -7037,7 +7592,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_es, 0x26, 0, SPACE_BASE, None,
@@ -7049,7 +7605,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fs, 0x64, 0, SPACE_BASE, None,
@@ -7061,7 +7618,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_gs, 0x65, 0, SPACE_BASE, None,
@@ -7073,7 +7631,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ss, 0x36, 0, SPACE_BASE, None,
@@ -7085,7 +7644,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rep, 0xf3, 0, SPACE_BASE, None,
@@ -7097,7 +7657,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repe, 0xf3, 0, SPACE_BASE, None,
@@ -7109,7 +7670,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repz, 0xf3, 0, SPACE_BASE, None,
@@ -7121,7 +7683,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repne, 0xf2, 0, SPACE_BASE, None,
@@ -7133,7 +7696,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_repnz, 0xf2, 0, SPACE_BASE, None,
@@ -7145,7 +7709,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ht, 0x3e, 0, SPACE_BASE, None,
@@ -7157,7 +7722,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_hnt, 0x2e, 0, SPACE_BASE, None,
@@ -7169,7 +7735,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex, 0x40, 0, SPACE_BASE, None,
@@ -7181,7 +7748,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexz, 0x41, 0, SPACE_BASE, None,
@@ -7193,7 +7761,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexy, 0x42, 0, SPACE_BASE, None,
@@ -7205,7 +7774,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexyz, 0x43, 0, SPACE_BASE, None,
@@ -7217,7 +7787,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexx, 0x44, 0, SPACE_BASE, None,
@@ -7229,7 +7800,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexxz, 0x45, 0, SPACE_BASE, None,
@@ -7241,7 +7813,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexxy, 0x46, 0, SPACE_BASE, None,
@@ -7253,7 +7826,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rexxyz, 0x47, 0, SPACE_BASE, None,
@@ -7265,7 +7839,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64, 0x48, 0, SPACE_BASE, None,
@@ -7277,7 +7852,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64z, 0x49, 0, SPACE_BASE, None,
@@ -7289,7 +7865,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64y, 0x4a, 0, SPACE_BASE, None,
@@ -7301,7 +7878,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64yz, 0x4b, 0, SPACE_BASE, None,
@@ -7313,7 +7891,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64x, 0x4c, 0, SPACE_BASE, None,
@@ -7325,7 +7904,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64xz, 0x4d, 0, SPACE_BASE, None,
@@ -7337,7 +7917,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64xy, 0x4e, 0, SPACE_BASE, None,
@@ -7349,7 +7930,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex64xyz, 0x4f, 0, SPACE_BASE, None,
@@ -7361,7 +7943,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_b, 0x41, 0, SPACE_BASE, None,
@@ -7373,7 +7956,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_x, 0x42, 0, SPACE_BASE, None,
@@ -7385,7 +7969,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_xb, 0x43, 0, SPACE_BASE, None,
@@ -7397,7 +7982,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_r, 0x44, 0, SPACE_BASE, None,
@@ -7409,7 +7995,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_rb, 0x45, 0, SPACE_BASE, None,
@@ -7421,7 +8008,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_rx, 0x46, 0, SPACE_BASE, None,
@@ -7433,7 +8021,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_rxb, 0x47, 0, SPACE_BASE, None,
@@ -7445,7 +8034,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_w, 0x48, 0, SPACE_BASE, None,
@@ -7457,7 +8047,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wb, 0x49, 0, SPACE_BASE, None,
@@ -7469,7 +8060,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wx, 0x4a, 0, SPACE_BASE, None,
@@ -7481,7 +8073,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wxb, 0x4b, 0, SPACE_BASE, None,
@@ -7493,7 +8086,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wr, 0x4c, 0, SPACE_BASE, None,
@@ -7505,7 +8099,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wrb, 0x4d, 0, SPACE_BASE, None,
@@ -7517,7 +8112,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wrx, 0x4e, 0, SPACE_BASE, None,
@@ -7529,7 +8125,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rex_wrxb, 0x4f, 0, SPACE_BASE, None,
@@ -7541,7 +8138,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__disp8_, 0x00, 0, SPACE_BASE, Prefix_Disp8,
@@ -7553,7 +8151,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__disp16_, 0x00, 0, SPACE_BASE, Prefix_Disp16,
@@ -7565,7 +8164,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__disp32_, 0x00, 0, SPACE_BASE, Prefix_Disp32,
@@ -7577,7 +8177,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__load_, 0x00, 0, SPACE_BASE, Prefix_Load,
@@ -7589,7 +8190,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__store_, 0x00, 0, SPACE_BASE, Prefix_Store,
@@ -7601,7 +8203,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__vex_, 0x00, 0, SPACE_BASE, Prefix_VEX,
@@ -7613,7 +8216,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__vex2_, 0x00, 0, SPACE_BASE, Prefix_VEX,
@@ -7625,7 +8229,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__vex3_, 0x00, 0, SPACE_BASE, Prefix_VEX3,
@@ -7637,7 +8242,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__evex_, 0x00, 0, SPACE_BASE, Prefix_EVEX,
@@ -7649,7 +8255,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__rex_, 0x00, 0, SPACE_BASE, Prefix_REX,
@@ -7661,7 +8268,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN__nooptimize_, 0x00, 0, SPACE_BASE, Prefix_NoOptimize,
@@ -7673,7 +8281,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bswap, 0xc8, 1, SPACE_0F, None,
@@ -7685,7 +8294,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xadd, 0xc0, 2, SPACE_0F, None,
@@ -7697,7 +8307,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -7711,7 +8322,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
@@ -7725,7 +8337,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wbinvd, 0x09, 0, SPACE_0F, None,
@@ -7737,7 +8350,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpg, 0x01, 1, SPACE_0F, 7,
@@ -7749,7 +8363,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cpuid, 0xa2, 0, SPACE_0F, None,
@@ -7761,7 +8376,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrmsr, 0x30, 0, SPACE_0F, None,
@@ -7773,7 +8389,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdtsc, 0x31, 0, SPACE_0F, None,
@@ -7785,7 +8402,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdmsr, 0x32, 0, SPACE_0F, None,
@@ -7797,7 +8415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmpxchg8b, 0xc7, 1, SPACE_0F, 1,
@@ -7809,7 +8428,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sysenter, 0x34, 0, SPACE_0F, None,
@@ -7821,7 +8441,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysenter, 0x34, 0, SPACE_0F, None,
@@ -7833,7 +8454,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysexit, 0x35, 0, SPACE_0F, None,
@@ -7845,7 +8467,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysexit, 0x35, 0, SPACE_0F, None,
@@ -7857,7 +8480,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fxsave, 0xae, 1, SPACE_0F, 0,
@@ -7869,7 +8493,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxsave64, 0xae, 1, SPACE_0F, 0,
@@ -7881,7 +8506,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxrstor, 0xae, 1, SPACE_0F, 1,
@@ -7893,7 +8519,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fxrstor64, 0xae, 1, SPACE_0F, 1,
@@ -7905,7 +8532,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_rdpmc, 0x33, 0, SPACE_0F, None,
@@ -7917,7 +8545,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ud2, 0x0b, 0, SPACE_0F, None,
@@ -7929,7 +8558,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ud2a, 0x0b, 0, SPACE_0F, None,
@@ -7941,7 +8571,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ud1, 0xb9, 2, SPACE_0F, None,
@@ -7953,7 +8584,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -7967,7 +8599,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -7981,7 +8614,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -7995,7 +8629,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8009,7 +8644,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8023,7 +8659,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8037,7 +8674,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8051,7 +8689,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8065,7 +8704,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8079,7 +8719,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8093,7 +8734,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8107,7 +8749,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8121,7 +8764,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8135,7 +8779,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8149,7 +8794,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8163,7 +8809,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8177,7 +8824,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8191,7 +8839,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8205,7 +8854,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8219,7 +8869,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8233,7 +8884,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8247,7 +8899,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8261,7 +8914,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8275,7 +8929,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8289,7 +8944,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8303,7 +8959,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8317,7 +8974,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8331,7 +8989,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8345,7 +9004,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8359,7 +9019,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8373,7 +9034,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8387,7 +9049,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8401,7 +9064,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -8415,7 +9079,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8429,7 +9094,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8443,7 +9109,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8457,7 +9124,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8471,7 +9139,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8485,7 +9154,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8499,7 +9169,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8513,7 +9184,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8527,7 +9199,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8541,7 +9214,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8555,7 +9229,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8569,7 +9244,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8583,7 +9259,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8597,7 +9274,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomi, 0xdb, 1, SPACE_BASE, 6,
@@ -8609,7 +9287,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomi, 0xdb, 2, SPACE_BASE, 5,
@@ -8621,7 +9300,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8635,7 +9315,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomi, 0xdb, 1, SPACE_BASE, 5,
@@ -8647,7 +9328,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomip, 0xdf, 2, SPACE_BASE, 6,
@@ -8659,7 +9341,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8673,7 +9356,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcomip, 0xdf, 1, SPACE_BASE, 6,
@@ -8685,7 +9369,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcompi, 0xdf, 2, SPACE_BASE, 6,
@@ -8697,7 +9382,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8711,7 +9397,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fcompi, 0xdf, 1, SPACE_BASE, 6,
@@ -8723,7 +9410,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomip, 0xdf, 2, SPACE_BASE, 5,
@@ -8735,7 +9423,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8749,7 +9438,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucomip, 0xdf, 1, SPACE_BASE, 5,
@@ -8761,7 +9451,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucompi, 0xdf, 2, SPACE_BASE, 5,
@@ -8773,7 +9464,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -8787,7 +9479,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_fucompi, 0xdf, 1, SPACE_BASE, 5,
@@ -8799,7 +9492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movnti, 0xc3, 2, SPACE_0F, None,
@@ -8811,7 +9505,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -8825,7 +9520,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lfence, 0xaee8, 0, SPACE_0F, None,
@@ -8837,7 +9533,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mfence, 0xaef0, 0, SPACE_0F, None,
@@ -8849,7 +9546,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pause, 0x90, 0, SPACE_BASE, None,
@@ -8861,7 +9559,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_emms, 0x77, 0, SPACE_0F, None,
@@ -8873,7 +9572,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movd, 0x6e, 2, SPACE_0F, None,
@@ -8885,7 +9585,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8899,7 +9600,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8913,7 +9615,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8927,7 +9630,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8941,7 +9645,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8955,7 +9660,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8969,7 +9675,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8983,7 +9690,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -8997,7 +9705,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9011,7 +9720,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9025,7 +9735,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -9039,7 +9750,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9053,7 +9765,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9067,7 +9780,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9081,7 +9795,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9095,7 +9810,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9109,7 +9825,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9123,7 +9840,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9137,7 +9855,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9151,7 +9870,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9165,7 +9885,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9179,7 +9900,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9193,7 +9915,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9207,7 +9930,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9221,7 +9945,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9235,7 +9960,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9249,7 +9975,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9263,7 +9990,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9277,7 +10005,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9291,7 +10020,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9305,7 +10035,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9319,7 +10050,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9333,7 +10065,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9347,7 +10080,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9361,7 +10095,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9375,7 +10110,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9389,7 +10125,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9403,7 +10140,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9417,7 +10155,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9431,7 +10170,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9445,7 +10185,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9459,7 +10200,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9473,7 +10215,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9487,7 +10230,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9501,7 +10245,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9515,7 +10260,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9529,7 +10275,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9543,7 +10290,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9557,7 +10305,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9571,7 +10320,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9585,7 +10335,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9599,7 +10350,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9613,7 +10365,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9627,7 +10380,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9641,7 +10395,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9655,7 +10410,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9669,7 +10425,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9683,7 +10440,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9697,7 +10455,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9711,7 +10470,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9725,7 +10485,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9739,133 +10500,143 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtb, 0x64 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtb, 0x64 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtb, 0x64 | 0, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtw, 0x64 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtw, 0x64 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtw, 0x64 | 1, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtd, 0x66, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtd, 0x66, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtd, 0x66, 2, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9879,7 +10650,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9893,7 +10665,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9907,7 +10680,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9921,7 +10695,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9935,7 +10710,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9949,7 +10725,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9963,7 +10740,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9977,7 +10755,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9991,7 +10770,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10005,7 +10785,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10019,7 +10800,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10033,7 +10815,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10047,7 +10830,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10061,7 +10845,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10075,7 +10860,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10089,7 +10875,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10103,7 +10890,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10117,7 +10905,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10131,7 +10920,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10145,7 +10935,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10159,7 +10950,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10173,7 +10965,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10187,7 +10980,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10201,7 +10995,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10215,7 +11010,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10229,7 +11025,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10243,7 +11040,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10257,7 +11055,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10271,7 +11070,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10285,7 +11085,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10299,7 +11100,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10313,7 +11115,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10327,7 +11130,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10341,7 +11145,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10355,7 +11160,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10369,7 +11175,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10383,7 +11190,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10397,7 +11205,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10411,7 +11220,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10425,7 +11235,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10439,7 +11250,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10453,7 +11265,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10467,7 +11280,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10481,7 +11295,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10495,7 +11310,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10509,7 +11325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10523,7 +11340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10537,7 +11355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10551,7 +11370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10565,7 +11385,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10579,7 +11400,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10593,7 +11415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10607,7 +11430,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10621,7 +11445,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10635,7 +11460,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10649,7 +11475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10663,7 +11490,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10677,7 +11505,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10691,7 +11520,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10705,7 +11535,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10719,7 +11550,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10733,7 +11565,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10747,7 +11580,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10761,7 +11595,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10775,7 +11610,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10789,7 +11625,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10803,7 +11640,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10817,7 +11655,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10831,7 +11670,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10845,7 +11685,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10859,7 +11700,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10873,7 +11715,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10887,7 +11730,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10901,7 +11745,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10915,7 +11760,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10929,7 +11775,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10943,7 +11790,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10957,7 +11805,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10971,7 +11820,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10985,7 +11835,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -10999,7 +11850,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11013,7 +11865,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11027,7 +11880,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11041,7 +11895,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11055,7 +11910,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11069,7 +11925,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11083,7 +11940,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11097,7 +11955,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11111,7 +11970,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11125,7 +11985,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11139,7 +12000,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11153,7 +12015,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11167,7 +12030,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11181,7 +12045,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11195,7 +12060,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11209,7 +12075,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11223,7 +12090,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11237,7 +12105,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11251,7 +12120,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11265,7 +12135,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11279,7 +12150,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11293,7 +12165,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11307,7 +12180,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11321,7 +12195,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11335,7 +12210,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11349,7 +12225,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11363,7 +12240,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11377,7 +12255,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11391,7 +12270,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11405,7 +12285,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11419,7 +12300,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11433,7 +12315,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11447,7 +12330,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11461,7 +12345,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11475,7 +12360,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11489,7 +12375,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11503,7 +12390,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11517,7 +12405,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11531,7 +12420,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11545,7 +12435,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11559,7 +12450,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11573,7 +12465,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11587,7 +12480,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11601,7 +12495,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11615,7 +12510,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11629,7 +12525,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11643,7 +12540,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11657,7 +12555,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11671,7 +12570,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11685,7 +12585,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11699,7 +12600,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11713,7 +12615,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11727,7 +12630,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11741,7 +12645,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11755,7 +12660,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11769,7 +12675,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11783,7 +12690,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11797,7 +12705,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11811,7 +12720,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11825,7 +12735,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11839,7 +12750,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11853,7 +12765,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11867,7 +12780,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11881,7 +12795,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11895,7 +12810,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11909,7 +12825,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11925,7 +12842,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -11941,7 +12859,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11957,7 +12876,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -11973,7 +12893,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -11987,7 +12908,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12001,7 +12923,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12015,7 +12938,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12029,7 +12953,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12043,7 +12968,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12057,7 +12983,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12071,7 +12998,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12085,7 +13013,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12099,7 +13028,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12113,7 +13043,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -12127,7 +13058,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -12141,7 +13073,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12155,7 +13088,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -12169,7 +13103,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -12183,7 +13118,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12197,7 +13133,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12211,7 +13148,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12225,7 +13163,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12239,7 +13178,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ldmxcsr, 0xae, 1, SPACE_0F, 2,
@@ -12251,7 +13191,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_maskmovq, 0xf7, 2, SPACE_0F, None,
@@ -12263,7 +13204,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12277,7 +13219,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12291,7 +13234,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12305,7 +13249,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12319,7 +13264,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12333,7 +13279,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12347,7 +13294,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12361,7 +13309,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12375,7 +13324,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12389,7 +13339,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12403,7 +13354,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12417,7 +13369,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12431,7 +13384,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12445,7 +13399,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12459,7 +13414,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -12473,7 +13429,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12487,7 +13444,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12501,7 +13459,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12515,7 +13474,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12529,7 +13489,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -12543,7 +13504,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12557,7 +13519,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -12571,7 +13534,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -12585,7 +13549,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12599,7 +13564,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12613,7 +13579,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -12627,7 +13594,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12641,7 +13609,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -12655,7 +13624,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12669,7 +13639,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12683,7 +13654,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12697,7 +13669,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12711,7 +13684,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12725,7 +13699,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12739,7 +13714,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12753,7 +13729,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12767,7 +13744,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12781,7 +13759,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12795,7 +13774,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12809,7 +13789,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12823,7 +13804,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12837,7 +13819,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12851,7 +13834,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12865,7 +13849,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12879,7 +13864,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12893,7 +13879,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12909,7 +13896,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12925,7 +13913,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12941,7 +13930,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12957,7 +13947,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12973,7 +13964,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -12989,7 +13981,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13005,7 +13998,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -13021,7 +14015,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -13037,7 +14032,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -13053,7 +14049,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -13069,7 +14066,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -13085,7 +14083,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -13101,7 +14100,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13115,7 +14115,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13129,7 +14130,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13143,7 +14145,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13157,7 +14160,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13171,7 +14175,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13185,7 +14190,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13199,7 +14205,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13213,7 +14220,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13227,7 +14235,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13241,7 +14250,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13255,7 +14265,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13269,7 +14280,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -13283,7 +14295,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -13297,7 +14310,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -13311,7 +14325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13325,7 +14340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13339,7 +14355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13353,7 +14370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetcht0, 0x18, 1, SPACE_0F, 1,
@@ -13365,7 +14383,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetcht1, 0x18, 1, SPACE_0F, 2,
@@ -13377,7 +14396,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetcht2, 0x18, 1, SPACE_0F, 3,
@@ -13389,7 +14409,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_psadbw, 0xf6, 2, SPACE_0F, None,
@@ -13401,7 +14422,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13415,7 +14437,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13429,7 +14452,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13443,7 +14467,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -13459,7 +14484,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13473,7 +14499,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13487,7 +14514,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13501,7 +14529,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13515,7 +14544,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13529,7 +14559,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13543,7 +14574,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13557,7 +14589,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13571,7 +14604,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_shufps, 0xc6, 3, SPACE_0F, None,
@@ -13583,7 +14617,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13599,7 +14634,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13615,7 +14651,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13629,7 +14666,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13643,7 +14681,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13657,7 +14696,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13671,7 +14711,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_stmxcsr, 0xae, 1, SPACE_0F, 3,
@@ -13683,7 +14724,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_subps, 0x5c, 2, SPACE_0F, None,
@@ -13695,7 +14737,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13709,7 +14752,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13723,7 +14767,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13737,7 +14782,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13751,7 +14797,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13765,7 +14812,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13779,7 +14827,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13793,7 +14842,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13807,7 +14857,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13821,7 +14872,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13835,7 +14887,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13849,7 +14902,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13863,7 +14917,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13877,7 +14932,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13891,7 +14947,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13905,7 +14962,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13919,7 +14977,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13933,7 +14992,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13947,7 +15007,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13961,7 +15022,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13975,7 +15037,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -13989,7 +15052,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14003,7 +15067,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14017,7 +15082,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14031,7 +15097,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14045,7 +15112,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14059,7 +15127,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14073,7 +15142,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14087,7 +15157,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14101,7 +15172,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14115,7 +15187,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14129,7 +15202,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14143,7 +15217,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14157,7 +15232,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14171,7 +15247,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14185,7 +15262,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14199,7 +15277,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14213,7 +15292,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14227,7 +15307,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14241,7 +15322,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14255,7 +15337,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14269,7 +15352,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14283,7 +15367,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14297,7 +15382,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14311,7 +15397,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14325,7 +15412,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14339,7 +15427,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14353,7 +15442,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14367,7 +15457,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14381,7 +15472,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14395,7 +15487,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14409,7 +15502,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14423,7 +15517,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -14439,7 +15534,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -14455,7 +15551,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -14471,7 +15568,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -14487,7 +15585,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14501,7 +15600,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14515,7 +15615,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14529,7 +15630,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14543,7 +15645,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14557,7 +15660,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14571,7 +15675,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14585,7 +15690,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14599,7 +15705,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14613,7 +15720,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14627,7 +15735,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14641,7 +15750,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14655,7 +15765,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14669,7 +15780,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14683,7 +15795,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14697,7 +15810,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14711,7 +15825,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14725,7 +15840,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14739,7 +15855,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14753,7 +15870,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14767,7 +15885,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14781,7 +15900,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14795,7 +15915,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14809,7 +15930,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14823,7 +15945,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14837,7 +15960,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14851,7 +15975,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -14865,7 +15990,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14879,7 +16005,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14893,7 +16020,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -14907,7 +16035,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14921,7 +16050,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -14935,7 +16065,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -14949,7 +16080,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -14963,7 +16095,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -14977,7 +16110,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -14991,7 +16125,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15005,7 +16140,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15019,7 +16155,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15033,7 +16170,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15047,7 +16185,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15061,7 +16200,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15075,7 +16215,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15089,7 +16230,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15103,7 +16245,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15117,7 +16260,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15131,7 +16275,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15147,7 +16292,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15163,7 +16309,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15177,7 +16324,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15191,7 +16339,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15205,7 +16354,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15219,7 +16369,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15233,7 +16384,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15247,7 +16399,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15261,7 +16414,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15275,7 +16429,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15289,7 +16444,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15303,7 +16459,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15317,7 +16474,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15331,7 +16489,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15345,7 +16504,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15359,7 +16519,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15373,7 +16534,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15387,7 +16549,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15401,7 +16564,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15415,7 +16579,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15429,7 +16594,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15443,7 +16609,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15457,7 +16624,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15471,7 +16639,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15485,7 +16654,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15499,7 +16669,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15513,7 +16684,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15527,7 +16699,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15541,7 +16714,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15555,7 +16729,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15569,7 +16744,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -15583,7 +16759,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -15597,7 +16774,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15611,7 +16789,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15625,7 +16804,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15639,7 +16819,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15653,7 +16834,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15667,7 +16849,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -15681,7 +16864,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -15695,7 +16879,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15709,7 +16894,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15723,7 +16909,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15737,7 +16924,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15751,7 +16939,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15765,7 +16954,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15779,7 +16969,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15793,7 +16984,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15807,7 +16999,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15821,7 +17014,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15835,7 +17029,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15849,7 +17044,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15863,7 +17059,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15877,7 +17074,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15891,7 +17089,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -15905,7 +17104,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15921,7 +17121,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15937,7 +17138,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15953,7 +17155,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15969,7 +17172,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15985,7 +17189,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -16001,7 +17206,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16015,7 +17221,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16029,7 +17236,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16043,7 +17251,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16057,7 +17266,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16071,7 +17281,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16085,7 +17296,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16099,7 +17311,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16113,7 +17326,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16127,7 +17341,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16141,7 +17356,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16155,7 +17371,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16169,7 +17386,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16183,7 +17401,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16197,7 +17416,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16211,7 +17431,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16225,7 +17446,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16239,7 +17461,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16253,7 +17476,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16267,7 +17491,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16281,7 +17506,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16295,7 +17521,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16309,7 +17536,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16323,7 +17551,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16337,7 +17566,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16351,7 +17581,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16365,7 +17596,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16379,7 +17611,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16393,7 +17626,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisttp, 0xdd, 1, SPACE_BASE, 1,
@@ -16405,7 +17639,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_fisttpll, 0xdd, 1, SPACE_BASE, 1,
@@ -16417,7 +17652,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_cmpxchg16b, 0xc7, 1, SPACE_0F, 1,
@@ -16429,7 +17665,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } } } },
   { MN_monitor, 0x01c8, 0, SPACE_0F, None,
@@ -16441,7 +17678,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_monitor, 0x01c8, 3, SPACE_0F, None,
@@ -16453,7 +17691,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -16469,7 +17708,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -16485,7 +17725,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mwait, 0x01c9, 2, SPACE_0F, None,
@@ -16497,7 +17738,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -16511,7 +17753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmclear, 0xc7, 1, SPACE_0F, 6,
@@ -16523,7 +17766,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmlaunch, 0x01c2, 0, SPACE_0F, None,
@@ -16535,7 +17779,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmresume, 0x01c3, 0, SPACE_0F, None,
@@ -16547,7 +17792,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmptrld, 0xc7, 1, SPACE_0F, 6,
@@ -16559,7 +17805,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmptrst, 0xc7, 1, SPACE_0F, 7,
@@ -16571,7 +17818,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmread, 0x78, 2, SPACE_0F, None,
@@ -16583,7 +17831,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -16597,7 +17846,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -16611,7 +17861,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -16625,7 +17876,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -16639,7 +17891,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmxon, 0xc7, 1, SPACE_0F, 6,
@@ -16651,7 +17904,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmfunc, 0x01d4, 0, SPACE_0F, None,
@@ -16663,7 +17917,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_getsec, 0x37, 0, SPACE_0F, None,
@@ -16675,7 +17930,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invept, 0x80, 2, SPACE_0F38, None,
@@ -16687,7 +17943,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -16701,7 +17958,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -16715,7 +17973,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -16729,7 +17988,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -16743,7 +18003,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -16757,7 +18018,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -16771,7 +18033,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16785,7 +18048,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16799,7 +18063,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16813,7 +18078,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16827,7 +18093,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16841,7 +18108,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16855,7 +18123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16869,7 +18138,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16883,7 +18153,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16897,7 +18168,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16911,7 +18183,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16925,7 +18198,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16939,7 +18213,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16953,7 +18228,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16967,7 +18243,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16981,7 +18258,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16995,7 +18273,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17009,7 +18288,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17023,7 +18303,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17037,7 +18318,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17051,7 +18333,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17065,7 +18348,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17079,7 +18363,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17093,7 +18378,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17107,7 +18393,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17121,7 +18408,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17135,7 +18423,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17149,7 +18438,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17163,7 +18453,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17177,7 +18468,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17191,7 +18483,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17205,7 +18498,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17219,7 +18513,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17233,7 +18528,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17247,7 +18543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17261,7 +18558,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17275,7 +18573,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17291,7 +18590,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17307,7 +18607,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -17323,7 +18624,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17337,7 +18639,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17351,7 +18654,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17365,7 +18669,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17379,7 +18684,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17393,7 +18699,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17407,7 +18714,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17421,7 +18729,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17435,7 +18744,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17449,7 +18759,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17465,7 +18776,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17481,7 +18793,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17497,7 +18810,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17513,7 +18827,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17529,7 +18844,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17543,7 +18859,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17559,7 +18876,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17573,7 +18891,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17589,7 +18908,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17603,7 +18923,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17619,7 +18940,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17633,7 +18955,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17649,7 +18972,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17665,7 +18989,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17681,7 +19006,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17697,7 +19023,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17713,7 +19040,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17729,7 +19057,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17745,7 +19074,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17761,7 +19091,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -17777,7 +19108,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -17793,7 +19125,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17807,7 +19140,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17821,7 +19155,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17837,7 +19172,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17853,7 +19189,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17867,7 +19204,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17881,7 +19219,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17897,7 +19236,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17911,7 +19251,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17927,7 +19268,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -17941,7 +19283,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17957,7 +19300,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -17966,28 +19310,30 @@ static const insn_template i386_optab[] =
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpeqq, 0x29, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpeqq, 0x29, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18001,7 +19347,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18017,7 +19364,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18033,7 +19381,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18049,7 +19398,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18065,7 +19415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18081,7 +19432,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18097,7 +19449,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18113,7 +19466,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18129,7 +19483,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18143,7 +19498,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18157,7 +19513,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -18173,7 +19530,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -18189,7 +19547,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -18205,7 +19564,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -18221,7 +19581,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -18237,7 +19598,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -18253,7 +19615,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18269,7 +19632,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -18285,7 +19649,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18299,7 +19664,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18313,7 +19679,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18327,7 +19694,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18341,7 +19709,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18355,7 +19724,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18369,7 +19739,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18383,7 +19754,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18397,7 +19769,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18411,7 +19784,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18425,7 +19799,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18439,7 +19814,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18453,7 +19829,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18467,7 +19844,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18481,7 +19859,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18495,7 +19874,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18509,7 +19889,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18523,7 +19904,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18537,7 +19919,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18551,7 +19934,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18565,7 +19949,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18579,7 +19964,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18593,7 +19979,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18607,7 +19994,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18621,7 +20009,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18635,7 +20024,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18649,7 +20039,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18663,7 +20054,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18677,7 +20069,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18691,7 +20084,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18705,7 +20099,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18719,7 +20114,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18733,7 +20129,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18747,7 +20144,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18761,7 +20159,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18775,7 +20174,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18789,7 +20189,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18803,7 +20204,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18817,7 +20219,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18831,7 +20234,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18845,7 +20249,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18859,7 +20264,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18873,7 +20279,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18887,7 +20294,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18901,7 +20309,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18915,7 +20324,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -18929,7 +20339,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18945,7 +20356,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18961,7 +20373,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18977,7 +20390,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -18993,7 +20407,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -19009,7 +20424,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -19025,7 +20441,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -19041,7 +20458,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -19050,28 +20468,30 @@ static const insn_template i386_optab[] =
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtq, 0x37, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_pcmpgtq, 0x37, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19085,7 +20505,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19101,7 +20522,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19117,7 +20539,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19133,7 +20556,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19149,7 +20573,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19165,7 +20590,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19181,7 +20607,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19197,7 +20624,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19213,7 +20641,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19229,7 +20658,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19245,7 +20675,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19261,7 +20692,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19277,7 +20709,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -19291,7 +20724,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -19305,7 +20739,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsave64, 0xae, 1, SPACE_0F, 4,
@@ -19317,7 +20752,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xrstor, 0xae, 1, SPACE_0F, 5,
@@ -19329,7 +20765,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xrstor64, 0xae, 1, SPACE_0F, 5,
@@ -19341,7 +20778,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xgetbv, 0x01d0, 0, SPACE_0F, None,
@@ -19353,7 +20791,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsetbv, 0x01d1, 0, SPACE_0F, None,
@@ -19365,7 +20804,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsaveopt, 0xae, 1, SPACE_0F, 6,
@@ -19377,7 +20817,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsaveopt64, 0xae, 1, SPACE_0F, 6,
@@ -19389,7 +20830,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesdec, 0xde, 2, SPACE_0F38, None,
@@ -19401,7 +20843,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19415,7 +20858,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19429,7 +20873,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19443,7 +20888,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19457,7 +20903,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19471,7 +20918,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19485,7 +20933,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19499,7 +20948,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19513,7 +20963,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19527,7 +20978,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19541,7 +20993,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19557,7 +21010,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19572,8 +21026,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19589,7 +21044,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19604,8 +21060,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19620,8 +21077,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19637,7 +21095,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19652,8 +21111,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19668,8 +21128,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19685,7 +21146,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19700,8 +21162,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19716,8 +21179,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19733,7 +21197,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19748,8 +21213,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19765,7 +21231,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19781,7 +21248,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19797,7 +21265,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19811,7 +21280,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19825,7 +21295,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19839,7 +21310,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19853,7 +21325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19867,7 +21340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19881,7 +21355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19895,7 +21370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19908,8 +21384,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19924,8 +21401,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19940,8 +21418,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19956,8 +21435,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19972,8 +21452,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19986,8 +21467,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20001,7 +21483,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20017,7 +21500,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20033,7 +21517,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20049,7 +21534,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20065,7 +21551,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20081,7 +21568,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20097,7 +21585,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20113,7 +21602,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20129,7 +21619,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20145,7 +21636,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20161,7 +21653,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20177,7 +21670,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20193,7 +21687,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20209,7 +21704,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20225,7 +21721,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20241,7 +21738,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20257,7 +21755,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20273,7 +21772,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20289,7 +21789,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20307,7 +21808,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20325,7 +21827,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20343,7 +21846,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -20361,7 +21865,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20375,7 +21880,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20389,7 +21895,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20403,7 +21910,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20417,7 +21925,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20431,7 +21940,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20445,7 +21955,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20459,7 +21970,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20475,7 +21987,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20491,7 +22004,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20507,7 +22021,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20523,7 +22038,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20539,7 +22055,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20555,7 +22072,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20571,7 +22089,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20587,7 +22106,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20603,7 +22123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20619,7 +22140,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20635,7 +22157,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20651,7 +22174,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20667,7 +22191,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20683,7 +22208,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20699,7 +22225,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20715,7 +22242,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20731,7 +22259,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20747,7 +22276,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20763,7 +22293,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20779,7 +22310,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20795,7 +22327,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20811,7 +22344,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20827,7 +22361,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20843,7 +22378,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20859,7 +22395,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20875,7 +22412,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20891,7 +22429,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20907,7 +22446,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20923,7 +22463,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20939,7 +22480,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20955,7 +22497,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20971,7 +22514,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -20987,7 +22531,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21003,7 +22548,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21019,7 +22565,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21035,7 +22582,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21051,7 +22599,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21067,7 +22616,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21083,7 +22633,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21099,7 +22650,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21115,7 +22667,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21131,7 +22684,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21147,7 +22701,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21163,7 +22718,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21179,7 +22735,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21195,7 +22752,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21211,7 +22769,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21227,7 +22786,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21243,7 +22803,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21259,7 +22820,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21275,7 +22837,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21291,7 +22854,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21307,7 +22871,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21323,7 +22888,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21339,7 +22905,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21355,7 +22922,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21371,7 +22939,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21387,7 +22956,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21403,7 +22973,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21419,7 +22990,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21435,7 +23007,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21451,7 +23024,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21467,7 +23041,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21483,7 +23058,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21499,7 +23075,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21515,7 +23092,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21531,7 +23109,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21547,7 +23126,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21563,7 +23143,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21579,7 +23160,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21595,7 +23177,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21611,7 +23194,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21627,7 +23211,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21643,7 +23228,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21659,7 +23245,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21675,7 +23262,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21691,7 +23279,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21707,7 +23296,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21723,7 +23313,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21739,7 +23330,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21755,7 +23347,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21771,7 +23364,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21787,7 +23381,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21803,7 +23398,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21819,7 +23415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21835,7 +23432,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21851,7 +23449,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21867,7 +23466,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21883,7 +23483,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21899,7 +23500,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21915,7 +23517,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21931,7 +23534,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21947,7 +23551,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21963,7 +23568,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21979,7 +23585,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -21995,7 +23602,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22011,7 +23619,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22027,7 +23636,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22043,7 +23653,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22059,7 +23670,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22075,7 +23687,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22091,7 +23704,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22107,7 +23721,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22123,7 +23738,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22139,7 +23755,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22155,7 +23772,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22171,7 +23789,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22187,7 +23806,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22203,7 +23823,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22219,7 +23840,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22235,7 +23857,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22251,7 +23874,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22267,7 +23891,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22283,7 +23908,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22299,7 +23925,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22315,7 +23942,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22331,7 +23959,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22347,7 +23976,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22363,7 +23993,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22379,7 +24010,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22395,7 +24027,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22411,7 +24044,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22427,7 +24061,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22443,7 +24078,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22459,7 +24095,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22475,7 +24112,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22491,7 +24129,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22507,7 +24146,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22523,7 +24163,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22539,7 +24180,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22555,7 +24197,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22571,7 +24214,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22587,7 +24231,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22603,7 +24248,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22619,7 +24265,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22635,7 +24282,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22651,7 +24299,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22667,7 +24316,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22683,7 +24333,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22699,7 +24350,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22715,7 +24367,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22731,7 +24384,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22747,7 +24401,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22763,7 +24418,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22779,7 +24435,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22795,7 +24452,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22811,7 +24469,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22827,7 +24486,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22843,7 +24503,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22859,7 +24520,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22875,7 +24537,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22891,7 +24554,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22907,7 +24571,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22923,7 +24588,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22939,7 +24605,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22955,7 +24622,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22971,7 +24639,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -22987,7 +24656,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23003,7 +24673,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23019,7 +24690,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23035,7 +24707,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23051,7 +24724,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23067,7 +24741,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23083,7 +24758,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23099,7 +24775,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23115,7 +24792,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23131,7 +24809,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23147,7 +24826,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23163,7 +24843,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23179,7 +24860,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23195,7 +24877,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23211,7 +24894,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23227,7 +24911,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23243,7 +24928,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23259,7 +24945,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23275,7 +24962,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23291,7 +24979,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23307,7 +24996,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23323,7 +25013,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23339,7 +25030,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23355,7 +25047,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23371,7 +25064,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23387,7 +25081,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23403,7 +25098,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23419,7 +25115,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23435,7 +25132,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23451,7 +25149,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23467,7 +25166,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23483,7 +25183,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23499,7 +25200,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23515,7 +25217,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23531,7 +25234,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23547,7 +25251,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23563,7 +25268,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23579,7 +25285,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23595,7 +25302,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23611,7 +25319,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23627,7 +25336,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23643,7 +25353,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23659,7 +25370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23675,7 +25387,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23691,7 +25404,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23707,7 +25421,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23723,7 +25438,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23739,7 +25455,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23755,7 +25472,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23771,7 +25489,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23787,7 +25506,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23803,7 +25523,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23819,7 +25540,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23835,7 +25557,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23851,7 +25574,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23867,7 +25591,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23883,7 +25608,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23899,7 +25625,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23915,7 +25642,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23931,7 +25659,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23947,7 +25676,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23963,7 +25693,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23979,7 +25710,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -23995,7 +25727,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24011,7 +25744,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24027,7 +25761,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24043,7 +25778,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24059,7 +25795,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24075,7 +25812,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24091,7 +25829,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24107,7 +25846,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24123,7 +25863,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24139,7 +25880,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24155,7 +25897,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24171,7 +25914,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24187,7 +25931,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24203,7 +25948,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24219,7 +25965,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24235,7 +25982,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24251,7 +25999,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24267,7 +26016,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24283,7 +26033,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24299,7 +26050,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24315,7 +26067,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24331,7 +26084,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24347,7 +26101,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24363,7 +26118,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24379,7 +26135,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24395,7 +26152,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24411,7 +26169,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24427,7 +26186,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24443,7 +26203,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24459,7 +26220,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24475,7 +26237,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24491,7 +26254,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24507,7 +26271,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24523,7 +26288,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24539,7 +26305,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24555,7 +26322,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24571,7 +26339,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24587,7 +26356,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24603,7 +26373,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24619,7 +26390,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24635,7 +26407,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24651,7 +26424,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24667,7 +26441,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24683,7 +26458,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24699,7 +26475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24715,7 +26492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24731,7 +26509,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24747,7 +26526,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24763,7 +26543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24779,7 +26560,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24795,7 +26577,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24811,7 +26594,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24827,7 +26611,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24843,7 +26628,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24859,7 +26645,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24875,7 +26662,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24891,7 +26679,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24907,7 +26696,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24923,7 +26713,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24939,7 +26730,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24955,7 +26747,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24971,7 +26764,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -24987,7 +26781,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25003,7 +26798,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25019,7 +26815,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25035,7 +26832,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25051,7 +26849,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25067,7 +26866,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25083,7 +26883,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25099,7 +26900,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25115,7 +26917,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25131,7 +26934,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25147,7 +26951,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25163,7 +26968,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25179,7 +26985,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25195,7 +27002,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25211,7 +27019,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25227,7 +27036,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25243,7 +27053,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25259,7 +27070,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25275,7 +27087,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25291,7 +27104,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25307,7 +27121,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25323,7 +27138,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25339,7 +27155,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25355,7 +27172,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25371,7 +27189,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25387,7 +27206,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25403,7 +27223,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25419,7 +27240,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25435,7 +27257,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25451,7 +27274,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25467,7 +27291,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25483,7 +27308,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25499,7 +27325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25515,7 +27342,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25531,7 +27359,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25547,7 +27376,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25563,7 +27393,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25579,7 +27410,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25595,7 +27427,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25611,7 +27444,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25627,7 +27461,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25643,7 +27478,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25659,7 +27495,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25675,7 +27512,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25691,7 +27529,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25707,7 +27546,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25723,7 +27563,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25739,7 +27580,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25755,7 +27597,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25771,7 +27614,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25787,7 +27631,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25803,7 +27648,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25819,7 +27665,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25835,7 +27682,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25851,7 +27699,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25867,7 +27716,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25883,7 +27733,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25899,7 +27750,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25915,7 +27767,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25931,7 +27784,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25947,7 +27801,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25963,7 +27818,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25979,7 +27835,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -25995,7 +27852,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26011,7 +27869,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26027,7 +27886,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26043,7 +27903,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26059,7 +27920,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26075,7 +27937,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26091,7 +27954,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26107,7 +27971,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26123,7 +27988,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26139,7 +28005,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26155,7 +28022,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26171,7 +28039,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26187,7 +28056,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26203,7 +28073,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26219,7 +28090,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26235,7 +28107,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26251,7 +28124,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26267,7 +28141,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26283,7 +28158,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26299,7 +28175,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26315,7 +28192,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26331,7 +28209,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26347,7 +28226,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26365,7 +28245,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -26383,7 +28264,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -26401,7 +28283,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -26419,7 +28302,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -26437,7 +28321,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -26455,7 +28340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -26473,7 +28359,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -26491,7 +28378,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26505,7 +28393,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26519,7 +28408,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26533,7 +28423,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26547,7 +28438,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26561,7 +28453,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26575,7 +28468,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26589,7 +28483,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26603,7 +28498,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26617,7 +28513,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26631,7 +28528,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26645,7 +28543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26659,7 +28558,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26673,7 +28573,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26687,7 +28588,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26701,7 +28603,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26715,7 +28618,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26729,7 +28633,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26743,7 +28648,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26757,7 +28663,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26771,7 +28678,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26785,7 +28693,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26799,7 +28708,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26813,7 +28723,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26827,7 +28738,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26841,7 +28753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26855,7 +28768,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26869,7 +28783,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26883,7 +28798,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26897,7 +28813,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26911,7 +28828,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26925,7 +28843,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26939,7 +28858,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26953,7 +28873,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26967,7 +28888,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26981,7 +28903,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26995,7 +28918,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27009,7 +28933,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27023,7 +28948,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27037,7 +28963,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27051,7 +28978,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27067,7 +28995,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27083,7 +29012,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27099,7 +29029,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27115,7 +29046,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27131,7 +29063,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27147,7 +29080,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27163,7 +29097,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27179,7 +29114,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27195,7 +29131,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27211,7 +29148,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27227,7 +29165,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27243,7 +29182,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27259,7 +29199,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27275,7 +29216,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27289,7 +29231,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27303,7 +29246,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27317,7 +29261,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27331,7 +29276,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27345,7 +29291,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27359,7 +29306,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27373,7 +29321,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27387,7 +29336,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27401,7 +29351,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27415,7 +29366,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27429,7 +29381,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27443,7 +29396,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27457,7 +29411,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27471,7 +29426,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -27485,7 +29441,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27501,7 +29458,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27517,7 +29475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27533,7 +29492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27549,7 +29509,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27565,7 +29526,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27581,7 +29543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27597,7 +29560,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27613,7 +29577,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27631,7 +29596,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27649,7 +29615,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27665,7 +29632,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27681,7 +29649,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27697,7 +29666,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27713,7 +29683,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27729,7 +29700,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27745,7 +29717,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27761,7 +29734,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27777,7 +29751,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27793,7 +29768,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27811,7 +29787,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27829,7 +29806,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -27847,7 +29825,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27861,7 +29840,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vmaskmovdqu, 0xf7, 2, SPACE_0F, None,
@@ -27873,7 +29853,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27887,7 +29868,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27903,7 +29885,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27919,7 +29902,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27935,7 +29919,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27951,7 +29936,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27967,7 +29953,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27983,7 +29970,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -27999,7 +29987,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28015,7 +30004,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28031,7 +30021,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28047,7 +30038,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28063,7 +30055,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28079,7 +30072,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28095,7 +30089,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28111,7 +30106,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28127,7 +30123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28143,7 +30140,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28159,7 +30157,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28175,7 +30174,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28191,7 +30191,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28207,7 +30208,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28221,7 +30223,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28235,7 +30238,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28249,7 +30253,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28263,7 +30268,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28277,7 +30283,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -28291,7 +30298,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28305,7 +30313,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28319,7 +30328,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28333,7 +30343,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28347,7 +30358,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28361,7 +30373,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28375,7 +30388,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28389,7 +30403,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28405,7 +30420,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28421,7 +30437,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28437,7 +30454,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28451,7 +30469,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28467,7 +30486,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28481,7 +30501,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28497,7 +30518,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28511,7 +30533,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28527,7 +30550,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28541,7 +30565,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28557,7 +30582,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28573,7 +30599,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28589,7 +30616,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28603,7 +30631,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28619,7 +30648,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28633,7 +30663,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28649,7 +30680,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28663,7 +30695,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28679,7 +30712,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28693,7 +30727,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28707,7 +30742,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -28721,7 +30757,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28735,7 +30772,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28749,7 +30787,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28763,7 +30802,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28777,7 +30817,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28791,7 +30832,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28805,7 +30847,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28819,7 +30862,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28833,7 +30877,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28847,7 +30892,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28861,7 +30907,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28875,7 +30922,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28889,7 +30937,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28903,7 +30952,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -28917,7 +30967,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28931,7 +30982,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28947,7 +30999,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28961,7 +31014,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28977,7 +31031,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -28991,7 +31046,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29007,7 +31063,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29021,7 +31078,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29037,7 +31095,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29051,7 +31110,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29065,7 +31125,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29079,7 +31140,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29093,7 +31155,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29107,7 +31170,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29121,7 +31185,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29135,7 +31200,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29149,7 +31215,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29167,7 +31234,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29183,7 +31251,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29199,7 +31268,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29215,7 +31285,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29231,7 +31302,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29247,7 +31319,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29263,7 +31336,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29279,7 +31353,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29295,7 +31370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29311,7 +31387,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29327,7 +31404,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29343,7 +31421,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29359,7 +31438,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29373,7 +31453,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29387,7 +31468,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29401,7 +31483,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29415,7 +31498,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29429,7 +31513,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29443,7 +31528,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29459,7 +31545,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29475,7 +31562,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29491,7 +31579,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29507,7 +31596,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29523,7 +31613,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29539,7 +31630,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29555,7 +31647,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29571,7 +31664,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29587,7 +31681,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29603,7 +31698,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29619,7 +31715,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29635,7 +31732,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29651,7 +31749,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29667,7 +31766,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29683,7 +31783,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29699,7 +31800,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29715,7 +31817,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29731,7 +31834,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29747,7 +31851,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29763,7 +31868,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29779,7 +31885,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29795,7 +31902,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29811,7 +31919,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29827,7 +31936,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29845,7 +31955,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29863,7 +31974,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29879,7 +31991,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29895,7 +32008,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29911,7 +32025,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29927,7 +32042,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29943,7 +32059,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -29959,7 +32076,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29977,7 +32095,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -29995,7 +32114,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30011,7 +32131,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30027,7 +32148,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30043,7 +32165,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30059,7 +32182,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30075,7 +32199,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30091,7 +32216,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30107,7 +32233,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30123,7 +32250,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30132,14 +32260,15 @@ static const insn_template i386_optab[] =
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vpcmpeqq, 0x29, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30155,7 +32284,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30171,7 +32301,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30187,7 +32318,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30203,7 +32335,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30219,7 +32352,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30235,7 +32369,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30244,14 +32379,15 @@ static const insn_template i386_optab[] =
 	  1, 0, 0, 0, 0, 0 } } } },
   { MN_vpcmpgtb, 0x64 | 0, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30267,7 +32403,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30276,14 +32413,15 @@ static const insn_template i386_optab[] =
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vpcmpgtw, 0x64 | 1, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30299,7 +32437,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30308,14 +32447,15 @@ static const insn_template i386_optab[] =
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vpcmpgtd, 0x66, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30331,7 +32471,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30340,14 +32481,15 @@ static const insn_template i386_optab[] =
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vpcmpgtq, 0x37, 3, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30363,7 +32505,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30379,7 +32522,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30395,7 +32539,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30411,7 +32556,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30429,7 +32575,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30445,7 +32592,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30461,7 +32609,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -30477,7 +32626,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30493,7 +32643,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30509,7 +32660,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -30525,7 +32677,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -30541,7 +32694,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30557,7 +32711,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30573,7 +32728,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30589,7 +32745,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30605,7 +32762,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30621,7 +32779,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30637,7 +32796,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30653,7 +32813,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30669,7 +32830,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30685,7 +32847,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30701,7 +32864,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30717,7 +32881,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30733,7 +32898,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30749,7 +32915,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30765,7 +32932,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30781,7 +32949,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30797,7 +32966,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30813,7 +32983,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30829,7 +33000,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30843,7 +33015,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30859,7 +33032,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30875,7 +33049,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30891,7 +33066,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -30909,7 +33085,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -30927,7 +33104,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -30945,7 +33123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -30963,7 +33142,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -30981,7 +33161,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -30999,7 +33180,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31017,7 +33199,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -31035,7 +33218,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -31053,7 +33237,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -31071,7 +33256,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -31089,7 +33275,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -31107,7 +33294,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31123,7 +33311,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31139,7 +33328,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31155,7 +33345,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31171,7 +33362,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31187,7 +33379,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31203,7 +33396,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31219,7 +33413,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31235,7 +33430,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31251,7 +33447,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31267,7 +33464,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31283,7 +33481,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31299,7 +33498,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31315,7 +33515,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31331,7 +33532,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31347,7 +33549,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31363,7 +33566,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31379,7 +33583,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31395,7 +33600,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31411,7 +33617,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31427,7 +33634,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31443,7 +33651,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31459,7 +33668,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31475,7 +33685,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31491,7 +33702,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31507,7 +33719,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31523,7 +33736,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31539,7 +33753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31555,7 +33770,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -31569,7 +33785,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31583,7 +33800,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31597,7 +33815,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31611,7 +33830,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31625,7 +33845,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31639,7 +33860,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31653,7 +33875,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31667,7 +33890,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31681,7 +33905,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31695,7 +33920,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31709,7 +33935,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31723,7 +33950,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31737,7 +33965,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31751,7 +33980,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31765,7 +33995,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31779,7 +34010,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31793,7 +34025,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31807,7 +34040,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31821,7 +34055,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31835,7 +34070,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31849,7 +34085,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31863,7 +34100,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31877,7 +34115,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31891,7 +34130,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31905,7 +34145,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31919,7 +34160,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31933,7 +34175,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31947,7 +34190,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31961,7 +34205,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31975,7 +34220,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31989,7 +34235,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32003,7 +34250,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32017,7 +34265,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32031,7 +34280,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32045,7 +34295,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32059,7 +34310,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32073,7 +34325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32087,7 +34340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32101,7 +34355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32115,7 +34370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32129,7 +34385,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32143,7 +34400,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32157,7 +34415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32171,7 +34430,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32185,7 +34445,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32199,7 +34460,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32213,7 +34475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32227,7 +34490,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32241,7 +34505,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32255,7 +34520,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32269,7 +34535,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32283,7 +34550,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32297,7 +34565,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32311,7 +34580,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32325,7 +34595,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32339,7 +34610,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32353,7 +34625,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32367,7 +34640,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32381,7 +34655,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32395,7 +34670,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32409,7 +34685,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32425,7 +34702,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32441,7 +34719,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32457,7 +34736,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32473,7 +34753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32489,7 +34770,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32505,7 +34787,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32521,7 +34804,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32537,7 +34821,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32553,7 +34838,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32569,7 +34855,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32585,7 +34872,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32601,7 +34889,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32617,7 +34906,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32633,7 +34923,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32649,7 +34940,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32665,7 +34957,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32681,7 +34974,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32697,7 +34991,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32713,7 +35008,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32729,7 +35025,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -32745,7 +35042,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32761,7 +35059,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32777,7 +35076,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32793,7 +35093,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -32809,7 +35110,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32825,7 +35127,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32841,7 +35144,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32857,7 +35161,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32873,7 +35178,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32889,7 +35195,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32905,7 +35212,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -32921,7 +35229,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32937,7 +35246,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32953,7 +35263,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -32969,7 +35280,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -32985,7 +35297,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33001,7 +35314,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -33017,7 +35331,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33033,7 +35348,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33049,7 +35365,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -33065,7 +35382,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33081,7 +35399,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33097,7 +35416,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33113,7 +35433,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33129,7 +35450,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -33145,7 +35467,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33161,7 +35484,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33177,7 +35501,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -33193,7 +35518,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33209,7 +35535,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33225,7 +35552,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33241,7 +35569,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33257,7 +35586,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -33273,7 +35603,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33289,7 +35620,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33305,7 +35637,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33321,7 +35654,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -33337,7 +35671,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33353,7 +35688,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -33369,7 +35705,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33385,7 +35722,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33401,7 +35739,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -33417,7 +35756,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33433,7 +35773,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33449,7 +35790,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33465,7 +35807,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33481,7 +35824,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33497,7 +35841,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33513,7 +35858,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33529,7 +35875,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33545,7 +35892,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33561,7 +35909,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33577,7 +35926,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33593,7 +35943,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33609,7 +35960,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33625,7 +35977,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33641,7 +35994,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33657,7 +36011,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33673,7 +36028,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33689,7 +36045,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33703,7 +36060,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33719,7 +36077,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33735,7 +36094,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33751,7 +36111,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33767,7 +36128,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33783,7 +36145,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33799,7 +36162,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33815,7 +36179,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33831,7 +36196,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33847,7 +36213,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33863,7 +36230,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33879,7 +36247,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33895,7 +36264,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33911,7 +36281,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33927,7 +36298,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33943,7 +36315,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33959,7 +36332,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33975,7 +36349,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -33989,7 +36364,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34005,7 +36381,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -34021,7 +36398,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -34037,7 +36415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -34055,7 +36434,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -34073,7 +36453,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34087,7 +36468,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34103,7 +36485,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -34121,7 +36504,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -34139,7 +36523,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -34157,7 +36542,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -34175,7 +36561,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34189,7 +36576,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34203,7 +36591,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34217,7 +36606,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34231,7 +36621,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34247,7 +36638,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34263,7 +36655,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34279,7 +36672,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34295,7 +36689,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vsubps, 0x5c, 3, SPACE_0F, None,
@@ -34307,7 +36702,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34323,7 +36719,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34339,7 +36736,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34355,7 +36753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34371,7 +36770,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34387,7 +36787,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34403,7 +36804,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34419,7 +36821,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34435,7 +36838,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34449,7 +36853,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34463,7 +36868,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34477,7 +36883,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34491,7 +36898,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34505,7 +36913,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34519,7 +36928,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34535,7 +36945,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34551,7 +36962,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34567,7 +36979,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34583,7 +36996,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34599,7 +37013,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34615,7 +37030,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34631,7 +37047,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34647,7 +37064,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34663,7 +37081,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34679,7 +37098,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34695,7 +37115,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34711,7 +37132,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vzeroupper, 0x77, 0, SPACE_0F, None,
@@ -34723,7 +37145,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vbroadcasti128, 0x5a, 2, SPACE_0F38, None,
@@ -34735,7 +37158,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34749,7 +37173,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -34767,7 +37192,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34781,7 +37207,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34795,7 +37222,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34809,7 +37237,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34823,7 +37252,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34837,21 +37267,23 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } } } },
   { MN_vpbroadcastd, 0x58 | 0, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34865,7 +37297,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34879,21 +37312,23 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } } } },
   { MN_vpbroadcastq, 0x58 | 1, 2, SPACE_0F38, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
-      0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+      0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 },
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34907,7 +37342,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34921,7 +37357,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34935,7 +37372,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -34953,7 +37391,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34969,7 +37408,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -34985,7 +37425,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -35001,7 +37442,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35017,7 +37459,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35033,7 +37476,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35049,7 +37493,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35065,7 +37510,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -35081,7 +37527,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35097,7 +37544,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35113,7 +37561,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35129,7 +37578,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -35147,7 +37597,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35163,7 +37614,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35179,7 +37631,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35195,7 +37648,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35211,7 +37665,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35227,7 +37682,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35243,7 +37699,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35259,7 +37716,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35275,7 +37733,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35291,7 +37750,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35307,7 +37767,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35323,7 +37784,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35339,7 +37801,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35355,7 +37818,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35371,7 +37835,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35387,7 +37852,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35401,7 +37867,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35415,7 +37882,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35431,7 +37899,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35447,7 +37916,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35461,7 +37931,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35475,7 +37946,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35489,7 +37961,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35505,7 +37978,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35521,7 +37995,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35535,7 +38010,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35549,7 +38025,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35563,7 +38040,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35579,7 +38057,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35595,7 +38074,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35609,7 +38089,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35623,7 +38104,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35637,7 +38119,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35653,7 +38136,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35669,7 +38153,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35683,7 +38168,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35697,7 +38183,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35711,7 +38198,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35727,7 +38215,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35741,7 +38230,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35755,7 +38245,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35771,7 +38262,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -35787,7 +38279,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35801,7 +38294,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35815,7 +38309,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35829,7 +38324,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35845,7 +38341,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -35861,7 +38358,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35875,7 +38373,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35889,7 +38388,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35903,7 +38403,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -35917,7 +38418,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -35933,7 +38435,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -35950,8 +38453,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -35968,8 +38472,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -35987,7 +38492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36002,8 +38508,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36018,8 +38525,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36035,7 +38543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36050,8 +38559,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36066,8 +38576,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36083,7 +38594,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36098,8 +38610,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36114,8 +38627,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36131,7 +38645,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36146,8 +38661,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36162,8 +38678,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36178,8 +38695,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -36196,8 +38714,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -36214,8 +38733,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -36232,8 +38752,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -36250,8 +38771,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36266,8 +38788,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36283,7 +38806,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdgsbase, 0xae, 1, SPACE_0F, 1,
@@ -36295,7 +38819,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdrand, 0xc7, 1, SPACE_0F, 6,
@@ -36307,7 +38832,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrfsbase, 0xae, 1, SPACE_0F, 2,
@@ -36319,7 +38845,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrgsbase, 0xae, 1, SPACE_0F, 3,
@@ -36331,7 +38858,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
@@ -36343,7 +38871,8 @@ static const insn_template i386_optab[] =
         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36357,7 +38886,8 @@ static const insn_template i386_optab[] =
         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36371,7 +38901,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36385,7 +38916,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36399,7 +38931,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36413,7 +38946,8 @@ static const insn_template i386_optab[] =
         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36429,7 +38963,8 @@ static const insn_template i386_optab[] =
         1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36445,7 +38980,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36461,7 +38997,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36477,7 +39014,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36493,7 +39031,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36509,7 +39048,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36525,7 +39065,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36541,7 +39082,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36557,7 +39099,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36573,7 +39116,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36589,7 +39133,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36605,7 +39150,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36621,7 +39167,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36637,7 +39184,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36653,7 +39201,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36669,7 +39218,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36685,7 +39235,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36701,7 +39252,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36717,7 +39269,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36733,7 +39286,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36749,7 +39303,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36765,7 +39320,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36781,7 +39337,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36797,7 +39354,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36813,7 +39371,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36829,7 +39388,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36845,7 +39405,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36861,7 +39422,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36877,7 +39439,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36893,7 +39456,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36909,7 +39473,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36925,7 +39490,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36941,7 +39507,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36957,7 +39524,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36973,7 +39541,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -36989,7 +39558,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37005,7 +39575,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37021,7 +39592,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37037,7 +39609,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37053,7 +39626,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37069,7 +39643,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37085,7 +39660,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37101,7 +39677,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37117,7 +39694,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37133,7 +39711,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37149,7 +39728,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37165,7 +39745,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37181,7 +39762,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37197,7 +39779,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37213,7 +39796,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37229,7 +39813,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37245,7 +39830,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37261,7 +39847,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37277,7 +39864,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37293,7 +39881,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37309,7 +39898,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37325,7 +39915,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37341,7 +39932,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37357,7 +39949,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37373,7 +39966,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37389,7 +39983,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37405,7 +40000,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37421,7 +40017,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37437,7 +40034,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37453,7 +40051,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37469,7 +40068,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37485,7 +40085,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37501,7 +40102,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37517,7 +40119,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37533,7 +40136,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37549,7 +40153,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37565,7 +40170,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37581,7 +40187,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37597,7 +40204,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37613,7 +40221,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37629,7 +40238,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37645,7 +40255,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37661,7 +40272,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37677,7 +40289,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37693,7 +40306,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37709,7 +40323,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37725,7 +40340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37741,7 +40357,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37757,7 +40374,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37773,7 +40391,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37789,7 +40408,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37805,7 +40425,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37821,7 +40442,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37837,7 +40459,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37853,7 +40476,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37869,7 +40493,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37885,7 +40510,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37901,7 +40527,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37917,7 +40544,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37933,7 +40561,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37949,7 +40578,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37965,7 +40595,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37981,7 +40612,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -37997,7 +40629,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38013,7 +40646,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38029,7 +40663,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38045,7 +40680,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38061,7 +40697,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38077,7 +40714,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38093,7 +40731,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38109,7 +40748,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38125,7 +40765,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38141,7 +40782,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38157,7 +40799,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38173,7 +40816,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38189,7 +40833,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38205,7 +40850,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38221,7 +40867,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38237,7 +40884,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38253,7 +40901,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38269,7 +40918,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38285,7 +40935,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38301,7 +40952,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38317,7 +40969,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38333,7 +40986,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38349,7 +41003,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38365,7 +41020,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38381,7 +41037,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38397,7 +41054,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38413,7 +41071,8 @@ static const insn_template i386_optab[] =
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xrelease, 0xf3, 0, SPACE_BASE, None,
@@ -38425,7 +41084,8 @@ static const insn_template i386_optab[] =
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xabort, 0xc6f8, 1, SPACE_BASE, None,
@@ -38437,7 +41097,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xbegin, 0xc7f8, 1, SPACE_BASE, None,
@@ -38449,7 +41110,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xend, 0x01d5, 0, SPACE_0F, None,
@@ -38461,7 +41123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xtest, 0x01d6, 0, SPACE_0F, None,
@@ -38473,7 +41136,8 @@ static const insn_template i386_optab[] =
         0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bzhi, 0xf5, 3, SPACE_0F38, None,
@@ -38485,7 +41149,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -38501,7 +41166,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -38517,7 +41183,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -38533,7 +41200,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -38549,7 +41217,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -38565,7 +41234,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -38581,7 +41251,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -38597,7 +41268,8 @@ static const insn_template i386_optab[] =
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -38613,7 +41285,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38631,7 +41304,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38649,7 +41323,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38667,7 +41342,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38685,7 +41361,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38703,7 +41380,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38721,7 +41399,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38739,7 +41418,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38757,7 +41437,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38775,7 +41456,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38793,7 +41475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38811,7 +41494,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38829,7 +41513,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38847,7 +41532,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38865,7 +41551,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38883,7 +41570,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38901,7 +41589,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38919,7 +41608,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38937,7 +41627,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38955,7 +41646,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38973,7 +41665,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -38987,7 +41680,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39001,7 +41695,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39015,7 +41710,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39029,7 +41725,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39047,7 +41744,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39065,7 +41763,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39083,7 +41782,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39101,7 +41801,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39119,7 +41820,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39137,7 +41839,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39155,7 +41858,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39173,7 +41877,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -39191,7 +41896,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39207,7 +41913,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39223,7 +41930,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39239,7 +41947,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39255,7 +41964,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39271,7 +41981,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39287,7 +41998,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39303,7 +42015,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39319,7 +42032,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39335,7 +42049,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39351,7 +42066,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39367,7 +42083,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39383,7 +42100,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39399,7 +42117,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39415,7 +42134,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39431,7 +42151,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39447,7 +42168,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39463,7 +42185,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39479,7 +42202,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39495,7 +42219,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39511,7 +42236,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39527,7 +42253,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39543,7 +42270,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39559,7 +42287,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39575,7 +42304,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39591,7 +42321,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39607,7 +42338,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39623,7 +42355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39639,7 +42372,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39655,7 +42389,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39671,7 +42406,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39687,7 +42423,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39703,7 +42440,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39719,7 +42457,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39735,7 +42474,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39751,7 +42491,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39767,7 +42508,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39783,7 +42525,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39799,7 +42542,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39815,7 +42559,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39831,7 +42576,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39847,7 +42593,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39863,7 +42610,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39879,7 +42627,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39895,7 +42644,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39911,7 +42661,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39927,7 +42678,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39943,7 +42695,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39959,7 +42712,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39975,7 +42729,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -39991,7 +42746,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40007,7 +42763,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40023,7 +42780,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40039,7 +42797,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40055,7 +42814,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40071,7 +42831,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40087,7 +42848,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40103,7 +42865,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40119,7 +42882,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40135,7 +42899,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40151,7 +42916,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40167,7 +42933,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40183,7 +42950,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40199,7 +42967,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40215,7 +42984,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40235,7 +43005,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40255,7 +43026,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40275,7 +43047,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40295,7 +43068,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40309,7 +43083,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40323,7 +43098,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40337,7 +43113,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40351,7 +43128,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40365,7 +43143,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40379,7 +43158,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40393,7 +43173,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40407,7 +43188,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40421,7 +43203,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40435,7 +43218,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40449,7 +43233,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40463,7 +43248,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40477,7 +43263,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40491,7 +43278,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -40505,7 +43293,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40523,7 +43312,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40541,7 +43331,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40559,7 +43350,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40577,7 +43369,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40595,7 +43388,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40613,7 +43407,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40631,7 +43426,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40649,7 +43445,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40667,7 +43464,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40685,7 +43483,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40703,7 +43502,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40721,7 +43521,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40739,7 +43540,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40755,7 +43557,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40771,7 +43574,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40787,7 +43591,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40803,7 +43608,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40819,7 +43625,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40835,7 +43642,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40851,7 +43659,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40867,7 +43676,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40883,7 +43693,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40899,7 +43710,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40915,7 +43727,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40931,7 +43744,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40947,7 +43761,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40963,7 +43778,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40979,7 +43795,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -40995,7 +43812,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_slwpcb, 0x12, 1, SPACE_XOP09, 1,
@@ -41007,7 +43825,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lwpval, 0x12, 3, SPACE_XOP0A, 1,
@@ -41019,7 +43838,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -41035,7 +43855,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -41051,7 +43872,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41067,7 +43889,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -41083,7 +43906,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -41099,7 +43923,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41113,7 +43938,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41127,7 +43953,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41141,7 +43968,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -41155,7 +43983,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41169,7 +43998,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41183,7 +44013,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41197,7 +44028,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41211,7 +44043,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41225,7 +44058,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41239,7 +44073,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41253,7 +44088,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41267,7 +44103,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -41281,7 +44118,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetchw, 0x0d, 1, SPACE_0F, 1,
@@ -41293,7 +44131,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_femms, 0x0e, 0, SPACE_0F, None,
@@ -41305,7 +44144,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pavgusb, 0x0f, 2, SPACE_0F, 0xbf,
@@ -41317,7 +44157,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41331,7 +44172,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41345,7 +44187,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41359,7 +44202,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41373,7 +44217,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41387,7 +44232,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41401,7 +44247,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41415,7 +44262,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41429,7 +44277,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41443,7 +44292,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41457,7 +44307,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41471,7 +44322,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41485,7 +44337,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41499,7 +44352,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41513,7 +44367,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41527,7 +44382,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41541,7 +44397,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41555,7 +44412,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41569,7 +44427,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41583,7 +44442,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41597,7 +44457,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41611,7 +44472,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41625,7 +44487,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41639,7 +44502,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41653,7 +44517,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_sysret, 0x07, 0, SPACE_0F, None,
@@ -41665,7 +44530,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_swapgs, 0x01f8, 0, SPACE_0F, None,
@@ -41677,7 +44543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdtscp, 0x01f9, 0, SPACE_0F, None,
@@ -41689,7 +44556,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clgi, 0x01dd, 0, SPACE_0F, None,
@@ -41701,7 +44569,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpga, 0x01df, 0, SPACE_0F, None,
@@ -41713,7 +44582,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpga, 0x01df, 2, SPACE_0F, None,
@@ -41725,7 +44595,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -41739,7 +44610,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_skinit, 0x01de, 1, SPACE_0F, None,
@@ -41751,7 +44623,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stgi, 0x01dc, 0, SPACE_0F, None,
@@ -41763,7 +44636,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmgexit, 0x01d9, 0, SPACE_0F, None,
@@ -41775,7 +44649,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmload, 0x01da, 0, SPACE_0F, None,
@@ -41787,7 +44662,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmload, 0x01da, 1, SPACE_0F, None,
@@ -41799,7 +44675,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmmcall, 0x01d9, 0, SPACE_0F, None,
@@ -41811,7 +44688,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmrun, 0x01d8, 0, SPACE_0F, None,
@@ -41823,7 +44701,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmrun, 0x01d8, 1, SPACE_0F, None,
@@ -41835,7 +44714,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmsave, 0x01db, 0, SPACE_0F, None,
@@ -41847,7 +44727,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vmsave, 0x01db, 1, SPACE_0F, None,
@@ -41859,7 +44740,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movntsd, 0x2b, 2, SPACE_0F, None,
@@ -41871,7 +44753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -41885,7 +44768,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -41899,7 +44783,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41915,7 +44800,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41929,7 +44815,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41943,7 +44830,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41961,7 +44849,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -41975,7 +44864,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -41989,7 +44879,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_ecb, 0xa7c8, 0, SPACE_0F, None,
@@ -42001,7 +44892,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_cbc, 0xa7d0, 0, SPACE_0F, None,
@@ -42013,7 +44905,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_ctr, 0xa7d8, 0, SPACE_0F, None,
@@ -42025,7 +44918,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_cfb, 0xa7e0, 0, SPACE_0F, None,
@@ -42037,7 +44931,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcrypt_ofb, 0xa7e8, 0, SPACE_0F, None,
@@ -42049,7 +44944,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_montmul, 0xa6c0, 0, SPACE_0F, None,
@@ -42061,7 +44957,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsha1, 0xa6c8, 0, SPACE_0F, None,
@@ -42073,7 +44970,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsha256, 0xa6d0, 0, SPACE_0F, None,
@@ -42085,7 +44983,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xstorerng, 0xa7c0, 0, SPACE_0F, None,
@@ -42097,7 +44996,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptecb, 0xa7c8, 0, SPACE_0F, None,
@@ -42109,7 +45009,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptcbc, 0xa7d0, 0, SPACE_0F, None,
@@ -42121,7 +45022,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptctr, 0xa7d8, 0, SPACE_0F, None,
@@ -42133,7 +45035,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptcfb, 0xa7e0, 0, SPACE_0F, None,
@@ -42145,7 +45048,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xcryptofb, 0xa7e8, 0, SPACE_0F, None,
@@ -42157,7 +45061,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xstore, 0xa7c0, 0, SPACE_0F, None,
@@ -42169,7 +45074,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_adcx, 0xf6, 2, SPACE_0F38, None,
@@ -42181,7 +45087,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -42195,7 +45102,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -42209,7 +45117,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clac, 0x01ca, 0, SPACE_0F, None,
@@ -42221,7 +45130,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stac, 0x01cb, 0, SPACE_0F, None,
@@ -42233,7 +45143,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bnd, 0xf2, 0, SPACE_BASE, None,
@@ -42245,7 +45156,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_bndmk, 0x1b, 2, SPACE_0F, None,
@@ -42257,7 +45169,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42271,7 +45184,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42285,7 +45199,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42299,7 +45214,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42313,7 +45229,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42327,7 +45244,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42341,7 +45259,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42355,7 +45274,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42369,7 +45289,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -42383,7 +45304,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42397,7 +45319,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -42413,7 +45336,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42427,7 +45351,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42441,7 +45366,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42455,7 +45381,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -42471,7 +45398,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42485,7 +45413,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42499,11 +45428,146 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_vsha512rnds2, 0xcb, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 2, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0 } } } },
+  { MN_vsha512msg1, 0xcc, 2, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 2, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0 } } } },
+  { MN_vsha512msg2, 0xcd, 2, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 2, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0 } } } },
+  { MN_vsm3rnds2, 0xde, 4, SPACE_0F3A, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_vsm3msg1, 0xda, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_vsm3msg2, 0xda, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 0, 0, 0, 0, 0 } } } },
+  { MN_vsm4key4, 0xda, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
+  { MN_vsm4rnds4, 0xda, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
   { MN_kandb, 0x41, 3, SPACE_0F, None,
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -42513,7 +45577,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42529,7 +45594,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42545,7 +45611,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42561,7 +45628,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42577,7 +45645,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42593,7 +45662,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42609,7 +45679,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42625,7 +45696,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42641,7 +45713,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42657,7 +45730,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42673,7 +45747,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42687,7 +45762,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -42701,7 +45777,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42715,7 +45792,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42729,7 +45807,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -42743,7 +45822,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42757,7 +45837,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42771,7 +45852,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42785,7 +45867,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42799,7 +45882,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42813,7 +45897,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42829,7 +45914,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42845,7 +45931,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42861,7 +45948,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42877,7 +45965,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42891,9 +45980,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42907,9 +45997,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42923,9 +46014,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42939,9 +46031,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42953,9 +46046,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42969,9 +46063,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -42985,9 +46080,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43001,9 +46097,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43017,9 +46114,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43033,9 +46131,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43051,7 +46150,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43069,7 +46169,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43087,7 +46188,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43103,7 +46205,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43119,7 +46222,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43135,7 +46239,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43151,7 +46256,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43167,7 +46273,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43183,7 +46290,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43199,7 +46307,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43215,7 +46324,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43231,7 +46341,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43247,7 +46358,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43263,7 +46375,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43279,7 +46392,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43295,7 +46409,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43311,7 +46426,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43327,7 +46443,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43343,7 +46460,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43359,7 +46477,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43375,7 +46494,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43391,7 +46511,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43407,7 +46528,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43423,7 +46545,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43441,7 +46564,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43459,7 +46583,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43473,7 +46598,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43487,7 +46613,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43501,7 +46628,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43513,9 +46641,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43527,9 +46656,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43543,7 +46673,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -43557,7 +46688,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -43571,7 +46703,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -43585,7 +46718,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -43599,7 +46733,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43613,7 +46748,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43627,7 +46763,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43641,7 +46778,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43655,7 +46793,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43669,7 +46808,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43683,7 +46823,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43697,7 +46838,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43711,7 +46853,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43725,7 +46868,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43739,7 +46883,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43753,7 +46898,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43767,7 +46913,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43781,7 +46928,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43795,7 +46943,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43809,7 +46958,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43823,7 +46973,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43837,7 +46988,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43851,7 +47003,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -43865,7 +47018,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43879,7 +47033,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43893,7 +47048,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -43907,7 +47063,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43921,7 +47078,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43935,7 +47093,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43949,7 +47108,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43963,7 +47123,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43977,7 +47138,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -43991,7 +47153,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44005,7 +47168,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44019,7 +47183,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44033,7 +47198,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -44047,7 +47213,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -44059,9 +47226,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -44075,7 +47243,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44091,7 +47260,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44107,7 +47277,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44123,7 +47294,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44139,7 +47311,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44155,7 +47328,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44171,7 +47345,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44185,7 +47360,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44199,7 +47375,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44213,7 +47390,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44227,7 +47405,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44241,7 +47420,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44255,7 +47435,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -44269,7 +47450,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -44281,9 +47463,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -44297,7 +47480,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44311,7 +47495,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44325,7 +47510,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44339,7 +47525,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44353,7 +47540,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44367,7 +47555,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44383,7 +47572,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44399,7 +47589,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44415,7 +47606,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44431,7 +47623,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -44449,7 +47642,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -44467,7 +47661,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -44485,7 +47680,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -44503,7 +47699,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -44519,7 +47716,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -44533,9 +47731,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -44551,7 +47750,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -44569,7 +47769,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -44585,9 +47786,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -44605,7 +47807,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -44621,7 +47824,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -44635,9 +47839,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -44653,7 +47858,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -44671,7 +47877,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -44687,9 +47894,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -44705,9 +47913,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44721,9 +47930,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44737,9 +47947,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44753,9 +47964,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44769,9 +47981,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44785,9 +47998,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44801,9 +48015,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44817,9 +48032,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44833,9 +48049,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44849,9 +48066,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44865,9 +48083,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44881,9 +48100,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44897,9 +48117,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44913,9 +48134,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44929,9 +48151,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44945,9 +48168,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44961,9 +48185,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44977,9 +48202,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -44993,9 +48219,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45009,9 +48236,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45025,9 +48253,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45041,9 +48270,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45057,9 +48287,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45073,9 +48304,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45089,9 +48321,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45105,9 +48338,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45121,9 +48355,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45137,9 +48372,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45153,9 +48389,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45169,9 +48406,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45187,7 +48425,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45203,7 +48442,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45217,9 +48457,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45235,7 +48476,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45251,7 +48493,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45265,9 +48508,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45283,7 +48527,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45297,7 +48542,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45309,9 +48555,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45325,7 +48572,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45341,7 +48589,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45355,9 +48604,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45373,7 +48623,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -45391,7 +48642,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -45409,7 +48661,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -45427,7 +48680,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -45443,9 +48697,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45459,9 +48714,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45475,9 +48731,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45491,9 +48748,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45509,7 +48767,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45523,7 +48782,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45537,7 +48797,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45551,7 +48812,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45563,9 +48825,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45577,9 +48840,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45595,7 +48859,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45609,7 +48874,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45625,7 +48891,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45641,7 +48908,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45657,7 +48925,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45673,7 +48942,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45689,7 +48959,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45705,7 +48976,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45721,7 +48993,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45737,7 +49010,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -45755,7 +49029,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -45773,7 +49048,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -45791,7 +49067,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -45809,7 +49086,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45825,7 +49103,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45841,7 +49120,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45857,7 +49137,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45873,7 +49154,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45889,7 +49171,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45905,7 +49188,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45921,7 +49205,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45937,7 +49222,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45953,7 +49239,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45969,7 +49256,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45985,7 +49273,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46001,7 +49290,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46017,7 +49307,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46033,7 +49324,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46049,7 +49341,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46065,7 +49358,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46081,7 +49375,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46097,7 +49392,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46113,7 +49409,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46129,7 +49426,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46145,7 +49443,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46161,7 +49460,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46177,7 +49477,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46193,7 +49494,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46209,7 +49511,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46225,7 +49528,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46239,7 +49543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46253,7 +49558,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46267,7 +49573,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46281,7 +49588,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46295,7 +49603,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46309,7 +49618,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46323,7 +49633,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46337,7 +49648,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46351,7 +49663,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46365,7 +49678,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46379,7 +49693,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46393,7 +49708,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46407,7 +49723,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46421,7 +49738,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46435,7 +49753,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46449,7 +49768,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46463,7 +49783,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46477,7 +49798,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46491,7 +49813,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -46505,7 +49828,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46519,7 +49843,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46533,7 +49858,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -46547,7 +49873,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46561,7 +49888,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46575,7 +49903,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -46589,7 +49918,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46603,7 +49933,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46617,7 +49948,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46631,7 +49963,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46645,7 +49978,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46659,7 +49993,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46673,7 +50008,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46687,7 +50023,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46701,7 +50038,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46715,7 +50053,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46729,7 +50068,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46743,7 +50083,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46757,7 +50098,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46771,7 +50113,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46785,7 +50128,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46799,7 +50143,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46813,7 +50158,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -46827,7 +50173,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46841,7 +50188,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46855,7 +50203,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46871,7 +50220,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46887,7 +50237,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -46903,7 +50254,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46919,7 +50271,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46935,7 +50288,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -46951,7 +50305,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46965,7 +50320,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46979,7 +50335,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -46995,7 +50352,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47011,7 +50369,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47025,7 +50384,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47039,7 +50399,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47055,7 +50416,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47071,7 +50433,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -47089,7 +50452,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -47107,7 +50471,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -47125,7 +50490,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -47143,7 +50509,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47157,7 +50524,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47171,7 +50539,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47185,7 +50554,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47199,7 +50569,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47213,7 +50584,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47227,7 +50599,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47241,7 +50614,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47255,7 +50629,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47269,7 +50644,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47283,7 +50659,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47299,7 +50676,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47315,7 +50693,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47329,7 +50708,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47343,7 +50723,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47359,7 +50740,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47375,7 +50757,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf0dps, 0xc6, 1, SPACE_0F38, 1,
@@ -47387,7 +50770,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf0qps, 0xc7, 1, SPACE_0F38, 1,
@@ -47399,7 +50783,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf0qpd, 0xc7, 1, SPACE_0F38, 1,
@@ -47411,7 +50796,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1dpd, 0xc6, 1, SPACE_0F38, 2,
@@ -47423,7 +50809,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1dps, 0xc6, 1, SPACE_0F38, 2,
@@ -47435,7 +50822,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1qps, 0xc7, 1, SPACE_0F38, 2,
@@ -47447,7 +50835,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vgatherpf1qpd, 0xc7, 1, SPACE_0F38, 2,
@@ -47459,7 +50848,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0dpd, 0xc6, 1, SPACE_0F38, 5,
@@ -47471,7 +50861,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0dps, 0xc6, 1, SPACE_0F38, 5,
@@ -47483,7 +50874,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0qps, 0xc7, 1, SPACE_0F38, 5,
@@ -47495,7 +50887,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf0qpd, 0xc7, 1, SPACE_0F38, 5,
@@ -47507,7 +50900,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1dpd, 0xc6, 1, SPACE_0F38, 6,
@@ -47519,7 +50913,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1dps, 0xc6, 1, SPACE_0F38, 6,
@@ -47531,7 +50926,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1qps, 0xc7, 1, SPACE_0F38, 6,
@@ -47543,7 +50939,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_vscatterpf1qpd, 0xc7, 1, SPACE_0F38, 6,
@@ -47555,7 +50952,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_prefetchwt1, 0x0d, 1, SPACE_0F, 2,
@@ -47564,10 +50962,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clflushopt, 0xae, 1, SPACE_0F, 7,
@@ -47576,10 +50975,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xrstors, 0xc7, 1, SPACE_0F, 3,
@@ -47588,10 +50988,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xrstors64, 0xc7, 1, SPACE_0F, 3,
@@ -47600,10 +51001,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsaves, 0xc7, 1, SPACE_0F, 5,
@@ -47612,10 +51014,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsaves64, 0xc7, 1, SPACE_0F, 5,
@@ -47624,10 +51027,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsavec, 0xc7, 1, SPACE_0F, 4,
@@ -47636,10 +51040,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_xsavec64, 0xc7, 1, SPACE_0F, 4,
@@ -47648,10 +51053,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_encls, 0x01cf, 0, SPACE_0F, None,
@@ -47660,10 +51066,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_enclu, 0x01d7, 0, SPACE_0F, None,
@@ -47672,10 +51079,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_enclv, 0x01c0, 0, SPACE_0F, None,
@@ -47684,10 +51092,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_kaddd, 0x4a, 3, SPACE_0F, None,
@@ -47699,7 +51108,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47715,7 +51125,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47731,7 +51142,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47747,7 +51159,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47763,7 +51176,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47779,7 +51193,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47795,7 +51210,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47809,7 +51225,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -47823,7 +51240,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47837,7 +51255,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47851,7 +51270,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -47865,7 +51285,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47879,7 +51300,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47893,7 +51315,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47907,7 +51330,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47923,7 +51347,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47939,7 +51364,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47953,7 +51379,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47967,7 +51394,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47981,7 +51409,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47995,7 +51424,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48011,7 +51441,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48027,7 +51458,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48043,7 +51475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48059,7 +51492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48075,7 +51509,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48091,7 +51526,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48107,7 +51543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48123,7 +51560,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48139,7 +51577,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48155,7 +51594,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48173,7 +51613,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48187,7 +51628,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48201,7 +51643,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48217,7 +51660,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48231,9 +51675,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48249,7 +51694,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48263,9 +51709,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48281,7 +51728,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48295,9 +51743,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48313,7 +51762,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48329,7 +51779,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48345,7 +51796,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48361,7 +51813,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48377,7 +51830,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48395,7 +51849,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48413,7 +51868,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48431,7 +51887,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48449,7 +51906,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48465,7 +51923,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48481,7 +51940,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48497,7 +51957,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48513,7 +51974,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48529,7 +51991,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48545,7 +52008,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48561,7 +52025,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48577,7 +52042,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48593,7 +52059,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48609,7 +52076,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48625,7 +52093,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48641,7 +52110,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48657,7 +52127,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48673,7 +52144,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48689,7 +52161,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48705,7 +52178,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48721,7 +52195,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48737,7 +52212,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48753,7 +52229,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48769,7 +52246,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48785,7 +52263,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48801,7 +52280,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48815,7 +52295,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48829,7 +52310,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48843,7 +52325,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48857,7 +52340,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48871,7 +52355,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -48885,7 +52370,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48899,7 +52385,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48913,7 +52400,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -48927,7 +52415,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48941,7 +52430,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48955,7 +52445,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -48969,7 +52460,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -48983,7 +52475,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -48999,7 +52492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49015,7 +52509,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49031,7 +52526,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49047,7 +52543,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49063,7 +52560,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49079,7 +52577,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49093,7 +52592,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49107,7 +52607,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49121,7 +52622,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49135,7 +52637,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49149,7 +52652,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49163,7 +52667,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49177,7 +52682,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49191,7 +52697,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49205,7 +52712,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49219,7 +52727,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49233,7 +52742,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49247,7 +52757,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49261,7 +52772,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49275,7 +52787,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49289,7 +52802,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49303,7 +52817,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49317,7 +52832,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49331,7 +52847,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49345,7 +52862,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49359,7 +52877,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49373,7 +52892,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49387,7 +52907,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49401,7 +52922,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49415,7 +52937,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49429,7 +52952,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49443,7 +52967,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49457,7 +52982,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49471,7 +52997,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49485,7 +53012,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49499,7 +53027,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49513,7 +53042,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49527,7 +53057,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49541,7 +53072,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49555,7 +53087,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49569,7 +53102,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49583,7 +53117,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49599,7 +53134,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49615,7 +53151,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -49633,7 +53170,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -49651,7 +53189,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49667,7 +53206,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49683,7 +53223,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -49701,7 +53242,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -49719,7 +53261,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -49735,7 +53278,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -49751,7 +53295,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -49767,7 +53312,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -49783,7 +53329,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -49799,7 +53346,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -49815,7 +53363,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -49831,7 +53380,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -49847,7 +53397,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -49863,7 +53414,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -49879,7 +53431,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -49895,7 +53448,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -49909,9 +53463,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -49927,7 +53482,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49941,7 +53497,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49955,7 +53512,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49969,7 +53527,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49983,7 +53542,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -49999,7 +53559,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -50017,7 +53578,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -50035,7 +53597,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -50053,7 +53616,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -50071,7 +53635,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -50087,7 +53652,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -50101,9 +53667,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -50119,7 +53686,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -50137,7 +53705,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -50153,9 +53722,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -50170,10 +53740,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vpmadd52huq, 0xb5, 3, SPACE_0F38, None,
@@ -50182,10 +53753,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50199,9 +53771,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50214,10 +53787,11 @@ static const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50231,9 +53805,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50247,9 +53822,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50263,9 +53839,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50279,9 +53856,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50295,9 +53873,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50311,9 +53890,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50327,9 +53907,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50343,9 +53924,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50359,9 +53941,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50373,9 +53956,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50387,9 +53971,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -50401,9 +53986,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -50415,9 +54001,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50429,9 +54016,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50443,9 +54031,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50459,9 +54048,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50475,9 +54065,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50491,9 +54082,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50507,9 +54099,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50523,9 +54116,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50539,9 +54133,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -50557,9 +54152,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -50575,9 +54171,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -50593,9 +54190,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -50611,9 +54209,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -50629,9 +54228,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -50647,9 +54247,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50663,9 +54264,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50679,9 +54281,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50695,9 +54298,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50711,9 +54315,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50727,9 +54332,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50743,9 +54349,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50759,9 +54366,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50775,9 +54383,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50791,9 +54400,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50807,9 +54417,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50823,9 +54434,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50839,9 +54451,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50855,9 +54468,112 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
+  { MN_vpdpwuud, 0xd2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
+  { MN_vpdpwuuds, 0xd3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
+  { MN_vpdpwusd, 0xd2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
+  { MN_vpdpwusds, 0xd3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
+  { MN_vpdpwsud, 0xd2, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 1, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } },
+      { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  1, 1, 0, 0, 0, 0 } } } },
+  { MN_vpdpwsuds, 0xd3, 3, SPACE_0F38, None,
+    { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50871,9 +54587,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50885,9 +54602,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50899,9 +54617,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -50917,7 +54636,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_invlpgb, 0x01fe, 3, SPACE_0F, None,
@@ -50929,7 +54649,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -50945,7 +54666,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clzero, 0x01fc, 0, SPACE_0F, None,
@@ -50956,8 +54678,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clzero, 0x01fc, 1, SPACE_0F, None,
@@ -50968,8 +54691,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_monitorx, 0x01fa, 0, SPACE_0F, None,
@@ -50980,8 +54704,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_monitorx, 0x01fa, 3, SPACE_0F, None,
@@ -50992,8 +54717,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -51008,8 +54734,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -51024,8 +54751,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_mwaitx, 0x01fb, 3, SPACE_0F, None,
@@ -51036,8 +54764,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -51052,8 +54781,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrpkru, 0x01ef, 0, SPACE_0F, None,
@@ -51064,8 +54794,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdpid, 0xc7, 1, SPACE_0F, 7,
@@ -51076,8 +54807,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdpid, 0xc7, 1, SPACE_0F, 7,
@@ -51088,8 +54820,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ptwrite, 0xae, 1, SPACE_0F, 4,
@@ -51100,8 +54833,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_ptwrite, 0xae, 1, SPACE_0F, 4,
@@ -51112,8 +54846,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_incsspd, 0xae, 1, SPACE_0F, 5,
@@ -51124,8 +54859,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_incsspq, 0xae, 1, SPACE_0F, 5,
@@ -51136,8 +54872,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdsspd, 0x1e, 1, SPACE_0F, 1,
@@ -51148,8 +54885,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdsspq, 0x1e, 1, SPACE_0F, 1,
@@ -51160,8 +54898,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_saveprevssp, 0x01ea, 0, SPACE_0F, None,
@@ -51172,8 +54911,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rstorssp, 0x01, 1, SPACE_0F, 5,
@@ -51184,8 +54924,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_wrssd, 0xf6, 2, SPACE_0F38, None,
@@ -51196,8 +54937,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -51210,8 +54952,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -51224,8 +54967,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
@@ -51238,8 +54982,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
@@ -51252,8 +54997,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clrssbsy, 0xae, 1, SPACE_0F, 6,
@@ -51264,8 +55010,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_endbr64, 0x1efa, 0, SPACE_0F, None,
@@ -51276,8 +55023,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_endbr32, 0x1efb, 0, SPACE_0F, None,
@@ -51288,8 +55036,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_notrack, 0x3e, 0, SPACE_BASE, None,
@@ -51300,8 +55049,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wbnoinvd, 0x09, 0, SPACE_0F, None,
@@ -51312,8 +55062,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pconfig, 0x01c5, 0, SPACE_0F, None,
@@ -51324,8 +55075,22 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0 } } } },
+  { MN_pbndkb, 0x01c7, 0, SPACE_0F, None,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_umonitor, 0xae, 1, SPACE_0F, 6,
@@ -51336,8 +55101,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_tpause, 0xae, 1, SPACE_0F, 6,
@@ -51348,8 +55114,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_tpause, 0xae, 3, SPACE_0F, 6,
@@ -51360,8 +55127,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -51376,8 +55144,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_umwait, 0xae, 3, SPACE_0F, 6,
@@ -51388,8 +55157,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -51405,7 +55175,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_movdiri, 0xf9, 2, SPACE_0F38, None,
@@ -51417,7 +55188,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -51431,7 +55203,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -51443,9 +55216,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51459,9 +55233,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51473,9 +55248,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51487,9 +55263,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51501,9 +55278,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51515,9 +55293,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51529,9 +55308,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51543,9 +55323,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51557,9 +55338,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51571,9 +55353,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51585,9 +55368,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51601,9 +55385,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51615,9 +55400,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51629,9 +55415,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51643,9 +55430,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51657,9 +55445,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51671,9 +55460,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51687,7 +55477,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -51701,7 +55492,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
@@ -51713,9 +55505,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51729,9 +55522,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -51747,7 +55541,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_psmash, 0x01ff, 0, SPACE_0F, None,
@@ -51759,7 +55554,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_psmash, 0x01ff, 1, SPACE_0F, None,
@@ -51771,7 +55567,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pvalidate, 0x01ff, 0, SPACE_0F, None,
@@ -51783,7 +55580,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_pvalidate, 0x01ff, 3, SPACE_0F, None,
@@ -51795,7 +55593,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -51811,7 +55610,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpupdate, 0x01fe, 0, SPACE_0F, None,
@@ -51823,7 +55623,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpupdate, 0x01fe, 2, SPACE_0F, None,
@@ -51835,7 +55636,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -51849,7 +55651,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpadjust, 0x01fe, 0, SPACE_0F, None,
@@ -51861,7 +55664,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpadjust, 0x01fe, 3, SPACE_0F, None,
@@ -51873,7 +55677,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -51889,7 +55694,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpquery, 0x01fd, 0, SPACE_0F, None,
@@ -51901,7 +55707,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rmpquery, 0x01fd, 3, SPACE_0F, None,
@@ -51913,7 +55720,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 1, 0, 0 } },
     { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -51929,7 +55737,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_serialize, 0x01e8, 0, SPACE_0F, None,
@@ -51941,7 +55750,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xsusldtrk, 0x01e8, 0, SPACE_0F, None,
@@ -51953,7 +55763,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_xresldtrk, 0x01e9, 0, SPACE_0F, None,
@@ -51965,7 +55776,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_ldtilecfg, 0x49, 1, SPACE_0F38, 0,
@@ -51976,8 +55788,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_sttilecfg, 0x49, 1, SPACE_0F38, 0,
@@ -51988,8 +55801,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_tcmmimfp16ps, 0x6c, 3, SPACE_0F38, None,
@@ -52000,8 +55814,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52016,8 +55831,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52032,8 +55848,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52048,8 +55865,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52064,8 +55882,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52080,8 +55899,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52096,8 +55916,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52112,8 +55933,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52128,8 +55950,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52142,8 +55965,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52156,8 +55980,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -52170,8 +55995,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_tilezero, 0x49, 1, SPACE_0F38, None,
@@ -52182,8 +56008,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 1, 0, 0 } } } },
   { MN_loadiwkey, 0xdc, 2, SPACE_0F38, None,
@@ -52195,7 +56022,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52209,7 +56037,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -52223,7 +56052,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -52237,7 +56067,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52251,7 +56082,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52265,7 +56097,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52279,7 +56112,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52293,7 +56127,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesdecwide128kl, 0xd8, 1, SPACE_0F38, 1,
@@ -52305,7 +56140,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesencwide256kl, 0xd8, 1, SPACE_0F38, 2,
@@ -52317,7 +56153,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_aesdecwide256kl, 0xd8, 1, SPACE_0F38, 3,
@@ -52329,7 +56166,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_tdcall, 0x01cc, 0, SPACE_0F, None,
@@ -52339,9 +56177,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seamret, 0x01cd, 0, SPACE_0F, None,
@@ -52351,9 +56190,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seamops, 0x01ce, 0, SPACE_0F, None,
@@ -52363,9 +56203,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_seamcall, 0x01cf, 0, SPACE_0F, None,
@@ -52375,9 +56216,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_uiret, 0x01ec, 0, SPACE_0F, None,
@@ -52389,7 +56231,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_clui, 0x01ee, 0, SPACE_0F, None,
@@ -52401,7 +56244,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_stui, 0x01ef, 0, SPACE_0F, None,
@@ -52413,7 +56257,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_testui, 0x01ed, 0, SPACE_0F, None,
@@ -52425,7 +56270,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_senduipi, 0xc7, 1, SPACE_0F, 6,
@@ -52437,7 +56283,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_hreset, 0xf0c0, 1, SPACE_0F3A, None,
@@ -52449,7 +56296,8 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_vfcmaddcph, 0x56, 3, SPACE_EVEXMAP6, None,
@@ -52459,9 +56307,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52475,9 +56324,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52491,9 +56341,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52507,9 +56358,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52523,9 +56375,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52539,9 +56392,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52555,9 +56409,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52571,9 +56426,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52587,9 +56443,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52603,9 +56460,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52619,9 +56477,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52635,9 +56494,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52651,9 +56511,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52667,9 +56528,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52683,9 +56545,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52699,9 +56562,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52715,9 +56579,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52731,9 +56596,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52747,9 +56613,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52763,9 +56630,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52779,9 +56647,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52795,9 +56664,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52811,9 +56681,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52827,9 +56698,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52843,9 +56715,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52859,9 +56732,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52875,9 +56749,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52891,9 +56766,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52907,9 +56783,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52923,9 +56800,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52939,9 +56817,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52955,9 +56834,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52971,9 +56851,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -52987,9 +56868,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53003,9 +56885,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53019,9 +56902,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53035,9 +56919,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53051,9 +56936,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53067,9 +56953,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53083,9 +56970,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53099,9 +56987,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53115,9 +57004,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53131,9 +57021,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53147,9 +57038,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53163,9 +57055,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53179,9 +57072,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53195,9 +57089,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53211,9 +57106,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53227,9 +57123,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53243,9 +57140,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53259,9 +57157,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53275,9 +57174,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53291,9 +57191,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53307,9 +57208,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53323,9 +57225,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -53341,9 +57244,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53357,9 +57261,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53373,9 +57278,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53389,9 +57295,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53405,9 +57312,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53421,9 +57329,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53437,9 +57346,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53453,9 +57363,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53469,9 +57380,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53485,9 +57397,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53501,9 +57414,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53517,9 +57431,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53533,9 +57448,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53549,9 +57465,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53565,9 +57482,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53581,9 +57499,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53597,9 +57516,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53613,9 +57533,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53629,9 +57550,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53645,9 +57567,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53661,9 +57584,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53677,9 +57601,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53693,9 +57618,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53709,9 +57635,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53725,9 +57652,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53741,9 +57669,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53757,9 +57686,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53773,9 +57703,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53789,9 +57720,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53805,9 +57737,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53821,9 +57754,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53837,9 +57771,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53853,9 +57788,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53869,9 +57805,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53885,9 +57822,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53901,9 +57839,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53917,9 +57856,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53933,9 +57873,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53949,9 +57890,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53965,9 +57907,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53981,9 +57924,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -53997,9 +57941,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54013,9 +57958,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54029,9 +57975,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54045,9 +57992,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54061,9 +58009,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54077,9 +58026,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -54095,9 +58045,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54109,9 +58060,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54123,9 +58075,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54137,9 +58090,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54151,9 +58105,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54165,9 +58120,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54179,9 +58135,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54193,9 +58150,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54207,9 +58165,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54221,9 +58180,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54235,9 +58195,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54249,9 +58210,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54263,9 +58225,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54277,9 +58240,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54291,9 +58255,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54305,9 +58270,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54319,9 +58285,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54333,9 +58300,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54347,9 +58315,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54361,9 +58330,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54375,9 +58345,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54389,9 +58360,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 1, 1, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54403,9 +58375,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54417,9 +58390,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54431,9 +58405,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54445,9 +58420,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 0, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54459,9 +58435,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54473,9 +58450,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 1, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54487,9 +58465,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54501,9 +58480,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54515,9 +58495,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54529,9 +58510,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54543,9 +58525,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54557,9 +58540,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54571,9 +58555,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54585,9 +58570,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54599,9 +58585,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54613,9 +58600,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54627,9 +58615,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54641,9 +58630,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54655,9 +58645,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54669,9 +58660,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54683,9 +58675,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54697,9 +58690,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54711,9 +58705,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54725,9 +58720,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54739,9 +58735,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54753,9 +58750,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54767,9 +58765,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54781,9 +58780,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54797,9 +58797,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54813,9 +58814,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54829,9 +58831,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54845,9 +58848,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54861,9 +58865,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54877,9 +58882,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54893,9 +58899,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54909,9 +58916,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -54923,9 +58931,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54937,9 +58946,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54951,9 +58961,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54965,9 +58976,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54979,9 +58991,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -54993,9 +59006,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55007,9 +59021,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55021,9 +59036,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55035,9 +59051,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55049,9 +59066,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55063,9 +59081,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55077,9 +59096,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55091,9 +59111,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55105,9 +59126,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55119,9 +59141,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 1, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55133,9 +59156,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55147,9 +59171,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55161,9 +59186,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55175,9 +59201,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -55191,9 +59218,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -55207,9 +59235,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -55223,9 +59252,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -55239,9 +59269,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
@@ -55255,9 +59286,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55269,9 +59301,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  1, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -55283,9 +59316,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55297,9 +59331,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55313,9 +59348,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 1, 1, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55327,9 +59363,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  1, 0, 0, 0, 1, 0 } },
       { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -55343,9 +59380,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_prefetchit1, 0x18, 1, SPACE_0F, 6,
@@ -55355,9 +59393,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_cmpoxadd, 0xe0, 3, SPACE_0F38, None,
@@ -55367,9 +59406,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55383,9 +59423,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55399,9 +59440,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55415,9 +59457,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55431,9 +59474,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55447,9 +59491,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55463,9 +59508,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55479,9 +59525,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55495,9 +59542,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55511,9 +59559,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55527,9 +59576,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55543,9 +59593,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55559,9 +59610,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55575,9 +59627,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55591,9 +59644,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55607,9 +59661,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55623,9 +59678,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55639,9 +59695,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55655,9 +59712,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55671,9 +59729,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55687,9 +59746,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55703,9 +59763,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55719,9 +59780,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55735,9 +59797,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55751,9 +59814,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55767,9 +59831,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55783,9 +59848,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55799,9 +59865,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55815,9 +59882,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55831,9 +59899,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
@@ -55847,9 +59916,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_rdmsrlist, 0x01c6, 0, SPACE_0F, None,
@@ -55859,9 +59929,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_wrmsrlist, 0x01c6, 0, SPACE_0F, None,
@@ -55871,9 +59942,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_aadd, 0xfc, 2, SPACE_0F38, None,
@@ -55883,9 +59955,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -55897,9 +59970,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -55911,9 +59985,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -55925,9 +60000,10 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
@@ -55940,8 +60016,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_lkgs, 0x00, 1, SPACE_0F, 6,
@@ -55952,8 +60029,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 1, 0 } } } },
   { MN_erets, 0x01ca, 0, SPACE_0F, None,
@@ -55964,8 +60042,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
   { MN_eretu, 0x01ca, 0, SPACE_0F, None,
@@ -55976,8 +60055,9 @@ static const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 0, 0 } },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0 } } } },
 };
@@ -57567,15 +61647,15 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2938,
   i386_optab + 2939,
   i386_optab + 2940,
+  i386_optab + 2941,
+  i386_optab + 2942,
   i386_optab + 2943,
+  i386_optab + 2944,
+  i386_optab + 2945,
   i386_optab + 2946,
   i386_optab + 2947,
   i386_optab + 2948,
-  i386_optab + 2949,
-  i386_optab + 2950,
   i386_optab + 2951,
-  i386_optab + 2952,
-  i386_optab + 2953,
   i386_optab + 2954,
   i386_optab + 2955,
   i386_optab + 2956,
@@ -57623,32 +61703,32 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 2998,
   i386_optab + 2999,
   i386_optab + 3000,
+  i386_optab + 3001,
+  i386_optab + 3002,
   i386_optab + 3003,
+  i386_optab + 3004,
   i386_optab + 3005,
+  i386_optab + 3006,
+  i386_optab + 3007,
   i386_optab + 3008,
   i386_optab + 3011,
   i386_optab + 3013,
   i386_optab + 3016,
   i386_optab + 3019,
-  i386_optab + 3022,
-  i386_optab + 3025,
-  i386_optab + 3026,
-  i386_optab + 3029,
+  i386_optab + 3021,
+  i386_optab + 3024,
+  i386_optab + 3027,
   i386_optab + 3030,
-  i386_optab + 3031,
-  i386_optab + 3032,
   i386_optab + 3033,
   i386_optab + 3034,
+  i386_optab + 3037,
   i386_optab + 3038,
+  i386_optab + 3039,
   i386_optab + 3040,
-  i386_optab + 3043,
-  i386_optab + 3044,
-  i386_optab + 3045,
+  i386_optab + 3041,
+  i386_optab + 3042,
   i386_optab + 3046,
-  i386_optab + 3047,
   i386_optab + 3048,
-  i386_optab + 3049,
-  i386_optab + 3050,
   i386_optab + 3051,
   i386_optab + 3052,
   i386_optab + 3053,
@@ -57727,6 +61807,7 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3126,
   i386_optab + 3127,
   i386_optab + 3128,
+  i386_optab + 3129,
   i386_optab + 3130,
   i386_optab + 3131,
   i386_optab + 3132,
@@ -57734,7 +61815,6 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3134,
   i386_optab + 3135,
   i386_optab + 3136,
-  i386_optab + 3137,
   i386_optab + 3138,
   i386_optab + 3139,
   i386_optab + 3140,
@@ -57767,33 +61847,33 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3167,
   i386_optab + 3168,
   i386_optab + 3169,
+  i386_optab + 3170,
+  i386_optab + 3171,
   i386_optab + 3172,
+  i386_optab + 3173,
+  i386_optab + 3174,
   i386_optab + 3175,
-  i386_optab + 3178,
-  i386_optab + 3181,
-  i386_optab + 3184,
-  i386_optab + 3187,
-  i386_optab + 3190,
-  i386_optab + 3193,
-  i386_optab + 3196,
-  i386_optab + 3199,
-  i386_optab + 3202,
-  i386_optab + 3205,
-  i386_optab + 3208,
-  i386_optab + 3211,
-  i386_optab + 3214,
-  i386_optab + 3215,
+  i386_optab + 3176,
+  i386_optab + 3177,
+  i386_optab + 3180,
+  i386_optab + 3183,
+  i386_optab + 3186,
+  i386_optab + 3189,
+  i386_optab + 3192,
+  i386_optab + 3195,
+  i386_optab + 3198,
+  i386_optab + 3201,
+  i386_optab + 3204,
+  i386_optab + 3207,
+  i386_optab + 3210,
+  i386_optab + 3213,
   i386_optab + 3216,
-  i386_optab + 3217,
-  i386_optab + 3218,
-  i386_optab + 3220,
-  i386_optab + 3221,
+  i386_optab + 3219,
   i386_optab + 3222,
   i386_optab + 3223,
   i386_optab + 3224,
   i386_optab + 3225,
   i386_optab + 3226,
-  i386_optab + 3227,
   i386_optab + 3228,
   i386_optab + 3229,
   i386_optab + 3230,
@@ -57848,15 +61928,15 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3279,
   i386_optab + 3280,
   i386_optab + 3281,
+  i386_optab + 3282,
+  i386_optab + 3283,
   i386_optab + 3284,
+  i386_optab + 3285,
+  i386_optab + 3286,
   i386_optab + 3287,
   i386_optab + 3288,
   i386_optab + 3289,
-  i386_optab + 3290,
-  i386_optab + 3291,
   i386_optab + 3292,
-  i386_optab + 3293,
-  i386_optab + 3294,
   i386_optab + 3295,
   i386_optab + 3296,
   i386_optab + 3297,
@@ -57912,16 +61992,16 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3347,
   i386_optab + 3348,
   i386_optab + 3349,
+  i386_optab + 3350,
+  i386_optab + 3351,
   i386_optab + 3352,
+  i386_optab + 3353,
+  i386_optab + 3354,
   i386_optab + 3355,
-  i386_optab + 3358,
-  i386_optab + 3359,
+  i386_optab + 3356,
+  i386_optab + 3357,
   i386_optab + 3360,
-  i386_optab + 3361,
-  i386_optab + 3362,
   i386_optab + 3363,
-  i386_optab + 3364,
-  i386_optab + 3365,
   i386_optab + 3366,
   i386_optab + 3367,
   i386_optab + 3368,
@@ -57931,37 +62011,37 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3372,
   i386_optab + 3373,
   i386_optab + 3374,
+  i386_optab + 3375,
+  i386_optab + 3376,
   i386_optab + 3377,
+  i386_optab + 3378,
+  i386_optab + 3379,
   i386_optab + 3380,
   i386_optab + 3381,
   i386_optab + 3382,
   i386_optab + 3385,
-  i386_optab + 3386,
-  i386_optab + 3387,
   i386_optab + 3388,
   i386_optab + 3389,
-  i386_optab + 3392,
+  i386_optab + 3390,
+  i386_optab + 3393,
+  i386_optab + 3394,
   i386_optab + 3395,
-  i386_optab + 3398,
-  i386_optab + 3399,
+  i386_optab + 3396,
+  i386_optab + 3397,
   i386_optab + 3400,
-  i386_optab + 3401,
-  i386_optab + 3402,
   i386_optab + 3403,
-  i386_optab + 3404,
-  i386_optab + 3405,
   i386_optab + 3406,
   i386_optab + 3407,
   i386_optab + 3408,
+  i386_optab + 3409,
   i386_optab + 3410,
+  i386_optab + 3411,
   i386_optab + 3412,
   i386_optab + 3413,
   i386_optab + 3414,
   i386_optab + 3415,
   i386_optab + 3416,
-  i386_optab + 3417,
   i386_optab + 3418,
-  i386_optab + 3419,
   i386_optab + 3420,
   i386_optab + 3421,
   i386_optab + 3422,
@@ -57980,15 +62060,15 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3435,
   i386_optab + 3436,
   i386_optab + 3437,
+  i386_optab + 3438,
   i386_optab + 3439,
+  i386_optab + 3440,
   i386_optab + 3441,
   i386_optab + 3442,
   i386_optab + 3443,
   i386_optab + 3444,
   i386_optab + 3445,
-  i386_optab + 3446,
   i386_optab + 3447,
-  i386_optab + 3448,
   i386_optab + 3449,
   i386_optab + 3450,
   i386_optab + 3451,
@@ -58007,86 +62087,86 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3464,
   i386_optab + 3465,
   i386_optab + 3466,
+  i386_optab + 3467,
   i386_optab + 3468,
+  i386_optab + 3469,
   i386_optab + 3470,
+  i386_optab + 3471,
   i386_optab + 3472,
+  i386_optab + 3473,
   i386_optab + 3474,
-  i386_optab + 3475,
   i386_optab + 3476,
-  i386_optab + 3477,
   i386_optab + 3478,
-  i386_optab + 3479,
   i386_optab + 3480,
-  i386_optab + 3481,
   i386_optab + 3482,
   i386_optab + 3483,
+  i386_optab + 3484,
   i386_optab + 3485,
   i386_optab + 3486,
+  i386_optab + 3487,
   i386_optab + 3488,
+  i386_optab + 3489,
+  i386_optab + 3490,
   i386_optab + 3491,
+  i386_optab + 3492,
   i386_optab + 3493,
   i386_optab + 3494,
   i386_optab + 3495,
+  i386_optab + 3496,
   i386_optab + 3497,
   i386_optab + 3499,
   i386_optab + 3500,
-  i386_optab + 3501,
   i386_optab + 3502,
-  i386_optab + 3503,
-  i386_optab + 3504,
   i386_optab + 3505,
-  i386_optab + 3506,
   i386_optab + 3507,
   i386_optab + 3508,
   i386_optab + 3509,
-  i386_optab + 3510,
   i386_optab + 3511,
-  i386_optab + 3512,
   i386_optab + 3513,
   i386_optab + 3514,
   i386_optab + 3515,
   i386_optab + 3516,
   i386_optab + 3517,
+  i386_optab + 3518,
   i386_optab + 3519,
+  i386_optab + 3520,
   i386_optab + 3521,
   i386_optab + 3522,
   i386_optab + 3523,
   i386_optab + 3524,
   i386_optab + 3525,
+  i386_optab + 3526,
+  i386_optab + 3527,
+  i386_optab + 3528,
+  i386_optab + 3529,
   i386_optab + 3530,
+  i386_optab + 3531,
   i386_optab + 3532,
   i386_optab + 3534,
-  i386_optab + 3535,
   i386_optab + 3536,
   i386_optab + 3537,
   i386_optab + 3538,
   i386_optab + 3539,
   i386_optab + 3540,
-  i386_optab + 3541,
-  i386_optab + 3542,
-  i386_optab + 3543,
-  i386_optab + 3544,
   i386_optab + 3545,
-  i386_optab + 3546,
-  i386_optab + 3548,
+  i386_optab + 3547,
+  i386_optab + 3549,
+  i386_optab + 3550,
   i386_optab + 3551,
+  i386_optab + 3552,
+  i386_optab + 3553,
   i386_optab + 3554,
+  i386_optab + 3555,
+  i386_optab + 3556,
   i386_optab + 3557,
+  i386_optab + 3558,
   i386_optab + 3559,
   i386_optab + 3560,
   i386_optab + 3561,
-  i386_optab + 3562,
   i386_optab + 3563,
-  i386_optab + 3564,
-  i386_optab + 3565,
   i386_optab + 3566,
-  i386_optab + 3567,
-  i386_optab + 3568,
   i386_optab + 3569,
-  i386_optab + 3570,
-  i386_optab + 3571,
   i386_optab + 3572,
-  i386_optab + 3573,
   i386_optab + 3574,
   i386_optab + 3575,
   i386_optab + 3576,
@@ -58215,70 +62295,70 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3699,
   i386_optab + 3700,
   i386_optab + 3701,
+  i386_optab + 3702,
+  i386_optab + 3703,
   i386_optab + 3704,
   i386_optab + 3705,
   i386_optab + 3706,
+  i386_optab + 3707,
+  i386_optab + 3708,
   i386_optab + 3709,
   i386_optab + 3710,
   i386_optab + 3711,
+  i386_optab + 3712,
   i386_optab + 3713,
   i386_optab + 3714,
   i386_optab + 3715,
   i386_optab + 3716,
-  i386_optab + 3718,
   i386_optab + 3719,
   i386_optab + 3720,
   i386_optab + 3721,
-  i386_optab + 3723,
   i386_optab + 3724,
   i386_optab + 3725,
   i386_optab + 3726,
+  i386_optab + 3728,
   i386_optab + 3729,
   i386_optab + 3730,
   i386_optab + 3731,
-  i386_optab + 3732,
   i386_optab + 3733,
+  i386_optab + 3734,
+  i386_optab + 3735,
   i386_optab + 3736,
+  i386_optab + 3738,
   i386_optab + 3739,
-  i386_optab + 3742,
+  i386_optab + 3740,
+  i386_optab + 3741,
+  i386_optab + 3744,
   i386_optab + 3745,
+  i386_optab + 3746,
+  i386_optab + 3747,
   i386_optab + 3748,
-  i386_optab + 3749,
-  i386_optab + 3750,
   i386_optab + 3751,
-  i386_optab + 3752,
   i386_optab + 3754,
-  i386_optab + 3756,
   i386_optab + 3757,
-  i386_optab + 3758,
-  i386_optab + 3759,
-  i386_optab + 3762,
+  i386_optab + 3760,
+  i386_optab + 3763,
+  i386_optab + 3764,
   i386_optab + 3765,
-  i386_optab + 3768,
+  i386_optab + 3766,
+  i386_optab + 3767,
+  i386_optab + 3769,
   i386_optab + 3771,
+  i386_optab + 3772,
+  i386_optab + 3773,
   i386_optab + 3774,
-  i386_optab + 3775,
-  i386_optab + 3776,
   i386_optab + 3777,
-  i386_optab + 3779,
   i386_optab + 3780,
-  i386_optab + 3781,
-  i386_optab + 3782,
-  i386_optab + 3784,
-  i386_optab + 3785,
+  i386_optab + 3783,
   i386_optab + 3786,
-  i386_optab + 3787,
-  i386_optab + 3788,
   i386_optab + 3789,
   i386_optab + 3790,
   i386_optab + 3791,
   i386_optab + 3792,
-  i386_optab + 3793,
   i386_optab + 3794,
   i386_optab + 3795,
   i386_optab + 3796,
   i386_optab + 3797,
-  i386_optab + 3798,
   i386_optab + 3799,
   i386_optab + 3800,
   i386_optab + 3801,
@@ -58308,9 +62388,24 @@ static const insn_template *const i386_op_sets[] =
   i386_optab + 3825,
   i386_optab + 3826,
   i386_optab + 3827,
+  i386_optab + 3828,
   i386_optab + 3829,
   i386_optab + 3830,
   i386_optab + 3831,
+  i386_optab + 3832,
+  i386_optab + 3833,
+  i386_optab + 3834,
+  i386_optab + 3835,
+  i386_optab + 3836,
+  i386_optab + 3837,
+  i386_optab + 3838,
+  i386_optab + 3839,
+  i386_optab + 3840,
+  i386_optab + 3841,
+  i386_optab + 3842,
+  i386_optab + 3844,
+  i386_optab + 3845,
+  i386_optab + 3846,
 };
 
 /* i386 mnemonics table.  */
@@ -58323,6 +62418,8 @@ const char i386_mnemonics[] =
   "\0""fld1"
   "\0""ud1"
   "\0""sha1msg1"
+  "\0""vsha512msg1"
+  "\0""vsm3msg1"
   "\0""sha256msg1"
   "\0""fprem1"
   "\0""f2xm1"
@@ -58343,8 +62440,12 @@ const char i386_mnemonics[] =
   "\0""ud2"
   "\0""fldlg2"
   "\0""sha1msg2"
+  "\0""vsha512msg2"
+  "\0""vsm3msg2"
   "\0""sha256msg2"
   "\0""fldln2"
+  "\0""vsha512rnds2"
+  "\0""vsm3rnds2"
   "\0""sha256rnds2"
   "\0""prefetcht2"
   "\0""pfrcpit2"
@@ -58370,6 +62471,7 @@ const char i386_mnemonics[] =
   "\0""vmovdqu64"
   "\0""rex64"
   "\0""sha1rnds4"
+  "\0""vsm4rnds4"
   "\0""vshuff32x4"
   "\0""vextractf32x4"
   "\0""vinsertf32x4"
@@ -58384,6 +62486,7 @@ const char i386_mnemonics[] =
   "\0""vextracti64x4"
   "\0""vinserti64x4"
   "\0""vbroadcasti64x4"
+  "\0""vsm4key4"
   "\0""data16"
   "\0""vcvtne2ps2bf16"
   "\0""vcvtneps2bf16"
@@ -58460,6 +62563,7 @@ const char i386_mnemonics[] =
   "\0""invlpgb"
   "\0""vpavgb"
   "\0""jb"
+  "\0""pbndkb"
   "\0""vpmovmskb"
   "\0""vpshlb"
   "\0""kshiftlb"
@@ -58954,6 +63058,7 @@ const char i386_mnemonics[] =
   "\0""vbroadcastsd"
   "\0""vpdpbusd"
   "\0""tdpbusd"
+  "\0""vpdpwusd"
   "\0""vdivsd"
   "\0""vmovsd"
   "\0""vpmaxsd"
@@ -58990,12 +63095,14 @@ const char i386_mnemonics[] =
   "\0""vpcmpequd"
   "\0""vpdpbsud"
   "\0""tdpbsud"
+  "\0""vpdpwsud"
   "\0""vpcomgtud"
   "\0""vpcomltud"
   "\0""vpcmpnltud"
   "\0""vpcmpltud"
   "\0""vpdpbuud"
   "\0""tdpbuud"
+  "\0""vpdpwuud"
   "\0""vpmaxud"
   "\0""vpsravd"
   "\0""vpshldvd"
@@ -59679,8 +63786,11 @@ const char i386_mnemonics[] =
   "\0""vp4dpwssds"
   "\0""vpdpwssds"
   "\0""vpdpbusds"
+  "\0""vpdpwusds"
   "\0""vpdpbsuds"
+  "\0""vpdpwsuds"
   "\0""vpdpbuuds"
+  "\0""vpdpwuuds"
   "\0""les"
   "\0""xsaves"
   "\0""lfs"
diff --git a/opcodes/po/POTFILES.in b/opcodes/po/POTFILES.in
index c303d98f1f1..0167a879f79 100644
--- a/opcodes/po/POTFILES.in
+++ b/opcodes/po/POTFILES.in
@@ -16,13 +16,8 @@ arc-opc.c
 arm-dis.c
 avr-dis.c
 bfin-dis.c
-bpf-asm.c
-bpf-desc.c
-bpf-desc.h
 bpf-dis.c
-bpf-ibld.c
 bpf-opc.c
-bpf-opc.h
 cgen-asm.c
 cgen-bitset.c
 cgen-dis.c
diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot
index 7f4b825b017..6c24831958b 100644
--- a/opcodes/po/opcodes.pot
+++ b/opcodes/po/opcodes.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-07-30 14:35+0100\n"
+"POT-Creation-Date: 2023-07-03 11:41+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index 827d9b67437..138eed8d31f 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -614,6 +614,20 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
 		    goto undefined_modifier;
 		  }
 		break;
+	      case 'c': /* Zcb extension 16 bits length instruction fields. */
+		switch (*++oparg)
+		  {
+		  case 'b':
+		    print (info->stream, dis_style_immediate, "%d",
+		      (int)EXTRACT_ZCB_BYTE_UIMM (l));
+		    break;
+		  case 'h':
+		    print (info->stream, dis_style_immediate, "%d",
+		      (int)EXTRACT_ZCB_HALFWORD_UIMM (l));
+		    break;
+		  default: break;
+		  }
+		break;
 	      default:
 		goto undefined_modifier;
 	      }
@@ -925,7 +939,7 @@ riscv_search_mapping_symbol (bfd_vma memaddr,
     }
 
   /* We can not find the suitable mapping symbol above.  Therefore, we
-     look forwards and try to find it again, but don't go pass the start
+     look forwards and try to find it again, but don't go past the start
      of the section.  Otherwise a data section without mapping symbols
      can pick up a text mapping symbol of a preceeding section.  */
   if (!found)
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index 533e3f4a079..6a854736fec 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -380,12 +380,14 @@ const struct riscv_opcode riscv_opcodes[] =
 {"mv",          0, INSN_CLASS_I, "d,s",       MATCH_ADDI, MASK_ADDI|MASK_IMM, match_opcode, INSN_ALIAS },
 {"move",        0, INSN_CLASS_C, "d,CV",      MATCH_C_MV, MASK_C_MV, match_c_add, INSN_ALIAS },
 {"move",        0, INSN_CLASS_I, "d,s",       MATCH_ADDI, MASK_ADDI|MASK_IMM, match_opcode, INSN_ALIAS },
+{"zext.b",      0, INSN_CLASS_ZCB, "Cs,Cw",   MATCH_C_ZEXT_B, MASK_C_ZEXT_B, match_opcode, INSN_ALIAS },
 {"zext.b",      0, INSN_CLASS_I, "d,s",       MATCH_ANDI|ENCODE_ITYPE_IMM (255), MASK_ANDI | MASK_IMM, match_opcode, INSN_ALIAS },
 {"and",         0, INSN_CLASS_C, "Cs,Cw,Ct",  MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS },
 {"and",         0, INSN_CLASS_C, "Cs,Ct,Cw",  MATCH_C_AND, MASK_C_AND, match_opcode, INSN_ALIAS },
 {"and",         0, INSN_CLASS_C, "Cs,Cw,Co",  MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS },
 {"and",         0, INSN_CLASS_I, "d,s,t",     MATCH_AND, MASK_AND, match_opcode, 0 },
 {"and",         0, INSN_CLASS_I, "d,s,j",     MATCH_ANDI, MASK_ANDI, match_opcode, INSN_ALIAS },
+{"andi",        0, INSN_CLASS_ZCB, "Cs,Cw,Wcf",MATCH_C_ZEXT_B, MASK_C_ZEXT_B, match_opcode, INSN_ALIAS },
 {"andi",        0, INSN_CLASS_C, "Cs,Cw,Co",  MATCH_C_ANDI, MASK_C_ANDI, match_opcode, INSN_ALIAS },
 {"andi",        0, INSN_CLASS_I, "d,s,j",     MATCH_ANDI, MASK_ANDI, match_opcode, 0 },
 {"beqz",        0, INSN_CLASS_C, "Cs,Cp",     MATCH_C_BEQZ, MASK_C_BEQZ, match_opcode, INSN_ALIAS|INSN_CONDBRANCH },
@@ -449,16 +451,20 @@ const struct riscv_opcode riscv_opcodes[] =
 {"sub",         0, INSN_CLASS_I, "d,s,t",     MATCH_SUB, MASK_SUB, match_opcode, 0 },
 {"lb",          0, INSN_CLASS_I, "d,o(s)",    MATCH_LB, MASK_LB, match_opcode, INSN_DREF|INSN_1_BYTE },
 {"lb",          0, INSN_CLASS_I, "d,A",       0, (int) M_LB, match_never, INSN_MACRO },
+{"lbu",         0, INSN_CLASS_ZCB, "Ct,Wcb(Cs)", MATCH_C_LBU, MASK_C_LBU, match_opcode, INSN_ALIAS|INSN_DREF|INSN_1_BYTE },
 {"lbu",         0, INSN_CLASS_I, "d,o(s)",    MATCH_LBU, MASK_LBU, match_opcode, INSN_DREF|INSN_1_BYTE },
 {"lbu",         0, INSN_CLASS_I, "d,A",       0, (int) M_LBU, match_never, INSN_MACRO },
+{"lh",          0, INSN_CLASS_ZCB, "Ct,Wch(Cs)", MATCH_C_LH, MASK_C_LH, match_opcode, INSN_ALIAS|INSN_DREF|INSN_2_BYTE },
 {"lh",          0, INSN_CLASS_I, "d,o(s)",    MATCH_LH, MASK_LH, match_opcode, INSN_DREF|INSN_2_BYTE },
 {"lh",          0, INSN_CLASS_I, "d,A",       0, (int) M_LH, match_never, INSN_MACRO },
+{"lhu",         0, INSN_CLASS_ZCB, "Ct,Wch(Cs)", MATCH_C_LHU, MASK_C_LHU, match_opcode, INSN_ALIAS|INSN_DREF|INSN_2_BYTE },
 {"lhu",         0, INSN_CLASS_I, "d,o(s)",    MATCH_LHU, MASK_LHU, match_opcode, INSN_DREF|INSN_2_BYTE },
 {"lhu",         0, INSN_CLASS_I, "d,A",       0, (int) M_LHU, match_never, INSN_MACRO },
 {"lw",          0, INSN_CLASS_C, "d,Cm(Cc)",  MATCH_C_LWSP, MASK_C_LWSP, match_rd_nonzero, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
 {"lw",          0, INSN_CLASS_C, "Ct,Ck(Cs)", MATCH_C_LW, MASK_C_LW, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
 {"lw",          0, INSN_CLASS_I, "d,o(s)",    MATCH_LW, MASK_LW, match_opcode, INSN_DREF|INSN_4_BYTE },
 {"lw",          0, INSN_CLASS_I, "d,A",       0, (int) M_LW, match_never, INSN_MACRO },
+{"not",         0, INSN_CLASS_ZCB,  "Cs,Cw",  MATCH_C_NOT, MASK_C_NOT, match_opcode, INSN_ALIAS },
 {"not",         0, INSN_CLASS_I, "d,s",       MATCH_XORI|MASK_IMM, MASK_XORI|MASK_IMM, match_opcode, INSN_ALIAS },
 {"or",          0, INSN_CLASS_I, "d,s,j",     MATCH_ORI, MASK_ORI, match_opcode, INSN_ALIAS },
 {"or",          0, INSN_CLASS_C, "Cs,Cw,Ct",  MATCH_C_OR, MASK_C_OR, match_opcode, INSN_ALIAS },
@@ -478,8 +484,10 @@ const struct riscv_opcode riscv_opcodes[] =
 {"sltu",        0, INSN_CLASS_I, "d,s,j",     MATCH_SLTIU, MASK_SLTIU, match_opcode, INSN_ALIAS },
 {"sgt",         0, INSN_CLASS_I, "d,t,s",     MATCH_SLT, MASK_SLT, match_opcode, INSN_ALIAS },
 {"sgtu",        0, INSN_CLASS_I, "d,t,s",     MATCH_SLTU, MASK_SLTU, match_opcode, INSN_ALIAS },
+{"sb",          0, INSN_CLASS_ZCB, "Ct,Wcb(Cs)", MATCH_C_SB, MASK_C_SB, match_opcode, INSN_DREF|INSN_1_BYTE|INSN_ALIAS },
 {"sb",          0, INSN_CLASS_I, "t,q(s)",    MATCH_SB, MASK_SB, match_opcode, INSN_DREF|INSN_1_BYTE },
 {"sb",          0, INSN_CLASS_I, "t,A,s",     0, (int) M_SB, match_never, INSN_MACRO },
+{"sh",          0, INSN_CLASS_ZCB, "Ct,Wch(Cs)", MATCH_C_SH, MASK_C_SH, match_opcode, INSN_DREF|INSN_2_BYTE|INSN_ALIAS },
 {"sh",          0, INSN_CLASS_I, "t,q(s)",    MATCH_SH, MASK_SH, match_opcode, INSN_DREF|INSN_2_BYTE },
 {"sh",          0, INSN_CLASS_I, "t,A,s",     0, (int) M_SH, match_never, INSN_MACRO },
 {"sw",          0, INSN_CLASS_C, "CV,CM(Cc)", MATCH_C_SWSP, MASK_C_SWSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_4_BYTE },
@@ -626,6 +634,7 @@ const struct riscv_opcode riscv_opcodes[] =
 {"amominu.d.aqrl", 64, INSN_CLASS_A, "d,t,0(s)", MATCH_AMOMINU_D|MASK_AQRL, MASK_AMOMINU_D|MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
 
 /* Multiply/Divide instruction subset.  */
+{"mul",        0, INSN_CLASS_ZCB_AND_ZMMUL, "Cs,Cw,Ct",  MATCH_C_MUL, MASK_C_MUL, match_opcode, INSN_ALIAS },
 {"mul",        0, INSN_CLASS_ZMMUL, "d,s,t",     MATCH_MUL, MASK_MUL, match_opcode, 0 },
 {"mulh",       0, INSN_CLASS_ZMMUL, "d,s,t",     MATCH_MULH, MASK_MULH, match_opcode, 0 },
 {"mulhu",      0, INSN_CLASS_ZMMUL, "d,s,t",     MATCH_MULHU, MASK_MULHU, match_opcode, 0 },
@@ -1016,10 +1025,13 @@ const struct riscv_opcode riscv_opcodes[] =
 {"max",        0, INSN_CLASS_ZBB,  "d,s,t", MATCH_MAX, MASK_MAX, match_opcode, 0 },
 {"minu",       0, INSN_CLASS_ZBB,  "d,s,t", MATCH_MINU, MASK_MINU, match_opcode, 0 },
 {"maxu",       0, INSN_CLASS_ZBB,  "d,s,t", MATCH_MAXU, MASK_MAXU, match_opcode, 0 },
+{"sext.b",     0, INSN_CLASS_ZCB_AND_ZBB,  "Cs,Cw", MATCH_C_SEXT_B, MASK_C_SEXT_B, match_opcode, INSN_ALIAS },
 {"sext.b",     0, INSN_CLASS_ZBB,  "d,s",   MATCH_SEXT_B, MASK_SEXT_B, match_opcode, 0 },
 {"sext.b",     0, INSN_CLASS_I,         "d,s",   0, (int) M_SEXTB, match_never, INSN_MACRO },
+{"sext.h",     0, INSN_CLASS_ZCB_AND_ZBB,  "Cs,Cw", MATCH_C_SEXT_H, MASK_C_SEXT_H, match_opcode, INSN_ALIAS },
 {"sext.h",     0, INSN_CLASS_ZBB,  "d,s",   MATCH_SEXT_H, MASK_SEXT_H, match_opcode, 0 },
 {"sext.h",     0, INSN_CLASS_I,         "d,s",   0, (int) M_SEXTH, match_never, INSN_MACRO },
+{"zext.h",     0, INSN_CLASS_ZCB_AND_ZBB,  "Cs,Cw", MATCH_C_ZEXT_H, MASK_C_ZEXT_H, match_opcode, INSN_ALIAS },
 {"zext.h",    32, INSN_CLASS_ZBB,  "d,s",   MATCH_PACK, MASK_PACK | MASK_RS2, match_opcode, 0 },
 {"zext.h",    64, INSN_CLASS_ZBB,  "d,s",   MATCH_PACKW, MASK_PACKW | MASK_RS2, match_opcode, 0 },
 {"zext.h",     0, INSN_CLASS_I,         "d,s",   0, (int) M_ZEXTH, match_never, INSN_MACRO },
@@ -1055,6 +1067,7 @@ const struct riscv_opcode riscv_opcodes[] =
 {"sh1add.uw", 64, INSN_CLASS_ZBA,  "d,s,t", MATCH_SH1ADD_UW, MASK_SH1ADD_UW, match_opcode, 0 },
 {"sh2add.uw", 64, INSN_CLASS_ZBA,  "d,s,t", MATCH_SH2ADD_UW, MASK_SH2ADD_UW, match_opcode, 0 },
 {"sh3add.uw", 64, INSN_CLASS_ZBA,  "d,s,t", MATCH_SH3ADD_UW, MASK_SH3ADD_UW, match_opcode, 0 },
+{"zext.w",    64, INSN_CLASS_ZCB_AND_ZBA,  "Cs,Cw", MATCH_C_ZEXT_W, MASK_C_ZEXT_W, match_opcode, INSN_ALIAS },
 {"zext.w",    64, INSN_CLASS_ZBA,  "d,s",   MATCH_ADD_UW, MASK_ADD_UW | MASK_RS2, match_opcode, INSN_ALIAS },
 {"zext.w",    64, INSN_CLASS_I, "d,s",       0, (int) M_ZEXTW, match_never, INSN_MACRO },
 {"add.uw",    64, INSN_CLASS_ZBA,  "d,s,t", MATCH_ADD_UW, MASK_ADD_UW, match_opcode, 0 },
@@ -1939,6 +1952,21 @@ const struct riscv_opcode riscv_opcodes[] =
 {"vsm3c.vi",     0, INSN_CLASS_ZVKSH, "Vd,Vt,Vj", MATCH_VSM3C_VI, MASK_VSM3C_VI, match_opcode, 0},
 {"vsm3me.vv",    0, INSN_CLASS_ZVKSH, "Vd,Vt,Vs", MATCH_VSM3ME_VV, MASK_VSM3ME_VV, match_opcode, 0},
 
+/* ZCB instructions.  */
+{"c.lbu",      0, INSN_CLASS_ZCB, "Ct,Wcb(Cs)", MATCH_C_LBU, MASK_C_LBU, match_opcode, INSN_DREF|INSN_1_BYTE },
+{"c.lhu",      0, INSN_CLASS_ZCB, "Ct,Wch(Cs)", MATCH_C_LHU, MASK_C_LHU, match_opcode, INSN_DREF|INSN_2_BYTE },
+{"c.lh",       0, INSN_CLASS_ZCB, "Ct,Wch(Cs)", MATCH_C_LH, MASK_C_LH, match_opcode, INSN_DREF|INSN_2_BYTE },
+{"c.sb",       0, INSN_CLASS_ZCB, "Ct,Wcb(Cs)", MATCH_C_SB, MASK_C_SB, match_opcode, INSN_DREF|INSN_1_BYTE },
+{"c.sh",       0, INSN_CLASS_ZCB, "Ct,Wch(Cs)", MATCH_C_SH, MASK_C_SH, match_opcode, INSN_DREF|INSN_2_BYTE },
+{"c.not",      0, INSN_CLASS_ZCB, "Cs",  MATCH_C_NOT, MASK_C_NOT, match_opcode, 0 },
+{"c.mul",      0, INSN_CLASS_ZCB_AND_ZMMUL,   "Cs,Ct",  MATCH_C_MUL, MASK_C_MUL, match_opcode, 0 },
+{"c.sext.b",   0, INSN_CLASS_ZCB_AND_ZBB, "Cs",  MATCH_C_SEXT_B, MASK_C_SEXT_B, match_opcode, 0 },
+{"c.sext.h",   0, INSN_CLASS_ZCB_AND_ZBB, "Cs",  MATCH_C_SEXT_H, MASK_C_SEXT_H, match_opcode, 0 },
+{"c.zext.h",   0, INSN_CLASS_ZCB_AND_ZBB, "Cs",  MATCH_C_ZEXT_H, MASK_C_ZEXT_H, match_opcode, 0 },
+{"c.zext.w",  64, INSN_CLASS_ZCB_AND_ZBA, "Cs",  MATCH_C_ZEXT_W, MASK_C_ZEXT_W, match_opcode, 0 },
+{"c.zext.b",   0, INSN_CLASS_ZCB, "Cs",  MATCH_C_ZEXT_B, MASK_C_ZEXT_B, match_opcode, 0 },
+{"c.sext.w",  64, INSN_CLASS_ZCB, "d",  MATCH_C_ADDIW, MASK_C_ADDIW|MASK_RVC_IMM, match_rd_nonzero, INSN_ALIAS },
+
 /* Supervisor instructions.  */
 {"csrr",       0, INSN_CLASS_ZICSR, "d,E",   MATCH_CSRRS, MASK_CSRRS|MASK_RS1, match_opcode, INSN_ALIAS },
 {"csrw",       0, INSN_CLASS_ZICSR, "E,s",   MATCH_CSRRW, MASK_CSRRW|MASK_RD, match_opcode, INSN_ALIAS },
diff --git a/src-release.sh b/src-release.sh
index 10078fcda06..c974ea05473 100755
--- a/src-release.sh
+++ b/src-release.sh
@@ -39,7 +39,7 @@ MAKEINFOFLAGS=--split-size=5000000
 # Support for building net releases
 
 # Files in root used in any net release.
-DEVO_SUPPORT="ar-lib ChangeLog ChangeLog.git compile config config-ml.in config.guess \
+DEVO_SUPPORT="ar-lib ChangeLog compile config config-ml.in config.guess \
 	config.rpath config.sub configure configure.ac COPYING COPYING.LIB \
 	COPYING3 COPYING3.LIB depcomp install-sh libtool.m4 ltgcc.m4 \
 	ltmain.sh ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4 \